@daypilot/daypilot-lite-angular
Version:
DayPilot Lite for Angular
136 lines • 14.9 kB
JavaScript
import { Component, effect, Input } from '@angular/core';
import { DayPilot } from "./core/daypilot-core";
import { optHash, rand } from "./util";
import * as i0 from "@angular/core";
class DayPilotMonthComponent {
control;
config;
_requestUpdateFull = false;
_requestUpdateEvents = false;
_hashOptions = "";
_hashEvents = "";
_eventsSet = false;
_id = "dp_" + new Date().getTime() + rand();
_events = [];
get events() {
if (typeof this._events === 'function') {
return this._events();
}
return this._events;
}
set events(value) {
this._eventsSet = true;
this._events = value;
}
get configResolved() {
return typeof this.config === 'function' ? this.config() : this.config;
}
get id() {
return this._id;
}
constructor() {
effect(() => {
if (typeof this._events !== 'function') {
return;
}
const control = this.control;
const events = this._events();
if (control) {
control.internal.upd({ events });
}
});
effect(() => {
if (typeof this.config !== 'function') {
return;
}
const control = this.control;
const config = this.config();
if (control) {
control.internal.upd(config);
}
});
}
ngOnInit() {
}
ngOnDestroy() {
this.dispose();
}
ngAfterViewInit() {
this.dispose();
const dp = new DayPilot.Month(this.id);
this.control = dp;
this.updateOptions();
this.updateEvents();
this._requestUpdateFull = false; // config just loaded and calling init(), no need to call update again
this._requestUpdateEvents = false; // config just loaded and calling init(), no need to call update again
dp.init();
}
ngDoCheck() {
const eventsAsSignal = typeof this._events === 'function' || !this._eventsSet;
const configAsSignal = typeof this.config === 'function' || !this.config;
if (eventsAsSignal && configAsSignal) {
return;
}
if (!this.control) {
return;
}
if (!configAsSignal) {
this.updateOptions();
}
if (!eventsAsSignal) {
this.updateEvents();
}
const control = this.control;
if (this._requestUpdateFull) {
control.internal.upd();
this._requestUpdateFull = false;
this._requestUpdateEvents = false;
}
else if (this._requestUpdateEvents) {
control.internal.upd({ "events": this.events });
this._requestUpdateEvents = false;
}
}
dispose() {
if (this.control) {
this.control.dispose();
//@ts-ignore
this.control = null;
}
}
updateOptions() {
const config = this.configResolved;
const hash = optHash(config);
if (hash !== this._hashOptions) {
const dp = this.control;
dp.internal.loadOptions(config);
this._requestUpdateFull = true;
}
this._hashOptions = hash;
}
updateEvents() {
const hash = optHash(this.events);
if (hash !== this._hashEvents) {
const dp = this.control;
if (dp) {
dp.events.list = this.events;
}
this._requestUpdateEvents = true;
}
this._hashEvents = hash;
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DayPilotMonthComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DayPilotMonthComponent, selector: "daypilot-month", inputs: { config: "config", events: "events" }, ngImport: i0, template: `
<div id='{{id}}'></div>`, isInline: true, styles: [""] });
}
export { DayPilotMonthComponent };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DayPilotMonthComponent, decorators: [{
type: Component,
args: [{ selector: 'daypilot-month', template: `
<div id='{{id}}'></div>` }]
}], ctorParameters: function () { return []; }, propDecorators: { config: [{
type: Input
}], events: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5cGlsb3QtbW9udGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF5cGlsb3QvZGF5cGlsb3QtbGl0ZS1hbmd1bGFyL3NyYy9saWIvZGF5cGlsb3QtbW9udGguY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFXLE1BQU0sRUFBZ0IsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDOUMsT0FBTyxFQUFDLE9BQU8sRUFBa0IsSUFBSSxFQUFDLE1BQU0sUUFBUSxDQUFDOztBQUVyRCxNQU1hLHNCQUFzQjtJQUUxQixPQUFPLENBQWtCO0lBQ3ZCLE1BQU0sQ0FBc0I7SUFDN0Isa0JBQWtCLEdBQVksS0FBSyxDQUFDO0lBQ3BDLG9CQUFvQixHQUFZLEtBQUssQ0FBQztJQUN0QyxZQUFZLEdBQVcsRUFBRSxDQUFDO0lBQzFCLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUU1QixHQUFHLEdBQVcsS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFFcEQsT0FBTyxHQUF5QyxFQUFFLENBQUM7SUFFM0QsSUFBVyxNQUFNO1FBQ2YsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssVUFBVSxFQUFFO1lBQ3RDLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3ZCO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUNXLE1BQU0sQ0FBQyxLQUEyQztRQUMzRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQs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QUM7SUFDMUIsQ0FBQzt3R0E5SVUsc0JBQXNCOzRGQUF0QixzQkFBc0Isc0dBSnZCOzRCQUNnQjs7U0FHZixzQkFBc0I7NEZBQXRCLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDRSxnQkFBZ0IsWUFDaEI7NEJBQ2dCOzBFQU1qQixNQUFNO3NCQUFkLEtBQUs7Z0JBbUJLLE1BQU07c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRG9DaGVjaywgZWZmZWN0LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGF5UGlsb3R9IGZyb20gXCIuL2NvcmUvZGF5cGlsb3QtY29yZVwiO1xuaW1wb3J0IHtvcHRIYXNoLCBPcHRpb25hbFNpZ25hbCwgcmFuZH0gZnJvbSBcIi4vdXRpbFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYXlwaWxvdC1tb250aCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBpZD0ne3tpZH19Jz48L2Rpdj5gLFxuICBzdHlsZXM6IFtgYF1cbn0pXG5leHBvcnQgY2xhc3MgRGF5UGlsb3RNb250aENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBEb0NoZWNrIHtcblxuICBwdWJsaWMgY29udHJvbCE6IERheVBpbG90Lk1vbnRoO1xuICBASW5wdXQoKSBjb25maWc6IE9wdGlvbmFsU2lnbmFsPGFueT47XG4gIHByaXZhdGUgX3JlcXVlc3RVcGRhdGVGdWxsOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3JlcXVlc3RVcGRhdGVFdmVudHM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfaGFzaE9wdGlvbnM6IHN0cmluZyA9IFwiXCI7XG4gIHByaXZhdGUgX2hhc2hFdmVudHM6IHN0cmluZyA9IFwiXCI7XG4gIHByaXZhdGUgX2V2ZW50c1NldDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2lkOiBzdHJpbmcgPSBcImRwX1wiICsgbmV3IERhdGUoKS5nZXRUaW1lKCkgKyByYW5kKCk7XG5cbiAgcHJpdmF0ZSBfZXZlbnRzOiBPcHRpb25hbFNpZ25hbDxEYXlQaWxvdC5FdmVudERhdGFbXT4gPSBbXTtcblxuICBwdWJsaWMgZ2V0IGV2ZW50cygpOiBEYXlQaWxvdC5FdmVudERhdGFbXSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLl9ldmVudHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiB0aGlzLl9ldmVudHMoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2V2ZW50cztcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZXZlbnRzKHZhbHVlOiBPcHRpb25hbFNpZ25hbDxEYXlQaWxvdC5FdmVudERhdGFbXT4pIHtcbiAgICB0aGlzLl9ldmVudHNTZXQgPSB0cnVlO1xuICAgIHRoaXMuX2V2ZW50cyA9IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgY29uZmlnUmVzb2x2ZWQoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLmNvbmZpZyA9PT0gJ2Z1bmN0aW9uJyA/IHRoaXMuY29uZmlnKCkgOiB0aGlzLmNvbmZpZztcbiAgfVxuXG4gIGdldCBpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5faWQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiB0aGlzLl9ldmVudHMgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgY29udHJvbDogYW55ID0gdGhpcy5jb250cm9sO1xuICAgICAgY29uc3QgZXZlbnRzID0gKDxhbnk+dGhpcy5fZXZlbnRzKSgpO1xuICAgICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgICAgY29udHJvbC5pbnRlcm5hbC51cGQoe2V2ZW50c30pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWcgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgY29udHJvbDogYW55ID0gdGhpcy5jb250cm9sO1xuICAgICAgY29uc3QgY29uZmlnID0gKDxhbnk+dGhpcy5jb25maWcpKCk7XG4gICAgICBpZiAoY29udHJvbCkge1xuICAgICAgICBjb250cm9sLmludGVybmFsLnVwZChjb25maWcpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcG9zZSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzcG9zZSgpO1xuICAgIGNvbnN0IGRwID0gbmV3IERheVBpbG90Lk1vbnRoKHRoaXMuaWQpO1xuICAgIHRoaXMuY29udHJvbCA9IGRwO1xuICAgIHRoaXMudXBkYXRlT3B0aW9ucygpO1xuICAgIHRoaXMudXBkYXRlRXZlbnRzKCk7XG4gICAgdGhpcy5fcmVxdWVzdFVwZGF0ZUZ1bGwgPSBmYWxzZTsgLy8gY29uZmlnIGp1c3QgbG9hZGVkIGFuZCBjYWxsaW5nIGluaXQoKSwgbm8gbmVlZCB0byBjYWxsIHVwZGF0ZSBhZ2FpblxuICAgIHRoaXMuX3JlcXVlc3RVcGRhdGVFdmVudHMgPSBmYWxzZTsgLy8gY29uZmlnIGp1c3QgbG9hZGVkIGFuZCBjYWxsaW5nIGluaXQoKSwgbm8gbmVlZCB0byBjYWxsIHVwZGF0ZSBhZ2FpblxuICAgIGRwLmluaXQoKTtcbiAgfVxuXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcblxuICAgIGNvbnN0IGV2ZW50c0FzU2lnbmFsID0gdHlwZW9mIHRoaXMuX2V2ZW50cyA9PT0gJ2Z1bmN0aW9uJyB8fCAhdGhpcy5fZXZlbnRzU2V0O1xuICAgIGNvbnN0IGNvbmZpZ0FzU2lnbmFsID0gdHlwZW9mIHRoaXMuY29uZmlnID09PSAnZnVuY3Rpb24nIHx8ICF0aGlzLmNvbmZpZztcblxuICAgIGlmIChldmVudHNBc1NpZ25hbCAmJiBjb25maWdBc1NpZ25hbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5jb250cm9sKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFjb25maWdBc1NpZ25hbCkge1xuICAgICAgdGhpcy51cGRhdGVPcHRpb25zKCk7XG4gICAgfVxuICAgIGlmICghZXZlbnRzQXNTaWduYWwpIHtcbiAgICAgIHRoaXMudXBkYXRlRXZlbnRzKCk7XG4gICAgfVxuXG4gICAgY29uc3QgY29udHJvbDogYW55ID0gdGhpcy5jb250cm9sO1xuXG4gICAgaWYgKHRoaXMuX3JlcXVlc3RVcGRhdGVGdWxsKSB7XG4gICAgICBjb250cm9sLmludGVybmFsLnVwZCgpO1xuICAgICAgdGhpcy5fcmVxdWVzdFVwZGF0ZUZ1bGwgPSBmYWxzZTtcbiAgICAgIHRoaXMuX3JlcXVlc3RVcGRhdGVFdmVudHMgPSBmYWxzZTtcbiAgICB9XG4gICAgZWxzZSBpZiAodGhpcy5fcmVxdWVzdFVwZGF0ZUV2ZW50cykge1xuICAgICAgY29udHJvbC5pbnRlcm5hbC51cGQoeyBcImV2ZW50c1wiOiB0aGlzLmV2ZW50cyB9KTtcbiAgICAgIHRoaXMuX3JlcXVlc3RVcGRhdGVFdmVudHMgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRpc3Bvc2UoKSB7XG4gICAgaWYgKHRoaXMuY29udHJvbCkge1xuICAgICAgdGhpcy5jb250cm9sLmRpc3Bvc2UoKTtcbiAgICAgIC8vQHRzLWlnbm9yZVxuICAgICAgdGhpcy5jb250cm9sID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZU9wdGlvbnMoKTogdm9pZCB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWdSZXNvbHZlZDtcblxuICAgIGNvbnN0IGhhc2ggPSBvcHRIYXNoKGNvbmZpZyk7XG4gICAgaWYgKGhhc2ggIT09IHRoaXMuX2hhc2hPcHRpb25zKSB7XG4gICAgICBjb25zdCBkcCA9IHRoaXMuY29udHJvbCBhcyBhbnk7XG4gICAgICBkcC5pbnRlcm5hbC5sb2FkT3B0aW9ucyhjb25maWcpO1xuICAgICAgdGhpcy5fcmVxdWVzdFVwZGF0ZUZ1bGwgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLl9oYXNoT3B0aW9ucyA9IGhhc2g7XG5cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRXZlbnRzKCk6IHZvaWQge1xuICAgIGNvbnN0IGhhc2ggPSBvcHRIYXNoKHRoaXMuZXZlbnRzKTtcbiAgICBpZiAoaGFzaCAhPT0gdGhpcy5faGFzaEV2ZW50cykge1xuICAgICAgY29uc3QgZHAgPSB0aGlzLmNvbnRyb2w7XG4gICAgICBpZiAoZHApIHtcbiAgICAgICAgZHAuZXZlbnRzLmxpc3QgPSB0aGlzLmV2ZW50cztcbiAgICAgIH1cbiAgICAgIHRoaXMuX3JlcXVlc3RVcGRhdGVFdmVudHMgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLl9oYXNoRXZlbnRzID0gaGFzaDtcbiAgfVxufVxuIl19