@bimetal/calendar-angular-components 0.29.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.
- package/LICENSE +129 -0
- package/README.md +56 -0
- package/dist/binding/config.d.ts +6 -0
- package/dist/binding/config.d.ts.map +1 -0
- package/dist/binding/config.js +6 -0
- package/dist/binding/config.js.map +1 -0
- package/dist/binding/controller.d.ts +22 -0
- package/dist/binding/controller.d.ts.map +1 -0
- package/dist/binding/controller.js +17 -0
- package/dist/binding/controller.js.map +1 -0
- package/dist/binding/index.d.ts +24 -0
- package/dist/binding/index.d.ts.map +1 -0
- package/dist/binding/index.js +26 -0
- package/dist/binding/index.js.map +1 -0
- package/dist/binding/services/event-render.service.d.ts +40 -0
- package/dist/binding/services/event-render.service.d.ts.map +1 -0
- package/dist/binding/services/event-render.service.js +58 -0
- package/dist/binding/services/event-render.service.js.map +1 -0
- package/dist/binding/types.d.ts +128 -0
- package/dist/binding/types.d.ts.map +1 -0
- package/dist/binding/types.js +12 -0
- package/dist/binding/types.js.map +1 -0
- package/dist/binding/utils/date-strings.d.ts +16 -0
- package/dist/binding/utils/date-strings.d.ts.map +1 -0
- package/dist/binding/utils/date-strings.js +30 -0
- package/dist/binding/utils/date-strings.js.map +1 -0
- package/dist/binding/utils/gridUtils.d.ts +6 -0
- package/dist/binding/utils/gridUtils.d.ts.map +1 -0
- package/dist/binding/utils/gridUtils.js +13 -0
- package/dist/binding/utils/gridUtils.js.map +1 -0
- package/dist/binding/view-configs.d.ts +6 -0
- package/dist/binding/view-configs.d.ts.map +1 -0
- package/dist/binding/view-configs.js +6 -0
- package/dist/binding/view-configs.js.map +1 -0
- package/dist/components/Calendar.d.ts +110 -0
- package/dist/components/Calendar.d.ts.map +1 -0
- package/dist/components/Calendar.js +554 -0
- package/dist/components/Calendar.js.map +1 -0
- package/dist/components/CalendarHeader.d.ts +17 -0
- package/dist/components/CalendarHeader.d.ts.map +1 -0
- package/dist/components/CalendarHeader.js +105 -0
- package/dist/components/CalendarHeader.js.map +1 -0
- package/dist/components/CategoryFilter.d.ts +11 -0
- package/dist/components/CategoryFilter.d.ts.map +1 -0
- package/dist/components/CategoryFilter.js +66 -0
- package/dist/components/CategoryFilter.js.map +1 -0
- package/dist/components/EventBar.d.ts +56 -0
- package/dist/components/EventBar.d.ts.map +1 -0
- package/dist/components/EventBar.js +328 -0
- package/dist/components/EventBar.js.map +1 -0
- package/dist/components/EventDialog.d.ts +52 -0
- package/dist/components/EventDialog.d.ts.map +1 -0
- package/dist/components/EventDialog.js +557 -0
- package/dist/components/EventDialog.js.map +1 -0
- package/dist/components/EventHistory.d.ts +17 -0
- package/dist/components/EventHistory.d.ts.map +1 -0
- package/dist/components/EventHistory.js +166 -0
- package/dist/components/EventHistory.js.map +1 -0
- package/dist/components/ResourceFilter.d.ts +12 -0
- package/dist/components/ResourceFilter.d.ts.map +1 -0
- package/dist/components/ResourceFilter.js +67 -0
- package/dist/components/ResourceFilter.js.map +1 -0
- package/dist/components/UndoToast.d.ts +20 -0
- package/dist/components/UndoToast.d.ts.map +1 -0
- package/dist/components/UndoToast.js +90 -0
- package/dist/components/UndoToast.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/styles/index.css +1 -0
- package/dist/views/agenda/AgendaView.d.ts +54 -0
- package/dist/views/agenda/AgendaView.d.ts.map +1 -0
- package/dist/views/agenda/AgendaView.js +309 -0
- package/dist/views/agenda/AgendaView.js.map +1 -0
- package/dist/views/day/DayView.d.ts +85 -0
- package/dist/views/day/DayView.d.ts.map +1 -0
- package/dist/views/day/DayView.js +422 -0
- package/dist/views/day/DayView.js.map +1 -0
- package/dist/views/month/MonthView.d.ts +51 -0
- package/dist/views/month/MonthView.d.ts.map +1 -0
- package/dist/views/month/MonthView.js +184 -0
- package/dist/views/month/MonthView.js.map +1 -0
- package/dist/views/month/WeekRow.d.ts +89 -0
- package/dist/views/month/WeekRow.d.ts.map +1 -0
- package/dist/views/month/WeekRow.js +548 -0
- package/dist/views/month/WeekRow.js.map +1 -0
- package/dist/views/resource/ResourceView.d.ts +85 -0
- package/dist/views/resource/ResourceView.d.ts.map +1 -0
- package/dist/views/resource/ResourceView.js +388 -0
- package/dist/views/resource/ResourceView.js.map +1 -0
- package/dist/views/timeline/TimelineView.d.ts +69 -0
- package/dist/views/timeline/TimelineView.d.ts.map +1 -0
- package/dist/views/timeline/TimelineView.js +314 -0
- package/dist/views/timeline/TimelineView.js.map +1 -0
- package/dist/views/week/AllDayRow.d.ts +38 -0
- package/dist/views/week/AllDayRow.d.ts.map +1 -0
- package/dist/views/week/AllDayRow.js +149 -0
- package/dist/views/week/AllDayRow.js.map +1 -0
- package/dist/views/week/TimeEvent.d.ts +77 -0
- package/dist/views/week/TimeEvent.d.ts.map +1 -0
- package/dist/views/week/TimeEvent.js +279 -0
- package/dist/views/week/TimeEvent.js.map +1 -0
- package/dist/views/week/WeekView.d.ts +79 -0
- package/dist/views/week/WeekView.d.ts.map +1 -0
- package/dist/views/week/WeekView.js +370 -0
- package/dist/views/week/WeekView.js.map +1 -0
- package/dist/views/year/YearView.d.ts +37 -0
- package/dist/views/year/YearView.d.ts.map +1 -0
- package/dist/views/year/YearView.js +162 -0
- package/dist/views/year/YearView.js.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1,422 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ViewChild, ElementRef, Optional } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { isSameDay, now, getDayOfMonth, startOfDay, addDays, getHours, getMinutes, createTimeRange, overlaps, formatDateTime, segmentTimed, layoutTimed, getRecurrenceInstanceMetadata, } from '@bimetal/calendar-core';
|
|
4
|
+
import { snapTimeFromMouseY, toDateStr, parseDateTimeStr, EventRenderService } from '../../binding/index.js';
|
|
5
|
+
import { DEFAULT_HOUR_HEIGHT, DEFAULT_TIME_LABEL_WIDTH_DAY, DEFAULT_SCROLL_HOUR, createClickIntent } from '@bimetal/calendar-headless';
|
|
6
|
+
import { TimeEventComponent } from '../week/TimeEvent.js';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "../../binding/index.js";
|
|
9
|
+
import * as i2 from "@angular/common";
|
|
10
|
+
const _c0 = ["timeGridEl"];
|
|
11
|
+
const _c1 = ["gridInnerEl"];
|
|
12
|
+
function DayViewComponent_div_6_div_4_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
13
|
+
i0.ɵɵelementContainer(0);
|
|
14
|
+
} }
|
|
15
|
+
function DayViewComponent_div_6_div_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
16
|
+
i0.ɵɵelementContainerStart(0);
|
|
17
|
+
i0.ɵɵtemplate(1, DayViewComponent_div_6_div_4_ng_container_1_ng_container_1_Template, 1, 0, "ng-container", 20);
|
|
18
|
+
i0.ɵɵelementContainerEnd();
|
|
19
|
+
} if (rf & 2) {
|
|
20
|
+
const ev_r4 = i0.ɵɵnextContext().$implicit;
|
|
21
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
22
|
+
i0.ɵɵadvance();
|
|
23
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.contentTpl)("ngTemplateOutletContext", ctx_r2.tplCtx(ev_r4));
|
|
24
|
+
} }
|
|
25
|
+
function DayViewComponent_div_6_div_4_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
26
|
+
i0.ɵɵtext(0);
|
|
27
|
+
} if (rf & 2) {
|
|
28
|
+
const ev_r4 = i0.ɵɵnextContext().$implicit;
|
|
29
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
30
|
+
i0.ɵɵtextInterpolate(ctx_r2.renderedTitle(ev_r4));
|
|
31
|
+
} }
|
|
32
|
+
function DayViewComponent_div_6_div_4_ng_container_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
33
|
+
i0.ɵɵelementContainer(0);
|
|
34
|
+
} }
|
|
35
|
+
function DayViewComponent_div_6_div_4_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
36
|
+
i0.ɵɵelementContainerStart(0);
|
|
37
|
+
i0.ɵɵtemplate(1, DayViewComponent_div_6_div_4_ng_container_4_ng_container_1_Template, 1, 0, "ng-container", 20);
|
|
38
|
+
i0.ɵɵelementContainerEnd();
|
|
39
|
+
} if (rf & 2) {
|
|
40
|
+
const ev_r4 = i0.ɵɵnextContext().$implicit;
|
|
41
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
42
|
+
i0.ɵɵadvance();
|
|
43
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.badgesTpl)("ngTemplateOutletContext", ctx_r2.tplCtx(ev_r4));
|
|
44
|
+
} }
|
|
45
|
+
function DayViewComponent_div_6_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
46
|
+
const _r2 = i0.ɵɵgetCurrentView();
|
|
47
|
+
i0.ɵɵelementStart(0, "div", 17);
|
|
48
|
+
i0.ɵɵlistener("mousedown", function DayViewComponent_div_6_div_4_Template_div_mousedown_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.handleAllDayMouseDown()); })("click", function DayViewComponent_div_6_div_4_Template_div_click_0_listener($event) { const ev_r4 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.handleAllDayClick($event, ev_r4)); })("dblclick", function DayViewComponent_div_6_div_4_Template_div_dblclick_0_listener($event) { const ev_r4 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.handleAllDayDoubleClick($event, ev_r4)); });
|
|
49
|
+
i0.ɵɵtemplate(1, DayViewComponent_div_6_div_4_ng_container_1_Template, 2, 2, "ng-container", 18)(2, DayViewComponent_div_6_div_4_ng_template_2_Template, 1, 1, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor)(4, DayViewComponent_div_6_div_4_ng_container_4_Template, 2, 2, "ng-container", 19);
|
|
50
|
+
i0.ɵɵelementEnd();
|
|
51
|
+
} if (rf & 2) {
|
|
52
|
+
const ev_r4 = ctx.$implicit;
|
|
53
|
+
const defaultAllDay_r5 = i0.ɵɵreference(3);
|
|
54
|
+
const ctx_r2 = i0.ɵɵnextContext(2);
|
|
55
|
+
i0.ɵɵclassMap("day-view__allday-event" + (ctx_r2.isAllDaySelected(ev_r4) ? " day-view__allday-event--selected" : "") + ctx_r2.slotsClassName(ev_r4));
|
|
56
|
+
i0.ɵɵstyleProp("background-color", ctx_r2.getColor(ev_r4));
|
|
57
|
+
i0.ɵɵproperty("ngStyle", ctx_r2.slotsStyle(ev_r4))("title", ctx_r2.renderedTitle(ev_r4));
|
|
58
|
+
i0.ɵɵadvance();
|
|
59
|
+
i0.ɵɵproperty("ngIf", ctx_r2.contentTpl)("ngIfElse", defaultAllDay_r5);
|
|
60
|
+
i0.ɵɵadvance(3);
|
|
61
|
+
i0.ɵɵproperty("ngIf", ctx_r2.badgesTpl);
|
|
62
|
+
} }
|
|
63
|
+
function DayViewComponent_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
64
|
+
i0.ɵɵelementStart(0, "div", 13)(1, "div", 14);
|
|
65
|
+
i0.ɵɵtext(2);
|
|
66
|
+
i0.ɵɵelementEnd();
|
|
67
|
+
i0.ɵɵelementStart(3, "div", 15);
|
|
68
|
+
i0.ɵɵtemplate(4, DayViewComponent_div_6_div_4_Template, 5, 9, "div", 16);
|
|
69
|
+
i0.ɵɵelementEnd()();
|
|
70
|
+
} if (rf & 2) {
|
|
71
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
72
|
+
i0.ɵɵadvance(2);
|
|
73
|
+
i0.ɵɵtextInterpolate(ctx_r2.config.locale.allDayLabel);
|
|
74
|
+
i0.ɵɵadvance(2);
|
|
75
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.allDayEvents);
|
|
76
|
+
} }
|
|
77
|
+
function DayViewComponent_div_11_Template(rf, ctx) { if (rf & 1) {
|
|
78
|
+
i0.ɵɵelementStart(0, "div")(1, "div", 21);
|
|
79
|
+
i0.ɵɵtext(2);
|
|
80
|
+
i0.ɵɵelementEnd()();
|
|
81
|
+
} if (rf & 2) {
|
|
82
|
+
const h_r6 = ctx.$implicit;
|
|
83
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
84
|
+
i0.ɵɵclassMap("day-view__hour-row" + (ctx_r2.isOffHour(h_r6) ? " hour-slot--off" : ""));
|
|
85
|
+
i0.ɵɵstyleProp("top", h_r6 * ctx_r2.hourHeight, "px")("height", ctx_r2.hourHeight, "px");
|
|
86
|
+
i0.ɵɵadvance(2);
|
|
87
|
+
i0.ɵɵtextInterpolate(h_r6 > 0 ? ctx_r2.formatHour(h_r6) : "");
|
|
88
|
+
} }
|
|
89
|
+
function DayViewComponent_cal_time_event_13_Template(rf, ctx) { if (rf & 1) {
|
|
90
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
|
91
|
+
i0.ɵɵelementStart(0, "cal-time-event", 22);
|
|
92
|
+
i0.ɵɵlistener("eventClick", function DayViewComponent_cal_time_event_13_Template_cal_time_event_eventClick_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.eventClick.emit($event)); })("selectEvent", function DayViewComponent_cal_time_event_13_Template_cal_time_event_selectEvent_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.selectEvent.emit($event)); })("dragStart", function DayViewComponent_cal_time_event_13_Template_cal_time_event_dragStart_0_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.dragStartEv.emit($event)); })("dragEnd", function DayViewComponent_cal_time_event_13_Template_cal_time_event_dragEnd_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.dragEnd.emit()); });
|
|
93
|
+
i0.ɵɵelementEnd();
|
|
94
|
+
} if (rf & 2) {
|
|
95
|
+
const entry_r8 = ctx.$implicit;
|
|
96
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
97
|
+
i0.ɵɵproperty("event", entry_r8.event)("layout", entry_r8.layout)("dayDate", ctx_r2.currentDate)("hourHeight", ctx_r2.hourHeight)("timeLabelWidth", ctx_r2.timeLabelWidth)("ghost", (ctx_r2.previewEvent == null ? null : ctx_r2.previewEvent.id) === entry_r8.event.id)("clickThresholdMs", ctx_r2.config.clickThresholdMs)("locale", ctx_r2.config.locale)("snapMinutes", ctx_r2.config.core.granularity.day.minutes)("selectedEventId", ctx_r2.selectedEventId)("selectedInstanceDate", ctx_r2.selectedInstanceDate);
|
|
98
|
+
} }
|
|
99
|
+
function DayViewComponent_div_14_Template(rf, ctx) { if (rf & 1) {
|
|
100
|
+
i0.ɵɵelementStart(0, "div", 23);
|
|
101
|
+
i0.ɵɵelement(1, "div", 24);
|
|
102
|
+
i0.ɵɵelementEnd();
|
|
103
|
+
} if (rf & 2) {
|
|
104
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
105
|
+
i0.ɵɵstyleProp("top", ctx_r2.nowHours * ctx_r2.hourHeight, "px");
|
|
106
|
+
} }
|
|
107
|
+
const HOURS = Array.from({ length: 24 }, (_, i) => i);
|
|
108
|
+
export class DayViewComponent {
|
|
109
|
+
renderService;
|
|
110
|
+
currentDate;
|
|
111
|
+
events = [];
|
|
112
|
+
config;
|
|
113
|
+
// B-CAL-1: the controller already rebuilt the dragged event's geometry.
|
|
114
|
+
previewEvent = null;
|
|
115
|
+
selectedEventId = null;
|
|
116
|
+
selectedInstanceDate = undefined;
|
|
117
|
+
eventClick = new EventEmitter();
|
|
118
|
+
selectEvent = new EventEmitter();
|
|
119
|
+
clearSelection = new EventEmitter();
|
|
120
|
+
dayCellClick = new EventEmitter();
|
|
121
|
+
dropTimedEvent = new EventEmitter();
|
|
122
|
+
dragOverDateTime = new EventEmitter();
|
|
123
|
+
/** Drop-Zone wurde verlassen (dragleave) — Preview visuell ausräumen. */
|
|
124
|
+
hidePreviewEv = new EventEmitter();
|
|
125
|
+
/** Native `dragend` der Source — Drag-Session vollständig beendet. */
|
|
126
|
+
dragEnd = new EventEmitter();
|
|
127
|
+
dragStartEv = new EventEmitter();
|
|
128
|
+
timeGridEl;
|
|
129
|
+
gridInnerEl;
|
|
130
|
+
hours = HOURS;
|
|
131
|
+
hourHeight = DEFAULT_HOUR_HEIGHT;
|
|
132
|
+
timeLabelWidth = DEFAULT_TIME_LABEL_WIDTH_DAY;
|
|
133
|
+
allDayEvents = [];
|
|
134
|
+
timedEntries = [];
|
|
135
|
+
isToday = false;
|
|
136
|
+
dayName = '';
|
|
137
|
+
dayNumber = 0;
|
|
138
|
+
nowHours = 0;
|
|
139
|
+
click = createClickIntent();
|
|
140
|
+
allDayClick = createClickIntent();
|
|
141
|
+
constructor(renderService) {
|
|
142
|
+
this.renderService = renderService;
|
|
143
|
+
}
|
|
144
|
+
get badgesTpl() { return this.renderService?.eventBadgesTpl; }
|
|
145
|
+
get contentTpl() { return this.renderService?.eventContentTpl; }
|
|
146
|
+
tplCtx(ev) { return this.renderService?.buildTemplateContext(ev); }
|
|
147
|
+
renderedTitle(ev) { return this.renderService?.resolveTitle(ev) ?? ev.title; }
|
|
148
|
+
slotsClassName(ev) {
|
|
149
|
+
const cls = this.renderService?.resolveClassName(ev) ?? '';
|
|
150
|
+
return cls ? ' ' + cls : '';
|
|
151
|
+
}
|
|
152
|
+
slotsStyle(ev) { return this.renderService?.resolveStyle(ev); }
|
|
153
|
+
currentNow;
|
|
154
|
+
timeSnapMinutes = 15;
|
|
155
|
+
getColor(ev) { return ev.metadata.color ?? '#007AFF'; }
|
|
156
|
+
formatHour(h) { return `${String(h).padStart(2, '0')}:00`; }
|
|
157
|
+
isOffHour(h) {
|
|
158
|
+
const wh = this.config.core.workingHours;
|
|
159
|
+
return wh ? (h < wh.start || h >= wh.end) : false;
|
|
160
|
+
}
|
|
161
|
+
ngOnChanges() {
|
|
162
|
+
this.currentNow = now(this.config.core.timezone, this.config.core.clock);
|
|
163
|
+
this.timeSnapMinutes = this.config.core.granularity.day.minutes;
|
|
164
|
+
this.isToday = isSameDay(this.currentDate, this.currentNow);
|
|
165
|
+
this.dayName = formatDateTime(this.currentDate, { locale: this.config.locale.code, dateStyle: 'full' }).split(',')[0];
|
|
166
|
+
this.dayNumber = getDayOfMonth(this.currentDate);
|
|
167
|
+
this.nowHours = getHours(this.currentNow) + getMinutes(this.currentNow) / 60;
|
|
168
|
+
const dayStart = startOfDay(this.currentDate);
|
|
169
|
+
const dayEnd = addDays(dayStart, 1);
|
|
170
|
+
const dayRange = createTimeRange(dayStart, dayEnd);
|
|
171
|
+
// B-CAL-1: swap in the controller-rebuilt event by id (no parsing in the view).
|
|
172
|
+
const pe = this.previewEvent;
|
|
173
|
+
const displayEvents = pe
|
|
174
|
+
? this.events.map(ev => ev.id === pe.id ? { ...ev, timeRange: pe.timeRange } : ev)
|
|
175
|
+
: this.events;
|
|
176
|
+
this.allDayEvents = displayEvents.filter(ev => ev.allDay && overlaps(ev.timeRange, dayRange));
|
|
177
|
+
// Lane-Layout durch den Core (Pilot-Direktive 2026-06-21).
|
|
178
|
+
const timed = displayEvents.filter(ev => !ev.allDay && overlaps(ev.timeRange, dayRange));
|
|
179
|
+
const items = layoutTimed(segmentTimed(timed, this.currentDate));
|
|
180
|
+
this.timedEntries = items.map(item => ({
|
|
181
|
+
event: item.segment.event,
|
|
182
|
+
layout: {
|
|
183
|
+
dayCol: 0,
|
|
184
|
+
dayCount: 1,
|
|
185
|
+
lane: item.column,
|
|
186
|
+
laneCount: item.totalColumns,
|
|
187
|
+
startOffset: item.startOffset,
|
|
188
|
+
endOffset: item.endOffset,
|
|
189
|
+
},
|
|
190
|
+
}));
|
|
191
|
+
}
|
|
192
|
+
ngAfterViewInit() {
|
|
193
|
+
if (this.timeGridEl)
|
|
194
|
+
this.timeGridEl.nativeElement.scrollTop = DEFAULT_SCROLL_HOUR * DEFAULT_HOUR_HEIGHT;
|
|
195
|
+
}
|
|
196
|
+
handleGridDragOver(e) {
|
|
197
|
+
e.preventDefault();
|
|
198
|
+
e.dataTransfer.dropEffect = 'move';
|
|
199
|
+
if (!this.gridInnerEl)
|
|
200
|
+
return;
|
|
201
|
+
const time = snapTimeFromMouseY(e.clientY, this.gridInnerEl.nativeElement.getBoundingClientRect(), DEFAULT_HOUR_HEIGHT, this.timeSnapMinutes);
|
|
202
|
+
this.dragOverDateTime.emit({ date: this.currentDate, time });
|
|
203
|
+
}
|
|
204
|
+
handleGridDrop(e) {
|
|
205
|
+
e.preventDefault();
|
|
206
|
+
if (!this.gridInnerEl)
|
|
207
|
+
return;
|
|
208
|
+
const time = snapTimeFromMouseY(e.clientY, this.gridInnerEl.nativeElement.getBoundingClientRect(), DEFAULT_HOUR_HEIGHT, this.timeSnapMinutes);
|
|
209
|
+
this.dropTimedEvent.emit({ event: e, date: this.currentDate, time });
|
|
210
|
+
}
|
|
211
|
+
handleGridDragLeave(e) {
|
|
212
|
+
const el = e.currentTarget;
|
|
213
|
+
const rect = el.getBoundingClientRect();
|
|
214
|
+
if (e.clientX < rect.left || e.clientX > rect.right || e.clientY < rect.top || e.clientY > rect.bottom) {
|
|
215
|
+
this.hidePreviewEv.emit();
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
handleGridClick(e) {
|
|
219
|
+
if (!this.click.accept(this.config.clickThresholdMs))
|
|
220
|
+
return;
|
|
221
|
+
if (e.target.closest('.time-event'))
|
|
222
|
+
return;
|
|
223
|
+
// Single click on empty grid deselects; create-dialog moves to dblclick.
|
|
224
|
+
if (this.selectedEventId !== null)
|
|
225
|
+
this.clearSelection.emit();
|
|
226
|
+
}
|
|
227
|
+
handleGridDoubleClick(e) {
|
|
228
|
+
if (!this.click.accept(this.config.clickThresholdMs))
|
|
229
|
+
return;
|
|
230
|
+
if (!this.gridInnerEl)
|
|
231
|
+
return;
|
|
232
|
+
if (e.target.closest('.time-event'))
|
|
233
|
+
return;
|
|
234
|
+
const time = snapTimeFromMouseY(e.clientY, this.gridInnerEl.nativeElement.getBoundingClientRect(), DEFAULT_HOUR_HEIGHT, this.timeSnapMinutes);
|
|
235
|
+
// Compose the day + snapped time via the shared parser (no split, like WeekView).
|
|
236
|
+
const clickedDt = parseDateTimeStr(toDateStr(this.currentDate), time, this.currentDate.timezone);
|
|
237
|
+
const rect = e.currentTarget.getBoundingClientRect();
|
|
238
|
+
this.dayCellClick.emit({ date: clickedDt, rect });
|
|
239
|
+
}
|
|
240
|
+
handleAllDayMouseDown() {
|
|
241
|
+
this.allDayClick.markMouseDown();
|
|
242
|
+
}
|
|
243
|
+
handleAllDayClick(e, ev) {
|
|
244
|
+
e.stopPropagation();
|
|
245
|
+
if (!this.allDayClick.accept(this.config.clickThresholdMs))
|
|
246
|
+
return;
|
|
247
|
+
const instanceDate = getRecurrenceInstanceMetadata(ev)?.instanceDate;
|
|
248
|
+
this.selectEvent.emit({ eventId: ev.id, instanceDate });
|
|
249
|
+
}
|
|
250
|
+
handleAllDayDoubleClick(e, ev) {
|
|
251
|
+
e.stopPropagation();
|
|
252
|
+
if (!this.allDayClick.accept(this.config.clickThresholdMs))
|
|
253
|
+
return;
|
|
254
|
+
const rect = e.currentTarget.getBoundingClientRect();
|
|
255
|
+
const instanceDate = getRecurrenceInstanceMetadata(ev)?.instanceDate;
|
|
256
|
+
this.eventClick.emit({ eventId: ev.id, rect, instanceDate });
|
|
257
|
+
}
|
|
258
|
+
isAllDaySelected(ev) {
|
|
259
|
+
const id = getRecurrenceInstanceMetadata(ev)?.instanceDate;
|
|
260
|
+
return this.selectedEventId === ev.id && this.selectedInstanceDate === id;
|
|
261
|
+
}
|
|
262
|
+
static ɵfac = function DayViewComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || DayViewComponent)(i0.ɵɵdirectiveInject(i1.EventRenderService, 8)); };
|
|
263
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DayViewComponent, selectors: [["cal-day-view"]], viewQuery: function DayViewComponent_Query(rf, ctx) { if (rf & 1) {
|
|
264
|
+
i0.ɵɵviewQuery(_c0, 5);
|
|
265
|
+
i0.ɵɵviewQuery(_c1, 5);
|
|
266
|
+
} if (rf & 2) {
|
|
267
|
+
let _t;
|
|
268
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.timeGridEl = _t.first);
|
|
269
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.gridInnerEl = _t.first);
|
|
270
|
+
} }, hostAttrs: [2, "display", "contents"], inputs: { currentDate: "currentDate", events: "events", config: "config", previewEvent: "previewEvent", selectedEventId: "selectedEventId", selectedInstanceDate: "selectedInstanceDate" }, outputs: { eventClick: "eventClick", selectEvent: "selectEvent", clearSelection: "clearSelection", dayCellClick: "dayCellClick", dropTimedEvent: "dropTimedEvent", dragOverDateTime: "dragOverDateTime", hidePreviewEv: "hidePreviewEv", dragEnd: "dragEnd", dragStartEv: "dragStartEv" }, features: [i0.ɵɵNgOnChangesFeature], decls: 15, vars: 14, consts: [["timeGridEl", ""], ["gridInnerEl", ""], ["defaultAllDay", ""], [1, "day-view"], [1, "day-view__header"], [1, "day-view__day-name"], ["class", "day-view__allday", 4, "ngIf"], [1, "day-view__time-grid", 3, "dragover", "drop", "dragleave", "mousedown", "click", "dblclick"], [1, "day-view__time-grid-inner"], [3, "class", "top", "height", 4, "ngFor", "ngForOf"], [1, "day-view__day-col"], [3, "event", "layout", "dayDate", "hourHeight", "timeLabelWidth", "ghost", "clickThresholdMs", "locale", "snapMinutes", "selectedEventId", "selectedInstanceDate", "eventClick", "selectEvent", "dragStart", "dragEnd", 4, "ngFor", "ngForOf"], ["class", "day-view__now-line", 3, "top", 4, "ngIf"], [1, "day-view__allday"], [1, "day-view__allday-label"], [1, "day-view__allday-list"], [3, "class", "background-color", "ngStyle", "title", "mousedown", "click", "dblclick", 4, "ngFor", "ngForOf"], [3, "mousedown", "click", "dblclick", "ngStyle", "title"], [4, "ngIf", "ngIfElse"], [4, "ngIf"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "day-view__hour-label"], [3, "eventClick", "selectEvent", "dragStart", "dragEnd", "event", "layout", "dayDate", "hourHeight", "timeLabelWidth", "ghost", "clickThresholdMs", "locale", "snapMinutes", "selectedEventId", "selectedInstanceDate"], [1, "day-view__now-line"], [1, "day-view__now-dot"]], template: function DayViewComponent_Template(rf, ctx) { if (rf & 1) {
|
|
271
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
272
|
+
i0.ɵɵelementStart(0, "div", 3)(1, "div", 4)(2, "span", 5);
|
|
273
|
+
i0.ɵɵtext(3);
|
|
274
|
+
i0.ɵɵelementEnd();
|
|
275
|
+
i0.ɵɵelementStart(4, "span");
|
|
276
|
+
i0.ɵɵtext(5);
|
|
277
|
+
i0.ɵɵelementEnd()();
|
|
278
|
+
i0.ɵɵtemplate(6, DayViewComponent_div_6_Template, 5, 2, "div", 6);
|
|
279
|
+
i0.ɵɵelementStart(7, "div", 7, 0);
|
|
280
|
+
i0.ɵɵlistener("dragover", function DayViewComponent_Template_div_dragover_7_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleGridDragOver($event)); })("drop", function DayViewComponent_Template_div_drop_7_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleGridDrop($event)); })("dragleave", function DayViewComponent_Template_div_dragleave_7_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleGridDragLeave($event)); })("mousedown", function DayViewComponent_Template_div_mousedown_7_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.click.markMouseDown()); })("click", function DayViewComponent_Template_div_click_7_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleGridClick($event)); })("dblclick", function DayViewComponent_Template_div_dblclick_7_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleGridDoubleClick($event)); });
|
|
281
|
+
i0.ɵɵelementStart(9, "div", 8, 1);
|
|
282
|
+
i0.ɵɵtemplate(11, DayViewComponent_div_11_Template, 3, 7, "div", 9);
|
|
283
|
+
i0.ɵɵelement(12, "div", 10);
|
|
284
|
+
i0.ɵɵtemplate(13, DayViewComponent_cal_time_event_13_Template, 1, 11, "cal-time-event", 11)(14, DayViewComponent_div_14_Template, 2, 2, "div", 12);
|
|
285
|
+
i0.ɵɵelementEnd()()();
|
|
286
|
+
} if (rf & 2) {
|
|
287
|
+
i0.ɵɵadvance(3);
|
|
288
|
+
i0.ɵɵtextInterpolate(ctx.dayName);
|
|
289
|
+
i0.ɵɵadvance();
|
|
290
|
+
i0.ɵɵclassMap("day-view__day-number" + (ctx.isToday ? " day-view__day-number--today" : ""));
|
|
291
|
+
i0.ɵɵadvance();
|
|
292
|
+
i0.ɵɵtextInterpolate1(" ", ctx.dayNumber, " ");
|
|
293
|
+
i0.ɵɵadvance();
|
|
294
|
+
i0.ɵɵproperty("ngIf", ctx.allDayEvents.length > 0);
|
|
295
|
+
i0.ɵɵadvance(3);
|
|
296
|
+
i0.ɵɵstyleProp("height", 24 * ctx.hourHeight, "px");
|
|
297
|
+
i0.ɵɵadvance(2);
|
|
298
|
+
i0.ɵɵproperty("ngForOf", ctx.hours);
|
|
299
|
+
i0.ɵɵadvance();
|
|
300
|
+
i0.ɵɵstyleProp("left", ctx.timeLabelWidth, "px")("width", "calc(100% - " + ctx.timeLabelWidth + "px)");
|
|
301
|
+
i0.ɵɵadvance();
|
|
302
|
+
i0.ɵɵproperty("ngForOf", ctx.timedEntries);
|
|
303
|
+
i0.ɵɵadvance();
|
|
304
|
+
i0.ɵɵproperty("ngIf", ctx.isToday);
|
|
305
|
+
} }, dependencies: [CommonModule, i2.NgForOf, i2.NgIf, i2.NgTemplateOutlet, i2.NgStyle, TimeEventComponent], encapsulation: 2 });
|
|
306
|
+
}
|
|
307
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DayViewComponent, [{
|
|
308
|
+
type: Component,
|
|
309
|
+
args: [{
|
|
310
|
+
selector: 'cal-day-view',
|
|
311
|
+
standalone: true,
|
|
312
|
+
host: { style: 'display: contents' },
|
|
313
|
+
imports: [CommonModule, TimeEventComponent],
|
|
314
|
+
template: `
|
|
315
|
+
<div class="day-view">
|
|
316
|
+
<div class="day-view__header">
|
|
317
|
+
<span class="day-view__day-name">{{ dayName }}</span>
|
|
318
|
+
<span [class]="'day-view__day-number' + (isToday ? ' day-view__day-number--today' : '')">
|
|
319
|
+
{{ dayNumber }}
|
|
320
|
+
</span>
|
|
321
|
+
</div>
|
|
322
|
+
|
|
323
|
+
<div *ngIf="allDayEvents.length > 0" class="day-view__allday">
|
|
324
|
+
<div class="day-view__allday-label">{{ config.locale.allDayLabel }}</div>
|
|
325
|
+
<div class="day-view__allday-list">
|
|
326
|
+
<div *ngFor="let ev of allDayEvents"
|
|
327
|
+
[class]="'day-view__allday-event' + (isAllDaySelected(ev) ? ' day-view__allday-event--selected' : '') + slotsClassName(ev)"
|
|
328
|
+
[style.background-color]="getColor(ev)"
|
|
329
|
+
[ngStyle]="slotsStyle(ev)"
|
|
330
|
+
(mousedown)="handleAllDayMouseDown()"
|
|
331
|
+
(click)="handleAllDayClick($event, ev)"
|
|
332
|
+
(dblclick)="handleAllDayDoubleClick($event, ev)"
|
|
333
|
+
[title]="renderedTitle(ev)">
|
|
334
|
+
<ng-container *ngIf="contentTpl; else defaultAllDay">
|
|
335
|
+
<ng-container *ngTemplateOutlet="contentTpl; context: tplCtx(ev)"></ng-container>
|
|
336
|
+
</ng-container>
|
|
337
|
+
<ng-template #defaultAllDay>{{ renderedTitle(ev) }}</ng-template>
|
|
338
|
+
<ng-container *ngIf="badgesTpl">
|
|
339
|
+
<ng-container *ngTemplateOutlet="badgesTpl; context: tplCtx(ev)"></ng-container>
|
|
340
|
+
</ng-container>
|
|
341
|
+
</div>
|
|
342
|
+
</div>
|
|
343
|
+
</div>
|
|
344
|
+
|
|
345
|
+
<div #timeGridEl class="day-view__time-grid"
|
|
346
|
+
(dragover)="handleGridDragOver($event)" (drop)="handleGridDrop($event)"
|
|
347
|
+
(dragleave)="handleGridDragLeave($event)"
|
|
348
|
+
(mousedown)="click.markMouseDown()"
|
|
349
|
+
(click)="handleGridClick($event)"
|
|
350
|
+
(dblclick)="handleGridDoubleClick($event)">
|
|
351
|
+
<div #gridInnerEl class="day-view__time-grid-inner" [style.height.px]="24 * hourHeight">
|
|
352
|
+
<div *ngFor="let h of hours"
|
|
353
|
+
[class]="'day-view__hour-row' + (isOffHour(h) ? ' hour-slot--off' : '')"
|
|
354
|
+
[style.top.px]="h * hourHeight" [style.height.px]="hourHeight">
|
|
355
|
+
<div class="day-view__hour-label">{{ h > 0 ? formatHour(h) : '' }}</div>
|
|
356
|
+
</div>
|
|
357
|
+
|
|
358
|
+
<div class="day-view__day-col" [style.left.px]="timeLabelWidth" [style.width]="'calc(100% - ' + timeLabelWidth + 'px)'"></div>
|
|
359
|
+
|
|
360
|
+
<cal-time-event *ngFor="let entry of timedEntries"
|
|
361
|
+
[event]="entry.event" [layout]="entry.layout" [dayDate]="currentDate"
|
|
362
|
+
[hourHeight]="hourHeight" [timeLabelWidth]="timeLabelWidth"
|
|
363
|
+
[ghost]="previewEvent?.id === entry.event.id"
|
|
364
|
+
[clickThresholdMs]="config.clickThresholdMs" [locale]="config.locale"
|
|
365
|
+
[snapMinutes]="config.core.granularity.day.minutes"
|
|
366
|
+
[selectedEventId]="selectedEventId"
|
|
367
|
+
[selectedInstanceDate]="selectedInstanceDate"
|
|
368
|
+
(eventClick)="eventClick.emit($event)"
|
|
369
|
+
(selectEvent)="selectEvent.emit($event)"
|
|
370
|
+
(dragStart)="dragStartEv.emit($event)"
|
|
371
|
+
(dragEnd)="dragEnd.emit()">
|
|
372
|
+
</cal-time-event>
|
|
373
|
+
|
|
374
|
+
<div *ngIf="isToday" class="day-view__now-line" [style.top.px]="nowHours * hourHeight">
|
|
375
|
+
<div class="day-view__now-dot"></div>
|
|
376
|
+
</div>
|
|
377
|
+
</div>
|
|
378
|
+
</div>
|
|
379
|
+
</div>
|
|
380
|
+
`,
|
|
381
|
+
}]
|
|
382
|
+
}], () => [{ type: i1.EventRenderService, decorators: [{
|
|
383
|
+
type: Optional
|
|
384
|
+
}] }], { currentDate: [{
|
|
385
|
+
type: Input
|
|
386
|
+
}], events: [{
|
|
387
|
+
type: Input
|
|
388
|
+
}], config: [{
|
|
389
|
+
type: Input
|
|
390
|
+
}], previewEvent: [{
|
|
391
|
+
type: Input
|
|
392
|
+
}], selectedEventId: [{
|
|
393
|
+
type: Input
|
|
394
|
+
}], selectedInstanceDate: [{
|
|
395
|
+
type: Input
|
|
396
|
+
}], eventClick: [{
|
|
397
|
+
type: Output
|
|
398
|
+
}], selectEvent: [{
|
|
399
|
+
type: Output
|
|
400
|
+
}], clearSelection: [{
|
|
401
|
+
type: Output
|
|
402
|
+
}], dayCellClick: [{
|
|
403
|
+
type: Output
|
|
404
|
+
}], dropTimedEvent: [{
|
|
405
|
+
type: Output
|
|
406
|
+
}], dragOverDateTime: [{
|
|
407
|
+
type: Output
|
|
408
|
+
}], hidePreviewEv: [{
|
|
409
|
+
type: Output
|
|
410
|
+
}], dragEnd: [{
|
|
411
|
+
type: Output
|
|
412
|
+
}], dragStartEv: [{
|
|
413
|
+
type: Output
|
|
414
|
+
}], timeGridEl: [{
|
|
415
|
+
type: ViewChild,
|
|
416
|
+
args: ['timeGridEl']
|
|
417
|
+
}], gridInnerEl: [{
|
|
418
|
+
type: ViewChild,
|
|
419
|
+
args: ['gridInnerEl']
|
|
420
|
+
}] }); })();
|
|
421
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DayViewComponent, { className: "DayViewComponent", filePath: "views/day/dayview.ts", lineNumber: 91 }); })();
|
|
422
|
+
//# sourceMappingURL=DayView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DayView.js","sourceRoot":"","sources":["../../../src/views/day/DayView.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { EventEmitter, OnChanges } from '@angular/core';
|
|
2
|
+
import type { CalendarEvent, CalendarDateTime, LayoutItem } from '@bimetal/calendar-core';
|
|
3
|
+
import type { CalendarConfig } from '../../binding/index.js';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class MonthViewComponent implements OnChanges {
|
|
6
|
+
year: number;
|
|
7
|
+
month: number;
|
|
8
|
+
events: CalendarEvent[];
|
|
9
|
+
config: CalendarConfig;
|
|
10
|
+
previewEvent: CalendarEvent | null;
|
|
11
|
+
expandedMonthDay: number | null;
|
|
12
|
+
selectedEventId: string | null;
|
|
13
|
+
selectedInstanceDate: number | undefined;
|
|
14
|
+
eventClick: EventEmitter<{
|
|
15
|
+
eventId: string;
|
|
16
|
+
rect: DOMRect;
|
|
17
|
+
instanceDate?: number;
|
|
18
|
+
}>;
|
|
19
|
+
selectEvent: EventEmitter<{
|
|
20
|
+
eventId: string;
|
|
21
|
+
instanceDate?: number;
|
|
22
|
+
}>;
|
|
23
|
+
clearSelection: EventEmitter<void>;
|
|
24
|
+
dayCellClick: EventEmitter<{
|
|
25
|
+
date: CalendarDateTime;
|
|
26
|
+
rect: DOMRect;
|
|
27
|
+
}>;
|
|
28
|
+
dropEvent: EventEmitter<{
|
|
29
|
+
event: DragEvent;
|
|
30
|
+
date: CalendarDateTime;
|
|
31
|
+
}>;
|
|
32
|
+
dragOverDate: EventEmitter<CalendarDateTime>;
|
|
33
|
+
/** Drop-Zone wurde verlassen (dragleave) — Preview visuell ausräumen. */
|
|
34
|
+
hidePreviewEv: EventEmitter<void>;
|
|
35
|
+
/** Native `dragend` der Source — Drag-Session vollständig beendet. */
|
|
36
|
+
dragEnd: EventEmitter<void>;
|
|
37
|
+
dragStartEv: EventEmitter<any>;
|
|
38
|
+
/** B-CAL-3: bubble the hover-expand intents (from WeekRow) to the controller. */
|
|
39
|
+
expandMonthCell: EventEmitter<number>;
|
|
40
|
+
collapseMonthCell: EventEmitter<void>;
|
|
41
|
+
weeks: CalendarDateTime[][];
|
|
42
|
+
today: CalendarDateTime;
|
|
43
|
+
timedByDay: Map<number, CalendarEvent[]>;
|
|
44
|
+
private weekItems;
|
|
45
|
+
trackWeek(_: number, week: CalendarDateTime[]): number;
|
|
46
|
+
ngOnChanges(): void;
|
|
47
|
+
getItems(weekIdx: number): LayoutItem[];
|
|
48
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MonthViewComponent, never>;
|
|
49
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MonthViewComponent, "cal-month-view", never, { "year": { "alias": "year"; "required": false; }; "month": { "alias": "month"; "required": false; }; "events": { "alias": "events"; "required": false; }; "config": { "alias": "config"; "required": false; }; "previewEvent": { "alias": "previewEvent"; "required": false; }; "expandedMonthDay": { "alias": "expandedMonthDay"; "required": false; }; "selectedEventId": { "alias": "selectedEventId"; "required": false; }; "selectedInstanceDate": { "alias": "selectedInstanceDate"; "required": false; }; }, { "eventClick": "eventClick"; "selectEvent": "selectEvent"; "clearSelection": "clearSelection"; "dayCellClick": "dayCellClick"; "dropEvent": "dropEvent"; "dragOverDate": "dragOverDate"; "hidePreviewEv": "hidePreviewEv"; "dragEnd": "dragEnd"; "dragStartEv": "dragStartEv"; "expandMonthCell": "expandMonthCell"; "collapseMonthCell": "collapseMonthCell"; }, never, never, true, never>;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=MonthView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonthView.d.ts","sourceRoot":"","sources":["../../../src/views/month/MonthView.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAElF,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAK1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;;AAG7D,qBAuCa,kBAAmB,YAAW,SAAS;IACzC,IAAI,SAAK;IACT,KAAK,SAAK;IACV,MAAM,EAAE,aAAa,EAAE,CAAM;IAC7B,MAAM,EAAG,cAAc,CAAC;IAExB,YAAY,EAAE,aAAa,GAAG,IAAI,CAAQ;IAE1C,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAQ;IACvC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IACtC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAa;IACpD,UAAU;iBAA+B,MAAM;cAAQ,OAAO;uBAAiB,MAAM;OAAM;IAC3F,WAAW;iBAA+B,MAAM;uBAAiB,MAAM;OAAM;IAC7E,cAAc,qBAA4B;IAC1C,YAAY;cAA4B,gBAAgB;cAAQ,OAAO;OAAM;IAC7E,SAAS;eAA6B,SAAS;cAAQ,gBAAgB;OAAM;IAC7E,YAAY,iCAAwC;IAC9D,yEAAyE;IAC/D,aAAa,qBAA4B;IACnD,sEAAsE;IAC5D,OAAO,qBAA4B;IACnC,WAAW,oBAA2B;IAChD,iFAAiF;IACvE,eAAe,uBAA8B;IAC7C,iBAAiB,qBAA4B;IAEvD,KAAK,EAAE,gBAAgB,EAAE,EAAE,CAAM;IACjC,KAAK,EAAG,gBAAgB,CAAC;IACzB,UAAU,+BAAsC;IAChD,OAAO,CAAC,SAAS,CAAsB;IAMvC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE;IAE7C,WAAW;IA2BX,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE;yCAhE5B,kBAAkB;2CAAlB,kBAAkB;CAmE9B"}
|