@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,548 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ElementRef, ViewChild, Optional } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { isSameDay, getDayOfMonth, getMonth, calendarWeekNumber, maxLanes, lanesPerDay, startOfDay, formatDayLabel, getRecurrenceInstanceMetadata, } from '@bimetal/calendar-core';
|
|
4
|
+
import { getColFromX, EventRenderService } from '../../binding/index.js';
|
|
5
|
+
import { createClickIntent, toTimeStr, maxVisibleTimedInMonth } from '@bimetal/calendar-headless';
|
|
6
|
+
import { EventBarComponent } from '../../components/EventBar.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 = ["rowEl"];
|
|
11
|
+
function WeekRowComponent_div_4_ng_container_4_div_1_div_1_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
12
|
+
i0.ɵɵelementContainer(0);
|
|
13
|
+
} }
|
|
14
|
+
function WeekRowComponent_div_4_ng_container_4_div_1_div_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
15
|
+
i0.ɵɵelementContainerStart(0);
|
|
16
|
+
i0.ɵɵtemplate(1, WeekRowComponent_div_4_ng_container_4_div_1_div_1_ng_container_1_ng_container_1_Template, 1, 0, "ng-container", 19);
|
|
17
|
+
i0.ɵɵelementContainerEnd();
|
|
18
|
+
} if (rf & 2) {
|
|
19
|
+
const ev_r6 = i0.ɵɵnextContext().$implicit;
|
|
20
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
21
|
+
i0.ɵɵadvance();
|
|
22
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.contentTpl)("ngTemplateOutletContext", ctx_r2.tplCtx(ev_r6));
|
|
23
|
+
} }
|
|
24
|
+
function WeekRowComponent_div_4_ng_container_4_div_1_div_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
25
|
+
i0.ɵɵelement(0, "span", 20);
|
|
26
|
+
i0.ɵɵelementStart(1, "span", 21);
|
|
27
|
+
i0.ɵɵtext(2);
|
|
28
|
+
i0.ɵɵelementEnd();
|
|
29
|
+
i0.ɵɵelementStart(3, "span", 22);
|
|
30
|
+
i0.ɵɵtext(4);
|
|
31
|
+
i0.ɵɵelementEnd();
|
|
32
|
+
} if (rf & 2) {
|
|
33
|
+
const ev_r6 = i0.ɵɵnextContext().$implicit;
|
|
34
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
35
|
+
i0.ɵɵstyleProp("background-color", ctx_r2.getColor(ev_r6));
|
|
36
|
+
i0.ɵɵadvance(2);
|
|
37
|
+
i0.ɵɵtextInterpolate(ctx_r2.formatTime(ev_r6));
|
|
38
|
+
i0.ɵɵadvance(2);
|
|
39
|
+
i0.ɵɵtextInterpolate(ctx_r2.renderedTitle(ev_r6));
|
|
40
|
+
} }
|
|
41
|
+
function WeekRowComponent_div_4_ng_container_4_div_1_div_1_ng_container_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
42
|
+
i0.ɵɵelementContainer(0);
|
|
43
|
+
} }
|
|
44
|
+
function WeekRowComponent_div_4_ng_container_4_div_1_div_1_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
45
|
+
i0.ɵɵelementContainerStart(0);
|
|
46
|
+
i0.ɵɵtemplate(1, WeekRowComponent_div_4_ng_container_4_div_1_div_1_ng_container_4_ng_container_1_Template, 1, 0, "ng-container", 19);
|
|
47
|
+
i0.ɵɵelementContainerEnd();
|
|
48
|
+
} if (rf & 2) {
|
|
49
|
+
const ev_r6 = i0.ɵɵnextContext().$implicit;
|
|
50
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
51
|
+
i0.ɵɵadvance();
|
|
52
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.badgesTpl)("ngTemplateOutletContext", ctx_r2.tplCtx(ev_r6));
|
|
53
|
+
} }
|
|
54
|
+
function WeekRowComponent_div_4_ng_container_4_div_1_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
55
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
56
|
+
i0.ɵɵelementStart(0, "div", 17);
|
|
57
|
+
i0.ɵɵlistener("mousedown", function WeekRowComponent_div_4_ng_container_4_div_1_div_1_Template_div_mousedown_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.handleTimedMouseDown()); })("click", function WeekRowComponent_div_4_ng_container_4_div_1_div_1_Template_div_click_0_listener($event) { const ev_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.handleTimedClick($event, ev_r6)); })("dblclick", function WeekRowComponent_div_4_ng_container_4_div_1_div_1_Template_div_dblclick_0_listener($event) { const ev_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.handleTimedDoubleClick($event, ev_r6)); });
|
|
58
|
+
i0.ɵɵtemplate(1, WeekRowComponent_div_4_ng_container_4_div_1_div_1_ng_container_1_Template, 2, 2, "ng-container", 18)(2, WeekRowComponent_div_4_ng_container_4_div_1_div_1_ng_template_2_Template, 5, 4, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(4, WeekRowComponent_div_4_ng_container_4_div_1_div_1_ng_container_4_Template, 2, 2, "ng-container", 11);
|
|
59
|
+
i0.ɵɵelementEnd();
|
|
60
|
+
} if (rf & 2) {
|
|
61
|
+
const ev_r6 = ctx.$implicit;
|
|
62
|
+
const defaultTimed_r7 = i0.ɵɵreference(3);
|
|
63
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
64
|
+
i0.ɵɵclassMap("timed-entry" + (ctx_r2.isTimedSelected(ev_r6) ? " timed-entry--selected" : "") + ctx_r2.slotsClassName(ev_r6));
|
|
65
|
+
i0.ɵɵproperty("ngStyle", ctx_r2.slotsStyle(ev_r6))("title", ctx_r2.renderedTitle(ev_r6));
|
|
66
|
+
i0.ɵɵadvance();
|
|
67
|
+
i0.ɵɵproperty("ngIf", ctx_r2.contentTpl)("ngIfElse", defaultTimed_r7);
|
|
68
|
+
i0.ɵɵadvance(3);
|
|
69
|
+
i0.ɵɵproperty("ngIf", ctx_r2.badgesTpl);
|
|
70
|
+
} }
|
|
71
|
+
function WeekRowComponent_div_4_ng_container_4_div_1_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
72
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
73
|
+
i0.ɵɵelementStart(0, "div", 23);
|
|
74
|
+
i0.ɵɵlistener("mouseenter", function WeekRowComponent_div_4_ng_container_4_div_1_div_2_Template_div_mouseenter_0_listener() { i0.ɵɵrestoreView(_r8); const date_r4 = i0.ɵɵnextContext(3).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.onExpand(date_r4)); });
|
|
75
|
+
i0.ɵɵtext(1);
|
|
76
|
+
i0.ɵɵelementEnd();
|
|
77
|
+
} if (rf & 2) {
|
|
78
|
+
const timed_r9 = i0.ɵɵnextContext(2).ngIf;
|
|
79
|
+
const colIdx_r10 = i0.ɵɵnextContext().index;
|
|
80
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
81
|
+
i0.ɵɵadvance();
|
|
82
|
+
i0.ɵɵtextInterpolate2(" +", timed_r9.length - ctx_r2.maxVisible(colIdx_r10), " ", ctx_r2.config.locale.moreEvents, " ");
|
|
83
|
+
} }
|
|
84
|
+
function WeekRowComponent_div_4_ng_container_4_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
85
|
+
i0.ɵɵelementStart(0, "div", 14);
|
|
86
|
+
i0.ɵɵtemplate(1, WeekRowComponent_div_4_ng_container_4_div_1_div_1_Template, 5, 7, "div", 15)(2, WeekRowComponent_div_4_ng_container_4_div_1_div_2_Template, 2, 2, "div", 16);
|
|
87
|
+
i0.ɵɵelementEnd();
|
|
88
|
+
} if (rf & 2) {
|
|
89
|
+
const timed_r9 = i0.ɵɵnextContext().ngIf;
|
|
90
|
+
const ctx_r10 = i0.ɵɵnextContext();
|
|
91
|
+
const date_r4 = ctx_r10.$implicit;
|
|
92
|
+
const colIdx_r10 = ctx_r10.index;
|
|
93
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
94
|
+
i0.ɵɵadvance();
|
|
95
|
+
i0.ɵɵproperty("ngForOf", ctx_r2.getVisibleTimed(timed_r9, colIdx_r10, date_r4));
|
|
96
|
+
i0.ɵɵadvance();
|
|
97
|
+
i0.ɵɵproperty("ngIf", ctx_r2.hasOverflow(timed_r9, colIdx_r10) && !ctx_r2.isExpanded(date_r4));
|
|
98
|
+
} }
|
|
99
|
+
function WeekRowComponent_div_4_ng_container_4_div_2_div_4_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
100
|
+
i0.ɵɵelementContainer(0);
|
|
101
|
+
} }
|
|
102
|
+
function WeekRowComponent_div_4_ng_container_4_div_2_div_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
103
|
+
i0.ɵɵelementContainerStart(0);
|
|
104
|
+
i0.ɵɵtemplate(1, WeekRowComponent_div_4_ng_container_4_div_2_div_4_ng_container_1_ng_container_1_Template, 1, 0, "ng-container", 19);
|
|
105
|
+
i0.ɵɵelementContainerEnd();
|
|
106
|
+
} if (rf & 2) {
|
|
107
|
+
const ev_r14 = i0.ɵɵnextContext().$implicit;
|
|
108
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
109
|
+
i0.ɵɵadvance();
|
|
110
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.contentTpl)("ngTemplateOutletContext", ctx_r2.tplCtx(ev_r14));
|
|
111
|
+
} }
|
|
112
|
+
function WeekRowComponent_div_4_ng_container_4_div_2_div_4_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
113
|
+
i0.ɵɵelement(0, "span", 20);
|
|
114
|
+
i0.ɵɵelementStart(1, "span", 21);
|
|
115
|
+
i0.ɵɵtext(2);
|
|
116
|
+
i0.ɵɵelementEnd();
|
|
117
|
+
i0.ɵɵelementStart(3, "span", 22);
|
|
118
|
+
i0.ɵɵtext(4);
|
|
119
|
+
i0.ɵɵelementEnd();
|
|
120
|
+
} if (rf & 2) {
|
|
121
|
+
const ev_r14 = i0.ɵɵnextContext().$implicit;
|
|
122
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
123
|
+
i0.ɵɵstyleProp("background-color", ctx_r2.getColor(ev_r14));
|
|
124
|
+
i0.ɵɵadvance(2);
|
|
125
|
+
i0.ɵɵtextInterpolate(ctx_r2.formatTime(ev_r14));
|
|
126
|
+
i0.ɵɵadvance(2);
|
|
127
|
+
i0.ɵɵtextInterpolate(ctx_r2.renderedTitle(ev_r14));
|
|
128
|
+
} }
|
|
129
|
+
function WeekRowComponent_div_4_ng_container_4_div_2_div_4_ng_container_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
|
130
|
+
i0.ɵɵelementContainer(0);
|
|
131
|
+
} }
|
|
132
|
+
function WeekRowComponent_div_4_ng_container_4_div_2_div_4_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
133
|
+
i0.ɵɵelementContainerStart(0);
|
|
134
|
+
i0.ɵɵtemplate(1, WeekRowComponent_div_4_ng_container_4_div_2_div_4_ng_container_4_ng_container_1_Template, 1, 0, "ng-container", 19);
|
|
135
|
+
i0.ɵɵelementContainerEnd();
|
|
136
|
+
} if (rf & 2) {
|
|
137
|
+
const ev_r14 = i0.ɵɵnextContext().$implicit;
|
|
138
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
139
|
+
i0.ɵɵadvance();
|
|
140
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r2.badgesTpl)("ngTemplateOutletContext", ctx_r2.tplCtx(ev_r14));
|
|
141
|
+
} }
|
|
142
|
+
function WeekRowComponent_div_4_ng_container_4_div_2_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
143
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
144
|
+
i0.ɵɵelementStart(0, "div", 17);
|
|
145
|
+
i0.ɵɵlistener("mousedown", function WeekRowComponent_div_4_ng_container_4_div_2_div_4_Template_div_mousedown_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.handleTimedMouseDown()); })("click", function WeekRowComponent_div_4_ng_container_4_div_2_div_4_Template_div_click_0_listener($event) { const ev_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.handleTimedClick($event, ev_r14)); })("dblclick", function WeekRowComponent_div_4_ng_container_4_div_2_div_4_Template_div_dblclick_0_listener($event) { const ev_r14 = i0.ɵɵrestoreView(_r13).$implicit; const ctx_r2 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r2.handleTimedDoubleClick($event, ev_r14)); });
|
|
146
|
+
i0.ɵɵtemplate(1, WeekRowComponent_div_4_ng_container_4_div_2_div_4_ng_container_1_Template, 2, 2, "ng-container", 18)(2, WeekRowComponent_div_4_ng_container_4_div_2_div_4_ng_template_2_Template, 5, 4, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor)(4, WeekRowComponent_div_4_ng_container_4_div_2_div_4_ng_container_4_Template, 2, 2, "ng-container", 11);
|
|
147
|
+
i0.ɵɵelementEnd();
|
|
148
|
+
} if (rf & 2) {
|
|
149
|
+
const ev_r14 = ctx.$implicit;
|
|
150
|
+
const defaultTimedExp_r15 = i0.ɵɵreference(3);
|
|
151
|
+
const ctx_r2 = i0.ɵɵnextContext(4);
|
|
152
|
+
i0.ɵɵclassMap("timed-entry" + (ctx_r2.isTimedSelected(ev_r14) ? " timed-entry--selected" : "") + ctx_r2.slotsClassName(ev_r14));
|
|
153
|
+
i0.ɵɵproperty("ngStyle", ctx_r2.slotsStyle(ev_r14))("title", ctx_r2.renderedTitle(ev_r14));
|
|
154
|
+
i0.ɵɵadvance();
|
|
155
|
+
i0.ɵɵproperty("ngIf", ctx_r2.contentTpl)("ngIfElse", defaultTimedExp_r15);
|
|
156
|
+
i0.ɵɵadvance(3);
|
|
157
|
+
i0.ɵɵproperty("ngIf", ctx_r2.badgesTpl);
|
|
158
|
+
} }
|
|
159
|
+
function WeekRowComponent_div_4_ng_container_4_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
160
|
+
const _r12 = i0.ɵɵgetCurrentView();
|
|
161
|
+
i0.ɵɵelementStart(0, "div", 24);
|
|
162
|
+
i0.ɵɵlistener("mouseleave", function WeekRowComponent_div_4_ng_container_4_div_2_Template_div_mouseleave_0_listener() { i0.ɵɵrestoreView(_r12); const ctx_r2 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r2.onCollapse()); });
|
|
163
|
+
i0.ɵɵelementStart(1, "div", 10)(2, "span");
|
|
164
|
+
i0.ɵɵtext(3);
|
|
165
|
+
i0.ɵɵelementEnd()();
|
|
166
|
+
i0.ɵɵtemplate(4, WeekRowComponent_div_4_ng_container_4_div_2_div_4_Template, 5, 7, "div", 15);
|
|
167
|
+
i0.ɵɵelementEnd();
|
|
168
|
+
} if (rf & 2) {
|
|
169
|
+
const timed_r9 = i0.ɵɵnextContext().ngIf;
|
|
170
|
+
const date_r4 = i0.ɵɵnextContext().$implicit;
|
|
171
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
172
|
+
i0.ɵɵadvance(2);
|
|
173
|
+
i0.ɵɵclassMap("day-number" + (ctx_r2.isToday(date_r4) ? " today" : ""));
|
|
174
|
+
i0.ɵɵadvance();
|
|
175
|
+
i0.ɵɵtextInterpolate(ctx_r2.getDayOfMonth(date_r4));
|
|
176
|
+
i0.ɵɵadvance();
|
|
177
|
+
i0.ɵɵproperty("ngForOf", timed_r9);
|
|
178
|
+
} }
|
|
179
|
+
function WeekRowComponent_div_4_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
180
|
+
i0.ɵɵelementContainerStart(0);
|
|
181
|
+
i0.ɵɵtemplate(1, WeekRowComponent_div_4_ng_container_4_div_1_Template, 3, 2, "div", 12)(2, WeekRowComponent_div_4_ng_container_4_div_2_Template, 5, 4, "div", 13);
|
|
182
|
+
i0.ɵɵelementContainerEnd();
|
|
183
|
+
} if (rf & 2) {
|
|
184
|
+
const timed_r9 = ctx.ngIf;
|
|
185
|
+
const ctx_r10 = i0.ɵɵnextContext();
|
|
186
|
+
const date_r4 = ctx_r10.$implicit;
|
|
187
|
+
const colIdx_r10 = ctx_r10.index;
|
|
188
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
189
|
+
i0.ɵɵadvance();
|
|
190
|
+
i0.ɵɵproperty("ngIf", timed_r9.length > 0);
|
|
191
|
+
i0.ɵɵadvance();
|
|
192
|
+
i0.ɵɵproperty("ngIf", ctx_r2.isExpanded(date_r4) && ctx_r2.hasOverflow(timed_r9, colIdx_r10));
|
|
193
|
+
} }
|
|
194
|
+
function WeekRowComponent_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
195
|
+
const _r2 = i0.ɵɵgetCurrentView();
|
|
196
|
+
i0.ɵɵelementStart(0, "div", 9);
|
|
197
|
+
i0.ɵɵlistener("mousedown", function WeekRowComponent_div_4_Template_div_mousedown_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.click.markMouseDown()); })("click", function WeekRowComponent_div_4_Template_div_click_0_listener($event) { const date_r4 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.handleDayCellClick($event, date_r4)); })("dblclick", function WeekRowComponent_div_4_Template_div_dblclick_0_listener($event) { const date_r4 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.handleDayCellDoubleClick($event, date_r4)); });
|
|
198
|
+
i0.ɵɵelementStart(1, "div", 10)(2, "span");
|
|
199
|
+
i0.ɵɵtext(3);
|
|
200
|
+
i0.ɵɵelementEnd()();
|
|
201
|
+
i0.ɵɵtemplate(4, WeekRowComponent_div_4_ng_container_4_Template, 3, 2, "ng-container", 11);
|
|
202
|
+
i0.ɵɵelementEnd();
|
|
203
|
+
} if (rf & 2) {
|
|
204
|
+
const date_r4 = ctx.$implicit;
|
|
205
|
+
const colIdx_r10 = ctx.index;
|
|
206
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
207
|
+
i0.ɵɵclassMap("day-cell" + (!ctx_r2.inMonth(date_r4) ? " outside-month" : ""));
|
|
208
|
+
i0.ɵɵstyleProp("grid-column", colIdx_r10 + 2)("grid-row", "1 / -1")("--lane-count", ctx_r2.cellLanes(colIdx_r10));
|
|
209
|
+
i0.ɵɵadvance(2);
|
|
210
|
+
i0.ɵɵclassMap("day-number" + (ctx_r2.isToday(date_r4) ? " today" : ""));
|
|
211
|
+
i0.ɵɵadvance();
|
|
212
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r2.formatDayNumber(date_r4), " ");
|
|
213
|
+
i0.ɵɵadvance();
|
|
214
|
+
i0.ɵɵproperty("ngIf", ctx_r2.getTimedEvents(date_r4));
|
|
215
|
+
} }
|
|
216
|
+
function WeekRowComponent_cal_event_bar_7_Template(rf, ctx) { if (rf & 1) {
|
|
217
|
+
const _r16 = i0.ɵɵgetCurrentView();
|
|
218
|
+
i0.ɵɵelementStart(0, "cal-event-bar", 25);
|
|
219
|
+
i0.ɵɵlistener("eventClick", function WeekRowComponent_cal_event_bar_7_Template_cal_event_bar_eventClick_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.eventClick.emit($event)); })("selectEvent", function WeekRowComponent_cal_event_bar_7_Template_cal_event_bar_selectEvent_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.selectEvent.emit($event)); })("dragStart", function WeekRowComponent_cal_event_bar_7_Template_cal_event_bar_dragStart_0_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.dragStartEv.emit($event)); })("dragEnd", function WeekRowComponent_cal_event_bar_7_Template_cal_event_bar_dragEnd_0_listener() { i0.ɵɵrestoreView(_r16); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.dragEnd.emit()); });
|
|
220
|
+
i0.ɵɵelementEnd();
|
|
221
|
+
} if (rf & 2) {
|
|
222
|
+
const layoutItem_r17 = ctx.$implicit;
|
|
223
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
224
|
+
i0.ɵɵproperty("item", layoutItem_r17)("weekDates", ctx_r2.weekDates)("ghost", ctx_r2.isDragged(layoutItem_r17))("clickThresholdMs", ctx_r2.config.clickThresholdMs)("selectedEventId", ctx_r2.selectedEventId)("selectedInstanceDate", ctx_r2.selectedInstanceDate);
|
|
225
|
+
} }
|
|
226
|
+
export class WeekRowComponent {
|
|
227
|
+
renderService;
|
|
228
|
+
weekDates = [];
|
|
229
|
+
items = [];
|
|
230
|
+
timedByDay = new Map();
|
|
231
|
+
currentYear = 0;
|
|
232
|
+
currentMonth = 0;
|
|
233
|
+
config;
|
|
234
|
+
today;
|
|
235
|
+
// B-CAL-1: the controller-rebuilt dragged event; only the ghost flag reads it.
|
|
236
|
+
previewEvent = null;
|
|
237
|
+
// B-CAL-3: hover-expanded month cell (day epochMs), owned by the controller.
|
|
238
|
+
// The row holds NO local expand state — it reflects this input and bubbles
|
|
239
|
+
// the expand/collapse intents up to the controller.
|
|
240
|
+
expandedMonthDay = null;
|
|
241
|
+
selectedEventId = null;
|
|
242
|
+
selectedInstanceDate = undefined;
|
|
243
|
+
eventClick = new EventEmitter();
|
|
244
|
+
selectEvent = new EventEmitter();
|
|
245
|
+
clearSelection = new EventEmitter();
|
|
246
|
+
dayCellClick = new EventEmitter();
|
|
247
|
+
dropEvent = new EventEmitter();
|
|
248
|
+
dragOver = new EventEmitter();
|
|
249
|
+
/** Drop-Zone wurde verlassen (dragleave) — Preview visuell ausräumen. */
|
|
250
|
+
hidePreviewEv = new EventEmitter();
|
|
251
|
+
/** Native `dragend` der Source — Drag-Session vollständig beendet. */
|
|
252
|
+
dragEnd = new EventEmitter();
|
|
253
|
+
dragStartEv = new EventEmitter();
|
|
254
|
+
/** B-CAL-3: bubble the hover-expand intent (day epochMs) to the controller. */
|
|
255
|
+
expandMonthCell = new EventEmitter();
|
|
256
|
+
collapseMonthCell = new EventEmitter();
|
|
257
|
+
rowEl;
|
|
258
|
+
click = createClickIntent();
|
|
259
|
+
timedClick = createClickIntent();
|
|
260
|
+
getDayOfMonth = getDayOfMonth;
|
|
261
|
+
constructor(renderService) {
|
|
262
|
+
this.renderService = renderService;
|
|
263
|
+
}
|
|
264
|
+
get badgesTpl() { return this.renderService?.eventBadgesTpl; }
|
|
265
|
+
get contentTpl() { return this.renderService?.eventContentTpl; }
|
|
266
|
+
tplCtx(ev) { return this.renderService?.buildTemplateContext(ev); }
|
|
267
|
+
renderedTitle(ev) { return this.renderService?.resolveTitle(ev) ?? ev.title; }
|
|
268
|
+
slotsClassName(ev) {
|
|
269
|
+
const cls = this.renderService?.resolveClassName(ev) ?? '';
|
|
270
|
+
return cls ? ' ' + cls : '';
|
|
271
|
+
}
|
|
272
|
+
slotsStyle(ev) { return this.renderService?.resolveStyle(ev); }
|
|
273
|
+
get lanes() { return maxLanes(this.items); }
|
|
274
|
+
get lanesByCol() { return lanesPerDay(this.items, this.weekDates.length); }
|
|
275
|
+
get weekNumber() { return calendarWeekNumber(this.weekDates[0]); }
|
|
276
|
+
cellLanes(colIdx) { return this.lanesByCol[colIdx] ?? 0; }
|
|
277
|
+
maxVisible(colIdx) { return maxVisibleTimedInMonth(this.cellLanes(colIdx)); }
|
|
278
|
+
// B-CAL-3: expansion state lives in the controller; derive it from the input.
|
|
279
|
+
dayMsOf(date) { return startOfDay(date).epochMs; }
|
|
280
|
+
isExpanded(date) { return this.expandedMonthDay === this.dayMsOf(date); }
|
|
281
|
+
onExpand(date) { this.expandMonthCell.emit(this.dayMsOf(date)); }
|
|
282
|
+
onCollapse() { this.collapseMonthCell.emit(); }
|
|
283
|
+
isToday(date) { return isSameDay(date, this.today); }
|
|
284
|
+
inMonth(date) { return getMonth(date) === this.currentMonth; }
|
|
285
|
+
// Stable identity for the day cells: without trackBy, any change-detection pass
|
|
286
|
+
// that yields fresh CalendarDateTime objects (e.g. a click → markChanged → grid
|
|
287
|
+
// recompute) re-creates the cell nodes mid-gesture, dropping the in-flight
|
|
288
|
+
// double-click — which is why a real browser create-via-dblclick never fired.
|
|
289
|
+
trackDay(_, date) { return date.epochMs; }
|
|
290
|
+
formatDayNumber(date) {
|
|
291
|
+
return formatDayLabel(date, this.config.locale.code);
|
|
292
|
+
}
|
|
293
|
+
getTimedEvents(date) {
|
|
294
|
+
return this.timedByDay.get(startOfDay(date).epochMs) ?? [];
|
|
295
|
+
}
|
|
296
|
+
getVisibleTimed(timed, colIdx, date) {
|
|
297
|
+
return this.isExpanded(date) ? timed : timed.slice(0, this.maxVisible(colIdx));
|
|
298
|
+
}
|
|
299
|
+
hasOverflow(timed, colIdx) {
|
|
300
|
+
return timed.length > this.maxVisible(colIdx);
|
|
301
|
+
}
|
|
302
|
+
getColor(ev) {
|
|
303
|
+
return ev.metadata.color ?? '#007AFF';
|
|
304
|
+
}
|
|
305
|
+
formatTime(ev) {
|
|
306
|
+
return toTimeStr(ev.timeRange.start);
|
|
307
|
+
}
|
|
308
|
+
isDragged(item) {
|
|
309
|
+
return this.previewEvent?.id === item.segment.event.id;
|
|
310
|
+
}
|
|
311
|
+
handleDragOver(e) {
|
|
312
|
+
e.preventDefault();
|
|
313
|
+
e.dataTransfer.dropEffect = 'move';
|
|
314
|
+
if (!this.rowEl)
|
|
315
|
+
return;
|
|
316
|
+
const col = getColFromX(e.clientX, this.rowEl.nativeElement.getBoundingClientRect());
|
|
317
|
+
this.dragOver.emit(this.weekDates[col]);
|
|
318
|
+
}
|
|
319
|
+
handleDragLeave(e) {
|
|
320
|
+
const row = e.currentTarget;
|
|
321
|
+
const rect = row.getBoundingClientRect();
|
|
322
|
+
if (e.clientX < rect.left || e.clientX > rect.right || e.clientY < rect.top || e.clientY > rect.bottom) {
|
|
323
|
+
this.hidePreviewEv.emit();
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
handleDrop(e) {
|
|
327
|
+
e.preventDefault();
|
|
328
|
+
if (!this.rowEl)
|
|
329
|
+
return;
|
|
330
|
+
const col = getColFromX(e.clientX, this.rowEl.nativeElement.getBoundingClientRect());
|
|
331
|
+
this.dropEvent.emit({ event: e, date: this.weekDates[col] });
|
|
332
|
+
}
|
|
333
|
+
handleDayCellClick(e, date) {
|
|
334
|
+
if (!this.click.accept(this.config.clickThresholdMs))
|
|
335
|
+
return;
|
|
336
|
+
// Single click on an empty cell deselects when something is selected,
|
|
337
|
+
// otherwise it is a no-op. Create-dialog moves to dblclick.
|
|
338
|
+
if (this.selectedEventId !== null)
|
|
339
|
+
this.clearSelection.emit();
|
|
340
|
+
}
|
|
341
|
+
handleDayCellDoubleClick(e, date) {
|
|
342
|
+
if (!this.click.accept(this.config.clickThresholdMs))
|
|
343
|
+
return;
|
|
344
|
+
const rect = e.currentTarget.getBoundingClientRect();
|
|
345
|
+
this.dayCellClick.emit({ date, rect });
|
|
346
|
+
}
|
|
347
|
+
handleTimedMouseDown() {
|
|
348
|
+
this.timedClick.markMouseDown();
|
|
349
|
+
}
|
|
350
|
+
handleTimedClick(e, ev) {
|
|
351
|
+
e.stopPropagation();
|
|
352
|
+
if (!this.timedClick.accept(this.config.clickThresholdMs))
|
|
353
|
+
return;
|
|
354
|
+
const instanceDate = getRecurrenceInstanceMetadata(ev)?.instanceDate;
|
|
355
|
+
this.selectEvent.emit({ eventId: ev.id, instanceDate });
|
|
356
|
+
}
|
|
357
|
+
handleTimedDoubleClick(e, ev) {
|
|
358
|
+
e.stopPropagation();
|
|
359
|
+
if (!this.timedClick.accept(this.config.clickThresholdMs))
|
|
360
|
+
return;
|
|
361
|
+
const rect = e.currentTarget.getBoundingClientRect();
|
|
362
|
+
const instanceDate = getRecurrenceInstanceMetadata(ev)?.instanceDate;
|
|
363
|
+
this.eventClick.emit({ eventId: ev.id, rect, instanceDate });
|
|
364
|
+
}
|
|
365
|
+
isTimedSelected(ev) {
|
|
366
|
+
const id = getRecurrenceInstanceMetadata(ev)?.instanceDate;
|
|
367
|
+
return this.selectedEventId === ev.id && this.selectedInstanceDate === id;
|
|
368
|
+
}
|
|
369
|
+
static ɵfac = function WeekRowComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || WeekRowComponent)(i0.ɵɵdirectiveInject(i1.EventRenderService, 8)); };
|
|
370
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WeekRowComponent, selectors: [["cal-week-row"]], viewQuery: function WeekRowComponent_Query(rf, ctx) { if (rf & 1) {
|
|
371
|
+
i0.ɵɵviewQuery(_c0, 5);
|
|
372
|
+
} if (rf & 2) {
|
|
373
|
+
let _t;
|
|
374
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.rowEl = _t.first);
|
|
375
|
+
} }, hostAttrs: [2, "display", "contents"], inputs: { weekDates: "weekDates", items: "items", timedByDay: "timedByDay", currentYear: "currentYear", currentMonth: "currentMonth", config: "config", today: "today", previewEvent: "previewEvent", expandedMonthDay: "expandedMonthDay", selectedEventId: "selectedEventId", selectedInstanceDate: "selectedInstanceDate" }, outputs: { eventClick: "eventClick", selectEvent: "selectEvent", clearSelection: "clearSelection", dayCellClick: "dayCellClick", dropEvent: "dropEvent", dragOver: "dragOver", hidePreviewEv: "hidePreviewEv", dragEnd: "dragEnd", dragStartEv: "dragStartEv", expandMonthCell: "expandMonthCell", collapseMonthCell: "collapseMonthCell" }, decls: 8, vars: 6, consts: [["rowEl", ""], ["defaultTimed", ""], ["defaultTimedExp", ""], [1, "week-row", 3, "dragover", "dragleave", "drop"], [1, "week-number"], [3, "class", "grid-column", "grid-row", "--lane-count", "mousedown", "click", "dblclick", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "events-overlay"], [1, "events-grid"], [3, "item", "weekDates", "ghost", "clickThresholdMs", "selectedEventId", "selectedInstanceDate", "eventClick", "selectEvent", "dragStart", "dragEnd", 4, "ngFor", "ngForOf"], [3, "mousedown", "click", "dblclick"], [1, "day-number-container"], [4, "ngIf"], ["class", "day-cell__timed", 4, "ngIf"], ["class", "day-cell__expand-overlay", 3, "mouseleave", 4, "ngIf"], [1, "day-cell__timed"], [3, "class", "ngStyle", "title", "mousedown", "click", "dblclick", 4, "ngFor", "ngForOf"], ["class", "timed-overflow", 3, "mouseenter", 4, "ngIf"], [3, "mousedown", "click", "dblclick", "ngStyle", "title"], [4, "ngIf", "ngIfElse"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "timed-entry__dot"], [1, "timed-entry__time"], [1, "timed-entry__title"], [1, "timed-overflow", 3, "mouseenter"], [1, "day-cell__expand-overlay", 3, "mouseleave"], [3, "eventClick", "selectEvent", "dragStart", "dragEnd", "item", "weekDates", "ghost", "clickThresholdMs", "selectedEventId", "selectedInstanceDate"]], template: function WeekRowComponent_Template(rf, ctx) { if (rf & 1) {
|
|
376
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
377
|
+
i0.ɵɵelementStart(0, "div", 3, 0);
|
|
378
|
+
i0.ɵɵlistener("dragover", function WeekRowComponent_Template_div_dragover_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleDragOver($event)); })("dragleave", function WeekRowComponent_Template_div_dragleave_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleDragLeave($event)); })("drop", function WeekRowComponent_Template_div_drop_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleDrop($event)); });
|
|
379
|
+
i0.ɵɵelementStart(2, "div", 4);
|
|
380
|
+
i0.ɵɵtext(3);
|
|
381
|
+
i0.ɵɵelementEnd();
|
|
382
|
+
i0.ɵɵtemplate(4, WeekRowComponent_div_4_Template, 5, 12, "div", 5);
|
|
383
|
+
i0.ɵɵelementStart(5, "div", 6)(6, "div", 7);
|
|
384
|
+
i0.ɵɵtemplate(7, WeekRowComponent_cal_event_bar_7_Template, 1, 6, "cal-event-bar", 8);
|
|
385
|
+
i0.ɵɵelementEnd()()();
|
|
386
|
+
} if (rf & 2) {
|
|
387
|
+
i0.ɵɵstyleProp("--lane-count", ctx.lanes);
|
|
388
|
+
i0.ɵɵadvance(3);
|
|
389
|
+
i0.ɵɵtextInterpolate(ctx.weekNumber);
|
|
390
|
+
i0.ɵɵadvance();
|
|
391
|
+
i0.ɵɵproperty("ngForOf", ctx.weekDates)("ngForTrackBy", ctx.trackDay);
|
|
392
|
+
i0.ɵɵadvance(3);
|
|
393
|
+
i0.ɵɵproperty("ngForOf", ctx.items);
|
|
394
|
+
} }, dependencies: [CommonModule, i2.NgForOf, i2.NgIf, i2.NgTemplateOutlet, i2.NgStyle, EventBarComponent], encapsulation: 2 });
|
|
395
|
+
}
|
|
396
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WeekRowComponent, [{
|
|
397
|
+
type: Component,
|
|
398
|
+
args: [{
|
|
399
|
+
selector: 'cal-week-row',
|
|
400
|
+
standalone: true,
|
|
401
|
+
host: { style: 'display: contents' },
|
|
402
|
+
imports: [CommonModule, EventBarComponent],
|
|
403
|
+
template: `
|
|
404
|
+
<div #rowEl class="week-row"
|
|
405
|
+
[style.--lane-count]="lanes"
|
|
406
|
+
(dragover)="handleDragOver($event)"
|
|
407
|
+
(dragleave)="handleDragLeave($event)"
|
|
408
|
+
(drop)="handleDrop($event)">
|
|
409
|
+
<div class="week-number">{{ weekNumber }}</div>
|
|
410
|
+
|
|
411
|
+
<div *ngFor="let date of weekDates; let colIdx = index; trackBy: trackDay"
|
|
412
|
+
[class]="'day-cell' + (!inMonth(date) ? ' outside-month' : '')"
|
|
413
|
+
[style.grid-column]="colIdx + 2"
|
|
414
|
+
[style.grid-row]="'1 / -1'"
|
|
415
|
+
[style.--lane-count]="cellLanes(colIdx)"
|
|
416
|
+
(mousedown)="click.markMouseDown()"
|
|
417
|
+
(click)="handleDayCellClick($event, date)"
|
|
418
|
+
(dblclick)="handleDayCellDoubleClick($event, date)">
|
|
419
|
+
<div class="day-number-container">
|
|
420
|
+
<span [class]="'day-number' + (isToday(date) ? ' today' : '')">
|
|
421
|
+
{{ formatDayNumber(date) }}
|
|
422
|
+
</span>
|
|
423
|
+
</div>
|
|
424
|
+
<ng-container *ngIf="getTimedEvents(date) as timed">
|
|
425
|
+
<div *ngIf="timed.length > 0" class="day-cell__timed">
|
|
426
|
+
<div *ngFor="let ev of getVisibleTimed(timed, colIdx, date)"
|
|
427
|
+
[class]="'timed-entry' + (isTimedSelected(ev) ? ' timed-entry--selected' : '') + slotsClassName(ev)"
|
|
428
|
+
[ngStyle]="slotsStyle(ev)"
|
|
429
|
+
(mousedown)="handleTimedMouseDown()"
|
|
430
|
+
(click)="handleTimedClick($event, ev)"
|
|
431
|
+
(dblclick)="handleTimedDoubleClick($event, ev)"
|
|
432
|
+
[title]="renderedTitle(ev)">
|
|
433
|
+
<ng-container *ngIf="contentTpl; else defaultTimed">
|
|
434
|
+
<ng-container *ngTemplateOutlet="contentTpl; context: tplCtx(ev)"></ng-container>
|
|
435
|
+
</ng-container>
|
|
436
|
+
<ng-template #defaultTimed>
|
|
437
|
+
<span class="timed-entry__dot" [style.background-color]="getColor(ev)"></span>
|
|
438
|
+
<span class="timed-entry__time">{{ formatTime(ev) }}</span>
|
|
439
|
+
<span class="timed-entry__title">{{ renderedTitle(ev) }}</span>
|
|
440
|
+
</ng-template>
|
|
441
|
+
<ng-container *ngIf="badgesTpl">
|
|
442
|
+
<ng-container *ngTemplateOutlet="badgesTpl; context: tplCtx(ev)"></ng-container>
|
|
443
|
+
</ng-container>
|
|
444
|
+
</div>
|
|
445
|
+
<div *ngIf="hasOverflow(timed, colIdx) && !isExpanded(date)" class="timed-overflow"
|
|
446
|
+
(mouseenter)="onExpand(date)">
|
|
447
|
+
+{{ timed.length - maxVisible(colIdx) }} {{ config.locale.moreEvents }}
|
|
448
|
+
</div>
|
|
449
|
+
</div>
|
|
450
|
+
<div *ngIf="isExpanded(date) && hasOverflow(timed, colIdx)" class="day-cell__expand-overlay"
|
|
451
|
+
(mouseleave)="onCollapse()">
|
|
452
|
+
<div class="day-number-container">
|
|
453
|
+
<span [class]="'day-number' + (isToday(date) ? ' today' : '')">{{ getDayOfMonth(date) }}</span>
|
|
454
|
+
</div>
|
|
455
|
+
<div *ngFor="let ev of timed"
|
|
456
|
+
[class]="'timed-entry' + (isTimedSelected(ev) ? ' timed-entry--selected' : '') + slotsClassName(ev)"
|
|
457
|
+
[ngStyle]="slotsStyle(ev)"
|
|
458
|
+
(mousedown)="handleTimedMouseDown()"
|
|
459
|
+
(click)="handleTimedClick($event, ev)"
|
|
460
|
+
(dblclick)="handleTimedDoubleClick($event, ev)"
|
|
461
|
+
[title]="renderedTitle(ev)">
|
|
462
|
+
<ng-container *ngIf="contentTpl; else defaultTimedExp">
|
|
463
|
+
<ng-container *ngTemplateOutlet="contentTpl; context: tplCtx(ev)"></ng-container>
|
|
464
|
+
</ng-container>
|
|
465
|
+
<ng-template #defaultTimedExp>
|
|
466
|
+
<span class="timed-entry__dot" [style.background-color]="getColor(ev)"></span>
|
|
467
|
+
<span class="timed-entry__time">{{ formatTime(ev) }}</span>
|
|
468
|
+
<span class="timed-entry__title">{{ renderedTitle(ev) }}</span>
|
|
469
|
+
</ng-template>
|
|
470
|
+
<ng-container *ngIf="badgesTpl">
|
|
471
|
+
<ng-container *ngTemplateOutlet="badgesTpl; context: tplCtx(ev)"></ng-container>
|
|
472
|
+
</ng-container>
|
|
473
|
+
</div>
|
|
474
|
+
</div>
|
|
475
|
+
</ng-container>
|
|
476
|
+
</div>
|
|
477
|
+
|
|
478
|
+
<div class="events-overlay">
|
|
479
|
+
<div class="events-grid">
|
|
480
|
+
<cal-event-bar *ngFor="let layoutItem of items; let idx = index"
|
|
481
|
+
[item]="layoutItem"
|
|
482
|
+
[weekDates]="weekDates"
|
|
483
|
+
[ghost]="isDragged(layoutItem)"
|
|
484
|
+
[clickThresholdMs]="config.clickThresholdMs"
|
|
485
|
+
[selectedEventId]="selectedEventId"
|
|
486
|
+
[selectedInstanceDate]="selectedInstanceDate"
|
|
487
|
+
(eventClick)="eventClick.emit($event)"
|
|
488
|
+
(selectEvent)="selectEvent.emit($event)"
|
|
489
|
+
(dragStart)="dragStartEv.emit($event)"
|
|
490
|
+
(dragEnd)="dragEnd.emit()">
|
|
491
|
+
</cal-event-bar>
|
|
492
|
+
</div>
|
|
493
|
+
</div>
|
|
494
|
+
</div>
|
|
495
|
+
`,
|
|
496
|
+
}]
|
|
497
|
+
}], () => [{ type: i1.EventRenderService, decorators: [{
|
|
498
|
+
type: Optional
|
|
499
|
+
}] }], { weekDates: [{
|
|
500
|
+
type: Input
|
|
501
|
+
}], items: [{
|
|
502
|
+
type: Input
|
|
503
|
+
}], timedByDay: [{
|
|
504
|
+
type: Input
|
|
505
|
+
}], currentYear: [{
|
|
506
|
+
type: Input
|
|
507
|
+
}], currentMonth: [{
|
|
508
|
+
type: Input
|
|
509
|
+
}], config: [{
|
|
510
|
+
type: Input
|
|
511
|
+
}], today: [{
|
|
512
|
+
type: Input
|
|
513
|
+
}], previewEvent: [{
|
|
514
|
+
type: Input
|
|
515
|
+
}], expandedMonthDay: [{
|
|
516
|
+
type: Input
|
|
517
|
+
}], selectedEventId: [{
|
|
518
|
+
type: Input
|
|
519
|
+
}], selectedInstanceDate: [{
|
|
520
|
+
type: Input
|
|
521
|
+
}], eventClick: [{
|
|
522
|
+
type: Output
|
|
523
|
+
}], selectEvent: [{
|
|
524
|
+
type: Output
|
|
525
|
+
}], clearSelection: [{
|
|
526
|
+
type: Output
|
|
527
|
+
}], dayCellClick: [{
|
|
528
|
+
type: Output
|
|
529
|
+
}], dropEvent: [{
|
|
530
|
+
type: Output
|
|
531
|
+
}], dragOver: [{
|
|
532
|
+
type: Output
|
|
533
|
+
}], hidePreviewEv: [{
|
|
534
|
+
type: Output
|
|
535
|
+
}], dragEnd: [{
|
|
536
|
+
type: Output
|
|
537
|
+
}], dragStartEv: [{
|
|
538
|
+
type: Output
|
|
539
|
+
}], expandMonthCell: [{
|
|
540
|
+
type: Output
|
|
541
|
+
}], collapseMonthCell: [{
|
|
542
|
+
type: Output
|
|
543
|
+
}], rowEl: [{
|
|
544
|
+
type: ViewChild,
|
|
545
|
+
args: ['rowEl']
|
|
546
|
+
}] }); })();
|
|
547
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WeekRowComponent, { className: "WeekRowComponent", filePath: "views/month/weekrow.ts", lineNumber: 113 }); })();
|
|
548
|
+
//# sourceMappingURL=WeekRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WeekRow.js","sourceRoot":"","sources":["../../../src/views/month/WeekRow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { EventEmitter, AfterViewInit, ElementRef } from '@angular/core';
|
|
2
|
+
import type { CalendarEvent, CalendarDateTime, Resource } from '@bimetal/calendar-core';
|
|
3
|
+
import type { CalendarConfig } from '../../binding/index.js';
|
|
4
|
+
import { type TimeEventLayout } from '../week/TimeEvent.js';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class ResourceViewComponent implements AfterViewInit {
|
|
7
|
+
currentDate: CalendarDateTime;
|
|
8
|
+
events: CalendarEvent[];
|
|
9
|
+
visibleResources: readonly Resource[];
|
|
10
|
+
config: CalendarConfig;
|
|
11
|
+
previewEvent: CalendarEvent | 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
|
+
resourceCellClick: EventEmitter<{
|
|
25
|
+
date: CalendarDateTime;
|
|
26
|
+
time: string;
|
|
27
|
+
resourceId: string;
|
|
28
|
+
rect: DOMRect;
|
|
29
|
+
}>;
|
|
30
|
+
resourceDrop: EventEmitter<{
|
|
31
|
+
event: DragEvent;
|
|
32
|
+
date: CalendarDateTime;
|
|
33
|
+
time: string;
|
|
34
|
+
resourceId: string;
|
|
35
|
+
}>;
|
|
36
|
+
dragOverDateTime: EventEmitter<{
|
|
37
|
+
date: CalendarDateTime;
|
|
38
|
+
time: string;
|
|
39
|
+
}>;
|
|
40
|
+
/** Drop-Zone wurde verlassen (dragleave) — Preview visuell ausräumen. */
|
|
41
|
+
hidePreviewEv: EventEmitter<void>;
|
|
42
|
+
/** Native `dragend` der Source — Drag-Session vollständig beendet. */
|
|
43
|
+
dragEnd: EventEmitter<void>;
|
|
44
|
+
dragStartEv: EventEmitter<any>;
|
|
45
|
+
timeGridEl: ElementRef<HTMLDivElement>;
|
|
46
|
+
gridInnerEl: ElementRef<HTMLDivElement>;
|
|
47
|
+
hours: number[];
|
|
48
|
+
hourHeight: number;
|
|
49
|
+
timeLabelWidth: number;
|
|
50
|
+
click: import("@bimetal/calendar-headless").ClickIntent;
|
|
51
|
+
ngAfterViewInit(): void;
|
|
52
|
+
get today(): CalendarDateTime;
|
|
53
|
+
get isToday(): boolean;
|
|
54
|
+
get dayName(): string;
|
|
55
|
+
get nowHours(): number;
|
|
56
|
+
get colWidth(): string;
|
|
57
|
+
colLeft(idx: number): string;
|
|
58
|
+
/**
|
|
59
|
+
* B-CAL-1: swap in the controller-rebuilt event so the ghost moves with the
|
|
60
|
+
* cursor — geometry comes from the controller, the view parses nothing.
|
|
61
|
+
*/
|
|
62
|
+
get displayEvents(): CalendarEvent[];
|
|
63
|
+
/**
|
|
64
|
+
* Lane-Layout pro Resource durch den Core (Pilot-Direktive 2026-06-21).
|
|
65
|
+
* dayCol = Resource-Index, lane/laneCount aus layoutTimed pro Resource
|
|
66
|
+
* — Überlapper in r1 dürfen die Spalte r2 nicht halbieren.
|
|
67
|
+
*/
|
|
68
|
+
get timedEntries(): {
|
|
69
|
+
event: CalendarEvent;
|
|
70
|
+
layout: TimeEventLayout;
|
|
71
|
+
}[];
|
|
72
|
+
resourceFromX(clientX: number, gridInner: HTMLElement): string | null;
|
|
73
|
+
isOffHour(h: number): boolean;
|
|
74
|
+
formatHour(h: number): string;
|
|
75
|
+
onColClick(e: MouseEvent): void;
|
|
76
|
+
onColDoubleClick(e: MouseEvent, resourceId: string): void;
|
|
77
|
+
onGridDragOver(e: DragEvent): void;
|
|
78
|
+
onGridDrop(e: DragEvent): void;
|
|
79
|
+
onGridDragLeave(e: DragEvent): void;
|
|
80
|
+
trackResource(_: number, r: Resource): string;
|
|
81
|
+
trackEvent(_: number, ev: CalendarEvent): string;
|
|
82
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ResourceViewComponent, never>;
|
|
83
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ResourceViewComponent, "cal-resource-view", never, { "currentDate": { "alias": "currentDate"; "required": false; }; "events": { "alias": "events"; "required": false; }; "visibleResources": { "alias": "visibleResources"; "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"; "resourceCellClick": "resourceCellClick"; "resourceDrop": "resourceDrop"; "dragOverDateTime": "dragOverDateTime"; "hidePreviewEv": "hidePreviewEv"; "dragEnd": "dragEnd"; "dragStartEv": "dragStartEv"; }, never, never, true, never>;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=ResourceView.d.ts.map
|