@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,309 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, Optional } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { addDays, isSameDay, startOfDay, isBefore, isAfter, getDayOfMonth, overlaps, createTimeRange, formatDateTime, now, getRecurrenceInstanceMetadata, isSingleDayAllDay, } from '@bimetal/calendar-core';
|
|
4
|
+
import { toDateStr, toTimeStr, EventRenderService } from '../../binding/index.js';
|
|
5
|
+
import { DEFAULT_AGENDA_RANGE_DAYS, createClickIntent } from '@bimetal/calendar-headless';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../binding/index.js";
|
|
8
|
+
import * as i2 from "@angular/common";
|
|
9
|
+
function AgendaViewComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
10
|
+
i0.ɵɵelementStart(0, "div", 4);
|
|
11
|
+
i0.ɵɵtext(1);
|
|
12
|
+
i0.ɵɵelementEnd();
|
|
13
|
+
} if (rf & 2) {
|
|
14
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
15
|
+
i0.ɵɵadvance();
|
|
16
|
+
i0.ɵɵtextInterpolate(ctx_r0.config.locale.noEvents);
|
|
17
|
+
} }
|
|
18
|
+
function AgendaViewComponent_div_2_div_10_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
19
|
+
i0.ɵɵelementContainer(0);
|
|
20
|
+
} }
|
|
21
|
+
function AgendaViewComponent_div_2_div_10_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
22
|
+
i0.ɵɵelementContainerStart(0);
|
|
23
|
+
i0.ɵɵtemplate(1, AgendaViewComponent_div_2_div_10_ng_container_1_ng_container_1_Template, 1, 0, "ng-container", 14);
|
|
24
|
+
i0.ɵɵelementContainerEnd();
|
|
25
|
+
} if (rf & 2) {
|
|
26
|
+
const ev_r3 = i0.ɵɵnextContext().$implicit;
|
|
27
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
28
|
+
i0.ɵɵadvance();
|
|
29
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.contentTpl)("ngTemplateOutletContext", ctx_r0.tplCtx(ev_r3));
|
|
30
|
+
} }
|
|
31
|
+
function AgendaViewComponent_div_2_div_10_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
32
|
+
i0.ɵɵelement(0, "div", 15);
|
|
33
|
+
i0.ɵɵelementStart(1, "div", 16)(2, "div", 17);
|
|
34
|
+
i0.ɵɵtext(3);
|
|
35
|
+
i0.ɵɵelementEnd();
|
|
36
|
+
i0.ɵɵelementStart(4, "div", 18);
|
|
37
|
+
i0.ɵɵtext(5);
|
|
38
|
+
i0.ɵɵelementEnd()();
|
|
39
|
+
i0.ɵɵelementStart(6, "div", 19);
|
|
40
|
+
i0.ɵɵtext(7);
|
|
41
|
+
i0.ɵɵelementEnd();
|
|
42
|
+
} if (rf & 2) {
|
|
43
|
+
const ev_r3 = i0.ɵɵnextContext().$implicit;
|
|
44
|
+
const group_r4 = i0.ɵɵnextContext().$implicit;
|
|
45
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
46
|
+
i0.ɵɵstyleProp("background-color", ctx_r0.getColor(ev_r3));
|
|
47
|
+
i0.ɵɵadvance(3);
|
|
48
|
+
i0.ɵɵtextInterpolate(ctx_r0.renderedTitle(ev_r3));
|
|
49
|
+
i0.ɵɵadvance(2);
|
|
50
|
+
i0.ɵɵtextInterpolate(ctx_r0.formatEventTime(ev_r3, group_r4.date));
|
|
51
|
+
i0.ɵɵadvance(2);
|
|
52
|
+
i0.ɵɵtextInterpolate(ctx_r0.getCategory(ev_r3));
|
|
53
|
+
} }
|
|
54
|
+
function AgendaViewComponent_div_2_div_10_ng_container_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
55
|
+
i0.ɵɵelementContainer(0);
|
|
56
|
+
} }
|
|
57
|
+
function AgendaViewComponent_div_2_div_10_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
58
|
+
i0.ɵɵelementContainerStart(0);
|
|
59
|
+
i0.ɵɵtemplate(1, AgendaViewComponent_div_2_div_10_ng_container_4_ng_container_1_Template, 1, 0, "ng-container", 14);
|
|
60
|
+
i0.ɵɵelementContainerEnd();
|
|
61
|
+
} if (rf & 2) {
|
|
62
|
+
const ev_r3 = i0.ɵɵnextContext().$implicit;
|
|
63
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
64
|
+
i0.ɵɵadvance();
|
|
65
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r0.badgesTpl)("ngTemplateOutletContext", ctx_r0.tplCtx(ev_r3));
|
|
66
|
+
} }
|
|
67
|
+
function AgendaViewComponent_div_2_div_10_Template(rf, ctx) { if (rf & 1) {
|
|
68
|
+
const _r2 = i0.ɵɵgetCurrentView();
|
|
69
|
+
i0.ɵɵelementStart(0, "div", 11);
|
|
70
|
+
i0.ɵɵlistener("mousedown", function AgendaViewComponent_div_2_div_10_Template_div_mousedown_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.click.markMouseDown()); })("click", function AgendaViewComponent_div_2_div_10_Template_div_click_0_listener($event) { const ev_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.handleEventClick($event, ev_r3)); })("dblclick", function AgendaViewComponent_div_2_div_10_Template_div_dblclick_0_listener($event) { const ev_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.handleEventDoubleClick($event, ev_r3)); });
|
|
71
|
+
i0.ɵɵtemplate(1, AgendaViewComponent_div_2_div_10_ng_container_1_Template, 2, 2, "ng-container", 12)(2, AgendaViewComponent_div_2_div_10_ng_template_2_Template, 8, 5, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(4, AgendaViewComponent_div_2_div_10_ng_container_4_Template, 2, 2, "ng-container", 13);
|
|
72
|
+
i0.ɵɵelementEnd();
|
|
73
|
+
} if (rf & 2) {
|
|
74
|
+
const ev_r3 = ctx.$implicit;
|
|
75
|
+
const defaultAgenda_r5 = i0.ɵɵreference(3);
|
|
76
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
77
|
+
i0.ɵɵclassMap("agenda-view__event" + (ctx_r0.isEventSelected(ev_r3) ? " agenda-view__event--selected" : "") + ctx_r0.slotsClassName(ev_r3));
|
|
78
|
+
i0.ɵɵproperty("ngStyle", ctx_r0.slotsStyle(ev_r3));
|
|
79
|
+
i0.ɵɵadvance();
|
|
80
|
+
i0.ɵɵproperty("ngIf", ctx_r0.contentTpl)("ngIfElse", defaultAgenda_r5);
|
|
81
|
+
i0.ɵɵadvance(3);
|
|
82
|
+
i0.ɵɵproperty("ngIf", ctx_r0.badgesTpl);
|
|
83
|
+
} }
|
|
84
|
+
function AgendaViewComponent_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
85
|
+
i0.ɵɵelementStart(0, "div", 5)(1, "div")(2, "span");
|
|
86
|
+
i0.ɵɵtext(3);
|
|
87
|
+
i0.ɵɵelementEnd();
|
|
88
|
+
i0.ɵɵelementStart(4, "div", 6)(5, "span", 7);
|
|
89
|
+
i0.ɵɵtext(6);
|
|
90
|
+
i0.ɵɵelementEnd();
|
|
91
|
+
i0.ɵɵelementStart(7, "span", 8);
|
|
92
|
+
i0.ɵɵtext(8);
|
|
93
|
+
i0.ɵɵelementEnd()()();
|
|
94
|
+
i0.ɵɵelementStart(9, "div", 9);
|
|
95
|
+
i0.ɵɵtemplate(10, AgendaViewComponent_div_2_div_10_Template, 5, 6, "div", 10);
|
|
96
|
+
i0.ɵɵelementEnd()();
|
|
97
|
+
} if (rf & 2) {
|
|
98
|
+
const group_r4 = ctx.$implicit;
|
|
99
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
100
|
+
i0.ɵɵadvance();
|
|
101
|
+
i0.ɵɵclassMap("agenda-view__date-header" + (ctx_r0.isToday(group_r4.date) ? " agenda-view__date-header--today" : ""));
|
|
102
|
+
i0.ɵɵadvance();
|
|
103
|
+
i0.ɵɵclassMap("agenda-view__date-number" + (ctx_r0.isToday(group_r4.date) ? " agenda-view__date-number--today" : ""));
|
|
104
|
+
i0.ɵɵadvance();
|
|
105
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.getDayOfMonth(group_r4.date), " ");
|
|
106
|
+
i0.ɵɵadvance(3);
|
|
107
|
+
i0.ɵɵtextInterpolate(ctx_r0.getWeekday(group_r4.date));
|
|
108
|
+
i0.ɵɵadvance(2);
|
|
109
|
+
i0.ɵɵtextInterpolate(ctx_r0.getMonthYear(group_r4.date));
|
|
110
|
+
i0.ɵɵadvance(2);
|
|
111
|
+
i0.ɵɵproperty("ngForOf", group_r4.events);
|
|
112
|
+
} }
|
|
113
|
+
export class AgendaViewComponent {
|
|
114
|
+
renderService;
|
|
115
|
+
currentDate;
|
|
116
|
+
events = [];
|
|
117
|
+
config;
|
|
118
|
+
selectedEventId = null;
|
|
119
|
+
selectedInstanceDate = undefined;
|
|
120
|
+
eventClick = new EventEmitter();
|
|
121
|
+
selectEvent = new EventEmitter();
|
|
122
|
+
dayGroups = [];
|
|
123
|
+
click = createClickIntent();
|
|
124
|
+
currentNow;
|
|
125
|
+
constructor(renderService) {
|
|
126
|
+
this.renderService = renderService;
|
|
127
|
+
}
|
|
128
|
+
get badgesTpl() { return this.renderService?.eventBadgesTpl; }
|
|
129
|
+
get contentTpl() { return this.renderService?.eventContentTpl; }
|
|
130
|
+
tplCtx(ev) { return this.renderService?.buildTemplateContext(ev); }
|
|
131
|
+
renderedTitle(ev) { return this.renderService?.resolveTitle(ev) ?? ev.title; }
|
|
132
|
+
slotsClassName(ev) {
|
|
133
|
+
const cls = this.renderService?.resolveClassName(ev) ?? '';
|
|
134
|
+
return cls ? ' ' + cls : '';
|
|
135
|
+
}
|
|
136
|
+
slotsStyle(ev) { return this.renderService?.resolveStyle(ev); }
|
|
137
|
+
// Expose core functions to template
|
|
138
|
+
getDayOfMonth = getDayOfMonth;
|
|
139
|
+
ngOnChanges() {
|
|
140
|
+
this.currentNow = now(this.config.core.timezone, this.config.core.clock);
|
|
141
|
+
this.computeGroups();
|
|
142
|
+
}
|
|
143
|
+
isToday(date) {
|
|
144
|
+
return isSameDay(date, this.currentNow);
|
|
145
|
+
}
|
|
146
|
+
getWeekday(date) {
|
|
147
|
+
return formatDateTime(date, { locale: this.config.locale.code, dateStyle: 'full' }).split(',')[0];
|
|
148
|
+
}
|
|
149
|
+
getMonthYear(date) {
|
|
150
|
+
return formatDateTime(date, { locale: this.config.locale.code, dateStyle: 'long' }).replace(/\d+\.?\s*/, '');
|
|
151
|
+
}
|
|
152
|
+
getColor(ev) {
|
|
153
|
+
return ev.metadata.color ?? '#007AFF';
|
|
154
|
+
}
|
|
155
|
+
getCategory(ev) {
|
|
156
|
+
return ev.metadata.category ?? 'default';
|
|
157
|
+
}
|
|
158
|
+
formatEventTime(ev, date) {
|
|
159
|
+
if (ev.allDay) {
|
|
160
|
+
if (isSingleDayAllDay(ev.timeRange)) {
|
|
161
|
+
return this.config.locale.allDayEvent;
|
|
162
|
+
}
|
|
163
|
+
const startStr = formatDateTime(ev.timeRange.start, { locale: this.config.locale.code, dateStyle: 'short' });
|
|
164
|
+
const endStr = formatDateTime(addDays(ev.timeRange.end, -1), { locale: this.config.locale.code, dateStyle: 'short' });
|
|
165
|
+
return `${this.config.locale.allDayEvent} (${startStr} – ${endStr})`;
|
|
166
|
+
}
|
|
167
|
+
const isFirst = isSameDay(ev.timeRange.start, date);
|
|
168
|
+
const isLast = isSameDay(ev.timeRange.end, date);
|
|
169
|
+
const st = toTimeStr(ev.timeRange.start);
|
|
170
|
+
const et = toTimeStr(ev.timeRange.end);
|
|
171
|
+
if (isFirst && isLast)
|
|
172
|
+
return `${st} – ${et}`;
|
|
173
|
+
if (isFirst)
|
|
174
|
+
return `${this.config.locale.timeFrom} ${st}`;
|
|
175
|
+
if (isLast)
|
|
176
|
+
return `${this.config.locale.timeUntil} ${et}`;
|
|
177
|
+
return this.config.locale.allDayEvent;
|
|
178
|
+
}
|
|
179
|
+
handleEventClick(e, ev) {
|
|
180
|
+
if (!this.click.accept(this.config.clickThresholdMs))
|
|
181
|
+
return;
|
|
182
|
+
const instanceDate = getRecurrenceInstanceMetadata(ev)?.instanceDate;
|
|
183
|
+
this.selectEvent.emit({ eventId: ev.id, instanceDate });
|
|
184
|
+
}
|
|
185
|
+
handleEventDoubleClick(e, ev) {
|
|
186
|
+
if (!this.click.accept(this.config.clickThresholdMs))
|
|
187
|
+
return;
|
|
188
|
+
const rect = e.currentTarget.getBoundingClientRect();
|
|
189
|
+
const instanceDate = getRecurrenceInstanceMetadata(ev)?.instanceDate;
|
|
190
|
+
this.eventClick.emit({ eventId: ev.id, rect, instanceDate });
|
|
191
|
+
}
|
|
192
|
+
isEventSelected(ev) {
|
|
193
|
+
const id = getRecurrenceInstanceMetadata(ev)?.instanceDate;
|
|
194
|
+
return this.selectedEventId === ev.id && this.selectedInstanceDate === id;
|
|
195
|
+
}
|
|
196
|
+
computeGroups() {
|
|
197
|
+
const rangeStart = startOfDay(this.currentDate);
|
|
198
|
+
const rangeEnd = addDays(rangeStart, DEFAULT_AGENDA_RANGE_DAYS);
|
|
199
|
+
const range = createTimeRange(rangeStart, rangeEnd);
|
|
200
|
+
const groups = new Map();
|
|
201
|
+
for (const ev of this.events) {
|
|
202
|
+
if (!overlaps(ev.timeRange, range))
|
|
203
|
+
continue;
|
|
204
|
+
const evStart = isBefore(ev.timeRange.start, rangeStart) ? rangeStart : ev.timeRange.start;
|
|
205
|
+
const evEnd = isAfter(ev.timeRange.end, rangeEnd) ? rangeEnd : ev.timeRange.end;
|
|
206
|
+
let d = startOfDay(evStart);
|
|
207
|
+
const limit = addDays(startOfDay(evEnd), 1);
|
|
208
|
+
while (isBefore(d, limit) && isBefore(d, rangeEnd)) {
|
|
209
|
+
const ds = toDateStr(d);
|
|
210
|
+
const list = groups.get(ds) || [];
|
|
211
|
+
list.push(ev);
|
|
212
|
+
groups.set(ds, list);
|
|
213
|
+
d = addDays(d, 1);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
this.dayGroups = [];
|
|
217
|
+
for (let i = 0; i < DEFAULT_AGENDA_RANGE_DAYS; i++) {
|
|
218
|
+
const date = addDays(rangeStart, i);
|
|
219
|
+
const dateStr = toDateStr(date);
|
|
220
|
+
const dayEvents = groups.get(dateStr);
|
|
221
|
+
if (dayEvents && dayEvents.length > 0) {
|
|
222
|
+
dayEvents.sort((a, b) => {
|
|
223
|
+
if (a.allDay !== b.allDay)
|
|
224
|
+
return a.allDay ? -1 : 1;
|
|
225
|
+
return a.timeRange.start.epochMs - b.timeRange.start.epochMs;
|
|
226
|
+
});
|
|
227
|
+
this.dayGroups.push({ date, dateStr, events: dayEvents });
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
static ɵfac = function AgendaViewComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || AgendaViewComponent)(i0.ɵɵdirectiveInject(i1.EventRenderService, 8)); };
|
|
232
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AgendaViewComponent, selectors: [["cal-agenda-view"]], hostAttrs: [2, "display", "contents"], inputs: { currentDate: "currentDate", events: "events", config: "config", selectedEventId: "selectedEventId", selectedInstanceDate: "selectedInstanceDate" }, outputs: { eventClick: "eventClick", selectEvent: "selectEvent" }, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 2, consts: [["defaultAgenda", ""], [1, "agenda-view"], ["class", "agenda-view__empty", 4, "ngIf"], ["class", "agenda-view__day", 4, "ngFor", "ngForOf"], [1, "agenda-view__empty"], [1, "agenda-view__day"], [1, "agenda-view__date-text"], [1, "agenda-view__date-weekday"], [1, "agenda-view__date-full"], [1, "agenda-view__events"], [3, "class", "ngStyle", "mousedown", "click", "dblclick", 4, "ngFor", "ngForOf"], [3, "mousedown", "click", "dblclick", "ngStyle"], [4, "ngIf", "ngIfElse"], [4, "ngIf"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "agenda-view__event-color"], [1, "agenda-view__event-content"], [1, "agenda-view__event-title"], [1, "agenda-view__event-time"], [1, "agenda-view__event-calendar"]], template: function AgendaViewComponent_Template(rf, ctx) { if (rf & 1) {
|
|
233
|
+
i0.ɵɵelementStart(0, "div", 1);
|
|
234
|
+
i0.ɵɵtemplate(1, AgendaViewComponent_div_1_Template, 2, 1, "div", 2)(2, AgendaViewComponent_div_2_Template, 11, 8, "div", 3);
|
|
235
|
+
i0.ɵɵelementEnd();
|
|
236
|
+
} if (rf & 2) {
|
|
237
|
+
i0.ɵɵadvance();
|
|
238
|
+
i0.ɵɵproperty("ngIf", ctx.dayGroups.length === 0);
|
|
239
|
+
i0.ɵɵadvance();
|
|
240
|
+
i0.ɵɵproperty("ngForOf", ctx.dayGroups);
|
|
241
|
+
} }, dependencies: [CommonModule, i2.NgForOf, i2.NgIf, i2.NgTemplateOutlet, i2.NgStyle], encapsulation: 2 });
|
|
242
|
+
}
|
|
243
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AgendaViewComponent, [{
|
|
244
|
+
type: Component,
|
|
245
|
+
args: [{
|
|
246
|
+
selector: 'cal-agenda-view',
|
|
247
|
+
standalone: true,
|
|
248
|
+
host: { style: 'display: contents' },
|
|
249
|
+
imports: [CommonModule],
|
|
250
|
+
template: `
|
|
251
|
+
<div class="agenda-view">
|
|
252
|
+
<div *ngIf="dayGroups.length === 0" class="agenda-view__empty">{{ config.locale.noEvents }}</div>
|
|
253
|
+
|
|
254
|
+
<div *ngFor="let group of dayGroups" class="agenda-view__day">
|
|
255
|
+
<div [class]="'agenda-view__date-header' + (isToday(group.date) ? ' agenda-view__date-header--today' : '')">
|
|
256
|
+
<span [class]="'agenda-view__date-number' + (isToday(group.date) ? ' agenda-view__date-number--today' : '')">
|
|
257
|
+
{{ getDayOfMonth(group.date) }}
|
|
258
|
+
</span>
|
|
259
|
+
<div class="agenda-view__date-text">
|
|
260
|
+
<span class="agenda-view__date-weekday">{{ getWeekday(group.date) }}</span>
|
|
261
|
+
<span class="agenda-view__date-full">{{ getMonthYear(group.date) }}</span>
|
|
262
|
+
</div>
|
|
263
|
+
</div>
|
|
264
|
+
<div class="agenda-view__events">
|
|
265
|
+
<div *ngFor="let ev of group.events"
|
|
266
|
+
[class]="'agenda-view__event' + (isEventSelected(ev) ? ' agenda-view__event--selected' : '') + slotsClassName(ev)"
|
|
267
|
+
[ngStyle]="slotsStyle(ev)"
|
|
268
|
+
(mousedown)="click.markMouseDown()"
|
|
269
|
+
(click)="handleEventClick($event, ev)"
|
|
270
|
+
(dblclick)="handleEventDoubleClick($event, ev)">
|
|
271
|
+
<ng-container *ngIf="contentTpl; else defaultAgenda">
|
|
272
|
+
<ng-container *ngTemplateOutlet="contentTpl; context: tplCtx(ev)"></ng-container>
|
|
273
|
+
</ng-container>
|
|
274
|
+
<ng-template #defaultAgenda>
|
|
275
|
+
<div class="agenda-view__event-color" [style.background-color]="getColor(ev)"></div>
|
|
276
|
+
<div class="agenda-view__event-content">
|
|
277
|
+
<div class="agenda-view__event-title">{{ renderedTitle(ev) }}</div>
|
|
278
|
+
<div class="agenda-view__event-time">{{ formatEventTime(ev, group.date) }}</div>
|
|
279
|
+
</div>
|
|
280
|
+
<div class="agenda-view__event-calendar">{{ getCategory(ev) }}</div>
|
|
281
|
+
</ng-template>
|
|
282
|
+
<ng-container *ngIf="badgesTpl">
|
|
283
|
+
<ng-container *ngTemplateOutlet="badgesTpl; context: tplCtx(ev)"></ng-container>
|
|
284
|
+
</ng-container>
|
|
285
|
+
</div>
|
|
286
|
+
</div>
|
|
287
|
+
</div>
|
|
288
|
+
</div>
|
|
289
|
+
`,
|
|
290
|
+
}]
|
|
291
|
+
}], () => [{ type: i1.EventRenderService, decorators: [{
|
|
292
|
+
type: Optional
|
|
293
|
+
}] }], { currentDate: [{
|
|
294
|
+
type: Input
|
|
295
|
+
}], events: [{
|
|
296
|
+
type: Input
|
|
297
|
+
}], config: [{
|
|
298
|
+
type: Input
|
|
299
|
+
}], selectedEventId: [{
|
|
300
|
+
type: Input
|
|
301
|
+
}], selectedInstanceDate: [{
|
|
302
|
+
type: Input
|
|
303
|
+
}], eventClick: [{
|
|
304
|
+
type: Output
|
|
305
|
+
}], selectEvent: [{
|
|
306
|
+
type: Output
|
|
307
|
+
}] }); })();
|
|
308
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AgendaViewComponent, { className: "AgendaViewComponent", filePath: "views/agenda/agendaview.ts", lineNumber: 65 }); })();
|
|
309
|
+
//# sourceMappingURL=AgendaView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgendaView.js","sourceRoot":"","sources":["../../../src/views/agenda/AgendaView.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { EventEmitter, OnChanges, AfterViewInit, ElementRef } from '@angular/core';
|
|
2
|
+
import type { CalendarEvent, CalendarDateTime } from '@bimetal/calendar-core';
|
|
3
|
+
import type { CalendarConfig } from '../../binding/index.js';
|
|
4
|
+
import { EventRenderService } from '../../binding/index.js';
|
|
5
|
+
import { type TimeEventLayout } from '../week/TimeEvent.js';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export declare class DayViewComponent implements OnChanges, AfterViewInit {
|
|
8
|
+
private renderService?;
|
|
9
|
+
currentDate: CalendarDateTime;
|
|
10
|
+
events: CalendarEvent[];
|
|
11
|
+
config: CalendarConfig;
|
|
12
|
+
previewEvent: CalendarEvent | null;
|
|
13
|
+
selectedEventId: string | null;
|
|
14
|
+
selectedInstanceDate: number | undefined;
|
|
15
|
+
eventClick: EventEmitter<{
|
|
16
|
+
eventId: string;
|
|
17
|
+
rect: DOMRect;
|
|
18
|
+
instanceDate?: number;
|
|
19
|
+
}>;
|
|
20
|
+
selectEvent: EventEmitter<{
|
|
21
|
+
eventId: string;
|
|
22
|
+
instanceDate?: number;
|
|
23
|
+
}>;
|
|
24
|
+
clearSelection: EventEmitter<void>;
|
|
25
|
+
dayCellClick: EventEmitter<{
|
|
26
|
+
date: CalendarDateTime;
|
|
27
|
+
rect: DOMRect;
|
|
28
|
+
}>;
|
|
29
|
+
dropTimedEvent: EventEmitter<{
|
|
30
|
+
event: DragEvent;
|
|
31
|
+
date: CalendarDateTime;
|
|
32
|
+
time: string;
|
|
33
|
+
}>;
|
|
34
|
+
dragOverDateTime: EventEmitter<{
|
|
35
|
+
date: CalendarDateTime;
|
|
36
|
+
time: string;
|
|
37
|
+
}>;
|
|
38
|
+
/** Drop-Zone wurde verlassen (dragleave) — Preview visuell ausräumen. */
|
|
39
|
+
hidePreviewEv: EventEmitter<void>;
|
|
40
|
+
/** Native `dragend` der Source — Drag-Session vollständig beendet. */
|
|
41
|
+
dragEnd: EventEmitter<void>;
|
|
42
|
+
dragStartEv: EventEmitter<any>;
|
|
43
|
+
timeGridEl?: ElementRef<HTMLDivElement>;
|
|
44
|
+
gridInnerEl?: ElementRef<HTMLDivElement>;
|
|
45
|
+
hours: number[];
|
|
46
|
+
hourHeight: number;
|
|
47
|
+
timeLabelWidth: number;
|
|
48
|
+
allDayEvents: CalendarEvent[];
|
|
49
|
+
timedEntries: {
|
|
50
|
+
event: CalendarEvent;
|
|
51
|
+
layout: TimeEventLayout;
|
|
52
|
+
}[];
|
|
53
|
+
isToday: boolean;
|
|
54
|
+
dayName: string;
|
|
55
|
+
dayNumber: number;
|
|
56
|
+
nowHours: number;
|
|
57
|
+
click: import("@bimetal/calendar-headless").ClickIntent;
|
|
58
|
+
allDayClick: import("@bimetal/calendar-headless").ClickIntent;
|
|
59
|
+
constructor(renderService?: EventRenderService | undefined);
|
|
60
|
+
get badgesTpl(): import("@angular/core").TemplateRef<import("../../index.js").EventRenderTemplateContext> | undefined;
|
|
61
|
+
get contentTpl(): import("@angular/core").TemplateRef<import("../../index.js").EventRenderTemplateContext> | undefined;
|
|
62
|
+
tplCtx(ev: CalendarEvent): import("../../index.js").EventRenderTemplateContext | undefined;
|
|
63
|
+
renderedTitle(ev: CalendarEvent): string;
|
|
64
|
+
slotsClassName(ev: CalendarEvent): string;
|
|
65
|
+
slotsStyle(ev: CalendarEvent): Record<string, string | number> | undefined;
|
|
66
|
+
private currentNow;
|
|
67
|
+
private timeSnapMinutes;
|
|
68
|
+
getColor(ev: CalendarEvent): string;
|
|
69
|
+
formatHour(h: number): string;
|
|
70
|
+
isOffHour(h: number): boolean;
|
|
71
|
+
ngOnChanges(): void;
|
|
72
|
+
ngAfterViewInit(): void;
|
|
73
|
+
handleGridDragOver(e: DragEvent): void;
|
|
74
|
+
handleGridDrop(e: DragEvent): void;
|
|
75
|
+
handleGridDragLeave(e: DragEvent): void;
|
|
76
|
+
handleGridClick(e: MouseEvent): void;
|
|
77
|
+
handleGridDoubleClick(e: MouseEvent): void;
|
|
78
|
+
handleAllDayMouseDown(): void;
|
|
79
|
+
handleAllDayClick(e: MouseEvent, ev: CalendarEvent): void;
|
|
80
|
+
handleAllDayDoubleClick(e: MouseEvent, ev: CalendarEvent): void;
|
|
81
|
+
isAllDaySelected(ev: CalendarEvent): boolean;
|
|
82
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DayViewComponent, [{ optional: true; }]>;
|
|
83
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DayViewComponent, "cal-day-view", never, { "currentDate": { "alias": "currentDate"; "required": false; }; "events": { "alias": "events"; "required": false; }; "config": { "alias": "config"; "required": false; }; "previewEvent": { "alias": "previewEvent"; "required": false; }; "selectedEventId": { "alias": "selectedEventId"; "required": false; }; "selectedInstanceDate": { "alias": "selectedInstanceDate"; "required": false; }; }, { "eventClick": "eventClick"; "selectEvent": "selectEvent"; "clearSelection": "clearSelection"; "dayCellClick": "dayCellClick"; "dropTimedEvent": "dropTimedEvent"; "dragOverDateTime": "dragOverDateTime"; "hidePreviewEv": "hidePreviewEv"; "dragEnd": "dragEnd"; "dragStartEv": "dragStartEv"; }, never, never, true, never>;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=DayView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DayView.d.ts","sourceRoot":"","sources":["../../../src/views/day/DayView.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,SAAS,EAAE,aAAa,EAAa,UAAU,EAAY,MAAM,eAAe,CAAC;AAElI,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAQ9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAmD,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE7G,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;;AAIhF,qBAyEa,gBAAiB,YAAW,SAAS,EAAE,aAAa;IAmCvC,OAAO,CAAC,aAAa,CAAC;IAlCrC,WAAW,EAAG,gBAAgB,CAAC;IAC/B,MAAM,EAAE,aAAa,EAAE,CAAM;IAC7B,MAAM,EAAG,cAAc,CAAC;IAExB,YAAY,EAAE,aAAa,GAAG,IAAI,CAAQ;IAC1C,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,cAAc;eAA6B,SAAS;cAAQ,gBAAgB;cAAQ,MAAM;OAAM;IAChG,gBAAgB;cAA4B,gBAAgB;cAAQ,MAAM;OAAM;IAC1F,yEAAyE;IAC/D,aAAa,qBAA4B;IACnD,sEAAsE;IAC5D,OAAO,qBAA4B;IACnC,WAAW,oBAA2B;IAEvB,UAAU,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IAEnE,KAAK,WAAS;IACd,UAAU,SAAuB;IACjC,cAAc,SAAgC;IAC9C,YAAY,EAAE,aAAa,EAAE,CAAM;IACnC,YAAY,EAAE;QAAE,KAAK,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,EAAE,CAAM;IACvE,OAAO,UAAS;IAChB,OAAO,SAAM;IACb,SAAS,SAAK;IACd,QAAQ,SAAK;IACb,KAAK,mDAAuB;IAC5B,WAAW,mDAAuB;gBAEF,aAAa,CAAC,EAAE,kBAAkB,YAAA;IAElE,IAAI,SAAS,yGAAiD;IAC9D,IAAI,UAAU,yGAAkD;IAChE,MAAM,CAAC,EAAE,EAAE,aAAa;IACxB,aAAa,CAAC,EAAE,EAAE,aAAa;IAC/B,cAAc,CAAC,EAAE,EAAE,aAAa;IAIhC,UAAU,CAAC,EAAE,EAAE,aAAa;IAE5B,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,eAAe,CAAM;IAE7B,QAAQ,CAAC,EAAE,EAAE,aAAa,GAAG,MAAM;IACnC,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAC7B,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAK7B,WAAW;IAoCX,eAAe;IAIf,kBAAkB,CAAC,CAAC,EAAE,SAAS;IAQ/B,cAAc,CAAC,CAAC,EAAE,SAAS;IAO3B,mBAAmB,CAAC,CAAC,EAAE,SAAS;IAQhC,eAAe,CAAC,CAAC,EAAE,UAAU;IAO7B,qBAAqB,CAAC,CAAC,EAAE,UAAU;IAWnC,qBAAqB;IAIrB,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa;IAOlD,uBAAuB,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,aAAa;IAQxD,gBAAgB,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO;yCA7JjC,gBAAgB;2CAAhB,gBAAgB;CAiK5B"}
|