@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.
Files changed (112) hide show
  1. package/LICENSE +129 -0
  2. package/README.md +56 -0
  3. package/dist/binding/config.d.ts +6 -0
  4. package/dist/binding/config.d.ts.map +1 -0
  5. package/dist/binding/config.js +6 -0
  6. package/dist/binding/config.js.map +1 -0
  7. package/dist/binding/controller.d.ts +22 -0
  8. package/dist/binding/controller.d.ts.map +1 -0
  9. package/dist/binding/controller.js +17 -0
  10. package/dist/binding/controller.js.map +1 -0
  11. package/dist/binding/index.d.ts +24 -0
  12. package/dist/binding/index.d.ts.map +1 -0
  13. package/dist/binding/index.js +26 -0
  14. package/dist/binding/index.js.map +1 -0
  15. package/dist/binding/services/event-render.service.d.ts +40 -0
  16. package/dist/binding/services/event-render.service.d.ts.map +1 -0
  17. package/dist/binding/services/event-render.service.js +58 -0
  18. package/dist/binding/services/event-render.service.js.map +1 -0
  19. package/dist/binding/types.d.ts +128 -0
  20. package/dist/binding/types.d.ts.map +1 -0
  21. package/dist/binding/types.js +12 -0
  22. package/dist/binding/types.js.map +1 -0
  23. package/dist/binding/utils/date-strings.d.ts +16 -0
  24. package/dist/binding/utils/date-strings.d.ts.map +1 -0
  25. package/dist/binding/utils/date-strings.js +30 -0
  26. package/dist/binding/utils/date-strings.js.map +1 -0
  27. package/dist/binding/utils/gridUtils.d.ts +6 -0
  28. package/dist/binding/utils/gridUtils.d.ts.map +1 -0
  29. package/dist/binding/utils/gridUtils.js +13 -0
  30. package/dist/binding/utils/gridUtils.js.map +1 -0
  31. package/dist/binding/view-configs.d.ts +6 -0
  32. package/dist/binding/view-configs.d.ts.map +1 -0
  33. package/dist/binding/view-configs.js +6 -0
  34. package/dist/binding/view-configs.js.map +1 -0
  35. package/dist/components/Calendar.d.ts +110 -0
  36. package/dist/components/Calendar.d.ts.map +1 -0
  37. package/dist/components/Calendar.js +554 -0
  38. package/dist/components/Calendar.js.map +1 -0
  39. package/dist/components/CalendarHeader.d.ts +17 -0
  40. package/dist/components/CalendarHeader.d.ts.map +1 -0
  41. package/dist/components/CalendarHeader.js +105 -0
  42. package/dist/components/CalendarHeader.js.map +1 -0
  43. package/dist/components/CategoryFilter.d.ts +11 -0
  44. package/dist/components/CategoryFilter.d.ts.map +1 -0
  45. package/dist/components/CategoryFilter.js +66 -0
  46. package/dist/components/CategoryFilter.js.map +1 -0
  47. package/dist/components/EventBar.d.ts +56 -0
  48. package/dist/components/EventBar.d.ts.map +1 -0
  49. package/dist/components/EventBar.js +328 -0
  50. package/dist/components/EventBar.js.map +1 -0
  51. package/dist/components/EventDialog.d.ts +52 -0
  52. package/dist/components/EventDialog.d.ts.map +1 -0
  53. package/dist/components/EventDialog.js +557 -0
  54. package/dist/components/EventDialog.js.map +1 -0
  55. package/dist/components/EventHistory.d.ts +17 -0
  56. package/dist/components/EventHistory.d.ts.map +1 -0
  57. package/dist/components/EventHistory.js +166 -0
  58. package/dist/components/EventHistory.js.map +1 -0
  59. package/dist/components/ResourceFilter.d.ts +12 -0
  60. package/dist/components/ResourceFilter.d.ts.map +1 -0
  61. package/dist/components/ResourceFilter.js +67 -0
  62. package/dist/components/ResourceFilter.js.map +1 -0
  63. package/dist/components/UndoToast.d.ts +20 -0
  64. package/dist/components/UndoToast.d.ts.map +1 -0
  65. package/dist/components/UndoToast.js +90 -0
  66. package/dist/components/UndoToast.js.map +1 -0
  67. package/dist/index.d.ts +20 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +25 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/styles/index.css +1 -0
  72. package/dist/views/agenda/AgendaView.d.ts +54 -0
  73. package/dist/views/agenda/AgendaView.d.ts.map +1 -0
  74. package/dist/views/agenda/AgendaView.js +309 -0
  75. package/dist/views/agenda/AgendaView.js.map +1 -0
  76. package/dist/views/day/DayView.d.ts +85 -0
  77. package/dist/views/day/DayView.d.ts.map +1 -0
  78. package/dist/views/day/DayView.js +422 -0
  79. package/dist/views/day/DayView.js.map +1 -0
  80. package/dist/views/month/MonthView.d.ts +51 -0
  81. package/dist/views/month/MonthView.d.ts.map +1 -0
  82. package/dist/views/month/MonthView.js +184 -0
  83. package/dist/views/month/MonthView.js.map +1 -0
  84. package/dist/views/month/WeekRow.d.ts +89 -0
  85. package/dist/views/month/WeekRow.d.ts.map +1 -0
  86. package/dist/views/month/WeekRow.js +548 -0
  87. package/dist/views/month/WeekRow.js.map +1 -0
  88. package/dist/views/resource/ResourceView.d.ts +85 -0
  89. package/dist/views/resource/ResourceView.d.ts.map +1 -0
  90. package/dist/views/resource/ResourceView.js +388 -0
  91. package/dist/views/resource/ResourceView.js.map +1 -0
  92. package/dist/views/timeline/TimelineView.d.ts +69 -0
  93. package/dist/views/timeline/TimelineView.d.ts.map +1 -0
  94. package/dist/views/timeline/TimelineView.js +314 -0
  95. package/dist/views/timeline/TimelineView.js.map +1 -0
  96. package/dist/views/week/AllDayRow.d.ts +38 -0
  97. package/dist/views/week/AllDayRow.d.ts.map +1 -0
  98. package/dist/views/week/AllDayRow.js +149 -0
  99. package/dist/views/week/AllDayRow.js.map +1 -0
  100. package/dist/views/week/TimeEvent.d.ts +77 -0
  101. package/dist/views/week/TimeEvent.d.ts.map +1 -0
  102. package/dist/views/week/TimeEvent.js +279 -0
  103. package/dist/views/week/TimeEvent.js.map +1 -0
  104. package/dist/views/week/WeekView.d.ts +79 -0
  105. package/dist/views/week/WeekView.d.ts.map +1 -0
  106. package/dist/views/week/WeekView.js +370 -0
  107. package/dist/views/week/WeekView.js.map +1 -0
  108. package/dist/views/year/YearView.d.ts +37 -0
  109. package/dist/views/year/YearView.d.ts.map +1 -0
  110. package/dist/views/year/YearView.js +162 -0
  111. package/dist/views/year/YearView.js.map +1 -0
  112. package/package.json +69 -0
@@ -0,0 +1,184 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { monthGrid, segmentAllDay, layoutAllDay, startOfDay, now, } from '@bimetal/calendar-core';
4
+ import { WeekRowComponent } from './WeekRow.js';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ function MonthViewComponent_div_3_Template(rf, ctx) { if (rf & 1) {
8
+ i0.ɵɵelementStart(0, "div", 5);
9
+ i0.ɵɵtext(1);
10
+ i0.ɵɵelementEnd();
11
+ } if (rf & 2) {
12
+ const name_r1 = ctx.$implicit;
13
+ i0.ɵɵadvance();
14
+ i0.ɵɵtextInterpolate(name_r1);
15
+ } }
16
+ function MonthViewComponent_cal_week_row_4_Template(rf, ctx) { if (rf & 1) {
17
+ const _r2 = i0.ɵɵgetCurrentView();
18
+ i0.ɵɵelementStart(0, "cal-week-row", 6);
19
+ i0.ɵɵlistener("eventClick", function MonthViewComponent_cal_week_row_4_Template_cal_week_row_eventClick_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.eventClick.emit($event)); })("selectEvent", function MonthViewComponent_cal_week_row_4_Template_cal_week_row_selectEvent_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.selectEvent.emit($event)); })("clearSelection", function MonthViewComponent_cal_week_row_4_Template_cal_week_row_clearSelection_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.clearSelection.emit()); })("dayCellClick", function MonthViewComponent_cal_week_row_4_Template_cal_week_row_dayCellClick_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.dayCellClick.emit($event)); })("dropEvent", function MonthViewComponent_cal_week_row_4_Template_cal_week_row_dropEvent_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.dropEvent.emit($event)); })("dragOver", function MonthViewComponent_cal_week_row_4_Template_cal_week_row_dragOver_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.dragOverDate.emit($event)); })("hidePreviewEv", function MonthViewComponent_cal_week_row_4_Template_cal_week_row_hidePreviewEv_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.hidePreviewEv.emit()); })("dragEnd", function MonthViewComponent_cal_week_row_4_Template_cal_week_row_dragEnd_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.dragEnd.emit()); })("dragStartEv", function MonthViewComponent_cal_week_row_4_Template_cal_week_row_dragStartEv_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.dragStartEv.emit($event)); })("expandMonthCell", function MonthViewComponent_cal_week_row_4_Template_cal_week_row_expandMonthCell_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.expandMonthCell.emit($event)); })("collapseMonthCell", function MonthViewComponent_cal_week_row_4_Template_cal_week_row_collapseMonthCell_0_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.collapseMonthCell.emit()); });
20
+ i0.ɵɵelementEnd();
21
+ } if (rf & 2) {
22
+ const week_r4 = ctx.$implicit;
23
+ const idx_r5 = ctx.index;
24
+ const ctx_r2 = i0.ɵɵnextContext();
25
+ i0.ɵɵproperty("weekDates", week_r4)("items", ctx_r2.getItems(idx_r5))("timedByDay", ctx_r2.timedByDay)("currentYear", ctx_r2.year)("currentMonth", ctx_r2.month)("config", ctx_r2.config)("today", ctx_r2.today)("previewEvent", ctx_r2.previewEvent)("expandedMonthDay", ctx_r2.expandedMonthDay)("selectedEventId", ctx_r2.selectedEventId)("selectedInstanceDate", ctx_r2.selectedInstanceDate);
26
+ } }
27
+ export class MonthViewComponent {
28
+ year = 0;
29
+ month = 0;
30
+ events = [];
31
+ config;
32
+ // B-CAL-1: the controller already rebuilt the dragged event's geometry.
33
+ previewEvent = null;
34
+ // B-CAL-3: hover-expanded month cell (day epochMs), owned by the controller.
35
+ expandedMonthDay = null;
36
+ selectedEventId = null;
37
+ selectedInstanceDate = undefined;
38
+ eventClick = new EventEmitter();
39
+ selectEvent = new EventEmitter();
40
+ clearSelection = new EventEmitter();
41
+ dayCellClick = new EventEmitter();
42
+ dropEvent = new EventEmitter();
43
+ dragOverDate = new EventEmitter();
44
+ /** Drop-Zone wurde verlassen (dragleave) — Preview visuell ausräumen. */
45
+ hidePreviewEv = new EventEmitter();
46
+ /** Native `dragend` der Source — Drag-Session vollständig beendet. */
47
+ dragEnd = new EventEmitter();
48
+ dragStartEv = new EventEmitter();
49
+ /** B-CAL-3: bubble the hover-expand intents (from WeekRow) to the controller. */
50
+ expandMonthCell = new EventEmitter();
51
+ collapseMonthCell = new EventEmitter();
52
+ weeks = [];
53
+ today;
54
+ timedByDay = new Map();
55
+ weekItems = [];
56
+ // Stable identity for the week rows: ngOnChanges recomputes `weeks` (fresh
57
+ // arrays) on every input change, so without trackBy a click → markChanged →
58
+ // snapshot input churn destroys+recreates every cal-week-row, detaching the
59
+ // in-flight double-click before it lands (the real-browser create regression).
60
+ trackWeek(_, week) { return week[0]?.epochMs; }
61
+ ngOnChanges() {
62
+ this.today = now(this.config.core.timezone, this.config.core.clock);
63
+ this.weeks = monthGrid(this.year, this.month, this.config.core);
64
+ // B-CAL-1: swap in the controller-rebuilt event by id (no parsing in the view).
65
+ const pe = this.previewEvent;
66
+ const displayEvents = pe
67
+ ? this.events.map(ev => ev.id === pe.id ? { ...ev, timeRange: pe.timeRange } : ev)
68
+ : this.events;
69
+ // Timed events by day
70
+ this.timedByDay = new Map();
71
+ for (const event of displayEvents) {
72
+ if (event.allDay)
73
+ continue;
74
+ const dayMs = startOfDay(event.timeRange.start).epochMs;
75
+ const list = this.timedByDay.get(dayMs) ?? [];
76
+ list.push(event);
77
+ this.timedByDay.set(dayMs, list);
78
+ }
79
+ // Layout items per week
80
+ this.weekItems = this.weeks.map(weekDates => {
81
+ const segments = segmentAllDay(displayEvents, weekDates);
82
+ return layoutAllDay(segments, weekDates);
83
+ });
84
+ }
85
+ getItems(weekIdx) {
86
+ return this.weekItems[weekIdx] ?? [];
87
+ }
88
+ static ɵfac = function MonthViewComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MonthViewComponent)(); };
89
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MonthViewComponent, selectors: [["cal-month-view"]], hostAttrs: [2, "display", "contents"], inputs: { year: "year", month: "month", events: "events", config: "config", previewEvent: "previewEvent", expandedMonthDay: "expandedMonthDay", selectedEventId: "selectedEventId", selectedInstanceDate: "selectedInstanceDate" }, outputs: { eventClick: "eventClick", selectEvent: "selectEvent", clearSelection: "clearSelection", dayCellClick: "dayCellClick", dropEvent: "dropEvent", dragOverDate: "dragOverDate", hidePreviewEv: "hidePreviewEv", dragEnd: "dragEnd", dragStartEv: "dragStartEv", expandMonthCell: "expandMonthCell", collapseMonthCell: "collapseMonthCell" }, features: [i0.ɵɵNgOnChangesFeature], decls: 5, vars: 3, consts: [[1, "month-grid"], [1, "day-headers"], [1, "header-spacer"], ["class", "day-header", 4, "ngFor", "ngForOf"], [3, "weekDates", "items", "timedByDay", "currentYear", "currentMonth", "config", "today", "previewEvent", "expandedMonthDay", "selectedEventId", "selectedInstanceDate", "eventClick", "selectEvent", "clearSelection", "dayCellClick", "dropEvent", "dragOver", "hidePreviewEv", "dragEnd", "dragStartEv", "expandMonthCell", "collapseMonthCell", 4, "ngFor", "ngForOf", "ngForTrackBy"], [1, "day-header"], [3, "eventClick", "selectEvent", "clearSelection", "dayCellClick", "dropEvent", "dragOver", "hidePreviewEv", "dragEnd", "dragStartEv", "expandMonthCell", "collapseMonthCell", "weekDates", "items", "timedByDay", "currentYear", "currentMonth", "config", "today", "previewEvent", "expandedMonthDay", "selectedEventId", "selectedInstanceDate"]], template: function MonthViewComponent_Template(rf, ctx) { if (rf & 1) {
90
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
91
+ i0.ɵɵelement(2, "div", 2);
92
+ i0.ɵɵtemplate(3, MonthViewComponent_div_3_Template, 2, 1, "div", 3);
93
+ i0.ɵɵelementEnd();
94
+ i0.ɵɵtemplate(4, MonthViewComponent_cal_week_row_4_Template, 1, 11, "cal-week-row", 4);
95
+ i0.ɵɵelementEnd();
96
+ } if (rf & 2) {
97
+ i0.ɵɵadvance(3);
98
+ i0.ɵɵproperty("ngForOf", ctx.config.locale.dayNamesShort);
99
+ i0.ɵɵadvance();
100
+ i0.ɵɵproperty("ngForOf", ctx.weeks)("ngForTrackBy", ctx.trackWeek);
101
+ } }, dependencies: [CommonModule, i1.NgForOf, WeekRowComponent], encapsulation: 2 });
102
+ }
103
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MonthViewComponent, [{
104
+ type: Component,
105
+ args: [{
106
+ selector: 'cal-month-view',
107
+ standalone: true,
108
+ host: { style: 'display: contents' },
109
+ imports: [CommonModule, WeekRowComponent],
110
+ template: `
111
+ <div class="month-grid">
112
+ <div class="day-headers">
113
+ <div class="header-spacer"></div>
114
+ <div *ngFor="let name of config.locale.dayNamesShort" class="day-header">{{ name }}</div>
115
+ </div>
116
+
117
+ <cal-week-row *ngFor="let week of weeks; let idx = index; trackBy: trackWeek"
118
+ [weekDates]="week"
119
+ [items]="getItems(idx)"
120
+ [timedByDay]="timedByDay"
121
+ [currentYear]="year"
122
+ [currentMonth]="month"
123
+ [config]="config"
124
+ [today]="today"
125
+ [previewEvent]="previewEvent"
126
+ [expandedMonthDay]="expandedMonthDay"
127
+ [selectedEventId]="selectedEventId"
128
+ [selectedInstanceDate]="selectedInstanceDate"
129
+ (eventClick)="eventClick.emit($event)"
130
+ (selectEvent)="selectEvent.emit($event)"
131
+ (clearSelection)="clearSelection.emit()"
132
+ (dayCellClick)="dayCellClick.emit($event)"
133
+ (dropEvent)="dropEvent.emit($event)"
134
+ (dragOver)="dragOverDate.emit($event)"
135
+ (hidePreviewEv)="hidePreviewEv.emit()"
136
+ (dragEnd)="dragEnd.emit()"
137
+ (dragStartEv)="dragStartEv.emit($event)"
138
+ (expandMonthCell)="expandMonthCell.emit($event)"
139
+ (collapseMonthCell)="collapseMonthCell.emit()">
140
+ </cal-week-row>
141
+ </div>
142
+ `,
143
+ }]
144
+ }], null, { year: [{
145
+ type: Input
146
+ }], month: [{
147
+ type: Input
148
+ }], events: [{
149
+ type: Input
150
+ }], config: [{
151
+ type: Input
152
+ }], previewEvent: [{
153
+ type: Input
154
+ }], expandedMonthDay: [{
155
+ type: Input
156
+ }], selectedEventId: [{
157
+ type: Input
158
+ }], selectedInstanceDate: [{
159
+ type: Input
160
+ }], eventClick: [{
161
+ type: Output
162
+ }], selectEvent: [{
163
+ type: Output
164
+ }], clearSelection: [{
165
+ type: Output
166
+ }], dayCellClick: [{
167
+ type: Output
168
+ }], dropEvent: [{
169
+ type: Output
170
+ }], dragOverDate: [{
171
+ type: Output
172
+ }], hidePreviewEv: [{
173
+ type: Output
174
+ }], dragEnd: [{
175
+ type: Output
176
+ }], dragStartEv: [{
177
+ type: Output
178
+ }], expandMonthCell: [{
179
+ type: Output
180
+ }], collapseMonthCell: [{
181
+ type: Output
182
+ }] }); })();
183
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MonthViewComponent, { className: "MonthViewComponent", filePath: "views/month/monthview.ts", lineNumber: 50 }); })();
184
+ //# sourceMappingURL=MonthView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MonthView.js","sourceRoot":"","sources":["../../../src/views/month/MonthView.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ import { EventEmitter, ElementRef } from '@angular/core';
2
+ import type { CalendarEvent, CalendarDateTime, LayoutItem } from '@bimetal/calendar-core';
3
+ import { getDayOfMonth } from '@bimetal/calendar-core';
4
+ import type { CalendarConfig } from '../../binding/index.js';
5
+ import { EventRenderService } from '../../binding/index.js';
6
+ import * as i0 from "@angular/core";
7
+ export declare class WeekRowComponent {
8
+ private renderService?;
9
+ weekDates: CalendarDateTime[];
10
+ items: LayoutItem[];
11
+ timedByDay: Map<number, CalendarEvent[]>;
12
+ currentYear: number;
13
+ currentMonth: number;
14
+ config: CalendarConfig;
15
+ today: CalendarDateTime;
16
+ previewEvent: CalendarEvent | null;
17
+ expandedMonthDay: number | null;
18
+ selectedEventId: string | null;
19
+ selectedInstanceDate: number | undefined;
20
+ eventClick: EventEmitter<{
21
+ eventId: string;
22
+ rect: DOMRect;
23
+ instanceDate?: number;
24
+ }>;
25
+ selectEvent: EventEmitter<{
26
+ eventId: string;
27
+ instanceDate?: number;
28
+ }>;
29
+ clearSelection: EventEmitter<void>;
30
+ dayCellClick: EventEmitter<{
31
+ date: CalendarDateTime;
32
+ rect: DOMRect;
33
+ }>;
34
+ dropEvent: EventEmitter<{
35
+ event: DragEvent;
36
+ date: CalendarDateTime;
37
+ }>;
38
+ dragOver: EventEmitter<CalendarDateTime>;
39
+ /** Drop-Zone wurde verlassen (dragleave) — Preview visuell ausräumen. */
40
+ hidePreviewEv: EventEmitter<void>;
41
+ /** Native `dragend` der Source — Drag-Session vollständig beendet. */
42
+ dragEnd: EventEmitter<void>;
43
+ dragStartEv: EventEmitter<any>;
44
+ /** B-CAL-3: bubble the hover-expand intent (day epochMs) to the controller. */
45
+ expandMonthCell: EventEmitter<number>;
46
+ collapseMonthCell: EventEmitter<void>;
47
+ rowEl: ElementRef<HTMLDivElement>;
48
+ click: import("@bimetal/calendar-headless").ClickIntent;
49
+ timedClick: import("@bimetal/calendar-headless").ClickIntent;
50
+ getDayOfMonth: typeof getDayOfMonth;
51
+ constructor(renderService?: EventRenderService | undefined);
52
+ get badgesTpl(): import("@angular/core").TemplateRef<import("../../index.js").EventRenderTemplateContext> | undefined;
53
+ get contentTpl(): import("@angular/core").TemplateRef<import("../../index.js").EventRenderTemplateContext> | undefined;
54
+ tplCtx(ev: CalendarEvent): import("../../index.js").EventRenderTemplateContext | undefined;
55
+ renderedTitle(ev: CalendarEvent): string;
56
+ slotsClassName(ev: CalendarEvent): string;
57
+ slotsStyle(ev: CalendarEvent): Record<string, string | number> | undefined;
58
+ get lanes(): number;
59
+ get lanesByCol(): number[];
60
+ get weekNumber(): number;
61
+ cellLanes(colIdx: number): number;
62
+ maxVisible(colIdx: number): number;
63
+ dayMsOf(date: CalendarDateTime): number;
64
+ isExpanded(date: CalendarDateTime): boolean;
65
+ onExpand(date: CalendarDateTime): void;
66
+ onCollapse(): void;
67
+ isToday(date: CalendarDateTime): boolean;
68
+ inMonth(date: CalendarDateTime): boolean;
69
+ trackDay(_: number, date: CalendarDateTime): number;
70
+ formatDayNumber(date: CalendarDateTime): string;
71
+ getTimedEvents(date: CalendarDateTime): CalendarEvent[];
72
+ getVisibleTimed(timed: CalendarEvent[], colIdx: number, date: CalendarDateTime): CalendarEvent[];
73
+ hasOverflow(timed: CalendarEvent[], colIdx: number): boolean;
74
+ getColor(ev: CalendarEvent): string;
75
+ formatTime(ev: CalendarEvent): string;
76
+ isDragged(item: LayoutItem): boolean;
77
+ handleDragOver(e: DragEvent): void;
78
+ handleDragLeave(e: DragEvent): void;
79
+ handleDrop(e: DragEvent): void;
80
+ handleDayCellClick(e: MouseEvent, date: CalendarDateTime): void;
81
+ handleDayCellDoubleClick(e: MouseEvent, date: CalendarDateTime): void;
82
+ handleTimedMouseDown(): void;
83
+ handleTimedClick(e: MouseEvent, ev: CalendarEvent): void;
84
+ handleTimedDoubleClick(e: MouseEvent, ev: CalendarEvent): void;
85
+ isTimedSelected(ev: CalendarEvent): boolean;
86
+ static ɵfac: i0.ɵɵFactoryDeclaration<WeekRowComponent, [{ optional: true; }]>;
87
+ static ɵcmp: i0.ɵɵComponentDeclaration<WeekRowComponent, "cal-week-row", never, { "weekDates": { "alias": "weekDates"; "required": false; }; "items": { "alias": "items"; "required": false; }; "timedByDay": { "alias": "timedByDay"; "required": false; }; "currentYear": { "alias": "currentYear"; "required": false; }; "currentMonth": { "alias": "currentMonth"; "required": false; }; "config": { "alias": "config"; "required": false; }; "today": { "alias": "today"; "required": false; }; "previewEvent": { "alias": "previewEvent"; "required": false; }; "expandedMonthDay": { "alias": "expandedMonthDay"; "required": false; }; "selectedEventId": { "alias": "selectedEventId"; "required": false; }; "selectedInstanceDate": { "alias": "selectedInstanceDate"; "required": false; }; }, { "eventClick": "eventClick"; "selectEvent": "selectEvent"; "clearSelection": "clearSelection"; "dayCellClick": "dayCellClick"; "dropEvent": "dropEvent"; "dragOver": "dragOver"; "hidePreviewEv": "hidePreviewEv"; "dragEnd": "dragEnd"; "dragStartEv": "dragStartEv"; "expandMonthCell": "expandMonthCell"; "collapseMonthCell": "collapseMonthCell"; }, never, never, true, never>;
88
+ }
89
+ //# sourceMappingURL=WeekRow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WeekRow.d.ts","sourceRoot":"","sources":["../../../src/views/month/WeekRow.ts"],"names":[],"mappings":"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"}