@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 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceView.d.ts","sourceRoot":"","sources":["../../../src/views/resource/ResourceView.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,aAAa,EAAa,UAAU,EAAE,MAAM,eAAe,CAAC;AAE7G,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAOxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;;AAIhF,qBAsEa,qBAAsB,YAAW,aAAa;IAChD,WAAW,EAAG,gBAAgB,CAAC;IAC/B,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;cAAQ,MAAM;oBAAc,MAAM;cAAQ,OAAO;OAAM;IACpH,YAAY;eAA6B,SAAS;cAAQ,gBAAgB;cAAQ,MAAM;oBAAc,MAAM;OAAM;IAClH,gBAAgB;cAA4B,gBAAgB;cAAQ,MAAM;OAAM;IAC1F,yEAAyE;IAC/D,aAAa,qBAA4B;IACnD,sEAAsE;IAC5D,OAAO,qBAA4B;IACnC,WAAW,oBAA2B;IAEvB,UAAU,EAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IACvC,WAAW,EAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAEnE,KAAK,WAAS;IACd,UAAU,SAAuB;IACjC,cAAc,SAAgC;IAC9C,KAAK,mDAAuB;IAE5B,eAAe;IAMf,IAAI,KAAK,qBAAqE;IAC9E,IAAI,OAAO,YAAsD;IACjE,IAAI,OAAO,WAAuG;IAClH,IAAI,QAAQ,WAAiE;IAE7E,IAAI,QAAQ,WAEX;IAED,OAAO,CAAC,GAAG,EAAE,MAAM;IAInB;;;OAGG;IACH,IAAI,aAAa,IAAI,aAAa,EAAE,CAInC;IAED;;;;OAIG;IACH,IAAI,YAAY,IAAI;QAAE,KAAK,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,EAAE,CA2BtE;IAED,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IAUrE,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAK7B,UAAU,CAAC,CAAC,EAAE,MAAM;IAEpB,UAAU,CAAC,CAAC,EAAE,UAAU;IAOxB,gBAAgB,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM;IASlD,cAAc,CAAC,CAAC,EAAE,SAAS;IAQ3B,UAAU,CAAC,CAAC,EAAE,SAAS;IASvB,eAAe,CAAC,CAAC,EAAE,SAAS;IAS5B,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ;IACpC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa;yCAxJ5B,qBAAqB;2CAArB,qBAAqB;CAyJjC"}
|
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { isSameDay, now, startOfDay, addDays, getHours, getMinutes, createTimeRange, overlaps, formatDateTime, segmentTimed, layoutTimed, } from '@bimetal/calendar-core';
|
|
4
|
+
import { snapTimeFromMouseY } from '../../binding/index.js';
|
|
5
|
+
import { DEFAULT_HOUR_HEIGHT, DEFAULT_TIME_LABEL_WIDTH_DAY, DEFAULT_SCROLL_HOUR, createClickIntent } from '@bimetal/calendar-headless';
|
|
6
|
+
import { TimeEventComponent } from '../week/TimeEvent.js';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common";
|
|
9
|
+
const _c0 = ["timeGridEl"];
|
|
10
|
+
const _c1 = ["gridInnerEl"];
|
|
11
|
+
function ResourceViewComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
12
|
+
i0.ɵɵelementContainerStart(0);
|
|
13
|
+
i0.ɵɵelementStart(1, "div", 4);
|
|
14
|
+
i0.ɵɵtext(2);
|
|
15
|
+
i0.ɵɵelementEnd();
|
|
16
|
+
i0.ɵɵelementContainerEnd();
|
|
17
|
+
} if (rf & 2) {
|
|
18
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
19
|
+
i0.ɵɵadvance(2);
|
|
20
|
+
i0.ɵɵtextInterpolate(ctx_r0.config.locale.unassigned || "No resource selected");
|
|
21
|
+
} }
|
|
22
|
+
function ResourceViewComponent_ng_template_1_div_6_span_1_Template(rf, ctx) { if (rf & 1) {
|
|
23
|
+
i0.ɵɵelement(0, "span", 20);
|
|
24
|
+
} if (rf & 2) {
|
|
25
|
+
const r_r3 = i0.ɵɵnextContext().$implicit;
|
|
26
|
+
i0.ɵɵstyleProp("background-color", r_r3.color);
|
|
27
|
+
} }
|
|
28
|
+
function ResourceViewComponent_ng_template_1_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
29
|
+
i0.ɵɵelementStart(0, "div", 17);
|
|
30
|
+
i0.ɵɵtemplate(1, ResourceViewComponent_ng_template_1_div_6_span_1_Template, 1, 2, "span", 18);
|
|
31
|
+
i0.ɵɵelementStart(2, "span", 19);
|
|
32
|
+
i0.ɵɵtext(3);
|
|
33
|
+
i0.ɵɵelementEnd()();
|
|
34
|
+
} if (rf & 2) {
|
|
35
|
+
const r_r3 = ctx.$implicit;
|
|
36
|
+
i0.ɵɵadvance();
|
|
37
|
+
i0.ɵɵproperty("ngIf", r_r3.color);
|
|
38
|
+
i0.ɵɵadvance(2);
|
|
39
|
+
i0.ɵɵtextInterpolate(r_r3.name);
|
|
40
|
+
} }
|
|
41
|
+
function ResourceViewComponent_ng_template_1_div_11_Template(rf, ctx) { if (rf & 1) {
|
|
42
|
+
i0.ɵɵelementStart(0, "div")(1, "div", 21);
|
|
43
|
+
i0.ɵɵtext(2);
|
|
44
|
+
i0.ɵɵelementEnd()();
|
|
45
|
+
} if (rf & 2) {
|
|
46
|
+
const h_r4 = ctx.$implicit;
|
|
47
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
48
|
+
i0.ɵɵclassMap("resource-view__hour-row" + (ctx_r0.isOffHour(h_r4) ? " hour-slot--off" : ""));
|
|
49
|
+
i0.ɵɵstyleProp("top", h_r4 * ctx_r0.hourHeight, "px")("height", ctx_r0.hourHeight, "px");
|
|
50
|
+
i0.ɵɵadvance(2);
|
|
51
|
+
i0.ɵɵtextInterpolate(h_r4 > 0 ? ctx_r0.formatHour(h_r4) : "");
|
|
52
|
+
} }
|
|
53
|
+
function ResourceViewComponent_ng_template_1_div_12_Template(rf, ctx) { if (rf & 1) {
|
|
54
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
55
|
+
i0.ɵɵelementStart(0, "div", 22);
|
|
56
|
+
i0.ɵɵlistener("mousedown", function ResourceViewComponent_ng_template_1_div_12_Template_div_mousedown_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.click.markMouseDown()); })("click", function ResourceViewComponent_ng_template_1_div_12_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onColClick($event)); })("dblclick", function ResourceViewComponent_ng_template_1_div_12_Template_div_dblclick_0_listener($event) { const r_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.onColDoubleClick($event, r_r6.id)); });
|
|
57
|
+
i0.ɵɵelementEnd();
|
|
58
|
+
} if (rf & 2) {
|
|
59
|
+
const i_r7 = ctx.index;
|
|
60
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
61
|
+
i0.ɵɵstyleProp("left", ctx_r0.colLeft(i_r7))("width", ctx_r0.colWidth);
|
|
62
|
+
} }
|
|
63
|
+
function ResourceViewComponent_ng_template_1_cal_time_event_13_Template(rf, ctx) { if (rf & 1) {
|
|
64
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
65
|
+
i0.ɵɵelementStart(0, "cal-time-event", 23);
|
|
66
|
+
i0.ɵɵlistener("eventClick", function ResourceViewComponent_ng_template_1_cal_time_event_13_Template_cal_time_event_eventClick_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.eventClick.emit($event)); })("selectEvent", function ResourceViewComponent_ng_template_1_cal_time_event_13_Template_cal_time_event_selectEvent_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.selectEvent.emit($event)); })("dragStart", function ResourceViewComponent_ng_template_1_cal_time_event_13_Template_cal_time_event_dragStart_0_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.dragStartEv.emit($event)); })("dragEnd", function ResourceViewComponent_ng_template_1_cal_time_event_13_Template_cal_time_event_dragEnd_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.dragEnd.emit()); });
|
|
67
|
+
i0.ɵɵelementEnd();
|
|
68
|
+
} if (rf & 2) {
|
|
69
|
+
const entry_r9 = ctx.$implicit;
|
|
70
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
71
|
+
i0.ɵɵproperty("event", entry_r9.event)("layout", entry_r9.layout)("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)("selectedEventId", ctx_r0.selectedEventId)("selectedInstanceDate", ctx_r0.selectedInstanceDate);
|
|
72
|
+
} }
|
|
73
|
+
function ResourceViewComponent_ng_template_1_div_14_Template(rf, ctx) { if (rf & 1) {
|
|
74
|
+
i0.ɵɵelementStart(0, "div", 24);
|
|
75
|
+
i0.ɵɵelement(1, "div", 25);
|
|
76
|
+
i0.ɵɵelementEnd();
|
|
77
|
+
} if (rf & 2) {
|
|
78
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
79
|
+
i0.ɵɵstyleProp("top", ctx_r0.nowHours * ctx_r0.hourHeight, "px")("left", ctx_r0.timeLabelWidth, "px");
|
|
80
|
+
} }
|
|
81
|
+
function ResourceViewComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
|
|
82
|
+
const _r2 = i0.ɵɵgetCurrentView();
|
|
83
|
+
i0.ɵɵelementStart(0, "div", 5)(1, "div", 6)(2, "div", 7);
|
|
84
|
+
i0.ɵɵtext(3);
|
|
85
|
+
i0.ɵɵelementEnd();
|
|
86
|
+
i0.ɵɵelementStart(4, "div", 8);
|
|
87
|
+
i0.ɵɵelement(5, "div", 9);
|
|
88
|
+
i0.ɵɵtemplate(6, ResourceViewComponent_ng_template_1_div_6_Template, 4, 2, "div", 10);
|
|
89
|
+
i0.ɵɵelementEnd()();
|
|
90
|
+
i0.ɵɵelementStart(7, "div", 11, 1)(9, "div", 12, 2);
|
|
91
|
+
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, 11, "cal-time-event", 15)(14, ResourceViewComponent_ng_template_1_div_14_Template, 2, 4, "div", 16);
|
|
93
|
+
i0.ɵɵelementEnd()()();
|
|
94
|
+
} if (rf & 2) {
|
|
95
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
96
|
+
i0.ɵɵadvance(3);
|
|
97
|
+
i0.ɵɵtextInterpolate(ctx_r0.dayName);
|
|
98
|
+
i0.ɵɵadvance(2);
|
|
99
|
+
i0.ɵɵstyleProp("width", ctx_r0.timeLabelWidth, "px");
|
|
100
|
+
i0.ɵɵadvance();
|
|
101
|
+
i0.ɵɵproperty("ngForOf", ctx_r0.visibleResources)("ngForTrackBy", ctx_r0.trackResource);
|
|
102
|
+
i0.ɵɵadvance(3);
|
|
103
|
+
i0.ɵɵstyleProp("height", 24 * ctx_r0.hourHeight, "px");
|
|
104
|
+
i0.ɵɵadvance(2);
|
|
105
|
+
i0.ɵɵproperty("ngForOf", ctx_r0.hours);
|
|
106
|
+
i0.ɵɵadvance();
|
|
107
|
+
i0.ɵɵproperty("ngForOf", ctx_r0.visibleResources)("ngForTrackBy", ctx_r0.trackResource);
|
|
108
|
+
i0.ɵɵadvance();
|
|
109
|
+
i0.ɵɵproperty("ngForOf", ctx_r0.timedEntries);
|
|
110
|
+
i0.ɵɵadvance();
|
|
111
|
+
i0.ɵɵproperty("ngIf", ctx_r0.isToday);
|
|
112
|
+
} }
|
|
113
|
+
const HOURS = Array.from({ length: 24 }, (_, i) => i);
|
|
114
|
+
export class ResourceViewComponent {
|
|
115
|
+
currentDate;
|
|
116
|
+
events = [];
|
|
117
|
+
visibleResources = [];
|
|
118
|
+
config;
|
|
119
|
+
// B-CAL-1: the controller already rebuilt the dragged event's geometry.
|
|
120
|
+
previewEvent = null;
|
|
121
|
+
selectedEventId = null;
|
|
122
|
+
selectedInstanceDate = undefined;
|
|
123
|
+
eventClick = new EventEmitter();
|
|
124
|
+
selectEvent = new EventEmitter();
|
|
125
|
+
clearSelection = new EventEmitter();
|
|
126
|
+
resourceCellClick = new EventEmitter();
|
|
127
|
+
resourceDrop = new EventEmitter();
|
|
128
|
+
dragOverDateTime = new EventEmitter();
|
|
129
|
+
/** Drop-Zone wurde verlassen (dragleave) — Preview visuell ausräumen. */
|
|
130
|
+
hidePreviewEv = new EventEmitter();
|
|
131
|
+
/** Native `dragend` der Source — Drag-Session vollständig beendet. */
|
|
132
|
+
dragEnd = new EventEmitter();
|
|
133
|
+
dragStartEv = new EventEmitter();
|
|
134
|
+
timeGridEl;
|
|
135
|
+
gridInnerEl;
|
|
136
|
+
hours = HOURS;
|
|
137
|
+
hourHeight = DEFAULT_HOUR_HEIGHT;
|
|
138
|
+
timeLabelWidth = DEFAULT_TIME_LABEL_WIDTH_DAY;
|
|
139
|
+
click = createClickIntent();
|
|
140
|
+
ngAfterViewInit() {
|
|
141
|
+
if (this.timeGridEl?.nativeElement) {
|
|
142
|
+
this.timeGridEl.nativeElement.scrollTop = DEFAULT_SCROLL_HOUR * DEFAULT_HOUR_HEIGHT;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
get today() { return now(this.config.core.timezone, this.config.core.clock); }
|
|
146
|
+
get isToday() { return isSameDay(this.currentDate, this.today); }
|
|
147
|
+
get dayName() { return formatDateTime(this.currentDate, { locale: this.config.locale.code, dateStyle: 'full' }); }
|
|
148
|
+
get nowHours() { return getHours(this.today) + getMinutes(this.today) / 60; }
|
|
149
|
+
get colWidth() {
|
|
150
|
+
return `calc((100% - ${this.timeLabelWidth}px) / ${this.visibleResources.length})`;
|
|
151
|
+
}
|
|
152
|
+
colLeft(idx) {
|
|
153
|
+
return `calc(${this.timeLabelWidth}px + ${idx} * ${this.colWidth})`;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* B-CAL-1: swap in the controller-rebuilt event so the ghost moves with the
|
|
157
|
+
* cursor — geometry comes from the controller, the view parses nothing.
|
|
158
|
+
*/
|
|
159
|
+
get displayEvents() {
|
|
160
|
+
const pe = this.previewEvent;
|
|
161
|
+
if (!pe)
|
|
162
|
+
return this.events;
|
|
163
|
+
return this.events.map(ev => ev.id === pe.id ? { ...ev, timeRange: pe.timeRange } : ev);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Lane-Layout pro Resource durch den Core (Pilot-Direktive 2026-06-21).
|
|
167
|
+
* dayCol = Resource-Index, lane/laneCount aus layoutTimed pro Resource
|
|
168
|
+
* — Überlapper in r1 dürfen die Spalte r2 nicht halbieren.
|
|
169
|
+
*/
|
|
170
|
+
get timedEntries() {
|
|
171
|
+
const dayStart = startOfDay(this.currentDate);
|
|
172
|
+
const dayEnd = addDays(dayStart, 1);
|
|
173
|
+
const dayRange = createTimeRange(dayStart, dayEnd);
|
|
174
|
+
const all = this.displayEvents;
|
|
175
|
+
const out = [];
|
|
176
|
+
for (let i = 0; i < this.visibleResources.length; i++) {
|
|
177
|
+
const r = this.visibleResources[i];
|
|
178
|
+
const own = all.filter(ev => !ev.allDay && ev.resourceId === r.id && overlaps(ev.timeRange, dayRange));
|
|
179
|
+
const items = layoutTimed(segmentTimed(own, this.currentDate));
|
|
180
|
+
for (const item of items) {
|
|
181
|
+
out.push({
|
|
182
|
+
event: item.segment.event,
|
|
183
|
+
layout: {
|
|
184
|
+
dayCol: i,
|
|
185
|
+
dayCount: this.visibleResources.length,
|
|
186
|
+
lane: item.column,
|
|
187
|
+
laneCount: item.totalColumns,
|
|
188
|
+
startOffset: item.startOffset,
|
|
189
|
+
endOffset: item.endOffset,
|
|
190
|
+
},
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return out;
|
|
195
|
+
}
|
|
196
|
+
resourceFromX(clientX, gridInner) {
|
|
197
|
+
if (this.visibleResources.length === 0)
|
|
198
|
+
return null;
|
|
199
|
+
const rect = gridInner.getBoundingClientRect();
|
|
200
|
+
const x = clientX - rect.left - this.timeLabelWidth;
|
|
201
|
+
if (x < 0)
|
|
202
|
+
return null;
|
|
203
|
+
const cw = (rect.width - this.timeLabelWidth) / this.visibleResources.length;
|
|
204
|
+
const idx = Math.min(this.visibleResources.length - 1, Math.max(0, Math.floor(x / cw)));
|
|
205
|
+
return this.visibleResources[idx].id;
|
|
206
|
+
}
|
|
207
|
+
isOffHour(h) {
|
|
208
|
+
const wh = this.config.core.workingHours;
|
|
209
|
+
return wh ? h < wh.start || h >= wh.end : false;
|
|
210
|
+
}
|
|
211
|
+
formatHour(h) { return `${String(h).padStart(2, '0')}:00`; }
|
|
212
|
+
onColClick(e) {
|
|
213
|
+
if (!this.click.accept(this.config.clickThresholdMs))
|
|
214
|
+
return;
|
|
215
|
+
if (e.target.closest('.time-event'))
|
|
216
|
+
return;
|
|
217
|
+
// Single click deselects; create-dialog moves to dblclick.
|
|
218
|
+
if (this.selectedEventId !== null)
|
|
219
|
+
this.clearSelection.emit();
|
|
220
|
+
}
|
|
221
|
+
onColDoubleClick(e, resourceId) {
|
|
222
|
+
if (!this.click.accept(this.config.clickThresholdMs))
|
|
223
|
+
return;
|
|
224
|
+
if (!this.gridInnerEl?.nativeElement)
|
|
225
|
+
return;
|
|
226
|
+
if (e.target.closest('.time-event'))
|
|
227
|
+
return;
|
|
228
|
+
const time = snapTimeFromMouseY(e.clientY, this.gridInnerEl.nativeElement.getBoundingClientRect(), DEFAULT_HOUR_HEIGHT, this.config.core.granularity.day.minutes);
|
|
229
|
+
const rect = e.currentTarget.getBoundingClientRect();
|
|
230
|
+
this.resourceCellClick.emit({ date: this.currentDate, time, resourceId, rect });
|
|
231
|
+
}
|
|
232
|
+
onGridDragOver(e) {
|
|
233
|
+
e.preventDefault();
|
|
234
|
+
if (e.dataTransfer)
|
|
235
|
+
e.dataTransfer.dropEffect = 'move';
|
|
236
|
+
if (!this.gridInnerEl?.nativeElement)
|
|
237
|
+
return;
|
|
238
|
+
const time = snapTimeFromMouseY(e.clientY, this.gridInnerEl.nativeElement.getBoundingClientRect(), DEFAULT_HOUR_HEIGHT, this.config.core.granularity.day.minutes);
|
|
239
|
+
this.dragOverDateTime.emit({ date: this.currentDate, time });
|
|
240
|
+
}
|
|
241
|
+
onGridDrop(e) {
|
|
242
|
+
e.preventDefault();
|
|
243
|
+
if (!this.gridInnerEl?.nativeElement)
|
|
244
|
+
return;
|
|
245
|
+
const resourceId = this.resourceFromX(e.clientX, this.gridInnerEl.nativeElement);
|
|
246
|
+
if (!resourceId)
|
|
247
|
+
return;
|
|
248
|
+
const time = snapTimeFromMouseY(e.clientY, this.gridInnerEl.nativeElement.getBoundingClientRect(), DEFAULT_HOUR_HEIGHT, this.config.core.granularity.day.minutes);
|
|
249
|
+
this.resourceDrop.emit({ event: e, date: this.currentDate, time, resourceId });
|
|
250
|
+
}
|
|
251
|
+
onGridDragLeave(e) {
|
|
252
|
+
const el = e.currentTarget;
|
|
253
|
+
const rect = el.getBoundingClientRect();
|
|
254
|
+
if (e.clientX < rect.left || e.clientX > rect.right
|
|
255
|
+
|| e.clientY < rect.top || e.clientY > rect.bottom) {
|
|
256
|
+
this.hidePreviewEv.emit();
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
trackResource(_, r) { return r.id; }
|
|
260
|
+
trackEvent(_, ev) { return ev.id; }
|
|
261
|
+
static ɵfac = function ResourceViewComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ResourceViewComponent)(); };
|
|
262
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ResourceViewComponent, selectors: [["cal-resource-view"]], viewQuery: function ResourceViewComponent_Query(rf, ctx) { if (rf & 1) {
|
|
263
|
+
i0.ɵɵviewQuery(_c0, 5);
|
|
264
|
+
i0.ɵɵviewQuery(_c1, 5);
|
|
265
|
+
} if (rf & 2) {
|
|
266
|
+
let _t;
|
|
267
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.timeGridEl = _t.first);
|
|
268
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.gridInnerEl = _t.first);
|
|
269
|
+
} }, 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, "resource-view", "resource-view--empty"], [1, "resource-view"], [1, "resource-view__header"], [1, "resource-view__day-name"], [1, "resource-view__resources"], [1, "resource-view__time-spacer"], ["class", "resource-view__resource-header", "style", "flex: 1 1 0; min-width: 0;", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "resource-view__time-grid"], [1, "resource-view__time-grid-inner", 3, "dragover", "drop", "dragleave"], [3, "class", "top", "height", 4, "ngFor", "ngForOf"], ["class", "resource-view__resource-col", 3, "left", "width", "mousedown", "click", "dblclick", 4, "ngFor", "ngForOf", "ngForTrackBy"], [3, "event", "layout", "dayDate", "hourHeight", "timeLabelWidth", "ghost", "clickThresholdMs", "locale", "snapMinutes", "selectedEventId", "selectedInstanceDate", "eventClick", "selectEvent", "dragStart", "dragEnd", 4, "ngFor", "ngForOf"], ["class", "resource-view__now-line", 3, "top", "left", 4, "ngIf"], [1, "resource-view__resource-header", 2, "flex", "1 1 0", "min-width", "0"], ["class", "resource-view__resource-dot", 3, "background-color", 4, "ngIf"], [1, "resource-view__resource-name"], [1, "resource-view__resource-dot"], [1, "resource-view__hour-label"], [1, "resource-view__resource-col", 3, "mousedown", "click", "dblclick"], [3, "eventClick", "selectEvent", "dragStart", "dragEnd", "event", "layout", "dayDate", "hourHeight", "timeLabelWidth", "ghost", "clickThresholdMs", "locale", "snapMinutes", "selectedEventId", "selectedInstanceDate"], [1, "resource-view__now-line"], [1, "resource-view__now-dot"]], template: function ResourceViewComponent_Template(rf, ctx) { if (rf & 1) {
|
|
270
|
+
i0.ɵɵtemplate(0, ResourceViewComponent_ng_container_0_Template, 3, 1, "ng-container", 3)(1, ResourceViewComponent_ng_template_1_Template, 15, 12, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
|
|
271
|
+
} if (rf & 2) {
|
|
272
|
+
const withResources_r10 = i0.ɵɵreference(2);
|
|
273
|
+
i0.ɵɵproperty("ngIf", ctx.visibleResources.length === 0)("ngIfElse", withResources_r10);
|
|
274
|
+
} }, dependencies: [CommonModule, i1.NgForOf, i1.NgIf, TimeEventComponent], encapsulation: 2 });
|
|
275
|
+
}
|
|
276
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ResourceViewComponent, [{
|
|
277
|
+
type: Component,
|
|
278
|
+
args: [{
|
|
279
|
+
selector: 'cal-resource-view',
|
|
280
|
+
standalone: true,
|
|
281
|
+
host: { style: 'display: contents' },
|
|
282
|
+
imports: [CommonModule, TimeEventComponent],
|
|
283
|
+
template: `
|
|
284
|
+
<ng-container *ngIf="visibleResources.length === 0; else withResources">
|
|
285
|
+
<div class="resource-view resource-view--empty">{{ config.locale.unassigned || 'No resource selected' }}</div>
|
|
286
|
+
</ng-container>
|
|
287
|
+
<ng-template #withResources>
|
|
288
|
+
<div class="resource-view">
|
|
289
|
+
<div class="resource-view__header">
|
|
290
|
+
<div class="resource-view__day-name">{{ dayName }}</div>
|
|
291
|
+
<div class="resource-view__resources">
|
|
292
|
+
<div class="resource-view__time-spacer" [style.width.px]="timeLabelWidth"></div>
|
|
293
|
+
<div *ngFor="let r of visibleResources; trackBy: trackResource"
|
|
294
|
+
class="resource-view__resource-header"
|
|
295
|
+
style="flex: 1 1 0; min-width: 0;">
|
|
296
|
+
<span *ngIf="r.color" class="resource-view__resource-dot" [style.background-color]="r.color"></span>
|
|
297
|
+
<span class="resource-view__resource-name">{{ r.name }}</span>
|
|
298
|
+
</div>
|
|
299
|
+
</div>
|
|
300
|
+
</div>
|
|
301
|
+
|
|
302
|
+
<div #timeGridEl class="resource-view__time-grid">
|
|
303
|
+
<div #gridInnerEl class="resource-view__time-grid-inner"
|
|
304
|
+
[style.height.px]="24 * hourHeight"
|
|
305
|
+
(dragover)="onGridDragOver($event)"
|
|
306
|
+
(drop)="onGridDrop($event)"
|
|
307
|
+
(dragleave)="onGridDragLeave($event)">
|
|
308
|
+
<div *ngFor="let h of hours"
|
|
309
|
+
[class]="'resource-view__hour-row' + (isOffHour(h) ? ' hour-slot--off' : '')"
|
|
310
|
+
[style.top.px]="h * hourHeight" [style.height.px]="hourHeight">
|
|
311
|
+
<div class="resource-view__hour-label">{{ h > 0 ? formatHour(h) : '' }}</div>
|
|
312
|
+
</div>
|
|
313
|
+
|
|
314
|
+
<!-- Click-target columns; drag handlers live on the grid-inner above -->
|
|
315
|
+
<div *ngFor="let r of visibleResources; let i = index; trackBy: trackResource"
|
|
316
|
+
class="resource-view__resource-col"
|
|
317
|
+
[style.left]="colLeft(i)"
|
|
318
|
+
[style.width]="colWidth"
|
|
319
|
+
(mousedown)="click.markMouseDown()"
|
|
320
|
+
(click)="onColClick($event)"
|
|
321
|
+
(dblclick)="onColDoubleClick($event, r.id)">
|
|
322
|
+
</div>
|
|
323
|
+
<!-- Events as siblings: TimeEvent positions relative to the full grid -->
|
|
324
|
+
<cal-time-event *ngFor="let entry of timedEntries"
|
|
325
|
+
[event]="entry.event" [layout]="entry.layout" [dayDate]="currentDate"
|
|
326
|
+
[hourHeight]="hourHeight" [timeLabelWidth]="timeLabelWidth"
|
|
327
|
+
[ghost]="previewEvent?.id === entry.event.id"
|
|
328
|
+
[clickThresholdMs]="config.clickThresholdMs" [locale]="config.locale"
|
|
329
|
+
[snapMinutes]="config.core.granularity.day.minutes"
|
|
330
|
+
[selectedEventId]="selectedEventId"
|
|
331
|
+
[selectedInstanceDate]="selectedInstanceDate"
|
|
332
|
+
(eventClick)="eventClick.emit($event)"
|
|
333
|
+
(selectEvent)="selectEvent.emit($event)"
|
|
334
|
+
(dragStart)="dragStartEv.emit($event)"
|
|
335
|
+
(dragEnd)="dragEnd.emit()">
|
|
336
|
+
</cal-time-event>
|
|
337
|
+
|
|
338
|
+
<div *ngIf="isToday" class="resource-view__now-line"
|
|
339
|
+
[style.top.px]="nowHours * hourHeight" [style.left.px]="timeLabelWidth">
|
|
340
|
+
<div class="resource-view__now-dot"></div>
|
|
341
|
+
</div>
|
|
342
|
+
</div>
|
|
343
|
+
</div>
|
|
344
|
+
</div>
|
|
345
|
+
</ng-template>
|
|
346
|
+
`,
|
|
347
|
+
}]
|
|
348
|
+
}], null, { currentDate: [{
|
|
349
|
+
type: Input
|
|
350
|
+
}], events: [{
|
|
351
|
+
type: Input
|
|
352
|
+
}], visibleResources: [{
|
|
353
|
+
type: Input
|
|
354
|
+
}], config: [{
|
|
355
|
+
type: Input
|
|
356
|
+
}], previewEvent: [{
|
|
357
|
+
type: Input
|
|
358
|
+
}], selectedEventId: [{
|
|
359
|
+
type: Input
|
|
360
|
+
}], selectedInstanceDate: [{
|
|
361
|
+
type: Input
|
|
362
|
+
}], eventClick: [{
|
|
363
|
+
type: Output
|
|
364
|
+
}], selectEvent: [{
|
|
365
|
+
type: Output
|
|
366
|
+
}], clearSelection: [{
|
|
367
|
+
type: Output
|
|
368
|
+
}], resourceCellClick: [{
|
|
369
|
+
type: Output
|
|
370
|
+
}], resourceDrop: [{
|
|
371
|
+
type: Output
|
|
372
|
+
}], dragOverDateTime: [{
|
|
373
|
+
type: Output
|
|
374
|
+
}], hidePreviewEv: [{
|
|
375
|
+
type: Output
|
|
376
|
+
}], dragEnd: [{
|
|
377
|
+
type: Output
|
|
378
|
+
}], dragStartEv: [{
|
|
379
|
+
type: Output
|
|
380
|
+
}], timeGridEl: [{
|
|
381
|
+
type: ViewChild,
|
|
382
|
+
args: ['timeGridEl']
|
|
383
|
+
}], gridInnerEl: [{
|
|
384
|
+
type: ViewChild,
|
|
385
|
+
args: ['gridInnerEl']
|
|
386
|
+
}] }); })();
|
|
387
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ResourceViewComponent, { className: "ResourceViewComponent", filePath: "views/resource/resourceview.ts", lineNumber: 87 }); })();
|
|
388
|
+
//# sourceMappingURL=ResourceView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceView.js","sourceRoot":"","sources":["../../../src/views/resource/ResourceView.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import type { CalendarEvent, CalendarDateTime, Resource, LayoutItem } from '@bimetal/calendar-core';
|
|
3
|
+
import type { CalendarConfig } from '../../binding/index.js';
|
|
4
|
+
import type { DragInfo } from '@bimetal/calendar-headless';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class TimelineViewComponent {
|
|
7
|
+
currentDate: CalendarDateTime;
|
|
8
|
+
days: number;
|
|
9
|
+
events: CalendarEvent[];
|
|
10
|
+
visibleResources: readonly Resource[];
|
|
11
|
+
config: CalendarConfig;
|
|
12
|
+
previewEvent: CalendarEvent | null;
|
|
13
|
+
selectedEventId: string | null;
|
|
14
|
+
selectedInstanceDate: number | undefined;
|
|
15
|
+
eventClick: EventEmitter<{
|
|
16
|
+
eventId: string;
|
|
17
|
+
rect: DOMRect;
|
|
18
|
+
instanceDate?: number;
|
|
19
|
+
}>;
|
|
20
|
+
selectEvent: EventEmitter<{
|
|
21
|
+
eventId: string;
|
|
22
|
+
instanceDate?: number;
|
|
23
|
+
}>;
|
|
24
|
+
clearSelection: EventEmitter<void>;
|
|
25
|
+
timelineCellClick: EventEmitter<{
|
|
26
|
+
date: CalendarDateTime;
|
|
27
|
+
resourceId: string;
|
|
28
|
+
rect: DOMRect;
|
|
29
|
+
}>;
|
|
30
|
+
timelineDrop: EventEmitter<{
|
|
31
|
+
event: DragEvent;
|
|
32
|
+
date: CalendarDateTime;
|
|
33
|
+
resourceId: string;
|
|
34
|
+
}>;
|
|
35
|
+
dragOverDate: EventEmitter<CalendarDateTime>;
|
|
36
|
+
/** Drop-Zone wurde verlassen (dragleave) — Preview visuell ausräumen. */
|
|
37
|
+
hidePreviewEv: EventEmitter<void>;
|
|
38
|
+
/** Native `dragend` der Source — Drag-Session vollständig beendet. */
|
|
39
|
+
dragEnd: EventEmitter<void>;
|
|
40
|
+
dragStartEv: EventEmitter<DragInfo>;
|
|
41
|
+
resourceLabelW: number;
|
|
42
|
+
get dates(): CalendarDateTime[];
|
|
43
|
+
get colTemplate(): string;
|
|
44
|
+
private get _today();
|
|
45
|
+
private get _dateFmt();
|
|
46
|
+
isToday(d: CalendarDateTime): boolean;
|
|
47
|
+
formatDate(d: CalendarDateTime): string;
|
|
48
|
+
/**
|
|
49
|
+
* B-CAL-1: the day-shift dance that preserved time-of-day now lives in the
|
|
50
|
+
* controller (`computeMoveRange` is a pure addDays). Just swap the rebuilt
|
|
51
|
+
* event in by id — the timeline no longer reconstructs anything.
|
|
52
|
+
*/
|
|
53
|
+
get displayEvents(): CalendarEvent[];
|
|
54
|
+
itemsFor(resourceId: string): LayoutItem[];
|
|
55
|
+
private dayFromX;
|
|
56
|
+
onLaneDragOver(e: DragEvent): void;
|
|
57
|
+
onLaneDrop(e: DragEvent, resourceId: string): void;
|
|
58
|
+
onLaneDragLeave(e: DragEvent): void;
|
|
59
|
+
laneHeight(resourceId: string): number;
|
|
60
|
+
cellClick: import("@bimetal/calendar-headless").ClickIntent;
|
|
61
|
+
onCellClick(): void;
|
|
62
|
+
onCellDoubleClick(e: MouseEvent, date: CalendarDateTime, resourceId: string): void;
|
|
63
|
+
trackResource(_: number, r: Resource): string;
|
|
64
|
+
trackDate(_: number, d: CalendarDateTime): number;
|
|
65
|
+
trackItem(_: number, item: LayoutItem): string;
|
|
66
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TimelineViewComponent, never>;
|
|
67
|
+
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>;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=TimelineView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimelineView.d.ts","sourceRoot":"","sources":["../../../src/views/timeline/TimelineView.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAA2B,MAAM,eAAe,CAAC;AAEhG,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAKpG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;;AAK3D,qBA+Da,qBAAqB;IACvB,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;IAErD,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,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,EAAE;IAM1C,OAAO,CAAC,QAAQ;IAQhB,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;yCAlH1B,qBAAqB;2CAArB,qBAAqB;CAmHjC"}
|