@bimetal/calendar-angular-components 0.34.0 → 0.36.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 +57 -129
- package/README.md +1 -1
- package/dist/binding/controller.d.ts +10 -1
- package/dist/binding/controller.d.ts.map +1 -1
- package/dist/binding/controller.js +11 -1
- package/dist/binding/controller.js.map +1 -1
- package/dist/binding/index.d.ts +5 -5
- package/dist/binding/index.d.ts.map +1 -1
- package/dist/binding/index.js +5 -5
- package/dist/binding/index.js.map +1 -1
- package/dist/binding/services/event-render.service.d.ts +9 -0
- package/dist/binding/services/event-render.service.d.ts.map +1 -1
- package/dist/binding/services/event-render.service.js +11 -0
- package/dist/binding/services/event-render.service.js.map +1 -1
- package/dist/binding/services/pointer-gesture.service.d.ts +26 -0
- package/dist/binding/services/pointer-gesture.service.d.ts.map +1 -0
- package/dist/binding/services/pointer-gesture.service.js +37 -0
- package/dist/binding/services/pointer-gesture.service.js.map +1 -0
- package/dist/components/Calendar.d.ts +47 -8
- package/dist/components/Calendar.d.ts.map +1 -1
- package/dist/components/Calendar.js +183 -63
- package/dist/components/Calendar.js.map +1 -1
- package/dist/components/CalendarHeader.d.ts +12 -1
- package/dist/components/CalendarHeader.d.ts.map +1 -1
- package/dist/components/CalendarHeader.js +66 -14
- package/dist/components/CalendarHeader.js.map +1 -1
- package/dist/components/CategoryFilter.d.ts +4 -0
- package/dist/components/CategoryFilter.d.ts.map +1 -1
- package/dist/components/CategoryFilter.js +10 -5
- package/dist/components/CategoryFilter.js.map +1 -1
- package/dist/components/EventBar.d.ts +15 -4
- package/dist/components/EventBar.d.ts.map +1 -1
- package/dist/components/EventBar.js +108 -37
- package/dist/components/EventBar.js.map +1 -1
- package/dist/components/EventDialog.d.ts +11 -4
- package/dist/components/EventDialog.d.ts.map +1 -1
- package/dist/components/EventDialog.js +86 -44
- package/dist/components/EventDialog.js.map +1 -1
- package/dist/components/EventHistory.d.ts +14 -9
- package/dist/components/EventHistory.d.ts.map +1 -1
- package/dist/components/EventHistory.js +59 -55
- package/dist/components/EventHistory.js.map +1 -1
- package/dist/components/UndoToast.d.ts +9 -5
- package/dist/components/UndoToast.d.ts.map +1 -1
- package/dist/components/UndoToast.js +16 -27
- package/dist/components/UndoToast.js.map +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/dist/styles/index.css.d.ts +3 -0
- package/dist/views/agenda/AgendaView.d.ts +1 -0
- package/dist/views/agenda/AgendaView.d.ts.map +1 -1
- package/dist/views/agenda/AgendaView.js +9 -2
- package/dist/views/agenda/AgendaView.js.map +1 -1
- package/dist/views/day/DayView.d.ts +30 -4
- package/dist/views/day/DayView.d.ts.map +1 -1
- package/dist/views/day/DayView.js +61 -17
- package/dist/views/day/DayView.js.map +1 -1
- package/dist/views/month/MonthView.d.ts +21 -4
- package/dist/views/month/MonthView.d.ts.map +1 -1
- package/dist/views/month/MonthView.js +66 -12
- package/dist/views/month/MonthView.js.map +1 -1
- package/dist/views/month/WeekRow.d.ts +28 -4
- package/dist/views/month/WeekRow.d.ts.map +1 -1
- package/dist/views/month/WeekRow.js +100 -29
- package/dist/views/month/WeekRow.js.map +1 -1
- package/dist/views/resource/ResourceView.d.ts +32 -1
- package/dist/views/resource/ResourceView.d.ts.map +1 -1
- package/dist/views/resource/ResourceView.js +84 -22
- package/dist/views/resource/ResourceView.js.map +1 -1
- package/dist/views/timeline/TimelineView.d.ts +29 -3
- package/dist/views/timeline/TimelineView.d.ts.map +1 -1
- package/dist/views/timeline/TimelineView.js +83 -17
- package/dist/views/timeline/TimelineView.js.map +1 -1
- package/dist/views/week/AllDayRow.d.ts +21 -3
- package/dist/views/week/AllDayRow.d.ts.map +1 -1
- package/dist/views/week/AllDayRow.js +60 -13
- package/dist/views/week/AllDayRow.js.map +1 -1
- package/dist/views/week/TimeEvent.d.ts +20 -4
- package/dist/views/week/TimeEvent.d.ts.map +1 -1
- package/dist/views/week/TimeEvent.js +101 -31
- package/dist/views/week/TimeEvent.js.map +1 -1
- package/dist/views/week/WeekView.d.ts +25 -2
- package/dist/views/week/WeekView.d.ts.map +1 -1
- package/dist/views/week/WeekView.js +69 -21
- package/dist/views/week/WeekView.js.map +1 -1
- package/dist/views/year/YearView.d.ts +11 -4
- package/dist/views/year/YearView.d.ts.map +1 -1
- package/dist/views/year/YearView.js +26 -5
- package/dist/views/year/YearView.js.map +1 -1
- package/package.json +16 -13
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { Component, Input, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { isSameDay, now, startOfDay, addDays, getHours, getMinutes, createTimeRange, overlaps, formatDateTime
|
|
4
|
-
import {
|
|
3
|
+
import { isSameDay, now, startOfDay, addDays, getHours, getMinutes, createTimeRange, overlaps, formatDateTime } from '@bimetal/temporal';
|
|
4
|
+
import { segmentTimed, layoutTimed, getRecurrenceInstanceMetadata } from '@bimetal/calendar-core';
|
|
5
|
+
import { colFromTimeGridX } from '@bimetal/calendar-headless';
|
|
6
|
+
import { snapTimeFromMouseY, CalendarPointerGestureService } from '../../binding/index.js';
|
|
5
7
|
import { DEFAULT_HOUR_HEIGHT, DEFAULT_TIME_LABEL_WIDTH_DAY, DEFAULT_SCROLL_HOUR, createClickIntent } from '@bimetal/calendar-headless';
|
|
6
8
|
import { TimeEventComponent } from '../week/TimeEvent.js';
|
|
7
9
|
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "
|
|
10
|
+
import * as i1 from "../../binding/index.js";
|
|
11
|
+
import * as i2 from "@angular/common";
|
|
9
12
|
const _c0 = ["timeGridEl"];
|
|
10
13
|
const _c1 = ["gridInnerEl"];
|
|
11
14
|
function ResourceViewComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -58,7 +61,7 @@ function ResourceViewComponent_ng_template_1_div_12_Template(rf, ctx) { if (rf &
|
|
|
58
61
|
} if (rf & 2) {
|
|
59
62
|
const i_r7 = ctx.index;
|
|
60
63
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
61
|
-
i0.ɵɵstyleProp("
|
|
64
|
+
i0.ɵɵstyleProp("inset-inline-start", ctx_r0.colLeft(i_r7))("width", ctx_r0.colWidth);
|
|
62
65
|
} }
|
|
63
66
|
function ResourceViewComponent_ng_template_1_cal_time_event_13_Template(rf, ctx) { if (rf & 1) {
|
|
64
67
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
@@ -68,7 +71,7 @@ function ResourceViewComponent_ng_template_1_cal_time_event_13_Template(rf, ctx)
|
|
|
68
71
|
} if (rf & 2) {
|
|
69
72
|
const entry_r9 = ctx.$implicit;
|
|
70
73
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
71
|
-
i0.ɵɵproperty("event", entry_r9.event)("dayCol", entry_r9.layout.dayCol)("dayCount", entry_r9.layout.dayCount)("lane", entry_r9.layout.lane)("laneCount", entry_r9.layout.laneCount)("startOffset", entry_r9.layout.startOffset)("endOffset", entry_r9.layout.endOffset)("dayDate", ctx_r0.currentDate)("hourHeight", ctx_r0.hourHeight)("timeLabelWidth", ctx_r0.timeLabelWidth)("ghost", (ctx_r0.previewEvent == null ? null : ctx_r0.previewEvent.id) === entry_r9.event.id)("clickThresholdMs", ctx_r0.config.clickThresholdMs)("locale", ctx_r0.config.locale)("snapMinutes", ctx_r0.config.core.granularity.day.minutes)("isSelected", ctx_r0.isTimeSelected(entry_r9.event));
|
|
74
|
+
i0.ɵɵproperty("config", ctx_r0.config)("event", entry_r9.event)("dayCol", entry_r9.layout.dayCol)("dayCount", entry_r9.layout.dayCount)("lane", entry_r9.layout.lane)("laneCount", entry_r9.layout.laneCount)("startOffset", entry_r9.layout.startOffset)("endOffset", entry_r9.layout.endOffset)("dayDate", ctx_r0.currentDate)("hourHeight", ctx_r0.hourHeight)("timeLabelWidth", ctx_r0.timeLabelWidth)("ghost", (ctx_r0.previewEvent == null ? null : ctx_r0.previewEvent.id) === entry_r9.event.id)("clickThresholdMs", ctx_r0.config.clickThresholdMs)("locale", ctx_r0.config.locale)("snapMinutes", ctx_r0.config.core.granularity.day.minutes)("isSelected", ctx_r0.isTimeSelected(entry_r9.event));
|
|
72
75
|
} }
|
|
73
76
|
function ResourceViewComponent_ng_template_1_div_14_Template(rf, ctx) { if (rf & 1) {
|
|
74
77
|
i0.ɵɵelementStart(0, "div", 24);
|
|
@@ -76,7 +79,7 @@ function ResourceViewComponent_ng_template_1_div_14_Template(rf, ctx) { if (rf &
|
|
|
76
79
|
i0.ɵɵelementEnd();
|
|
77
80
|
} if (rf & 2) {
|
|
78
81
|
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
79
|
-
i0.ɵɵstyleProp("top", ctx_r0.nowHours * ctx_r0.hourHeight, "px")("
|
|
82
|
+
i0.ɵɵstyleProp("top", ctx_r0.nowHours * ctx_r0.hourHeight, "px")("inset-inline-start", ctx_r0.timeLabelWidth, "px");
|
|
80
83
|
} }
|
|
81
84
|
function ResourceViewComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
82
85
|
const _r2 = i0.ɵɵgetCurrentView();
|
|
@@ -89,7 +92,7 @@ function ResourceViewComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
89
92
|
i0.ɵɵelementEnd()();
|
|
90
93
|
i0.ɵɵelementStart(7, "div", 11, 1)(9, "div", 12, 2);
|
|
91
94
|
i0.ɵɵlistener("dragover", function ResourceViewComponent_ng_template_1_Template_div_dragover_9_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onGridDragOver($event)); })("drop", function ResourceViewComponent_ng_template_1_Template_div_drop_9_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onGridDrop($event)); })("dragleave", function ResourceViewComponent_ng_template_1_Template_div_dragleave_9_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.onGridDragLeave($event)); });
|
|
92
|
-
i0.ɵɵtemplate(11, ResourceViewComponent_ng_template_1_div_11_Template, 3, 7, "div", 13)(12, ResourceViewComponent_ng_template_1_div_12_Template, 1, 4, "div", 14)(13, ResourceViewComponent_ng_template_1_cal_time_event_13_Template, 1,
|
|
95
|
+
i0.ɵɵtemplate(11, ResourceViewComponent_ng_template_1_div_11_Template, 3, 7, "div", 13)(12, ResourceViewComponent_ng_template_1_div_12_Template, 1, 4, "div", 14)(13, ResourceViewComponent_ng_template_1_cal_time_event_13_Template, 1, 16, "cal-time-event", 15)(14, ResourceViewComponent_ng_template_1_div_14_Template, 2, 4, "div", 16);
|
|
93
96
|
i0.ɵɵelementEnd()()();
|
|
94
97
|
} if (rf & 2) {
|
|
95
98
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
@@ -106,12 +109,20 @@ function ResourceViewComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
106
109
|
i0.ɵɵadvance();
|
|
107
110
|
i0.ɵɵproperty("ngForOf", ctx_r0.visibleResources)("ngForTrackBy", ctx_r0.trackResource);
|
|
108
111
|
i0.ɵɵadvance();
|
|
109
|
-
i0.ɵɵproperty("ngForOf", ctx_r0.timedEntries);
|
|
112
|
+
i0.ɵɵproperty("ngForOf", ctx_r0.timedEntries)("ngForTrackBy", ctx_r0.trackTimed);
|
|
110
113
|
i0.ɵɵadvance();
|
|
111
114
|
i0.ɵɵproperty("ngIf", ctx_r0.isToday);
|
|
112
115
|
} }
|
|
113
116
|
const HOURS = Array.from({ length: 24 }, (_, i) => i);
|
|
117
|
+
/**
|
|
118
|
+
* Single-day, multi-resource time grid: one column per visible resource, each
|
|
119
|
+
* with its own overlap-lane layout of timed events.
|
|
120
|
+
*/
|
|
114
121
|
export class ResourceViewComponent {
|
|
122
|
+
gesture;
|
|
123
|
+
constructor(gesture) {
|
|
124
|
+
this.gesture = gesture;
|
|
125
|
+
}
|
|
115
126
|
currentDate;
|
|
116
127
|
events = [];
|
|
117
128
|
visibleResources = [];
|
|
@@ -130,6 +141,7 @@ export class ResourceViewComponent {
|
|
|
130
141
|
hidePreviewEv = new EventEmitter();
|
|
131
142
|
/** Native `dragend` der Source — Drag-Session vollständig beendet. */
|
|
132
143
|
dragEnd = new EventEmitter();
|
|
144
|
+
resourceDropInfo = new EventEmitter();
|
|
133
145
|
dragStartEv = new EventEmitter();
|
|
134
146
|
timeGridEl;
|
|
135
147
|
gridInnerEl;
|
|
@@ -138,6 +150,26 @@ export class ResourceViewComponent {
|
|
|
138
150
|
timeLabelWidth = DEFAULT_TIME_LABEL_WIDTH_DAY;
|
|
139
151
|
click = createClickIntent();
|
|
140
152
|
ngAfterViewInit() {
|
|
153
|
+
// mcp-57 Slice E: shared FSM — resource column + snapped time, scrollport-bounded.
|
|
154
|
+
this.gesture.init({
|
|
155
|
+
hitTest: (x, y) => {
|
|
156
|
+
const inner = this.gridInnerEl?.nativeElement;
|
|
157
|
+
if (!inner)
|
|
158
|
+
return null;
|
|
159
|
+
const port = (inner.parentElement ?? inner).getBoundingClientRect();
|
|
160
|
+
if (x < port.left || x > port.right || y < port.top || y > port.bottom)
|
|
161
|
+
return null;
|
|
162
|
+
const resourceId = this.resourceFromX(x, inner);
|
|
163
|
+
if (resourceId === null)
|
|
164
|
+
return null;
|
|
165
|
+
return { resourceId, time: snapTimeFromMouseY(y, inner.getBoundingClientRect(), this.hourHeight, this.config.core.granularity.day.minutes) };
|
|
166
|
+
},
|
|
167
|
+
onGestureStart: (info) => this.dragStartEv.emit(info),
|
|
168
|
+
onGestureOver: (hit) => this.dragOverDateTime.emit({ date: this.currentDate, time: hit.time }),
|
|
169
|
+
onGestureLeave: () => this.hidePreviewEv.emit(),
|
|
170
|
+
onGestureDrop: (info, hit) => this.resourceDropInfo.emit({ info, date: this.currentDate, time: hit.time, resourceId: hit.resourceId }),
|
|
171
|
+
onGestureEnd: () => this.dragEnd.emit(),
|
|
172
|
+
});
|
|
141
173
|
if (this.timeGridEl?.nativeElement) {
|
|
142
174
|
this.timeGridEl.nativeElement.scrollTop = DEFAULT_SCROLL_HOUR * DEFAULT_HOUR_HEIGHT;
|
|
143
175
|
}
|
|
@@ -167,7 +199,31 @@ export class ResourceViewComponent {
|
|
|
167
199
|
* dayCol = Resource-Index, lane/laneCount aus layoutTimed pro Resource
|
|
168
200
|
* — Überlapper in r1 dürfen die Spalte r2 nicht halbieren.
|
|
169
201
|
*/
|
|
202
|
+
/**
|
|
203
|
+
* CACHED PER INPUT IDENTITY, not per call (mcp-130 — the resource-view twin of
|
|
204
|
+
* mcp-129). As a plain getter this ran the full segment/lane layout and minted
|
|
205
|
+
* fresh {event, layout} wrappers on EVERY change-detection pass; Zone runs CD
|
|
206
|
+
* after every DOM event, so the dragstart itself handed the un-trackBy'd *ngFor
|
|
207
|
+
* all-new identities, every cal-time-event was re-created, and Chromium
|
|
208
|
+
* cancelled the native drag whose source died in its own dragstart task. The
|
|
209
|
+
* dragstart-survival fence in e2e/calendar.spec.ts went red on exactly this
|
|
210
|
+
* view before the cache + trackBy below.
|
|
211
|
+
*/
|
|
212
|
+
timedCache = null;
|
|
170
213
|
get timedEntries() {
|
|
214
|
+
const key = [this.events, this.previewEvent, this.visibleResources, this.currentDate];
|
|
215
|
+
const c = this.timedCache;
|
|
216
|
+
if (c && c.key.every((k, i) => k === key[i]))
|
|
217
|
+
return c.value;
|
|
218
|
+
const value = this.buildTimedEntries();
|
|
219
|
+
this.timedCache = { key, value };
|
|
220
|
+
return value;
|
|
221
|
+
}
|
|
222
|
+
/** Same identity rule the week view pins (`trackTimed`): event + column. */
|
|
223
|
+
trackTimed(_i, entry) {
|
|
224
|
+
return `${entry.event.id}@${entry.layout.dayCol}`;
|
|
225
|
+
}
|
|
226
|
+
buildTimedEntries() {
|
|
171
227
|
const dayStart = startOfDay(this.currentDate);
|
|
172
228
|
const dayEnd = addDays(dayStart, 1);
|
|
173
229
|
const dayRange = createTimeRange(dayStart, dayEnd);
|
|
@@ -197,12 +253,14 @@ export class ResourceViewComponent {
|
|
|
197
253
|
if (this.visibleResources.length === 0)
|
|
198
254
|
return null;
|
|
199
255
|
const rect = gridInner.getBoundingClientRect();
|
|
200
|
-
|
|
201
|
-
|
|
256
|
+
// mcp-91 R1 (review F2): shared, core-pinned guttered-row math (rtl incl.).
|
|
257
|
+
const rtl = getComputedStyle(gridInner).direction === 'rtl';
|
|
258
|
+
const inGutter = rtl
|
|
259
|
+
? clientX > rect.left + rect.width - this.timeLabelWidth
|
|
260
|
+
: clientX < rect.left + this.timeLabelWidth;
|
|
261
|
+
if (inGutter)
|
|
202
262
|
return null;
|
|
203
|
-
|
|
204
|
-
const idx = Math.min(this.visibleResources.length - 1, Math.max(0, Math.floor(x / cw)));
|
|
205
|
-
return this.visibleResources[idx].id;
|
|
263
|
+
return this.visibleResources[colFromTimeGridX(clientX, rect, this.timeLabelWidth, this.visibleResources.length, rtl)].id;
|
|
206
264
|
}
|
|
207
265
|
isOffHour(h) {
|
|
208
266
|
const wh = this.config.core.workingHours;
|
|
@@ -263,7 +321,7 @@ export class ResourceViewComponent {
|
|
|
263
321
|
}
|
|
264
322
|
trackResource(_, r) { return r.id; }
|
|
265
323
|
trackEvent(_, ev) { return ev.id; }
|
|
266
|
-
static ɵfac = function ResourceViewComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ResourceViewComponent)(); };
|
|
324
|
+
static ɵfac = function ResourceViewComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ResourceViewComponent)(i0.ɵɵdirectiveInject(i1.CalendarPointerGestureService)); };
|
|
267
325
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ResourceViewComponent, selectors: [["cal-resource-view"]], viewQuery: function ResourceViewComponent_Query(rf, ctx) { if (rf & 1) {
|
|
268
326
|
i0.ɵɵviewQuery(_c0, 5);
|
|
269
327
|
i0.ɵɵviewQuery(_c1, 5);
|
|
@@ -271,17 +329,18 @@ export class ResourceViewComponent {
|
|
|
271
329
|
let _t;
|
|
272
330
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.timeGridEl = _t.first);
|
|
273
331
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.gridInnerEl = _t.first);
|
|
274
|
-
} }, hostAttrs: [2, "display", "contents"], inputs: { currentDate: "currentDate", events: "events", visibleResources: "visibleResources", config: "config", previewEvent: "previewEvent", selectedEventId: "selectedEventId", selectedInstanceDate: "selectedInstanceDate" }, outputs: { eventClick: "eventClick", selectEvent: "selectEvent", clearSelection: "clearSelection", resourceCellClick: "resourceCellClick", resourceDrop: "resourceDrop", dragOverDateTime: "dragOverDateTime", hidePreviewEv: "hidePreviewEv", dragEnd: "dragEnd", dragStartEv: "dragStartEv" }, decls: 3, vars: 2, consts: [["withResources", ""], ["timeGridEl", ""], ["gridInnerEl", ""], [4, "ngIf", "ngIfElse"], [1, "bm-cal-resource", "bm-cal-resource--empty"], [1, "bm-cal-resource"], [1, "bm-cal-resource__header"], [1, "bm-cal-resource__day-name"], [1, "bm-cal-resource__resources"], [1, "bm-cal-resource__time-spacer"], ["class", "bm-cal-resource__resource-header", "style", "flex: 1 1 0; min-width: 0;", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "bm-cal-resource__time-grid"], [1, "bm-cal-resource__time-grid-inner", 3, "dragover", "drop", "dragleave"], [3, "class", "top", "height", 4, "ngFor", "ngForOf"], ["class", "bm-cal-resource__resource-col", 3, "
|
|
275
|
-
i0.ɵɵtemplate(0, ResourceViewComponent_ng_container_0_Template, 3, 1, "ng-container", 3)(1, ResourceViewComponent_ng_template_1_Template, 15,
|
|
332
|
+
} }, hostAttrs: [2, "display", "contents"], inputs: { currentDate: "currentDate", events: "events", visibleResources: "visibleResources", config: "config", previewEvent: "previewEvent", selectedEventId: "selectedEventId", selectedInstanceDate: "selectedInstanceDate" }, outputs: { eventClick: "eventClick", selectEvent: "selectEvent", clearSelection: "clearSelection", resourceCellClick: "resourceCellClick", resourceDrop: "resourceDrop", dragOverDateTime: "dragOverDateTime", hidePreviewEv: "hidePreviewEv", dragEnd: "dragEnd", resourceDropInfo: "resourceDropInfo", dragStartEv: "dragStartEv" }, features: [i0.ɵɵProvidersFeature([CalendarPointerGestureService])], decls: 3, vars: 2, consts: [["withResources", ""], ["timeGridEl", ""], ["gridInnerEl", ""], [4, "ngIf", "ngIfElse"], [1, "bm-cal-resource", "bm-cal-resource--empty"], [1, "bm-cal-resource"], [1, "bm-cal-resource__header"], [1, "bm-cal-resource__day-name"], [1, "bm-cal-resource__resources"], [1, "bm-cal-resource__time-spacer"], ["class", "bm-cal-resource__resource-header", "style", "flex: 1 1 0; min-width: 0;", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "bm-cal-resource__time-grid"], [1, "bm-cal-resource__time-grid-inner", 3, "dragover", "drop", "dragleave"], [3, "class", "top", "height", 4, "ngFor", "ngForOf"], ["class", "bm-cal-resource__resource-col", 3, "inset-inline-start", "width", "mousedown", "click", "dblclick", 4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "config", "event", "dayCol", "dayCount", "lane", "laneCount", "startOffset", "endOffset", "dayDate", "hourHeight", "timeLabelWidth", "ghost", "clickThresholdMs", "locale", "snapMinutes", "isSelected", "eventClick", "selectEvent", "dragStart", "dragEnd", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["class", "bm-cal-resource__now-line", 3, "top", "inset-inline-start", 4, "ngIf"], [1, "bm-cal-resource__resource-header", 2, "flex", "1 1 0", "min-width", "0"], ["class", "bm-cal-resource__resource-dot", 3, "background-color", 4, "ngIf"], [1, "bm-cal-resource__resource-name"], [1, "bm-cal-resource__resource-dot"], [1, "bm-cal-resource__hour-label"], [1, "bm-cal-resource__resource-col", 3, "mousedown", "click", "dblclick"], [3, "eventClick", "selectEvent", "dragStart", "dragEnd", "config", "event", "dayCol", "dayCount", "lane", "laneCount", "startOffset", "endOffset", "dayDate", "hourHeight", "timeLabelWidth", "ghost", "clickThresholdMs", "locale", "snapMinutes", "isSelected"], [1, "bm-cal-resource__now-line"], [1, "bm-cal-resource__now-dot"]], template: function ResourceViewComponent_Template(rf, ctx) { if (rf & 1) {
|
|
333
|
+
i0.ɵɵtemplate(0, ResourceViewComponent_ng_container_0_Template, 3, 1, "ng-container", 3)(1, ResourceViewComponent_ng_template_1_Template, 15, 13, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
|
276
334
|
} if (rf & 2) {
|
|
277
335
|
const withResources_r10 = i0.ɵɵreference(2);
|
|
278
336
|
i0.ɵɵproperty("ngIf", ctx.visibleResources.length === 0)("ngIfElse", withResources_r10);
|
|
279
|
-
} }, dependencies: [CommonModule,
|
|
337
|
+
} }, dependencies: [CommonModule, i2.NgForOf, i2.NgIf, TimeEventComponent], encapsulation: 2 });
|
|
280
338
|
}
|
|
281
339
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ResourceViewComponent, [{
|
|
282
340
|
type: Component,
|
|
283
341
|
args: [{
|
|
284
342
|
selector: 'cal-resource-view',
|
|
343
|
+
providers: [CalendarPointerGestureService],
|
|
285
344
|
standalone: true,
|
|
286
345
|
host: { style: 'display: contents' },
|
|
287
346
|
imports: [CommonModule, TimeEventComponent],
|
|
@@ -319,14 +378,15 @@ export class ResourceViewComponent {
|
|
|
319
378
|
<!-- Click-target columns; drag handlers live on the grid-inner above -->
|
|
320
379
|
<div *ngFor="let r of visibleResources; let i = index; trackBy: trackResource"
|
|
321
380
|
class="bm-cal-resource__resource-col"
|
|
322
|
-
[style.
|
|
381
|
+
[style.inset-inline-start]="colLeft(i)"
|
|
323
382
|
[style.width]="colWidth"
|
|
324
383
|
(mousedown)="click.markMouseDown()"
|
|
325
384
|
(click)="onColClick($event)"
|
|
326
385
|
(dblclick)="onColDoubleClick($event, r.id)">
|
|
327
386
|
</div>
|
|
328
387
|
<!-- Events as siblings: TimeEvent positions relative to the full grid -->
|
|
329
|
-
<cal-time-event *ngFor="let entry of timedEntries"
|
|
388
|
+
<cal-time-event *ngFor="let entry of timedEntries; trackBy: trackTimed"
|
|
389
|
+
[config]="config"
|
|
330
390
|
[event]="entry.event"
|
|
331
391
|
[dayCol]="entry.layout.dayCol" [dayCount]="entry.layout.dayCount"
|
|
332
392
|
[lane]="entry.layout.lane" [laneCount]="entry.layout.laneCount"
|
|
@@ -344,7 +404,7 @@ export class ResourceViewComponent {
|
|
|
344
404
|
</cal-time-event>
|
|
345
405
|
|
|
346
406
|
<div *ngIf="isToday" class="bm-cal-resource__now-line"
|
|
347
|
-
[style.top.px]="nowHours * hourHeight" [style.
|
|
407
|
+
[style.top.px]="nowHours * hourHeight" [style.inset-inline-start.px]="timeLabelWidth">
|
|
348
408
|
<div class="bm-cal-resource__now-dot"></div>
|
|
349
409
|
</div>
|
|
350
410
|
</div>
|
|
@@ -353,7 +413,7 @@ export class ResourceViewComponent {
|
|
|
353
413
|
</ng-template>
|
|
354
414
|
`,
|
|
355
415
|
}]
|
|
356
|
-
}],
|
|
416
|
+
}], () => [{ type: i1.CalendarPointerGestureService }], { currentDate: [{
|
|
357
417
|
type: Input
|
|
358
418
|
}], events: [{
|
|
359
419
|
type: Input
|
|
@@ -383,6 +443,8 @@ export class ResourceViewComponent {
|
|
|
383
443
|
type: Output
|
|
384
444
|
}], dragEnd: [{
|
|
385
445
|
type: Output
|
|
446
|
+
}], resourceDropInfo: [{
|
|
447
|
+
type: Output
|
|
386
448
|
}], dragStartEv: [{
|
|
387
449
|
type: Output
|
|
388
450
|
}], timeGridEl: [{
|
|
@@ -392,5 +454,5 @@ export class ResourceViewComponent {
|
|
|
392
454
|
type: ViewChild,
|
|
393
455
|
args: ['gridInnerEl']
|
|
394
456
|
}] }); })();
|
|
395
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ResourceViewComponent, { className: "ResourceViewComponent", filePath: "views/resource/resourceview.ts", lineNumber:
|
|
457
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ResourceViewComponent, { className: "ResourceViewComponent", filePath: "views/resource/resourceview.ts", lineNumber: 94 }); })();
|
|
396
458
|
//# sourceMappingURL=ResourceView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceView.js","sourceRoot":"","sources":["../../../src/views/resource/ResourceView.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ResourceView.js","sourceRoot":"","sources":["../../../src/views/resource/ResourceView.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
import { EventEmitter } from '@angular/core';
|
|
1
|
+
import { EventEmitter, ElementRef, AfterViewInit } from '@angular/core';
|
|
2
2
|
import type { CalendarEvent, CalendarDateTime, Resource, LayoutItem } from '@bimetal/calendar-core';
|
|
3
3
|
import type { CalendarConfig } from '../../binding/index.js';
|
|
4
4
|
import type { DragInfo } from '@bimetal/calendar-headless';
|
|
5
|
+
import { CalendarPointerGestureService } from '../../binding/index.js';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Multi-day, multi-resource Gantt-style timeline: one lane per resource, with
|
|
9
|
+
* all-day-style event bars spanning `days` date columns.
|
|
10
|
+
*/
|
|
11
|
+
export declare class TimelineViewComponent implements AfterViewInit {
|
|
12
|
+
private gesture;
|
|
13
|
+
private host;
|
|
14
|
+
constructor(gesture: CalendarPointerGestureService, host: ElementRef<HTMLElement>);
|
|
15
|
+
ngAfterViewInit(): void;
|
|
7
16
|
currentDate: CalendarDateTime;
|
|
8
17
|
days: number;
|
|
9
18
|
events: CalendarEvent[];
|
|
@@ -38,6 +47,12 @@ export declare class TimelineViewComponent {
|
|
|
38
47
|
/** Native `dragend` der Source — Drag-Session vollständig beendet. */
|
|
39
48
|
dragEnd: EventEmitter<void>;
|
|
40
49
|
dragStartEv: EventEmitter<DragInfo>;
|
|
50
|
+
/** Pointer-gesture drop (mcp-57): same controller path, minus the DataTransfer. */
|
|
51
|
+
timelineDropInfo: EventEmitter<{
|
|
52
|
+
info: DragInfo;
|
|
53
|
+
date: CalendarDateTime;
|
|
54
|
+
resourceId: string;
|
|
55
|
+
}>;
|
|
41
56
|
resourceLabelW: number;
|
|
42
57
|
get dates(): CalendarDateTime[];
|
|
43
58
|
get colTemplate(): string;
|
|
@@ -51,6 +66,17 @@ export declare class TimelineViewComponent {
|
|
|
51
66
|
* event in by id — the timeline no longer reconstructs anything.
|
|
52
67
|
*/
|
|
53
68
|
get displayEvents(): CalendarEvent[];
|
|
69
|
+
/**
|
|
70
|
+
* CACHED PER INPUT IDENTITY (mcp-130 R1). As a bare method call in the template
|
|
71
|
+
* this ran filter+segment+layout for EVERY lane on EVERY change-detection pass
|
|
72
|
+
* — including the dragstart's own — and minted fresh LayoutItem wrappers each
|
|
73
|
+
* time. `trackBy: trackItem` kept the dragged node alive, but that left the
|
|
74
|
+
* timeline hanging on ONE protective layer where mcp-129/130 deliberately keep
|
|
75
|
+
* two: the very lesson of that ticket ("one fenced source per class is not
|
|
76
|
+
* enough") applied to its defenses too. `laneHeight` calls this as well, so the
|
|
77
|
+
* cache also halves the per-CD layout work.
|
|
78
|
+
*/
|
|
79
|
+
private itemsCache;
|
|
54
80
|
itemsFor(resourceId: string): LayoutItem[];
|
|
55
81
|
private dayFromX;
|
|
56
82
|
onLaneDragOver(e: DragEvent): void;
|
|
@@ -65,6 +91,6 @@ export declare class TimelineViewComponent {
|
|
|
65
91
|
trackItem(_: number, item: LayoutItem): string;
|
|
66
92
|
isSelected(ev: CalendarEvent): boolean;
|
|
67
93
|
static ɵfac: i0.ɵɵFactoryDeclaration<TimelineViewComponent, never>;
|
|
68
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TimelineViewComponent, "cal-timeline-view", never, { "currentDate": { "alias": "currentDate"; "required": false; }; "days": { "alias": "days"; "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"; "timelineCellClick": "timelineCellClick"; "timelineDrop": "timelineDrop"; "dragOverDate": "dragOverDate"; "hidePreviewEv": "hidePreviewEv"; "dragEnd": "dragEnd"; "dragStartEv": "dragStartEv"; }, never, never, true, never>;
|
|
94
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TimelineViewComponent, "cal-timeline-view", never, { "currentDate": { "alias": "currentDate"; "required": false; }; "days": { "alias": "days"; "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"; "timelineCellClick": "timelineCellClick"; "timelineDrop": "timelineDrop"; "dragOverDate": "dragOverDate"; "hidePreviewEv": "hidePreviewEv"; "dragEnd": "dragEnd"; "dragStartEv": "dragStartEv"; "timelineDropInfo": "timelineDropInfo"; }, never, never, true, never>;
|
|
69
95
|
}
|
|
70
96
|
//# sourceMappingURL=TimelineView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimelineView.d.ts","sourceRoot":"","sources":["../../../src/views/timeline/TimelineView.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,
|
|
1
|
+
{"version":3,"file":"TimelineView.d.ts","sourceRoot":"","sources":["../../../src/views/timeline/TimelineView.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAA4B,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE5H,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;;AAIvE;;;GAGG;AACH,qBAsEa,qBAAsB,YAAW,aAAa;IAC7C,OAAO,CAAC,OAAO;IAAiC,OAAO,CAAC,IAAI;gBAApD,OAAO,EAAE,6BAA6B,EAAU,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC;IAEjG,eAAe;IAsBN,WAAW,EAAG,gBAAgB,CAAC;IAC/B,IAAI,SAAK;IACT,MAAM,EAAE,aAAa,EAAE,CAAM;IAC7B,gBAAgB,EAAE,SAAS,QAAQ,EAAE,CAAM;IAC3C,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,iBAAiB;cAA4B,gBAAgB;oBAAc,MAAM;cAAQ,OAAO;OAAM;IACtG,YAAY;eAA6B,SAAS;cAAQ,gBAAgB;oBAAc,MAAM;OAAM;IACpG,YAAY,iCAAwC;IAC9D,yEAAyE;IAC/D,aAAa,qBAA4B;IACnD,sEAAsE;IAC5D,OAAO,qBAA4B;IACnC,WAAW,yBAAgC;IACrD,mFAAmF;IACzE,gBAAgB;cAA4B,QAAQ;cAAQ,gBAAgB;oBAAc,MAAM;OAAM;IAEhH,cAAc,SAAgC;IAE9C,IAAI,KAAK,IAAI,gBAAgB,EAAE,CAG9B;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,KAAK,QAAQ,GAInB;IAED,OAAO,CAAC,CAAC,EAAE,gBAAgB,GAAG,OAAO;IACrC,UAAU,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM;IAEvC;;;;OAIG;IACH,IAAI,aAAa,IAAI,aAAa,EAAE,CAInC;IAED;;;;;;;;;OASG;IACH,OAAO,CAAC,UAAU,CAGF;IAChB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,EAAE;IAgB1C,OAAO,CAAC,QAAQ;IAOhB,cAAc,CAAC,CAAC,EAAE,SAAS;IAO3B,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM;IAM3C,eAAe,CAAC,CAAC,EAAE,SAAS;IAS5B,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAKtC,SAAS,mDAAuB;IAEhC,WAAW;IAMX,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM;IAM3E,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ;IACpC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,gBAAgB;IACxC,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU;IAErC,UAAU,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO;yCArK3B,qBAAqB;2CAArB,qBAAqB;CAyKjC"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ElementRef } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { startOfDay, addDays, isSameDay, now
|
|
4
|
-
import {
|
|
3
|
+
import { startOfDay, addDays, isSameDay, now } from '@bimetal/temporal';
|
|
4
|
+
import { segmentInRange, layoutAllDay, maxLanes, getRecurrenceInstanceMetadata } from '@bimetal/calendar-core';
|
|
5
|
+
import { colFromTimeGridX, DEFAULT_RESOURCE_LABEL_WIDTH, createClickIntent } from '@bimetal/calendar-headless';
|
|
6
|
+
import { CalendarPointerGestureService } from '../../binding/index.js';
|
|
5
7
|
import { EventBarComponent } from '../../components/EventBar.js';
|
|
6
8
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "
|
|
9
|
+
import * as i1 from "../../binding/index.js";
|
|
10
|
+
import * as i2 from "@angular/common";
|
|
8
11
|
function TimelineViewComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
9
12
|
i0.ɵɵelementContainerStart(0);
|
|
10
13
|
i0.ɵɵelementStart(1, "div", 2);
|
|
@@ -41,9 +44,11 @@ function TimelineViewComponent_ng_template_1_div_5_button_6_Template(rf, ctx) {
|
|
|
41
44
|
} if (rf & 2) {
|
|
42
45
|
const d_r6 = ctx.$implicit;
|
|
43
46
|
const i_r7 = ctx.index;
|
|
44
|
-
const
|
|
47
|
+
const r_r4 = i0.ɵɵnextContext().$implicit;
|
|
48
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
45
49
|
i0.ɵɵclassMap("bm-cal-timeline__cell" + (ctx_r0.isToday(d_r6) ? " bm-cal-timeline__cell--today" : ""));
|
|
46
50
|
i0.ɵɵstyleProp("grid-column", i_r7 + 1)("grid-row", "1 / -1");
|
|
51
|
+
i0.ɵɵattribute("aria-label", r_r4.name + ", " + ctx_r0.formatDate(d_r6));
|
|
47
52
|
} }
|
|
48
53
|
function TimelineViewComponent_ng_template_1_div_5_cal_event_bar_7_Template(rf, ctx) { if (rf & 1) {
|
|
49
54
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
@@ -53,7 +58,7 @@ function TimelineViewComponent_ng_template_1_div_5_cal_event_bar_7_Template(rf,
|
|
|
53
58
|
} if (rf & 2) {
|
|
54
59
|
const item_r9 = ctx.$implicit;
|
|
55
60
|
const ctx_r0 = i0.ɵɵnextContext(3);
|
|
56
|
-
i0.ɵɵproperty("event", item_r9.segment.event)("isStart", item_r9.segment.isStart)("isEnd", item_r9.segment.isEnd)("dayIndex", item_r9.dayIndex)("daySpan", item_r9.daySpan)("column", item_r9.column)("weekDates", ctx_r0.dates)("ghost", (ctx_r0.previewEvent == null ? null : ctx_r0.previewEvent.id) === item_r9.segment.event.id)("clickThresholdMs", ctx_r0.config.clickThresholdMs)("isSelected", ctx_r0.isSelected(item_r9.segment.event));
|
|
61
|
+
i0.ɵɵproperty("config", ctx_r0.config)("event", item_r9.segment.event)("isStart", item_r9.segment.isStart)("isEnd", item_r9.segment.isEnd)("dayIndex", item_r9.dayIndex)("daySpan", item_r9.daySpan)("column", item_r9.column)("weekDates", ctx_r0.dates)("ghost", (ctx_r0.previewEvent == null ? null : ctx_r0.previewEvent.id) === item_r9.segment.event.id)("clickThresholdMs", ctx_r0.config.clickThresholdMs)("isSelected", ctx_r0.isSelected(item_r9.segment.event));
|
|
57
62
|
} }
|
|
58
63
|
function TimelineViewComponent_ng_template_1_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
59
64
|
const _r3 = i0.ɵɵgetCurrentView();
|
|
@@ -64,7 +69,7 @@ function TimelineViewComponent_ng_template_1_div_5_Template(rf, ctx) { if (rf &
|
|
|
64
69
|
i0.ɵɵelementEnd()();
|
|
65
70
|
i0.ɵɵelementStart(5, "div", 13);
|
|
66
71
|
i0.ɵɵlistener("dragover", function TimelineViewComponent_ng_template_1_div_5_Template_div_dragover_5_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onLaneDragOver($event)); })("drop", function TimelineViewComponent_ng_template_1_div_5_Template_div_drop_5_listener($event) { const r_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onLaneDrop($event, r_r4.id)); })("dragleave", function TimelineViewComponent_ng_template_1_div_5_Template_div_dragleave_5_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onLaneDragLeave($event)); });
|
|
67
|
-
i0.ɵɵtemplate(6, TimelineViewComponent_ng_template_1_div_5_button_6_Template, 1,
|
|
72
|
+
i0.ɵɵtemplate(6, TimelineViewComponent_ng_template_1_div_5_button_6_Template, 1, 7, "button", 14)(7, TimelineViewComponent_ng_template_1_div_5_cal_event_bar_7_Template, 1, 11, "cal-event-bar", 15);
|
|
68
73
|
i0.ɵɵelementEnd()();
|
|
69
74
|
} if (rf & 2) {
|
|
70
75
|
const r_r4 = ctx.$implicit;
|
|
@@ -99,7 +104,40 @@ function TimelineViewComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
99
104
|
i0.ɵɵadvance(2);
|
|
100
105
|
i0.ɵɵproperty("ngForOf", ctx_r0.visibleResources)("ngForTrackBy", ctx_r0.trackResource);
|
|
101
106
|
} }
|
|
107
|
+
/**
|
|
108
|
+
* Multi-day, multi-resource Gantt-style timeline: one lane per resource, with
|
|
109
|
+
* all-day-style event bars spanning `days` date columns.
|
|
110
|
+
*/
|
|
102
111
|
export class TimelineViewComponent {
|
|
112
|
+
gesture;
|
|
113
|
+
host;
|
|
114
|
+
constructor(gesture, host) {
|
|
115
|
+
this.gesture = gesture;
|
|
116
|
+
this.host = host;
|
|
117
|
+
}
|
|
118
|
+
ngAfterViewInit() {
|
|
119
|
+
// mcp-57 Slice E: shared FSM over the lanes — hit = lane resource + day column.
|
|
120
|
+
this.gesture.init({
|
|
121
|
+
hitTest: (x, y) => {
|
|
122
|
+
const lanes = this.host.nativeElement.querySelectorAll('.bm-cal-timeline__lane-content');
|
|
123
|
+
for (let i = 0; i < lanes.length; i++) {
|
|
124
|
+
const rect = lanes[i].getBoundingClientRect();
|
|
125
|
+
if (x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom) {
|
|
126
|
+
const r = this.visibleResources[i];
|
|
127
|
+
if (!r)
|
|
128
|
+
return null;
|
|
129
|
+
return { resourceId: r.id, date: this.dayFromX(x, rect) };
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return null;
|
|
133
|
+
},
|
|
134
|
+
onGestureStart: (info) => this.dragStartEv.emit(info),
|
|
135
|
+
onGestureOver: (hit) => this.dragOverDate.emit(hit.date),
|
|
136
|
+
onGestureLeave: () => this.hidePreviewEv.emit(),
|
|
137
|
+
onGestureDrop: (info, hit) => this.timelineDropInfo.emit({ info, date: hit.date, resourceId: hit.resourceId }),
|
|
138
|
+
onGestureEnd: () => this.dragEnd.emit(),
|
|
139
|
+
});
|
|
140
|
+
}
|
|
103
141
|
currentDate;
|
|
104
142
|
days = 7;
|
|
105
143
|
events = [];
|
|
@@ -120,6 +158,8 @@ export class TimelineViewComponent {
|
|
|
120
158
|
/** Native `dragend` der Source — Drag-Session vollständig beendet. */
|
|
121
159
|
dragEnd = new EventEmitter();
|
|
122
160
|
dragStartEv = new EventEmitter();
|
|
161
|
+
/** Pointer-gesture drop (mcp-57): same controller path, minus the DataTransfer. */
|
|
162
|
+
timelineDropInfo = new EventEmitter();
|
|
123
163
|
resourceLabelW = DEFAULT_RESOURCE_LABEL_WIDTH;
|
|
124
164
|
get dates() {
|
|
125
165
|
const start = startOfDay(this.currentDate);
|
|
@@ -149,17 +189,38 @@ export class TimelineViewComponent {
|
|
|
149
189
|
return this.events;
|
|
150
190
|
return this.events.map(ev => ev.id === pe.id ? { ...ev, timeRange: pe.timeRange } : ev);
|
|
151
191
|
}
|
|
192
|
+
/**
|
|
193
|
+
* CACHED PER INPUT IDENTITY (mcp-130 R1). As a bare method call in the template
|
|
194
|
+
* this ran filter+segment+layout for EVERY lane on EVERY change-detection pass
|
|
195
|
+
* — including the dragstart's own — and minted fresh LayoutItem wrappers each
|
|
196
|
+
* time. `trackBy: trackItem` kept the dragged node alive, but that left the
|
|
197
|
+
* timeline hanging on ONE protective layer where mcp-129/130 deliberately keep
|
|
198
|
+
* two: the very lesson of that ticket ("one fenced source per class is not
|
|
199
|
+
* enough") applied to its defenses too. `laneHeight` calls this as well, so the
|
|
200
|
+
* cache also halves the per-CD layout work.
|
|
201
|
+
*/
|
|
202
|
+
itemsCache = null;
|
|
152
203
|
itemsFor(resourceId) {
|
|
204
|
+
// Keyed on currentDate+days, NOT on `this.dates`: that getter mints a fresh
|
|
205
|
+
// array per call (same class, one level down), which would defeat this cache.
|
|
206
|
+
const key = [this.events, this.previewEvent, this.currentDate, this.days];
|
|
207
|
+
if (!this.itemsCache || !this.itemsCache.key.every((k, i) => k === key[i])) {
|
|
208
|
+
this.itemsCache = { key, byResource: new Map() };
|
|
209
|
+
}
|
|
210
|
+
const cached = this.itemsCache.byResource.get(resourceId);
|
|
211
|
+
if (cached)
|
|
212
|
+
return cached;
|
|
153
213
|
const own = this.displayEvents.filter(e => e.resourceId === resourceId);
|
|
154
214
|
const segments = segmentInRange(own, this.dates);
|
|
155
|
-
|
|
215
|
+
const items = layoutAllDay(segments, this.dates);
|
|
216
|
+
this.itemsCache.byResource.set(resourceId, items);
|
|
217
|
+
return items;
|
|
156
218
|
}
|
|
157
219
|
dayFromX(clientX, laneRect) {
|
|
220
|
+
// mcp-91 R1 (review F2): shared, core-pinned mapping (gutterless row).
|
|
221
|
+
const rtl = getComputedStyle(this.host.nativeElement).direction === 'rtl';
|
|
158
222
|
const ds = this.dates;
|
|
159
|
-
|
|
160
|
-
const colWidth = laneRect.width / ds.length;
|
|
161
|
-
const idx = Math.min(ds.length - 1, Math.floor(x / colWidth));
|
|
162
|
-
return ds[idx];
|
|
223
|
+
return ds[colFromTimeGridX(clientX, laneRect, 0, ds.length, rtl)];
|
|
163
224
|
}
|
|
164
225
|
onLaneDragOver(e) {
|
|
165
226
|
e.preventDefault();
|
|
@@ -207,18 +268,19 @@ export class TimelineViewComponent {
|
|
|
207
268
|
return this.selectedEventId === ev.id
|
|
208
269
|
&& this.selectedInstanceDate === (getRecurrenceInstanceMetadata(ev)?.instanceDate);
|
|
209
270
|
}
|
|
210
|
-
static ɵfac = function TimelineViewComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TimelineViewComponent)(); };
|
|
211
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TimelineViewComponent, selectors: [["cal-timeline-view"]], inputs: { currentDate: "currentDate", days: "days", events: "events", visibleResources: "visibleResources", config: "config", previewEvent: "previewEvent", selectedEventId: "selectedEventId", selectedInstanceDate: "selectedInstanceDate" }, outputs: { eventClick: "eventClick", selectEvent: "selectEvent", clearSelection: "clearSelection", timelineCellClick: "timelineCellClick", timelineDrop: "timelineDrop", dragOverDate: "dragOverDate", hidePreviewEv: "hidePreviewEv", dragEnd: "dragEnd", dragStartEv: "dragStartEv" }, decls: 3, vars: 2, consts: [["withResources", ""], [4, "ngIf", "ngIfElse"], [1, "bm-cal-timeline", "bm-cal-timeline--empty"], [1, "bm-cal-timeline"], [1, "bm-cal-timeline__header"], [1, "bm-cal-timeline__corner"], [3, "class", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "bm-cal-timeline__body"], ["class", "bm-cal-timeline__lane", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "bm-cal-timeline__lane"], [1, "bm-cal-timeline__resource-label"], ["class", "bm-cal-timeline__resource-dot", 3, "background-color", 4, "ngIf"], [1, "bm-cal-timeline__resource-name"], [1, "bm-cal-timeline__lane-content", 3, "dragover", "drop", "dragleave"], ["type", "button", 3, "class", "grid-column", "grid-row", "mousedown", "click", "dblclick", 4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "event", "isStart", "isEnd", "dayIndex", "daySpan", "column", "weekDates", "ghost", "clickThresholdMs", "isSelected", "eventClick", "selectEvent", "dragStart", "dragEnd", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "bm-cal-timeline__resource-dot"], ["type", "button", 3, "mousedown", "click", "dblclick"], [3, "eventClick", "selectEvent", "dragStart", "dragEnd", "event", "isStart", "isEnd", "dayIndex", "daySpan", "column", "weekDates", "ghost", "clickThresholdMs", "isSelected"]], template: function TimelineViewComponent_Template(rf, ctx) { if (rf & 1) {
|
|
271
|
+
static ɵfac = function TimelineViewComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TimelineViewComponent)(i0.ɵɵdirectiveInject(i1.CalendarPointerGestureService), i0.ɵɵdirectiveInject(i0.ElementRef)); };
|
|
272
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TimelineViewComponent, selectors: [["cal-timeline-view"]], inputs: { currentDate: "currentDate", days: "days", events: "events", visibleResources: "visibleResources", config: "config", previewEvent: "previewEvent", selectedEventId: "selectedEventId", selectedInstanceDate: "selectedInstanceDate" }, outputs: { eventClick: "eventClick", selectEvent: "selectEvent", clearSelection: "clearSelection", timelineCellClick: "timelineCellClick", timelineDrop: "timelineDrop", dragOverDate: "dragOverDate", hidePreviewEv: "hidePreviewEv", dragEnd: "dragEnd", dragStartEv: "dragStartEv", timelineDropInfo: "timelineDropInfo" }, features: [i0.ɵɵProvidersFeature([CalendarPointerGestureService])], decls: 3, vars: 2, consts: [["withResources", ""], [4, "ngIf", "ngIfElse"], [1, "bm-cal-timeline", "bm-cal-timeline--empty"], [1, "bm-cal-timeline"], [1, "bm-cal-timeline__header"], [1, "bm-cal-timeline__corner"], [3, "class", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "bm-cal-timeline__body"], ["class", "bm-cal-timeline__lane", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "bm-cal-timeline__lane"], [1, "bm-cal-timeline__resource-label"], ["class", "bm-cal-timeline__resource-dot", 3, "background-color", 4, "ngIf"], [1, "bm-cal-timeline__resource-name"], [1, "bm-cal-timeline__lane-content", 3, "dragover", "drop", "dragleave"], ["type", "button", 3, "class", "grid-column", "grid-row", "mousedown", "click", "dblclick", 4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "config", "event", "isStart", "isEnd", "dayIndex", "daySpan", "column", "weekDates", "ghost", "clickThresholdMs", "isSelected", "eventClick", "selectEvent", "dragStart", "dragEnd", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "bm-cal-timeline__resource-dot"], ["type", "button", 3, "mousedown", "click", "dblclick"], [3, "eventClick", "selectEvent", "dragStart", "dragEnd", "config", "event", "isStart", "isEnd", "dayIndex", "daySpan", "column", "weekDates", "ghost", "clickThresholdMs", "isSelected"]], template: function TimelineViewComponent_Template(rf, ctx) { if (rf & 1) {
|
|
212
273
|
i0.ɵɵtemplate(0, TimelineViewComponent_ng_container_0_Template, 3, 1, "ng-container", 1)(1, TimelineViewComponent_ng_template_1_Template, 6, 6, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
|
213
274
|
} if (rf & 2) {
|
|
214
275
|
const withResources_r10 = i0.ɵɵreference(2);
|
|
215
276
|
i0.ɵɵproperty("ngIf", ctx.visibleResources.length === 0)("ngIfElse", withResources_r10);
|
|
216
|
-
} }, dependencies: [CommonModule,
|
|
277
|
+
} }, dependencies: [CommonModule, i2.NgForOf, i2.NgIf, EventBarComponent], encapsulation: 2, changeDetection: 0 });
|
|
217
278
|
}
|
|
218
279
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimelineViewComponent, [{
|
|
219
280
|
type: Component,
|
|
220
281
|
args: [{
|
|
221
282
|
selector: 'cal-timeline-view',
|
|
283
|
+
providers: [CalendarPointerGestureService],
|
|
222
284
|
standalone: true,
|
|
223
285
|
imports: [CommonModule, EventBarComponent],
|
|
224
286
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
@@ -255,6 +317,7 @@ export class TimelineViewComponent {
|
|
|
255
317
|
<button *ngFor="let d of dates; let i = index; trackBy: trackDate"
|
|
256
318
|
type="button"
|
|
257
319
|
[class]="'bm-cal-timeline__cell' + (isToday(d) ? ' bm-cal-timeline__cell--today' : '')"
|
|
320
|
+
[attr.aria-label]="r.name + ', ' + formatDate(d)"
|
|
258
321
|
[style.grid-column]="i + 1"
|
|
259
322
|
[style.grid-row]="'1 / -1'"
|
|
260
323
|
(mousedown)="cellClick.markMouseDown()"
|
|
@@ -262,6 +325,7 @@ export class TimelineViewComponent {
|
|
|
262
325
|
(dblclick)="onCellDoubleClick($event, d, r.id)">
|
|
263
326
|
</button>
|
|
264
327
|
<cal-event-bar *ngFor="let item of itemsFor(r.id); let idx = index; trackBy: trackItem"
|
|
328
|
+
[config]="config"
|
|
265
329
|
[event]="item.segment.event"
|
|
266
330
|
[isStart]="item.segment.isStart"
|
|
267
331
|
[isEnd]="item.segment.isEnd"
|
|
@@ -284,7 +348,7 @@ export class TimelineViewComponent {
|
|
|
284
348
|
</ng-template>
|
|
285
349
|
`,
|
|
286
350
|
}]
|
|
287
|
-
}],
|
|
351
|
+
}], () => [{ type: i1.CalendarPointerGestureService }, { type: i0.ElementRef }], { currentDate: [{
|
|
288
352
|
type: Input
|
|
289
353
|
}], days: [{
|
|
290
354
|
type: Input
|
|
@@ -318,6 +382,8 @@ export class TimelineViewComponent {
|
|
|
318
382
|
type: Output
|
|
319
383
|
}], dragStartEv: [{
|
|
320
384
|
type: Output
|
|
385
|
+
}], timelineDropInfo: [{
|
|
386
|
+
type: Output
|
|
321
387
|
}] }); })();
|
|
322
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TimelineViewComponent, { className: "TimelineViewComponent", filePath: "views/timeline/timelineview.ts", lineNumber:
|
|
388
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TimelineViewComponent, { className: "TimelineViewComponent", filePath: "views/timeline/timelineview.ts", lineNumber: 87 }); })();
|
|
323
389
|
//# sourceMappingURL=TimelineView.js.map
|