@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,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Calculate which day column (0-6) the cursor is over,
|
|
3
|
+
* based on the mouse X position relative to a week-row element.
|
|
4
|
+
*/
|
|
5
|
+
export declare function getColFromX(clientX: number, rowEl: HTMLElement, colCount?: number): number;
|
|
6
|
+
//# sourceMappingURL=gridUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gridUtils.d.ts","sourceRoot":"","sources":["../../../src/binding/utils/gridUtils.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,SAAI,GAAG,MAAM,CAMrF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { WEEK_NUM_COL_WIDTH } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Calculate which day column (0-6) the cursor is over,
|
|
4
|
+
* based on the mouse X position relative to a week-row element.
|
|
5
|
+
*/
|
|
6
|
+
export function getColFromX(clientX, rowEl, colCount = 7) {
|
|
7
|
+
const rect = rowEl.getBoundingClientRect();
|
|
8
|
+
const x = clientX - rect.left - WEEK_NUM_COL_WIDTH;
|
|
9
|
+
const dayAreaWidth = rect.width - WEEK_NUM_COL_WIDTH;
|
|
10
|
+
const col = Math.floor((x / dayAreaWidth) * colCount);
|
|
11
|
+
return Math.max(0, Math.min(colCount - 1, col));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=gridUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gridUtils.js","sourceRoot":"","sources":["../../../src/binding/utils/gridUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,KAAkB,EAAE,QAAQ,GAAG,CAAC;IAC3E,MAAM,IAAI,GAAG,KAAK,CAAC,qBAAqB,EAAE,CAAC;IAC3C,MAAM,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACnD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC;IACrD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,GAAG,QAAQ,CAAC,CAAC;IACtD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-configs.d.ts","sourceRoot":"","sources":["../../src/binding/view-configs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view-configs.js","sourceRoot":"","sources":["../../src/binding/view-configs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { OnInit, OnDestroy, OnChanges, SimpleChanges, NgZone, TemplateRef, type Type } from '@angular/core';
|
|
2
|
+
import type { CalendarEvent, CalendarDateTime, ViewType, Resource } from '@bimetal/calendar-core';
|
|
3
|
+
import { getYear, getMonth } from '@bimetal/calendar-core';
|
|
4
|
+
import type { CalendarStore } from '@bimetal/calendar-data';
|
|
5
|
+
import type { CalendarRule } from '@bimetal/calendar-rules';
|
|
6
|
+
import { EventRenderService } from '../binding/index.js';
|
|
7
|
+
import type { CalendarConfig, CalendarConfigInput, ViewConfig, CustomViewDefinition, CustomViewInputs, EventDialogMode, EventDialogInputs, AnchorRect, EventClassNameFn, EventStyleFn, EventTitleFn, EventRenderTemplateContext } from '../binding/index.js';
|
|
8
|
+
import type { CalendarControllerSnapshot } from '@bimetal/calendar-headless';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export declare class CalendarComponent implements OnInit, OnDestroy, OnChanges {
|
|
11
|
+
eventRenderService?: EventRenderService | undefined;
|
|
12
|
+
private zone?;
|
|
13
|
+
store: CalendarStore;
|
|
14
|
+
rules: CalendarRule[];
|
|
15
|
+
config: CalendarConfigInput | undefined;
|
|
16
|
+
darkMode: boolean;
|
|
17
|
+
showCategoryFilter: boolean;
|
|
18
|
+
showResourceFilter: boolean;
|
|
19
|
+
customViews?: readonly CustomViewDefinition[];
|
|
20
|
+
eventDialog: EventDialogMode;
|
|
21
|
+
onEventClick?: (eventId: string, anchorRect: AnchorRect, instanceDate?: number) => void;
|
|
22
|
+
onNewEventRequested?: (defaultDate: CalendarDateTime, anchorRect: AnchorRect, defaultResourceId?: string) => void;
|
|
23
|
+
/** Controller error channel: domain rejections surface as toasts; any other
|
|
24
|
+
* error (e.g. ConcurrencyError) is passed here instead of rejecting. */
|
|
25
|
+
onError?: (err: unknown) => void;
|
|
26
|
+
/** Template projected after the default content zone of every event. */
|
|
27
|
+
eventBadgesTpl?: TemplateRef<EventRenderTemplateContext>;
|
|
28
|
+
/** Template replacing the default content zone of every event. */
|
|
29
|
+
eventContentTpl?: TemplateRef<EventRenderTemplateContext>;
|
|
30
|
+
/** Per-event additional class names. Return undefined to keep defaults. */
|
|
31
|
+
eventClassName?: EventClassNameFn;
|
|
32
|
+
/** Per-event extra style object merged after the default style. */
|
|
33
|
+
eventStyle?: EventStyleFn;
|
|
34
|
+
/** Per-event title override. Return undefined to keep event.title. */
|
|
35
|
+
eventTitle?: EventTitleFn;
|
|
36
|
+
private binding;
|
|
37
|
+
/** Latest controller snapshot, read by the template via the signal. */
|
|
38
|
+
get snapshot(): CalendarControllerSnapshot;
|
|
39
|
+
getYear: typeof getYear;
|
|
40
|
+
getMonth: typeof getMonth;
|
|
41
|
+
/** v0.29 Tastatur: root-scoped keydown → controller (Ctrl/Cmd+Z undo, Escape clears).
|
|
42
|
+
* Bound via the `.calendar` root's `(keydown)` in the template — NOT a window listener
|
|
43
|
+
* (no document-level routing). Public so the template can call it. */
|
|
44
|
+
keyHandler: (e: KeyboardEvent) => void;
|
|
45
|
+
constructor(eventRenderService?: EventRenderService | undefined, zone?: NgZone | undefined);
|
|
46
|
+
get ctrl(): import("@bimetal/calendar-headless").CalendarController;
|
|
47
|
+
/** Builtin dialog save: the controller assembles + mints + validates + saves. */
|
|
48
|
+
saveDialogFromInput(): void;
|
|
49
|
+
get mergedConfig(): CalendarConfig;
|
|
50
|
+
get viewConfigList(): ViewConfig[];
|
|
51
|
+
get filteredEvents(): CalendarEvent[];
|
|
52
|
+
get visibleResources(): readonly Resource[];
|
|
53
|
+
get selectedEventId(): string | null;
|
|
54
|
+
get selectedInstanceDate(): number | undefined;
|
|
55
|
+
get dialogHistory(): import("@bimetal/event-sourcing").DomainEvent<string, unknown>[];
|
|
56
|
+
private syncEventRenderService;
|
|
57
|
+
ngOnInit(): void;
|
|
58
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
59
|
+
ngOnDestroy(): void;
|
|
60
|
+
handleViewChange(v: ViewType): void;
|
|
61
|
+
getCustomView(id: ViewType): CustomViewDefinition | undefined;
|
|
62
|
+
get customViewInputs(): CustomViewInputs;
|
|
63
|
+
/** Component class for the custom dialog (template binding helper). */
|
|
64
|
+
get customDialogComponent(): Type<unknown> | null;
|
|
65
|
+
/** Inputs passed to the custom dialog via *ngComponentOutlet. */
|
|
66
|
+
get eventDialogInputs(): EventDialogInputs | undefined;
|
|
67
|
+
handleEventClick(ev: {
|
|
68
|
+
eventId: string;
|
|
69
|
+
rect: AnchorRect;
|
|
70
|
+
instanceDate?: number;
|
|
71
|
+
}): void;
|
|
72
|
+
handleDayCellClick(ev: {
|
|
73
|
+
date: CalendarDateTime;
|
|
74
|
+
rect: AnchorRect;
|
|
75
|
+
}): void;
|
|
76
|
+
handleResourceCellClick(ev: {
|
|
77
|
+
date: CalendarDateTime;
|
|
78
|
+
time: string;
|
|
79
|
+
resourceId: string;
|
|
80
|
+
rect: AnchorRect;
|
|
81
|
+
}): void;
|
|
82
|
+
handleTimelineCellClick(ev: {
|
|
83
|
+
date: CalendarDateTime;
|
|
84
|
+
resourceId: string;
|
|
85
|
+
rect: AnchorRect;
|
|
86
|
+
}): void;
|
|
87
|
+
handleDropEvent(ev: {
|
|
88
|
+
event: DragEvent;
|
|
89
|
+
date: CalendarDateTime;
|
|
90
|
+
}): void;
|
|
91
|
+
handleDropTimedEvent(ev: {
|
|
92
|
+
event: DragEvent;
|
|
93
|
+
date: CalendarDateTime;
|
|
94
|
+
time: string;
|
|
95
|
+
}): void;
|
|
96
|
+
handleResourceDrop(ev: {
|
|
97
|
+
event: DragEvent;
|
|
98
|
+
date: CalendarDateTime;
|
|
99
|
+
time: string;
|
|
100
|
+
resourceId: string;
|
|
101
|
+
}): void;
|
|
102
|
+
handleTimelineDrop(ev: {
|
|
103
|
+
event: DragEvent;
|
|
104
|
+
date: CalendarDateTime;
|
|
105
|
+
resourceId: string;
|
|
106
|
+
}): void;
|
|
107
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CalendarComponent, [{ optional: true; }, null]>;
|
|
108
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CalendarComponent, "cal-calendar", never, { "store": { "alias": "store"; "required": false; }; "rules": { "alias": "rules"; "required": false; }; "config": { "alias": "config"; "required": false; }; "darkMode": { "alias": "darkMode"; "required": false; }; "showCategoryFilter": { "alias": "showCategoryFilter"; "required": false; }; "showResourceFilter": { "alias": "showResourceFilter"; "required": false; }; "customViews": { "alias": "customViews"; "required": false; }; "eventDialog": { "alias": "eventDialog"; "required": false; }; "onEventClick": { "alias": "onEventClick"; "required": false; }; "onNewEventRequested": { "alias": "onNewEventRequested"; "required": false; }; "onError": { "alias": "onError"; "required": false; }; "eventBadgesTpl": { "alias": "eventBadgesTpl"; "required": false; }; "eventContentTpl": { "alias": "eventContentTpl"; "required": false; }; "eventClassName": { "alias": "eventClassName"; "required": false; }; "eventStyle": { "alias": "eventStyle"; "required": false; }; "eventTitle": { "alias": "eventTitle"; "required": false; }; }, {}, never, never, true, never>;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=Calendar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../src/components/Calendar.ts"],"names":[],"mappings":"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"}
|