Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@fullcalendar/angular

Package Overview
Dependencies
Maintainers
1
Versions
61
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@fullcalendar/angular - npm Package Compare versions

Comparing version 4.4.5-beta to 5.0.0-beta

977

bundles/fullcalendar-angular.umd.js

@@ -225,2 +225,13 @@ (function (global, factory) {

}
function shallowCopy(val) {
if (typeof val === 'object') {
if (Array.isArray(val)) {
val = Array.prototype.slice.call(val);
}
else if (val) { // non-null
val = __assign({}, val);
}
}
return val;
}
function mapHash(input, func) {

@@ -236,144 +247,3 @@ var output = {};

/*
the docs point to this file as an index of options.
when this files is moved, update the docs.
*/
var INPUT_NAMES = [
'header',
'footer',
'customButtons',
'buttonIcons',
'themeSystem',
'bootstrapFontAwesome',
'firstDay',
'dir',
'weekends',
'hiddenDays',
'fixedWeekCount',
'weekNumbers',
'weekNumbersWithinDays',
'weekNumberCalculation',
'businessHours',
'showNonCurrentDates',
'height',
'contentHeight',
'aspectRatio',
'handleWindowResize',
'windowResizeDelay',
'eventLimit',
'eventLimitClick',
'timeZone',
'now',
'defaultView',
'allDaySlot',
'allDayText',
'slotDuration',
'slotLabelFormat',
'slotLabelInterval',
'snapDuration',
'scrollTime',
'minTime',
'maxTime',
'slotEventOverlap',
'listDayFormat',
'listDayAltFormat',
'noEventsMessage',
'defaultDate',
'nowIndicator',
'visibleRange',
'validRange',
'dateIncrement',
'dateAlignment',
'duration',
'dayCount',
'locales',
'locale',
'eventTimeFormat',
'columnHeader',
'columnHeaderFormat',
'columnHeaderText',
'columnHeaderHtml',
'titleFormat',
'weekLabel',
'displayEventTime',
'displayEventEnd',
'eventLimitText',
'dayPopoverFormat',
'navLinks',
'selectable',
'selectMirror',
'selectMinDistance',
'unselectAuto',
'unselectCancel',
'defaultAllDayEventDuration',
'defaultTimedEventDuration',
'cmdFormatter',
'defaultRangeSeparator',
'selectConstraint',
'selectOverlap',
'selectAllow',
'editable',
'eventStartEditable',
'eventDurationEditable',
'eventConstraint',
'eventOverlap',
'eventAllow',
'eventClassName',
'eventClassNames',
'eventBackgroundColor',
'eventBorderColor',
'eventTextColor',
'eventColor',
'events',
'eventSources',
'allDayDefault',
'startParam',
'endParam',
'lazyFetching',
'nextDayThreshold',
'eventOrder',
'rerenderDelay',
'dragRevertDuration',
'dragScroll',
'longPressDelay',
'eventLongPressDelay',
'droppable',
'dropAccept',
'eventDataTransform',
'allDayMaintainDuration',
'eventResizableFromStart',
'timeGridEventMinHeight',
'allDayHtml',
'eventDragMinDistance',
'eventSourceFailure',
'eventSourceSuccess',
'forceEventDuration',
'progressiveEventRendering',
'selectLongPressDelay',
'selectMinDistance',
'timeZoneParam',
'titleRangeSeparator',
// compound OptionsInput...
'buttonText',
'views',
'plugins',
// scheduler...
'schedulerLicenseKey',
'resources',
'resourceLabelText',
'resourceOrder',
'filterResourcesWithEvents',
'resourceText',
'resourceGroupField',
'resourceGroupText',
'resourceAreaWidth',
'resourceColumns',
'resourcesInitiallyExpanded',
'slotWidth',
'datesAboveResources',
'googleCalendarApiKey',
'refetchResourcesOnNavigate',
'eventResourceEditable'
];
var INPUT_IS_DEEP = {
var OPTION_IS_DEEP = {
header: true,

@@ -385,34 +255,2 @@ footer: true,

};
var OUTPUT_NAMES = [
'windowResize',
'dateClick',
'eventClick',
'navLinkDayClick',
'navLinkWeekClick',
'eventMouseEnter',
'eventMouseLeave',
'select',
'unselect',
'loading',
'eventPositioned',
'eventDragStart',
'eventDragStop',
'eventDrop',
'eventResizeStart',
'eventResizeStop',
'eventResize',
'drop',
'eventReceive',
'eventLeave',
'_destroyed',
// TODO: make these inputs...
'viewSkeletonRender',
'viewSkeletonDestroy',
'datesRender',
'datesDestroy',
'dayRender',
'eventRender',
'eventDestroy',
'resourceRender'
];

@@ -422,112 +260,83 @@ var FullCalendarComponent = /** @class */ (function () {

this.element = element;
this.dirtyProps = {};
this.deepCopies = {}; // holds frozen states
this.windowResize = new core.EventEmitter();
this.dateClick = new core.EventEmitter();
this.eventClick = new core.EventEmitter();
this.eventMouseEnter = new core.EventEmitter();
this.eventMouseLeave = new core.EventEmitter();
this.select = new core.EventEmitter();
this.unselect = new core.EventEmitter();
this.loading = new core.EventEmitter();
this.eventPositioned = new core.EventEmitter();
this.eventDragStart = new core.EventEmitter();
this.eventDragStop = new core.EventEmitter();
this.eventDrop = new core.EventEmitter();
this.eventResizeStart = new core.EventEmitter();
this.eventResizeStop = new core.EventEmitter();
this.eventResize = new core.EventEmitter();
this.drop = new core.EventEmitter();
this.eventReceive = new core.EventEmitter();
this.eventLeave = new core.EventEmitter();
this._destroyed = new core.EventEmitter();
this.navLinkDayClick = new core.EventEmitter();
this.navLinkWeekClick = new core.EventEmitter();
// TODO: make these inputs...
this.viewSkeletonRender = new core.EventEmitter();
this.viewSkeletonDestroy = new core.EventEmitter();
this.datesRender = new core.EventEmitter();
this.datesDestroy = new core.EventEmitter();
this.dayRender = new core.EventEmitter();
this.eventRender = new core.EventEmitter();
this.eventDestroy = new core.EventEmitter();
this.resourceRender = new core.EventEmitter();
this.optionSnapshot = {}; // for diffing only
}
FullCalendarComponent.prototype.ngAfterViewInit = function () {
this.calendar = new core$1.Calendar(this.element.nativeElement, this.buildOptions());
var deepChangeDetection = this.deepChangeDetection;
var options = this.options || {};
// initialize snapshot
this.optionSnapshot = mapHash(options, function (optionVal, optionName) { return ((deepChangeDetection && OPTION_IS_DEEP[optionName])
? deepCopy(optionVal)
: optionVal); });
this.calendar = new core$1.Calendar(this.element.nativeElement, options);
this.calendar.render();
};
FullCalendarComponent.prototype.buildOptions = function () {
var _this = this;
var options = {};
OUTPUT_NAMES.forEach(function (outputName) {
options[outputName] = function () {
var _a;
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
(_a = _this[outputName]).emit.apply(_a, __spread(args));
};
});
// do after outputs, so that inputs with same name override
INPUT_NAMES.forEach(function (inputName) {
var inputVal = _this[inputName];
if (inputVal !== undefined) { // unfortunately FC chokes when some props are set to undefined
if (_this.deepChangeDetection && INPUT_IS_DEEP[inputName]) {
inputVal = deepCopy(inputVal);
_this.deepCopies[inputName] = inputVal; // side effect!
}
options[inputName] = inputVal;
}
});
return options;
};
/*
called before ngOnChanges, allows us to manually detect input changes.
called much more often than ngOnChanges.
allows us to manually detect complex input changes, internal mutations to certain options.
called before ngOnChanges. called much more often than ngOnChanges.
*/
FullCalendarComponent.prototype.ngDoCheck = function () {
if (this.calendar && this.deepChangeDetection) { // not the initial render AND we do deep-mutation checks
var deepCopies = this.deepCopies;
for (var inputName in INPUT_IS_DEEP) {
if (INPUT_IS_DEEP.hasOwnProperty(inputName)) {
var inputVal = this[inputName];
if (inputVal !== undefined) { // unfortunately FC chokes when some props are set to undefined
if (!deepEqual(inputVal, deepCopies[inputName])) {
var copy = deepCopy(inputVal);
deepCopies[inputName] = copy;
this.dirtyProps[inputName] = copy;
var e_1, _a;
if (this.calendar) { // not the initial render
var _b = this, deepChangeDetection = _b.deepChangeDetection, optionSnapshot = _b.optionSnapshot;
var options = this.options || {};
var updates = {};
var removals = [];
var anyChanges = false;
// detect adds and updates (and update snapshot)
for (var optionName in options) {
if (options.hasOwnProperty(optionName)) {
var optionVal = options[optionName];
if (deepChangeDetection && OPTION_IS_DEEP[optionName]) {
if (!deepEqual(optionSnapshot[optionName], optionVal)) {
optionSnapshot[optionName] = deepCopy(optionVal);
// trick FC into knowing about a nested change.
// TODO: future versions won't need this.
// can't use the previously-made deep copy because it blows away prototype-association.
updates[optionName] = shallowCopy(optionVal);
anyChanges = true;
}
}
else {
if (optionSnapshot[optionName] !== optionVal) {
optionSnapshot[optionName] = optionVal;
updates[optionName] = optionVal;
anyChanges = true;
}
}
}
}
}
};
/*
called with confirmed changes to input references
*/
FullCalendarComponent.prototype.ngOnChanges = function (changes) {
if (this.calendar) { // not the initial render
for (var inputName in changes) {
if (changes.hasOwnProperty(inputName)) {
if (this.deepCopies[inputName] === undefined) { // not already handled in ngDoCheck
this.dirtyProps[inputName] = changes[inputName].currentValue;
var oldOptionNames = Object.keys(optionSnapshot);
try {
// detect removals (and update snapshot)
for (var oldOptionNames_1 = __values(oldOptionNames), oldOptionNames_1_1 = oldOptionNames_1.next(); !oldOptionNames_1_1.done; oldOptionNames_1_1 = oldOptionNames_1.next()) {
var optionName = oldOptionNames_1_1.value;
if (!(optionName in options)) { // doesn't exist in new options?
delete optionSnapshot[optionName];
removals.push(optionName);
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (oldOptionNames_1_1 && !oldOptionNames_1_1.done && (_a = oldOptionNames_1.return)) _a.call(oldOptionNames_1);
}
finally { if (e_1) throw e_1.error; }
}
if (anyChanges) {
this.calendar.pauseRendering();
this.calendar.mutateOptions(updates, removals);
}
}
};
FullCalendarComponent.prototype.ngAfterContentChecked = function () {
var dirtyProps = this.dirtyProps; // hold on to reference before clearing
if (Object.keys(dirtyProps).length > 0) {
this.dirtyProps = {}; // clear first, in case the rerender causes new dirtiness
this.calendar.mutateOptions(dirtyProps, [], false, deepEqual);
if (this.calendar) { // too defensive?
this.calendar.resumeRendering();
}
};
FullCalendarComponent.prototype.ngOnDestroy = function () {
if (this.calendar) {
if (this.calendar) { // too defensive?
this.calendar.destroy();
this.calendar = null;
}
this.calendar = null;
};

@@ -542,648 +351,8 @@ FullCalendarComponent.prototype.getApi = function () {

core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "deepChangeDetection", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "header", void 0);
], FullCalendarComponent.prototype, "options", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "footer", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "customButtons", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "buttonIcons", void 0);
__decorate([
core.Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "themeSystem", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "bootstrapFontAwesome", void 0);
__decorate([
core.Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "firstDay", void 0);
__decorate([
core.Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "dir", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "weekends", void 0);
__decorate([
core.Input(),
__metadata("design:type", Array)
], FullCalendarComponent.prototype, "hiddenDays", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "fixedWeekCount", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "weekNumbers", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "weekNumbersWithinDays", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "weekNumberCalculation", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "businessHours", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "showNonCurrentDates", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "height", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "contentHeight", void 0);
__decorate([
core.Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "aspectRatio", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "handleWindowResize", void 0);
__decorate([
core.Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "windowResizeDelay", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventLimit", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventLimitClick", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "timeZone", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "now", void 0);
__decorate([
core.Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "defaultView", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "allDaySlot", void 0);
__decorate([
core.Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "allDayText", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "slotDuration", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "slotLabelFormat", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "slotLabelInterval", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "snapDuration", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "scrollTime", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "minTime", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "maxTime", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "slotEventOverlap", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "listDayFormat", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "listDayAltFormat", void 0);
__decorate([
core.Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "noEventsMessage", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "defaultDate", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "nowIndicator", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "visibleRange", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "validRange", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dateIncrement", void 0);
__decorate([
core.Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "dateAlignment", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "duration", void 0);
__decorate([
core.Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "dayCount", void 0);
__decorate([
core.Input(),
__metadata("design:type", Array)
], FullCalendarComponent.prototype, "locales", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "locale", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventTimeFormat", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "columnHeader", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "columnHeaderFormat", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "columnHeaderText", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "columnHeaderHtml", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "titleFormat", void 0);
__decorate([
core.Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "weekLabel", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "displayEventTime", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "displayEventEnd", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventLimitText", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dayPopoverFormat", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "navLinks", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "selectable", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "selectMirror", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "unselectAuto", void 0);
__decorate([
core.Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "unselectCancel", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "defaultAllDayEventDuration", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "defaultTimedEventDuration", void 0);
__decorate([
core.Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "cmdFormatter", void 0);
__decorate([
core.Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "defaultRangeSeparator", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "selectConstraint", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "selectOverlap", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "selectAllow", void 0);
__decorate([
core.Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "selectMinDistance", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "editable", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "eventStartEditable", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "eventDurationEditable", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventConstraint", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventOverlap", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventAllow", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventClassName", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventClassNames", void 0);
__decorate([
core.Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "eventBackgroundColor", void 0);
__decorate([
core.Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "eventBorderColor", void 0);
__decorate([
core.Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "eventTextColor", void 0);
__decorate([
core.Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "eventColor", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "events", void 0);
__decorate([
core.Input(),
__metadata("design:type", Array)
], FullCalendarComponent.prototype, "eventSources", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "allDayDefault", void 0);
__decorate([
core.Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "startParam", void 0);
__decorate([
core.Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "endParam", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "lazyFetching", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "nextDayThreshold", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventOrder", void 0);
__decorate([
core.Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "rerenderDelay", void 0);
__decorate([
core.Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "dragRevertDuration", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "dragScroll", void 0);
__decorate([
core.Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "longPressDelay", void 0);
__decorate([
core.Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "eventLongPressDelay", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "droppable", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dropAccept", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDataTransform", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "allDayMaintainDuration", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "eventResizableFromStart", void 0);
__decorate([
core.Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "timeGridEventMinHeight", void 0);
__decorate([
core.Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "allDayHtml", void 0);
__decorate([
core.Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "eventDragMinDistance", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventSourceFailure", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventSourceSuccess", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "forceEventDuration", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "progressiveEventRendering", void 0);
__decorate([
core.Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "selectLongPressDelay", void 0);
__decorate([
core.Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "timeZoneParam", void 0);
__decorate([
core.Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "titleRangeSeparator", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "buttonText", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "views", void 0);
__decorate([
core.Input(),
__metadata("design:type", Array)
], FullCalendarComponent.prototype, "plugins", void 0);
__decorate([
core.Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "schedulerLicenseKey", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resources", void 0);
__decorate([
core.Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "resourceLabelText", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceOrder", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "filterResourcesWithEvents", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceText", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceGroupField", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceGroupText", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceAreaWidth", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceColumns", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourcesInitiallyExpanded", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "slotWidth", void 0);
__decorate([
core.Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "datesAboveResources", void 0);
__decorate([
core.Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "googleCalendarApiKey", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "refetchResourcesOnNavigate", void 0);
__decorate([
core.Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "eventResourceEditable", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "windowResize", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dateClick", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventClick", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventMouseEnter", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventMouseLeave", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "select", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "unselect", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "loading", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventPositioned", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDragStart", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDragStop", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDrop", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventResizeStart", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventResizeStop", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventResize", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "drop", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventReceive", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventLeave", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "_destroyed", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "navLinkDayClick", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "navLinkWeekClick", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "viewSkeletonRender", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "viewSkeletonDestroy", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "datesRender", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "datesDestroy", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dayRender", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventRender", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDestroy", void 0);
__decorate([
core.Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceRender", void 0);
], FullCalendarComponent.prototype, "deepChangeDetection", void 0);
FullCalendarComponent = __decorate([

@@ -1190,0 +359,0 @@ core.Component({

2

bundles/fullcalendar-angular.umd.min.js

@@ -1,2 +0,2 @@

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("fast-deep-equal"),require("@angular/core"),require("@fullcalendar/core")):"function"==typeof define&&define.amd?define("@fullcalendar/angular",["exports","fast-deep-equal","@angular/core","@fullcalendar/core"],t):t(((e=e||self).fullcalendar=e.fullcalendar||{},e.fullcalendar.angular={}),e.deepEqual,e.ng.core,e.FullCalendar)}(this,(function(e,t,o,n){"use strict";t=t&&t.hasOwnProperty("default")?t.default:t;function p(e,t,o,n){var p,i=arguments.length,r=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,o,n);else for(var d=e.length-1;d>=0;d--)(p=e[d])&&(r=(i<3?p(r):i>3?p(t,o,r):p(t,o))||r);return i>3&&r&&Object.defineProperty(t,o,r),r}function i(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function r(e,t){var o="function"==typeof Symbol&&e[Symbol.iterator];if(!o)return e;var n,p,i=o.call(e),r=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)r.push(n.value)}catch(e){p={error:e}}finally{try{n&&!n.done&&(o=i.return)&&o.call(i)}finally{if(p)throw p.error}}return r}function d(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(r(arguments[t]));return e}var s=Object.prototype.hasOwnProperty;function a(e){return Array.isArray(e)?e.map(a):e instanceof Date?new Date(e.valueOf()):"object"==typeof e&&e?function(e,t){var o={};for(var n in e)s.call(e,n)&&(o[n]=t(e[n],n));return o}(e,a):e}var y=["header","footer","customButtons","buttonIcons","themeSystem","bootstrapFontAwesome","firstDay","dir","weekends","hiddenDays","fixedWeekCount","weekNumbers","weekNumbersWithinDays","weekNumberCalculation","businessHours","showNonCurrentDates","height","contentHeight","aspectRatio","handleWindowResize","windowResizeDelay","eventLimit","eventLimitClick","timeZone","now","defaultView","allDaySlot","allDayText","slotDuration","slotLabelFormat","slotLabelInterval","snapDuration","scrollTime","minTime","maxTime","slotEventOverlap","listDayFormat","listDayAltFormat","noEventsMessage","defaultDate","nowIndicator","visibleRange","validRange","dateIncrement","dateAlignment","duration","dayCount","locales","locale","eventTimeFormat","columnHeader","columnHeaderFormat","columnHeaderText","columnHeaderHtml","titleFormat","weekLabel","displayEventTime","displayEventEnd","eventLimitText","dayPopoverFormat","navLinks","selectable","selectMirror","selectMinDistance","unselectAuto","unselectCancel","defaultAllDayEventDuration","defaultTimedEventDuration","cmdFormatter","defaultRangeSeparator","selectConstraint","selectOverlap","selectAllow","editable","eventStartEditable","eventDurationEditable","eventConstraint","eventOverlap","eventAllow","eventClassName","eventClassNames","eventBackgroundColor","eventBorderColor","eventTextColor","eventColor","events","eventSources","allDayDefault","startParam","endParam","lazyFetching","nextDayThreshold","eventOrder","rerenderDelay","dragRevertDuration","dragScroll","longPressDelay","eventLongPressDelay","droppable","dropAccept","eventDataTransform","allDayMaintainDuration","eventResizableFromStart","timeGridEventMinHeight","allDayHtml","eventDragMinDistance","eventSourceFailure","eventSourceSuccess","forceEventDuration","progressiveEventRendering","selectLongPressDelay","selectMinDistance","timeZoneParam","titleRangeSeparator","buttonText","views","plugins","schedulerLicenseKey","resources","resourceLabelText","resourceOrder","filterResourcesWithEvents","resourceText","resourceGroupField","resourceGroupText","resourceAreaWidth","resourceColumns","resourcesInitiallyExpanded","slotWidth","datesAboveResources","googleCalendarApiKey","refetchResourcesOnNavigate","eventResourceEditable"],u={header:!0,footer:!0,events:!0,eventSources:!0,resources:!0},v=["windowResize","dateClick","eventClick","navLinkDayClick","navLinkWeekClick","eventMouseEnter","eventMouseLeave","select","unselect","loading","eventPositioned","eventDragStart","eventDragStop","eventDrop","eventResizeStart","eventResizeStop","eventResize","drop","eventReceive","eventLeave","_destroyed","viewSkeletonRender","viewSkeletonDestroy","datesRender","datesDestroy","dayRender","eventRender","eventDestroy","resourceRender"],l=function(){function e(e){this.element=e,this.dirtyProps={},this.deepCopies={},this.windowResize=new o.EventEmitter,this.dateClick=new o.EventEmitter,this.eventClick=new o.EventEmitter,this.eventMouseEnter=new o.EventEmitter,this.eventMouseLeave=new o.EventEmitter,this.select=new o.EventEmitter,this.unselect=new o.EventEmitter,this.loading=new o.EventEmitter,this.eventPositioned=new o.EventEmitter,this.eventDragStart=new o.EventEmitter,this.eventDragStop=new o.EventEmitter,this.eventDrop=new o.EventEmitter,this.eventResizeStart=new o.EventEmitter,this.eventResizeStop=new o.EventEmitter,this.eventResize=new o.EventEmitter,this.drop=new o.EventEmitter,this.eventReceive=new o.EventEmitter,this.eventLeave=new o.EventEmitter,this._destroyed=new o.EventEmitter,this.navLinkDayClick=new o.EventEmitter,this.navLinkWeekClick=new o.EventEmitter,this.viewSkeletonRender=new o.EventEmitter,this.viewSkeletonDestroy=new o.EventEmitter,this.datesRender=new o.EventEmitter,this.datesDestroy=new o.EventEmitter,this.dayRender=new o.EventEmitter,this.eventRender=new o.EventEmitter,this.eventDestroy=new o.EventEmitter,this.resourceRender=new o.EventEmitter}return e.prototype.ngAfterViewInit=function(){this.calendar=new n.Calendar(this.element.nativeElement,this.buildOptions()),this.calendar.render()},e.prototype.buildOptions=function(){var e=this,t={};return v.forEach((function(o){t[o]=function(){for(var t,n=[],p=0;p<arguments.length;p++)n[p]=arguments[p];(t=e[o]).emit.apply(t,d(n))}})),y.forEach((function(o){var n=e[o];void 0!==n&&(e.deepChangeDetection&&u[o]&&(n=a(n),e.deepCopies[o]=n),t[o]=n)})),t},e.prototype.ngDoCheck=function(){if(this.calendar&&this.deepChangeDetection){var e=this.deepCopies;for(var o in u)if(u.hasOwnProperty(o)){var n=this[o];if(void 0!==n&&!t(n,e[o])){var p=a(n);e[o]=p,this.dirtyProps[o]=p}}}},e.prototype.ngOnChanges=function(e){if(this.calendar)for(var t in e)e.hasOwnProperty(t)&&void 0===this.deepCopies[t]&&(this.dirtyProps[t]=e[t].currentValue)},e.prototype.ngAfterContentChecked=function(){var e=this.dirtyProps;Object.keys(e).length>0&&(this.dirtyProps={},this.calendar.mutateOptions(e,[],!1,t))},e.prototype.ngOnDestroy=function(){this.calendar&&this.calendar.destroy(),this.calendar=null},e.prototype.getApi=function(){return this.calendar},e.ctorParameters=function(){return[{type:o.ElementRef}]},p([o.Input(),i("design:type",Boolean)],e.prototype,"deepChangeDetection",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"header",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"footer",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"customButtons",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"buttonIcons",void 0),p([o.Input(),i("design:type",String)],e.prototype,"themeSystem",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"bootstrapFontAwesome",void 0),p([o.Input(),i("design:type",Number)],e.prototype,"firstDay",void 0),p([o.Input(),i("design:type",String)],e.prototype,"dir",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"weekends",void 0),p([o.Input(),i("design:type",Array)],e.prototype,"hiddenDays",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"fixedWeekCount",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"weekNumbers",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"weekNumbersWithinDays",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"weekNumberCalculation",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"businessHours",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"showNonCurrentDates",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"height",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"contentHeight",void 0),p([o.Input(),i("design:type",Number)],e.prototype,"aspectRatio",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"handleWindowResize",void 0),p([o.Input(),i("design:type",Number)],e.prototype,"windowResizeDelay",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"eventLimit",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"eventLimitClick",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"timeZone",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"now",void 0),p([o.Input(),i("design:type",String)],e.prototype,"defaultView",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"allDaySlot",void 0),p([o.Input(),i("design:type",String)],e.prototype,"allDayText",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"slotDuration",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"slotLabelFormat",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"slotLabelInterval",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"snapDuration",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"scrollTime",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"minTime",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"maxTime",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"slotEventOverlap",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"listDayFormat",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"listDayAltFormat",void 0),p([o.Input(),i("design:type",String)],e.prototype,"noEventsMessage",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"defaultDate",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"nowIndicator",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"visibleRange",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"validRange",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"dateIncrement",void 0),p([o.Input(),i("design:type",String)],e.prototype,"dateAlignment",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"duration",void 0),p([o.Input(),i("design:type",Number)],e.prototype,"dayCount",void 0),p([o.Input(),i("design:type",Array)],e.prototype,"locales",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"locale",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"eventTimeFormat",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"columnHeader",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"columnHeaderFormat",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"columnHeaderText",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"columnHeaderHtml",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"titleFormat",void 0),p([o.Input(),i("design:type",String)],e.prototype,"weekLabel",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"displayEventTime",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"displayEventEnd",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"eventLimitText",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"dayPopoverFormat",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"navLinks",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"selectable",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"selectMirror",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"unselectAuto",void 0),p([o.Input(),i("design:type",String)],e.prototype,"unselectCancel",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"defaultAllDayEventDuration",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"defaultTimedEventDuration",void 0),p([o.Input(),i("design:type",String)],e.prototype,"cmdFormatter",void 0),p([o.Input(),i("design:type",String)],e.prototype,"defaultRangeSeparator",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"selectConstraint",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"selectOverlap",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"selectAllow",void 0),p([o.Input(),i("design:type",Number)],e.prototype,"selectMinDistance",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"editable",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"eventStartEditable",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"eventDurationEditable",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"eventConstraint",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"eventOverlap",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"eventAllow",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"eventClassName",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"eventClassNames",void 0),p([o.Input(),i("design:type",String)],e.prototype,"eventBackgroundColor",void 0),p([o.Input(),i("design:type",String)],e.prototype,"eventBorderColor",void 0),p([o.Input(),i("design:type",String)],e.prototype,"eventTextColor",void 0),p([o.Input(),i("design:type",String)],e.prototype,"eventColor",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"events",void 0),p([o.Input(),i("design:type",Array)],e.prototype,"eventSources",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"allDayDefault",void 0),p([o.Input(),i("design:type",String)],e.prototype,"startParam",void 0),p([o.Input(),i("design:type",String)],e.prototype,"endParam",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"lazyFetching",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"nextDayThreshold",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"eventOrder",void 0),p([o.Input(),i("design:type",Number)],e.prototype,"rerenderDelay",void 0),p([o.Input(),i("design:type",Number)],e.prototype,"dragRevertDuration",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"dragScroll",void 0),p([o.Input(),i("design:type",Number)],e.prototype,"longPressDelay",void 0),p([o.Input(),i("design:type",Number)],e.prototype,"eventLongPressDelay",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"droppable",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"dropAccept",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"eventDataTransform",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"allDayMaintainDuration",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"eventResizableFromStart",void 0),p([o.Input(),i("design:type",Number)],e.prototype,"timeGridEventMinHeight",void 0),p([o.Input(),i("design:type",String)],e.prototype,"allDayHtml",void 0),p([o.Input(),i("design:type",Number)],e.prototype,"eventDragMinDistance",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"eventSourceFailure",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"eventSourceSuccess",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"forceEventDuration",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"progressiveEventRendering",void 0),p([o.Input(),i("design:type",Number)],e.prototype,"selectLongPressDelay",void 0),p([o.Input(),i("design:type",String)],e.prototype,"timeZoneParam",void 0),p([o.Input(),i("design:type",String)],e.prototype,"titleRangeSeparator",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"buttonText",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"views",void 0),p([o.Input(),i("design:type",Array)],e.prototype,"plugins",void 0),p([o.Input(),i("design:type",String)],e.prototype,"schedulerLicenseKey",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"resources",void 0),p([o.Input(),i("design:type",String)],e.prototype,"resourceLabelText",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"resourceOrder",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"filterResourcesWithEvents",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"resourceText",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"resourceGroupField",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"resourceGroupText",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"resourceAreaWidth",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"resourceColumns",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"resourcesInitiallyExpanded",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"slotWidth",void 0),p([o.Input(),i("design:type",Object)],e.prototype,"datesAboveResources",void 0),p([o.Input(),i("design:type",String)],e.prototype,"googleCalendarApiKey",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"refetchResourcesOnNavigate",void 0),p([o.Input(),i("design:type",Boolean)],e.prototype,"eventResourceEditable",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"windowResize",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"dateClick",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"eventClick",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"eventMouseEnter",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"eventMouseLeave",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"select",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"unselect",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"loading",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"eventPositioned",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"eventDragStart",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"eventDragStop",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"eventDrop",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"eventResizeStart",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"eventResizeStop",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"eventResize",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"drop",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"eventReceive",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"eventLeave",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"_destroyed",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"navLinkDayClick",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"navLinkWeekClick",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"viewSkeletonRender",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"viewSkeletonDestroy",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"datesRender",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"datesDestroy",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"dayRender",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"eventRender",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"eventDestroy",void 0),p([o.Output(),i("design:type",Object)],e.prototype,"resourceRender",void 0),e=p([o.Component({selector:"full-calendar",template:""}),i("design:paramtypes",[o.ElementRef])],e)}(),c=function(){function e(){}return e=p([o.NgModule({declarations:[l],imports:[],exports:[l]})],e)}();e.FullCalendarComponent=l,e.FullCalendarModule=c,Object.defineProperty(e,"__esModule",{value:!0})}));
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("fast-deep-equal"),require("@angular/core"),require("@fullcalendar/core")):"function"==typeof define&&define.amd?define("@fullcalendar/angular",["exports","fast-deep-equal","@angular/core","@fullcalendar/core"],t):t(((e=e||self).fullcalendar=e.fullcalendar||{},e.fullcalendar.angular={}),e.deepEqual,e.ng.core,e.FullCalendar)}(this,(function(e,t,n,r){"use strict";t=t&&t.hasOwnProperty("default")?t.default:t;var o=function(){return(o=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function a(e,t,n,r){var o,a=arguments.length,l=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,n,r);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,n,l):o(t,n))||l);return a>3&&l&&Object.defineProperty(t,n,l),l}function l(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function i(e){var t="function"==typeof Symbol&&e[Symbol.iterator],n=0;return t?t.call(e):{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}}}var c=Object.prototype.hasOwnProperty;function u(e){return Array.isArray(e)?e.map(u):e instanceof Date?new Date(e.valueOf()):"object"==typeof e&&e?f(e,u):e}function f(e,t){var n={};for(var r in e)c.call(e,r)&&(n[r]=t(e[r],r));return n}var p={header:!0,footer:!0,events:!0,eventSources:!0,resources:!0},s=function(){function e(e){this.element=e,this.optionSnapshot={}}return e.prototype.ngAfterViewInit=function(){var e=this.deepChangeDetection,t=this.options||{};this.optionSnapshot=f(t,(function(t,n){return e&&p[n]?u(t):t})),this.calendar=new r.Calendar(this.element.nativeElement,t),this.calendar.render()},e.prototype.ngDoCheck=function(){var e,n,r;if(this.calendar){var a=this.deepChangeDetection,l=this.optionSnapshot,c=this.options||{},f={},s=[],d=!1;for(var y in c)if(c.hasOwnProperty(y)){var h=c[y];a&&p[y]?t(l[y],h)||(l[y]=u(h),f[y]=("object"==typeof(r=h)&&(Array.isArray(r)?r=Array.prototype.slice.call(r):r&&(r=o({},r))),r),d=!0):l[y]!==h&&(l[y]=h,f[y]=h,d=!0)}var v=Object.keys(l);try{for(var g=i(v),m=g.next();!m.done;m=g.next()){(y=m.value)in c||(delete l[y],s.push(y))}}catch(t){e={error:t}}finally{try{m&&!m.done&&(n=g.return)&&n.call(g)}finally{if(e)throw e.error}}d&&(this.calendar.pauseRendering(),this.calendar.mutateOptions(f,s))}},e.prototype.ngAfterContentChecked=function(){this.calendar&&this.calendar.resumeRendering()},e.prototype.ngOnDestroy=function(){this.calendar&&(this.calendar.destroy(),this.calendar=null)},e.prototype.getApi=function(){return this.calendar},e.ctorParameters=function(){return[{type:n.ElementRef}]},a([n.Input(),l("design:type",Object)],e.prototype,"options",void 0),a([n.Input(),l("design:type",Boolean)],e.prototype,"deepChangeDetection",void 0),e=a([n.Component({selector:"full-calendar",template:""}),l("design:paramtypes",[n.ElementRef])],e)}(),d=function(){function e(){}return e=a([n.NgModule({declarations:[s],imports:[],exports:[s]})],e)}();e.FullCalendarComponent=s,e.FullCalendarModule=d,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=fullcalendar-angular.umd.min.js.map

@@ -1,143 +0,2 @@

/*
the docs point to this file as an index of options.
when this files is moved, update the docs.
*/
export const INPUT_NAMES = [
'header',
'footer',
'customButtons',
'buttonIcons',
'themeSystem',
'bootstrapFontAwesome',
'firstDay',
'dir',
'weekends',
'hiddenDays',
'fixedWeekCount',
'weekNumbers',
'weekNumbersWithinDays',
'weekNumberCalculation',
'businessHours',
'showNonCurrentDates',
'height',
'contentHeight',
'aspectRatio',
'handleWindowResize',
'windowResizeDelay',
'eventLimit',
'eventLimitClick',
'timeZone',
'now',
'defaultView',
'allDaySlot',
'allDayText',
'slotDuration',
'slotLabelFormat',
'slotLabelInterval',
'snapDuration',
'scrollTime',
'minTime',
'maxTime',
'slotEventOverlap',
'listDayFormat',
'listDayAltFormat',
'noEventsMessage',
'defaultDate',
'nowIndicator',
'visibleRange',
'validRange',
'dateIncrement',
'dateAlignment',
'duration',
'dayCount',
'locales',
'locale',
'eventTimeFormat',
'columnHeader',
'columnHeaderFormat',
'columnHeaderText',
'columnHeaderHtml',
'titleFormat',
'weekLabel',
'displayEventTime',
'displayEventEnd',
'eventLimitText',
'dayPopoverFormat',
'navLinks',
'selectable',
'selectMirror',
'selectMinDistance',
'unselectAuto',
'unselectCancel',
'defaultAllDayEventDuration',
'defaultTimedEventDuration',
'cmdFormatter',
'defaultRangeSeparator',
'selectConstraint',
'selectOverlap',
'selectAllow',
'editable',
'eventStartEditable',
'eventDurationEditable',
'eventConstraint',
'eventOverlap',
'eventAllow',
'eventClassName',
'eventClassNames',
'eventBackgroundColor',
'eventBorderColor',
'eventTextColor',
'eventColor',
'events',
'eventSources',
'allDayDefault',
'startParam',
'endParam',
'lazyFetching',
'nextDayThreshold',
'eventOrder',
'rerenderDelay',
'dragRevertDuration',
'dragScroll',
'longPressDelay',
'eventLongPressDelay',
'droppable',
'dropAccept',
'eventDataTransform',
'allDayMaintainDuration',
'eventResizableFromStart',
'timeGridEventMinHeight',
'allDayHtml',
'eventDragMinDistance',
'eventSourceFailure',
'eventSourceSuccess',
'forceEventDuration',
'progressiveEventRendering',
'selectLongPressDelay',
'selectMinDistance',
'timeZoneParam',
'titleRangeSeparator',
// compound OptionsInput...
'buttonText',
'views',
'plugins',
// scheduler...
'schedulerLicenseKey',
'resources',
'resourceLabelText',
'resourceOrder',
'filterResourcesWithEvents',
'resourceText',
'resourceGroupField',
'resourceGroupText',
'resourceAreaWidth',
'resourceColumns',
'resourcesInitiallyExpanded',
'slotWidth',
'datesAboveResources',
'googleCalendarApiKey',
'refetchResourcesOnNavigate',
'eventResourceEditable'
];
export const INPUT_IS_DEEP = {
export const OPTION_IS_DEEP = {
header: true,

@@ -149,34 +8,2 @@ footer: true,

};
export const OUTPUT_NAMES = [
'windowResize',
'dateClick',
'eventClick',
'navLinkDayClick',
'navLinkWeekClick',
'eventMouseEnter',
'eventMouseLeave',
'select',
'unselect',
'loading',
'eventPositioned',
'eventDragStart',
'eventDragStop',
'eventDrop',
'eventResizeStart',
'eventResizeStop',
'eventResize',
'drop',
'eventReceive',
'eventLeave',
'_destroyed',
// TODO: make these inputs...
'viewSkeletonRender',
'viewSkeletonDestroy',
'datesRender',
'datesDestroy',
'dayRender',
'eventRender',
'eventDestroy',
'resourceRender'
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbGNhbGVuZGFyLW9wdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZnVsbGNhbGVuZGFyL2FuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvZnVsbGNhbGVuZGFyLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztFQUdFO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHO0lBQ3pCLFFBQVE7SUFDUixRQUFRO0lBQ1IsZUFBZTtJQUNmLGFBQWE7SUFDYixhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLFVBQVU7SUFDVixLQUFLO0lBQ0wsVUFBVTtJQUNWLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsYUFBYTtJQUNiLHVCQUF1QjtJQUN2Qix1QkFBdUI7SUFDdkIsZUFBZTtJQUNmLHFCQUFxQjtJQUNyQixRQUFRO0lBQ1IsZUFBZTtJQUNmLGFBQWE7SUFDYixvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLFlBQVk7SUFDWixpQkFBaUI7SUFDakIsVUFBVTtJQUNWLEtBQUs7SUFDTCxhQUFhO0lBQ2IsWUFBWTtJQUNaLFlBQVk7SUFDWixjQUFjO0lBQ2QsaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsWUFBWTtJQUNaLFNBQVM7SUFDVCxTQUFTO0lBQ1Qsa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLGFBQWE7SUFDYixjQUFjO0lBQ2QsY0FBYztJQUNkLFlBQVk7SUFDWixlQUFlO0lBQ2YsZUFBZTtJQUNmLFVBQVU7SUFDVixVQUFVO0lBQ1YsU0FBUztJQUNULFFBQVE7SUFDUixpQkFBaUI7SUFDakIsY0FBYztJQUNkLG9CQUFvQjtJQUNwQixrQkFBa0I7SUFDbEIsa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVixZQUFZO0lBQ1osY0FBYztJQUNkLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLDRCQUE0QjtJQUM1QiwyQkFBMkI7SUFDM0IsY0FBYztJQUNkLHVCQUF1QjtJQUN2QixrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLGFBQWE7SUFDYixVQUFVO0lBQ1Ysb0JBQW9CO0lBQ3BCLHVCQUF1QjtJQUN2QixpQkFBaUI7SUFDakIsY0FBYztJQUNkLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsaUJBQWlCO0lBQ2pCLHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLFlBQVk7SUFDWixRQUFRO0lBQ1IsY0FBYztJQUNkLGVBQWU7SUFDZixZQUFZO0lBQ1osVUFBVTtJQUNWLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLGVBQWU7SUFDZixvQkFBb0I7SUFDcEIsWUFBWTtJQUNaLGdCQUFnQjtJQUNoQixxQkFBcUI7SUFDckIsV0FBVztJQUNYLFlBQVk7SUFDWixvQkFBb0I7SUFDcEIsd0JBQXdCO0lBQ3hCLHlCQUF5QjtJQUN6Qix3QkFBd0I7SUFDeEIsWUFBWTtJQUNaLHNCQUFzQjtJQUN0QixvQkFBb0I7SUFDcEIsb0JBQW9CO0lBQ3BCLG9CQUFvQjtJQUNwQiwyQkFBMkI7SUFDM0Isc0JBQXNCO0lBQ3RCLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2YscUJBQXFCO0lBQ3JCLDJCQUEyQjtJQUMzQixZQUFZO0lBQ1osT0FBTztJQUNQLFNBQVM7SUFDVCxlQUFlO0lBQ2YscUJBQXFCO0lBQ3JCLFdBQVc7SUFDWCxtQkFBbUI7SUFDbkIsZUFBZTtJQUNmLDJCQUEyQjtJQUMzQixjQUFjO0lBQ2Qsb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsaUJBQWlCO0lBQ2pCLDRCQUE0QjtJQUM1QixXQUFXO0lBQ1gscUJBQXFCO0lBQ3JCLHNCQUFzQjtJQUN0Qiw0QkFBNEI7SUFDNUIsdUJBQXVCO0NBQ3hCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUc7SUFDM0IsTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsSUFBSTtJQUNaLE1BQU0sRUFBRSxJQUFJO0lBQ1osWUFBWSxFQUFFLElBQUk7SUFDbEIsU0FBUyxFQUFFLElBQUk7Q0FDaEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRztJQUMxQixjQUFjO0lBQ2QsV0FBVztJQUNYLFlBQVk7SUFDWixpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsUUFBUTtJQUNSLFVBQVU7SUFDVixTQUFTO0lBQ1QsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YsV0FBVztJQUNYLGtCQUFrQjtJQUNsQixpQkFBaUI7SUFDakIsYUFBYTtJQUNiLE1BQU07SUFDTixjQUFjO0lBQ2QsWUFBWTtJQUNaLFlBQVk7SUFDWiw2QkFBNkI7SUFDN0Isb0JBQW9CO0lBQ3BCLHFCQUFxQjtJQUNyQixhQUFhO0lBQ2IsY0FBYztJQUNkLFdBQVc7SUFDWCxhQUFhO0lBQ2IsY0FBYztJQUNkLGdCQUFnQjtDQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbnRoZSBkb2NzIHBvaW50IHRvIHRoaXMgZmlsZSBhcyBhbiBpbmRleCBvZiBvcHRpb25zLlxud2hlbiB0aGlzIGZpbGVzIGlzIG1vdmVkLCB1cGRhdGUgdGhlIGRvY3MuXG4qL1xuXG5leHBvcnQgY29uc3QgSU5QVVRfTkFNRVMgPSBbXG4gICdoZWFkZXInLFxuICAnZm9vdGVyJyxcbiAgJ2N1c3RvbUJ1dHRvbnMnLFxuICAnYnV0dG9uSWNvbnMnLFxuICAndGhlbWVTeXN0ZW0nLFxuICAnYm9vdHN0cmFwRm9udEF3ZXNvbWUnLFxuICAnZmlyc3REYXknLFxuICAnZGlyJyxcbiAgJ3dlZWtlbmRzJyxcbiAgJ2hpZGRlbkRheXMnLFxuICAnZml4ZWRXZWVrQ291bnQnLFxuICAnd2Vla051bWJlcnMnLFxuICAnd2Vla051bWJlcnNXaXRoaW5EYXlzJyxcbiAgJ3dlZWtOdW1iZXJDYWxjdWxhdGlvbicsXG4gICdidXNpbmVzc0hvdXJzJyxcbiAgJ3Nob3dOb25DdXJyZW50RGF0ZXMnLFxuICAnaGVpZ2h0JyxcbiAgJ2NvbnRlbnRIZWlnaHQnLFxuICAnYXNwZWN0UmF0aW8nLFxuICAnaGFuZGxlV2luZG93UmVzaXplJyxcbiAgJ3dpbmRvd1Jlc2l6ZURlbGF5JyxcbiAgJ2V2ZW50TGltaXQnLFxuICAnZXZlbnRMaW1pdENsaWNrJyxcbiAgJ3RpbWVab25lJyxcbiAgJ25vdycsXG4gICdkZWZhdWx0VmlldycsXG4gICdhbGxEYXlTbG90JyxcbiAgJ2FsbERheVRleHQnLFxuICAnc2xvdER1cmF0aW9uJyxcbiAgJ3Nsb3RMYWJlbEZvcm1hdCcsXG4gICdzbG90TGFiZWxJbnRlcnZhbCcsXG4gICdzbmFwRHVyYXRpb24nLFxuICAnc2Nyb2xsVGltZScsXG4gICdtaW5UaW1lJyxcbiAgJ21heFRpbWUnLFxuICAnc2xvdEV2ZW50T3ZlcmxhcCcsXG4gICdsaXN0RGF5Rm9ybWF0JyxcbiAgJ2xpc3REYXlBbHRGb3JtYXQnLFxuICAnbm9FdmVudHNNZXNzYWdlJyxcbiAgJ2RlZmF1bHREYXRlJyxcbiAgJ25vd0luZGljYXRvcicsXG4gICd2aXNpYmxlUmFuZ2UnLFxuICAndmFsaWRSYW5nZScsXG4gICdkYXRlSW5jcmVtZW50JyxcbiAgJ2RhdGVBbGlnbm1lbnQnLFxuICAnZHVyYXRpb24nLFxuICAnZGF5Q291bnQnLFxuICAnbG9jYWxlcycsXG4gICdsb2NhbGUnLFxuICAnZXZlbnRUaW1lRm9ybWF0JyxcbiAgJ2NvbHVtbkhlYWRlcicsXG4gICdjb2x1bW5IZWFkZXJGb3JtYXQnLFxuICAnY29sdW1uSGVhZGVyVGV4dCcsXG4gICdjb2x1bW5IZWFkZXJIdG1sJyxcbiAgJ3RpdGxlRm9ybWF0JyxcbiAgJ3dlZWtMYWJlbCcsXG4gICdkaXNwbGF5RXZlbnRUaW1lJyxcbiAgJ2Rpc3BsYXlFdmVudEVuZCcsXG4gICdldmVudExpbWl0VGV4dCcsXG4gICdkYXlQb3BvdmVyRm9ybWF0JyxcbiAgJ25hdkxpbmtzJyxcbiAgJ3NlbGVjdGFibGUnLFxuICAnc2VsZWN0TWlycm9yJyxcbiAgJ3NlbGVjdE1pbkRpc3RhbmNlJyxcbiAgJ3Vuc2VsZWN0QXV0bycsXG4gICd1bnNlbGVjdENhbmNlbCcsXG4gICdkZWZhdWx0QWxsRGF5RXZlbnREdXJhdGlvbicsXG4gICdkZWZhdWx0VGltZWRFdmVudER1cmF0aW9uJyxcbiAgJ2NtZEZvcm1hdHRlcicsXG4gICdkZWZhdWx0UmFuZ2VTZXBhcmF0b3InLFxuICAnc2VsZWN0Q29uc3RyYWludCcsXG4gICdzZWxlY3RPdmVybGFwJyxcbiAgJ3NlbGVjdEFsbG93JyxcbiAgJ2VkaXRhYmxlJyxcbiAgJ2V2ZW50U3RhcnRFZGl0YWJsZScsXG4gICdldmVudER1cmF0aW9uRWRpdGFibGUnLFxuICAnZXZlbnRDb25zdHJhaW50JyxcbiAgJ2V2ZW50T3ZlcmxhcCcsXG4gICdldmVudEFsbG93JyxcbiAgJ2V2ZW50Q2xhc3NOYW1lJyxcbiAgJ2V2ZW50Q2xhc3NOYW1lcycsXG4gICdldmVudEJhY2tncm91bmRDb2xvcicsXG4gICdldmVudEJvcmRlckNvbG9yJyxcbiAgJ2V2ZW50VGV4dENvbG9yJyxcbiAgJ2V2ZW50Q29sb3InLFxuICAnZXZlbnRzJyxcbiAgJ2V2ZW50U291cmNlcycsXG4gICdhbGxEYXlEZWZhdWx0JyxcbiAgJ3N0YXJ0UGFyYW0nLFxuICAnZW5kUGFyYW0nLFxuICAnbGF6eUZldGNoaW5nJyxcbiAgJ25leHREYXlUaHJlc2hvbGQnLFxuICAnZXZlbnRPcmRlcicsXG4gICdyZXJlbmRlckRlbGF5JyxcbiAgJ2RyYWdSZXZlcnREdXJhdGlvbicsXG4gICdkcmFnU2Nyb2xsJyxcbiAgJ2xvbmdQcmVzc0RlbGF5JyxcbiAgJ2V2ZW50TG9uZ1ByZXNzRGVsYXknLFxuICAnZHJvcHBhYmxlJyxcbiAgJ2Ryb3BBY2NlcHQnLFxuICAnZXZlbnREYXRhVHJhbnNmb3JtJyxcbiAgJ2FsbERheU1haW50YWluRHVyYXRpb24nLFxuICAnZXZlbnRSZXNpemFibGVGcm9tU3RhcnQnLFxuICAndGltZUdyaWRFdmVudE1pbkhlaWdodCcsXG4gICdhbGxEYXlIdG1sJyxcbiAgJ2V2ZW50RHJhZ01pbkRpc3RhbmNlJyxcbiAgJ2V2ZW50U291cmNlRmFpbHVyZScsXG4gICdldmVudFNvdXJjZVN1Y2Nlc3MnLFxuICAnZm9yY2VFdmVudER1cmF0aW9uJyxcbiAgJ3Byb2dyZXNzaXZlRXZlbnRSZW5kZXJpbmcnLFxuICAnc2VsZWN0TG9uZ1ByZXNzRGVsYXknLFxuICAnc2VsZWN0TWluRGlzdGFuY2UnLFxuICAndGltZVpvbmVQYXJhbScsXG4gICd0aXRsZVJhbmdlU2VwYXJhdG9yJyxcbiAgLy8gY29tcG91bmQgT3B0aW9uc0lucHV0Li4uXG4gICdidXR0b25UZXh0JyxcbiAgJ3ZpZXdzJyxcbiAgJ3BsdWdpbnMnLFxuICAvLyBzY2hlZHVsZXIuLi5cbiAgJ3NjaGVkdWxlckxpY2Vuc2VLZXknLFxuICAncmVzb3VyY2VzJyxcbiAgJ3Jlc291cmNlTGFiZWxUZXh0JyxcbiAgJ3Jlc291cmNlT3JkZXInLFxuICAnZmlsdGVyUmVzb3VyY2VzV2l0aEV2ZW50cycsXG4gICdyZXNvdXJjZVRleHQnLFxuICAncmVzb3VyY2VHcm91cEZpZWxkJyxcbiAgJ3Jlc291cmNlR3JvdXBUZXh0JyxcbiAgJ3Jlc291cmNlQXJlYVdpZHRoJyxcbiAgJ3Jlc291cmNlQ29sdW1ucycsXG4gICdyZXNvdXJjZXNJbml0aWFsbHlFeHBhbmRlZCcsXG4gICdzbG90V2lkdGgnLFxuICAnZGF0ZXNBYm92ZVJlc291cmNlcycsXG4gICdnb29nbGVDYWxlbmRhckFwaUtleScsXG4gICdyZWZldGNoUmVzb3VyY2VzT25OYXZpZ2F0ZScsXG4gICdldmVudFJlc291cmNlRWRpdGFibGUnXG5dO1xuXG5leHBvcnQgY29uc3QgSU5QVVRfSVNfREVFUCA9IHtcbiAgaGVhZGVyOiB0cnVlLFxuICBmb290ZXI6IHRydWUsXG4gIGV2ZW50czogdHJ1ZSxcbiAgZXZlbnRTb3VyY2VzOiB0cnVlLFxuICByZXNvdXJjZXM6IHRydWVcbn07XG5cbmV4cG9ydCBjb25zdCBPVVRQVVRfTkFNRVMgPSBbXG4gICd3aW5kb3dSZXNpemUnLFxuICAnZGF0ZUNsaWNrJyxcbiAgJ2V2ZW50Q2xpY2snLFxuICAnbmF2TGlua0RheUNsaWNrJyxcbiAgJ25hdkxpbmtXZWVrQ2xpY2snLFxuICAnZXZlbnRNb3VzZUVudGVyJyxcbiAgJ2V2ZW50TW91c2VMZWF2ZScsXG4gICdzZWxlY3QnLFxuICAndW5zZWxlY3QnLFxuICAnbG9hZGluZycsXG4gICdldmVudFBvc2l0aW9uZWQnLFxuICAnZXZlbnREcmFnU3RhcnQnLFxuICAnZXZlbnREcmFnU3RvcCcsXG4gICdldmVudERyb3AnLFxuICAnZXZlbnRSZXNpemVTdGFydCcsXG4gICdldmVudFJlc2l6ZVN0b3AnLFxuICAnZXZlbnRSZXNpemUnLFxuICAnZHJvcCcsXG4gICdldmVudFJlY2VpdmUnLFxuICAnZXZlbnRMZWF2ZScsXG4gICdfZGVzdHJveWVkJyxcbiAgLy8gVE9ETzogbWFrZSB0aGVzZSBpbnB1dHMuLi5cbiAgJ3ZpZXdTa2VsZXRvblJlbmRlcicsXG4gICd2aWV3U2tlbGV0b25EZXN0cm95JyxcbiAgJ2RhdGVzUmVuZGVyJyxcbiAgJ2RhdGVzRGVzdHJveScsXG4gICdkYXlSZW5kZXInLFxuICAnZXZlbnRSZW5kZXInLFxuICAnZXZlbnREZXN0cm95JyxcbiAgJ3Jlc291cmNlUmVuZGVyJ1xuXTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbGNhbGVuZGFyLW9wdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZnVsbGNhbGVuZGFyL2FuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvZnVsbGNhbGVuZGFyLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLE1BQU0sRUFBRSxJQUFJO0lBQ1osTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsSUFBSTtJQUNaLFlBQVksRUFBRSxJQUFJO0lBQ2xCLFNBQVMsRUFBRSxJQUFJO0NBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBjb25zdCBPUFRJT05fSVNfREVFUCA9IHtcbiAgaGVhZGVyOiB0cnVlLFxuICBmb290ZXI6IHRydWUsXG4gIGV2ZW50czogdHJ1ZSxcbiAgZXZlbnRTb3VyY2VzOiB0cnVlLFxuICByZXNvdXJjZXM6IHRydWVcbn07XG4iXX0=
import { __decorate, __metadata } from "tslib";
import deepEqual from 'fast-deep-equal';
import { deepCopy } from './utils';
import { Component, ElementRef, Input, Output, EventEmitter, SimpleChanges, AfterViewInit, DoCheck, OnChanges, AfterContentChecked, OnDestroy } from '@angular/core';
import { Component, ElementRef, Input, AfterViewInit, DoCheck, AfterContentChecked, OnDestroy } from '@angular/core';
import { Calendar } from '@fullcalendar/core';
import { INPUT_NAMES, INPUT_IS_DEEP, OUTPUT_NAMES } from './fullcalendar-options';
import { deepCopy, shallowCopy, mapHash } from './utils';
import { OPTION_IS_DEEP } from './fullcalendar-options';
let FullCalendarComponent = class FullCalendarComponent {
constructor(element) {
this.element = element;
this.dirtyProps = {};
this.deepCopies = {}; // holds frozen states
this.windowResize = new EventEmitter();
this.dateClick = new EventEmitter();
this.eventClick = new EventEmitter();
this.eventMouseEnter = new EventEmitter();
this.eventMouseLeave = new EventEmitter();
this.select = new EventEmitter();
this.unselect = new EventEmitter();
this.loading = new EventEmitter();
this.eventPositioned = new EventEmitter();
this.eventDragStart = new EventEmitter();
this.eventDragStop = new EventEmitter();
this.eventDrop = new EventEmitter();
this.eventResizeStart = new EventEmitter();
this.eventResizeStop = new EventEmitter();
this.eventResize = new EventEmitter();
this.drop = new EventEmitter();
this.eventReceive = new EventEmitter();
this.eventLeave = new EventEmitter();
this._destroyed = new EventEmitter();
this.navLinkDayClick = new EventEmitter();
this.navLinkWeekClick = new EventEmitter();
// TODO: make these inputs...
this.viewSkeletonRender = new EventEmitter();
this.viewSkeletonDestroy = new EventEmitter();
this.datesRender = new EventEmitter();
this.datesDestroy = new EventEmitter();
this.dayRender = new EventEmitter();
this.eventRender = new EventEmitter();
this.eventDestroy = new EventEmitter();
this.resourceRender = new EventEmitter();
this.optionSnapshot = {}; // for diffing only
}
ngAfterViewInit() {
this.calendar = new Calendar(this.element.nativeElement, this.buildOptions());
const { deepChangeDetection } = this;
const options = this.options || {};
// initialize snapshot
this.optionSnapshot = mapHash(options, (optionVal, optionName) => ((deepChangeDetection && OPTION_IS_DEEP[optionName])
? deepCopy(optionVal)
: optionVal));
this.calendar = new Calendar(this.element.nativeElement, options);
this.calendar.render();
}
buildOptions() {
const options = {};
OUTPUT_NAMES.forEach(outputName => {
options[outputName] = (...args) => {
this[outputName].emit(...args);
};
});
// do after outputs, so that inputs with same name override
INPUT_NAMES.forEach(inputName => {
let inputVal = this[inputName];
if (inputVal !== undefined) { // unfortunately FC chokes when some props are set to undefined
if (this.deepChangeDetection && INPUT_IS_DEEP[inputName]) {
inputVal = deepCopy(inputVal);
this.deepCopies[inputName] = inputVal; // side effect!
}
options[inputName] = inputVal;
}
});
return options;
}
/*
called before ngOnChanges, allows us to manually detect input changes.
called much more often than ngOnChanges.
allows us to manually detect complex input changes, internal mutations to certain options.
called before ngOnChanges. called much more often than ngOnChanges.
*/
ngDoCheck() {
if (this.calendar && this.deepChangeDetection) { // not the initial render AND we do deep-mutation checks
const { deepCopies } = this;
for (const inputName in INPUT_IS_DEEP) {
if (INPUT_IS_DEEP.hasOwnProperty(inputName)) {
const inputVal = this[inputName];
if (inputVal !== undefined) { // unfortunately FC chokes when some props are set to undefined
if (!deepEqual(inputVal, deepCopies[inputName])) {
const copy = deepCopy(inputVal);
deepCopies[inputName] = copy;
this.dirtyProps[inputName] = copy;
if (this.calendar) { // not the initial render
const { deepChangeDetection, optionSnapshot } = this;
const options = this.options || {};
const updates = {};
const removals = [];
let anyChanges = false;
// detect adds and updates (and update snapshot)
for (const optionName in options) {
if (options.hasOwnProperty(optionName)) {
const optionVal = options[optionName];
if (deepChangeDetection && OPTION_IS_DEEP[optionName]) {
if (!deepEqual(optionSnapshot[optionName], optionVal)) {
optionSnapshot[optionName] = deepCopy(optionVal);
// trick FC into knowing about a nested change.
// TODO: future versions won't need this.
// can't use the previously-made deep copy because it blows away prototype-association.
updates[optionName] = shallowCopy(optionVal);
anyChanges = true;
}
}
else {
if (optionSnapshot[optionName] !== optionVal) {
optionSnapshot[optionName] = optionVal;
updates[optionName] = optionVal;
anyChanges = true;
}
}
}
}
}
}
/*
called with confirmed changes to input references
*/
ngOnChanges(changes) {
if (this.calendar) { // not the initial render
for (const inputName in changes) {
if (changes.hasOwnProperty(inputName)) {
if (this.deepCopies[inputName] === undefined) { // not already handled in ngDoCheck
this.dirtyProps[inputName] = changes[inputName].currentValue;
}
const oldOptionNames = Object.keys(optionSnapshot);
// detect removals (and update snapshot)
for (const optionName of oldOptionNames) {
if (!(optionName in options)) { // doesn't exist in new options?
delete optionSnapshot[optionName];
removals.push(optionName);
}
}
if (anyChanges) {
this.calendar.pauseRendering();
this.calendar.mutateOptions(updates, removals);
}
}
}
ngAfterContentChecked() {
const { dirtyProps } = this; // hold on to reference before clearing
if (Object.keys(dirtyProps).length > 0) {
this.dirtyProps = {}; // clear first, in case the rerender causes new dirtiness
this.calendar.mutateOptions(dirtyProps, [], false, deepEqual);
if (this.calendar) { // too defensive?
this.calendar.resumeRendering();
}
}
ngOnDestroy() {
if (this.calendar) {
if (this.calendar) { // too defensive?
this.calendar.destroy();
this.calendar = null;
}
this.calendar = null;
}

@@ -124,648 +90,8 @@ getApi() {

Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "deepChangeDetection", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "header", void 0);
], FullCalendarComponent.prototype, "options", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "footer", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "customButtons", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "buttonIcons", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "themeSystem", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "bootstrapFontAwesome", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "firstDay", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "dir", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "weekends", void 0);
__decorate([
Input(),
__metadata("design:type", Array)
], FullCalendarComponent.prototype, "hiddenDays", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "fixedWeekCount", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "weekNumbers", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "weekNumbersWithinDays", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "weekNumberCalculation", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "businessHours", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "showNonCurrentDates", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "height", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "contentHeight", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "aspectRatio", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "handleWindowResize", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "windowResizeDelay", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventLimit", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventLimitClick", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "timeZone", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "now", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "defaultView", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "allDaySlot", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "allDayText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "slotDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "slotLabelFormat", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "slotLabelInterval", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "snapDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "scrollTime", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "minTime", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "maxTime", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "slotEventOverlap", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "listDayFormat", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "listDayAltFormat", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "noEventsMessage", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "defaultDate", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "nowIndicator", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "visibleRange", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "validRange", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dateIncrement", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "dateAlignment", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "duration", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "dayCount", void 0);
__decorate([
Input(),
__metadata("design:type", Array)
], FullCalendarComponent.prototype, "locales", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "locale", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventTimeFormat", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "columnHeader", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "columnHeaderFormat", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "columnHeaderText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "columnHeaderHtml", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "titleFormat", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "weekLabel", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "displayEventTime", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "displayEventEnd", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventLimitText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dayPopoverFormat", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "navLinks", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "selectable", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "selectMirror", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "unselectAuto", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "unselectCancel", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "defaultAllDayEventDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "defaultTimedEventDuration", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "cmdFormatter", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "defaultRangeSeparator", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "selectConstraint", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "selectOverlap", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "selectAllow", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "selectMinDistance", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "editable", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "eventStartEditable", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "eventDurationEditable", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventConstraint", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventOverlap", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventAllow", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventClassName", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventClassNames", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "eventBackgroundColor", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "eventBorderColor", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "eventTextColor", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "eventColor", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "events", void 0);
__decorate([
Input(),
__metadata("design:type", Array)
], FullCalendarComponent.prototype, "eventSources", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "allDayDefault", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "startParam", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "endParam", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "lazyFetching", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "nextDayThreshold", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventOrder", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "rerenderDelay", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "dragRevertDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "dragScroll", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "longPressDelay", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "eventLongPressDelay", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "droppable", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dropAccept", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDataTransform", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "allDayMaintainDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "eventResizableFromStart", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "timeGridEventMinHeight", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "allDayHtml", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "eventDragMinDistance", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventSourceFailure", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventSourceSuccess", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "forceEventDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "progressiveEventRendering", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "selectLongPressDelay", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "timeZoneParam", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "titleRangeSeparator", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "buttonText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "views", void 0);
__decorate([
Input(),
__metadata("design:type", Array)
], FullCalendarComponent.prototype, "plugins", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "schedulerLicenseKey", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resources", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "resourceLabelText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceOrder", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "filterResourcesWithEvents", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceGroupField", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceGroupText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceAreaWidth", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceColumns", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourcesInitiallyExpanded", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "slotWidth", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "datesAboveResources", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "googleCalendarApiKey", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "refetchResourcesOnNavigate", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "eventResourceEditable", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "windowResize", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dateClick", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventClick", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventMouseEnter", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventMouseLeave", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "select", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "unselect", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "loading", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventPositioned", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDragStart", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDragStop", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDrop", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventResizeStart", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventResizeStop", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventResize", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "drop", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventReceive", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventLeave", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "_destroyed", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "navLinkDayClick", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "navLinkWeekClick", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "viewSkeletonRender", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "viewSkeletonDestroy", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "datesRender", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "datesDestroy", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dayRender", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventRender", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDestroy", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceRender", void 0);
], FullCalendarComponent.prototype, "deepChangeDetection", void 0);
FullCalendarComponent = __decorate([

@@ -779,2 +105,2 @@ Component({

export { FullCalendarComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbGNhbGVuZGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmdWxsY2FsZW5kYXIvYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9mdWxsY2FsZW5kYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLFNBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ25DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLGFBQWEsRUFDYixhQUFhLEVBQ2IsT0FBTyxFQUNQLFNBQVMsRUFDVCxtQkFBbUIsRUFDbkIsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQTRELE1BQU0sb0JBQW9CLENBQUM7QUE2Q3hHLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBTWxGLElBQWEscUJBQXFCLEdBQWxDLE1BQWEscUJBQXFCO0lBUWhDLFlBQW9CLE9BQW1CO1FBQW5CLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFIL0IsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUNyQixlQUFVLEdBQVEsRUFBRSxDQUFDLENBQUMsc0JBQXNCO1FBK08xQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDdkMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDcEMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDckMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzFDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMxQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNqQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNuQyxZQUFPLEdBQUcs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QztJQUFULE1BQU0sRUFBRTs7d0RBQXFDO0FBQ3BDO0lBQVQsTUFBTSxFQUFFOzsrREFBNEM7QUFDM0M7SUFBVCxNQUFNLEVBQUU7OzhEQUEyQztBQUMxQztJQUFULE1BQU0sRUFBRTs7MERBQXVDO0FBQ3RDO0lBQVQsTUFBTSxFQUFFOzttREFBZ0M7QUFDL0I7SUFBVCxNQUFNLEVBQUU7OzJEQUF3QztBQUN2QztJQUFULE1BQU0sRUFBRTs7eURBQXNDO0FBQ3JDO0lBQVQsTUFBTSxFQUFFOzt5REFBc0M7QUFDckM7SUFBVCxNQUFNLEVBQUU7OzhEQUEyQztBQUMxQztJQUFULE1BQU0sRUFBRTs7K0RBQTRDO0FBRTNDO0lBQVQsTUFBTSxFQUFFOztpRUFBOEM7QUFDN0M7SUFBVCxNQUFNLEVBQUU7O2tFQUErQztBQUM5QztJQUFULE1BQU0sRUFBRTs7MERBQXVDO0FBQ3RDO0lBQVQsTUFBTSxFQUFFOzsyREFBd0M7QUFDdkM7SUFBVCxNQUFNLEVBQUU7O3dEQUFxQztBQUNwQztJQUFULE1BQU0sRUFBRTs7MERBQXVDO0FBQ3RDO0lBQVQsTUFBTSxFQUFFOzsyREFBd0M7QUFDdkM7SUFBVCxNQUFNLEVBQUU7OzZEQUEwQztBQWxSeEMscUJBQXFCO0lBSmpDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxlQUFlO1FBQ3pCLFFBQVEsRUFBRSxFQUFFO0tBQ2IsQ0FBQztxQ0FTNkIsVUFBVTtHQVI1QixxQkFBcUIsQ0FtUmpDO1NBblJZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkZWVwRXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsJztcbmltcG9ydCB7IGRlZXBDb3B5IH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgRG9DaGVjayxcbiAgT25DaGFuZ2VzLFxuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBPbkRlc3Ryb3lcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYWxlbmRhciwgQnVzaW5lc3NIb3Vyc0lucHV0LCBDb25zdHJhaW50SW5wdXQsIEV2ZW50QXBpLCBQbHVnaW5EZWYgfSBmcm9tICdAZnVsbGNhbGVuZGFyL2NvcmUnO1xuXG4vLyBpbXBvcnQge1xuLy8gICBUb29sYmFySW5wdXQsXG4vLyAgIEN1c3RvbUJ1dHRvbklucHV0LFxuLy8gICBCdXR0b25JY29uc0lucHV0LCBDZWxsSW5mbyxcbi8vICAgQnV0dG9uVGV4dENvbXBvdW5kSW5wdXQsXG4vLyAgIFZpZXdPcHRpb25zSW5wdXRcbi8vIH0gZnJvbSAnQGZ1bGxjYWxlbmRhci9jb3JlL3R5cGVzL2lucHV0LXR5cGVzJztcbi8vIGltcG9ydCB7IERhdGVJbnB1dCB9IGZyb20gJ0BmdWxsY2FsZW5kYXIvY29yZS9kYXRlbGliL2Vudic7XG4vLyBpbXBvcnQgeyBEdXJhdGlvbklucHV0IH0gZnJvbSAnQGZ1bGxjYWxlbmRhci9jb3JlL2RhdGVsaWIvZHVyYXRpb24nO1xuLy8gaW1wb3J0IHsgRm9ybWF0dGVySW5wdXQgfSBmcm9tICdAZnVsbGNhbGVuZGFyL2NvcmUvZGF0ZWxpYi9mb3JtYXR0aW5nJztcbi8vIGltcG9ydCB7IERhdGVSYW5nZUlucHV0IH0gZnJvbSAnQGZ1bGxjYWxlbmRhci9jb3JlL2RhdGVsaWIvZGF0ZS1yYW5nZSc7XG4vLyBpbXBvcnQgeyBSYXdMb2NhbGUsIExvY2FsZVNpbmd1bGFyQXJnIH0gZnJvbSAnQGZ1bGxjYWxlbmRhci9jb3JlL2RhdGVsaWIvbG9jYWxlJztcbi8vIGltcG9ydCB7IE92ZXJsYXBGdW5jLCBBbGxvd0Z1bmMgfSBmcm9tICdAZnVsbGNhbGVuZGFyL2NvcmUvdmFsaWRhdGlvbic7XG4vLyBpbXBvcnQge1xuLy8gICBFdmVudFNvdXJjZUlucHV0LFxuLy8gICBFdmVudElucHV0VHJhbnNmb3JtZXIsXG4vLyAgIEV2ZW50U291cmNlRXJyb3JSZXNwb25zZUhhbmRsZXIsXG4vLyAgIEV2ZW50U291cmNlU3VjY2Vzc1Jlc3BvbnNlSGFuZGxlclxuLy8gfSBmcm9tICdAZnVsbGNhbGVuZGFyL2NvcmUvc3RydWN0cy9ldmVudC1zb3VyY2UnO1xuXG4vLyBuZWVkIHR5cGUgYW55LCBiZWNhdXNlIG5nY2Mgd3JvbmcgYnVpbGQgaW4gQU9ULFxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMzQwMjdcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mdWxsY2FsZW5kYXIvZnVsbGNhbGVuZGFyLWFuZ3VsYXIvcHVsbC8yNzVcblxudHlwZSBEYXRlSW5wdXQgPSBhbnk7XG50eXBlIER1cmF0aW9uSW5wdXQgPSBhbnk7XG50eXBlIEZvcm1hdHRlcklucHV0ID0gYW55O1xudHlwZSBEYXRlUmFuZ2VJbnB1dCA9IGFueTtcbnR5cGUgUmF3TG9jYWxlID0gYW55O1xudHlwZSBMb2NhbGVTaW5ndWxhckFyZyA9IGFueTtcbnR5cGUgT3ZlcmxhcEZ1bmMgPSBhbnk7XG50eXBlIEFsbG93RnVuYyA9IGFueTtcbnR5cGUgQ3VzdG9tQnV0dG9uSW5wdXQgPSBhbnk7XG50eXBlIEJ1dHRvbkljb25zSW5wdXQgPSBhbnk7XG50eXBlIENlbGxJbmZvID0gYW55O1xudHlwZSBCdXR0b25UZXh0Q29tcG91bmRJbnB1dCA9IGFueTtcbnR5cGUgVG9vbGJhcklucHV0ID0gYW55O1xudHlwZSBWaWV3T3B0aW9uc0lucHV0ID0gYW55O1xudHlwZSBFdmVudFNvdXJjZUlucHV0ID0gYW55O1xudHlwZSBFdmVudElucHV0VHJhbnNmb3JtZXIgPSBhbnk7XG50eXBlIEV2ZW50U291cmNlRXJyb3JSZXNwb25zZUhhbmRsZXIgPSBhbnk7XG50eXBlIEV2ZW50U291cmNlU3VjY2Vzc1Jlc3BvbnNlSGFuZGxlciA9IGFueTtcblxuaW1wb3J0IHsgSU5QVVRfTkFNRVMsIElOUFVUX0lTX0RFRVAsIE9VVFBVVF9OQU1FUyB9IGZyb20gJy4vZnVsbGNhbGVuZGFyLW9wdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmdWxsLWNhbGVuZGFyJyxcbiAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGNsYXNzIEZ1bGxDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIERvQ2hlY2ssIE9uQ2hhbmdlcywgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBkZWVwQ2hhbmdlRGV0ZWN0aW9uPzogYm9vbGVhbjtcblxuICBwcml2YXRlIGNhbGVuZGFyOiBDYWxlbmRhcjtcbiAgcHJpdmF0ZSBkaXJ0eVByb3BzOiBhbnkgPSB7fTtcbiAgcHJpdmF0ZSBkZWVwQ29waWVzOiBhbnkgPSB7fTsgLy8gaG9sZHMgZnJvemVuIHN0YXRlc1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZikge1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY2FsZW5kYXIgPSBuZXcgQ2FsZW5kYXIodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHRoaXMuYnVpbGRPcHRpb25zKCkpO1xuICAgIHRoaXMuY2FsZW5kYXIucmVuZGVyKCk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkT3B0aW9ucygpIHtcbiAgICBjb25zdCBvcHRpb25zID0ge307XG5cbiAgICBPVVRQVVRfTkFNRVMuZm9yRWFjaChvdXRwdXROYW1lID0+IHtcbiAgICAgIG9wdGlvbnNbb3V0cHV0TmFtZV0gPSAoLi4uYXJncykgPT4ge1xuICAgICAgICB0aGlzW291dHB1dE5hbWVdLmVtaXQoLi4uYXJncyk7XG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgLy8gZG8gYWZ0ZXIgb3V0cHV0cywgc28gdGhhdCBpbnB1dHMgd2l0aCBzYW1lIG5hbWUgb3ZlcnJpZGVcbiAgICBJTlBVVF9OQU1FUy5mb3JFYWNoKGlucHV0TmFtZSA9PiB7XG4gICAgICBsZXQgaW5wdXRWYWwgPSB0aGlzW2lucHV0TmFtZV07XG5cbiAgICAgIGlmIChpbnB1dFZhbCAhPT0gdW5kZWZpbmVkKSB7IC8vIHVuZm9ydHVuYXRlbHkgRkMgY2hva2VzIHdoZW4gc29tZSBwcm9wcyBhcmUgc2V0IHRvIHVuZGVmaW5lZFxuXG4gICAgICAgIGlmICh0aGlzLmRlZXBDaGFuZ2VEZXRlY3Rpb24gJiYgSU5QVVRfSVNfREVFUFtpbnB1dE5hbWVdKSB7XG4gICAgICAgICAgaW5wdXRWYWwgPSBkZWVwQ29weShpbnB1dFZhbCk7XG4gICAgICAgICAgdGhpcy5kZWVwQ29waWVzW2lucHV0TmFtZV0gPSBpbnB1dFZhbDsgLy8gc2lkZSBlZmZlY3QhXG4gICAgICAgIH1cblxuICAgICAgICBvcHRpb25zW2lucHV0TmFtZV0gPSBpbnB1dFZhbDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbiAgLypcbiAgY2FsbGVkIGJlZm9yZSBuZ09uQ2hhbmdlcywgYWxsb3dzIHVzIHRvIG1hbnVhbGx5IGRldGVjdCBpbnB1dCBjaGFuZ2VzLlxuICBjYWxsZWQgbXVjaCBtb3JlIG9mdGVuIHRoYW4gbmdPbkNoYW5nZXMuXG4gICovXG4gIG5nRG9DaGVjaygpIHtcbiAgICBpZiAodGhpcy5jYWxlbmRhciAmJiB0aGlzLmRlZXBDaGFuZ2VEZXRlY3Rpb24pIHsgLy8gbm90IHRoZSBpbml0aWFsIHJlbmRlciBBTkQgd2UgZG8gZGVlcC1tdXRhdGlvbiBjaGVja3NcbiAgICAgIGNvbnN0IHsgZGVlcENvcGllcyB9ID0gdGhpcztcblxuICAgICAgZm9yIChjb25zdCBpbnB1dE5hbWUgaW4gSU5QVVRfSVNfREVFUCkge1xuICAgICAgICBpZiAoSU5QVVRfSVNfREVFUC5oYXNPd25Qcm9wZXJ0eShpbnB1dE5hbWUpKSB7XG4gICAgICAgICAgY29uc3QgaW5wdXRWYWwgPSB0aGlzW2lucHV0TmFtZV07XG5cbiAgICAgICAgICBpZiAoaW5wdXRWYWwgIT09IHVuZGVmaW5lZCkgeyAvLyB1bmZvcnR1bmF0ZWx5IEZDIGNob2tlcyB3aGVuIHNvbWUgcHJvcHMgYXJlIHNldCB0byB1bmRlZmluZWRcbiAgICAgICAgICAgIGlmICghZGVlcEVxdWFsKGlucHV0VmFsLCBkZWVwQ29waWVzW2lucHV0TmFtZV0pKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGNvcHkgPSBkZWVwQ29weShpbnB1dFZhbCk7XG4gICAgICAgICAgICAgIGRlZXBDb3BpZXNbaW5wdXROYW1lXSA9IGNvcHk7XG4gICAgICAgICAgICAgIHRoaXMuZGlydHlQcm9wc1tpbnB1dE5hbWVdID0gY29weTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKlxuICBjYWxsZWQgd2l0aCBjb25maXJtZWQgY2hhbmdlcyB0byBpbnB1dCByZWZlcmVuY2VzXG4gICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAodGhpcy5jYWxlbmRhcikgeyAvLyBub3QgdGhlIGluaXRpYWwgcmVuZGVyXG5cbiAgICAgIGZvciAoY29uc3QgaW5wdXROYW1lIGluIGNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuaGFzT3duUHJvcGVydHkoaW5wdXROYW1lKSkge1xuICAgICAgICAgIGlmICh0aGlzLmRlZXBDb3BpZXNbaW5wdXROYW1lXSA9PT0gdW5kZWZpbmVkKSB7IC8vIG5vdCBhbHJlYWR5IGhhbmRsZWQgaW4gbmdEb0NoZWNrXG4gICAgICAgICAgICB0aGlzLmRpcnR5UHJvcHNbaW5wdXROYW1lXSA9IGNoYW5nZXNbaW5wdXROYW1lXS5jdXJyZW50VmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCkge1xuICAgIGNvbnN0IHsgZGlydHlQcm9wcyB9ID0gdGhpczsgLy8gaG9sZCBvbiB0byByZWZlcmVuY2UgYmVmb3JlIGNsZWFyaW5nXG5cbiAgICBpZiAoT2JqZWN0LmtleXMoZGlydHlQcm9wcykubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5kaXJ0eVByb3BzID0ge307IC8vIGNsZWFyIGZpcnN0LCBpbiBjYXNlIHRoZSByZXJlbmRlciBjYXVzZXMgbmV3IGRpcnRpbmVzc1xuICAgICAgdGhpcy5jYWxlbmRhci5tdXRhdGVPcHRpb25zKGRpcnR5UHJvcHMsIFtdLCBmYWxzZSwgZGVlcEVxdWFsKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5jYWxlbmRhcikge1xuICAgICAgdGhpcy5jYWxlbmRhci5kZXN0cm95KCk7XG4gICAgfVxuICAgIHRoaXMuY2FsZW5kYXIgPSBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldEFwaSgpOiBDYWxlbmRhciB7XG4gICAgcmV0dXJuIHRoaXMuY2FsZW5kYXI7XG4gIH1cblxuICAvKlxuICBUT0RPOiB0aGUgZm9sbG93aW5nIElucHV0cy9PdXRwdXRzIHNob3VsZCBiZSBhdXRvbWF0aWNhbGx5IHJld3JpdHRlbiBmb3IgZWFjaCB2ZXJzaW9uIGJ1bXBcbiAgb2YgdGhlIGNvcmUgcHJvamVjdC4gQSBzY3JpcHQgd2lsbCBiZSB3cml0dGVuIHRvIG92ZXJ3cml0ZSB0aGUgYWN0dWFseSBzb3VyY2UgY29kZSBoZXJlLlxuICBJdCBpcyB1c3VhbGx5IGdvb2QgdG8gcHV0IGEgY2xhc3MncyBwcm9wZXJ0eSBkZWNsYXJhdGlvbnMgQkVGT1JFIHRoZSBtZXRob2RzLCBidXQgaW4gdGhpcyBjYXNlLFxuICBzaW5jZSB0aGUgcHJvcGVydGllcyB3aWxsIGJlIHByb2dyYW1tYXRpY2FsbHkgZ2VuZXJhdGVkLCBiZXR0ZXIgdG8gcHV0IHRoZW0gYWZ0ZXIuXG4gICovXG5cbiAgQElucHV0KCkgaGVhZGVyPzogYm9vbGVhbiB8IFRvb2xiYXJJbnB1dDtcbiAgQElucHV0KCkgZm9vdGVyPzogYm9vbGVhbiB8IFRvb2xiYXJJbnB1dDtcbiAgQElucHV0KCkgY3VzdG9tQnV0dG9ucz86IHsgW25hbWU6IHN0cmluZ106IEN1c3RvbUJ1dHRvbklucHV0IH07XG4gIEBJbnB1dCgpIGJ1dHRvbkljb25zPzogYm9vbGVhbiB8IEJ1dHRvbkljb25zSW5wdXQ7XG4gIEBJbnB1dCgpIHRoZW1lU3lzdGVtPzogJ3N0YW5kYXJkJyB8IHN0cmluZztcbiAgQElucHV0KCkgYm9vdHN0cmFwRm9udEF3ZXNvbWU/OiBib29sZWFuIHwgQnV0dG9uSWNvbnNJbnB1dDtcbiAgQElucHV0KCkgZmlyc3REYXk/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGRpcj86ICdsdHInIHwgJ3J0bCcgfCAnYXV0byc7XG4gIEBJbnB1dCgpIHdlZWtlbmRzPzogYm9vbGVhbjtcbiAgQElucHV0KCkgaGlkZGVuRGF5cz86IG51bWJlcltdO1xuICBASW5wdXQoKSBmaXhlZFdlZWtDb3VudD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHdlZWtOdW1iZXJzPzogYm9vbGVhbjtcbiAgQElucHV0KCkgd2Vla051bWJlcnNXaXRoaW5EYXlzPzogYm9vbGVhbjtcbiAgQElucHV0KCkgd2Vla051bWJlckNhbGN1bGF0aW9uPzogJ2xvY2FsJyB8ICdJU08nIHwgKChtOiBEYXRlKSA9PiBudW1iZXIpO1xuICBASW5wdXQoKSBidXNpbmVzc0hvdXJzPzogQnVzaW5lc3NIb3Vyc0lucHV0O1xuICBASW5wdXQoKSBzaG93Tm9uQ3VycmVudERhdGVzPzogYm9vbGVhbjtcbiAgQElucHV0KCkgaGVpZ2h0PzogbnVtYmVyIHwgJ2F1dG8nIHwgJ3BhcmVudCcgfCAoKCkgPT4gbnVtYmVyKTtcbiAgQElucHV0KCkgY29udGVudEhlaWdodD86IG51bWJlciB8ICdhdXRvJyB8ICgoKSA9PiBudW1iZXIpO1xuICBASW5wdXQoKSBhc3BlY3RSYXRpbz86IG51bWJlcjtcbiAgQElucHV0KCkgaGFuZGxlV2luZG93UmVzaXplPzogYm9vbGVhbjtcbiAgQElucHV0KCkgd2luZG93UmVzaXplRGVsYXk/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGV2ZW50TGltaXQ/OiBib29sZWFuIHwgbnVtYmVyO1xuICBASW5wdXQoKSBldmVudExpbWl0Q2xpY2s/OiAncG9wb3ZlcicgfCAnd2VlaycgfCAnZGF5JyB8IHN0cmluZyB8ICgoY2VsbGluZm86IENlbGxJbmZvLCBqc2V2ZW50OiBFdmVudCkgPT4gdm9pZCk7XG4gIEBJbnB1dCgpIHRpbWVab25lPzogc3RyaW5nIHwgYm9vbGVhbjtcbiAgQElucHV0KCkgbm93PzogRGF0ZUlucHV0IHwgKCgpID0+IERhdGVJbnB1dCk7XG4gIEBJbnB1dCgpIGRlZmF1bHRWaWV3Pzogc3RyaW5nO1xuICBASW5wdXQoKSBhbGxEYXlTbG90PzogYm9vbGVhbjtcbiAgQElucHV0KCkgYWxsRGF5VGV4dD86IHN0cmluZztcbiAgQElucHV0KCkgc2xvdER1cmF0aW9uPzogRHVyYXRpb25JbnB1dDtcbiAgQElucHV0KCkgc2xvdExhYmVsRm9ybWF0PzogRm9ybWF0dGVySW5wdXQ7XG4gIEBJbnB1dCgpIHNsb3RMYWJlbEludGVydmFsPzogRHVyYXRpb25JbnB1dDtcbiAgQElucHV0KCkgc25hcER1cmF0aW9uPzogRHVyYXRpb25JbnB1dDtcbiAgQElucHV0KCkgc2Nyb2xsVGltZT86IER1cmF0aW9uSW5wdXQ7XG4gIEBJbnB1dCgpIG1pblRpbWU/OiBEdXJhdGlvbklucHV0O1xuICBASW5wdXQoKSBtYXhUaW1lPzogRHVyYXRpb25JbnB1dDtcbiAgQElucHV0KCkgc2xvdEV2ZW50T3ZlcmxhcD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGxpc3REYXlGb3JtYXQ/OiBGb3JtYXR0ZXJJbnB1dCB8IGJvb2xlYW47XG4gIEBJbnB1dCgpIGxpc3REYXlBbHRGb3JtYXQ/OiBGb3JtYXR0ZXJJbnB1dCB8IGJvb2xlYW47XG4gIEBJbnB1dCgpIG5vRXZlbnRzTWVzc2FnZT86IHN0cmluZztcbiAgQElucHV0KCkgZGVmYXVsdERhdGU/OiBEYXRlSW5wdXQ7XG4gIEBJbnB1dCgpIG5vd0luZGljYXRvcj86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHZpc2libGVSYW5nZT86ICgoY3VycmVudERhdGU6IERhdGUpID0+IERhdGVSYW5nZUlucHV0KSB8IERhdGVSYW5nZUlucHV0O1xuICBASW5wdXQoKSB2YWxpZFJhbmdlPzogRGF0ZVJhbmdlSW5wdXQ7XG4gIEBJbnB1dCgpIGRhdGVJbmNyZW1lbnQ/OiBEdXJhdGlvbklucHV0O1xuICBASW5wdXQoKSBkYXRlQWxpZ25tZW50Pzogc3RyaW5nO1xuICBASW5wdXQoKSBkdXJhdGlvbj86IER1cmF0aW9uSW5wdXQ7XG4gIEBJbnB1dCgpIGRheUNvdW50PzogbnVtYmVyO1xuICBASW5wdXQoKSBsb2NhbGVzPzogUmF3TG9jYWxlW107XG4gIEBJbnB1dCgpIGxvY2FsZT86IExvY2FsZVNpbmd1bGFyQXJnO1xuICBASW5wdXQoKSBldmVudFRpbWVGb3JtYXQ/OiBGb3JtYXR0ZXJJbnB1dDtcbiAgQElucHV0KCkgY29sdW1uSGVhZGVyPzogYm9vbGVhbjtcbiAgQElucHV0KCkgY29sdW1uSGVhZGVyRm9ybWF0PzogRm9ybWF0dGVySW5wdXQ7XG4gIEBJbnB1dCgpIGNvbHVtbkhlYWRlclRleHQ/OiBzdHJpbmcgfCAoKGRhdGU6IERhdGVJbnB1dCkgPT4gc3RyaW5nKTtcbiAgQElucHV0KCkgY29sdW1uSGVhZGVySHRtbD86IHN0cmluZyB8ICgoZGF0ZTogRGF0ZUlucHV0KSA9PiBzdHJpbmcpO1xuICBASW5wdXQoKSB0aXRsZUZvcm1hdD86IEZvcm1hdHRlcklucHV0O1xuICBASW5wdXQoKSB3ZWVrTGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRpc3BsYXlFdmVudFRpbWU/OiBib29sZWFuO1xuICBASW5wdXQoKSBkaXNwbGF5RXZlbnRFbmQ/OiBib29sZWFuO1xuICBASW5wdXQoKSBldmVudExpbWl0VGV4dD86IHN0cmluZyB8ICgoZXZlbnRDbnQ6IG51bWJlcikgPT4gc3RyaW5nKTtcbiAgQElucHV0KCkgZGF5UG9wb3ZlckZvcm1hdD86IEZvcm1hdHRlcklucHV0O1xuICBASW5wdXQoKSBuYXZMaW5rcz86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNlbGVjdGFibGU/OiBib29sZWFuO1xuICBASW5wdXQoKSBzZWxlY3RNaXJyb3I/OiBib29sZWFuO1xuICBASW5wdXQoKSB1bnNlbGVjdEF1dG8/OiBib29sZWFuO1xuICBASW5wdXQoKSB1bnNlbGVjdENhbmNlbD86IHN0cmluZztcbiAgQElucHV0KCkgZGVmYXVsdEFsbERheUV2ZW50RHVyYXRpb24/OiBEdXJhdGlvbklucHV0O1xuICBASW5wdXQoKSBkZWZhdWx0VGltZWRFdmVudER1cmF0aW9uPzogRHVyYXRpb25JbnB1dDtcbiAgQElucHV0KCkgY21kRm9ybWF0dGVyPzogc3RyaW5nO1xuICBASW5wdXQoKSBkZWZhdWx0UmFuZ2VTZXBhcmF0b3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNlbGVjdENvbnN0cmFpbnQ/OiBDb25zdHJhaW50SW5wdXQ7XG4gIEBJbnB1dCgpIHNlbGVjdE92ZXJsYXA/OiBib29sZWFuIHwgT3ZlcmxhcEZ1bmM7XG4gIEBJbnB1dCgpIHNlbGVjdEFsbG93PzogQWxsb3dGdW5jO1xuICBASW5wdXQoKSBzZWxlY3RNaW5EaXN0YW5jZT86IG51bWJlcjtcbiAgQElucHV0KCkgZWRpdGFibGU/OiBib29sZWFuO1xuICBASW5wdXQoKSBldmVudFN0YXJ0RWRpdGFibGU/OiBib29sZWFuO1xuICBASW5wdXQoKSBldmVudER1cmF0aW9uRWRpdGFibGU/OiBib29sZWFuO1xuICBASW5wdXQoKSBldmVudENvbnN0cmFpbnQ/OiBDb25zdHJhaW50SW5wdXQ7XG4gIEBJbnB1dCgpIGV2ZW50T3ZlcmxhcD86IGJvb2xlYW4gfCBPdmVybGFwRnVuYztcbiAgQElucHV0KCkgZXZlbnRBbGxvdz86IEFsbG93RnVuYztcbiAgQElucHV0KCkgZXZlbnRDbGFzc05hbWU/OiBzdHJpbmdbXSB8IHN0cmluZztcbiAgQElucHV0KCkgZXZlbnRDbGFzc05hbWVzPzogc3RyaW5nW10gfCBzdHJpbmc7XG4gIEBJbnB1dCgpIGV2ZW50QmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSBldmVudEJvcmRlckNvbG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSBldmVudFRleHRDb2xvcj86IHN0cmluZztcbiAgQElucHV0KCkgZXZlbnRDb2xvcj86IHN0cmluZztcbiAgQElucHV0KCkgZXZlbnRzPzogRXZlbnRTb3VyY2VJbnB1dDtcbiAgQElucHV0KCkgZXZlbnRTb3VyY2VzPzogRXZlbnRTb3VyY2VJbnB1dFtdO1xuICBASW5wdXQoKSBhbGxEYXlEZWZhdWx0PzogYm9vbGVhbjtcbiAgQElucHV0KCkgc3RhcnRQYXJhbT86IHN0cmluZztcbiAgQElucHV0KCkgZW5kUGFyYW0/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhenlGZXRjaGluZz86IGJvb2xlYW47XG4gIEBJbnB1dCgpIG5leHREYXlUaHJlc2hvbGQ/OiBEdXJhdGlvbklucHV0O1xuICBASW5wdXQoKSBldmVudE9yZGVyPzogc3RyaW5nIHwgQXJyYXk8KChhOiBFdmVudEFwaSwgYjogRXZlbnRBcGkpID0+IG51bWJlcikgfCAoc3RyaW5nIHwgKChhOiBFdmVudEFwaSwgYjogRXZlbnRBcGkpID0+IG51bWJlcikpPjtcbiAgQElucHV0KCkgcmVyZW5kZXJEZWxheT86IG51bWJlciB8IG51bGw7XG4gIEBJbnB1dCgpIGRyYWdSZXZlcnREdXJhdGlvbj86IG51bWJlcjtcbiAgQElucHV0KCkgZHJhZ1Njcm9sbD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGxvbmdQcmVzc0RlbGF5PzogbnVtYmVyO1xuICBASW5wdXQoKSBldmVudExvbmdQcmVzc0RlbGF5PzogbnVtYmVyO1xuICBASW5wdXQoKSBkcm9wcGFibGU/OiBib29sZWFuO1xuICBASW5wdXQoKSBkcm9wQWNjZXB0Pzogc3RyaW5nIHwgKChkcmFnZ2FibGU6IGFueSkgPT4gYm9vbGVhbik7XG4gIEBJbnB1dCgpIGV2ZW50RGF0YVRyYW5zZm9ybT86IEV2ZW50SW5wdXRUcmFuc2Zvcm1lcjtcbiAgQElucHV0KCkgYWxsRGF5TWFpbnRhaW5EdXJhdGlvbj86IEJvb2xlYW47XG4gIEBJbnB1dCgpIGV2ZW50UmVzaXphYmxlRnJvbVN0YXJ0PzogQm9vbGVhbjtcbiAgQElucHV0KCkgdGltZUdyaWRFdmVudE1pbkhlaWdodD86IG51bWJlcjtcbiAgQElucHV0KCkgYWxsRGF5SHRtbD86IHN0cmluZztcbiAgQElucHV0KCkgZXZlbnREcmFnTWluRGlzdGFuY2U/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGV2ZW50U291cmNlRmFpbHVyZT86IEV2ZW50U291cmNlRXJyb3JSZXNwb25zZUhhbmRsZXI7XG4gIEBJbnB1dCgpIGV2ZW50U291cmNlU3VjY2Vzcz86IEV2ZW50U291cmNlU3VjY2Vzc1Jlc3BvbnNlSGFuZGxlcjtcbiAgQElucHV0KCkgZm9yY2VFdmVudER1cmF0aW9uPzogYm9vbGVhbjtcbiAgQElucHV0KCkgcHJvZ3Jlc3NpdmVFdmVudFJlbmRlcmluZz86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNlbGVjdExvbmdQcmVzc0RlbGF5PzogbnVtYmVyO1xuICBASW5wdXQoKSB0aW1lWm9uZVBhcmFtPzogc3RyaW5nO1xuICBASW5wdXQoKSB0aXRsZVJhbmdlU2VwYXJhdG9yPzogc3RyaW5nO1xuICAvLyBjb21wb3VuZCBPcHRpb25zSW5wdXQuLi5cbiAgQElucHV0KCkgYnV0dG9uVGV4dD86IEJ1dHRvblRleHRDb21wb3VuZElucHV0O1xuICBASW5wdXQoKSB2aWV3cz86IHsgW3ZpZXdJZDogc3RyaW5nXTogVmlld09wdGlvbnNJbnB1dCB9O1xuICBASW5wdXQoKSBwbHVnaW5zPzogKFBsdWdpbkRlZiB8IHN0cmluZylbXTtcbiAgLy8gc2NoZWR1bGVyLi4uXG4gIEBJbnB1dCgpIHNjaGVkdWxlckxpY2Vuc2VLZXk/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlc291cmNlcz86IGFueTtcbiAgQElucHV0KCkgcmVzb3VyY2VMYWJlbFRleHQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlc291cmNlT3JkZXI/OiBhbnk7XG4gIEBJbnB1dCgpIGZpbHRlclJlc291cmNlc1dpdGhFdmVudHM/OiBhbnk7XG4gIEBJbnB1dCgpIHJlc291cmNlVGV4dD86IGFueTtcbiAgQElucHV0KCkgcmVzb3VyY2VHcm91cEZpZWxkPzogYW55O1xuICBASW5wdXQoKSByZXNvdXJjZUdyb3VwVGV4dD86IGFueTtcbiAgQElucHV0KCkgcmVzb3VyY2VBcmVhV2lkdGg/OiBhbnk7XG4gIEBJbnB1dCgpIHJlc291cmNlQ29sdW1ucz86IGFueTtcbiAgQElucHV0KCkgcmVzb3VyY2VzSW5pdGlhbGx5RXhwYW5kZWQ/OiBhbnk7XG4gIEBJbnB1dCgpIHNsb3RXaWR0aD86IGFueTtcbiAgQElucHV0KCkgZGF0ZXNBYm92ZVJlc291cmNlcz86IGFueTtcbiAgQElucHV0KCkgZ29vZ2xlQ2FsZW5kYXJBcGlLZXk/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlZmV0Y2hSZXNvdXJjZXNPbk5hdmlnYXRlPzogYm9vbGVhbjtcbiAgQElucHV0KCkgZXZlbnRSZXNvdXJjZUVkaXRhYmxlPzogYm9vbGVhbjtcblxuICBAT3V0cHV0KCkgd2luZG93UmVzaXplID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBkYXRlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGV2ZW50Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGV2ZW50TW91c2VFbnRlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZXZlbnRNb3VzZUxlYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBzZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHVuc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBsb2FkaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBldmVudFBvc2l0aW9uZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGV2ZW50RHJhZ1N0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBldmVudERyYWdTdG9wID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBldmVudERyb3AgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGV2ZW50UmVzaXplU3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGV2ZW50UmVzaXplU3RvcCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZXZlbnRSZXNpemUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGRyb3AgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGV2ZW50UmVjZWl2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZXZlbnRMZWF2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgX2Rlc3Ryb3llZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgbmF2TGlua0RheUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBuYXZMaW5rV2Vla0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIC8vIFRPRE86IG1ha2UgdGhlc2UgaW5wdXRzLi4uXG4gIEBPdXRwdXQoKSB2aWV3U2tlbGV0b25SZW5kZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHZpZXdTa2VsZXRvbkRlc3Ryb3kgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGRhdGVzUmVuZGVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBkYXRlc0Rlc3Ryb3kgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGRheVJlbmRlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZXZlbnRSZW5kZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGV2ZW50RGVzdHJveSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgcmVzb3VyY2VSZW5kZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbGNhbGVuZGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmdWxsY2FsZW5kYXIvYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9mdWxsY2FsZW5kYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLFNBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsYUFBYSxFQUNiLE9BQU8sRUFDUCxtQkFBbUIsRUFDbkIsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQWdCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU14RCxJQUFhLHFCQUFxQixHQUFsQyxNQUFhLHFCQUFxQjtJQVFoQyxZQUFvQixPQUFtQjtRQUFuQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBRi9CLG1CQUFjLEdBQVcsRUFBRSxDQUFDLENBQUMsbUJBQW1CO0lBR3hELENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxFQUFFLG1CQUFtQixFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3JDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBRW5DLHNCQUFzQjtRQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUNoRSxDQUFDLG1CQUFtQixJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNqRCxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztZQUNyQixDQUFDLENBQUMsU0FBUyxDQUNkLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7OztNQUdFO0lBQ0YsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLHlCQUF5QjtZQUM1QyxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLEdBQUcsSUFBSSxDQUFDO1lBQ3JELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1lBQ25DLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNuQixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDcEIsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBRXZCLGdEQUFnRDtZQUNoRCxLQUFLLE1BQU0sVUFBVSxJQUFJLE9BQU8sRUFBRTtnQkFDaEMsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxFQUFFO29CQUN0QyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBRXRDLElBQUksbUJBQW1CLElBQUksY0FBYyxDQUFDLFVBQVUsQ0FBQyxFQUFFO3dCQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsRUFBRSxTQUFTLENBQUMsRUFBRTs0QkFFckQsY0FBYyxDQUFDLFVBQVUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQzs0QkFFakQsK0NBQStDOzRCQUMvQyx5Q0FBeUM7NEJBQ3pDLHVGQUF1Rjs0QkFDdkYsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQzs0QkFFN0MsVUFBVSxHQUFHLElBQUksQ0FBQzt5QkFDbkI7cUJBQ0Y7eUJBQU07d0JBQ0wsSUFBSSxjQUFjLENBQUMsVUFBVSxDQUFDLEtBQUssU0FBUyxFQUFFOzRCQUM1QyxjQUFjLENBQUMsVUFBVSxDQUFDLEdBQUcsU0FBUyxDQUFDOzRCQUN2QyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsU0FBUyxDQUFDOzRCQUNoQyxVQUFVLEdBQUcsSUFBSSxDQUFDO3lCQUNuQjtxQkFDRjtpQkFDRjthQUNGO1lBRUQsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUVuRCx3Q0FBd0M7WUFDeEMsS0FBSyxNQUFNLFVBQVUsSUFBSSxjQUFjLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLGdDQUFnQztvQkFDOUQsT0FBTyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ2xDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQzNCO2FBQ0Y7WUFFRCxJQUFJLFVBQVUsRUFBRTtnQkFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7YUFDaEQ7U0FDRjtJQUNILENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsaUJBQWlCO1lBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLGlCQUFpQjtZQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVNLE1BQU07UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztDQUVGLENBQUE7O1lBM0Y4QixVQUFVOztBQU45QjtJQUFSLEtBQUssRUFBRTs7c0RBQXdCO0FBQ3ZCO0lBQVIsS0FBSyxFQUFFOztrRUFBK0I7QUFINUIscUJBQXFCO0lBSmpDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxlQUFlO1FBQ3pCLFFBQVEsRUFBRSxFQUFFO0tBQ2IsQ0FBQztxQ0FTNkIsVUFBVTtHQVI1QixxQkFBcUIsQ0FtR2pDO1NBbkdZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkZWVwRXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIERvQ2hlY2ssXG4gIEFmdGVyQ29udGVudENoZWNrZWQsXG4gIE9uRGVzdHJveVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbGVuZGFyLCBPcHRpb25zSW5wdXQgfSBmcm9tICdAZnVsbGNhbGVuZGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVlcENvcHksIHNoYWxsb3dDb3B5LCBtYXBIYXNoIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBPUFRJT05fSVNfREVFUCB9IGZyb20gJy4vZnVsbGNhbGVuZGFyLW9wdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmdWxsLWNhbGVuZGFyJyxcbiAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGNsYXNzIEZ1bGxDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIERvQ2hlY2ssIEFmdGVyQ29udGVudENoZWNrZWQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgb3B0aW9ucz86IE9wdGlvbnNJbnB1dDtcbiAgQElucHV0KCkgZGVlcENoYW5nZURldGVjdGlvbj86IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBjYWxlbmRhcjogQ2FsZW5kYXI7XG4gIHByaXZhdGUgb3B0aW9uU25hcHNob3Q6IG9iamVjdCA9IHt9OyAvLyBmb3IgZGlmZmluZyBvbmx5XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmKSB7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3QgeyBkZWVwQ2hhbmdlRGV0ZWN0aW9uIH0gPSB0aGlzO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMgfHwge307XG5cbiAgICAvLyBpbml0aWFsaXplIHNuYXBzaG90XG4gICAgdGhpcy5vcHRpb25TbmFwc2hvdCA9IG1hcEhhc2gob3B0aW9ucywgKG9wdGlvblZhbCwgb3B0aW9uTmFtZSkgPT4gKFxuICAgICAgKGRlZXBDaGFuZ2VEZXRlY3Rpb24gJiYgT1BUSU9OX0lTX0RFRVBbb3B0aW9uTmFtZV0pXG4gICAgICAgID8gZGVlcENvcHkob3B0aW9uVmFsKVxuICAgICAgICA6IG9wdGlvblZhbFxuICAgICkpO1xuXG4gICAgdGhpcy5jYWxlbmRhciA9IG5ldyBDYWxlbmRhcih0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgb3B0aW9ucyk7XG4gICAgdGhpcy5jYWxlbmRhci5yZW5kZXIoKTtcbiAgfVxuXG4gIC8qXG4gIGFsbG93cyB1cyB0byBtYW51YWxseSBkZXRlY3QgY29tcGxleCBpbnB1dCBjaGFuZ2VzLCBpbnRlcm5hbCBtdXRhdGlvbnMgdG8gY2VydGFpbiBvcHRpb25zLlxuICBjYWxsZWQgYmVmb3JlIG5nT25DaGFuZ2VzLiBjYWxsZWQgbXVjaCBtb3JlIG9mdGVuIHRoYW4gbmdPbkNoYW5nZXMuXG4gICovXG4gIG5nRG9DaGVjaygpIHtcbiAgICBpZiAodGhpcy5jYWxlbmRhcikgeyAvLyBub3QgdGhlIGluaXRpYWwgcmVuZGVyXG4gICAgICBjb25zdCB7IGRlZXBDaGFuZ2VEZXRlY3Rpb24sIG9wdGlvblNuYXBzaG90IH0gPSB0aGlzO1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucyB8fCB7fTtcbiAgICAgIGNvbnN0IHVwZGF0ZXMgPSB7fTtcbiAgICAgIGNvbnN0IHJlbW92YWxzID0gW107XG4gICAgICBsZXQgYW55Q2hhbmdlcyA9IGZhbHNlO1xuXG4gICAgICAvLyBkZXRlY3QgYWRkcyBhbmQgdXBkYXRlcyAoYW5kIHVwZGF0ZSBzbmFwc2hvdClcbiAgICAgIGZvciAoY29uc3Qgb3B0aW9uTmFtZSBpbiBvcHRpb25zKSB7XG4gICAgICAgIGlmIChvcHRpb25zLmhhc093blByb3BlcnR5KG9wdGlvbk5hbWUpKSB7XG4gICAgICAgICAgY29uc3Qgb3B0aW9uVmFsID0gb3B0aW9uc1tvcHRpb25OYW1lXTtcblxuICAgICAgICAgIGlmIChkZWVwQ2hhbmdlRGV0ZWN0aW9uICYmIE9QVElPTl9JU19ERUVQW29wdGlvbk5hbWVdKSB7XG4gICAgICAgICAgICBpZiAoIWRlZXBFcXVhbChvcHRpb25TbmFwc2hvdFtvcHRpb25OYW1lXSwgb3B0aW9uVmFsKSkge1xuXG4gICAgICAgICAgICAgIG9wdGlvblNuYXBzaG90W29wdGlvbk5hbWVdID0gZGVlcENvcHkob3B0aW9uVmFsKTtcblxuICAgICAgICAgICAgICAvLyB0cmljayBGQyBpbnRvIGtub3dpbmcgYWJvdXQgYSBuZXN0ZWQgY2hhbmdlLlxuICAgICAgICAgICAgICAvLyBUT0RPOiBmdXR1cmUgdmVyc2lvbnMgd29uJ3QgbmVlZCB0aGlzLlxuICAgICAgICAgICAgICAvLyBjYW4ndCB1c2UgdGhlIHByZXZpb3VzbHktbWFkZSBkZWVwIGNvcHkgYmVjYXVzZSBpdCBibG93cyBhd2F5IHByb3RvdHlwZS1hc3NvY2lhdGlvbi5cbiAgICAgICAgICAgICAgdXBkYXRlc1tvcHRpb25OYW1lXSA9IHNoYWxsb3dDb3B5KG9wdGlvblZhbCk7XG5cbiAgICAgICAgICAgICAgYW55Q2hhbmdlcyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25TbmFwc2hvdFtvcHRpb25OYW1lXSAhPT0gb3B0aW9uVmFsKSB7XG4gICAgICAgICAgICAgIG9wdGlvblNuYXBzaG90W29wdGlvbk5hbWVdID0gb3B0aW9uVmFsO1xuICAgICAgICAgICAgICB1cGRhdGVzW29wdGlvbk5hbWVdID0gb3B0aW9uVmFsO1xuICAgICAgICAgICAgICBhbnlDaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3Qgb2xkT3B0aW9uTmFtZXMgPSBPYmplY3Qua2V5cyhvcHRpb25TbmFwc2hvdCk7XG5cbiAgICAgIC8vIGRldGVjdCByZW1vdmFscyAoYW5kIHVwZGF0ZSBzbmFwc2hvdClcbiAgICAgIGZvciAoY29uc3Qgb3B0aW9uTmFtZSBvZiBvbGRPcHRpb25OYW1lcykge1xuICAgICAgICBpZiAoIShvcHRpb25OYW1lIGluIG9wdGlvbnMpKSB7IC8vIGRvZXNuJ3QgZXhpc3QgaW4gbmV3IG9wdGlvbnM/XG4gICAgICAgICAgZGVsZXRlIG9wdGlvblNuYXBzaG90W29wdGlvbk5hbWVdO1xuICAgICAgICAgIHJlbW92YWxzLnB1c2gob3B0aW9uTmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGFueUNoYW5nZXMpIHtcbiAgICAgICAgdGhpcy5jYWxlbmRhci5wYXVzZVJlbmRlcmluZygpO1xuICAgICAgICB0aGlzLmNhbGVuZGFyLm11dGF0ZU9wdGlvbnModXBkYXRlcywgcmVtb3ZhbHMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpIHtcbiAgICBpZiAodGhpcy5jYWxlbmRhcikgeyAvLyB0b28gZGVmZW5zaXZlP1xuICAgICAgdGhpcy5jYWxlbmRhci5yZXN1bWVSZW5kZXJpbmcoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5jYWxlbmRhcikgeyAvLyB0b28gZGVmZW5zaXZlP1xuICAgICAgdGhpcy5jYWxlbmRhci5kZXN0cm95KCk7XG4gICAgICB0aGlzLmNhbGVuZGFyID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0QXBpKCk6IENhbGVuZGFyIHtcbiAgICByZXR1cm4gdGhpcy5jYWxlbmRhcjtcbiAgfVxuXG59XG4iXX0=

@@ -20,3 +20,14 @@ const hasOwnProperty = Object.prototype.hasOwnProperty;

}
function mapHash(input, func) {
export function shallowCopy(val) {
if (typeof val === 'object') {
if (Array.isArray(val)) {
val = Array.prototype.slice.call(val);
}
else if (val) { // non-null
val = Object.assign({}, val);
}
}
return val;
}
export function mapHash(input, func) {
const output = {};

@@ -30,2 +41,2 @@ for (const key in input) {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZnVsbGNhbGVuZGFyL2FuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUM7QUFFdkQ7OztFQUdFO0FBQ0YsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUFLO0lBRTVCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN4QixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7S0FFNUI7U0FBTSxJQUFJLEtBQUssWUFBWSxJQUFJLEVBQUU7UUFDaEMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztLQUVsQztTQUFNLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssRUFBRSxFQUFFLGtCQUFrQjtRQUNqRSxPQUFPLE9BQU8sQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7S0FFakM7U0FBTSxFQUFFLHdDQUF3QztRQUMvQyxPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0gsQ0FBQztBQUVELFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJO0lBQzFCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUVsQixLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBRTtRQUN2QixJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ25DLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ3JDO0tBQ0Y7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5jb25zdCBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbi8qXG5SZWFsbHkgc2ltcGxlIGNsb25lIHV0aWxpdHkuIE9ubHkgY29waWVzIHBsYWluIGFycmF5cywgb2JqZWN0cywgYW5kIERhdGVzLiBUcmFuc2ZlcnMgZXZlcnl0aGluZyBlbHNlIGFzLWlzLlxuV2FudGVkIHRvIHVzZSBhIHRoaXJkLXBhcnR5IGxpYiwgYnV0IG5vbmUgZGlkIGV4YWN0bHkgdGhpcy5cbiovXG5leHBvcnQgZnVuY3Rpb24gZGVlcENvcHkoaW5wdXQpIHtcblxuICBpZiAoQXJyYXkuaXNBcnJheShpbnB1dCkpIHtcbiAgICByZXR1cm4gaW5wdXQubWFwKGRlZXBDb3B5KTtcblxuICB9IGVsc2UgaWYgKGlucHV0IGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIHJldHVybiBuZXcgRGF0ZShpbnB1dC52YWx1ZU9mKCkpO1xuXG4gIH0gZWxzZSBpZiAodHlwZW9mIGlucHV0ID09PSAnb2JqZWN0JyAmJiBpbnB1dCkgeyAvLyBub24tbnVsbCBvYmplY3RcbiAgICByZXR1cm4gbWFwSGFzaChpbnB1dCwgZGVlcENvcHkpO1xuXG4gIH0gZWxzZSB7IC8vIGV2ZXJ5dGhpbmcgZWxzZSAobnVsbCwgZnVuY3Rpb24sIGV0YylcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWFwSGFzaChpbnB1dCwgZnVuYykge1xuICBjb25zdCBvdXRwdXQgPSB7fTtcblxuICBmb3IgKGNvbnN0IGtleSBpbiBpbnB1dCkge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGlucHV0LCBrZXkpKSB7XG4gICAgICBvdXRwdXRba2V5XSA9IGZ1bmMoaW5wdXRba2V5XSwga2V5KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0cHV0O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZnVsbGNhbGVuZGFyL2FuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUM7QUFFdkQ7OztFQUdFO0FBQ0YsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUFLO0lBRTVCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN4QixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7S0FFNUI7U0FBTSxJQUFJLEtBQUssWUFBWSxJQUFJLEVBQUU7UUFDaEMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztLQUVsQztTQUFNLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssRUFBRSxFQUFFLGtCQUFrQjtRQUNqRSxPQUFPLE9BQU8sQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7S0FFakM7U0FBTSxFQUFFLHdDQUF3QztRQUMvQyxPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0gsQ0FBQztBQUdELE1BQU0sVUFBVSxXQUFXLENBQUMsR0FBRztJQUM3QixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRTtRQUMzQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdEIsR0FBRyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN2QzthQUFNLElBQUksR0FBRyxFQUFFLEVBQUUsV0FBVztZQUMzQixHQUFHLHFCQUFRLEdBQUcsQ0FBRSxDQUFDO1NBQ2xCO0tBQ0Y7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFHRCxNQUFNLFVBQVUsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJO0lBQ2pDLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUVsQixLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBRTtRQUN2QixJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ25DLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ3JDO0tBQ0Y7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5jb25zdCBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbi8qXG5SZWFsbHkgc2ltcGxlIGNsb25lIHV0aWxpdHkuIE9ubHkgY29waWVzIHBsYWluIGFycmF5cywgb2JqZWN0cywgYW5kIERhdGVzLiBUcmFuc2ZlcnMgZXZlcnl0aGluZyBlbHNlIGFzLWlzLlxuV2FudGVkIHRvIHVzZSBhIHRoaXJkLXBhcnR5IGxpYiwgYnV0IG5vbmUgZGlkIGV4YWN0bHkgdGhpcy5cbiovXG5leHBvcnQgZnVuY3Rpb24gZGVlcENvcHkoaW5wdXQpIHtcblxuICBpZiAoQXJyYXkuaXNBcnJheShpbnB1dCkpIHtcbiAgICByZXR1cm4gaW5wdXQubWFwKGRlZXBDb3B5KTtcblxuICB9IGVsc2UgaWYgKGlucHV0IGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIHJldHVybiBuZXcgRGF0ZShpbnB1dC52YWx1ZU9mKCkpO1xuXG4gIH0gZWxzZSBpZiAodHlwZW9mIGlucHV0ID09PSAnb2JqZWN0JyAmJiBpbnB1dCkgeyAvLyBub24tbnVsbCBvYmplY3RcbiAgICByZXR1cm4gbWFwSGFzaChpbnB1dCwgZGVlcENvcHkpO1xuXG4gIH0gZWxzZSB7IC8vIGV2ZXJ5dGhpbmcgZWxzZSAobnVsbCwgZnVuY3Rpb24sIGV0YylcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gc2hhbGxvd0NvcHkodmFsKSB7XG4gIGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0Jykge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgIHZhbCA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHZhbCk7XG4gICAgfSBlbHNlIGlmICh2YWwpIHsgLy8gbm9uLW51bGxcbiAgICAgIHZhbCA9IHsgLi4udmFsIH07XG4gICAgfVxuICB9XG4gIHJldHVybiB2YWw7XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIG1hcEhhc2goaW5wdXQsIGZ1bmMpIHtcbiAgY29uc3Qgb3V0cHV0ID0ge307XG5cbiAgZm9yIChjb25zdCBrZXkgaW4gaW5wdXQpIHtcbiAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChpbnB1dCwga2V5KSkge1xuICAgICAgb3V0cHV0W2tleV0gPSBmdW5jKGlucHV0W2tleV0sIGtleSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG91dHB1dDtcbn1cbiJdfQ==

@@ -1,143 +0,2 @@

/*
the docs point to this file as an index of options.
when this files is moved, update the docs.
*/
export var INPUT_NAMES = [
'header',
'footer',
'customButtons',
'buttonIcons',
'themeSystem',
'bootstrapFontAwesome',
'firstDay',
'dir',
'weekends',
'hiddenDays',
'fixedWeekCount',
'weekNumbers',
'weekNumbersWithinDays',
'weekNumberCalculation',
'businessHours',
'showNonCurrentDates',
'height',
'contentHeight',
'aspectRatio',
'handleWindowResize',
'windowResizeDelay',
'eventLimit',
'eventLimitClick',
'timeZone',
'now',
'defaultView',
'allDaySlot',
'allDayText',
'slotDuration',
'slotLabelFormat',
'slotLabelInterval',
'snapDuration',
'scrollTime',
'minTime',
'maxTime',
'slotEventOverlap',
'listDayFormat',
'listDayAltFormat',
'noEventsMessage',
'defaultDate',
'nowIndicator',
'visibleRange',
'validRange',
'dateIncrement',
'dateAlignment',
'duration',
'dayCount',
'locales',
'locale',
'eventTimeFormat',
'columnHeader',
'columnHeaderFormat',
'columnHeaderText',
'columnHeaderHtml',
'titleFormat',
'weekLabel',
'displayEventTime',
'displayEventEnd',
'eventLimitText',
'dayPopoverFormat',
'navLinks',
'selectable',
'selectMirror',
'selectMinDistance',
'unselectAuto',
'unselectCancel',
'defaultAllDayEventDuration',
'defaultTimedEventDuration',
'cmdFormatter',
'defaultRangeSeparator',
'selectConstraint',
'selectOverlap',
'selectAllow',
'editable',
'eventStartEditable',
'eventDurationEditable',
'eventConstraint',
'eventOverlap',
'eventAllow',
'eventClassName',
'eventClassNames',
'eventBackgroundColor',
'eventBorderColor',
'eventTextColor',
'eventColor',
'events',
'eventSources',
'allDayDefault',
'startParam',
'endParam',
'lazyFetching',
'nextDayThreshold',
'eventOrder',
'rerenderDelay',
'dragRevertDuration',
'dragScroll',
'longPressDelay',
'eventLongPressDelay',
'droppable',
'dropAccept',
'eventDataTransform',
'allDayMaintainDuration',
'eventResizableFromStart',
'timeGridEventMinHeight',
'allDayHtml',
'eventDragMinDistance',
'eventSourceFailure',
'eventSourceSuccess',
'forceEventDuration',
'progressiveEventRendering',
'selectLongPressDelay',
'selectMinDistance',
'timeZoneParam',
'titleRangeSeparator',
// compound OptionsInput...
'buttonText',
'views',
'plugins',
// scheduler...
'schedulerLicenseKey',
'resources',
'resourceLabelText',
'resourceOrder',
'filterResourcesWithEvents',
'resourceText',
'resourceGroupField',
'resourceGroupText',
'resourceAreaWidth',
'resourceColumns',
'resourcesInitiallyExpanded',
'slotWidth',
'datesAboveResources',
'googleCalendarApiKey',
'refetchResourcesOnNavigate',
'eventResourceEditable'
];
export var INPUT_IS_DEEP = {
export var OPTION_IS_DEEP = {
header: true,

@@ -149,34 +8,2 @@ footer: true,

};
export var OUTPUT_NAMES = [
'windowResize',
'dateClick',
'eventClick',
'navLinkDayClick',
'navLinkWeekClick',
'eventMouseEnter',
'eventMouseLeave',
'select',
'unselect',
'loading',
'eventPositioned',
'eventDragStart',
'eventDragStop',
'eventDrop',
'eventResizeStart',
'eventResizeStop',
'eventResize',
'drop',
'eventReceive',
'eventLeave',
'_destroyed',
// TODO: make these inputs...
'viewSkeletonRender',
'viewSkeletonDestroy',
'datesRender',
'datesDestroy',
'dayRender',
'eventRender',
'eventDestroy',
'resourceRender'
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbGNhbGVuZGFyLW9wdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZnVsbGNhbGVuZGFyL2FuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvZnVsbGNhbGVuZGFyLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztFQUdFO0FBRUYsTUFBTSxDQUFDLElBQU0sV0FBVyxHQUFHO0lBQ3pCLFFBQVE7SUFDUixRQUFRO0lBQ1IsZUFBZTtJQUNmLGFBQWE7SUFDYixhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLFVBQVU7SUFDVixLQUFLO0lBQ0wsVUFBVTtJQUNWLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsYUFBYTtJQUNiLHVCQUF1QjtJQUN2Qix1QkFBdUI7SUFDdkIsZUFBZTtJQUNmLHFCQUFxQjtJQUNyQixRQUFRO0lBQ1IsZUFBZTtJQUNmLGFBQWE7SUFDYixvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLFlBQVk7SUFDWixpQkFBaUI7SUFDakIsVUFBVTtJQUNWLEtBQUs7SUFDTCxhQUFhO0lBQ2IsWUFBWTtJQUNaLFlBQVk7SUFDWixjQUFjO0lBQ2QsaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsWUFBWTtJQUNaLFNBQVM7SUFDVCxTQUFTO0lBQ1Qsa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixrQkFBa0I7SUFDbEIsaUJBQWlCO0lBQ2pCLGFBQWE7SUFDYixjQUFjO0lBQ2QsY0FBYztJQUNkLFlBQVk7SUFDWixlQUFlO0lBQ2YsZUFBZTtJQUNmLFVBQVU7SUFDVixVQUFVO0lBQ1YsU0FBUztJQUNULFFBQVE7SUFDUixpQkFBaUI7SUFDakIsY0FBYztJQUNkLG9CQUFvQjtJQUNwQixrQkFBa0I7SUFDbEIsa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLGlCQUFpQjtJQUNqQixnQkFBZ0I7SUFDaEIsa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVixZQUFZO0lBQ1osY0FBYztJQUNkLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLDRCQUE0QjtJQUM1QiwyQkFBMkI7SUFDM0IsY0FBYztJQUNkLHVCQUF1QjtJQUN2QixrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLGFBQWE7SUFDYixVQUFVO0lBQ1Ysb0JBQW9CO0lBQ3BCLHVCQUF1QjtJQUN2QixpQkFBaUI7SUFDakIsY0FBYztJQUNkLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsaUJBQWlCO0lBQ2pCLHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDbEIsZ0JBQWdCO0lBQ2hCLFlBQVk7SUFDWixRQUFRO0lBQ1IsY0FBYztJQUNkLGVBQWU7SUFDZixZQUFZO0lBQ1osVUFBVTtJQUNWLGNBQWM7SUFDZCxrQkFBa0I7SUFDbEIsWUFBWTtJQUNaLGVBQWU7SUFDZixvQkFBb0I7SUFDcEIsWUFBWTtJQUNaLGdCQUFnQjtJQUNoQixxQkFBcUI7SUFDckIsV0FBVztJQUNYLFlBQVk7SUFDWixvQkFBb0I7SUFDcEIsd0JBQXdCO0lBQ3hCLHlCQUF5QjtJQUN6Qix3QkFBd0I7SUFDeEIsWUFBWTtJQUNaLHNCQUFzQjtJQUN0QixvQkFBb0I7SUFDcEIsb0JBQW9CO0lBQ3BCLG9CQUFvQjtJQUNwQiwyQkFBMkI7SUFDM0Isc0JBQXNCO0lBQ3RCLG1CQUFtQjtJQUNuQixlQUFlO0lBQ2YscUJBQXFCO0lBQ3JCLDJCQUEyQjtJQUMzQixZQUFZO0lBQ1osT0FBTztJQUNQLFNBQVM7SUFDVCxlQUFlO0lBQ2YscUJBQXFCO0lBQ3JCLFdBQVc7SUFDWCxtQkFBbUI7SUFDbkIsZUFBZTtJQUNmLDJCQUEyQjtJQUMzQixjQUFjO0lBQ2Qsb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsaUJBQWlCO0lBQ2pCLDRCQUE0QjtJQUM1QixXQUFXO0lBQ1gscUJBQXFCO0lBQ3JCLHNCQUFzQjtJQUN0Qiw0QkFBNEI7SUFDNUIsdUJBQXVCO0NBQ3hCLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSxhQUFhLEdBQUc7SUFDM0IsTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsSUFBSTtJQUNaLE1BQU0sRUFBRSxJQUFJO0lBQ1osWUFBWSxFQUFFLElBQUk7SUFDbEIsU0FBUyxFQUFFLElBQUk7Q0FDaEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxJQUFNLFlBQVksR0FBRztJQUMxQixjQUFjO0lBQ2QsV0FBVztJQUNYLFlBQVk7SUFDWixpQkFBaUI7SUFDakIsa0JBQWtCO0lBQ2xCLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsUUFBUTtJQUNSLFVBQVU7SUFDVixTQUFTO0lBQ1QsaUJBQWlCO0lBQ2pCLGdCQUFnQjtJQUNoQixlQUFlO0lBQ2YsV0FBVztJQUNYLGtCQUFrQjtJQUNsQixpQkFBaUI7SUFDakIsYUFBYTtJQUNiLE1BQU07SUFDTixjQUFjO0lBQ2QsWUFBWTtJQUNaLFlBQVk7SUFDWiw2QkFBNkI7SUFDN0Isb0JBQW9CO0lBQ3BCLHFCQUFxQjtJQUNyQixhQUFhO0lBQ2IsY0FBYztJQUNkLFdBQVc7SUFDWCxhQUFhO0lBQ2IsY0FBYztJQUNkLGdCQUFnQjtDQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbnRoZSBkb2NzIHBvaW50IHRvIHRoaXMgZmlsZSBhcyBhbiBpbmRleCBvZiBvcHRpb25zLlxud2hlbiB0aGlzIGZpbGVzIGlzIG1vdmVkLCB1cGRhdGUgdGhlIGRvY3MuXG4qL1xuXG5leHBvcnQgY29uc3QgSU5QVVRfTkFNRVMgPSBbXG4gICdoZWFkZXInLFxuICAnZm9vdGVyJyxcbiAgJ2N1c3RvbUJ1dHRvbnMnLFxuICAnYnV0dG9uSWNvbnMnLFxuICAndGhlbWVTeXN0ZW0nLFxuICAnYm9vdHN0cmFwRm9udEF3ZXNvbWUnLFxuICAnZmlyc3REYXknLFxuICAnZGlyJyxcbiAgJ3dlZWtlbmRzJyxcbiAgJ2hpZGRlbkRheXMnLFxuICAnZml4ZWRXZWVrQ291bnQnLFxuICAnd2Vla051bWJlcnMnLFxuICAnd2Vla051bWJlcnNXaXRoaW5EYXlzJyxcbiAgJ3dlZWtOdW1iZXJDYWxjdWxhdGlvbicsXG4gICdidXNpbmVzc0hvdXJzJyxcbiAgJ3Nob3dOb25DdXJyZW50RGF0ZXMnLFxuICAnaGVpZ2h0JyxcbiAgJ2NvbnRlbnRIZWlnaHQnLFxuICAnYXNwZWN0UmF0aW8nLFxuICAnaGFuZGxlV2luZG93UmVzaXplJyxcbiAgJ3dpbmRvd1Jlc2l6ZURlbGF5JyxcbiAgJ2V2ZW50TGltaXQnLFxuICAnZXZlbnRMaW1pdENsaWNrJyxcbiAgJ3RpbWVab25lJyxcbiAgJ25vdycsXG4gICdkZWZhdWx0VmlldycsXG4gICdhbGxEYXlTbG90JyxcbiAgJ2FsbERheVRleHQnLFxuICAnc2xvdER1cmF0aW9uJyxcbiAgJ3Nsb3RMYWJlbEZvcm1hdCcsXG4gICdzbG90TGFiZWxJbnRlcnZhbCcsXG4gICdzbmFwRHVyYXRpb24nLFxuICAnc2Nyb2xsVGltZScsXG4gICdtaW5UaW1lJyxcbiAgJ21heFRpbWUnLFxuICAnc2xvdEV2ZW50T3ZlcmxhcCcsXG4gICdsaXN0RGF5Rm9ybWF0JyxcbiAgJ2xpc3REYXlBbHRGb3JtYXQnLFxuICAnbm9FdmVudHNNZXNzYWdlJyxcbiAgJ2RlZmF1bHREYXRlJyxcbiAgJ25vd0luZGljYXRvcicsXG4gICd2aXNpYmxlUmFuZ2UnLFxuICAndmFsaWRSYW5nZScsXG4gICdkYXRlSW5jcmVtZW50JyxcbiAgJ2RhdGVBbGlnbm1lbnQnLFxuICAnZHVyYXRpb24nLFxuICAnZGF5Q291bnQnLFxuICAnbG9jYWxlcycsXG4gICdsb2NhbGUnLFxuICAnZXZlbnRUaW1lRm9ybWF0JyxcbiAgJ2NvbHVtbkhlYWRlcicsXG4gICdjb2x1bW5IZWFkZXJGb3JtYXQnLFxuICAnY29sdW1uSGVhZGVyVGV4dCcsXG4gICdjb2x1bW5IZWFkZXJIdG1sJyxcbiAgJ3RpdGxlRm9ybWF0JyxcbiAgJ3dlZWtMYWJlbCcsXG4gICdkaXNwbGF5RXZlbnRUaW1lJyxcbiAgJ2Rpc3BsYXlFdmVudEVuZCcsXG4gICdldmVudExpbWl0VGV4dCcsXG4gICdkYXlQb3BvdmVyRm9ybWF0JyxcbiAgJ25hdkxpbmtzJyxcbiAgJ3NlbGVjdGFibGUnLFxuICAnc2VsZWN0TWlycm9yJyxcbiAgJ3NlbGVjdE1pbkRpc3RhbmNlJyxcbiAgJ3Vuc2VsZWN0QXV0bycsXG4gICd1bnNlbGVjdENhbmNlbCcsXG4gICdkZWZhdWx0QWxsRGF5RXZlbnREdXJhdGlvbicsXG4gICdkZWZhdWx0VGltZWRFdmVudER1cmF0aW9uJyxcbiAgJ2NtZEZvcm1hdHRlcicsXG4gICdkZWZhdWx0UmFuZ2VTZXBhcmF0b3InLFxuICAnc2VsZWN0Q29uc3RyYWludCcsXG4gICdzZWxlY3RPdmVybGFwJyxcbiAgJ3NlbGVjdEFsbG93JyxcbiAgJ2VkaXRhYmxlJyxcbiAgJ2V2ZW50U3RhcnRFZGl0YWJsZScsXG4gICdldmVudER1cmF0aW9uRWRpdGFibGUnLFxuICAnZXZlbnRDb25zdHJhaW50JyxcbiAgJ2V2ZW50T3ZlcmxhcCcsXG4gICdldmVudEFsbG93JyxcbiAgJ2V2ZW50Q2xhc3NOYW1lJyxcbiAgJ2V2ZW50Q2xhc3NOYW1lcycsXG4gICdldmVudEJhY2tncm91bmRDb2xvcicsXG4gICdldmVudEJvcmRlckNvbG9yJyxcbiAgJ2V2ZW50VGV4dENvbG9yJyxcbiAgJ2V2ZW50Q29sb3InLFxuICAnZXZlbnRzJyxcbiAgJ2V2ZW50U291cmNlcycsXG4gICdhbGxEYXlEZWZhdWx0JyxcbiAgJ3N0YXJ0UGFyYW0nLFxuICAnZW5kUGFyYW0nLFxuICAnbGF6eUZldGNoaW5nJyxcbiAgJ25leHREYXlUaHJlc2hvbGQnLFxuICAnZXZlbnRPcmRlcicsXG4gICdyZXJlbmRlckRlbGF5JyxcbiAgJ2RyYWdSZXZlcnREdXJhdGlvbicsXG4gICdkcmFnU2Nyb2xsJyxcbiAgJ2xvbmdQcmVzc0RlbGF5JyxcbiAgJ2V2ZW50TG9uZ1ByZXNzRGVsYXknLFxuICAnZHJvcHBhYmxlJyxcbiAgJ2Ryb3BBY2NlcHQnLFxuICAnZXZlbnREYXRhVHJhbnNmb3JtJyxcbiAgJ2FsbERheU1haW50YWluRHVyYXRpb24nLFxuICAnZXZlbnRSZXNpemFibGVGcm9tU3RhcnQnLFxuICAndGltZUdyaWRFdmVudE1pbkhlaWdodCcsXG4gICdhbGxEYXlIdG1sJyxcbiAgJ2V2ZW50RHJhZ01pbkRpc3RhbmNlJyxcbiAgJ2V2ZW50U291cmNlRmFpbHVyZScsXG4gICdldmVudFNvdXJjZVN1Y2Nlc3MnLFxuICAnZm9yY2VFdmVudER1cmF0aW9uJyxcbiAgJ3Byb2dyZXNzaXZlRXZlbnRSZW5kZXJpbmcnLFxuICAnc2VsZWN0TG9uZ1ByZXNzRGVsYXknLFxuICAnc2VsZWN0TWluRGlzdGFuY2UnLFxuICAndGltZVpvbmVQYXJhbScsXG4gICd0aXRsZVJhbmdlU2VwYXJhdG9yJyxcbiAgLy8gY29tcG91bmQgT3B0aW9uc0lucHV0Li4uXG4gICdidXR0b25UZXh0JyxcbiAgJ3ZpZXdzJyxcbiAgJ3BsdWdpbnMnLFxuICAvLyBzY2hlZHVsZXIuLi5cbiAgJ3NjaGVkdWxlckxpY2Vuc2VLZXknLFxuICAncmVzb3VyY2VzJyxcbiAgJ3Jlc291cmNlTGFiZWxUZXh0JyxcbiAgJ3Jlc291cmNlT3JkZXInLFxuICAnZmlsdGVyUmVzb3VyY2VzV2l0aEV2ZW50cycsXG4gICdyZXNvdXJjZVRleHQnLFxuICAncmVzb3VyY2VHcm91cEZpZWxkJyxcbiAgJ3Jlc291cmNlR3JvdXBUZXh0JyxcbiAgJ3Jlc291cmNlQXJlYVdpZHRoJyxcbiAgJ3Jlc291cmNlQ29sdW1ucycsXG4gICdyZXNvdXJjZXNJbml0aWFsbHlFeHBhbmRlZCcsXG4gICdzbG90V2lkdGgnLFxuICAnZGF0ZXNBYm92ZVJlc291cmNlcycsXG4gICdnb29nbGVDYWxlbmRhckFwaUtleScsXG4gICdyZWZldGNoUmVzb3VyY2VzT25OYXZpZ2F0ZScsXG4gICdldmVudFJlc291cmNlRWRpdGFibGUnXG5dO1xuXG5leHBvcnQgY29uc3QgSU5QVVRfSVNfREVFUCA9IHtcbiAgaGVhZGVyOiB0cnVlLFxuICBmb290ZXI6IHRydWUsXG4gIGV2ZW50czogdHJ1ZSxcbiAgZXZlbnRTb3VyY2VzOiB0cnVlLFxuICByZXNvdXJjZXM6IHRydWVcbn07XG5cbmV4cG9ydCBjb25zdCBPVVRQVVRfTkFNRVMgPSBbXG4gICd3aW5kb3dSZXNpemUnLFxuICAnZGF0ZUNsaWNrJyxcbiAgJ2V2ZW50Q2xpY2snLFxuICAnbmF2TGlua0RheUNsaWNrJyxcbiAgJ25hdkxpbmtXZWVrQ2xpY2snLFxuICAnZXZlbnRNb3VzZUVudGVyJyxcbiAgJ2V2ZW50TW91c2VMZWF2ZScsXG4gICdzZWxlY3QnLFxuICAndW5zZWxlY3QnLFxuICAnbG9hZGluZycsXG4gICdldmVudFBvc2l0aW9uZWQnLFxuICAnZXZlbnREcmFnU3RhcnQnLFxuICAnZXZlbnREcmFnU3RvcCcsXG4gICdldmVudERyb3AnLFxuICAnZXZlbnRSZXNpemVTdGFydCcsXG4gICdldmVudFJlc2l6ZVN0b3AnLFxuICAnZXZlbnRSZXNpemUnLFxuICAnZHJvcCcsXG4gICdldmVudFJlY2VpdmUnLFxuICAnZXZlbnRMZWF2ZScsXG4gICdfZGVzdHJveWVkJyxcbiAgLy8gVE9ETzogbWFrZSB0aGVzZSBpbnB1dHMuLi5cbiAgJ3ZpZXdTa2VsZXRvblJlbmRlcicsXG4gICd2aWV3U2tlbGV0b25EZXN0cm95JyxcbiAgJ2RhdGVzUmVuZGVyJyxcbiAgJ2RhdGVzRGVzdHJveScsXG4gICdkYXlSZW5kZXInLFxuICAnZXZlbnRSZW5kZXInLFxuICAnZXZlbnREZXN0cm95JyxcbiAgJ3Jlc291cmNlUmVuZGVyJ1xuXTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbGNhbGVuZGFyLW9wdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZnVsbGNhbGVuZGFyL2FuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvZnVsbGNhbGVuZGFyLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxDQUFDLElBQU0sY0FBYyxHQUFHO0lBQzVCLE1BQU0sRUFBRSxJQUFJO0lBQ1osTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsSUFBSTtJQUNaLFlBQVksRUFBRSxJQUFJO0lBQ2xCLFNBQVMsRUFBRSxJQUFJO0NBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBjb25zdCBPUFRJT05fSVNfREVFUCA9IHtcbiAgaGVhZGVyOiB0cnVlLFxuICBmb290ZXI6IHRydWUsXG4gIGV2ZW50czogdHJ1ZSxcbiAgZXZlbnRTb3VyY2VzOiB0cnVlLFxuICByZXNvdXJjZXM6IHRydWVcbn07XG4iXX0=

@@ -1,120 +0,91 @@

import { __decorate, __metadata, __read, __spread } from "tslib";
import { __decorate, __metadata, __values } from "tslib";
import deepEqual from 'fast-deep-equal';
import { deepCopy } from './utils';
import { Component, ElementRef, Input, Output, EventEmitter, SimpleChanges, AfterViewInit, DoCheck, OnChanges, AfterContentChecked, OnDestroy } from '@angular/core';
import { Component, ElementRef, Input, AfterViewInit, DoCheck, AfterContentChecked, OnDestroy } from '@angular/core';
import { Calendar } from '@fullcalendar/core';
import { INPUT_NAMES, INPUT_IS_DEEP, OUTPUT_NAMES } from './fullcalendar-options';
import { deepCopy, shallowCopy, mapHash } from './utils';
import { OPTION_IS_DEEP } from './fullcalendar-options';
var FullCalendarComponent = /** @class */ (function () {
function FullCalendarComponent(element) {
this.element = element;
this.dirtyProps = {};
this.deepCopies = {}; // holds frozen states
this.windowResize = new EventEmitter();
this.dateClick = new EventEmitter();
this.eventClick = new EventEmitter();
this.eventMouseEnter = new EventEmitter();
this.eventMouseLeave = new EventEmitter();
this.select = new EventEmitter();
this.unselect = new EventEmitter();
this.loading = new EventEmitter();
this.eventPositioned = new EventEmitter();
this.eventDragStart = new EventEmitter();
this.eventDragStop = new EventEmitter();
this.eventDrop = new EventEmitter();
this.eventResizeStart = new EventEmitter();
this.eventResizeStop = new EventEmitter();
this.eventResize = new EventEmitter();
this.drop = new EventEmitter();
this.eventReceive = new EventEmitter();
this.eventLeave = new EventEmitter();
this._destroyed = new EventEmitter();
this.navLinkDayClick = new EventEmitter();
this.navLinkWeekClick = new EventEmitter();
// TODO: make these inputs...
this.viewSkeletonRender = new EventEmitter();
this.viewSkeletonDestroy = new EventEmitter();
this.datesRender = new EventEmitter();
this.datesDestroy = new EventEmitter();
this.dayRender = new EventEmitter();
this.eventRender = new EventEmitter();
this.eventDestroy = new EventEmitter();
this.resourceRender = new EventEmitter();
this.optionSnapshot = {}; // for diffing only
}
FullCalendarComponent.prototype.ngAfterViewInit = function () {
this.calendar = new Calendar(this.element.nativeElement, this.buildOptions());
var deepChangeDetection = this.deepChangeDetection;
var options = this.options || {};
// initialize snapshot
this.optionSnapshot = mapHash(options, function (optionVal, optionName) { return ((deepChangeDetection && OPTION_IS_DEEP[optionName])
? deepCopy(optionVal)
: optionVal); });
this.calendar = new Calendar(this.element.nativeElement, options);
this.calendar.render();
};
FullCalendarComponent.prototype.buildOptions = function () {
var _this = this;
var options = {};
OUTPUT_NAMES.forEach(function (outputName) {
options[outputName] = function () {
var _a;
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
(_a = _this[outputName]).emit.apply(_a, __spread(args));
};
});
// do after outputs, so that inputs with same name override
INPUT_NAMES.forEach(function (inputName) {
var inputVal = _this[inputName];
if (inputVal !== undefined) { // unfortunately FC chokes when some props are set to undefined
if (_this.deepChangeDetection && INPUT_IS_DEEP[inputName]) {
inputVal = deepCopy(inputVal);
_this.deepCopies[inputName] = inputVal; // side effect!
}
options[inputName] = inputVal;
}
});
return options;
};
/*
called before ngOnChanges, allows us to manually detect input changes.
called much more often than ngOnChanges.
allows us to manually detect complex input changes, internal mutations to certain options.
called before ngOnChanges. called much more often than ngOnChanges.
*/
FullCalendarComponent.prototype.ngDoCheck = function () {
if (this.calendar && this.deepChangeDetection) { // not the initial render AND we do deep-mutation checks
var deepCopies = this.deepCopies;
for (var inputName in INPUT_IS_DEEP) {
if (INPUT_IS_DEEP.hasOwnProperty(inputName)) {
var inputVal = this[inputName];
if (inputVal !== undefined) { // unfortunately FC chokes when some props are set to undefined
if (!deepEqual(inputVal, deepCopies[inputName])) {
var copy = deepCopy(inputVal);
deepCopies[inputName] = copy;
this.dirtyProps[inputName] = copy;
var e_1, _a;
if (this.calendar) { // not the initial render
var _b = this, deepChangeDetection = _b.deepChangeDetection, optionSnapshot = _b.optionSnapshot;
var options = this.options || {};
var updates = {};
var removals = [];
var anyChanges = false;
// detect adds and updates (and update snapshot)
for (var optionName in options) {
if (options.hasOwnProperty(optionName)) {
var optionVal = options[optionName];
if (deepChangeDetection && OPTION_IS_DEEP[optionName]) {
if (!deepEqual(optionSnapshot[optionName], optionVal)) {
optionSnapshot[optionName] = deepCopy(optionVal);
// trick FC into knowing about a nested change.
// TODO: future versions won't need this.
// can't use the previously-made deep copy because it blows away prototype-association.
updates[optionName] = shallowCopy(optionVal);
anyChanges = true;
}
}
else {
if (optionSnapshot[optionName] !== optionVal) {
optionSnapshot[optionName] = optionVal;
updates[optionName] = optionVal;
anyChanges = true;
}
}
}
}
}
};
/*
called with confirmed changes to input references
*/
FullCalendarComponent.prototype.ngOnChanges = function (changes) {
if (this.calendar) { // not the initial render
for (var inputName in changes) {
if (changes.hasOwnProperty(inputName)) {
if (this.deepCopies[inputName] === undefined) { // not already handled in ngDoCheck
this.dirtyProps[inputName] = changes[inputName].currentValue;
var oldOptionNames = Object.keys(optionSnapshot);
try {
// detect removals (and update snapshot)
for (var oldOptionNames_1 = __values(oldOptionNames), oldOptionNames_1_1 = oldOptionNames_1.next(); !oldOptionNames_1_1.done; oldOptionNames_1_1 = oldOptionNames_1.next()) {
var optionName = oldOptionNames_1_1.value;
if (!(optionName in options)) { // doesn't exist in new options?
delete optionSnapshot[optionName];
removals.push(optionName);
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (oldOptionNames_1_1 && !oldOptionNames_1_1.done && (_a = oldOptionNames_1.return)) _a.call(oldOptionNames_1);
}
finally { if (e_1) throw e_1.error; }
}
if (anyChanges) {
this.calendar.pauseRendering();
this.calendar.mutateOptions(updates, removals);
}
}
};
FullCalendarComponent.prototype.ngAfterContentChecked = function () {
var dirtyProps = this.dirtyProps; // hold on to reference before clearing
if (Object.keys(dirtyProps).length > 0) {
this.dirtyProps = {}; // clear first, in case the rerender causes new dirtiness
this.calendar.mutateOptions(dirtyProps, [], false, deepEqual);
if (this.calendar) { // too defensive?
this.calendar.resumeRendering();
}
};
FullCalendarComponent.prototype.ngOnDestroy = function () {
if (this.calendar) {
if (this.calendar) { // too defensive?
this.calendar.destroy();
this.calendar = null;
}
this.calendar = null;
};

@@ -129,648 +100,8 @@ FullCalendarComponent.prototype.getApi = function () {

Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "deepChangeDetection", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "header", void 0);
], FullCalendarComponent.prototype, "options", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "footer", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "customButtons", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "buttonIcons", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "themeSystem", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "bootstrapFontAwesome", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "firstDay", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "dir", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "weekends", void 0);
__decorate([
Input(),
__metadata("design:type", Array)
], FullCalendarComponent.prototype, "hiddenDays", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "fixedWeekCount", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "weekNumbers", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "weekNumbersWithinDays", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "weekNumberCalculation", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "businessHours", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "showNonCurrentDates", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "height", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "contentHeight", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "aspectRatio", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "handleWindowResize", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "windowResizeDelay", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventLimit", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventLimitClick", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "timeZone", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "now", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "defaultView", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "allDaySlot", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "allDayText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "slotDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "slotLabelFormat", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "slotLabelInterval", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "snapDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "scrollTime", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "minTime", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "maxTime", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "slotEventOverlap", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "listDayFormat", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "listDayAltFormat", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "noEventsMessage", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "defaultDate", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "nowIndicator", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "visibleRange", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "validRange", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dateIncrement", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "dateAlignment", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "duration", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "dayCount", void 0);
__decorate([
Input(),
__metadata("design:type", Array)
], FullCalendarComponent.prototype, "locales", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "locale", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventTimeFormat", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "columnHeader", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "columnHeaderFormat", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "columnHeaderText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "columnHeaderHtml", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "titleFormat", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "weekLabel", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "displayEventTime", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "displayEventEnd", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventLimitText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dayPopoverFormat", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "navLinks", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "selectable", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "selectMirror", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "unselectAuto", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "unselectCancel", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "defaultAllDayEventDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "defaultTimedEventDuration", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "cmdFormatter", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "defaultRangeSeparator", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "selectConstraint", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "selectOverlap", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "selectAllow", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "selectMinDistance", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "editable", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "eventStartEditable", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "eventDurationEditable", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventConstraint", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventOverlap", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventAllow", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventClassName", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventClassNames", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "eventBackgroundColor", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "eventBorderColor", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "eventTextColor", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "eventColor", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "events", void 0);
__decorate([
Input(),
__metadata("design:type", Array)
], FullCalendarComponent.prototype, "eventSources", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "allDayDefault", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "startParam", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "endParam", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "lazyFetching", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "nextDayThreshold", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventOrder", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "rerenderDelay", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "dragRevertDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "dragScroll", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "longPressDelay", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "eventLongPressDelay", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "droppable", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dropAccept", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDataTransform", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "allDayMaintainDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "eventResizableFromStart", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "timeGridEventMinHeight", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "allDayHtml", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "eventDragMinDistance", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventSourceFailure", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventSourceSuccess", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "forceEventDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "progressiveEventRendering", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "selectLongPressDelay", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "timeZoneParam", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "titleRangeSeparator", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "buttonText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "views", void 0);
__decorate([
Input(),
__metadata("design:type", Array)
], FullCalendarComponent.prototype, "plugins", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "schedulerLicenseKey", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resources", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "resourceLabelText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceOrder", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "filterResourcesWithEvents", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceGroupField", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceGroupText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceAreaWidth", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceColumns", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourcesInitiallyExpanded", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "slotWidth", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "datesAboveResources", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "googleCalendarApiKey", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "refetchResourcesOnNavigate", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "eventResourceEditable", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "windowResize", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dateClick", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventClick", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventMouseEnter", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventMouseLeave", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "select", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "unselect", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "loading", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventPositioned", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDragStart", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDragStop", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDrop", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventResizeStart", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventResizeStop", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventResize", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "drop", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventReceive", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventLeave", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "_destroyed", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "navLinkDayClick", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "navLinkWeekClick", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "viewSkeletonRender", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "viewSkeletonDestroy", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "datesRender", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "datesDestroy", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dayRender", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventRender", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDestroy", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceRender", void 0);
], FullCalendarComponent.prototype, "deepChangeDetection", void 0);
FullCalendarComponent = __decorate([

@@ -786,2 +117,2 @@ Component({

export { FullCalendarComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbGNhbGVuZGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmdWxsY2FsZW5kYXIvYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9mdWxsY2FsZW5kYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLFNBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ25DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLGFBQWEsRUFDYixhQUFhLEVBQ2IsT0FBTyxFQUNQLFNBQVMsRUFDVCxtQkFBbUIsRUFDbkIsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQTRELE1BQU0sb0JBQW9CLENBQUM7QUE2Q3hHLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBTWxGO0lBUUUsK0JBQW9CLE9BQW1CO1FBQW5CLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFIL0IsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUNyQixlQUFVLEdBQVEsRUFBRSxDQUFDLENBQUMsc0JBQXNCO1FBK08xQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDdkMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDcEMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDckMsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzFDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUMxQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNqQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNuQyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNsQyxvQkFB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SUFDeEM7UUFBVCxNQUFNLEVBQUU7OzREQUFxQztJQUNwQztRQUFULE1BQU0sRUFBRTs7bUVBQTRDO0lBQzNDO1FBQVQsTUFBTSxFQUFFOztrRUFBMkM7SUFDMUM7UUFBVCxNQUFNLEVBQUU7OzhEQUF1QztJQUN0QztRQUFULE1BQU0sRUFBRTs7dURBQWdDO0lBQy9CO1FBQVQsTUFBTSxFQUFFOzsrREFBd0M7SUFDdkM7UUFBVCxNQUFNLEVBQUU7OzZEQUFzQztJQUNyQztRQUFULE1BQU0sRUFBRTs7NkRBQXNDO0lBQ3JDO1FBQVQsTUFBTSxFQUFFOztrRUFBMkM7SUFDMUM7UUFBVCxNQUFNLEVBQUU7O21FQUE0QztJQUUzQztRQUFULE1BQU0sRUFBRTs7cUVBQThDO0lBQzdDO1FBQVQsTUFBTSxFQUFFOztzRUFBK0M7SUFDOUM7UUFBVCxNQUFNLEVBQUU7OzhEQUF1QztJQUN0QztRQUFULE1BQU0sRUFBRTs7K0RBQXdDO0lBQ3ZDO1FBQVQsTUFBTSxFQUFFOzs0REFBcUM7SUFDcEM7UUFBVCxNQUFNLEVBQUU7OzhEQUF1QztJQUN0QztRQUFULE1BQU0sRUFBRTs7K0RBQXdDO0lBQ3ZDO1FBQVQsTUFBTSxFQUFFOztpRUFBMEM7SUFsUnhDLHFCQUFxQjtRQUpqQyxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsZUFBZTtZQUN6QixRQUFRLEVBQUUsRUFBRTtTQUNiLENBQUM7eUNBUzZCLFVBQVU7T0FSNUIscUJBQXFCLENBbVJqQztJQUFELDRCQUFDO0NBQUEsQUFuUkQsSUFtUkM7U0FuUlkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGRlZXBFcXVhbCBmcm9tICdmYXN0LWRlZXAtZXF1YWwnO1xuaW1wb3J0IHsgZGVlcENvcHkgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBBZnRlclZpZXdJbml0LFxuICBEb0NoZWNrLFxuICBPbkNoYW5nZXMsXG4gIEFmdGVyQ29udGVudENoZWNrZWQsXG4gIE9uRGVzdHJveVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbGVuZGFyLCBCdXNpbmVzc0hvdXJzSW5wdXQsIENvbnN0cmFpbnRJbnB1dCwgRXZlbnRBcGksIFBsdWdpbkRlZiB9IGZyb20gJ0BmdWxsY2FsZW5kYXIvY29yZSc7XG5cbi8vIGltcG9ydCB7XG4vLyAgIFRvb2xiYXJJbnB1dCxcbi8vICAgQ3VzdG9tQnV0dG9uSW5wdXQsXG4vLyAgIEJ1dHRvbkljb25zSW5wdXQsIENlbGxJbmZvLFxuLy8gICBCdXR0b25UZXh0Q29tcG91bmRJbnB1dCxcbi8vICAgVmlld09wdGlvbnNJbnB1dFxuLy8gfSBmcm9tICdAZnVsbGNhbGVuZGFyL2NvcmUvdHlwZXMvaW5wdXQtdHlwZXMnO1xuLy8gaW1wb3J0IHsgRGF0ZUlucHV0IH0gZnJvbSAnQGZ1bGxjYWxlbmRhci9jb3JlL2RhdGVsaWIvZW52Jztcbi8vIGltcG9ydCB7IER1cmF0aW9uSW5wdXQgfSBmcm9tICdAZnVsbGNhbGVuZGFyL2NvcmUvZGF0ZWxpYi9kdXJhdGlvbic7XG4vLyBpbXBvcnQgeyBGb3JtYXR0ZXJJbnB1dCB9IGZyb20gJ0BmdWxsY2FsZW5kYXIvY29yZS9kYXRlbGliL2Zvcm1hdHRpbmcnO1xuLy8gaW1wb3J0IHsgRGF0ZVJhbmdlSW5wdXQgfSBmcm9tICdAZnVsbGNhbGVuZGFyL2NvcmUvZGF0ZWxpYi9kYXRlLXJhbmdlJztcbi8vIGltcG9ydCB7IFJhd0xvY2FsZSwgTG9jYWxlU2luZ3VsYXJBcmcgfSBmcm9tICdAZnVsbGNhbGVuZGFyL2NvcmUvZGF0ZWxpYi9sb2NhbGUnO1xuLy8gaW1wb3J0IHsgT3ZlcmxhcEZ1bmMsIEFsbG93RnVuYyB9IGZyb20gJ0BmdWxsY2FsZW5kYXIvY29yZS92YWxpZGF0aW9uJztcbi8vIGltcG9ydCB7XG4vLyAgIEV2ZW50U291cmNlSW5wdXQsXG4vLyAgIEV2ZW50SW5wdXRUcmFuc2Zvcm1lcixcbi8vICAgRXZlbnRTb3VyY2VFcnJvclJlc3BvbnNlSGFuZGxlcixcbi8vICAgRXZlbnRTb3VyY2VTdWNjZXNzUmVzcG9uc2VIYW5kbGVyXG4vLyB9IGZyb20gJ0BmdWxsY2FsZW5kYXIvY29yZS9zdHJ1Y3RzL2V2ZW50LXNvdXJjZSc7XG5cbi8vIG5lZWQgdHlwZSBhbnksIGJlY2F1c2UgbmdjYyB3cm9uZyBidWlsZCBpbiBBT1QsXG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8zNDAyN1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL2Z1bGxjYWxlbmRhci9mdWxsY2FsZW5kYXItYW5ndWxhci9wdWxsLzI3NVxuXG50eXBlIERhdGVJbnB1dCA9IGFueTtcbnR5cGUgRHVyYXRpb25JbnB1dCA9IGFueTtcbnR5cGUgRm9ybWF0dGVySW5wdXQgPSBhbnk7XG50eXBlIERhdGVSYW5nZUlucHV0ID0gYW55O1xudHlwZSBSYXdMb2NhbGUgPSBhbnk7XG50eXBlIExvY2FsZVNpbmd1bGFyQXJnID0gYW55O1xudHlwZSBPdmVybGFwRnVuYyA9IGFueTtcbnR5cGUgQWxsb3dGdW5jID0gYW55O1xudHlwZSBDdXN0b21CdXR0b25JbnB1dCA9IGFueTtcbnR5cGUgQnV0dG9uSWNvbnNJbnB1dCA9IGFueTtcbnR5cGUgQ2VsbEluZm8gPSBhbnk7XG50eXBlIEJ1dHRvblRleHRDb21wb3VuZElucHV0ID0gYW55O1xudHlwZSBUb29sYmFySW5wdXQgPSBhbnk7XG50eXBlIFZpZXdPcHRpb25zSW5wdXQgPSBhbnk7XG50eXBlIEV2ZW50U291cmNlSW5wdXQgPSBhbnk7XG50eXBlIEV2ZW50SW5wdXRUcmFuc2Zvcm1lciA9IGFueTtcbnR5cGUgRXZlbnRTb3VyY2VFcnJvclJlc3BvbnNlSGFuZGxlciA9IGFueTtcbnR5cGUgRXZlbnRTb3VyY2VTdWNjZXNzUmVzcG9uc2VIYW5kbGVyID0gYW55O1xuXG5pbXBvcnQgeyBJTlBVVF9OQU1FUywgSU5QVVRfSVNfREVFUCwgT1VUUFVUX05BTUVTIH0gZnJvbSAnLi9mdWxsY2FsZW5kYXItb3B0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Z1bGwtY2FsZW5kYXInLFxuICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgY2xhc3MgRnVsbENhbGVuZGFyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgRG9DaGVjaywgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRDaGVja2VkLCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIGRlZXBDaGFuZ2VEZXRlY3Rpb24/OiBib29sZWFuO1xuXG4gIHByaXZhdGUgY2FsZW5kYXI6IENhbGVuZGFyO1xuICBwcml2YXRlIGRpcnR5UHJvcHM6IGFueSA9IHt9O1xuICBwcml2YXRlIGRlZXBDb3BpZXM6IGFueSA9IHt9OyAvLyBob2xkcyBmcm96ZW4gc3RhdGVzXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmKSB7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jYWxlbmRhciA9IG5ldyBDYWxlbmRhcih0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgdGhpcy5idWlsZE9wdGlvbnMoKSk7XG4gICAgdGhpcy5jYWxlbmRhci5yZW5kZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRPcHRpb25zKCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7fTtcblxuICAgIE9VVFBVVF9OQU1FUy5mb3JFYWNoKG91dHB1dE5hbWUgPT4ge1xuICAgICAgb3B0aW9uc1tvdXRwdXROYW1lXSA9ICguLi5hcmdzKSA9PiB7XG4gICAgICAgIHRoaXNbb3V0cHV0TmFtZV0uZW1pdCguLi5hcmdzKTtcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICAvLyBkbyBhZnRlciBvdXRwdXRzLCBzbyB0aGF0IGlucHV0cyB3aXRoIHNhbWUgbmFtZSBvdmVycmlkZVxuICAgIElOUFVUX05BTUVTLmZvckVhY2goaW5wdXROYW1lID0+IHtcbiAgICAgIGxldCBpbnB1dFZhbCA9IHRoaXNbaW5wdXROYW1lXTtcblxuICAgICAgaWYgKGlucHV0VmFsICE9PSB1bmRlZmluZWQpIHsgLy8gdW5mb3J0dW5hdGVseSBGQyBjaG9rZXMgd2hlbiBzb21lIHByb3BzIGFyZSBzZXQgdG8gdW5kZWZpbmVkXG5cbiAgICAgICAgaWYgKHRoaXMuZGVlcENoYW5nZURldGVjdGlvbiAmJiBJTlBVVF9JU19ERUVQW2lucHV0TmFtZV0pIHtcbiAgICAgICAgICBpbnB1dFZhbCA9IGRlZXBDb3B5KGlucHV0VmFsKTtcbiAgICAgICAgICB0aGlzLmRlZXBDb3BpZXNbaW5wdXROYW1lXSA9IGlucHV0VmFsOyAvLyBzaWRlIGVmZmVjdCFcbiAgICAgICAgfVxuXG4gICAgICAgIG9wdGlvbnNbaW5wdXROYW1lXSA9IGlucHV0VmFsO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cblxuICAvKlxuICBjYWxsZWQgYmVmb3JlIG5nT25DaGFuZ2VzLCBhbGxvd3MgdXMgdG8gbWFudWFsbHkgZGV0ZWN0IGlucHV0IGNoYW5nZXMuXG4gIGNhbGxlZCBtdWNoIG1vcmUgb2Z0ZW4gdGhhbiBuZ09uQ2hhbmdlcy5cbiAgKi9cbiAgbmdEb0NoZWNrKCkge1xuICAgIGlmICh0aGlzLmNhbGVuZGFyICYmIHRoaXMuZGVlcENoYW5nZURldGVjdGlvbikgeyAvLyBub3QgdGhlIGluaXRpYWwgcmVuZGVyIEFORCB3ZSBkbyBkZWVwLW11dGF0aW9uIGNoZWNrc1xuICAgICAgY29uc3QgeyBkZWVwQ29waWVzIH0gPSB0aGlzO1xuXG4gICAgICBmb3IgKGNvbnN0IGlucHV0TmFtZSBpbiBJTlBVVF9JU19ERUVQKSB7XG4gICAgICAgIGlmIChJTlBVVF9JU19ERUVQLmhhc093blByb3BlcnR5KGlucHV0TmFtZSkpIHtcbiAgICAgICAgICBjb25zdCBpbnB1dFZhbCA9IHRoaXNbaW5wdXROYW1lXTtcblxuICAgICAgICAgIGlmIChpbnB1dFZhbCAhPT0gdW5kZWZpbmVkKSB7IC8vIHVuZm9ydHVuYXRlbHkgRkMgY2hva2VzIHdoZW4gc29tZSBwcm9wcyBhcmUgc2V0IHRvIHVuZGVmaW5lZFxuICAgICAgICAgICAgaWYgKCFkZWVwRXF1YWwoaW5wdXRWYWwsIGRlZXBDb3BpZXNbaW5wdXROYW1lXSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgY29weSA9IGRlZXBDb3B5KGlucHV0VmFsKTtcbiAgICAgICAgICAgICAgZGVlcENvcGllc1tpbnB1dE5hbWVdID0gY29weTtcbiAgICAgICAgICAgICAgdGhpcy5kaXJ0eVByb3BzW2lucHV0TmFtZV0gPSBjb3B5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qXG4gIGNhbGxlZCB3aXRoIGNvbmZpcm1lZCBjaGFuZ2VzIHRvIGlucHV0IHJlZmVyZW5jZXNcbiAgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICh0aGlzLmNhbGVuZGFyKSB7IC8vIG5vdCB0aGUgaW5pdGlhbCByZW5kZXJcblxuICAgICAgZm9yIChjb25zdCBpbnB1dE5hbWUgaW4gY2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eShpbnB1dE5hbWUpKSB7XG4gICAgICAgICAgaWYgKHRoaXMuZGVlcENvcGllc1tpbnB1dE5hbWVdID09PSB1bmRlZmluZWQpIHsgLy8gbm90IGFscmVhZHkgaGFuZGxlZCBpbiBuZ0RvQ2hlY2tcbiAgICAgICAgICAgIHRoaXMuZGlydHlQcm9wc1tpbnB1dE5hbWVdID0gY2hhbmdlc1tpbnB1dE5hbWVdLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKSB7XG4gICAgY29uc3QgeyBkaXJ0eVByb3BzIH0gPSB0aGlzOyAvLyBob2xkIG9uIHRvIHJlZmVyZW5jZSBiZWZvcmUgY2xlYXJpbmdcblxuICAgIGlmIChPYmplY3Qua2V5cyhkaXJ0eVByb3BzKS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmRpcnR5UHJvcHMgPSB7fTsgLy8gY2xlYXIgZmlyc3QsIGluIGNhc2UgdGhlIHJlcmVuZGVyIGNhdXNlcyBuZXcgZGlydGluZXNzXG4gICAgICB0aGlzLmNhbGVuZGFyLm11dGF0ZU9wdGlvbnMoZGlydHlQcm9wcywgW10sIGZhbHNlLCBkZWVwRXF1YWwpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmNhbGVuZGFyKSB7XG4gICAgICB0aGlzLmNhbGVuZGFyLmRlc3Ryb3koKTtcbiAgICB9XG4gICAgdGhpcy5jYWxlbmRhciA9IG51bGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0QXBpKCk6IENhbGVuZGFyIHtcbiAgICByZXR1cm4gdGhpcy5jYWxlbmRhcjtcbiAgfVxuXG4gIC8qXG4gIFRPRE86IHRoZSBmb2xsb3dpbmcgSW5wdXRzL091dHB1dHMgc2hvdWxkIGJlIGF1dG9tYXRpY2FsbHkgcmV3cml0dGVuIGZvciBlYWNoIHZlcnNpb24gYnVtcFxuICBvZiB0aGUgY29yZSBwcm9qZWN0LiBBIHNjcmlwdCB3aWxsIGJlIHdyaXR0ZW4gdG8gb3ZlcndyaXRlIHRoZSBhY3R1YWx5IHNvdXJjZSBjb2RlIGhlcmUuXG4gIEl0IGlzIHVzdWFsbHkgZ29vZCB0byBwdXQgYSBjbGFzcydzIHByb3BlcnR5IGRlY2xhcmF0aW9ucyBCRUZPUkUgdGhlIG1ldGhvZHMsIGJ1dCBpbiB0aGlzIGNhc2UsXG4gIHNpbmNlIHRoZSBwcm9wZXJ0aWVzIHdpbGwgYmUgcHJvZ3JhbW1hdGljYWxseSBnZW5lcmF0ZWQsIGJldHRlciB0byBwdXQgdGhlbSBhZnRlci5cbiAgKi9cblxuICBASW5wdXQoKSBoZWFkZXI/OiBib29sZWFuIHwgVG9vbGJhcklucHV0O1xuICBASW5wdXQoKSBmb290ZXI/OiBib29sZWFuIHwgVG9vbGJhcklucHV0O1xuICBASW5wdXQoKSBjdXN0b21CdXR0b25zPzogeyBbbmFtZTogc3RyaW5nXTogQ3VzdG9tQnV0dG9uSW5wdXQgfTtcbiAgQElucHV0KCkgYnV0dG9uSWNvbnM/OiBib29sZWFuIHwgQnV0dG9uSWNvbnNJbnB1dDtcbiAgQElucHV0KCkgdGhlbWVTeXN0ZW0/OiAnc3RhbmRhcmQnIHwgc3RyaW5nO1xuICBASW5wdXQoKSBib290c3RyYXBGb250QXdlc29tZT86IGJvb2xlYW4gfCBCdXR0b25JY29uc0lucHV0O1xuICBASW5wdXQoKSBmaXJzdERheT86IG51bWJlcjtcbiAgQElucHV0KCkgZGlyPzogJ2x0cicgfCAncnRsJyB8ICdhdXRvJztcbiAgQElucHV0KCkgd2Vla2VuZHM/OiBib29sZWFuO1xuICBASW5wdXQoKSBoaWRkZW5EYXlzPzogbnVtYmVyW107XG4gIEBJbnB1dCgpIGZpeGVkV2Vla0NvdW50PzogYm9vbGVhbjtcbiAgQElucHV0KCkgd2Vla051bWJlcnM/OiBib29sZWFuO1xuICBASW5wdXQoKSB3ZWVrTnVtYmVyc1dpdGhpbkRheXM/OiBib29sZWFuO1xuICBASW5wdXQoKSB3ZWVrTnVtYmVyQ2FsY3VsYXRpb24/OiAnbG9jYWwnIHwgJ0lTTycgfCAoKG06IERhdGUpID0+IG51bWJlcik7XG4gIEBJbnB1dCgpIGJ1c2luZXNzSG91cnM/OiBCdXNpbmVzc0hvdXJzSW5wdXQ7XG4gIEBJbnB1dCgpIHNob3dOb25DdXJyZW50RGF0ZXM/OiBib29sZWFuO1xuICBASW5wdXQoKSBoZWlnaHQ/OiBudW1iZXIgfCAnYXV0bycgfCAncGFyZW50JyB8ICgoKSA9PiBudW1iZXIpO1xuICBASW5wdXQoKSBjb250ZW50SGVpZ2h0PzogbnVtYmVyIHwgJ2F1dG8nIHwgKCgpID0+IG51bWJlcik7XG4gIEBJbnB1dCgpIGFzcGVjdFJhdGlvPzogbnVtYmVyO1xuICBASW5wdXQoKSBoYW5kbGVXaW5kb3dSZXNpemU/OiBib29sZWFuO1xuICBASW5wdXQoKSB3aW5kb3dSZXNpemVEZWxheT86IG51bWJlcjtcbiAgQElucHV0KCkgZXZlbnRMaW1pdD86IGJvb2xlYW4gfCBudW1iZXI7XG4gIEBJbnB1dCgpIGV2ZW50TGltaXRDbGljaz86ICdwb3BvdmVyJyB8ICd3ZWVrJyB8ICdkYXknIHwgc3RyaW5nIHwgKChjZWxsaW5mbzogQ2VsbEluZm8sIGpzZXZlbnQ6IEV2ZW50KSA9PiB2b2lkKTtcbiAgQElucHV0KCkgdGltZVpvbmU/OiBzdHJpbmcgfCBib29sZWFuO1xuICBASW5wdXQoKSBub3c/OiBEYXRlSW5wdXQgfCAoKCkgPT4gRGF0ZUlucHV0KTtcbiAgQElucHV0KCkgZGVmYXVsdFZpZXc/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFsbERheVNsb3Q/OiBib29sZWFuO1xuICBASW5wdXQoKSBhbGxEYXlUZXh0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBzbG90RHVyYXRpb24/OiBEdXJhdGlvbklucHV0O1xuICBASW5wdXQoKSBzbG90TGFiZWxGb3JtYXQ/OiBGb3JtYXR0ZXJJbnB1dDtcbiAgQElucHV0KCkgc2xvdExhYmVsSW50ZXJ2YWw/OiBEdXJhdGlvbklucHV0O1xuICBASW5wdXQoKSBzbmFwRHVyYXRpb24/OiBEdXJhdGlvbklucHV0O1xuICBASW5wdXQoKSBzY3JvbGxUaW1lPzogRHVyYXRpb25JbnB1dDtcbiAgQElucHV0KCkgbWluVGltZT86IER1cmF0aW9uSW5wdXQ7XG4gIEBJbnB1dCgpIG1heFRpbWU/OiBEdXJhdGlvbklucHV0O1xuICBASW5wdXQoKSBzbG90RXZlbnRPdmVybGFwPzogYm9vbGVhbjtcbiAgQElucHV0KCkgbGlzdERheUZvcm1hdD86IEZvcm1hdHRlcklucHV0IHwgYm9vbGVhbjtcbiAgQElucHV0KCkgbGlzdERheUFsdEZvcm1hdD86IEZvcm1hdHRlcklucHV0IHwgYm9vbGVhbjtcbiAgQElucHV0KCkgbm9FdmVudHNNZXNzYWdlPzogc3RyaW5nO1xuICBASW5wdXQoKSBkZWZhdWx0RGF0ZT86IERhdGVJbnB1dDtcbiAgQElucHV0KCkgbm93SW5kaWNhdG9yPzogYm9vbGVhbjtcbiAgQElucHV0KCkgdmlzaWJsZVJhbmdlPzogKChjdXJyZW50RGF0ZTogRGF0ZSkgPT4gRGF0ZVJhbmdlSW5wdXQpIHwgRGF0ZVJhbmdlSW5wdXQ7XG4gIEBJbnB1dCgpIHZhbGlkUmFuZ2U/OiBEYXRlUmFuZ2VJbnB1dDtcbiAgQElucHV0KCkgZGF0ZUluY3JlbWVudD86IER1cmF0aW9uSW5wdXQ7XG4gIEBJbnB1dCgpIGRhdGVBbGlnbm1lbnQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGR1cmF0aW9uPzogRHVyYXRpb25JbnB1dDtcbiAgQElucHV0KCkgZGF5Q291bnQ/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGxvY2FsZXM/OiBSYXdMb2NhbGVbXTtcbiAgQElucHV0KCkgbG9jYWxlPzogTG9jYWxlU2luZ3VsYXJBcmc7XG4gIEBJbnB1dCgpIGV2ZW50VGltZUZvcm1hdD86IEZvcm1hdHRlcklucHV0O1xuICBASW5wdXQoKSBjb2x1bW5IZWFkZXI/OiBib29sZWFuO1xuICBASW5wdXQoKSBjb2x1bW5IZWFkZXJGb3JtYXQ/OiBGb3JtYXR0ZXJJbnB1dDtcbiAgQElucHV0KCkgY29sdW1uSGVhZGVyVGV4dD86IHN0cmluZyB8ICgoZGF0ZTogRGF0ZUlucHV0KSA9PiBzdHJpbmcpO1xuICBASW5wdXQoKSBjb2x1bW5IZWFkZXJIdG1sPzogc3RyaW5nIHwgKChkYXRlOiBEYXRlSW5wdXQpID0+IHN0cmluZyk7XG4gIEBJbnB1dCgpIHRpdGxlRm9ybWF0PzogRm9ybWF0dGVySW5wdXQ7XG4gIEBJbnB1dCgpIHdlZWtMYWJlbD86IHN0cmluZztcbiAgQElucHV0KCkgZGlzcGxheUV2ZW50VGltZT86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRpc3BsYXlFdmVudEVuZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGV2ZW50TGltaXRUZXh0Pzogc3RyaW5nIHwgKChldmVudENudDogbnVtYmVyKSA9PiBzdHJpbmcpO1xuICBASW5wdXQoKSBkYXlQb3BvdmVyRm9ybWF0PzogRm9ybWF0dGVySW5wdXQ7XG4gIEBJbnB1dCgpIG5hdkxpbmtzPzogYm9vbGVhbjtcbiAgQElucHV0KCkgc2VsZWN0YWJsZT86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHNlbGVjdE1pcnJvcj86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHVuc2VsZWN0QXV0bz86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHVuc2VsZWN0Q2FuY2VsPzogc3RyaW5nO1xuICBASW5wdXQoKSBkZWZhdWx0QWxsRGF5RXZlbnREdXJhdGlvbj86IER1cmF0aW9uSW5wdXQ7XG4gIEBJbnB1dCgpIGRlZmF1bHRUaW1lZEV2ZW50RHVyYXRpb24/OiBEdXJhdGlvbklucHV0O1xuICBASW5wdXQoKSBjbWRGb3JtYXR0ZXI/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRlZmF1bHRSYW5nZVNlcGFyYXRvcj86IHN0cmluZztcbiAgQElucHV0KCkgc2VsZWN0Q29uc3RyYWludD86IENvbnN0cmFpbnRJbnB1dDtcbiAgQElucHV0KCkgc2VsZWN0T3ZlcmxhcD86IGJvb2xlYW4gfCBPdmVybGFwRnVuYztcbiAgQElucHV0KCkgc2VsZWN0QWxsb3c/OiBBbGxvd0Z1bmM7XG4gIEBJbnB1dCgpIHNlbGVjdE1pbkRpc3RhbmNlPzogbnVtYmVyO1xuICBASW5wdXQoKSBlZGl0YWJsZT86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGV2ZW50U3RhcnRFZGl0YWJsZT86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGV2ZW50RHVyYXRpb25FZGl0YWJsZT86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGV2ZW50Q29uc3RyYWludD86IENvbnN0cmFpbnRJbnB1dDtcbiAgQElucHV0KCkgZXZlbnRPdmVybGFwPzogYm9vbGVhbiB8IE92ZXJsYXBGdW5jO1xuICBASW5wdXQoKSBldmVudEFsbG93PzogQWxsb3dGdW5jO1xuICBASW5wdXQoKSBldmVudENsYXNzTmFtZT86IHN0cmluZ1tdIHwgc3RyaW5nO1xuICBASW5wdXQoKSBldmVudENsYXNzTmFtZXM/OiBzdHJpbmdbXSB8IHN0cmluZztcbiAgQElucHV0KCkgZXZlbnRCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGV2ZW50Qm9yZGVyQ29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGV2ZW50VGV4dENvbG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSBldmVudENvbG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSBldmVudHM/OiBFdmVudFNvdXJjZUlucHV0O1xuICBASW5wdXQoKSBldmVudFNvdXJjZXM/OiBFdmVudFNvdXJjZUlucHV0W107XG4gIEBJbnB1dCgpIGFsbERheURlZmF1bHQ/OiBib29sZWFuO1xuICBASW5wdXQoKSBzdGFydFBhcmFtPzogc3RyaW5nO1xuICBASW5wdXQoKSBlbmRQYXJhbT86IHN0cmluZztcbiAgQElucHV0KCkgbGF6eUZldGNoaW5nPzogYm9vbGVhbjtcbiAgQElucHV0KCkgbmV4dERheVRocmVzaG9sZD86IER1cmF0aW9uSW5wdXQ7XG4gIEBJbnB1dCgpIGV2ZW50T3JkZXI/OiBzdHJpbmcgfCBBcnJheTwoKGE6IEV2ZW50QXBpLCBiOiBFdmVudEFwaSkgPT4gbnVtYmVyKSB8IChzdHJpbmcgfCAoKGE6IEV2ZW50QXBpLCBiOiBFdmVudEFwaSkgPT4gbnVtYmVyKSk+O1xuICBASW5wdXQoKSByZXJlbmRlckRlbGF5PzogbnVtYmVyIHwgbnVsbDtcbiAgQElucHV0KCkgZHJhZ1JldmVydER1cmF0aW9uPzogbnVtYmVyO1xuICBASW5wdXQoKSBkcmFnU2Nyb2xsPzogYm9vbGVhbjtcbiAgQElucHV0KCkgbG9uZ1ByZXNzRGVsYXk/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGV2ZW50TG9uZ1ByZXNzRGVsYXk/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGRyb3BwYWJsZT86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRyb3BBY2NlcHQ/OiBzdHJpbmcgfCAoKGRyYWdnYWJsZTogYW55KSA9PiBib29sZWFuKTtcbiAgQElucHV0KCkgZXZlbnREYXRhVHJhbnNmb3JtPzogRXZlbnRJbnB1dFRyYW5zZm9ybWVyO1xuICBASW5wdXQoKSBhbGxEYXlNYWludGFpbkR1cmF0aW9uPzogQm9vbGVhbjtcbiAgQElucHV0KCkgZXZlbnRSZXNpemFibGVGcm9tU3RhcnQ/OiBCb29sZWFuO1xuICBASW5wdXQoKSB0aW1lR3JpZEV2ZW50TWluSGVpZ2h0PzogbnVtYmVyO1xuICBASW5wdXQoKSBhbGxEYXlIdG1sPzogc3RyaW5nO1xuICBASW5wdXQoKSBldmVudERyYWdNaW5EaXN0YW5jZT86IG51bWJlcjtcbiAgQElucHV0KCkgZXZlbnRTb3VyY2VGYWlsdXJlPzogRXZlbnRTb3VyY2VFcnJvclJlc3BvbnNlSGFuZGxlcjtcbiAgQElucHV0KCkgZXZlbnRTb3VyY2VTdWNjZXNzPzogRXZlbnRTb3VyY2VTdWNjZXNzUmVzcG9uc2VIYW5kbGVyO1xuICBASW5wdXQoKSBmb3JjZUV2ZW50RHVyYXRpb24/OiBib29sZWFuO1xuICBASW5wdXQoKSBwcm9ncmVzc2l2ZUV2ZW50UmVuZGVyaW5nPzogYm9vbGVhbjtcbiAgQElucHV0KCkgc2VsZWN0TG9uZ1ByZXNzRGVsYXk/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHRpbWVab25lUGFyYW0/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRpdGxlUmFuZ2VTZXBhcmF0b3I/OiBzdHJpbmc7XG4gIC8vIGNvbXBvdW5kIE9wdGlvbnNJbnB1dC4uLlxuICBASW5wdXQoKSBidXR0b25UZXh0PzogQnV0dG9uVGV4dENvbXBvdW5kSW5wdXQ7XG4gIEBJbnB1dCgpIHZpZXdzPzogeyBbdmlld0lkOiBzdHJpbmddOiBWaWV3T3B0aW9uc0lucHV0IH07XG4gIEBJbnB1dCgpIHBsdWdpbnM/OiAoUGx1Z2luRGVmIHwgc3RyaW5nKVtdO1xuICAvLyBzY2hlZHVsZXIuLi5cbiAgQElucHV0KCkgc2NoZWR1bGVyTGljZW5zZUtleT86IHN0cmluZztcbiAgQElucHV0KCkgcmVzb3VyY2VzPzogYW55O1xuICBASW5wdXQoKSByZXNvdXJjZUxhYmVsVGV4dD86IHN0cmluZztcbiAgQElucHV0KCkgcmVzb3VyY2VPcmRlcj86IGFueTtcbiAgQElucHV0KCkgZmlsdGVyUmVzb3VyY2VzV2l0aEV2ZW50cz86IGFueTtcbiAgQElucHV0KCkgcmVzb3VyY2VUZXh0PzogYW55O1xuICBASW5wdXQoKSByZXNvdXJjZUdyb3VwRmllbGQ/OiBhbnk7XG4gIEBJbnB1dCgpIHJlc291cmNlR3JvdXBUZXh0PzogYW55O1xuICBASW5wdXQoKSByZXNvdXJjZUFyZWFXaWR0aD86IGFueTtcbiAgQElucHV0KCkgcmVzb3VyY2VDb2x1bW5zPzogYW55O1xuICBASW5wdXQoKSByZXNvdXJjZXNJbml0aWFsbHlFeHBhbmRlZD86IGFueTtcbiAgQElucHV0KCkgc2xvdFdpZHRoPzogYW55O1xuICBASW5wdXQoKSBkYXRlc0Fib3ZlUmVzb3VyY2VzPzogYW55O1xuICBASW5wdXQoKSBnb29nbGVDYWxlbmRhckFwaUtleT86IHN0cmluZztcbiAgQElucHV0KCkgcmVmZXRjaFJlc291cmNlc09uTmF2aWdhdGU/OiBib29sZWFuO1xuICBASW5wdXQoKSBldmVudFJlc291cmNlRWRpdGFibGU/OiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKSB3aW5kb3dSZXNpemUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGRhdGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZXZlbnRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZXZlbnRNb3VzZUVudGVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBldmVudE1vdXNlTGVhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgdW5zZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGxvYWRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGV2ZW50UG9zaXRpb25lZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZXZlbnREcmFnU3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGV2ZW50RHJhZ1N0b3AgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGV2ZW50RHJvcCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZXZlbnRSZXNpemVTdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZXZlbnRSZXNpemVTdG9wID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBldmVudFJlc2l6ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZHJvcCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZXZlbnRSZWNlaXZlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBldmVudExlYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBfZGVzdHJveWVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBuYXZMaW5rRGF5Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIG5hdkxpbmtXZWVrQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgLy8gVE9ETzogbWFrZSB0aGVzZSBpbnB1dHMuLi5cbiAgQE91dHB1dCgpIHZpZXdTa2VsZXRvblJlbmRlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgdmlld1NrZWxldG9uRGVzdHJveSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZGF0ZXNSZW5kZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGRhdGVzRGVzdHJveSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZGF5UmVuZGVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBldmVudFJlbmRlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgZXZlbnREZXN0cm95ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSByZXNvdXJjZVJlbmRlciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsbGNhbGVuZGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmdWxsY2FsZW5kYXIvYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9mdWxsY2FsZW5kYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLFNBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsYUFBYSxFQUNiLE9BQU8sRUFDUCxtQkFBbUIsRUFDbkIsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQWdCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU14RDtJQVFFLCtCQUFvQixPQUFtQjtRQUFuQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBRi9CLG1CQUFjLEdBQVcsRUFBRSxDQUFDLENBQUMsbUJBQW1CO0lBR3hELENBQUM7SUFFRCwrQ0FBZSxHQUFmO1FBQ1UsSUFBQSw4Q0FBbUIsQ0FBVTtRQUNyQyxJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUVuQyxzQkFBc0I7UUFDdEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQUMsU0FBUyxFQUFFLFVBQVUsSUFBSyxPQUFBLENBQ2hFLENBQUMsbUJBQW1CLElBQUksY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2pELENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO1lBQ3JCLENBQUMsQ0FBQyxTQUFTLENBQ2QsRUFKaUUsQ0FJakUsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7O01BR0U7SUFDRix5Q0FBUyxHQUFUOztRQUNFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLHlCQUF5QjtZQUN0QyxJQUFBLFNBQThDLEVBQTVDLDRDQUFtQixFQUFFLGtDQUF1QixDQUFDO1lBQ3JELElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1lBQ25DLElBQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNuQixJQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDcEIsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBRXZCLGdEQUFnRDtZQUNoRCxLQUFLLElBQU0sVUFBVSxJQUFJLE9BQU8sRUFBRTtnQkFDaEMsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxFQUFFO29CQUN0QyxJQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBRXRDLElBQUksbUJBQW1CLElBQUksY0FBYyxDQUFDLFVBQVUsQ0FBQyxFQUFFO3dCQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsRUFBRSxTQUFTLENBQUMsRUFBRTs0QkFFckQsY0FBYyxDQUFDLFVBQVUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQzs0QkFFakQsK0NBQStDOzRCQUMvQyx5Q0FBeUM7NEJBQ3pDLHVGQUF1Rjs0QkFDdkYsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQzs0QkFFN0MsVUFBVSxHQUFHLElBQUksQ0FBQzt5QkFDbkI7cUJBQ0Y7eUJBQU07d0JBQ0wsSUFBSSxjQUFjLENBQUMsVUFBVSxDQUFDLEtBQUssU0FBUyxFQUFFOzRCQUM1QyxjQUFjLENBQUMsVUFBVSxDQUFDLEdBQUcsU0FBUyxDQUFDOzRCQUN2QyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsU0FBUyxDQUFDOzRCQUNoQyxVQUFVLEdBQUcsSUFBSSxDQUFDO3lCQUNuQjtxQkFDRjtpQkFDRjthQUNGO1lBRUQsSUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQzs7Z0JBRW5ELHdDQUF3QztnQkFDeEMsS0FBeUIsSUFBQSxtQkFBQSxTQUFBLGNBQWMsQ0FBQSw4Q0FBQSwwRUFBRTtvQkFBcEMsSUFBTSxVQUFVLDJCQUFBO29CQUNuQixJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRSxnQ0FBZ0M7d0JBQzlELE9BQU8sY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO3dCQUNsQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO3FCQUMzQjtpQkFDRjs7Ozs7Ozs7O1lBRUQsSUFBSSxVQUFVLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQ2hEO1NBQ0Y7SUFDSCxDQUFDO0lBRUQscURBQXFCLEdBQXJCO1FBQ0UsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsaUJBQWlCO1lBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRUQsMkNBQVcsR0FBWDtRQUNFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLGlCQUFpQjtZQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVNLHNDQUFNLEdBQWI7UUFDRSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQzs7Z0JBekY0QixVQUFVOztJQU45QjtRQUFSLEtBQUssRUFBRTs7MERBQXdCO0lBQ3ZCO1FBQVIsS0FBSyxFQUFFOztzRUFBK0I7SUFINUIscUJBQXFCO1FBSmpDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxlQUFlO1lBQ3pCLFFBQVEsRUFBRSxFQUFFO1NBQ2IsQ0FBQzt5Q0FTNkIsVUFBVTtPQVI1QixxQkFBcUIsQ0FtR2pDO0lBQUQsNEJBQUM7Q0FBQSxBQW5HRCxJQW1HQztTQW5HWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZGVlcEVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbCc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBBZnRlclZpZXdJbml0LFxuICBEb0NoZWNrLFxuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBPbkRlc3Ryb3lcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYWxlbmRhciwgT3B0aW9uc0lucHV0IH0gZnJvbSAnQGZ1bGxjYWxlbmRhci9jb3JlJztcbmltcG9ydCB7IGRlZXBDb3B5LCBzaGFsbG93Q29weSwgbWFwSGFzaCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgT1BUSU9OX0lTX0RFRVAgfSBmcm9tICcuL2Z1bGxjYWxlbmRhci1vcHRpb25zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnVsbC1jYWxlbmRhcicsXG4gIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBjbGFzcyBGdWxsQ2FsZW5kYXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBEb0NoZWNrLCBBZnRlckNvbnRlbnRDaGVja2VkLCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIG9wdGlvbnM/OiBPcHRpb25zSW5wdXQ7XG4gIEBJbnB1dCgpIGRlZXBDaGFuZ2VEZXRlY3Rpb24/OiBib29sZWFuO1xuXG4gIHByaXZhdGUgY2FsZW5kYXI6IENhbGVuZGFyO1xuICBwcml2YXRlIG9wdGlvblNuYXBzaG90OiBvYmplY3QgPSB7fTsgLy8gZm9yIGRpZmZpbmcgb25seVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZikge1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbnN0IHsgZGVlcENoYW5nZURldGVjdGlvbiB9ID0gdGhpcztcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5vcHRpb25zIHx8IHt9O1xuXG4gICAgLy8gaW5pdGlhbGl6ZSBzbmFwc2hvdFxuICAgIHRoaXMub3B0aW9uU25hcHNob3QgPSBtYXBIYXNoKG9wdGlvbnMsIChvcHRpb25WYWwsIG9wdGlvbk5hbWUpID0+IChcbiAgICAgIChkZWVwQ2hhbmdlRGV0ZWN0aW9uICYmIE9QVElPTl9JU19ERUVQW29wdGlvbk5hbWVdKVxuICAgICAgICA/IGRlZXBDb3B5KG9wdGlvblZhbClcbiAgICAgICAgOiBvcHRpb25WYWxcbiAgICApKTtcblxuICAgIHRoaXMuY2FsZW5kYXIgPSBuZXcgQ2FsZW5kYXIodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIG9wdGlvbnMpO1xuICAgIHRoaXMuY2FsZW5kYXIucmVuZGVyKCk7XG4gIH1cblxuICAvKlxuICBhbGxvd3MgdXMgdG8gbWFudWFsbHkgZGV0ZWN0IGNvbXBsZXggaW5wdXQgY2hhbmdlcywgaW50ZXJuYWwgbXV0YXRpb25zIHRvIGNlcnRhaW4gb3B0aW9ucy5cbiAgY2FsbGVkIGJlZm9yZSBuZ09uQ2hhbmdlcy4gY2FsbGVkIG11Y2ggbW9yZSBvZnRlbiB0aGFuIG5nT25DaGFuZ2VzLlxuICAqL1xuICBuZ0RvQ2hlY2soKSB7XG4gICAgaWYgKHRoaXMuY2FsZW5kYXIpIHsgLy8gbm90IHRoZSBpbml0aWFsIHJlbmRlclxuICAgICAgY29uc3QgeyBkZWVwQ2hhbmdlRGV0ZWN0aW9uLCBvcHRpb25TbmFwc2hvdCB9ID0gdGhpcztcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMgfHwge307XG4gICAgICBjb25zdCB1cGRhdGVzID0ge307XG4gICAgICBjb25zdCByZW1vdmFscyA9IFtdO1xuICAgICAgbGV0IGFueUNoYW5nZXMgPSBmYWxzZTtcblxuICAgICAgLy8gZGV0ZWN0IGFkZHMgYW5kIHVwZGF0ZXMgKGFuZCB1cGRhdGUgc25hcHNob3QpXG4gICAgICBmb3IgKGNvbnN0IG9wdGlvbk5hbWUgaW4gb3B0aW9ucykge1xuICAgICAgICBpZiAob3B0aW9ucy5oYXNPd25Qcm9wZXJ0eShvcHRpb25OYW1lKSkge1xuICAgICAgICAgIGNvbnN0IG9wdGlvblZhbCA9IG9wdGlvbnNbb3B0aW9uTmFtZV07XG5cbiAgICAgICAgICBpZiAoZGVlcENoYW5nZURldGVjdGlvbiAmJiBPUFRJT05fSVNfREVFUFtvcHRpb25OYW1lXSkge1xuICAgICAgICAgICAgaWYgKCFkZWVwRXF1YWwob3B0aW9uU25hcHNob3Rbb3B0aW9uTmFtZV0sIG9wdGlvblZhbCkpIHtcblxuICAgICAgICAgICAgICBvcHRpb25TbmFwc2hvdFtvcHRpb25OYW1lXSA9IGRlZXBDb3B5KG9wdGlvblZhbCk7XG5cbiAgICAgICAgICAgICAgLy8gdHJpY2sgRkMgaW50byBrbm93aW5nIGFib3V0IGEgbmVzdGVkIGNoYW5nZS5cbiAgICAgICAgICAgICAgLy8gVE9ETzogZnV0dXJlIHZlcnNpb25zIHdvbid0IG5lZWQgdGhpcy5cbiAgICAgICAgICAgICAgLy8gY2FuJ3QgdXNlIHRoZSBwcmV2aW91c2x5LW1hZGUgZGVlcCBjb3B5IGJlY2F1c2UgaXQgYmxvd3MgYXdheSBwcm90b3R5cGUtYXNzb2NpYXRpb24uXG4gICAgICAgICAgICAgIHVwZGF0ZXNbb3B0aW9uTmFtZV0gPSBzaGFsbG93Q29weShvcHRpb25WYWwpO1xuXG4gICAgICAgICAgICAgIGFueUNoYW5nZXMgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAob3B0aW9uU25hcHNob3Rbb3B0aW9uTmFtZV0gIT09IG9wdGlvblZhbCkge1xuICAgICAgICAgICAgICBvcHRpb25TbmFwc2hvdFtvcHRpb25OYW1lXSA9IG9wdGlvblZhbDtcbiAgICAgICAgICAgICAgdXBkYXRlc1tvcHRpb25OYW1lXSA9IG9wdGlvblZhbDtcbiAgICAgICAgICAgICAgYW55Q2hhbmdlcyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG9sZE9wdGlvbk5hbWVzID0gT2JqZWN0LmtleXMob3B0aW9uU25hcHNob3QpO1xuXG4gICAgICAvLyBkZXRlY3QgcmVtb3ZhbHMgKGFuZCB1cGRhdGUgc25hcHNob3QpXG4gICAgICBmb3IgKGNvbnN0IG9wdGlvbk5hbWUgb2Ygb2xkT3B0aW9uTmFtZXMpIHtcbiAgICAgICAgaWYgKCEob3B0aW9uTmFtZSBpbiBvcHRpb25zKSkgeyAvLyBkb2Vzbid0IGV4aXN0IGluIG5ldyBvcHRpb25zP1xuICAgICAgICAgIGRlbGV0ZSBvcHRpb25TbmFwc2hvdFtvcHRpb25OYW1lXTtcbiAgICAgICAgICByZW1vdmFscy5wdXNoKG9wdGlvbk5hbWUpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChhbnlDaGFuZ2VzKSB7XG4gICAgICAgIHRoaXMuY2FsZW5kYXIucGF1c2VSZW5kZXJpbmcoKTtcbiAgICAgICAgdGhpcy5jYWxlbmRhci5tdXRhdGVPcHRpb25zKHVwZGF0ZXMsIHJlbW92YWxzKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKSB7XG4gICAgaWYgKHRoaXMuY2FsZW5kYXIpIHsgLy8gdG9vIGRlZmVuc2l2ZT9cbiAgICAgIHRoaXMuY2FsZW5kYXIucmVzdW1lUmVuZGVyaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuY2FsZW5kYXIpIHsgLy8gdG9vIGRlZmVuc2l2ZT9cbiAgICAgIHRoaXMuY2FsZW5kYXIuZGVzdHJveSgpO1xuICAgICAgdGhpcy5jYWxlbmRhciA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEFwaSgpOiBDYWxlbmRhciB7XG4gICAgcmV0dXJuIHRoaXMuY2FsZW5kYXI7XG4gIH1cblxufVxuIl19

@@ -0,1 +1,2 @@

import { __assign } from "tslib";
var hasOwnProperty = Object.prototype.hasOwnProperty;

@@ -20,3 +21,14 @@ /*

}
function mapHash(input, func) {
export function shallowCopy(val) {
if (typeof val === 'object') {
if (Array.isArray(val)) {
val = Array.prototype.slice.call(val);
}
else if (val) { // non-null
val = __assign({}, val);
}
}
return val;
}
export function mapHash(input, func) {
var output = {};

@@ -30,2 +42,2 @@ for (var key in input) {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZnVsbGNhbGVuZGFyL2FuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsSUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUM7QUFFdkQ7OztFQUdFO0FBQ0YsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUFLO0lBRTVCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN4QixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7S0FFNUI7U0FBTSxJQUFJLEtBQUssWUFBWSxJQUFJLEVBQUU7UUFDaEMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztLQUVsQztTQUFNLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssRUFBRSxFQUFFLGtCQUFrQjtRQUNqRSxPQUFPLE9BQU8sQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7S0FFakM7U0FBTSxFQUFFLHdDQUF3QztRQUMvQyxPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0gsQ0FBQztBQUVELFNBQVMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJO0lBQzFCLElBQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUVsQixLQUFLLElBQU0sR0FBRyxJQUFJLEtBQUssRUFBRTtRQUN2QixJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ25DLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ3JDO0tBQ0Y7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5jb25zdCBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbi8qXG5SZWFsbHkgc2ltcGxlIGNsb25lIHV0aWxpdHkuIE9ubHkgY29waWVzIHBsYWluIGFycmF5cywgb2JqZWN0cywgYW5kIERhdGVzLiBUcmFuc2ZlcnMgZXZlcnl0aGluZyBlbHNlIGFzLWlzLlxuV2FudGVkIHRvIHVzZSBhIHRoaXJkLXBhcnR5IGxpYiwgYnV0IG5vbmUgZGlkIGV4YWN0bHkgdGhpcy5cbiovXG5leHBvcnQgZnVuY3Rpb24gZGVlcENvcHkoaW5wdXQpIHtcblxuICBpZiAoQXJyYXkuaXNBcnJheShpbnB1dCkpIHtcbiAgICByZXR1cm4gaW5wdXQubWFwKGRlZXBDb3B5KTtcblxuICB9IGVsc2UgaWYgKGlucHV0IGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIHJldHVybiBuZXcgRGF0ZShpbnB1dC52YWx1ZU9mKCkpO1xuXG4gIH0gZWxzZSBpZiAodHlwZW9mIGlucHV0ID09PSAnb2JqZWN0JyAmJiBpbnB1dCkgeyAvLyBub24tbnVsbCBvYmplY3RcbiAgICByZXR1cm4gbWFwSGFzaChpbnB1dCwgZGVlcENvcHkpO1xuXG4gIH0gZWxzZSB7IC8vIGV2ZXJ5dGhpbmcgZWxzZSAobnVsbCwgZnVuY3Rpb24sIGV0YylcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWFwSGFzaChpbnB1dCwgZnVuYykge1xuICBjb25zdCBvdXRwdXQgPSB7fTtcblxuICBmb3IgKGNvbnN0IGtleSBpbiBpbnB1dCkge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGlucHV0LCBrZXkpKSB7XG4gICAgICBvdXRwdXRba2V5XSA9IGZ1bmMoaW5wdXRba2V5XSwga2V5KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0cHV0O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZnVsbGNhbGVuZGFyL2FuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLElBQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDO0FBRXZEOzs7RUFHRTtBQUNGLE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBSztJQUU1QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDeEIsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBRTVCO1NBQU0sSUFBSSxLQUFLLFlBQVksSUFBSSxFQUFFO1FBQ2hDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7S0FFbEM7U0FBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEVBQUUsRUFBRSxrQkFBa0I7UUFDakUsT0FBTyxPQUFPLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0tBRWpDO1NBQU0sRUFBRSx3Q0FBd0M7UUFDL0MsT0FBTyxLQUFLLENBQUM7S0FDZDtBQUNILENBQUM7QUFHRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEdBQUc7SUFDN0IsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7UUFDM0IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3RCLEdBQUcsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdkM7YUFBTSxJQUFJLEdBQUcsRUFBRSxFQUFFLFdBQVc7WUFDM0IsR0FBRyxnQkFBUSxHQUFHLENBQUUsQ0FBQztTQUNsQjtLQUNGO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBR0QsTUFBTSxVQUFVLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSTtJQUNqQyxJQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFFbEIsS0FBSyxJQUFNLEdBQUcsSUFBSSxLQUFLLEVBQUU7UUFDdkIsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtZQUNuQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNyQztLQUNGO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuY29uc3QgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG4vKlxuUmVhbGx5IHNpbXBsZSBjbG9uZSB1dGlsaXR5LiBPbmx5IGNvcGllcyBwbGFpbiBhcnJheXMsIG9iamVjdHMsIGFuZCBEYXRlcy4gVHJhbnNmZXJzIGV2ZXJ5dGhpbmcgZWxzZSBhcy1pcy5cbldhbnRlZCB0byB1c2UgYSB0aGlyZC1wYXJ0eSBsaWIsIGJ1dCBub25lIGRpZCBleGFjdGx5IHRoaXMuXG4qL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZXBDb3B5KGlucHV0KSB7XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoaW5wdXQpKSB7XG4gICAgcmV0dXJuIGlucHV0Lm1hcChkZWVwQ29weSk7XG5cbiAgfSBlbHNlIGlmIChpbnB1dCBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoaW5wdXQudmFsdWVPZigpKTtcblxuICB9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ29iamVjdCcgJiYgaW5wdXQpIHsgLy8gbm9uLW51bGwgb2JqZWN0XG4gICAgcmV0dXJuIG1hcEhhc2goaW5wdXQsIGRlZXBDb3B5KTtcblxuICB9IGVsc2UgeyAvLyBldmVyeXRoaW5nIGVsc2UgKG51bGwsIGZ1bmN0aW9uLCBldGMpXG4gICAgcmV0dXJuIGlucHV0O1xuICB9XG59XG5cblxuZXhwb3J0IGZ1bmN0aW9uIHNoYWxsb3dDb3B5KHZhbCkge1xuICBpZiAodHlwZW9mIHZhbCA9PT0gJ29iamVjdCcpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICB2YWwgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh2YWwpO1xuICAgIH0gZWxzZSBpZiAodmFsKSB7IC8vIG5vbi1udWxsXG4gICAgICB2YWwgPSB7IC4uLnZhbCB9O1xuICAgIH1cbiAgfVxuICByZXR1cm4gdmFsO1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBIYXNoKGlucHV0LCBmdW5jKSB7XG4gIGNvbnN0IG91dHB1dCA9IHt9O1xuXG4gIGZvciAoY29uc3Qga2V5IGluIGlucHV0KSB7XG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoaW5wdXQsIGtleSkpIHtcbiAgICAgIG91dHB1dFtrZXldID0gZnVuYyhpbnB1dFtrZXldLCBrZXkpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvdXRwdXQ7XG59XG4iXX0=
import { __decorate, __metadata } from 'tslib';
import deepEqual from 'fast-deep-equal';
import { EventEmitter, ElementRef, Input, Output, Component, NgModule } from '@angular/core';
import { ElementRef, Input, Component, NgModule } from '@angular/core';
import { Calendar } from '@fullcalendar/core';

@@ -25,2 +25,13 @@

}
function shallowCopy(val) {
if (typeof val === 'object') {
if (Array.isArray(val)) {
val = Array.prototype.slice.call(val);
}
else if (val) { // non-null
val = Object.assign({}, val);
}
}
return val;
}
function mapHash(input, func) {

@@ -36,144 +47,3 @@ const output = {};

/*
the docs point to this file as an index of options.
when this files is moved, update the docs.
*/
const INPUT_NAMES = [
'header',
'footer',
'customButtons',
'buttonIcons',
'themeSystem',
'bootstrapFontAwesome',
'firstDay',
'dir',
'weekends',
'hiddenDays',
'fixedWeekCount',
'weekNumbers',
'weekNumbersWithinDays',
'weekNumberCalculation',
'businessHours',
'showNonCurrentDates',
'height',
'contentHeight',
'aspectRatio',
'handleWindowResize',
'windowResizeDelay',
'eventLimit',
'eventLimitClick',
'timeZone',
'now',
'defaultView',
'allDaySlot',
'allDayText',
'slotDuration',
'slotLabelFormat',
'slotLabelInterval',
'snapDuration',
'scrollTime',
'minTime',
'maxTime',
'slotEventOverlap',
'listDayFormat',
'listDayAltFormat',
'noEventsMessage',
'defaultDate',
'nowIndicator',
'visibleRange',
'validRange',
'dateIncrement',
'dateAlignment',
'duration',
'dayCount',
'locales',
'locale',
'eventTimeFormat',
'columnHeader',
'columnHeaderFormat',
'columnHeaderText',
'columnHeaderHtml',
'titleFormat',
'weekLabel',
'displayEventTime',
'displayEventEnd',
'eventLimitText',
'dayPopoverFormat',
'navLinks',
'selectable',
'selectMirror',
'selectMinDistance',
'unselectAuto',
'unselectCancel',
'defaultAllDayEventDuration',
'defaultTimedEventDuration',
'cmdFormatter',
'defaultRangeSeparator',
'selectConstraint',
'selectOverlap',
'selectAllow',
'editable',
'eventStartEditable',
'eventDurationEditable',
'eventConstraint',
'eventOverlap',
'eventAllow',
'eventClassName',
'eventClassNames',
'eventBackgroundColor',
'eventBorderColor',
'eventTextColor',
'eventColor',
'events',
'eventSources',
'allDayDefault',
'startParam',
'endParam',
'lazyFetching',
'nextDayThreshold',
'eventOrder',
'rerenderDelay',
'dragRevertDuration',
'dragScroll',
'longPressDelay',
'eventLongPressDelay',
'droppable',
'dropAccept',
'eventDataTransform',
'allDayMaintainDuration',
'eventResizableFromStart',
'timeGridEventMinHeight',
'allDayHtml',
'eventDragMinDistance',
'eventSourceFailure',
'eventSourceSuccess',
'forceEventDuration',
'progressiveEventRendering',
'selectLongPressDelay',
'selectMinDistance',
'timeZoneParam',
'titleRangeSeparator',
// compound OptionsInput...
'buttonText',
'views',
'plugins',
// scheduler...
'schedulerLicenseKey',
'resources',
'resourceLabelText',
'resourceOrder',
'filterResourcesWithEvents',
'resourceText',
'resourceGroupField',
'resourceGroupText',
'resourceAreaWidth',
'resourceColumns',
'resourcesInitiallyExpanded',
'slotWidth',
'datesAboveResources',
'googleCalendarApiKey',
'refetchResourcesOnNavigate',
'eventResourceEditable'
];
const INPUT_IS_DEEP = {
const OPTION_IS_DEEP = {
header: true,

@@ -185,34 +55,2 @@ footer: true,

};
const OUTPUT_NAMES = [
'windowResize',
'dateClick',
'eventClick',
'navLinkDayClick',
'navLinkWeekClick',
'eventMouseEnter',
'eventMouseLeave',
'select',
'unselect',
'loading',
'eventPositioned',
'eventDragStart',
'eventDragStop',
'eventDrop',
'eventResizeStart',
'eventResizeStop',
'eventResize',
'drop',
'eventReceive',
'eventLeave',
'_destroyed',
// TODO: make these inputs...
'viewSkeletonRender',
'viewSkeletonDestroy',
'datesRender',
'datesDestroy',
'dayRender',
'eventRender',
'eventDestroy',
'resourceRender'
];

@@ -222,106 +60,72 @@ let FullCalendarComponent = class FullCalendarComponent {

this.element = element;
this.dirtyProps = {};
this.deepCopies = {}; // holds frozen states
this.windowResize = new EventEmitter();
this.dateClick = new EventEmitter();
this.eventClick = new EventEmitter();
this.eventMouseEnter = new EventEmitter();
this.eventMouseLeave = new EventEmitter();
this.select = new EventEmitter();
this.unselect = new EventEmitter();
this.loading = new EventEmitter();
this.eventPositioned = new EventEmitter();
this.eventDragStart = new EventEmitter();
this.eventDragStop = new EventEmitter();
this.eventDrop = new EventEmitter();
this.eventResizeStart = new EventEmitter();
this.eventResizeStop = new EventEmitter();
this.eventResize = new EventEmitter();
this.drop = new EventEmitter();
this.eventReceive = new EventEmitter();
this.eventLeave = new EventEmitter();
this._destroyed = new EventEmitter();
this.navLinkDayClick = new EventEmitter();
this.navLinkWeekClick = new EventEmitter();
// TODO: make these inputs...
this.viewSkeletonRender = new EventEmitter();
this.viewSkeletonDestroy = new EventEmitter();
this.datesRender = new EventEmitter();
this.datesDestroy = new EventEmitter();
this.dayRender = new EventEmitter();
this.eventRender = new EventEmitter();
this.eventDestroy = new EventEmitter();
this.resourceRender = new EventEmitter();
this.optionSnapshot = {}; // for diffing only
}
ngAfterViewInit() {
this.calendar = new Calendar(this.element.nativeElement, this.buildOptions());
const { deepChangeDetection } = this;
const options = this.options || {};
// initialize snapshot
this.optionSnapshot = mapHash(options, (optionVal, optionName) => ((deepChangeDetection && OPTION_IS_DEEP[optionName])
? deepCopy(optionVal)
: optionVal));
this.calendar = new Calendar(this.element.nativeElement, options);
this.calendar.render();
}
buildOptions() {
const options = {};
OUTPUT_NAMES.forEach(outputName => {
options[outputName] = (...args) => {
this[outputName].emit(...args);
};
});
// do after outputs, so that inputs with same name override
INPUT_NAMES.forEach(inputName => {
let inputVal = this[inputName];
if (inputVal !== undefined) { // unfortunately FC chokes when some props are set to undefined
if (this.deepChangeDetection && INPUT_IS_DEEP[inputName]) {
inputVal = deepCopy(inputVal);
this.deepCopies[inputName] = inputVal; // side effect!
}
options[inputName] = inputVal;
}
});
return options;
}
/*
called before ngOnChanges, allows us to manually detect input changes.
called much more often than ngOnChanges.
allows us to manually detect complex input changes, internal mutations to certain options.
called before ngOnChanges. called much more often than ngOnChanges.
*/
ngDoCheck() {
if (this.calendar && this.deepChangeDetection) { // not the initial render AND we do deep-mutation checks
const { deepCopies } = this;
for (const inputName in INPUT_IS_DEEP) {
if (INPUT_IS_DEEP.hasOwnProperty(inputName)) {
const inputVal = this[inputName];
if (inputVal !== undefined) { // unfortunately FC chokes when some props are set to undefined
if (!deepEqual(inputVal, deepCopies[inputName])) {
const copy = deepCopy(inputVal);
deepCopies[inputName] = copy;
this.dirtyProps[inputName] = copy;
if (this.calendar) { // not the initial render
const { deepChangeDetection, optionSnapshot } = this;
const options = this.options || {};
const updates = {};
const removals = [];
let anyChanges = false;
// detect adds and updates (and update snapshot)
for (const optionName in options) {
if (options.hasOwnProperty(optionName)) {
const optionVal = options[optionName];
if (deepChangeDetection && OPTION_IS_DEEP[optionName]) {
if (!deepEqual(optionSnapshot[optionName], optionVal)) {
optionSnapshot[optionName] = deepCopy(optionVal);
// trick FC into knowing about a nested change.
// TODO: future versions won't need this.
// can't use the previously-made deep copy because it blows away prototype-association.
updates[optionName] = shallowCopy(optionVal);
anyChanges = true;
}
}
else {
if (optionSnapshot[optionName] !== optionVal) {
optionSnapshot[optionName] = optionVal;
updates[optionName] = optionVal;
anyChanges = true;
}
}
}
}
}
}
/*
called with confirmed changes to input references
*/
ngOnChanges(changes) {
if (this.calendar) { // not the initial render
for (const inputName in changes) {
if (changes.hasOwnProperty(inputName)) {
if (this.deepCopies[inputName] === undefined) { // not already handled in ngDoCheck
this.dirtyProps[inputName] = changes[inputName].currentValue;
}
const oldOptionNames = Object.keys(optionSnapshot);
// detect removals (and update snapshot)
for (const optionName of oldOptionNames) {
if (!(optionName in options)) { // doesn't exist in new options?
delete optionSnapshot[optionName];
removals.push(optionName);
}
}
if (anyChanges) {
this.calendar.pauseRendering();
this.calendar.mutateOptions(updates, removals);
}
}
}
ngAfterContentChecked() {
const { dirtyProps } = this; // hold on to reference before clearing
if (Object.keys(dirtyProps).length > 0) {
this.dirtyProps = {}; // clear first, in case the rerender causes new dirtiness
this.calendar.mutateOptions(dirtyProps, [], false, deepEqual);
if (this.calendar) { // too defensive?
this.calendar.resumeRendering();
}
}
ngOnDestroy() {
if (this.calendar) {
if (this.calendar) { // too defensive?
this.calendar.destroy();
this.calendar = null;
}
this.calendar = null;
}

@@ -337,648 +141,8 @@ getApi() {

Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "deepChangeDetection", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "header", void 0);
], FullCalendarComponent.prototype, "options", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "footer", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "customButtons", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "buttonIcons", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "themeSystem", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "bootstrapFontAwesome", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "firstDay", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "dir", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "weekends", void 0);
__decorate([
Input(),
__metadata("design:type", Array)
], FullCalendarComponent.prototype, "hiddenDays", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "fixedWeekCount", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "weekNumbers", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "weekNumbersWithinDays", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "weekNumberCalculation", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "businessHours", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "showNonCurrentDates", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "height", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "contentHeight", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "aspectRatio", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "handleWindowResize", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "windowResizeDelay", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventLimit", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventLimitClick", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "timeZone", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "now", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "defaultView", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "allDaySlot", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "allDayText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "slotDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "slotLabelFormat", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "slotLabelInterval", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "snapDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "scrollTime", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "minTime", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "maxTime", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "slotEventOverlap", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "listDayFormat", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "listDayAltFormat", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "noEventsMessage", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "defaultDate", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "nowIndicator", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "visibleRange", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "validRange", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dateIncrement", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "dateAlignment", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "duration", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "dayCount", void 0);
__decorate([
Input(),
__metadata("design:type", Array)
], FullCalendarComponent.prototype, "locales", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "locale", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventTimeFormat", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "columnHeader", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "columnHeaderFormat", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "columnHeaderText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "columnHeaderHtml", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "titleFormat", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "weekLabel", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "displayEventTime", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "displayEventEnd", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventLimitText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dayPopoverFormat", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "navLinks", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "selectable", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "selectMirror", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "unselectAuto", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "unselectCancel", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "defaultAllDayEventDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "defaultTimedEventDuration", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "cmdFormatter", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "defaultRangeSeparator", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "selectConstraint", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "selectOverlap", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "selectAllow", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "selectMinDistance", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "editable", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "eventStartEditable", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "eventDurationEditable", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventConstraint", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventOverlap", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventAllow", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventClassName", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventClassNames", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "eventBackgroundColor", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "eventBorderColor", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "eventTextColor", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "eventColor", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "events", void 0);
__decorate([
Input(),
__metadata("design:type", Array)
], FullCalendarComponent.prototype, "eventSources", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "allDayDefault", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "startParam", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "endParam", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "lazyFetching", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "nextDayThreshold", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventOrder", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "rerenderDelay", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "dragRevertDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "dragScroll", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "longPressDelay", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "eventLongPressDelay", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "droppable", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dropAccept", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDataTransform", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "allDayMaintainDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "eventResizableFromStart", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "timeGridEventMinHeight", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "allDayHtml", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "eventDragMinDistance", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventSourceFailure", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventSourceSuccess", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "forceEventDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "progressiveEventRendering", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "selectLongPressDelay", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "timeZoneParam", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "titleRangeSeparator", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "buttonText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "views", void 0);
__decorate([
Input(),
__metadata("design:type", Array)
], FullCalendarComponent.prototype, "plugins", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "schedulerLicenseKey", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resources", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "resourceLabelText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceOrder", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "filterResourcesWithEvents", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceGroupField", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceGroupText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceAreaWidth", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceColumns", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourcesInitiallyExpanded", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "slotWidth", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "datesAboveResources", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "googleCalendarApiKey", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "refetchResourcesOnNavigate", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "eventResourceEditable", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "windowResize", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dateClick", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventClick", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventMouseEnter", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventMouseLeave", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "select", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "unselect", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "loading", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventPositioned", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDragStart", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDragStop", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDrop", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventResizeStart", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventResizeStop", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventResize", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "drop", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventReceive", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventLeave", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "_destroyed", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "navLinkDayClick", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "navLinkWeekClick", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "viewSkeletonRender", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "viewSkeletonDestroy", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "datesRender", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "datesDestroy", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dayRender", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventRender", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDestroy", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceRender", void 0);
], FullCalendarComponent.prototype, "deepChangeDetection", void 0);
FullCalendarComponent = __decorate([

@@ -985,0 +149,0 @@ Component({

@@ -1,4 +0,4 @@

import { __spread, __decorate, __metadata } from 'tslib';
import { __assign, __values, __decorate, __metadata } from 'tslib';
import deepEqual from 'fast-deep-equal';
import { EventEmitter, ElementRef, Input, Output, Component, NgModule } from '@angular/core';
import { ElementRef, Input, Component, NgModule } from '@angular/core';
import { Calendar } from '@fullcalendar/core';

@@ -25,2 +25,13 @@

}
function shallowCopy(val) {
if (typeof val === 'object') {
if (Array.isArray(val)) {
val = Array.prototype.slice.call(val);
}
else if (val) { // non-null
val = __assign({}, val);
}
}
return val;
}
function mapHash(input, func) {

@@ -36,144 +47,3 @@ var output = {};

/*
the docs point to this file as an index of options.
when this files is moved, update the docs.
*/
var INPUT_NAMES = [
'header',
'footer',
'customButtons',
'buttonIcons',
'themeSystem',
'bootstrapFontAwesome',
'firstDay',
'dir',
'weekends',
'hiddenDays',
'fixedWeekCount',
'weekNumbers',
'weekNumbersWithinDays',
'weekNumberCalculation',
'businessHours',
'showNonCurrentDates',
'height',
'contentHeight',
'aspectRatio',
'handleWindowResize',
'windowResizeDelay',
'eventLimit',
'eventLimitClick',
'timeZone',
'now',
'defaultView',
'allDaySlot',
'allDayText',
'slotDuration',
'slotLabelFormat',
'slotLabelInterval',
'snapDuration',
'scrollTime',
'minTime',
'maxTime',
'slotEventOverlap',
'listDayFormat',
'listDayAltFormat',
'noEventsMessage',
'defaultDate',
'nowIndicator',
'visibleRange',
'validRange',
'dateIncrement',
'dateAlignment',
'duration',
'dayCount',
'locales',
'locale',
'eventTimeFormat',
'columnHeader',
'columnHeaderFormat',
'columnHeaderText',
'columnHeaderHtml',
'titleFormat',
'weekLabel',
'displayEventTime',
'displayEventEnd',
'eventLimitText',
'dayPopoverFormat',
'navLinks',
'selectable',
'selectMirror',
'selectMinDistance',
'unselectAuto',
'unselectCancel',
'defaultAllDayEventDuration',
'defaultTimedEventDuration',
'cmdFormatter',
'defaultRangeSeparator',
'selectConstraint',
'selectOverlap',
'selectAllow',
'editable',
'eventStartEditable',
'eventDurationEditable',
'eventConstraint',
'eventOverlap',
'eventAllow',
'eventClassName',
'eventClassNames',
'eventBackgroundColor',
'eventBorderColor',
'eventTextColor',
'eventColor',
'events',
'eventSources',
'allDayDefault',
'startParam',
'endParam',
'lazyFetching',
'nextDayThreshold',
'eventOrder',
'rerenderDelay',
'dragRevertDuration',
'dragScroll',
'longPressDelay',
'eventLongPressDelay',
'droppable',
'dropAccept',
'eventDataTransform',
'allDayMaintainDuration',
'eventResizableFromStart',
'timeGridEventMinHeight',
'allDayHtml',
'eventDragMinDistance',
'eventSourceFailure',
'eventSourceSuccess',
'forceEventDuration',
'progressiveEventRendering',
'selectLongPressDelay',
'selectMinDistance',
'timeZoneParam',
'titleRangeSeparator',
// compound OptionsInput...
'buttonText',
'views',
'plugins',
// scheduler...
'schedulerLicenseKey',
'resources',
'resourceLabelText',
'resourceOrder',
'filterResourcesWithEvents',
'resourceText',
'resourceGroupField',
'resourceGroupText',
'resourceAreaWidth',
'resourceColumns',
'resourcesInitiallyExpanded',
'slotWidth',
'datesAboveResources',
'googleCalendarApiKey',
'refetchResourcesOnNavigate',
'eventResourceEditable'
];
var INPUT_IS_DEEP = {
var OPTION_IS_DEEP = {
header: true,

@@ -185,34 +55,2 @@ footer: true,

};
var OUTPUT_NAMES = [
'windowResize',
'dateClick',
'eventClick',
'navLinkDayClick',
'navLinkWeekClick',
'eventMouseEnter',
'eventMouseLeave',
'select',
'unselect',
'loading',
'eventPositioned',
'eventDragStart',
'eventDragStop',
'eventDrop',
'eventResizeStart',
'eventResizeStop',
'eventResize',
'drop',
'eventReceive',
'eventLeave',
'_destroyed',
// TODO: make these inputs...
'viewSkeletonRender',
'viewSkeletonDestroy',
'datesRender',
'datesDestroy',
'dayRender',
'eventRender',
'eventDestroy',
'resourceRender'
];

@@ -222,112 +60,83 @@ var FullCalendarComponent = /** @class */ (function () {

this.element = element;
this.dirtyProps = {};
this.deepCopies = {}; // holds frozen states
this.windowResize = new EventEmitter();
this.dateClick = new EventEmitter();
this.eventClick = new EventEmitter();
this.eventMouseEnter = new EventEmitter();
this.eventMouseLeave = new EventEmitter();
this.select = new EventEmitter();
this.unselect = new EventEmitter();
this.loading = new EventEmitter();
this.eventPositioned = new EventEmitter();
this.eventDragStart = new EventEmitter();
this.eventDragStop = new EventEmitter();
this.eventDrop = new EventEmitter();
this.eventResizeStart = new EventEmitter();
this.eventResizeStop = new EventEmitter();
this.eventResize = new EventEmitter();
this.drop = new EventEmitter();
this.eventReceive = new EventEmitter();
this.eventLeave = new EventEmitter();
this._destroyed = new EventEmitter();
this.navLinkDayClick = new EventEmitter();
this.navLinkWeekClick = new EventEmitter();
// TODO: make these inputs...
this.viewSkeletonRender = new EventEmitter();
this.viewSkeletonDestroy = new EventEmitter();
this.datesRender = new EventEmitter();
this.datesDestroy = new EventEmitter();
this.dayRender = new EventEmitter();
this.eventRender = new EventEmitter();
this.eventDestroy = new EventEmitter();
this.resourceRender = new EventEmitter();
this.optionSnapshot = {}; // for diffing only
}
FullCalendarComponent.prototype.ngAfterViewInit = function () {
this.calendar = new Calendar(this.element.nativeElement, this.buildOptions());
var deepChangeDetection = this.deepChangeDetection;
var options = this.options || {};
// initialize snapshot
this.optionSnapshot = mapHash(options, function (optionVal, optionName) { return ((deepChangeDetection && OPTION_IS_DEEP[optionName])
? deepCopy(optionVal)
: optionVal); });
this.calendar = new Calendar(this.element.nativeElement, options);
this.calendar.render();
};
FullCalendarComponent.prototype.buildOptions = function () {
var _this = this;
var options = {};
OUTPUT_NAMES.forEach(function (outputName) {
options[outputName] = function () {
var _a;
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
(_a = _this[outputName]).emit.apply(_a, __spread(args));
};
});
// do after outputs, so that inputs with same name override
INPUT_NAMES.forEach(function (inputName) {
var inputVal = _this[inputName];
if (inputVal !== undefined) { // unfortunately FC chokes when some props are set to undefined
if (_this.deepChangeDetection && INPUT_IS_DEEP[inputName]) {
inputVal = deepCopy(inputVal);
_this.deepCopies[inputName] = inputVal; // side effect!
}
options[inputName] = inputVal;
}
});
return options;
};
/*
called before ngOnChanges, allows us to manually detect input changes.
called much more often than ngOnChanges.
allows us to manually detect complex input changes, internal mutations to certain options.
called before ngOnChanges. called much more often than ngOnChanges.
*/
FullCalendarComponent.prototype.ngDoCheck = function () {
if (this.calendar && this.deepChangeDetection) { // not the initial render AND we do deep-mutation checks
var deepCopies = this.deepCopies;
for (var inputName in INPUT_IS_DEEP) {
if (INPUT_IS_DEEP.hasOwnProperty(inputName)) {
var inputVal = this[inputName];
if (inputVal !== undefined) { // unfortunately FC chokes when some props are set to undefined
if (!deepEqual(inputVal, deepCopies[inputName])) {
var copy = deepCopy(inputVal);
deepCopies[inputName] = copy;
this.dirtyProps[inputName] = copy;
var e_1, _a;
if (this.calendar) { // not the initial render
var _b = this, deepChangeDetection = _b.deepChangeDetection, optionSnapshot = _b.optionSnapshot;
var options = this.options || {};
var updates = {};
var removals = [];
var anyChanges = false;
// detect adds and updates (and update snapshot)
for (var optionName in options) {
if (options.hasOwnProperty(optionName)) {
var optionVal = options[optionName];
if (deepChangeDetection && OPTION_IS_DEEP[optionName]) {
if (!deepEqual(optionSnapshot[optionName], optionVal)) {
optionSnapshot[optionName] = deepCopy(optionVal);
// trick FC into knowing about a nested change.
// TODO: future versions won't need this.
// can't use the previously-made deep copy because it blows away prototype-association.
updates[optionName] = shallowCopy(optionVal);
anyChanges = true;
}
}
else {
if (optionSnapshot[optionName] !== optionVal) {
optionSnapshot[optionName] = optionVal;
updates[optionName] = optionVal;
anyChanges = true;
}
}
}
}
}
};
/*
called with confirmed changes to input references
*/
FullCalendarComponent.prototype.ngOnChanges = function (changes) {
if (this.calendar) { // not the initial render
for (var inputName in changes) {
if (changes.hasOwnProperty(inputName)) {
if (this.deepCopies[inputName] === undefined) { // not already handled in ngDoCheck
this.dirtyProps[inputName] = changes[inputName].currentValue;
var oldOptionNames = Object.keys(optionSnapshot);
try {
// detect removals (and update snapshot)
for (var oldOptionNames_1 = __values(oldOptionNames), oldOptionNames_1_1 = oldOptionNames_1.next(); !oldOptionNames_1_1.done; oldOptionNames_1_1 = oldOptionNames_1.next()) {
var optionName = oldOptionNames_1_1.value;
if (!(optionName in options)) { // doesn't exist in new options?
delete optionSnapshot[optionName];
removals.push(optionName);
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (oldOptionNames_1_1 && !oldOptionNames_1_1.done && (_a = oldOptionNames_1.return)) _a.call(oldOptionNames_1);
}
finally { if (e_1) throw e_1.error; }
}
if (anyChanges) {
this.calendar.pauseRendering();
this.calendar.mutateOptions(updates, removals);
}
}
};
FullCalendarComponent.prototype.ngAfterContentChecked = function () {
var dirtyProps = this.dirtyProps; // hold on to reference before clearing
if (Object.keys(dirtyProps).length > 0) {
this.dirtyProps = {}; // clear first, in case the rerender causes new dirtiness
this.calendar.mutateOptions(dirtyProps, [], false, deepEqual);
if (this.calendar) { // too defensive?
this.calendar.resumeRendering();
}
};
FullCalendarComponent.prototype.ngOnDestroy = function () {
if (this.calendar) {
if (this.calendar) { // too defensive?
this.calendar.destroy();
this.calendar = null;
}
this.calendar = null;
};

@@ -342,648 +151,8 @@ FullCalendarComponent.prototype.getApi = function () {

Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "deepChangeDetection", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "header", void 0);
], FullCalendarComponent.prototype, "options", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "footer", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "customButtons", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "buttonIcons", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "themeSystem", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "bootstrapFontAwesome", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "firstDay", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "dir", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "weekends", void 0);
__decorate([
Input(),
__metadata("design:type", Array)
], FullCalendarComponent.prototype, "hiddenDays", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "fixedWeekCount", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "weekNumbers", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "weekNumbersWithinDays", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "weekNumberCalculation", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "businessHours", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "showNonCurrentDates", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "height", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "contentHeight", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "aspectRatio", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "handleWindowResize", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "windowResizeDelay", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventLimit", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventLimitClick", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "timeZone", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "now", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "defaultView", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "allDaySlot", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "allDayText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "slotDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "slotLabelFormat", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "slotLabelInterval", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "snapDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "scrollTime", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "minTime", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "maxTime", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "slotEventOverlap", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "listDayFormat", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "listDayAltFormat", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "noEventsMessage", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "defaultDate", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "nowIndicator", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "visibleRange", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "validRange", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dateIncrement", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "dateAlignment", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "duration", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "dayCount", void 0);
__decorate([
Input(),
__metadata("design:type", Array)
], FullCalendarComponent.prototype, "locales", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "locale", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventTimeFormat", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "columnHeader", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "columnHeaderFormat", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "columnHeaderText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "columnHeaderHtml", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "titleFormat", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "weekLabel", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "displayEventTime", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "displayEventEnd", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventLimitText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dayPopoverFormat", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "navLinks", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "selectable", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "selectMirror", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "unselectAuto", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "unselectCancel", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "defaultAllDayEventDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "defaultTimedEventDuration", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "cmdFormatter", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "defaultRangeSeparator", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "selectConstraint", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "selectOverlap", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "selectAllow", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "selectMinDistance", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "editable", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "eventStartEditable", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "eventDurationEditable", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventConstraint", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventOverlap", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventAllow", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventClassName", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventClassNames", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "eventBackgroundColor", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "eventBorderColor", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "eventTextColor", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "eventColor", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "events", void 0);
__decorate([
Input(),
__metadata("design:type", Array)
], FullCalendarComponent.prototype, "eventSources", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "allDayDefault", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "startParam", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "endParam", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "lazyFetching", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "nextDayThreshold", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventOrder", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "rerenderDelay", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "dragRevertDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "dragScroll", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "longPressDelay", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "eventLongPressDelay", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "droppable", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dropAccept", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDataTransform", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "allDayMaintainDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "eventResizableFromStart", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "timeGridEventMinHeight", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "allDayHtml", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "eventDragMinDistance", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventSourceFailure", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventSourceSuccess", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "forceEventDuration", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "progressiveEventRendering", void 0);
__decorate([
Input(),
__metadata("design:type", Number)
], FullCalendarComponent.prototype, "selectLongPressDelay", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "timeZoneParam", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "titleRangeSeparator", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "buttonText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "views", void 0);
__decorate([
Input(),
__metadata("design:type", Array)
], FullCalendarComponent.prototype, "plugins", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "schedulerLicenseKey", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resources", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "resourceLabelText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceOrder", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "filterResourcesWithEvents", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceGroupField", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceGroupText", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceAreaWidth", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceColumns", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourcesInitiallyExpanded", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "slotWidth", void 0);
__decorate([
Input(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "datesAboveResources", void 0);
__decorate([
Input(),
__metadata("design:type", String)
], FullCalendarComponent.prototype, "googleCalendarApiKey", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "refetchResourcesOnNavigate", void 0);
__decorate([
Input(),
__metadata("design:type", Boolean)
], FullCalendarComponent.prototype, "eventResourceEditable", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "windowResize", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dateClick", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventClick", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventMouseEnter", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventMouseLeave", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "select", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "unselect", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "loading", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventPositioned", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDragStart", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDragStop", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDrop", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventResizeStart", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventResizeStop", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventResize", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "drop", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventReceive", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventLeave", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "_destroyed", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "navLinkDayClick", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "navLinkWeekClick", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "viewSkeletonRender", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "viewSkeletonDestroy", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "datesRender", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "datesDestroy", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "dayRender", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventRender", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "eventDestroy", void 0);
__decorate([
Output(),
__metadata("design:type", Object)
], FullCalendarComponent.prototype, "resourceRender", void 0);
], FullCalendarComponent.prototype, "deepChangeDetection", void 0);
FullCalendarComponent = __decorate([

@@ -990,0 +159,0 @@ Component({

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"FullCalendarComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":62,"character":1},"arguments":[{"selector":"full-calendar","template":""}]}],"members":{"deepChangeDetection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":74,"character":31}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"buildOptions":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngAfterContentChecked":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"getApi":[{"__symbolic":"method"}],"header":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":176,"character":3}}]}],"footer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":177,"character":3}}]}],"customButtons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":178,"character":3}}]}],"buttonIcons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":179,"character":3}}]}],"themeSystem":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":180,"character":3}}]}],"bootstrapFontAwesome":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":181,"character":3}}]}],"firstDay":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":182,"character":3}}]}],"dir":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":183,"character":3}}]}],"weekends":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":184,"character":3}}]}],"hiddenDays":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":185,"character":3}}]}],"fixedWeekCount":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":186,"character":3}}]}],"weekNumbers":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":187,"character":3}}]}],"weekNumbersWithinDays":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":188,"character":3}}]}],"weekNumberCalculation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":189,"character":3}}]}],"businessHours":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":190,"character":3}}]}],"showNonCurrentDates":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":191,"character":3}}]}],"height":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":192,"character":3}}]}],"contentHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":193,"character":3}}]}],"aspectRatio":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":194,"character":3}}]}],"handleWindowResize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":195,"character":3}}]}],"windowResizeDelay":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":196,"character":3}}]}],"eventLimit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":197,"character":3}}]}],"eventLimitClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":198,"character":3}}]}],"timeZone":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":199,"character":3}}]}],"now":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":200,"character":3}}]}],"defaultView":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":201,"character":3}}]}],"allDaySlot":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":202,"character":3}}]}],"allDayText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":203,"character":3}}]}],"slotDuration":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":204,"character":3}}]}],"slotLabelFormat":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":205,"character":3}}]}],"slotLabelInterval":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":206,"character":3}}]}],"snapDuration":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":207,"character":3}}]}],"scrollTime":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":208,"character":3}}]}],"minTime":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":209,"character":3}}]}],"maxTime":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":210,"character":3}}]}],"slotEventOverlap":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":211,"character":3}}]}],"listDayFormat":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":212,"character":3}}]}],"listDayAltFormat":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":213,"character":3}}]}],"noEventsMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":214,"character":3}}]}],"defaultDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":215,"character":3}}]}],"nowIndicator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":216,"character":3}}]}],"visibleRange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":217,"character":3}}]}],"validRange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":218,"character":3}}]}],"dateIncrement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":219,"character":3}}]}],"dateAlignment":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":220,"character":3}}]}],"duration":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":221,"character":3}}]}],"dayCount":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":222,"character":3}}]}],"locales":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":223,"character":3}}]}],"locale":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":224,"character":3}}]}],"eventTimeFormat":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":225,"character":3}}]}],"columnHeader":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":226,"character":3}}]}],"columnHeaderFormat":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":227,"character":3}}]}],"columnHeaderText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":228,"character":3}}]}],"columnHeaderHtml":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":229,"character":3}}]}],"titleFormat":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":230,"character":3}}]}],"weekLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":231,"character":3}}]}],"displayEventTime":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":232,"character":3}}]}],"displayEventEnd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":233,"character":3}}]}],"eventLimitText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":234,"character":3}}]}],"dayPopoverFormat":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":235,"character":3}}]}],"navLinks":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":236,"character":3}}]}],"selectable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":237,"character":3}}]}],"selectMirror":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":238,"character":3}}]}],"unselectAuto":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":239,"character":3}}]}],"unselectCancel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":240,"character":3}}]}],"defaultAllDayEventDuration":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":241,"character":3}}]}],"defaultTimedEventDuration":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":242,"character":3}}]}],"cmdFormatter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":243,"character":3}}]}],"defaultRangeSeparator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":244,"character":3}}]}],"selectConstraint":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":245,"character":3}}]}],"selectOverlap":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":246,"character":3}}]}],"selectAllow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":247,"character":3}}]}],"selectMinDistance":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":248,"character":3}}]}],"editable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":249,"character":3}}]}],"eventStartEditable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":250,"character":3}}]}],"eventDurationEditable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":251,"character":3}}]}],"eventConstraint":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":252,"character":3}}]}],"eventOverlap":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":253,"character":3}}]}],"eventAllow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":254,"character":3}}]}],"eventClassName":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":255,"character":3}}]}],"eventClassNames":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":256,"character":3}}]}],"eventBackgroundColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":257,"character":3}}]}],"eventBorderColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":258,"character":3}}]}],"eventTextColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":259,"character":3}}]}],"eventColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":260,"character":3}}]}],"events":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":261,"character":3}}]}],"eventSources":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":262,"character":3}}]}],"allDayDefault":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":263,"character":3}}]}],"startParam":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":264,"character":3}}]}],"endParam":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":265,"character":3}}]}],"lazyFetching":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":266,"character":3}}]}],"nextDayThreshold":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":267,"character":3}}]}],"eventOrder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":268,"character":3}}]}],"rerenderDelay":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":269,"character":3}}]}],"dragRevertDuration":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":270,"character":3}}]}],"dragScroll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":271,"character":3}}]}],"longPressDelay":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":272,"character":3}}]}],"eventLongPressDelay":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":273,"character":3}}]}],"droppable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":274,"character":3}}]}],"dropAccept":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":275,"character":3}}]}],"eventDataTransform":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":276,"character":3}}]}],"allDayMaintainDuration":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":277,"character":3}}]}],"eventResizableFromStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":278,"character":3}}]}],"timeGridEventMinHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":279,"character":3}}]}],"allDayHtml":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":280,"character":3}}]}],"eventDragMinDistance":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":281,"character":3}}]}],"eventSourceFailure":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":282,"character":3}}]}],"eventSourceSuccess":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":283,"character":3}}]}],"forceEventDuration":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":284,"character":3}}]}],"progressiveEventRendering":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":285,"character":3}}]}],"selectLongPressDelay":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":286,"character":3}}]}],"timeZoneParam":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":287,"character":3}}]}],"titleRangeSeparator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":288,"character":3}}]}],"buttonText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":290,"character":3}}]}],"views":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":291,"character":3}}]}],"plugins":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":292,"character":3}}]}],"schedulerLicenseKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":294,"character":3}}]}],"resources":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":295,"character":3}}]}],"resourceLabelText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":296,"character":3}}]}],"resourceOrder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":297,"character":3}}]}],"filterResourcesWithEvents":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":298,"character":3}}]}],"resourceText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":299,"character":3}}]}],"resourceGroupField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":300,"character":3}}]}],"resourceGroupText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":301,"character":3}}]}],"resourceAreaWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":302,"character":3}}]}],"resourceColumns":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":303,"character":3}}]}],"resourcesInitiallyExpanded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":304,"character":3}}]}],"slotWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":305,"character":3}}]}],"datesAboveResources":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":306,"character":3}}]}],"googleCalendarApiKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":307,"character":3}}]}],"refetchResourcesOnNavigate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":308,"character":3}}]}],"eventResourceEditable":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":309,"character":3}}]}],"windowResize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":311,"character":3}}]}],"dateClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":312,"character":3}}]}],"eventClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":313,"character":3}}]}],"eventMouseEnter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":314,"character":3}}]}],"eventMouseLeave":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":315,"character":3}}]}],"select":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":316,"character":3}}]}],"unselect":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":317,"character":3}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":318,"character":3}}]}],"eventPositioned":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":319,"character":3}}]}],"eventDragStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":320,"character":3}}]}],"eventDragStop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":321,"character":3}}]}],"eventDrop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":322,"character":3}}]}],"eventResizeStart":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":323,"character":3}}]}],"eventResizeStop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":324,"character":3}}]}],"eventResize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":325,"character":3}}]}],"drop":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":326,"character":3}}]}],"eventReceive":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":327,"character":3}}]}],"eventLeave":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":328,"character":3}}]}],"_destroyed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":329,"character":3}}]}],"navLinkDayClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":330,"character":3}}]}],"navLinkWeekClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":331,"character":3}}]}],"viewSkeletonRender":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":333,"character":3}}]}],"viewSkeletonDestroy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":334,"character":3}}]}],"datesRender":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":335,"character":3}}]}],"datesDestroy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":336,"character":3}}]}],"dayRender":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":337,"character":3}}]}],"eventRender":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":338,"character":3}}]}],"eventDestroy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":339,"character":3}}]}],"resourceRender":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":340,"character":3}}]}]}},"FullCalendarModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":3,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"FullCalendarComponent"}],"imports":[],"exports":[{"__symbolic":"reference","name":"FullCalendarComponent"}]}]}],"members":{}}},"origins":{"FullCalendarComponent":"./lib/fullcalendar.component","FullCalendarModule":"./lib/fullcalendar.module"},"importAs":"@fullcalendar/angular"}
{"__symbolic":"module","version":4,"metadata":{"FullCalendarComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"full-calendar","template":""}]}],"members":{"options":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"deepChangeDetection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ElementRef","line":26,"character":31}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngDoCheck":[{"__symbolic":"method"}],"ngAfterContentChecked":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"getApi":[{"__symbolic":"method"}]}},"FullCalendarModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":3,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"FullCalendarComponent"}],"imports":[],"exports":[{"__symbolic":"reference","name":"FullCalendarComponent"}]}]}],"members":{}}},"origins":{"FullCalendarComponent":"./lib/fullcalendar.component","FullCalendarModule":"./lib/fullcalendar.module"},"importAs":"@fullcalendar/angular"}

@@ -1,3 +0,2 @@

export declare const INPUT_NAMES: string[];
export declare const INPUT_IS_DEEP: {
export declare const OPTION_IS_DEEP: {
header: boolean;

@@ -9,2 +8,1 @@ footer: boolean;

};
export declare const OUTPUT_NAMES: string[];

@@ -1,201 +0,15 @@

import { ElementRef, EventEmitter, SimpleChanges, AfterViewInit, DoCheck, OnChanges, AfterContentChecked, OnDestroy } from '@angular/core';
import { Calendar, BusinessHoursInput, ConstraintInput, EventApi, PluginDef } from '@fullcalendar/core';
declare type DateInput = any;
declare type DurationInput = any;
declare type FormatterInput = any;
declare type DateRangeInput = any;
declare type RawLocale = any;
declare type LocaleSingularArg = any;
declare type OverlapFunc = any;
declare type AllowFunc = any;
declare type CustomButtonInput = any;
declare type ButtonIconsInput = any;
declare type CellInfo = any;
declare type ButtonTextCompoundInput = any;
declare type ToolbarInput = any;
declare type ViewOptionsInput = any;
declare type EventSourceInput = any;
declare type EventInputTransformer = any;
declare type EventSourceErrorResponseHandler = any;
declare type EventSourceSuccessResponseHandler = any;
export declare class FullCalendarComponent implements AfterViewInit, DoCheck, OnChanges, AfterContentChecked, OnDestroy {
import { ElementRef, AfterViewInit, DoCheck, AfterContentChecked, OnDestroy } from '@angular/core';
import { Calendar, OptionsInput } from '@fullcalendar/core';
export declare class FullCalendarComponent implements AfterViewInit, DoCheck, AfterContentChecked, OnDestroy {
private element;
options?: OptionsInput;
deepChangeDetection?: boolean;
private calendar;
private dirtyProps;
private deepCopies;
private optionSnapshot;
constructor(element: ElementRef);
ngAfterViewInit(): void;
private buildOptions;
ngDoCheck(): void;
ngOnChanges(changes: SimpleChanges): void;
ngAfterContentChecked(): void;
ngOnDestroy(): void;
getApi(): Calendar;
header?: boolean | ToolbarInput;
footer?: boolean | ToolbarInput;
customButtons?: {
[name: string]: CustomButtonInput;
};
buttonIcons?: boolean | ButtonIconsInput;
themeSystem?: 'standard' | string;
bootstrapFontAwesome?: boolean | ButtonIconsInput;
firstDay?: number;
dir?: 'ltr' | 'rtl' | 'auto';
weekends?: boolean;
hiddenDays?: number[];
fixedWeekCount?: boolean;
weekNumbers?: boolean;
weekNumbersWithinDays?: boolean;
weekNumberCalculation?: 'local' | 'ISO' | ((m: Date) => number);
businessHours?: BusinessHoursInput;
showNonCurrentDates?: boolean;
height?: number | 'auto' | 'parent' | (() => number);
contentHeight?: number | 'auto' | (() => number);
aspectRatio?: number;
handleWindowResize?: boolean;
windowResizeDelay?: number;
eventLimit?: boolean | number;
eventLimitClick?: 'popover' | 'week' | 'day' | string | ((cellinfo: CellInfo, jsevent: Event) => void);
timeZone?: string | boolean;
now?: DateInput | (() => DateInput);
defaultView?: string;
allDaySlot?: boolean;
allDayText?: string;
slotDuration?: DurationInput;
slotLabelFormat?: FormatterInput;
slotLabelInterval?: DurationInput;
snapDuration?: DurationInput;
scrollTime?: DurationInput;
minTime?: DurationInput;
maxTime?: DurationInput;
slotEventOverlap?: boolean;
listDayFormat?: FormatterInput | boolean;
listDayAltFormat?: FormatterInput | boolean;
noEventsMessage?: string;
defaultDate?: DateInput;
nowIndicator?: boolean;
visibleRange?: ((currentDate: Date) => DateRangeInput) | DateRangeInput;
validRange?: DateRangeInput;
dateIncrement?: DurationInput;
dateAlignment?: string;
duration?: DurationInput;
dayCount?: number;
locales?: RawLocale[];
locale?: LocaleSingularArg;
eventTimeFormat?: FormatterInput;
columnHeader?: boolean;
columnHeaderFormat?: FormatterInput;
columnHeaderText?: string | ((date: DateInput) => string);
columnHeaderHtml?: string | ((date: DateInput) => string);
titleFormat?: FormatterInput;
weekLabel?: string;
displayEventTime?: boolean;
displayEventEnd?: boolean;
eventLimitText?: string | ((eventCnt: number) => string);
dayPopoverFormat?: FormatterInput;
navLinks?: boolean;
selectable?: boolean;
selectMirror?: boolean;
unselectAuto?: boolean;
unselectCancel?: string;
defaultAllDayEventDuration?: DurationInput;
defaultTimedEventDuration?: DurationInput;
cmdFormatter?: string;
defaultRangeSeparator?: string;
selectConstraint?: ConstraintInput;
selectOverlap?: boolean | OverlapFunc;
selectAllow?: AllowFunc;
selectMinDistance?: number;
editable?: boolean;
eventStartEditable?: boolean;
eventDurationEditable?: boolean;
eventConstraint?: ConstraintInput;
eventOverlap?: boolean | OverlapFunc;
eventAllow?: AllowFunc;
eventClassName?: string[] | string;
eventClassNames?: string[] | string;
eventBackgroundColor?: string;
eventBorderColor?: string;
eventTextColor?: string;
eventColor?: string;
events?: EventSourceInput;
eventSources?: EventSourceInput[];
allDayDefault?: boolean;
startParam?: string;
endParam?: string;
lazyFetching?: boolean;
nextDayThreshold?: DurationInput;
eventOrder?: string | Array<((a: EventApi, b: EventApi) => number) | (string | ((a: EventApi, b: EventApi) => number))>;
rerenderDelay?: number | null;
dragRevertDuration?: number;
dragScroll?: boolean;
longPressDelay?: number;
eventLongPressDelay?: number;
droppable?: boolean;
dropAccept?: string | ((draggable: any) => boolean);
eventDataTransform?: EventInputTransformer;
allDayMaintainDuration?: Boolean;
eventResizableFromStart?: Boolean;
timeGridEventMinHeight?: number;
allDayHtml?: string;
eventDragMinDistance?: number;
eventSourceFailure?: EventSourceErrorResponseHandler;
eventSourceSuccess?: EventSourceSuccessResponseHandler;
forceEventDuration?: boolean;
progressiveEventRendering?: boolean;
selectLongPressDelay?: number;
timeZoneParam?: string;
titleRangeSeparator?: string;
buttonText?: ButtonTextCompoundInput;
views?: {
[viewId: string]: ViewOptionsInput;
};
plugins?: (PluginDef | string)[];
schedulerLicenseKey?: string;
resources?: any;
resourceLabelText?: string;
resourceOrder?: any;
filterResourcesWithEvents?: any;
resourceText?: any;
resourceGroupField?: any;
resourceGroupText?: any;
resourceAreaWidth?: any;
resourceColumns?: any;
resourcesInitiallyExpanded?: any;
slotWidth?: any;
datesAboveResources?: any;
googleCalendarApiKey?: string;
refetchResourcesOnNavigate?: boolean;
eventResourceEditable?: boolean;
windowResize: EventEmitter<any>;
dateClick: EventEmitter<any>;
eventClick: EventEmitter<any>;
eventMouseEnter: EventEmitter<any>;
eventMouseLeave: EventEmitter<any>;
select: EventEmitter<any>;
unselect: EventEmitter<any>;
loading: EventEmitter<any>;
eventPositioned: EventEmitter<any>;
eventDragStart: EventEmitter<any>;
eventDragStop: EventEmitter<any>;
eventDrop: EventEmitter<any>;
eventResizeStart: EventEmitter<any>;
eventResizeStop: EventEmitter<any>;
eventResize: EventEmitter<any>;
drop: EventEmitter<any>;
eventReceive: EventEmitter<any>;
eventLeave: EventEmitter<any>;
_destroyed: EventEmitter<any>;
navLinkDayClick: EventEmitter<any>;
navLinkWeekClick: EventEmitter<any>;
viewSkeletonRender: EventEmitter<any>;
viewSkeletonDestroy: EventEmitter<any>;
datesRender: EventEmitter<any>;
datesDestroy: EventEmitter<any>;
dayRender: EventEmitter<any>;
eventRender: EventEmitter<any>;
eventDestroy: EventEmitter<any>;
resourceRender: EventEmitter<any>;
}
export {};
export declare function deepCopy(input: any): any;
export declare function shallowCopy(val: any): any;
export declare function mapHash(input: any, func: any): {};
{
"name": "@fullcalendar/angular",
"version": "4.4.5-beta",
"version": "5.0.0-beta",
"title": "FullCalendar Angular Component",

@@ -18,3 +18,3 @@ "description": "An official FullCalendar component for Angular",

"dependencies": {
"@fullcalendar/core": "~4.4.0",
"@fullcalendar/core": "5.0.0-beta",
"fast-deep-equal": "^3.1.1"

@@ -21,0 +21,0 @@ },

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc