@bimetal/calendar-angular-components 0.35.0 → 0.37.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.
Files changed (74) hide show
  1. package/dist/binding/controller.d.ts +10 -1
  2. package/dist/binding/controller.d.ts.map +1 -1
  3. package/dist/binding/controller.js +11 -1
  4. package/dist/binding/controller.js.map +1 -1
  5. package/dist/binding/index.d.ts +4 -2
  6. package/dist/binding/index.d.ts.map +1 -1
  7. package/dist/binding/index.js +5 -2
  8. package/dist/binding/index.js.map +1 -1
  9. package/dist/binding/services/pointer-gesture.service.d.ts +52 -0
  10. package/dist/binding/services/pointer-gesture.service.d.ts.map +1 -0
  11. package/dist/binding/services/pointer-gesture.service.js +83 -0
  12. package/dist/binding/services/pointer-gesture.service.js.map +1 -0
  13. package/dist/components/Calendar.d.ts +20 -4
  14. package/dist/components/Calendar.d.ts.map +1 -1
  15. package/dist/components/Calendar.js +133 -31
  16. package/dist/components/Calendar.js.map +1 -1
  17. package/dist/components/CalendarHeader.d.ts +3 -0
  18. package/dist/components/CalendarHeader.d.ts.map +1 -1
  19. package/dist/components/CalendarHeader.js +10 -4
  20. package/dist/components/CalendarHeader.js.map +1 -1
  21. package/dist/components/CategoryFilter.d.ts +3 -0
  22. package/dist/components/CategoryFilter.d.ts.map +1 -1
  23. package/dist/components/CategoryFilter.js +9 -5
  24. package/dist/components/CategoryFilter.js.map +1 -1
  25. package/dist/components/EventBar.d.ts +11 -4
  26. package/dist/components/EventBar.d.ts.map +1 -1
  27. package/dist/components/EventBar.js +87 -32
  28. package/dist/components/EventBar.js.map +1 -1
  29. package/dist/components/EventDialog.d.ts +12 -6
  30. package/dist/components/EventDialog.d.ts.map +1 -1
  31. package/dist/components/EventDialog.js +122 -45
  32. package/dist/components/EventDialog.js.map +1 -1
  33. package/dist/components/EventHistory.d.ts +14 -10
  34. package/dist/components/EventHistory.d.ts.map +1 -1
  35. package/dist/components/EventHistory.js +59 -56
  36. package/dist/components/EventHistory.js.map +1 -1
  37. package/dist/styles/index.css.d.ts +3 -0
  38. package/dist/views/day/DayView.d.ts +26 -4
  39. package/dist/views/day/DayView.d.ts.map +1 -1
  40. package/dist/views/day/DayView.js +56 -17
  41. package/dist/views/day/DayView.js.map +1 -1
  42. package/dist/views/month/MonthView.d.ts +14 -3
  43. package/dist/views/month/MonthView.d.ts.map +1 -1
  44. package/dist/views/month/MonthView.js +55 -7
  45. package/dist/views/month/MonthView.js.map +1 -1
  46. package/dist/views/month/WeekRow.d.ts +19 -3
  47. package/dist/views/month/WeekRow.d.ts.map +1 -1
  48. package/dist/views/month/WeekRow.js +73 -34
  49. package/dist/views/month/WeekRow.js.map +1 -1
  50. package/dist/views/resource/ResourceView.d.ts +28 -1
  51. package/dist/views/resource/ResourceView.d.ts.map +1 -1
  52. package/dist/views/resource/ResourceView.js +78 -21
  53. package/dist/views/resource/ResourceView.js.map +1 -1
  54. package/dist/views/timeline/TimelineView.d.ts +25 -3
  55. package/dist/views/timeline/TimelineView.d.ts.map +1 -1
  56. package/dist/views/timeline/TimelineView.js +77 -16
  57. package/dist/views/timeline/TimelineView.js.map +1 -1
  58. package/dist/views/week/AllDayRow.d.ts +16 -3
  59. package/dist/views/week/AllDayRow.d.ts.map +1 -1
  60. package/dist/views/week/AllDayRow.js +47 -10
  61. package/dist/views/week/AllDayRow.js.map +1 -1
  62. package/dist/views/week/TimeEvent.d.ts +11 -4
  63. package/dist/views/week/TimeEvent.d.ts.map +1 -1
  64. package/dist/views/week/TimeEvent.js +76 -26
  65. package/dist/views/week/TimeEvent.js.map +1 -1
  66. package/dist/views/week/WeekView.d.ts +16 -1
  67. package/dist/views/week/WeekView.d.ts.map +1 -1
  68. package/dist/views/week/WeekView.js +53 -18
  69. package/dist/views/week/WeekView.js.map +1 -1
  70. package/dist/views/year/YearView.d.ts +2 -0
  71. package/dist/views/year/YearView.d.ts.map +1 -1
  72. package/dist/views/year/YearView.js +17 -1
  73. package/dist/views/year/YearView.js.map +1 -1
  74. package/package.json +17 -13
@@ -2,17 +2,21 @@ import { Component, Input, Output, EventEmitter, Optional, ChangeDetectionStrate
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { isSameDay } from '@bimetal/temporal';
4
4
  import { getRecurrenceInstanceMetadata } from '@bimetal/calendar-core';
5
- import { buildDragInfo, createClickIntent, writeCalendarDragData, installTransparentDragImage } from '@bimetal/calendar-headless';
5
+ import { buildDragInfo, createClickIntent, writeCalendarDragData } from '@bimetal/calendar-headless';
6
+ import { installTransparentDragImage } from '@bimetal/a11y-dom';
6
7
  import { probeRender } from '@bimetal/angular';
7
- import { toTimeStr, EventRenderService } from '../../binding/index.js';
8
+ import { EventRenderService, CalendarPointerGestureService, formatTime } from '../../binding/index.js';
8
9
  import * as i0 from "@angular/core";
9
10
  import * as i1 from "../../binding/index.js";
10
11
  import * as i2 from "@angular/common";
11
12
  function TimeEventComponent_div_1_Template(rf, ctx) { if (rf & 1) {
12
13
  const _r2 = i0.ɵɵgetCurrentView();
13
14
  i0.ɵɵelementStart(0, "div", 6);
14
- i0.ɵɵlistener("dragstart", function TimeEventComponent_div_1_Template_div_dragstart_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.handleResizeDragStart($event, "start")); })("dragend", function TimeEventComponent_div_1_Template_div_dragend_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.dragEnd.emit()); })("mousedown", function TimeEventComponent_div_1_Template_div_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r2); return i0.ɵɵresetView($event.stopPropagation()); });
15
+ i0.ɵɵlistener("pointerdown", function TimeEventComponent_div_1_Template_div_pointerdown_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.handleResizePointerDown($event, "start")); })("dragstart", function TimeEventComponent_div_1_Template_div_dragstart_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.pointerMode || ctx_r2.handleResizeDragStart($event, "start")); })("dragend", function TimeEventComponent_div_1_Template_div_dragend_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.pointerMode || ctx_r2.dragEnd.emit()); })("mousedown", function TimeEventComponent_div_1_Template_div_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r2); return i0.ɵɵresetView($event.stopPropagation()); });
15
16
  i0.ɵɵelementEnd();
17
+ } if (rf & 2) {
18
+ const ctx_r2 = i0.ɵɵnextContext();
19
+ i0.ɵɵattribute("draggable", ctx_r2.pointerMode ? null : true);
16
20
  } }
17
21
  function TimeEventComponent_ng_container_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
18
22
  i0.ɵɵelementContainer(0);
@@ -62,8 +66,11 @@ function TimeEventComponent_ng_container_5_Template(rf, ctx) { if (rf & 1) {
62
66
  function TimeEventComponent_div_6_Template(rf, ctx) { if (rf & 1) {
63
67
  const _r4 = i0.ɵɵgetCurrentView();
64
68
  i0.ɵɵelementStart(0, "div", 11);
65
- i0.ɵɵlistener("dragstart", function TimeEventComponent_div_6_Template_div_dragstart_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.handleResizeDragStart($event, "end")); })("dragend", function TimeEventComponent_div_6_Template_div_dragend_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.dragEnd.emit()); })("mousedown", function TimeEventComponent_div_6_Template_div_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r4); return i0.ɵɵresetView($event.stopPropagation()); });
69
+ i0.ɵɵlistener("pointerdown", function TimeEventComponent_div_6_Template_div_pointerdown_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.handleResizePointerDown($event, "end")); })("dragstart", function TimeEventComponent_div_6_Template_div_dragstart_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.pointerMode || ctx_r2.handleResizeDragStart($event, "end")); })("dragend", function TimeEventComponent_div_6_Template_div_dragend_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.pointerMode || ctx_r2.dragEnd.emit()); })("mousedown", function TimeEventComponent_div_6_Template_div_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r4); return i0.ɵɵresetView($event.stopPropagation()); });
66
70
  i0.ɵɵelementEnd();
71
+ } if (rf & 2) {
72
+ const ctx_r2 = i0.ɵɵnextContext();
73
+ i0.ɵɵattribute("draggable", ctx_r2.pointerMode ? null : true);
67
74
  } }
68
75
  /**
69
76
  * A single timed event rendered on a time grid (week/day/resource view);
@@ -72,7 +79,10 @@ function TimeEventComponent_div_6_Template(rf, ctx) { if (rf & 1) {
72
79
  */
73
80
  export class TimeEventComponent {
74
81
  renderService;
82
+ gesture;
75
83
  event;
84
+ /** Resolved calendar config (mcp-92: locale-aware time display). */
85
+ config;
76
86
  // v0.30 Slice 3: the six layout axes as FLAT primitive @Inputs (not the `layout` wrapper) so
77
87
  // OnPush compares by value.
78
88
  dayCol;
@@ -96,9 +106,14 @@ export class TimeEventComponent {
96
106
  /** Native `dragend` der Source — bubbelt aus Body und Resize-Handles. */
97
107
  dragEnd = new EventEmitter();
98
108
  click = createClickIntent();
99
- constructor(renderService) {
109
+ constructor(renderService,
110
+ // mcp-57 dual-mode: non-null when an ancestor VIEW provides the gesture
111
+ // FSM; null = native-DnD fallback (consumer views keep a working drag).
112
+ gesture) {
100
113
  this.renderService = renderService;
114
+ this.gesture = gesture;
101
115
  }
116
+ get pointerMode() { return !!this.gesture; }
102
117
  /** v0.30 Slice 3 perf probe: a template binding evaluates ONLY on a real view refresh
103
118
  * (unlike ngDoCheck), so this counts REAL leaf re-renders. Returns null → no attribute. */
104
119
  probe() { probeRender(this.event.id); return null; }
@@ -157,8 +172,8 @@ export class TimeEventComponent {
157
172
  + ((!p.draggable && !p.resizable && !p.editable && !p.deletable) ? ' bm-cal-time-event--locked' : '');
158
173
  }
159
174
  get timeLabel() {
160
- const st = toTimeStr(this.event.timeRange.start);
161
- const et = toTimeStr(this.event.timeRange.end);
175
+ const st = formatTime(this.event.timeRange.start, this.config.locale.code, this.config.core.timezone);
176
+ const et = formatTime(this.event.timeRange.end, this.config.locale.code, this.config.core.timezone);
162
177
  if (this.isFirstDay && this.isLastDay)
163
178
  return `${st} – ${et}`;
164
179
  if (this.isFirstDay)
@@ -168,6 +183,33 @@ export class TimeEventComponent {
168
183
  return '';
169
184
  }
170
185
  handleMouseDown() { this.click.markMouseDown(); }
186
+ handlePointerDown(e) {
187
+ if (!this.pointerMode)
188
+ return;
189
+ this.click.markMouseDown();
190
+ if (!this.canDrag)
191
+ return;
192
+ try {
193
+ e.currentTarget.setPointerCapture?.(e.pointerId);
194
+ }
195
+ catch { /* synthetic */ }
196
+ const rect = e.currentTarget.getBoundingClientRect();
197
+ const raw = ((e.clientY - rect.top) / this.hourHeight) * 60;
198
+ const minuteOffset = Math.round(raw / this.snapMinutes) * this.snapMinutes;
199
+ const info = buildDragInfo(this.event, 'move-timed', { minuteOffset });
200
+ this.gesture.onPointerDown(info, e.pointerId, e.clientX, e.clientY, () => this.click.markDragged());
201
+ }
202
+ handleResizePointerDown(e, edge) {
203
+ if (!this.pointerMode)
204
+ return;
205
+ e.stopPropagation();
206
+ try {
207
+ e.currentTarget.setPointerCapture?.(e.pointerId);
208
+ }
209
+ catch { /* synthetic */ }
210
+ const info = buildDragInfo(this.event, 'resize-timed', { edge });
211
+ this.gesture.onPointerDown(info, e.pointerId, e.clientX, e.clientY, () => this.click.markDragged());
212
+ }
171
213
  handleDragStart(e) {
172
214
  this.click.markDragged();
173
215
  const rect = e.currentTarget.getBoundingClientRect();
@@ -198,19 +240,19 @@ export class TimeEventComponent {
198
240
  const rect = e.currentTarget.getBoundingClientRect();
199
241
  this.eventClick.emit({ eventId: this.event.id, rect, instanceDate: this.instanceDate });
200
242
  }
201
- static ɵfac = function TimeEventComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TimeEventComponent)(i0.ɵɵdirectiveInject(i1.EventRenderService, 8)); };
202
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TimeEventComponent, selectors: [["cal-time-event"]], hostAttrs: [2, "display", "contents"], inputs: { event: "event", dayCol: "dayCol", dayCount: "dayCount", lane: "lane", laneCount: "laneCount", startOffset: "startOffset", endOffset: "endOffset", dayDate: "dayDate", hourHeight: "hourHeight", timeLabelWidth: "timeLabelWidth", ghost: "ghost", clickThresholdMs: "clickThresholdMs", snapMinutes: "snapMinutes", locale: "locale", isSelected: "isSelected" }, outputs: { eventClick: "eventClick", selectEvent: "selectEvent", dragStart: "dragStart", dragEnd: "dragEnd" }, decls: 7, vars: 27, consts: [["defaultContent", ""], [3, "mousedown", "dragstart", "dragend", "click", "dblclick", "ngStyle", "title"], ["class", "bm-cal-time-event__resize bm-cal-time-event__resize--top", "draggable", "true", 3, "dragstart", "dragend", "mousedown", 4, "ngIf"], [4, "ngIf", "ngIfElse"], [4, "ngIf"], ["class", "bm-cal-time-event__resize bm-cal-time-event__resize--bottom", "draggable", "true", 3, "dragstart", "dragend", "mousedown", 4, "ngIf"], ["draggable", "true", 1, "bm-cal-time-event__resize", "bm-cal-time-event__resize--top", 3, "dragstart", "dragend", "mousedown"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "bm-cal-time-event__title"], ["class", "bm-cal-time-event__time", 4, "ngIf"], [1, "bm-cal-time-event__time"], ["draggable", "true", 1, "bm-cal-time-event__resize", "bm-cal-time-event__resize--bottom", 3, "dragstart", "dragend", "mousedown"]], template: function TimeEventComponent_Template(rf, ctx) { if (rf & 1) {
243
+ static ɵfac = function TimeEventComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TimeEventComponent)(i0.ɵɵdirectiveInject(i1.EventRenderService, 8), i0.ɵɵdirectiveInject(i1.CalendarPointerGestureService, 8)); };
244
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TimeEventComponent, selectors: [["cal-time-event"]], hostAttrs: [2, "display", "contents"], inputs: { event: "event", config: "config", dayCol: "dayCol", dayCount: "dayCount", lane: "lane", laneCount: "laneCount", startOffset: "startOffset", endOffset: "endOffset", dayDate: "dayDate", hourHeight: "hourHeight", timeLabelWidth: "timeLabelWidth", ghost: "ghost", clickThresholdMs: "clickThresholdMs", snapMinutes: "snapMinutes", locale: "locale", isSelected: "isSelected" }, outputs: { eventClick: "eventClick", selectEvent: "selectEvent", dragStart: "dragStart", dragEnd: "dragEnd" }, decls: 7, vars: 27, consts: [["defaultContent", ""], [3, "pointerdown", "mousedown", "dragstart", "dragend", "click", "dblclick", "ngStyle", "title"], ["class", "bm-cal-time-event__resize bm-cal-time-event__resize--top", 3, "pointerdown", "dragstart", "dragend", "mousedown", 4, "ngIf"], [4, "ngIf", "ngIfElse"], [4, "ngIf"], ["class", "bm-cal-time-event__resize bm-cal-time-event__resize--bottom", 3, "pointerdown", "dragstart", "dragend", "mousedown", 4, "ngIf"], [1, "bm-cal-time-event__resize", "bm-cal-time-event__resize--top", 3, "pointerdown", "dragstart", "dragend", "mousedown"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "bm-cal-time-event__title"], ["class", "bm-cal-time-event__time", 4, "ngIf"], [1, "bm-cal-time-event__time"], [1, "bm-cal-time-event__resize", "bm-cal-time-event__resize--bottom", 3, "pointerdown", "dragstart", "dragend", "mousedown"]], template: function TimeEventComponent_Template(rf, ctx) { if (rf & 1) {
203
245
  const _r1 = i0.ɵɵgetCurrentView();
204
246
  i0.ɵɵelementStart(0, "div", 1);
205
- i0.ɵɵlistener("mousedown", function TimeEventComponent_Template_div_mousedown_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleMouseDown()); })("dragstart", function TimeEventComponent_Template_div_dragstart_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleDragStart($event)); })("dragend", function TimeEventComponent_Template_div_dragend_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.dragEnd.emit()); })("click", function TimeEventComponent_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleClick($event)); })("dblclick", function TimeEventComponent_Template_div_dblclick_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleDoubleClick($event)); });
206
- i0.ɵɵtemplate(1, TimeEventComponent_div_1_Template, 1, 0, "div", 2)(2, TimeEventComponent_ng_container_2_Template, 2, 2, "ng-container", 3)(3, TimeEventComponent_ng_template_3_Template, 3, 2, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(5, TimeEventComponent_ng_container_5_Template, 2, 2, "ng-container", 4)(6, TimeEventComponent_div_6_Template, 1, 0, "div", 5);
247
+ i0.ɵɵlistener("pointerdown", function TimeEventComponent_Template_div_pointerdown_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handlePointerDown($event)); })("mousedown", function TimeEventComponent_Template_div_mousedown_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.pointerMode || ctx.handleMouseDown()); })("dragstart", function TimeEventComponent_Template_div_dragstart_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.pointerMode || ctx.handleDragStart($event)); })("dragend", function TimeEventComponent_Template_div_dragend_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.pointerMode || ctx.dragEnd.emit()); })("click", function TimeEventComponent_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleClick($event)); })("dblclick", function TimeEventComponent_Template_div_dblclick_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleDoubleClick($event)); });
248
+ i0.ɵɵtemplate(1, TimeEventComponent_div_1_Template, 1, 1, "div", 2)(2, TimeEventComponent_ng_container_2_Template, 2, 2, "ng-container", 3)(3, TimeEventComponent_ng_template_3_Template, 3, 2, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(5, TimeEventComponent_ng_container_5_Template, 2, 2, "ng-container", 4)(6, TimeEventComponent_div_6_Template, 1, 1, "div", 5);
207
249
  i0.ɵɵelementEnd();
208
250
  } if (rf & 2) {
209
251
  const defaultContent_r5 = i0.ɵɵreference(4);
210
- i0.ɵɵclassMap("bm-cal-time-event" + (ctx.ghost ? " bm-cal-time-event--ghost" : "") + ctx.selectedClass + ctx.lockedClass + ctx.slotsClassName);
211
- i0.ɵɵstyleProp("top", ctx.top, "px")("height", ctx.height, "px")("left", ctx.left)("width", ctx.width)("background-color", ctx.color)("border-radius", ctx.borderRadius);
252
+ i0.ɵɵclassMap("bm-cal-time-event" + (ctx.ghost ? " bm-cal-time-event--ghost" : "") + (ctx.pointerMode && (ctx.canDrag || ctx.canResize) ? " bm-cal-time-event--pointer" : "") + ctx.selectedClass + ctx.lockedClass + ctx.slotsClassName);
253
+ i0.ɵɵstyleProp("top", ctx.top, "px")("height", ctx.height, "px")("inset-inline-start", ctx.left)("width", ctx.width)("background-color", ctx.color)("border-radius", ctx.borderRadius);
212
254
  i0.ɵɵproperty("ngStyle", ctx.slotsStyle)("title", ctx.renderedTitle);
213
- i0.ɵɵattribute("draggable", ctx.canDrag)("data-r", ctx.probe())("data-day-col", ctx.dayCol)("data-day-count", ctx.dayCount)("data-lane", ctx.lane)("data-lane-count", ctx.laneCount);
255
+ i0.ɵɵattribute("draggable", ctx.pointerMode ? null : ctx.canDrag)("data-r", ctx.probe())("data-day-col", ctx.dayCol)("data-day-count", ctx.dayCount)("data-lane", ctx.lane)("data-lane-count", ctx.laneCount);
214
256
  i0.ɵɵadvance();
215
257
  i0.ɵɵproperty("ngIf", ctx.isFirstDay && ctx.canResize);
216
258
  i0.ɵɵadvance();
@@ -230,26 +272,28 @@ export class TimeEventComponent {
230
272
  imports: [CommonModule],
231
273
  changeDetection: ChangeDetectionStrategy.OnPush,
232
274
  template: `
233
- <div [class]="'bm-cal-time-event' + (ghost ? ' bm-cal-time-event--ghost' : '') + selectedClass + lockedClass + slotsClassName"
275
+ <div [class]="'bm-cal-time-event' + (ghost ? ' bm-cal-time-event--ghost' : '') + (pointerMode && (canDrag || canResize) ? ' bm-cal-time-event--pointer' : '') + selectedClass + lockedClass + slotsClassName"
234
276
  [style.top.px]="top" [style.height.px]="height"
235
- [style.left]="left" [style.width]="width"
277
+ [style.inset-inline-start]="left" [style.width]="width"
236
278
  [style.background-color]="color" [style.border-radius]="borderRadius"
237
279
  [ngStyle]="slotsStyle"
238
- [attr.draggable]="canDrag"
280
+ [attr.draggable]="pointerMode ? null : canDrag"
239
281
  [attr.data-r]="probe()"
240
282
  [attr.data-day-col]="dayCol"
241
283
  [attr.data-day-count]="dayCount"
242
284
  [attr.data-lane]="lane"
243
285
  [attr.data-lane-count]="laneCount"
244
- (mousedown)="handleMouseDown()" (dragstart)="handleDragStart($event)"
245
- (dragend)="dragEnd.emit()"
286
+ (pointerdown)="handlePointerDown($event)"
287
+ (mousedown)="pointerMode || handleMouseDown()" (dragstart)="pointerMode || handleDragStart($event)"
288
+ (dragend)="pointerMode || dragEnd.emit()"
246
289
  (click)="handleClick($event)" (dblclick)="handleDoubleClick($event)" [title]="renderedTitle">
247
290
 
248
291
  <div *ngIf="isFirstDay && canResize"
249
292
  class="bm-cal-time-event__resize bm-cal-time-event__resize--top"
250
- draggable="true"
251
- (dragstart)="handleResizeDragStart($event, 'start')"
252
- (dragend)="dragEnd.emit()"
293
+ [attr.draggable]="pointerMode ? null : true"
294
+ (pointerdown)="handleResizePointerDown($event, 'start')"
295
+ (dragstart)="pointerMode || handleResizeDragStart($event, 'start')"
296
+ (dragend)="pointerMode || dragEnd.emit()"
253
297
  (mousedown)="$event.stopPropagation()"></div>
254
298
 
255
299
  <ng-container *ngIf="contentTpl; else defaultContent">
@@ -265,17 +309,23 @@ export class TimeEventComponent {
265
309
 
266
310
  <div *ngIf="isLastDay && canResize"
267
311
  class="bm-cal-time-event__resize bm-cal-time-event__resize--bottom"
268
- draggable="true"
269
- (dragstart)="handleResizeDragStart($event, 'end')"
270
- (dragend)="dragEnd.emit()"
312
+ [attr.draggable]="pointerMode ? null : true"
313
+ (pointerdown)="handleResizePointerDown($event, 'end')"
314
+ (dragstart)="pointerMode || handleResizeDragStart($event, 'end')"
315
+ (dragend)="pointerMode || dragEnd.emit()"
271
316
  (mousedown)="$event.stopPropagation()"></div>
272
317
  </div>
273
318
  `,
274
319
  }]
275
320
  }], () => [{ type: i1.EventRenderService, decorators: [{
276
321
  type: Optional
322
+ }] }, { type: i1.CalendarPointerGestureService, decorators: [{
323
+ type: Optional
277
324
  }] }], { event: [{
278
325
  type: Input
326
+ }], config: [{
327
+ type: Input,
328
+ args: [{ required: true }]
279
329
  }], dayCol: [{
280
330
  type: Input,
281
331
  args: [{ required: true }]
@@ -319,5 +369,5 @@ export class TimeEventComponent {
319
369
  }], dragEnd: [{
320
370
  type: Output
321
371
  }] }); })();
322
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TimeEventComponent, { className: "TimeEventComponent", filePath: "views/week/timeevent.ts", lineNumber: 79 }); })();
372
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TimeEventComponent, { className: "TimeEventComponent", filePath: "views/week/timeevent.ts", lineNumber: 84 }); })();
323
373
  //# sourceMappingURL=TimeEvent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TimeEvent.js","sourceRoot":"","sources":["../../../src/views/week/TimeEvent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TimeEvent.js","sourceRoot":"","sources":["../../../src/views/week/TimeEvent.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
+ import type { DragInfo } from '@bimetal/calendar-headless';
1
2
  import { EventEmitter, OnChanges, AfterViewInit, ElementRef } from '@angular/core';
2
3
  import type { CalendarEvent, CalendarDateTime, LayoutItem } from '@bimetal/calendar-core';
3
4
  import { getDayOfMonth } from '@bimetal/temporal';
4
5
  import type { CalendarConfig } from '../../binding/index.js';
6
+ import { CalendarPointerGestureService } from '../../binding/index.js';
5
7
  import { type TimeEventLayout } from './TimeEvent.js';
6
8
  import * as i0 from "@angular/core";
7
9
  /**
@@ -9,6 +11,8 @@ import * as i0 from "@angular/core";
9
11
  * one `cal-time-event` per timed event, laid out into overlap lanes per day.
10
12
  */
11
13
  export declare class WeekViewComponent implements OnChanges, AfterViewInit {
14
+ private gesture;
15
+ constructor(gesture: CalendarPointerGestureService);
12
16
  currentDate: CalendarDateTime;
13
17
  events: CalendarEvent[];
14
18
  config: CalendarConfig;
@@ -48,6 +52,17 @@ export declare class WeekViewComponent implements OnChanges, AfterViewInit {
48
52
  /** Native `dragend` der Source — Drag-Session vollständig beendet. */
49
53
  dragEnd: EventEmitter<void>;
50
54
  dragStartEv: EventEmitter<any>;
55
+ /** Pointer-gesture drop (mcp-57): same controller path, minus the DataTransfer. */
56
+ dropTimedInfo: EventEmitter<{
57
+ info: DragInfo;
58
+ date: CalendarDateTime;
59
+ time: string;
60
+ }>;
61
+ /** All-day-row pointer drop, forwarded (mcp-57). */
62
+ dropDayInfo: EventEmitter<{
63
+ info: DragInfo;
64
+ date: CalendarDateTime;
65
+ }>;
51
66
  timeGridEl?: ElementRef<HTMLDivElement>;
52
67
  gridInnerEl?: ElementRef<HTMLDivElement>;
53
68
  weekDates: CalendarDateTime[];
@@ -83,6 +98,6 @@ export declare class WeekViewComponent implements OnChanges, AfterViewInit {
83
98
  }): string;
84
99
  handleGridDoubleClick(e: MouseEvent): void;
85
100
  static ɵfac: i0.ɵɵFactoryDeclaration<WeekViewComponent, never>;
86
- static ɵcmp: i0.ɵɵComponentDeclaration<WeekViewComponent, "cal-week-view", never, { "currentDate": { "alias": "currentDate"; "required": false; }; "events": { "alias": "events"; "required": false; }; "config": { "alias": "config"; "required": false; }; "previewEvent": { "alias": "previewEvent"; "required": false; }; "selectedEventId": { "alias": "selectedEventId"; "required": false; }; "selectedInstanceDate": { "alias": "selectedInstanceDate"; "required": false; }; }, { "eventClick": "eventClick"; "selectEvent": "selectEvent"; "clearSelection": "clearSelection"; "dayCellClick": "dayCellClick"; "dropEvent": "dropEvent"; "dropTimedEvent": "dropTimedEvent"; "dragOverDate": "dragOverDate"; "dragOverDateTime": "dragOverDateTime"; "hidePreviewEv": "hidePreviewEv"; "dragEnd": "dragEnd"; "dragStartEv": "dragStartEv"; }, never, never, true, never>;
101
+ static ɵcmp: i0.ɵɵComponentDeclaration<WeekViewComponent, "cal-week-view", never, { "currentDate": { "alias": "currentDate"; "required": false; }; "events": { "alias": "events"; "required": false; }; "config": { "alias": "config"; "required": false; }; "previewEvent": { "alias": "previewEvent"; "required": false; }; "selectedEventId": { "alias": "selectedEventId"; "required": false; }; "selectedInstanceDate": { "alias": "selectedInstanceDate"; "required": false; }; }, { "eventClick": "eventClick"; "selectEvent": "selectEvent"; "clearSelection": "clearSelection"; "dayCellClick": "dayCellClick"; "dropEvent": "dropEvent"; "dropTimedEvent": "dropTimedEvent"; "dragOverDate": "dragOverDate"; "dragOverDateTime": "dragOverDateTime"; "hidePreviewEv": "hidePreviewEv"; "dragEnd": "dragEnd"; "dragStartEv": "dragStartEv"; "dropTimedInfo": "dropTimedInfo"; "dropDayInfo": "dropDayInfo"; }, never, never, true, never>;
87
102
  }
88
103
  //# sourceMappingURL=WeekView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WeekView.d.ts","sourceRoot":"","sources":["../../../src/views/week/WeekView.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,SAAS,EAAE,aAAa,EAAa,UAAU,EAAE,MAAM,eAAe,CAAC;AAExH,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAwC,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAExF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAI7D,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;;AAI1E;;;GAGG;AACH,qBA+Ea,iBAAkB,YAAW,SAAS,EAAE,aAAa;IACvD,WAAW,EAAG,gBAAgB,CAAC;IAC/B,MAAM,EAAE,aAAa,EAAE,CAAM;IAC7B,MAAM,EAAG,cAAc,CAAC;IAExB,YAAY,EAAE,aAAa,GAAG,IAAI,CAAQ;IAC1C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IACtC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAa;IACpD,UAAU;iBAA+B,MAAM;cAAQ,OAAO;uBAAiB,MAAM;OAAM;IAC3F,WAAW;iBAA+B,MAAM;uBAAiB,MAAM;OAAM;IAC7E,cAAc,qBAA4B;IAC1C,YAAY;cAA4B,gBAAgB;cAAQ,OAAO;OAAM;IAC7E,SAAS;eAA6B,SAAS;cAAQ,gBAAgB;OAAM;IAC7E,cAAc;eAA6B,SAAS;cAAQ,gBAAgB;cAAQ,MAAM;OAAM;IAChG,YAAY,iCAAwC;IACpD,gBAAgB;cAA4B,gBAAgB;cAAQ,MAAM;OAAM;IAC1F,yEAAyE;IAC/D,aAAa,qBAA4B;IACnD,sEAAsE;IAC5D,OAAO,qBAA4B;IACnC,WAAW,oBAA2B;IAEvB,UAAU,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IAEnE,SAAS,EAAE,gBAAgB,EAAE,CAAM;IACnC,UAAU,SAAK;IACf,WAAW,EAAE,UAAU,EAAE,CAAM;IAC/B,YAAY,EAAE;QAAE,KAAK,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,EAAE,CAAM;IACvE,KAAK,WAAS;IACd,UAAU,SAAuB;IACjC,cAAc,SAAiC;IAC/C,MAAM,SAAM;IACZ,QAAQ,SAAK;IACb,KAAK,mDAAuB;IAC5B,aAAa,uBAAiB;IAE9B,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,eAAe,CAAM;IAE7B,IAAI,WAAW,WAAsE;IACrF,UAAU,CAAC,GAAG,EAAE,MAAM;IAEtB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAC7B,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAK7B,WAAW;IA4CX,eAAe;IAMf,kBAAkB,CAAC,CAAC,EAAE,SAAS;IAS/B,cAAc,CAAC,CAAC,EAAE,SAAS;IAQ3B,mBAAmB,CAAC,CAAC,EAAE,SAAS;IAQhC,eAAe,CAAC,CAAC,EAAE,UAAU;IAQ7B,cAAc,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO;IAU1C,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,KAAK,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,eAAe,CAAA;KAAE,GAAG,MAAM;IAIxF,qBAAqB,CAAC,CAAC,EAAE,UAAU;yCAlJxB,iBAAiB;2CAAjB,iBAAiB;CA8J7B"}
1
+ {"version":3,"file":"WeekView.d.ts","sourceRoot":"","sources":["../../../src/views/week/WeekView.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,13 @@ import { Component, Input, Output, EventEmitter, ViewChild, ElementRef } from '@
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { isSameDay, now, getHours, getMinutes, getDayOfMonth } from '@bimetal/temporal';
4
4
  import { weekGrid, calendarWeekNumber, segmentAllDay, segmentTimed, layoutAllDay, layoutTimed, getRecurrenceInstanceMetadata } from '@bimetal/calendar-core';
5
- import { toDateStr, parseDateTimeStr } from '../../binding/index.js';
5
+ import { toDateStr, parseDateTimeStr, CalendarPointerGestureService } from '../../binding/index.js';
6
6
  import { DEFAULT_HOUR_HEIGHT, DEFAULT_TIME_LABEL_WIDTH_WEEK, DEFAULT_SCROLL_HOUR, createClickIntent, timeGridHit } from '@bimetal/calendar-headless';
7
7
  import { AllDayRowComponent } from './AllDayRow.js';
8
8
  import { TimeEventComponent } from './TimeEvent.js';
9
9
  import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/common";
10
+ import * as i1 from "../../binding/index.js";
11
+ import * as i2 from "@angular/common";
11
12
  const _c0 = ["timeGridEl"];
12
13
  const _c1 = ["gridInnerEl"];
13
14
  function WeekViewComponent_div_4_Template(rf, ctx) { if (rf & 1) {
@@ -47,7 +48,7 @@ function WeekViewComponent_div_11_Template(rf, ctx) { if (rf & 1) {
47
48
  } if (rf & 2) {
48
49
  const col_r6 = ctx.index;
49
50
  const ctx_r3 = i0.ɵɵnextContext();
50
- i0.ɵɵstyleProp("left", ctx_r3.dayColLeft(col_r6))("width", ctx_r3.dayColWidth);
51
+ i0.ɵɵstyleProp("inset-inline-start", ctx_r3.dayColLeft(col_r6))("width", ctx_r3.dayColWidth);
51
52
  } }
52
53
  function WeekViewComponent_ng_container_12_Template(rf, ctx) { if (rf & 1) {
53
54
  const _r7 = i0.ɵɵgetCurrentView();
@@ -60,7 +61,7 @@ function WeekViewComponent_ng_container_12_Template(rf, ctx) { if (rf & 1) {
60
61
  const entry_r8 = ctx.$implicit;
61
62
  const ctx_r3 = i0.ɵɵnextContext();
62
63
  i0.ɵɵadvance();
63
- i0.ɵɵproperty("event", entry_r8.event)("dayCol", entry_r8.layout.dayCol)("dayCount", entry_r8.layout.dayCount)("lane", entry_r8.layout.lane)("laneCount", entry_r8.layout.laneCount)("startOffset", entry_r8.layout.startOffset)("endOffset", entry_r8.layout.endOffset)("dayDate", ctx_r3.weekDates[entry_r8.layout.dayCol])("hourHeight", ctx_r3.hourHeight)("timeLabelWidth", ctx_r3.timeLabelWidth)("ghost", (ctx_r3.previewEvent == null ? null : ctx_r3.previewEvent.id) === entry_r8.event.id)("clickThresholdMs", ctx_r3.config.clickThresholdMs)("locale", ctx_r3.config.locale)("snapMinutes", ctx_r3.config.core.granularity.day.minutes)("isSelected", ctx_r3.isTimeSelected(entry_r8.event));
64
+ i0.ɵɵproperty("config", ctx_r3.config)("event", entry_r8.event)("dayCol", entry_r8.layout.dayCol)("dayCount", entry_r8.layout.dayCount)("lane", entry_r8.layout.lane)("laneCount", entry_r8.layout.laneCount)("startOffset", entry_r8.layout.startOffset)("endOffset", entry_r8.layout.endOffset)("dayDate", ctx_r3.weekDates[entry_r8.layout.dayCol])("hourHeight", ctx_r3.hourHeight)("timeLabelWidth", ctx_r3.timeLabelWidth)("ghost", (ctx_r3.previewEvent == null ? null : ctx_r3.previewEvent.id) === entry_r8.event.id)("clickThresholdMs", ctx_r3.config.clickThresholdMs)("locale", ctx_r3.config.locale)("snapMinutes", ctx_r3.config.core.granularity.day.minutes)("isSelected", ctx_r3.isTimeSelected(entry_r8.event));
64
65
  } }
65
66
  function WeekViewComponent_div_13_Template(rf, ctx) { if (rf & 1) {
66
67
  i0.ɵɵelementStart(0, "div", 17);
@@ -68,7 +69,7 @@ function WeekViewComponent_div_13_Template(rf, ctx) { if (rf & 1) {
68
69
  i0.ɵɵelementEnd();
69
70
  } if (rf & 2) {
70
71
  const ctx_r3 = i0.ɵɵnextContext();
71
- i0.ɵɵstyleProp("top", ctx_r3.nowHours * ctx_r3.hourHeight, "px")("left", ctx_r3.dayColLeft(ctx_r3.nowCol))("width", ctx_r3.dayColWidth);
72
+ i0.ɵɵstyleProp("top", ctx_r3.nowHours * ctx_r3.hourHeight, "px")("inset-inline-start", ctx_r3.dayColLeft(ctx_r3.nowCol))("width", ctx_r3.dayColWidth);
72
73
  } }
73
74
  const HOURS = Array.from({ length: 24 }, (_, i) => i);
74
75
  /**
@@ -76,6 +77,10 @@ const HOURS = Array.from({ length: 24 }, (_, i) => i);
76
77
  * one `cal-time-event` per timed event, laid out into overlap lanes per day.
77
78
  */
78
79
  export class WeekViewComponent {
80
+ gesture;
81
+ constructor(gesture) {
82
+ this.gesture = gesture;
83
+ }
79
84
  currentDate;
80
85
  events = [];
81
86
  config;
@@ -96,6 +101,10 @@ export class WeekViewComponent {
96
101
  /** Native `dragend` der Source — Drag-Session vollständig beendet. */
97
102
  dragEnd = new EventEmitter();
98
103
  dragStartEv = new EventEmitter();
104
+ /** Pointer-gesture drop (mcp-57): same controller path, minus the DataTransfer. */
105
+ dropTimedInfo = new EventEmitter();
106
+ /** All-day-row pointer drop, forwarded (mcp-57). */
107
+ dropDayInfo = new EventEmitter();
99
108
  timeGridEl;
100
109
  gridInnerEl;
101
110
  weekDates = [];
@@ -157,6 +166,24 @@ export class WeekViewComponent {
157
166
  this.nowHours = getHours(this.currentNow) + getMinutes(this.currentNow) / 60;
158
167
  }
159
168
  ngAfterViewInit() {
169
+ // ── mcp-57 Slice E: shared pointer-gesture FSM (calendar-headless core).
170
+ // Geometry: column day + snapped time, bounded by the VISIBLE scrollport.
171
+ this.gesture.init({
172
+ hitTest: (x, y) => {
173
+ const inner = this.gridInnerEl?.nativeElement;
174
+ if (!inner)
175
+ return null;
176
+ const port = (inner.parentElement ?? inner).getBoundingClientRect();
177
+ if (x < port.left || x > port.right || y < port.top || y > port.bottom)
178
+ return null;
179
+ return timeGridHit({ x, y }, inner.getBoundingClientRect(), { labelWidth: this.timeLabelWidth, hourHeight: this.hourHeight, snapMinutes: this.timeSnapMinutes, rtl: getComputedStyle(inner).direction === 'rtl' });
180
+ },
181
+ onGestureStart: (info) => this.dragStartEv.emit(info),
182
+ onGestureOver: (hit) => this.dragOverDateTime.emit({ date: this.weekDates[hit.col], time: hit.time }),
183
+ onGestureLeave: () => this.hidePreviewEv.emit(),
184
+ onGestureDrop: (info, hit) => this.dropTimedInfo.emit({ info, date: this.weekDates[hit.col], time: hit.time }),
185
+ onGestureEnd: () => this.dragEnd.emit(),
186
+ });
160
187
  if (this.timeGridEl) {
161
188
  this.timeGridEl.nativeElement.scrollTop = DEFAULT_SCROLL_HOUR * DEFAULT_HOUR_HEIGHT;
162
189
  }
@@ -167,7 +194,7 @@ export class WeekViewComponent {
167
194
  if (!this.gridInnerEl)
168
195
  return;
169
196
  const rect = this.gridInnerEl.nativeElement.getBoundingClientRect();
170
- const hit = timeGridHit({ x: e.clientX, y: e.clientY }, rect, { labelWidth: DEFAULT_TIME_LABEL_WIDTH_WEEK, hourHeight: DEFAULT_HOUR_HEIGHT, snapMinutes: this.timeSnapMinutes });
197
+ const hit = timeGridHit({ x: e.clientX, y: e.clientY }, rect, { labelWidth: DEFAULT_TIME_LABEL_WIDTH_WEEK, hourHeight: DEFAULT_HOUR_HEIGHT, snapMinutes: this.timeSnapMinutes, rtl: this.gridInnerEl ? getComputedStyle(this.gridInnerEl.nativeElement).direction === 'rtl' : false });
171
198
  this.dragOverDateTime.emit({ date: this.weekDates[hit.col], time: hit.time });
172
199
  }
173
200
  handleGridDrop(e) {
@@ -175,7 +202,7 @@ export class WeekViewComponent {
175
202
  if (!this.gridInnerEl)
176
203
  return;
177
204
  const rect = this.gridInnerEl.nativeElement.getBoundingClientRect();
178
- const hit = timeGridHit({ x: e.clientX, y: e.clientY }, rect, { labelWidth: DEFAULT_TIME_LABEL_WIDTH_WEEK, hourHeight: DEFAULT_HOUR_HEIGHT, snapMinutes: this.timeSnapMinutes });
205
+ const hit = timeGridHit({ x: e.clientX, y: e.clientY }, rect, { labelWidth: DEFAULT_TIME_LABEL_WIDTH_WEEK, hourHeight: DEFAULT_HOUR_HEIGHT, snapMinutes: this.timeSnapMinutes, rtl: this.gridInnerEl ? getComputedStyle(this.gridInnerEl.nativeElement).direction === 'rtl' : false });
179
206
  this.dropTimedEvent.emit({ event: e, date: this.weekDates[hit.col], time: hit.time });
180
207
  }
181
208
  handleGridDragLeave(e) {
@@ -215,14 +242,14 @@ export class WeekViewComponent {
215
242
  if (e.target.closest('.bm-cal-time-event'))
216
243
  return;
217
244
  const gridRect = this.gridInnerEl.nativeElement.getBoundingClientRect();
218
- const hit = timeGridHit({ x: e.clientX, y: e.clientY }, gridRect, { labelWidth: DEFAULT_TIME_LABEL_WIDTH_WEEK, hourHeight: DEFAULT_HOUR_HEIGHT, snapMinutes: this.timeSnapMinutes });
245
+ const hit = timeGridHit({ x: e.clientX, y: e.clientY }, gridRect, { labelWidth: DEFAULT_TIME_LABEL_WIDTH_WEEK, hourHeight: DEFAULT_HOUR_HEIGHT, snapMinutes: this.timeSnapMinutes, rtl: this.gridInnerEl ? getComputedStyle(this.gridInnerEl.nativeElement).direction === 'rtl' : false });
219
246
  const clickedDate = this.weekDates[hit.col];
220
247
  // Compose the clicked date + snapped time via the shared parser (no split).
221
248
  const clickedDt = parseDateTimeStr(toDateStr(clickedDate), hit.time, clickedDate.timezone);
222
249
  const rect = e.currentTarget.getBoundingClientRect();
223
250
  this.dayCellClick.emit({ date: clickedDt, rect });
224
251
  }
225
- static ɵfac = function WeekViewComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || WeekViewComponent)(); };
252
+ static ɵfac = function WeekViewComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || WeekViewComponent)(i0.ɵɵdirectiveInject(i1.CalendarPointerGestureService)); };
226
253
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: WeekViewComponent, selectors: [["cal-week-view"]], viewQuery: function WeekViewComponent_Query(rf, ctx) { if (rf & 1) {
227
254
  i0.ɵɵviewQuery(_c0, 5);
228
255
  i0.ɵɵviewQuery(_c1, 5);
@@ -230,7 +257,7 @@ export class WeekViewComponent {
230
257
  let _t;
231
258
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.timeGridEl = _t.first);
232
259
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.gridInnerEl = _t.first);
233
- } }, hostAttrs: [2, "display", "contents"], inputs: { currentDate: "currentDate", events: "events", config: "config", previewEvent: "previewEvent", selectedEventId: "selectedEventId", selectedInstanceDate: "selectedInstanceDate" }, outputs: { eventClick: "eventClick", selectEvent: "selectEvent", clearSelection: "clearSelection", dayCellClick: "dayCellClick", dropEvent: "dropEvent", dropTimedEvent: "dropTimedEvent", dragOverDate: "dragOverDate", dragOverDateTime: "dragOverDateTime", hidePreviewEv: "hidePreviewEv", dragEnd: "dragEnd", dragStartEv: "dragStartEv" }, features: [i0.ɵɵNgOnChangesFeature], decls: 14, vars: 16, consts: [["timeGridEl", ""], ["gridInnerEl", ""], [1, "bm-cal-week"], [1, "bm-cal-week__header"], [1, "bm-cal-week__corner"], [3, "class", 4, "ngFor", "ngForOf"], [3, "eventClick", "selectEvent", "dropEvent", "dragOver", "hidePreviewEv", "dragEnd", "dragStartEv", "weekDates", "items", "allDayLabel", "previewEvent", "selectedEventId", "selectedInstanceDate"], [1, "bm-cal-week__time-grid", 3, "dragover", "drop", "dragleave", "mousedown", "click", "dblclick"], [1, "bm-cal-week__time-grid-inner"], [3, "class", "top", "height", 4, "ngFor", "ngForOf"], ["class", "bm-cal-week__day-col", 3, "left", "width", 4, "ngFor", "ngForOf"], [4, "ngFor", "ngForOf", "ngForTrackBy"], ["class", "bm-cal-week__now-line", 3, "top", "left", "width", 4, "ngIf"], [1, "bm-cal-week__day-name"], [1, "bm-cal-week__hour-label"], [1, "bm-cal-week__day-col"], [3, "eventClick", "selectEvent", "dragStart", "dragEnd", "event", "dayCol", "dayCount", "lane", "laneCount", "startOffset", "endOffset", "dayDate", "hourHeight", "timeLabelWidth", "ghost", "clickThresholdMs", "locale", "snapMinutes", "isSelected"], [1, "bm-cal-week__now-line"], [1, "bm-cal-week__now-dot"]], template: function WeekViewComponent_Template(rf, ctx) { if (rf & 1) {
260
+ } }, hostAttrs: [2, "display", "contents"], inputs: { currentDate: "currentDate", events: "events", config: "config", previewEvent: "previewEvent", selectedEventId: "selectedEventId", selectedInstanceDate: "selectedInstanceDate" }, outputs: { eventClick: "eventClick", selectEvent: "selectEvent", clearSelection: "clearSelection", dayCellClick: "dayCellClick", dropEvent: "dropEvent", dropTimedEvent: "dropTimedEvent", dragOverDate: "dragOverDate", dragOverDateTime: "dragOverDateTime", hidePreviewEv: "hidePreviewEv", dragEnd: "dragEnd", dragStartEv: "dragStartEv", dropTimedInfo: "dropTimedInfo", dropDayInfo: "dropDayInfo" }, features: [i0.ɵɵProvidersFeature([CalendarPointerGestureService]), i0.ɵɵNgOnChangesFeature], decls: 14, vars: 17, consts: [["timeGridEl", ""], ["gridInnerEl", ""], [1, "bm-cal-week"], [1, "bm-cal-week__header"], [1, "bm-cal-week__corner"], [3, "class", 4, "ngFor", "ngForOf"], [3, "eventClick", "selectEvent", "dropEvent", "dropDayInfo", "dragOver", "hidePreviewEv", "dragEnd", "dragStartEv", "config", "weekDates", "items", "allDayLabel", "previewEvent", "selectedEventId", "selectedInstanceDate"], [1, "bm-cal-week__time-grid", 3, "dragover", "drop", "dragleave", "mousedown", "click", "dblclick"], [1, "bm-cal-week__time-grid-inner"], [3, "class", "top", "height", 4, "ngFor", "ngForOf"], ["class", "bm-cal-week__day-col", 3, "inset-inline-start", "width", 4, "ngFor", "ngForOf"], [4, "ngFor", "ngForOf", "ngForTrackBy"], ["class", "bm-cal-week__now-line", 3, "top", "inset-inline-start", "width", 4, "ngIf"], [1, "bm-cal-week__day-name"], [1, "bm-cal-week__hour-label"], [1, "bm-cal-week__day-col"], [3, "eventClick", "selectEvent", "dragStart", "dragEnd", "config", "event", "dayCol", "dayCount", "lane", "laneCount", "startOffset", "endOffset", "dayDate", "hourHeight", "timeLabelWidth", "ghost", "clickThresholdMs", "locale", "snapMinutes", "isSelected"], [1, "bm-cal-week__now-line"], [1, "bm-cal-week__now-dot"]], template: function WeekViewComponent_Template(rf, ctx) { if (rf & 1) {
234
261
  const _r1 = i0.ɵɵgetCurrentView();
235
262
  i0.ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "div", 4);
236
263
  i0.ɵɵtext(3);
@@ -238,12 +265,12 @@ export class WeekViewComponent {
238
265
  i0.ɵɵtemplate(4, WeekViewComponent_div_4_Template, 5, 6, "div", 5);
239
266
  i0.ɵɵelementEnd();
240
267
  i0.ɵɵelementStart(5, "cal-allday-row", 6);
241
- i0.ɵɵlistener("eventClick", function WeekViewComponent_Template_cal_allday_row_eventClick_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.eventClick.emit($event)); })("selectEvent", function WeekViewComponent_Template_cal_allday_row_selectEvent_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.selectEvent.emit($event)); })("dropEvent", function WeekViewComponent_Template_cal_allday_row_dropEvent_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.dropEvent.emit($event)); })("dragOver", function WeekViewComponent_Template_cal_allday_row_dragOver_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.dragOverDate.emit($event)); })("hidePreviewEv", function WeekViewComponent_Template_cal_allday_row_hidePreviewEv_5_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.hidePreviewEv.emit()); })("dragEnd", function WeekViewComponent_Template_cal_allday_row_dragEnd_5_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.dragEnd.emit()); })("dragStartEv", function WeekViewComponent_Template_cal_allday_row_dragStartEv_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.dragStartEv.emit($event)); });
268
+ i0.ɵɵlistener("eventClick", function WeekViewComponent_Template_cal_allday_row_eventClick_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.eventClick.emit($event)); })("selectEvent", function WeekViewComponent_Template_cal_allday_row_selectEvent_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.selectEvent.emit($event)); })("dropEvent", function WeekViewComponent_Template_cal_allday_row_dropEvent_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.dropEvent.emit($event)); })("dropDayInfo", function WeekViewComponent_Template_cal_allday_row_dropDayInfo_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.dropDayInfo.emit($event)); })("dragOver", function WeekViewComponent_Template_cal_allday_row_dragOver_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.dragOverDate.emit($event)); })("hidePreviewEv", function WeekViewComponent_Template_cal_allday_row_hidePreviewEv_5_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.hidePreviewEv.emit()); })("dragEnd", function WeekViewComponent_Template_cal_allday_row_dragEnd_5_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.dragEnd.emit()); })("dragStartEv", function WeekViewComponent_Template_cal_allday_row_dragStartEv_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.dragStartEv.emit($event)); });
242
269
  i0.ɵɵelementEnd();
243
270
  i0.ɵɵelementStart(6, "div", 7, 0);
244
271
  i0.ɵɵlistener("dragover", function WeekViewComponent_Template_div_dragover_6_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleGridDragOver($event)); })("drop", function WeekViewComponent_Template_div_drop_6_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleGridDrop($event)); })("dragleave", function WeekViewComponent_Template_div_dragleave_6_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleGridDragLeave($event)); })("mousedown", function WeekViewComponent_Template_div_mousedown_6_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.click.markMouseDown()); })("click", function WeekViewComponent_Template_div_click_6_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleGridClick($event)); })("dblclick", function WeekViewComponent_Template_div_dblclick_6_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleGridDoubleClick($event)); });
245
272
  i0.ɵɵelementStart(8, "div", 8, 1);
246
- i0.ɵɵtemplate(10, WeekViewComponent_div_10_Template, 4, 10, "div", 9)(11, WeekViewComponent_div_11_Template, 1, 4, "div", 10)(12, WeekViewComponent_ng_container_12_Template, 2, 15, "ng-container", 11)(13, WeekViewComponent_div_13_Template, 2, 6, "div", 12);
273
+ i0.ɵɵtemplate(10, WeekViewComponent_div_10_Template, 4, 10, "div", 9)(11, WeekViewComponent_div_11_Template, 1, 4, "div", 10)(12, WeekViewComponent_ng_container_12_Template, 2, 16, "ng-container", 11)(13, WeekViewComponent_div_13_Template, 2, 6, "div", 12);
247
274
  i0.ɵɵelementEnd()()();
248
275
  } if (rf & 2) {
249
276
  i0.ɵɵadvance(3);
@@ -251,7 +278,7 @@ export class WeekViewComponent {
251
278
  i0.ɵɵadvance();
252
279
  i0.ɵɵproperty("ngForOf", ctx.weekDates);
253
280
  i0.ɵɵadvance();
254
- i0.ɵɵproperty("weekDates", ctx.weekDates)("items", ctx.allDayItems)("allDayLabel", ctx.config.locale.allDayLabel)("previewEvent", ctx.previewEvent)("selectedEventId", ctx.selectedEventId)("selectedInstanceDate", ctx.selectedInstanceDate);
281
+ i0.ɵɵproperty("config", ctx.config)("weekDates", ctx.weekDates)("items", ctx.allDayItems)("allDayLabel", ctx.config.locale.allDayLabel)("previewEvent", ctx.previewEvent)("selectedEventId", ctx.selectedEventId)("selectedInstanceDate", ctx.selectedInstanceDate);
255
282
  i0.ɵɵadvance(3);
256
283
  i0.ɵɵstyleProp("height", 24 * ctx.hourHeight, "px");
257
284
  i0.ɵɵadvance(2);
@@ -262,13 +289,14 @@ export class WeekViewComponent {
262
289
  i0.ɵɵproperty("ngForOf", ctx.timedEntries)("ngForTrackBy", ctx.trackTimed);
263
290
  i0.ɵɵadvance();
264
291
  i0.ɵɵproperty("ngIf", ctx.nowCol >= 0);
265
- } }, dependencies: [CommonModule, i1.NgForOf, i1.NgIf, i1.DecimalPipe, AllDayRowComponent, TimeEventComponent], encapsulation: 2 });
292
+ } }, dependencies: [CommonModule, i2.NgForOf, i2.NgIf, i2.DecimalPipe, AllDayRowComponent, TimeEventComponent], encapsulation: 2 });
266
293
  }
267
294
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WeekViewComponent, [{
268
295
  type: Component,
269
296
  args: [{
270
297
  selector: 'cal-week-view',
271
298
  standalone: true,
299
+ providers: [CalendarPointerGestureService],
272
300
  host: { style: 'display: contents' },
273
301
  imports: [CommonModule, AllDayRowComponent, TimeEventComponent],
274
302
  template: `
@@ -285,6 +313,7 @@ export class WeekViewComponent {
285
313
  </div>
286
314
 
287
315
  <cal-allday-row
316
+ [config]="config"
288
317
  [weekDates]="weekDates" [items]="allDayItems"
289
318
  [allDayLabel]="config.locale.allDayLabel"
290
319
  [previewEvent]="previewEvent"
@@ -293,6 +322,7 @@ export class WeekViewComponent {
293
322
  (eventClick)="eventClick.emit($event)"
294
323
  (selectEvent)="selectEvent.emit($event)"
295
324
  (dropEvent)="dropEvent.emit($event)"
325
+ (dropDayInfo)="dropDayInfo.emit($event)"
296
326
  (dragOver)="dragOverDate.emit($event)"
297
327
  (hidePreviewEv)="hidePreviewEv.emit()"
298
328
  (dragEnd)="dragEnd.emit()"
@@ -314,11 +344,12 @@ export class WeekViewComponent {
314
344
  </div>
315
345
 
316
346
  <div *ngFor="let date of weekDates; let col = index" class="bm-cal-week__day-col"
317
- [style.left]="dayColLeft(col)" [style.width]="dayColWidth">
347
+ [style.inset-inline-start]="dayColLeft(col)" [style.width]="dayColWidth">
318
348
  </div>
319
349
 
320
350
  <ng-container *ngFor="let entry of timedEntries; trackBy: trackTimed">
321
351
  <cal-time-event
352
+ [config]="config"
322
353
  [event]="entry.event"
323
354
  [dayCol]="entry.layout.dayCol" [dayCount]="entry.layout.dayCount"
324
355
  [lane]="entry.layout.lane" [laneCount]="entry.layout.laneCount"
@@ -337,7 +368,7 @@ export class WeekViewComponent {
337
368
 
338
369
  <div *ngIf="nowCol >= 0" class="bm-cal-week__now-line"
339
370
  [style.top.px]="nowHours * hourHeight"
340
- [style.left]="dayColLeft(nowCol)" [style.width]="dayColWidth">
371
+ [style.inset-inline-start]="dayColLeft(nowCol)" [style.width]="dayColWidth">
341
372
  <div class="bm-cal-week__now-dot"></div>
342
373
  </div>
343
374
  </div>
@@ -345,7 +376,7 @@ export class WeekViewComponent {
345
376
  </div>
346
377
  `,
347
378
  }]
348
- }], null, { currentDate: [{
379
+ }], () => [{ type: i1.CalendarPointerGestureService }], { currentDate: [{
349
380
  type: Input
350
381
  }], events: [{
351
382
  type: Input
@@ -379,6 +410,10 @@ export class WeekViewComponent {
379
410
  type: Output
380
411
  }], dragStartEv: [{
381
412
  type: Output
413
+ }], dropTimedInfo: [{
414
+ type: Output
415
+ }], dropDayInfo: [{
416
+ type: Output
382
417
  }], timeGridEl: [{
383
418
  type: ViewChild,
384
419
  args: ['timeGridEl']
@@ -386,5 +421,5 @@ export class WeekViewComponent {
386
421
  type: ViewChild,
387
422
  args: ['gridInnerEl']
388
423
  }] }); })();
389
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WeekViewComponent, { className: "WeekViewComponent", filePath: "views/week/weekview.ts", lineNumber: 97 }); })();
424
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WeekViewComponent, { className: "WeekViewComponent", filePath: "views/week/weekview.ts", lineNumber: 102 }); })();
390
425
  //# sourceMappingURL=WeekView.js.map