@dayflow/angular 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5Zmxvdy1hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RheWZsb3ctYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,165 @@
1
+ import { Component, Input, ViewChild, ChangeDetectionStrategy, } from '@angular/core';
2
+ import { CalendarRenderer, CalendarApp, } from '@dayflow/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "./day-flow-portal.directive";
6
+ export class DayFlowCalendarComponent {
7
+ cdr;
8
+ calendar;
9
+ // Templates for custom content injection
10
+ eventContent;
11
+ eventDetailContent;
12
+ eventDetailDialog;
13
+ headerContent;
14
+ createCalendarDialog;
15
+ titleBarSlot;
16
+ colorPicker;
17
+ colorPickerWrapper;
18
+ container;
19
+ customRenderings = [];
20
+ renderer;
21
+ unsubscribe;
22
+ internalApp;
23
+ constructor(cdr) {
24
+ this.cdr = cdr;
25
+ }
26
+ get app() {
27
+ if (this.internalApp)
28
+ return this.internalApp;
29
+ if (this.calendar instanceof CalendarApp) {
30
+ return this.calendar;
31
+ }
32
+ if (this.calendar.app) {
33
+ return this.calendar.app;
34
+ }
35
+ // If it's a config object, we create an internal instance
36
+ if (typeof this.calendar.views !== 'undefined') {
37
+ this.internalApp = new CalendarApp(this.calendar);
38
+ return this.internalApp;
39
+ }
40
+ return this.calendar;
41
+ }
42
+ ngAfterViewInit() {
43
+ this.initCalendar();
44
+ }
45
+ ngOnChanges(changes) {
46
+ if (changes['calendar'] && !changes['calendar'].firstChange) {
47
+ this.internalApp = undefined;
48
+ this.destroyCalendar();
49
+ this.initCalendar();
50
+ }
51
+ }
52
+ ngOnDestroy() {
53
+ this.destroyCalendar();
54
+ }
55
+ initCalendar() {
56
+ if (!this.container || !this.calendar)
57
+ return;
58
+ this.renderer = new CalendarRenderer(this.app);
59
+ this.renderer.mount(this.container.nativeElement);
60
+ this.unsubscribe = this.renderer
61
+ .getCustomRenderingStore()
62
+ .subscribe(renderings => {
63
+ this.customRenderings = Array.from(renderings.values());
64
+ this.cdr.markForCheck();
65
+ });
66
+ }
67
+ destroyCalendar() {
68
+ if (this.unsubscribe)
69
+ this.unsubscribe();
70
+ if (this.renderer)
71
+ this.renderer.unmount();
72
+ this.unsubscribe = undefined;
73
+ this.renderer = undefined;
74
+ }
75
+ getTemplate(name) {
76
+ const templates = {
77
+ eventContent: this.eventContent,
78
+ eventDetailContent: this.eventDetailContent,
79
+ eventDetailDialog: this.eventDetailDialog,
80
+ headerContent: this.headerContent,
81
+ createCalendarDialog: this.createCalendarDialog,
82
+ titleBarSlot: this.titleBarSlot,
83
+ colorPicker: this.colorPicker,
84
+ colorPickerWrapper: this.colorPickerWrapper,
85
+ };
86
+ return templates[name] || null;
87
+ }
88
+ trackById(_index, item) {
89
+ return item.id;
90
+ }
91
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DayFlowCalendarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
92
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DayFlowCalendarComponent, selector: "dayflow-calendar", inputs: { calendar: "calendar", eventContent: "eventContent", eventDetailContent: "eventDetailContent", eventDetailDialog: "eventDetailDialog", headerContent: "headerContent", createCalendarDialog: "createCalendarDialog", titleBarSlot: "titleBarSlot", colorPicker: "colorPicker", colorPickerWrapper: "colorPickerWrapper" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
93
+ <div #container class="df-calendar-wrapper"></div>
94
+
95
+ <!-- Hidden area to render Angular templates before they are portaled -->
96
+ <div style="display: none">
97
+ <ng-container
98
+ *ngFor="let rendering of customRenderings; trackBy: trackById"
99
+ >
100
+ <div
101
+ *ngIf="getTemplate(rendering.generatorName)"
102
+ [dayflowPortal]="rendering.containerEl"
103
+ >
104
+ <ng-container
105
+ *ngTemplateOutlet="
106
+ getTemplate(rendering.generatorName)!;
107
+ context: { $implicit: rendering.generatorArgs }
108
+ "
109
+ ></ng-container>
110
+ </div>
111
+ </ng-container>
112
+ </div>
113
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.DayFlowPortalDirective, selector: "[dayflowPortal]", inputs: ["dayflowPortal"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
114
+ }
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DayFlowCalendarComponent, decorators: [{
116
+ type: Component,
117
+ args: [{
118
+ selector: 'dayflow-calendar',
119
+ template: `
120
+ <div #container class="df-calendar-wrapper"></div>
121
+
122
+ <!-- Hidden area to render Angular templates before they are portaled -->
123
+ <div style="display: none">
124
+ <ng-container
125
+ *ngFor="let rendering of customRenderings; trackBy: trackById"
126
+ >
127
+ <div
128
+ *ngIf="getTemplate(rendering.generatorName)"
129
+ [dayflowPortal]="rendering.containerEl"
130
+ >
131
+ <ng-container
132
+ *ngTemplateOutlet="
133
+ getTemplate(rendering.generatorName)!;
134
+ context: { $implicit: rendering.generatorArgs }
135
+ "
136
+ ></ng-container>
137
+ </div>
138
+ </ng-container>
139
+ </div>
140
+ `,
141
+ changeDetection: ChangeDetectionStrategy.OnPush,
142
+ }]
143
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { calendar: [{
144
+ type: Input
145
+ }], eventContent: [{
146
+ type: Input
147
+ }], eventDetailContent: [{
148
+ type: Input
149
+ }], eventDetailDialog: [{
150
+ type: Input
151
+ }], headerContent: [{
152
+ type: Input
153
+ }], createCalendarDialog: [{
154
+ type: Input
155
+ }], titleBarSlot: [{
156
+ type: Input
157
+ }], colorPicker: [{
158
+ type: Input
159
+ }], colorPickerWrapper: [{
160
+ type: Input
161
+ }], container: [{
162
+ type: ViewChild,
163
+ args: ['container']
164
+ }] } });
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LWZsb3ctY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9kYXktZmxvdy1jYWxlbmRhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsU0FBUyxFQUtULHVCQUF1QixHQUd4QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsZ0JBQWdCLEVBRWhCLFdBQVcsR0FJWixNQUFNLGVBQWUsQ0FBQzs7OztBQTRCdkIsTUFBTSxPQUFPLHdCQUF3QjtJQXNCZjtJQW5CWCxRQUFRLENBQTJEO0lBRTVFLHlDQUF5QztJQUNoQyxZQUFZLENBQW9CO0lBQ2hDLGtCQUFrQixDQUFvQjtJQUN0QyxpQkFBaUIsQ0FBb0I7SUFDckMsYUFBYSxDQUFvQjtJQUNqQyxvQkFBb0IsQ0FBb0I7SUFDeEMsWUFBWSxDQUFvQjtJQUNoQyxXQUFXLENBQW9CO0lBQy9CLGtCQUFrQixDQUFvQjtJQUV2QixTQUFTLENBQTJCO0lBRTVELGdCQUFnQixHQUFzQixFQUFFLENBQUM7SUFDakMsUUFBUSxDQUFvQjtJQUM1QixXQUFXLENBQWM7SUFDekIsV0FBVyxDQUFnQjtJQUVuQyxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUFHLENBQUM7SUFFOUMsSUFBWSxHQUFHO1FBQ2IsSUFBSSxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUU5QyxJQUFJLElBQUksQ0FBQyxRQUFRLFlBQVksV0FBVyxFQUFFLENBQUM7WUFDekMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxJQUFLLElBQUksQ0FBQyxRQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQy9CLE9BQVEsSUFBSSxDQUFDLFFBQWdCLENBQUMsR0FBRyxDQUFDO1FBQ3BDLENBQUM7UUFF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Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDtzRkFJVSxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVrQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBFbGVtZW50UmVmLFxuICBWaWV3Q2hpbGQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBBZnRlclZpZXdJbml0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgVGVtcGxhdGVSZWYsXG4gIENoYW5nZURldGVjdG9yUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIENhbGVuZGFyUmVuZGVyZXIsXG4gIElDYWxlbmRhckFwcCxcbiAgQ2FsZW5kYXJBcHAsXG4gIENhbGVuZGFyQXBwQ29uZmlnLFxuICBVc2VDYWxlbmRhckFwcFJldHVybixcbiAgQ3VzdG9tUmVuZGVyaW5nLFxufSBmcm9tICdAZGF5Zmxvdy9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGF5Zmxvdy1jYWxlbmRhcicsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiAjY29udGFpbmVyIGNsYXNzPVwiZGYtY2FsZW5kYXItd3JhcHBlclwiPjwvZGl2PlxuXG4gICAgPCEtLSBIaWRkZW4gYXJlYSB0byByZW5kZXIgQW5ndWxhciB0ZW1wbGF0ZXMgYmVmb3JlIHRoZXkgYXJlIHBvcnRhbGVkIC0tPlxuICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBub25lXCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0Zvcj1cImxldCByZW5kZXJpbmcgb2YgY3VzdG9tUmVuZGVyaW5nczsgdHJhY2tCeTogdHJhY2tCeUlkXCJcbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0lmPVwiZ2V0VGVtcGxhdGUocmVuZGVyaW5nLmdlbmVyYXRvck5hbWUpXCJcbiAgICAgICAgICBbZGF5Zmxvd1BvcnRhbF09XCJyZW5kZXJpbmcuY29udGFpbmVyRWxcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgZ2V0VGVtcGxhdGUocmVuZGVyaW5nLmdlbmVyYXRvck5hbWUpITtcbiAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHJlbmRlcmluZy5nZW5lcmF0b3JBcmdzIH1cbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRGF5Rmxvd0NhbGVuZGFyQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KCkgY2FsZW5kYXIhOiBJQ2FsZW5kYXJBcHAgfCBVc2VDYWxlbmRhckFwcFJldHVybiB8IENhbGVuZGFyQXBwQ29uZmlnO1xuXG4gIC8vIFRlbXBsYXRlcyBmb3IgY3VzdG9tIGNvbnRlbnQgaW5qZWN0aW9uXG4gIEBJbnB1dCgpIGV2ZW50Q29udGVudD86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGV2ZW50RGV0YWlsQ29udGVudD86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGV2ZW50RGV0YWlsRGlhbG9nPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgaGVhZGVyQ29udGVudD86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIGNyZWF0ZUNhbGVuZGFyRGlhbG9nPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgdGl0bGVCYXJTbG90PzogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgY29sb3JQaWNrZXI/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBjb2xvclBpY2tlcldyYXBwZXI/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lciE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIGN1c3RvbVJlbmRlcmluZ3M6IEN1c3RvbVJlbmRlcmluZ1tdID0gW107XG4gIHByaXZhdGUgcmVuZGVyZXI/OiBDYWxlbmRhclJlbmRlcmVyO1xuICBwcml2YXRlIHVuc3Vic2NyaWJlPzogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBpbnRlcm5hbEFwcD86IElDYWxlbmRhckFwcDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgcHJpdmF0ZSBnZXQgYXBwKCk6IElDYWxlbmRhckFwcCB7XG4gICAgaWYgKHRoaXMuaW50ZXJuYWxBcHApIHJldHVybiB0aGlzLmludGVybmFsQXBwO1xuXG4gICAgaWYgKHRoaXMuY2FsZW5kYXIgaW5zdGFuY2VvZiBDYWxlbmRhckFwcCkge1xuICAgICAgcmV0dXJuIHRoaXMuY2FsZW5kYXI7XG4gICAgfVxuXG4gICAgaWYgKCh0aGlzLmNhbGVuZGFyIGFzIGFueSkuYXBwKSB7XG4gICAgICByZXR1cm4gKHRoaXMuY2FsZW5kYXIgYXMgYW55KS5hcHA7XG4gICAgfVxuXG4gICAgLy8gSWYgaXQncyBhIGNvbmZpZyBvYmplY3QsIHdlIGNyZWF0ZSBhbiBpbnRlcm5hbCBpbnN0YW5jZVxuICAgIGlmICh0eXBlb2YgKHRoaXMuY2FsZW5kYXIgYXMgYW55KS52aWV3cyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxBcHAgPSBuZXcgQ2FsZW5kYXJBcHAodGhpcy5jYWxlbmRhciBhcyBDYWxlbmRhckFwcENvbmZpZyk7XG4gICAgICByZXR1cm4gdGhpcy5pbnRlcm5hbEFwcDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jYWxlbmRhciBhcyBJQ2FsZW5kYXJBcHA7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5pbml0Q2FsZW5kYXIoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snY2FsZW5kYXInXSAmJiAhY2hhbmdlc1snY2FsZW5kYXInXS5maXJzdENoYW5nZSkge1xuICAgICAgdGhpcy5pbnRlcm5hbEFwcCA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZGVzdHJveUNhbGVuZGFyKCk7XG4gICAgICB0aGlzLmluaXRDYWxlbmRhcigpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveUNhbGVuZGFyKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRDYWxlbmRhcigpIHtcbiAgICBpZiAoIXRoaXMuY29udGFpbmVyIHx8ICF0aGlzLmNhbGVuZGFyKSByZXR1cm47XG5cbiAgICB0aGlzLnJlbmRlcmVyID0gbmV3IENhbGVuZGFyUmVuZGVyZXIodGhpcy5hcHApO1xuICAgIHRoaXMucmVuZGVyZXIubW91bnQodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCk7XG5cbiAgICB0aGlzLnVuc3Vic2NyaWJlID0gdGhpcy5yZW5kZXJlclxuICAgICAgLmdldEN1c3RvbVJlbmRlcmluZ1N0b3JlKClcbiAgICAgIC5zdWJzY3JpYmUocmVuZGVyaW5ncyA9PiB7XG4gICAgICAgIHRoaXMuY3VzdG9tUmVuZGVyaW5ncyA9IEFycmF5LmZyb20ocmVuZGVyaW5ncy52YWx1ZXMoKSk7XG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lDYWxlbmRhcigpIHtcbiAgICBpZiAodGhpcy51bnN1YnNjcmliZSkgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgIGlmICh0aGlzLnJlbmRlcmVyKSB0aGlzLnJlbmRlcmVyLnVubW91bnQoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlID0gdW5kZWZpbmVkO1xuICAgIHRoaXMucmVuZGVyZXIgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXRUZW1wbGF0ZShuYW1lOiBzdHJpbmcpOiBUZW1wbGF0ZVJlZjxhbnk+IHwgbnVsbCB7XG4gICAgY29uc3QgdGVtcGxhdGVzOiBSZWNvcmQ8c3RyaW5nLCBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkPiA9IHtcbiAgICAgIGV2ZW50Q29udGVudDogdGhpcy5ldmVudENvbnRlbnQsXG4gICAgICBldmVudERldGFpbENvbnRlbnQ6IHRoaXMuZXZlbnREZXRhaWxDb250ZW50LFxuICAgICAgZXZlbnREZXRhaWxEaWFsb2c6IHRoaXMuZXZlbnREZXRhaWxEaWFsb2csXG4gICAgICBoZWFkZXJDb250ZW50OiB0aGlzLmhlYWRlckNvbnRlbnQsXG4gICAgICBjcmVhdGVDYWxlbmRhckRpYWxvZzogdGhpcy5jcmVhdGVDYWxlbmRhckRpYWxvZyxcbiAgICAgIHRpdGxlQmFyU2xvdDogdGhpcy50aXRsZUJhclNsb3QsXG4gICAgICBjb2xvclBpY2tlcjogdGhpcy5jb2xvclBpY2tlcixcbiAgICAgIGNvbG9yUGlja2VyV3JhcHBlcjogdGhpcy5jb2xvclBpY2tlcldyYXBwZXIsXG4gICAgfTtcbiAgICByZXR1cm4gdGVtcGxhdGVzW25hbWVdIHx8IG51bGw7XG4gIH1cblxuICB0cmFja0J5SWQoX2luZGV4OiBudW1iZXIsIGl0ZW06IEN1c3RvbVJlbmRlcmluZykge1xuICAgIHJldHVybiBpdGVtLmlkO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,19 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { DayFlowCalendarComponent } from './day-flow-calendar.component';
4
+ import { DayFlowPortalDirective } from './day-flow-portal.directive';
5
+ import * as i0 from "@angular/core";
6
+ export class DayFlowCalendarModule {
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DayFlowCalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: DayFlowCalendarModule, declarations: [DayFlowCalendarComponent, DayFlowPortalDirective], imports: [CommonModule], exports: [DayFlowCalendarComponent, DayFlowPortalDirective] });
9
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DayFlowCalendarModule, imports: [CommonModule] });
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DayFlowCalendarModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ declarations: [DayFlowCalendarComponent, DayFlowPortalDirective],
15
+ imports: [CommonModule],
16
+ exports: [DayFlowCalendarComponent, DayFlowPortalDirective],
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LWZsb3ctY2FsZW5kYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9kYXktZmxvdy1jYWxlbmRhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBT3JFLE1BQU0sT0FBTyxxQkFBcUI7d0dBQXJCLHFCQUFxQjt5R0FBckIscUJBQXFCLGlCQUpqQix3QkFBd0IsRUFBRSxzQkFBc0IsYUFDckQsWUFBWSxhQUNaLHdCQUF3QixFQUFFLHNCQUFzQjt5R0FFL0MscUJBQXFCLFlBSHRCLFlBQVk7OzRGQUdYLHFCQUFxQjtrQkFMakMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSxzQkFBc0IsQ0FBQztvQkFDaEUsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSxzQkFBc0IsQ0FBQztpQkFDNUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERheUZsb3dDYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4vZGF5LWZsb3ctY2FsZW5kYXIuY29tcG9uZW50JztcbmltcG9ydCB7IERheUZsb3dQb3J0YWxEaXJlY3RpdmUgfSBmcm9tICcuL2RheS1mbG93LXBvcnRhbC5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtEYXlGbG93Q2FsZW5kYXJDb21wb25lbnQsIERheUZsb3dQb3J0YWxEaXJlY3RpdmVdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW0RheUZsb3dDYWxlbmRhckNvbXBvbmVudCwgRGF5Rmxvd1BvcnRhbERpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIERheUZsb3dDYWxlbmRhck1vZHVsZSB7fVxuIl19
@@ -0,0 +1,31 @@
1
+ import { Directive, Input, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class DayFlowPortalDirective {
4
+ el;
5
+ targetEl;
6
+ constructor(el) {
7
+ this.el = el;
8
+ }
9
+ ngOnChanges(changes) {
10
+ if (changes['targetEl'] && this.targetEl) {
11
+ this.targetEl.appendChild(this.el.nativeElement);
12
+ }
13
+ }
14
+ ngOnDestroy() {
15
+ if (this.el.nativeElement.parentNode === this.targetEl) {
16
+ this.targetEl.removeChild(this.el.nativeElement);
17
+ }
18
+ }
19
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DayFlowPortalDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
20
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: DayFlowPortalDirective, selector: "[dayflowPortal]", inputs: { targetEl: ["dayflowPortal", "targetEl"] }, usesOnChanges: true, ngImport: i0 });
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DayFlowPortalDirective, decorators: [{
23
+ type: Directive,
24
+ args: [{
25
+ selector: '[dayflowPortal]',
26
+ }]
27
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { targetEl: [{
28
+ type: Input,
29
+ args: ['dayflowPortal']
30
+ }] } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LWZsb3ctcG9ydGFsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZGF5LWZsb3ctcG9ydGFsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssR0FLTixNQUFNLGVBQWUsQ0FBQzs7QUFLdkIsTUFBTSxPQUFPLHNCQUFzQjtJQUdiO0lBRkksUUFBUSxDQUFlO0lBRS9DLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO0lBQUcsQ0FBQztJQUV0QyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkQsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkQsQ0FBQztJQUNILENBQUM7d0dBZlUsc0JBQXNCOzRGQUF0QixzQkFBc0I7OzRGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7K0VBRXlCLFFBQVE7c0JBQS9CLEtBQUs7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIEVsZW1lbnRSZWYsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2RheWZsb3dQb3J0YWxdJyxcbn0pXG5leHBvcnQgY2xhc3MgRGF5Rmxvd1BvcnRhbERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KCdkYXlmbG93UG9ydGFsJykgdGFyZ2V0RWwhOiBIVE1MRWxlbWVudDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sndGFyZ2V0RWwnXSAmJiB0aGlzLnRhcmdldEVsKSB7XG4gICAgICB0aGlzLnRhcmdldEVsLmFwcGVuZENoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnROb2RlID09PSB0aGlzLnRhcmdldEVsKSB7XG4gICAgICB0aGlzLnRhcmdldEVsLnJlbW92ZUNoaWxkKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,9 @@
1
+ /*
2
+ * Public API Surface of @dayflow/angular
3
+ */
4
+ export * from './lib/day-flow-calendar.component';
5
+ export * from './lib/day-flow-calendar.module';
6
+ export * from './lib/day-flow-portal.directive';
7
+ export { CalendarApp, CalendarRegistry, createDragPlugin, createEventsPlugin, createDayView, createWeekView, createMonthView, createYearView, ViewType, } from '@dayflow/core';
8
+ export * from '@dayflow/core';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsaUNBQWlDLENBQUM7QUFFaEQsT0FBTyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixhQUFhLEVBQ2IsY0FBYyxFQUNkLGVBQWUsRUFDZixjQUFjLEVBQ2QsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBAZGF5Zmxvdy9hbmd1bGFyXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF5LWZsb3ctY2FsZW5kYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RheS1mbG93LWNhbGVuZGFyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXktZmxvdy1wb3J0YWwuZGlyZWN0aXZlJztcblxuZXhwb3J0IHtcbiAgQ2FsZW5kYXJBcHAsXG4gIENhbGVuZGFyUmVnaXN0cnksXG4gIGNyZWF0ZURyYWdQbHVnaW4sXG4gIGNyZWF0ZUV2ZW50c1BsdWdpbixcbiAgY3JlYXRlRGF5VmlldyxcbiAgY3JlYXRlV2Vla1ZpZXcsXG4gIGNyZWF0ZU1vbnRoVmlldyxcbiAgY3JlYXRlWWVhclZpZXcsXG4gIFZpZXdUeXBlLFxufSBmcm9tICdAZGF5Zmxvdy9jb3JlJztcblxuZXhwb3J0ICogZnJvbSAnQGRheWZsb3cvY29yZSc7XG4iXX0=
@@ -0,0 +1,221 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Input, Directive, ViewChild, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
+ import { CalendarApp, CalendarRenderer } from '@dayflow/core';
4
+ export * from '@dayflow/core';
5
+ export { CalendarApp, CalendarRegistry, ViewType, createDayView, createDragPlugin, createEventsPlugin, createMonthView, createWeekView, createYearView } from '@dayflow/core';
6
+ import * as i1 from '@angular/common';
7
+ import { CommonModule } from '@angular/common';
8
+
9
+ class DayFlowPortalDirective {
10
+ el;
11
+ targetEl;
12
+ constructor(el) {
13
+ this.el = el;
14
+ }
15
+ ngOnChanges(changes) {
16
+ if (changes['targetEl'] && this.targetEl) {
17
+ this.targetEl.appendChild(this.el.nativeElement);
18
+ }
19
+ }
20
+ ngOnDestroy() {
21
+ if (this.el.nativeElement.parentNode === this.targetEl) {
22
+ this.targetEl.removeChild(this.el.nativeElement);
23
+ }
24
+ }
25
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DayFlowPortalDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
26
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: DayFlowPortalDirective, selector: "[dayflowPortal]", inputs: { targetEl: ["dayflowPortal", "targetEl"] }, usesOnChanges: true, ngImport: i0 });
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DayFlowPortalDirective, decorators: [{
29
+ type: Directive,
30
+ args: [{
31
+ selector: '[dayflowPortal]',
32
+ }]
33
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { targetEl: [{
34
+ type: Input,
35
+ args: ['dayflowPortal']
36
+ }] } });
37
+
38
+ class DayFlowCalendarComponent {
39
+ cdr;
40
+ calendar;
41
+ // Templates for custom content injection
42
+ eventContent;
43
+ eventDetailContent;
44
+ eventDetailDialog;
45
+ headerContent;
46
+ createCalendarDialog;
47
+ titleBarSlot;
48
+ colorPicker;
49
+ colorPickerWrapper;
50
+ container;
51
+ customRenderings = [];
52
+ renderer;
53
+ unsubscribe;
54
+ internalApp;
55
+ constructor(cdr) {
56
+ this.cdr = cdr;
57
+ }
58
+ get app() {
59
+ if (this.internalApp)
60
+ return this.internalApp;
61
+ if (this.calendar instanceof CalendarApp) {
62
+ return this.calendar;
63
+ }
64
+ if (this.calendar.app) {
65
+ return this.calendar.app;
66
+ }
67
+ // If it's a config object, we create an internal instance
68
+ if (typeof this.calendar.views !== 'undefined') {
69
+ this.internalApp = new CalendarApp(this.calendar);
70
+ return this.internalApp;
71
+ }
72
+ return this.calendar;
73
+ }
74
+ ngAfterViewInit() {
75
+ this.initCalendar();
76
+ }
77
+ ngOnChanges(changes) {
78
+ if (changes['calendar'] && !changes['calendar'].firstChange) {
79
+ this.internalApp = undefined;
80
+ this.destroyCalendar();
81
+ this.initCalendar();
82
+ }
83
+ }
84
+ ngOnDestroy() {
85
+ this.destroyCalendar();
86
+ }
87
+ initCalendar() {
88
+ if (!this.container || !this.calendar)
89
+ return;
90
+ this.renderer = new CalendarRenderer(this.app);
91
+ this.renderer.mount(this.container.nativeElement);
92
+ this.unsubscribe = this.renderer
93
+ .getCustomRenderingStore()
94
+ .subscribe(renderings => {
95
+ this.customRenderings = Array.from(renderings.values());
96
+ this.cdr.markForCheck();
97
+ });
98
+ }
99
+ destroyCalendar() {
100
+ if (this.unsubscribe)
101
+ this.unsubscribe();
102
+ if (this.renderer)
103
+ this.renderer.unmount();
104
+ this.unsubscribe = undefined;
105
+ this.renderer = undefined;
106
+ }
107
+ getTemplate(name) {
108
+ const templates = {
109
+ eventContent: this.eventContent,
110
+ eventDetailContent: this.eventDetailContent,
111
+ eventDetailDialog: this.eventDetailDialog,
112
+ headerContent: this.headerContent,
113
+ createCalendarDialog: this.createCalendarDialog,
114
+ titleBarSlot: this.titleBarSlot,
115
+ colorPicker: this.colorPicker,
116
+ colorPickerWrapper: this.colorPickerWrapper,
117
+ };
118
+ return templates[name] || null;
119
+ }
120
+ trackById(_index, item) {
121
+ return item.id;
122
+ }
123
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DayFlowCalendarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
124
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: DayFlowCalendarComponent, selector: "dayflow-calendar", inputs: { calendar: "calendar", eventContent: "eventContent", eventDetailContent: "eventDetailContent", eventDetailDialog: "eventDetailDialog", headerContent: "headerContent", createCalendarDialog: "createCalendarDialog", titleBarSlot: "titleBarSlot", colorPicker: "colorPicker", colorPickerWrapper: "colorPickerWrapper" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
125
+ <div #container class="df-calendar-wrapper"></div>
126
+
127
+ <!-- Hidden area to render Angular templates before they are portaled -->
128
+ <div style="display: none">
129
+ <ng-container
130
+ *ngFor="let rendering of customRenderings; trackBy: trackById"
131
+ >
132
+ <div
133
+ *ngIf="getTemplate(rendering.generatorName)"
134
+ [dayflowPortal]="rendering.containerEl"
135
+ >
136
+ <ng-container
137
+ *ngTemplateOutlet="
138
+ getTemplate(rendering.generatorName)!;
139
+ context: { $implicit: rendering.generatorArgs }
140
+ "
141
+ ></ng-container>
142
+ </div>
143
+ </ng-container>
144
+ </div>
145
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: DayFlowPortalDirective, selector: "[dayflowPortal]", inputs: ["dayflowPortal"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
146
+ }
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DayFlowCalendarComponent, decorators: [{
148
+ type: Component,
149
+ args: [{
150
+ selector: 'dayflow-calendar',
151
+ template: `
152
+ <div #container class="df-calendar-wrapper"></div>
153
+
154
+ <!-- Hidden area to render Angular templates before they are portaled -->
155
+ <div style="display: none">
156
+ <ng-container
157
+ *ngFor="let rendering of customRenderings; trackBy: trackById"
158
+ >
159
+ <div
160
+ *ngIf="getTemplate(rendering.generatorName)"
161
+ [dayflowPortal]="rendering.containerEl"
162
+ >
163
+ <ng-container
164
+ *ngTemplateOutlet="
165
+ getTemplate(rendering.generatorName)!;
166
+ context: { $implicit: rendering.generatorArgs }
167
+ "
168
+ ></ng-container>
169
+ </div>
170
+ </ng-container>
171
+ </div>
172
+ `,
173
+ changeDetection: ChangeDetectionStrategy.OnPush,
174
+ }]
175
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { calendar: [{
176
+ type: Input
177
+ }], eventContent: [{
178
+ type: Input
179
+ }], eventDetailContent: [{
180
+ type: Input
181
+ }], eventDetailDialog: [{
182
+ type: Input
183
+ }], headerContent: [{
184
+ type: Input
185
+ }], createCalendarDialog: [{
186
+ type: Input
187
+ }], titleBarSlot: [{
188
+ type: Input
189
+ }], colorPicker: [{
190
+ type: Input
191
+ }], colorPickerWrapper: [{
192
+ type: Input
193
+ }], container: [{
194
+ type: ViewChild,
195
+ args: ['container']
196
+ }] } });
197
+
198
+ class DayFlowCalendarModule {
199
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DayFlowCalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
200
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: DayFlowCalendarModule, declarations: [DayFlowCalendarComponent, DayFlowPortalDirective], imports: [CommonModule], exports: [DayFlowCalendarComponent, DayFlowPortalDirective] });
201
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DayFlowCalendarModule, imports: [CommonModule] });
202
+ }
203
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DayFlowCalendarModule, decorators: [{
204
+ type: NgModule,
205
+ args: [{
206
+ declarations: [DayFlowCalendarComponent, DayFlowPortalDirective],
207
+ imports: [CommonModule],
208
+ exports: [DayFlowCalendarComponent, DayFlowPortalDirective],
209
+ }]
210
+ }] });
211
+
212
+ /*
213
+ * Public API Surface of @dayflow/angular
214
+ */
215
+
216
+ /**
217
+ * Generated bundle index. Do not edit.
218
+ */
219
+
220
+ export { DayFlowCalendarComponent, DayFlowCalendarModule, DayFlowPortalDirective };
221
+ //# sourceMappingURL=dayflow-angular.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dayflow-angular.mjs","sources":["../../src/lib/day-flow-portal.directive.ts","../../src/lib/day-flow-calendar.component.ts","../../src/lib/day-flow-calendar.module.ts","../../src/public-api.ts","../../src/dayflow-angular.ts"],"sourcesContent":["import {\n Directive,\n Input,\n ElementRef,\n OnChanges,\n SimpleChanges,\n OnDestroy,\n} from '@angular/core';\n\n@Directive({\n selector: '[dayflowPortal]',\n})\nexport class DayFlowPortalDirective implements OnChanges, OnDestroy {\n @Input('dayflowPortal') targetEl!: HTMLElement;\n\n constructor(private el: ElementRef) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['targetEl'] && this.targetEl) {\n this.targetEl.appendChild(this.el.nativeElement);\n }\n }\n\n ngOnDestroy() {\n if (this.el.nativeElement.parentNode === this.targetEl) {\n this.targetEl.removeChild(this.el.nativeElement);\n }\n }\n}\n","import {\n Component,\n Input,\n ElementRef,\n ViewChild,\n OnChanges,\n OnDestroy,\n AfterViewInit,\n SimpleChanges,\n ChangeDetectionStrategy,\n TemplateRef,\n ChangeDetectorRef,\n} from '@angular/core';\nimport {\n CalendarRenderer,\n ICalendarApp,\n CalendarApp,\n CalendarAppConfig,\n UseCalendarAppReturn,\n CustomRendering,\n} from '@dayflow/core';\n\n@Component({\n selector: 'dayflow-calendar',\n template: `\n <div #container class=\"df-calendar-wrapper\"></div>\n\n <!-- Hidden area to render Angular templates before they are portaled -->\n <div style=\"display: none\">\n <ng-container\n *ngFor=\"let rendering of customRenderings; trackBy: trackById\"\n >\n <div\n *ngIf=\"getTemplate(rendering.generatorName)\"\n [dayflowPortal]=\"rendering.containerEl\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate(rendering.generatorName)!;\n context: { $implicit: rendering.generatorArgs }\n \"\n ></ng-container>\n </div>\n </ng-container>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DayFlowCalendarComponent\n implements AfterViewInit, OnChanges, OnDestroy\n{\n @Input() calendar!: ICalendarApp | UseCalendarAppReturn | CalendarAppConfig;\n\n // Templates for custom content injection\n @Input() eventContent?: TemplateRef<any>;\n @Input() eventDetailContent?: TemplateRef<any>;\n @Input() eventDetailDialog?: TemplateRef<any>;\n @Input() headerContent?: TemplateRef<any>;\n @Input() createCalendarDialog?: TemplateRef<any>;\n @Input() titleBarSlot?: TemplateRef<any>;\n @Input() colorPicker?: TemplateRef<any>;\n @Input() colorPickerWrapper?: TemplateRef<any>;\n\n @ViewChild('container') container!: ElementRef<HTMLElement>;\n\n customRenderings: CustomRendering[] = [];\n private renderer?: CalendarRenderer;\n private unsubscribe?: () => void;\n private internalApp?: ICalendarApp;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n private get app(): ICalendarApp {\n if (this.internalApp) return this.internalApp;\n\n if (this.calendar instanceof CalendarApp) {\n return this.calendar;\n }\n\n if ((this.calendar as any).app) {\n return (this.calendar as any).app;\n }\n\n // If it's a config object, we create an internal instance\n if (typeof (this.calendar as any).views !== 'undefined') {\n this.internalApp = new CalendarApp(this.calendar as CalendarAppConfig);\n return this.internalApp;\n }\n\n return this.calendar as ICalendarApp;\n }\n\n ngAfterViewInit() {\n this.initCalendar();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['calendar'] && !changes['calendar'].firstChange) {\n this.internalApp = undefined;\n this.destroyCalendar();\n this.initCalendar();\n }\n }\n\n ngOnDestroy() {\n this.destroyCalendar();\n }\n\n private initCalendar() {\n if (!this.container || !this.calendar) return;\n\n this.renderer = new CalendarRenderer(this.app);\n this.renderer.mount(this.container.nativeElement);\n\n this.unsubscribe = this.renderer\n .getCustomRenderingStore()\n .subscribe(renderings => {\n this.customRenderings = Array.from(renderings.values());\n this.cdr.markForCheck();\n });\n }\n\n private destroyCalendar() {\n if (this.unsubscribe) this.unsubscribe();\n if (this.renderer) this.renderer.unmount();\n this.unsubscribe = undefined;\n this.renderer = undefined;\n }\n\n getTemplate(name: string): TemplateRef<any> | null {\n const templates: Record<string, TemplateRef<any> | undefined> = {\n eventContent: this.eventContent,\n eventDetailContent: this.eventDetailContent,\n eventDetailDialog: this.eventDetailDialog,\n headerContent: this.headerContent,\n createCalendarDialog: this.createCalendarDialog,\n titleBarSlot: this.titleBarSlot,\n colorPicker: this.colorPicker,\n colorPickerWrapper: this.colorPickerWrapper,\n };\n return templates[name] || null;\n }\n\n trackById(_index: number, item: CustomRendering) {\n return item.id;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DayFlowCalendarComponent } from './day-flow-calendar.component';\nimport { DayFlowPortalDirective } from './day-flow-portal.directive';\n\n@NgModule({\n declarations: [DayFlowCalendarComponent, DayFlowPortalDirective],\n imports: [CommonModule],\n exports: [DayFlowCalendarComponent, DayFlowPortalDirective],\n})\nexport class DayFlowCalendarModule {}\n","/*\n * Public API Surface of @dayflow/angular\n */\n\nexport * from './lib/day-flow-calendar.component';\nexport * from './lib/day-flow-calendar.module';\nexport * from './lib/day-flow-portal.directive';\n\nexport {\n CalendarApp,\n CalendarRegistry,\n createDragPlugin,\n createEventsPlugin,\n createDayView,\n createWeekView,\n createMonthView,\n createYearView,\n ViewType,\n} from '@dayflow/core';\n\nexport * from '@dayflow/core';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.DayFlowPortalDirective"],"mappings":";;;;;;;;MAYa,sBAAsB,CAAA;AAGb,IAAA,EAAA;AAFI,IAAA,QAAQ;AAEhC,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAA,CAAA,EAAE,GAAF,EAAE;IAAe;AAErC,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACxC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QAClD;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,UAAU,KAAK,IAAI,CAAC,QAAQ,EAAE;YACtD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QAClD;IACF;wGAfW,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAtB,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,eAAA,EAAA,UAAA,CAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC5B,iBAAA;+EAEyB,QAAQ,EAAA,CAAA;sBAA/B,KAAK;uBAAC,eAAe;;;MCmCX,wBAAwB,CAAA;AAsBf,IAAA,GAAA;AAnBX,IAAA,QAAQ;;AAGR,IAAA,YAAY;AACZ,IAAA,kBAAkB;AAClB,IAAA,iBAAiB;AACjB,IAAA,aAAa;AACb,IAAA,oBAAoB;AACpB,IAAA,YAAY;AACZ,IAAA,WAAW;AACX,IAAA,kBAAkB;AAEH,IAAA,SAAS;IAEjC,gBAAgB,GAAsB,EAAE;AAChC,IAAA,QAAQ;AACR,IAAA,WAAW;AACX,IAAA,WAAW;AAEnB,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAA,CAAA,GAAG,GAAH,GAAG;IAAsB;AAE7C,IAAA,IAAY,GAAG,GAAA;QACb,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW;AAE7C,QAAA,IAAI,IAAI,CAAC,QAAQ,YAAY,WAAW,EAAE;YACxC,OAAO,IAAI,CAAC,QAAQ;QACtB;AAEA,QAAA,IAAK,IAAI,CAAC,QAAgB,CAAC,GAAG,EAAE;AAC9B,YAAA,OAAQ,IAAI,CAAC,QAAgB,CAAC,GAAG;QACnC;;QAGA,IAAI,OAAQ,IAAI,CAAC,QAAgB,CAAC,KAAK,KAAK,WAAW,EAAE;YACvD,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,QAA6B,CAAC;YACtE,OAAO,IAAI,CAAC,WAAW;QACzB;QAEA,OAAO,IAAI,CAAC,QAAwB;IACtC;IAEA,eAAe,GAAA;QACb,IAAI,CAAC,YAAY,EAAE;IACrB;AAEA,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE;AAC3D,YAAA,IAAI,CAAC,WAAW,GAAG,SAAS;YAC5B,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,YAAY,EAAE;QACrB;IACF;IAEA,WAAW,GAAA;QACT,IAAI,CAAC,eAAe,EAAE;IACxB;IAEQ,YAAY,GAAA;QAClB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE;QAEvC,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;AAEjD,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACrB,aAAA,uBAAuB;aACvB,SAAS,CAAC,UAAU,IAAG;AACtB,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;AACvD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACzB,QAAA,CAAC,CAAC;IACN;IAEQ,eAAe,GAAA;QACrB,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,EAAE;QACxC,IAAI,IAAI,CAAC,QAAQ;AAAE,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AAC1C,QAAA,IAAI,CAAC,WAAW,GAAG,SAAS;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS;IAC3B;AAEA,IAAA,WAAW,CAAC,IAAY,EAAA;AACtB,QAAA,MAAM,SAAS,GAAiD;YAC9D,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;SAC5C;AACD,QAAA,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI;IAChC;IAEA,SAAS,CAAC,MAAc,EAAE,IAAqB,EAAA;QAC7C,OAAO,IAAI,CAAC,EAAE;IAChB;wGAjGW,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAxB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAxBzB;;;;;;;;;;;;;;;;;;;;;AAqBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAGU,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBA1BpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;AAqBT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;sFAIU,QAAQ,EAAA,CAAA;sBAAhB;gBAGQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACQ,oBAAoB,EAAA,CAAA;sBAA5B;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBAEuB,SAAS,EAAA,CAAA;sBAAhC,SAAS;uBAAC,WAAW;;;MCrDX,qBAAqB,CAAA;wGAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAArB,qBAAqB,EAAA,YAAA,EAAA,CAJjB,wBAAwB,EAAE,sBAAsB,aACrD,YAAY,CAAA,EAAA,OAAA,EAAA,CACZ,wBAAwB,EAAE,sBAAsB,CAAA,EAAA,CAAA;AAE/C,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,YAHtB,YAAY,CAAA,EAAA,CAAA;;4FAGX,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,wBAAwB,EAAE,sBAAsB,CAAC;oBAChE,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE,CAAC,wBAAwB,EAAE,sBAAsB,CAAC;AAC5D,iBAAA;;;ACTD;;AAEG;;ACFH;;AAEG;;;;"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@dayflow/angular" />
5
+ export * from './public-api';
@@ -0,0 +1,31 @@
1
+ import { ElementRef, OnChanges, OnDestroy, AfterViewInit, SimpleChanges, TemplateRef, ChangeDetectorRef } from '@angular/core';
2
+ import { ICalendarApp, CalendarAppConfig, UseCalendarAppReturn, CustomRendering } from '@dayflow/core';
3
+ import * as i0 from "@angular/core";
4
+ export declare class DayFlowCalendarComponent implements AfterViewInit, OnChanges, OnDestroy {
5
+ private cdr;
6
+ calendar: ICalendarApp | UseCalendarAppReturn | CalendarAppConfig;
7
+ eventContent?: TemplateRef<any>;
8
+ eventDetailContent?: TemplateRef<any>;
9
+ eventDetailDialog?: TemplateRef<any>;
10
+ headerContent?: TemplateRef<any>;
11
+ createCalendarDialog?: TemplateRef<any>;
12
+ titleBarSlot?: TemplateRef<any>;
13
+ colorPicker?: TemplateRef<any>;
14
+ colorPickerWrapper?: TemplateRef<any>;
15
+ container: ElementRef<HTMLElement>;
16
+ customRenderings: CustomRendering[];
17
+ private renderer?;
18
+ private unsubscribe?;
19
+ private internalApp?;
20
+ constructor(cdr: ChangeDetectorRef);
21
+ private get app();
22
+ ngAfterViewInit(): void;
23
+ ngOnChanges(changes: SimpleChanges): void;
24
+ ngOnDestroy(): void;
25
+ private initCalendar;
26
+ private destroyCalendar;
27
+ getTemplate(name: string): TemplateRef<any> | null;
28
+ trackById(_index: number, item: CustomRendering): string;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<DayFlowCalendarComponent, never>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<DayFlowCalendarComponent, "dayflow-calendar", never, { "calendar": { "alias": "calendar"; "required": false; }; "eventContent": { "alias": "eventContent"; "required": false; }; "eventDetailContent": { "alias": "eventDetailContent"; "required": false; }; "eventDetailDialog": { "alias": "eventDetailDialog"; "required": false; }; "headerContent": { "alias": "headerContent"; "required": false; }; "createCalendarDialog": { "alias": "createCalendarDialog"; "required": false; }; "titleBarSlot": { "alias": "titleBarSlot"; "required": false; }; "colorPicker": { "alias": "colorPicker"; "required": false; }; "colorPickerWrapper": { "alias": "colorPickerWrapper"; "required": false; }; }, {}, never, never, false, never>;
31
+ }
@@ -0,0 +1,9 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./day-flow-calendar.component";
3
+ import * as i2 from "./day-flow-portal.directive";
4
+ import * as i3 from "@angular/common";
5
+ export declare class DayFlowCalendarModule {
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<DayFlowCalendarModule, never>;
7
+ static ɵmod: i0.ɵɵNgModuleDeclaration<DayFlowCalendarModule, [typeof i1.DayFlowCalendarComponent, typeof i2.DayFlowPortalDirective], [typeof i3.CommonModule], [typeof i1.DayFlowCalendarComponent, typeof i2.DayFlowPortalDirective]>;
8
+ static ɵinj: i0.ɵɵInjectorDeclaration<DayFlowCalendarModule>;
9
+ }
@@ -0,0 +1,11 @@
1
+ import { ElementRef, OnChanges, SimpleChanges, OnDestroy } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class DayFlowPortalDirective implements OnChanges, OnDestroy {
4
+ private el;
5
+ targetEl: HTMLElement;
6
+ constructor(el: ElementRef);
7
+ ngOnChanges(changes: SimpleChanges): void;
8
+ ngOnDestroy(): void;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<DayFlowPortalDirective, never>;
10
+ static ɵdir: i0.ɵɵDirectiveDeclaration<DayFlowPortalDirective, "[dayflowPortal]", never, { "targetEl": { "alias": "dayflowPortal"; "required": false; }; }, {}, never, never, false, never>;
11
+ }
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@dayflow/angular",
3
+ "version": "3.0.0",
4
+ "description": "Angular adapter for DayFlow calendar",
5
+ "main": "dist/fesm2022/dayflow-angular.mjs",
6
+ "module": "fesm2022/dayflow-angular.mjs",
7
+ "typings": "index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./index.d.ts",
11
+ "import": "./dist/fesm2022/dayflow-angular.mjs",
12
+ "default": "./fesm2022/dayflow-angular.mjs",
13
+ "esm2022": "./esm2022/dayflow-angular.mjs",
14
+ "esm": "./esm2022/dayflow-angular.mjs"
15
+ },
16
+ "./package.json": {
17
+ "default": "./package.json"
18
+ }
19
+ },
20
+ "peerDependencies": {
21
+ "@angular/common": ">=14.0.0",
22
+ "@angular/core": ">=14.0.0",
23
+ "@dayflow/core": "workspace:*"
24
+ },
25
+ "sideEffects": false,
26
+ "dependencies": {
27
+ "tslib": "^2.3.0"
28
+ }
29
+ }
@@ -0,0 +1,5 @@
1
+ export * from './lib/day-flow-calendar.component';
2
+ export * from './lib/day-flow-calendar.module';
3
+ export * from './lib/day-flow-portal.directive';
4
+ export { CalendarApp, CalendarRegistry, createDragPlugin, createEventsPlugin, createDayView, createWeekView, createMonthView, createYearView, ViewType, } from '@dayflow/core';
5
+ export * from '@dayflow/core';