@bimetal/calendar-angular-components 0.35.0 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/binding/controller.d.ts +10 -1
- package/dist/binding/controller.d.ts.map +1 -1
- package/dist/binding/controller.js +11 -1
- package/dist/binding/controller.js.map +1 -1
- package/dist/binding/index.d.ts +4 -2
- package/dist/binding/index.d.ts.map +1 -1
- package/dist/binding/index.js +5 -2
- package/dist/binding/index.js.map +1 -1
- package/dist/binding/services/pointer-gesture.service.d.ts +26 -0
- package/dist/binding/services/pointer-gesture.service.d.ts.map +1 -0
- package/dist/binding/services/pointer-gesture.service.js +37 -0
- package/dist/binding/services/pointer-gesture.service.js.map +1 -0
- package/dist/components/Calendar.d.ts +21 -4
- package/dist/components/Calendar.d.ts.map +1 -1
- package/dist/components/Calendar.js +121 -30
- package/dist/components/Calendar.js.map +1 -1
- package/dist/components/CalendarHeader.d.ts +3 -0
- package/dist/components/CalendarHeader.d.ts.map +1 -1
- package/dist/components/CalendarHeader.js +10 -4
- package/dist/components/CalendarHeader.js.map +1 -1
- package/dist/components/CategoryFilter.d.ts +3 -0
- package/dist/components/CategoryFilter.d.ts.map +1 -1
- package/dist/components/CategoryFilter.js +9 -5
- package/dist/components/CategoryFilter.js.map +1 -1
- package/dist/components/EventBar.d.ts +11 -4
- package/dist/components/EventBar.d.ts.map +1 -1
- package/dist/components/EventBar.js +87 -32
- package/dist/components/EventBar.js.map +1 -1
- package/dist/components/EventDialog.d.ts +6 -4
- package/dist/components/EventDialog.d.ts.map +1 -1
- package/dist/components/EventDialog.js +81 -44
- package/dist/components/EventDialog.js.map +1 -1
- package/dist/components/EventHistory.d.ts +14 -10
- package/dist/components/EventHistory.d.ts.map +1 -1
- package/dist/components/EventHistory.js +59 -56
- package/dist/components/EventHistory.js.map +1 -1
- package/dist/styles/index.css.d.ts +3 -0
- package/dist/views/day/DayView.d.ts +26 -4
- package/dist/views/day/DayView.d.ts.map +1 -1
- package/dist/views/day/DayView.js +56 -17
- package/dist/views/day/DayView.js.map +1 -1
- package/dist/views/month/MonthView.d.ts +14 -3
- package/dist/views/month/MonthView.d.ts.map +1 -1
- package/dist/views/month/MonthView.js +55 -7
- package/dist/views/month/MonthView.js.map +1 -1
- package/dist/views/month/WeekRow.d.ts +19 -3
- package/dist/views/month/WeekRow.d.ts.map +1 -1
- package/dist/views/month/WeekRow.js +73 -34
- package/dist/views/month/WeekRow.js.map +1 -1
- package/dist/views/resource/ResourceView.d.ts +28 -1
- package/dist/views/resource/ResourceView.d.ts.map +1 -1
- package/dist/views/resource/ResourceView.js +78 -21
- package/dist/views/resource/ResourceView.js.map +1 -1
- package/dist/views/timeline/TimelineView.d.ts +25 -3
- package/dist/views/timeline/TimelineView.d.ts.map +1 -1
- package/dist/views/timeline/TimelineView.js +77 -16
- package/dist/views/timeline/TimelineView.js.map +1 -1
- package/dist/views/week/AllDayRow.d.ts +16 -3
- package/dist/views/week/AllDayRow.d.ts.map +1 -1
- package/dist/views/week/AllDayRow.js +47 -10
- package/dist/views/week/AllDayRow.js.map +1 -1
- package/dist/views/week/TimeEvent.d.ts +11 -4
- package/dist/views/week/TimeEvent.d.ts.map +1 -1
- package/dist/views/week/TimeEvent.js +76 -26
- package/dist/views/week/TimeEvent.js.map +1 -1
- package/dist/views/week/WeekView.d.ts +16 -1
- package/dist/views/week/WeekView.d.ts.map +1 -1
- package/dist/views/week/WeekView.js +53 -18
- package/dist/views/week/WeekView.js.map +1 -1
- package/dist/views/year/YearView.d.ts +2 -0
- package/dist/views/year/YearView.d.ts.map +1 -1
- package/dist/views/year/YearView.js +17 -1
- package/dist/views/year/YearView.js.map +1 -1
- package/package.json +15 -12
|
@@ -18,5 +18,14 @@ export interface CalendarControllerBinding {
|
|
|
18
18
|
readonly ctrl: CalendarController;
|
|
19
19
|
destroy(): void;
|
|
20
20
|
}
|
|
21
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Create the controller and bridge it into an Angular signal (see above).
|
|
23
|
+
*
|
|
24
|
+
* OPTIONEN: GETTER ODER OBJEKT (bimetal-181). Der Getter (`() => ({ … })`) hält die
|
|
25
|
+
* IDENTITÄT der Callbacks lebendig — er wird bei jedem Callback-Aufruf erneut
|
|
26
|
+
* gerufen; ein rohes Objekt bleibt erlaubt und verhält sich wie ein Getter, der
|
|
27
|
+
* immer dasselbe baut. Die ANWESENHEIT eines Callbacks ist in beiden Formen am
|
|
28
|
+
* Aufbau festgelegt (`toLiveOptions`).
|
|
29
|
+
*/
|
|
30
|
+
export declare function createCalendarControllerBinding(options: CalendarControllerOptions | (() => CalendarControllerOptions), zone?: NgZone): CalendarControllerBinding;
|
|
22
31
|
//# sourceMappingURL=controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/binding/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/binding/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAGjE,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAC3B,MAAM,4BAA4B,CAAC;AAEpC;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,0BAA0B,CAAC,CAAC;IACtD,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,yBAAyB,GAAG,CAAC,MAAM,yBAAyB,CAAC,EACtE,IAAI,CAAC,EAAE,MAAM,GACZ,yBAAyB,CAc3B"}
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import { signal } from '@angular/core';
|
|
2
|
+
import { toLiveOptions } from '@bimetal/angular';
|
|
2
3
|
import { createCalendarController } from '@bimetal/calendar-headless';
|
|
4
|
+
/**
|
|
5
|
+
* Create the controller and bridge it into an Angular signal (see above).
|
|
6
|
+
*
|
|
7
|
+
* OPTIONEN: GETTER ODER OBJEKT (bimetal-181). Der Getter (`() => ({ … })`) hält die
|
|
8
|
+
* IDENTITÄT der Callbacks lebendig — er wird bei jedem Callback-Aufruf erneut
|
|
9
|
+
* gerufen; ein rohes Objekt bleibt erlaubt und verhält sich wie ein Getter, der
|
|
10
|
+
* immer dasselbe baut. Die ANWESENHEIT eines Callbacks ist in beiden Formen am
|
|
11
|
+
* Aufbau festgelegt (`toLiveOptions`).
|
|
12
|
+
*/
|
|
3
13
|
export function createCalendarControllerBinding(options, zone) {
|
|
4
|
-
const ctrl = createCalendarController(options);
|
|
14
|
+
const ctrl = createCalendarController(toLiveOptions(options));
|
|
5
15
|
const snapshot = signal(ctrl.getSnapshot());
|
|
6
16
|
const run = zone ? (fn) => zone.run(fn) : (fn) => fn();
|
|
7
17
|
const unsub = ctrl.subscribe(() => run(() => snapshot.set(ctrl.getSnapshot())));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/binding/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA4B,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AA0BtE,MAAM,UAAU,+BAA+B,CAC7C,
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/binding/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA4B,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AA0BtE;;;;;;;;GAQG;AACH,MAAM,UAAU,+BAA+B,CAC7C,OAAsE,EACtE,IAAa;IAEb,MAAM,IAAI,GAAG,wBAAwB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,MAAM,CAA6B,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACxE,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAc,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;IAC/E,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;IAEhF,OAAO;QACL,QAAQ;QACR,IAAI;QACJ,OAAO;YACL,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/binding/index.d.ts
CHANGED
|
@@ -12,11 +12,13 @@ export type { CalendarControllerBinding } from './controller.js';
|
|
|
12
12
|
export { createCalendarController } from '@bimetal/calendar-headless';
|
|
13
13
|
export type { CalendarController, CalendarControllerOptions, EventInteractionPolicy, ResolvedEventInteraction, CalendarControllerSnapshot, CustomViewSpec, SelectionState, } from '@bimetal/calendar-headless';
|
|
14
14
|
export { EventRenderService } from './services/event-render.service.js';
|
|
15
|
+
export { CalendarPointerGestureService } from './services/pointer-gesture.service.js';
|
|
15
16
|
export type { CalendarConfig, CalendarConfigInput, CalendarLocale, Category, ViewConfig, AnchorRect, CustomViewDefinition, CustomViewInputs, EventDialogInputs, EventDialogMode, EventRenderContext, EventRenderTemplateContext, EventRenderTemplate, EventClassNameFn, EventStyleFn, EventTitleFn, } from './types.js';
|
|
16
17
|
export type { DragPreview, DragInfo } from '@bimetal/calendar-headless';
|
|
17
|
-
export { snapTimeFromMouseY, parseDragInfo, DRAG_MIME, findExpandedEvent, buildDragInfo, writeCalendarDragData
|
|
18
|
+
export { snapTimeFromMouseY, parseDragInfo, DRAG_MIME, findExpandedEvent, buildDragInfo, writeCalendarDragData } from '@bimetal/calendar-headless';
|
|
19
|
+
export { installTransparentDragImage } from '@bimetal/a11y-dom';
|
|
18
20
|
export { WEEK_NUM_COL_WIDTH, getColFromX, ZERO_RECT } from '@bimetal/calendar-headless';
|
|
19
21
|
export { defaultLocale, defaultCalendarConfig, mergeCalendarConfig } from './config.js';
|
|
20
22
|
export { createViewConfigs } from './view-configs.js';
|
|
21
|
-
export { toDateStr, toTimeStr, parseDateStr, parseDateTimeStr } from '@bimetal/calendar-headless';
|
|
23
|
+
export { toDateStr, toTimeStr, formatTime, parseDateStr, parseDateTimeStr } from '@bimetal/calendar-headless';
|
|
22
24
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/binding/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAClE,YAAY,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAGjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,YAAY,EACV,kBAAkB,EAClB,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC1B,cAAc,EACd,cAAc,GACf,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/binding/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAClE,YAAY,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAGjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,YAAY,EACV,kBAAkB,EAClB,yBAAyB,EACzB,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC1B,cAAc,EACd,cAAc,GACf,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAGtF,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,QAAQ,EACR,UAAU,EACV,UAAU,EACV,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,0BAA0B,EAC1B,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,SAAS,EAAE,iBAAiB,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnJ,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGxF,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC"}
|
package/dist/binding/index.js
CHANGED
|
@@ -13,11 +13,14 @@ export { createCalendarControllerBinding } from './controller.js';
|
|
|
13
13
|
export { createCalendarController } from '@bimetal/calendar-headless';
|
|
14
14
|
// ── Services ───────────────────────────────────────────────────
|
|
15
15
|
export { EventRenderService } from './services/event-render.service.js';
|
|
16
|
-
export {
|
|
16
|
+
export { CalendarPointerGestureService } from './services/pointer-gesture.service.js';
|
|
17
|
+
export { snapTimeFromMouseY, parseDragInfo, DRAG_MIME, findExpandedEvent, buildDragInfo, writeCalendarDragData } from '@bimetal/calendar-headless';
|
|
18
|
+
// mcp-51 C1: der Drag-Ghost ist echter DOM-Code und lebt jetzt im geteilten DOM-Layer.
|
|
19
|
+
export { installTransparentDragImage } from '@bimetal/a11y-dom';
|
|
17
20
|
export { WEEK_NUM_COL_WIDTH, getColFromX, ZERO_RECT } from '@bimetal/calendar-headless';
|
|
18
21
|
// ── Config ──────────────────────────────────────────────────────
|
|
19
22
|
export { defaultLocale, defaultCalendarConfig, mergeCalendarConfig } from './config.js';
|
|
20
23
|
export { createViewConfigs } from './view-configs.js';
|
|
21
24
|
// ── Utilities ───────────────────────────────────────────────────
|
|
22
|
-
export { toDateStr, toTimeStr, parseDateStr, parseDateTimeStr } from '@bimetal/calendar-headless';
|
|
25
|
+
export { toDateStr, toTimeStr, formatTime, parseDateStr, parseDateTimeStr } from '@bimetal/calendar-headless';
|
|
23
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/binding/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,kEAAkE;AAClE,OAAO,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAGlE,mEAAmE;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAWtE,kEAAkE;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/binding/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,kEAAkE;AAClE,OAAO,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAGlE,mEAAmE;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAWtE,kEAAkE;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAsBtF,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,SAAS,EAAE,iBAAiB,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnJ,uFAAuF;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAExF,mEAAmE;AACnE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,mEAAmE;AACnE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mcp-57 Slice E — angular wiring for the ONE shared pointer-gesture FSM
|
|
3
|
+
* (`createPointerDragGesture`, calendar-headless). A VIEW component provides
|
|
4
|
+
* this service (component-level `providers: [...]`), configures it with its
|
|
5
|
+
* geometry in `ngOnInit`/`ngAfterViewInit` (closures over `this.*` stay
|
|
6
|
+
* fresh), and Angular destroys it with the view — which cancels a mid-flight
|
|
7
|
+
* gesture cleanly. Leaves inject it `@Optional()`: no providing ancestor =
|
|
8
|
+
* `null` = the leaf keeps its native-DnD fallback (a consumer view that
|
|
9
|
+
* mounts a leaf without a provider keeps a working drag). Nested providers
|
|
10
|
+
* override outer ones (AllDayRow inside WeekView), mirroring the other
|
|
11
|
+
* bindings' context nesting.
|
|
12
|
+
*/
|
|
13
|
+
import { OnDestroy } from '@angular/core';
|
|
14
|
+
import type { DragInfo, PointerDragGestureOptions } from '@bimetal/calendar-headless';
|
|
15
|
+
import * as i0 from "@angular/core";
|
|
16
|
+
export declare class CalendarPointerGestureService implements OnDestroy {
|
|
17
|
+
private fsm;
|
|
18
|
+
/** Leaf entry — safe to call before init (no-op until the view configured it). */
|
|
19
|
+
readonly onPointerDown: (info: DragInfo, pointerId: number, clientX: number, clientY: number, markDragged: () => void) => void;
|
|
20
|
+
/** View-side: (re)configure the FSM with this view's geometry. */
|
|
21
|
+
init<H>(options: PointerDragGestureOptions<H>): void;
|
|
22
|
+
ngOnDestroy(): void;
|
|
23
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CalendarPointerGestureService, never>;
|
|
24
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<CalendarPointerGestureService>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=pointer-gesture.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pointer-gesture.service.d.ts","sourceRoot":"","sources":["../../../src/binding/services/pointer-gesture.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAc,SAAS,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,QAAQ,EAAsB,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;;AAE1G,qBACa,6BAA8B,YAAW,SAAS;IAC7D,OAAO,CAAC,GAAG,CAAmC;IAE9C,kFAAkF;IAClF,QAAQ,CAAC,aAAa,GAAI,MAAM,QAAQ,EAAE,WAAW,MAAM,EAAE,SAAS,MAAM,EAAE,SAAS,MAAM,EAAE,aAAa,MAAM,IAAI,KAAG,IAAI,CAE3H;IAEF,kEAAkE;IAClE,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,yBAAyB,CAAC,CAAC,CAAC,GAAG,IAAI;IAKpD,WAAW,IAAI,IAAI;yCAdR,6BAA6B;6CAA7B,6BAA6B;CAkBzC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mcp-57 Slice E — angular wiring for the ONE shared pointer-gesture FSM
|
|
3
|
+
* (`createPointerDragGesture`, calendar-headless). A VIEW component provides
|
|
4
|
+
* this service (component-level `providers: [...]`), configures it with its
|
|
5
|
+
* geometry in `ngOnInit`/`ngAfterViewInit` (closures over `this.*` stay
|
|
6
|
+
* fresh), and Angular destroys it with the view — which cancels a mid-flight
|
|
7
|
+
* gesture cleanly. Leaves inject it `@Optional()`: no providing ancestor =
|
|
8
|
+
* `null` = the leaf keeps its native-DnD fallback (a consumer view that
|
|
9
|
+
* mounts a leaf without a provider keeps a working drag). Nested providers
|
|
10
|
+
* override outer ones (AllDayRow inside WeekView), mirroring the other
|
|
11
|
+
* bindings' context nesting.
|
|
12
|
+
*/
|
|
13
|
+
import { Injectable } from '@angular/core';
|
|
14
|
+
import { createPointerDragGesture } from '@bimetal/calendar-headless';
|
|
15
|
+
import * as i0 from "@angular/core";
|
|
16
|
+
export class CalendarPointerGestureService {
|
|
17
|
+
fsm = null;
|
|
18
|
+
/** Leaf entry — safe to call before init (no-op until the view configured it). */
|
|
19
|
+
onPointerDown = (info, pointerId, clientX, clientY, markDragged) => {
|
|
20
|
+
this.fsm?.onPointerDown(info, pointerId, clientX, clientY, markDragged);
|
|
21
|
+
};
|
|
22
|
+
/** View-side: (re)configure the FSM with this view's geometry. */
|
|
23
|
+
init(options) {
|
|
24
|
+
this.fsm?.destroy();
|
|
25
|
+
this.fsm = createPointerDragGesture(window, options);
|
|
26
|
+
}
|
|
27
|
+
ngOnDestroy() {
|
|
28
|
+
this.fsm?.destroy();
|
|
29
|
+
this.fsm = null;
|
|
30
|
+
}
|
|
31
|
+
static ɵfac = function CalendarPointerGestureService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CalendarPointerGestureService)(); };
|
|
32
|
+
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CalendarPointerGestureService, factory: CalendarPointerGestureService.ɵfac });
|
|
33
|
+
}
|
|
34
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CalendarPointerGestureService, [{
|
|
35
|
+
type: Injectable
|
|
36
|
+
}], null, null); })();
|
|
37
|
+
//# sourceMappingURL=pointer-gesture.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pointer-gesture.service.js","sourceRoot":"","sources":["../../../src/binding/services/pointer-gesture.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAa,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;;AAItE,MAAM,OAAO,6BAA6B;IAChC,GAAG,GAA8B,IAAI,CAAC;IAE9C,kFAAkF;IACzE,aAAa,GAAG,CAAC,IAAc,EAAE,SAAiB,EAAE,OAAe,EAAE,OAAe,EAAE,WAAuB,EAAQ,EAAE;QAC9H,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC1E,CAAC,CAAC;IAEF,kEAAkE;IAClE,IAAI,CAAI,OAAqC;QAC3C,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,GAAG,wBAAwB,CAAI,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,WAAW;QACT,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IAClB,CAAC;uHAjBU,6BAA6B;gEAA7B,6BAA6B,WAA7B,6BAA6B;;iFAA7B,6BAA6B;cADzC,UAAU"}
|
|
@@ -5,7 +5,7 @@ import type { CalendarStore } from '@bimetal/calendar-data';
|
|
|
5
5
|
import type { CalendarRule, CalendarRuleResult } from '@bimetal/calendar-rules';
|
|
6
6
|
import { type CalendarController, EventRenderService } from '../binding/index.js';
|
|
7
7
|
import type { CalendarConfig, CalendarConfigInput, ViewConfig, CustomViewDefinition, CustomViewInputs, EventDialogMode, EventDialogInputs, AnchorRect, EventClassNameFn, EventStyleFn, EventTitleFn, EventRenderTemplateContext } from '../binding/index.js';
|
|
8
|
-
import type { CalendarControllerSnapshot, EventInteractionPolicy, CalendarHistoryChange } from '@bimetal/calendar-headless';
|
|
8
|
+
import type { CalendarControllerSnapshot, EventInteractionPolicy, CalendarHistoryChange, CalendarHistoryEntry } from '@bimetal/calendar-headless';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
/**
|
|
11
11
|
* Root calendar component: renders header, filters, the active view, and the
|
|
@@ -68,6 +68,15 @@ export declare class CalendarComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
68
68
|
* `locked` for all-off). The controller enforces it AND exposes it so the views drop
|
|
69
69
|
* the matching affordance. Read at controller creation — pass a stable function. */
|
|
70
70
|
eventInteraction?: (event: CalendarEvent) => EventInteractionPolicy;
|
|
71
|
+
/** bimetal-147: macht aus der Audit-Id `event.metadata.userId` den in der
|
|
72
|
+
* eingebauten Historie angezeigten Text. Ohne den Hook zeigt die Historie die
|
|
73
|
+
* Id roh — sie erfindet nie einen Namen. Nur auf dem STANDALONE-Pfad ein Input;
|
|
74
|
+
* wer den Controller selbst besitzt, setzt ihn dort als Option. Wie
|
|
75
|
+
* `eventInteraction` bei der Controller-Erzeugung gelesen — eine STABILE
|
|
76
|
+
* Funktion übergeben; ein späterer `@Input()`-Wechsel wird NICHT nachgezogen
|
|
77
|
+
* (kein `ngOnChanges`-Pfad), auch wenn ein Input sonst Reaktivität erwarten
|
|
78
|
+
* lässt. */
|
|
79
|
+
resolveActor?: (userId: string) => string | undefined;
|
|
71
80
|
/** STANDALONE only — the bound path leaves the owned controller untouched. */
|
|
72
81
|
private binding?;
|
|
73
82
|
private bound;
|
|
@@ -94,28 +103,36 @@ export declare class CalendarComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
94
103
|
/** Builtin dialog save: the controller assembles + mints + validates + saves. */
|
|
95
104
|
saveDialogFromInput(): void;
|
|
96
105
|
get mergedConfig(): CalendarConfig;
|
|
97
|
-
|
|
106
|
+
private eventsCopy;
|
|
98
107
|
get filteredEvents(): CalendarEvent[];
|
|
108
|
+
private viewConfigCopy;
|
|
109
|
+
get viewConfigList(): ViewConfig[];
|
|
99
110
|
get visibleResources(): readonly Resource[];
|
|
100
111
|
get selectedEventId(): string | null;
|
|
101
112
|
get selectedInstanceDate(): number | undefined;
|
|
102
|
-
|
|
113
|
+
private historyCache;
|
|
114
|
+
get dialogHistory(): readonly CalendarHistoryEntry[];
|
|
103
115
|
private syncEventRenderService;
|
|
104
116
|
ngOnInit(): void;
|
|
105
117
|
ngOnChanges(changes: SimpleChanges): void;
|
|
106
118
|
ngOnDestroy(): void;
|
|
107
119
|
handleViewChange(v: ViewType): void;
|
|
108
120
|
getCustomView(id: ViewType): CustomViewDefinition | undefined;
|
|
121
|
+
private customViewInputsCache;
|
|
109
122
|
get customViewInputs(): CustomViewInputs;
|
|
110
123
|
/** Component class for the custom dialog (template binding helper). */
|
|
111
124
|
get customDialogComponent(): Type<unknown> | null;
|
|
112
125
|
/** Inputs passed to the custom dialog via *ngComponentOutlet. */
|
|
126
|
+
private eventDialogInputsCache;
|
|
113
127
|
get eventDialogInputs(): EventDialogInputs | undefined;
|
|
114
128
|
handleEventClick(ev: {
|
|
115
129
|
eventId: string;
|
|
116
130
|
rect: AnchorRect;
|
|
117
131
|
instanceDate?: number;
|
|
118
132
|
}): void;
|
|
133
|
+
/** mcp-116: re-open the dialog on the series master behind the shown occurrence.
|
|
134
|
+
* The anchor stays the one the dialog already sits on — the user is not moving. */
|
|
135
|
+
handleEditSeries(eventId: string): void;
|
|
119
136
|
handleDayCellClick(ev: {
|
|
120
137
|
date: CalendarDateTime;
|
|
121
138
|
rect: AnchorRect;
|
|
@@ -152,6 +169,6 @@ export declare class CalendarComponent implements OnInit, OnDestroy, OnChanges {
|
|
|
152
169
|
resourceId: string;
|
|
153
170
|
}): void;
|
|
154
171
|
static ɵfac: i0.ɵɵFactoryDeclaration<CalendarComponent, [{ optional: true; }, null]>;
|
|
155
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CalendarComponent, "cal-calendar", never, { "controller": { "alias": "controller"; "required": false; }; "store": { "alias": "store"; "required": false; }; "rules": { "alias": "rules"; "required": false; }; "config": { "alias": "config"; "required": false; }; "darkMode": { "alias": "darkMode"; "required": false; }; "dir": { "alias": "dir"; "required": false; }; "showCategoryFilter": { "alias": "showCategoryFilter"; "required": false; }; "showResourceFilter": { "alias": "showResourceFilter"; "required": false; }; "showUndoRedo": { "alias": "showUndoRedo"; "required": false; }; "customViews": { "alias": "customViews"; "required": false; }; "eventDialog": { "alias": "eventDialog"; "required": false; }; "onEventClick": { "alias": "onEventClick"; "required": false; }; "onNewEventRequested": { "alias": "onNewEventRequested"; "required": false; }; "onSelectionChange": { "alias": "onSelectionChange"; "required": false; }; "onError": { "alias": "onError"; "required": false; }; "onHistoryChange": { "alias": "onHistoryChange"; "required": false; }; "onWarning": { "alias": "onWarning"; "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; }; "eventInteraction": { "alias": "eventInteraction"; "required": false; }; }, {}, never, never, true, never>;
|
|
172
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CalendarComponent, "cal-calendar", never, { "controller": { "alias": "controller"; "required": false; }; "store": { "alias": "store"; "required": false; }; "rules": { "alias": "rules"; "required": false; }; "config": { "alias": "config"; "required": false; }; "darkMode": { "alias": "darkMode"; "required": false; }; "dir": { "alias": "dir"; "required": false; }; "showCategoryFilter": { "alias": "showCategoryFilter"; "required": false; }; "showResourceFilter": { "alias": "showResourceFilter"; "required": false; }; "showUndoRedo": { "alias": "showUndoRedo"; "required": false; }; "customViews": { "alias": "customViews"; "required": false; }; "eventDialog": { "alias": "eventDialog"; "required": false; }; "onEventClick": { "alias": "onEventClick"; "required": false; }; "onNewEventRequested": { "alias": "onNewEventRequested"; "required": false; }; "onSelectionChange": { "alias": "onSelectionChange"; "required": false; }; "onError": { "alias": "onError"; "required": false; }; "onHistoryChange": { "alias": "onHistoryChange"; "required": false; }; "onWarning": { "alias": "onWarning"; "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; }; "eventInteraction": { "alias": "eventInteraction"; "required": false; }; "resolveActor": { "alias": "resolveActor"; "required": false; }; }, {}, never, never, true, never>;
|
|
156
173
|
}
|
|
157
174
|
//# sourceMappingURL=Calendar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../src/components/Calendar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAiC,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAE7J,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../src/components/Calendar.ts"],"names":[],"mappings":"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"}
|