@acorex/components 21.0.1-next.2 → 21.0.1-next.3
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/action-sheet/index.d.ts +19 -41
- package/dialog/index.d.ts +14 -18
- package/dropdown/index.d.ts +4 -3
- package/fesm2022/acorex-components-action-sheet.mjs +93 -141
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation2.mjs +2 -2
- package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +45 -66
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +4 -0
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-grid-layout-builder.mjs +2 -2
- package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +36 -73
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +5 -26
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/{acorex-components-modal-acorex-components-modal-Bmoz9DL5.mjs → acorex-components-modal-acorex-components-modal-CXXcFToK.mjs} +3 -27
- package/fesm2022/acorex-components-modal-acorex-components-modal-CXXcFToK.mjs.map +1 -0
- package/fesm2022/{acorex-components-modal-modal-content.component-CSJU1vRi.mjs → acorex-components-modal-modal-content.component-B4rhHeEz.mjs} +2 -2
- package/fesm2022/{acorex-components-modal-modal-content.component-CSJU1vRi.mjs.map → acorex-components-modal-modal-content.component-B4rhHeEz.mjs.map} +1 -1
- package/fesm2022/acorex-components-modal.mjs +1 -1
- package/fesm2022/acorex-components-notification.mjs +257 -374
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +175 -136
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +105 -308
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-routing-progress.mjs +2 -2
- package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +1195 -136
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +123 -231
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +3 -2
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/loading-dialog/index.d.ts +15 -31
- package/menu/index.d.ts +0 -4
- package/modal/index.d.ts +0 -7
- package/notification/index.d.ts +32 -47
- package/package.json +7 -7
- package/popover/index.d.ts +27 -20
- package/popup/index.d.ts +27 -103
- package/scheduler/index.d.ts +281 -27
- package/toast/index.d.ts +18 -24
- package/tooltip/index.d.ts +2 -1
- package/fesm2022/acorex-components-modal-acorex-components-modal-Bmoz9DL5.mjs.map +0 -1
package/scheduler/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AXRange, NXNativeEvent, NXComponent, NXEvent, AXValueChangedEvent } from '@acorex/cdk/common';
|
|
2
2
|
import { AXDateTime, AXHolidayDate } from '@acorex/core/date-time';
|
|
3
3
|
import * as _angular_core from '@angular/core';
|
|
4
|
-
import { OnInit, TemplateRef,
|
|
4
|
+
import { OnInit, AfterViewInit, TemplateRef, OnDestroy, ElementRef } from '@angular/core';
|
|
5
5
|
import { AXDropZoneDropEvent } from '@acorex/cdk/drag-drop';
|
|
6
6
|
|
|
7
7
|
type AXSchedulerView = 'day' | 'week' | 'month' | 'timeline-day' | 'timeline-multi-day' | 'timeline-month' | 'timeline-year' | 'agenda';
|
|
@@ -68,6 +68,21 @@ type AXSchedulerResource = {
|
|
|
68
68
|
title: string;
|
|
69
69
|
description?: string;
|
|
70
70
|
};
|
|
71
|
+
/**
|
|
72
|
+
* Result of calculating updated appointment data after a drag-and-drop operation.
|
|
73
|
+
*/
|
|
74
|
+
type AXSchedulerAppointmentDropResult = {
|
|
75
|
+
/** The new start date for the appointment */
|
|
76
|
+
startDate: Date;
|
|
77
|
+
/** The new end date for the appointment */
|
|
78
|
+
endDate: Date;
|
|
79
|
+
/** Whether the appointment should be marked as all-day */
|
|
80
|
+
allDay: boolean;
|
|
81
|
+
/** The new resource ID (if applicable) */
|
|
82
|
+
resourceId?: unknown;
|
|
83
|
+
/** Whether the drop was on the same slot (no change needed) */
|
|
84
|
+
isSameSlotDrop: boolean;
|
|
85
|
+
};
|
|
71
86
|
|
|
72
87
|
interface AXSchedulerAppointmentMouseEvent extends NXNativeEvent<AXSchedulerComponent, MouseEvent> {
|
|
73
88
|
appointment: AXSchedulerAppointment;
|
|
@@ -90,7 +105,7 @@ interface AXSchedulerSlotDropEvent extends NXEvent<AXSchedulerComponent> {
|
|
|
90
105
|
};
|
|
91
106
|
isSameSlotDrop: boolean;
|
|
92
107
|
}
|
|
93
|
-
declare class AXSchedulerComponent extends NXComponent implements OnInit {
|
|
108
|
+
declare class AXSchedulerComponent extends NXComponent implements OnInit, AfterViewInit {
|
|
94
109
|
#private;
|
|
95
110
|
private platformId;
|
|
96
111
|
private unsubscriber;
|
|
@@ -115,6 +130,7 @@ declare class AXSchedulerComponent extends NXComponent implements OnInit {
|
|
|
115
130
|
text: string;
|
|
116
131
|
}[]>;
|
|
117
132
|
private prevDate;
|
|
133
|
+
protected selectedAppointmentId: _angular_core.WritableSignal<string | number>;
|
|
118
134
|
endDayHour: _angular_core.InputSignal<number>;
|
|
119
135
|
startDayHour: _angular_core.InputSignal<number>;
|
|
120
136
|
hasHeader: _angular_core.InputSignal<boolean>;
|
|
@@ -155,6 +171,7 @@ declare class AXSchedulerComponent extends NXComponent implements OnInit {
|
|
|
155
171
|
protected handleAppointmentRightClickInternal(eventData: AXSchedulerAppointmentMouseEvent): void;
|
|
156
172
|
protected handleAppointmentDropInternal(eventData: AXSchedulerSlotDropEvent): void;
|
|
157
173
|
ngOnInit(): void;
|
|
174
|
+
ngAfterViewInit(): void;
|
|
158
175
|
private fillDataSource;
|
|
159
176
|
private getGridDateRange;
|
|
160
177
|
currentDateText: _angular_core.Signal<string>;
|
|
@@ -197,12 +214,15 @@ declare class AXSchedulerComponent extends NXComponent implements OnInit {
|
|
|
197
214
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerComponent, "ax-scheduler", never, { "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "startingDate": { "alias": "startingDate"; "required": false; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": false; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "required": false; "isSignal": true; }; "hasHeader": { "alias": "hasHeader"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "weekend": { "alias": "weekend"; "required": false; "isSignal": true; }; "allowFullScreen": { "alias": "allowFullScreen"; "required": false; "isSignal": true; }; "multiDayViewDaysCount": { "alias": "multiDayViewDaysCount"; "required": false; "isSignal": true; }; "showResourceHeaders": { "alias": "showResourceHeaders"; "required": false; "isSignal": true; }; "showCurrentTimeIndicator": { "alias": "showCurrentTimeIndicator"; "required": false; "isSignal": true; }; "showUnassignedAppointments": { "alias": "showUnassignedAppointments"; "required": false; "isSignal": true; }; "resources": { "alias": "resources"; "required": false; "isSignal": true; }; "resourceTemplate": { "alias": "resourceTemplate"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; "dataSource": { "alias": "dataSource"; "required": false; "isSignal": true; }; "holidays": { "alias": "holidays"; "required": false; "isSignal": true; }; "views": { "alias": "views"; "required": false; "isSignal": true; }; "selectedView": { "alias": "selectedView"; "required": false; "isSignal": true; }; }, { "selectedView": "selectedViewChange"; "onDataLoaded": "onDataLoaded"; "onRangeChanged": "onRangeChanged"; "onSlotClicked": "onSlotClicked"; "onSlotDblClicked": "onSlotDblClicked"; "onSlotRightClick": "onSlotRightClick"; "onAppointmentDrop": "onAppointmentDrop"; "onActionClick": "onActionClick"; "onAppointmentClicked": "onAppointmentClicked"; "onAppointmentDblClicked": "onAppointmentDblClicked"; "onAppointmentRightClick": "onAppointmentRightClick"; }, never, never, true, never>;
|
|
198
215
|
}
|
|
199
216
|
|
|
200
|
-
declare class AXSchedulerDayViewComponent extends NXComponent implements AfterViewInit {
|
|
217
|
+
declare class AXSchedulerDayViewComponent extends NXComponent implements AfterViewInit, OnDestroy {
|
|
201
218
|
private document;
|
|
219
|
+
private destroyRef;
|
|
202
220
|
private scheduler;
|
|
203
221
|
private calendarService;
|
|
204
222
|
private schedulerService;
|
|
205
223
|
readonly GAP_PX = 1;
|
|
224
|
+
private resizeObserverCleanup;
|
|
225
|
+
rtl: _angular_core.InputSignal<boolean>;
|
|
206
226
|
readonly: _angular_core.InputSignal<boolean>;
|
|
207
227
|
draggable: _angular_core.InputSignal<boolean>;
|
|
208
228
|
hasActions: _angular_core.InputSignal<boolean>;
|
|
@@ -214,10 +234,12 @@ declare class AXSchedulerDayViewComponent extends NXComponent implements AfterVi
|
|
|
214
234
|
showCurrentTimeIndicator: _angular_core.InputSignal<boolean>;
|
|
215
235
|
appointments: _angular_core.InputSignal<AXSchedulerAppointment[]>;
|
|
216
236
|
tooltipTemplate: _angular_core.InputSignal<string | TemplateRef<unknown>>;
|
|
237
|
+
selectedAppointmentId: _angular_core.InputSignal<string | number>;
|
|
238
|
+
protected isActive(appointmentId: string | number): boolean;
|
|
217
239
|
currentTimeLineElement: _angular_core.Signal<ElementRef<HTMLElement>>;
|
|
218
240
|
private dragStartSlotId;
|
|
219
241
|
private processedAppointmentsForLayout;
|
|
220
|
-
protected allDayAppointments: _angular_core.Signal<
|
|
242
|
+
protected allDayAppointments: _angular_core.Signal<AXSchedulerAppointmentSegment[]>;
|
|
221
243
|
protected singleDayAppointments: _angular_core.Signal<AXSchedulerAppointmentSegment[]>;
|
|
222
244
|
slotClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
|
|
223
245
|
slotDblClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
|
|
@@ -244,24 +266,34 @@ declare class AXSchedulerDayViewComponent extends NXComponent implements AfterVi
|
|
|
244
266
|
protected getCurrentTimePosition(): number | null;
|
|
245
267
|
protected getCurrentTimePositionWithOffset(): string | null;
|
|
246
268
|
ngAfterViewInit(): void;
|
|
269
|
+
ngOnDestroy(): void;
|
|
247
270
|
private setupCurrentTimeScroll;
|
|
248
271
|
protected getSlotId(e: PointerEvent): void;
|
|
249
|
-
protected get isReadonly(): boolean;
|
|
250
272
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerDayViewComponent, never>;
|
|
251
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerDayViewComponent, "ax-scheduler-day-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": true; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "required": true; "isSignal": true; }; "showCurrentTimeIndicator": { "alias": "showCurrentTimeIndicator"; "required": false; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
|
|
273
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerDayViewComponent, "ax-scheduler-day-view", never, { "rtl": { "alias": "rtl"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": true; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "required": true; "isSignal": true; }; "showCurrentTimeIndicator": { "alias": "showCurrentTimeIndicator"; "required": false; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; "selectedAppointmentId": { "alias": "selectedAppointmentId"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
|
|
252
274
|
}
|
|
253
275
|
|
|
254
276
|
type AXSchedulerGridBadgeInfo = AXSchedulerOverflowBadge & {
|
|
255
277
|
hiddenAppointments: AXSchedulerAppointmentSegment[];
|
|
256
278
|
};
|
|
257
|
-
|
|
279
|
+
type AXSchedulerWeekSpanningAppointment = {
|
|
280
|
+
appointment: AXSchedulerAppointment;
|
|
281
|
+
startDayIndex: number;
|
|
282
|
+
spanCount: number;
|
|
283
|
+
rowIndex: number;
|
|
284
|
+
isStartClipped: boolean;
|
|
285
|
+
isEndClipped: boolean;
|
|
286
|
+
};
|
|
287
|
+
declare class AXSchedulerWeekViewComponent extends NXComponent implements AfterViewInit, OnDestroy {
|
|
258
288
|
private readonly document;
|
|
289
|
+
private readonly destroyRef;
|
|
259
290
|
private readonly scheduler;
|
|
260
291
|
private readonly calendarService;
|
|
261
292
|
private readonly schedulerService;
|
|
262
293
|
private readonly dragStartSlotId;
|
|
263
294
|
private readonly GAP_PX;
|
|
264
295
|
private readonly BADGE_SPACE_REM;
|
|
296
|
+
private resizeObserverCleanup;
|
|
265
297
|
readonly: _angular_core.InputSignal<boolean>;
|
|
266
298
|
draggable: _angular_core.InputSignal<boolean>;
|
|
267
299
|
hasActions: _angular_core.InputSignal<boolean>;
|
|
@@ -273,6 +305,8 @@ declare class AXSchedulerWeekViewComponent extends NXComponent implements AfterV
|
|
|
273
305
|
showCurrentTimeIndicator: _angular_core.InputSignal<boolean>;
|
|
274
306
|
appointments: _angular_core.InputSignal<AXSchedulerAppointment[]>;
|
|
275
307
|
tooltipTemplate: _angular_core.InputSignal<string | TemplateRef<unknown>>;
|
|
308
|
+
selectedAppointmentId: _angular_core.InputSignal<string | number>;
|
|
309
|
+
protected isActive(appointmentId: string | number): boolean;
|
|
276
310
|
currentTimeLineElement: _angular_core.Signal<ElementRef<HTMLElement>>;
|
|
277
311
|
protected readonly slotClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
|
|
278
312
|
protected readonly slotDblClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
|
|
@@ -305,9 +339,14 @@ declare class AXSchedulerWeekViewComponent extends NXComponent implements AfterV
|
|
|
305
339
|
* Calculates the total number of 30-minute blocks within the visible hours of a single day.
|
|
306
340
|
*/
|
|
307
341
|
protected totalBlocksPerViewDay: _angular_core.Signal<number>;
|
|
342
|
+
private isMultiDayAppointment;
|
|
343
|
+
protected spanningAppointments: _angular_core.Signal<AXSchedulerWeekSpanningAppointment[]>;
|
|
344
|
+
private multiDayAppointmentIds;
|
|
345
|
+
protected maxSpanningRowIndex: _angular_core.Signal<number>;
|
|
308
346
|
/**
|
|
309
347
|
* @protected
|
|
310
|
-
* Filters processed segments to get only
|
|
348
|
+
* Filters processed segments to get only single-day all-day appointments for the all-day header.
|
|
349
|
+
* Multi-day appointments are rendered separately as spanning bars.
|
|
311
350
|
*/
|
|
312
351
|
protected allDayAppointmentsPerDay: _angular_core.Signal<AXSchedulerAllDaySlotData[]>;
|
|
313
352
|
/**
|
|
@@ -401,13 +440,13 @@ declare class AXSchedulerWeekViewComponent extends NXComponent implements AfterV
|
|
|
401
440
|
protected getCurrentDayColumnPosition(): string | null;
|
|
402
441
|
protected getCurrentDayColumnWidth(): string;
|
|
403
442
|
ngAfterViewInit(): void;
|
|
443
|
+
ngOnDestroy(): void;
|
|
404
444
|
private setupCurrentTimeScroll;
|
|
405
445
|
protected shouldShowCurrentTimeForToday(): boolean;
|
|
406
|
-
protected get isReadonly(): boolean;
|
|
407
446
|
private processedAppointmentsForLayout;
|
|
408
447
|
private timedGridSegments;
|
|
409
448
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerWeekViewComponent, never>;
|
|
410
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerWeekViewComponent, "ax-scheduler-week-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": true; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "required": true; "isSignal": true; }; "showCurrentTimeIndicator": { "alias": "showCurrentTimeIndicator"; "required": false; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
|
|
449
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerWeekViewComponent, "ax-scheduler-week-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": true; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "required": true; "isSignal": true; }; "showCurrentTimeIndicator": { "alias": "showCurrentTimeIndicator"; "required": false; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; "selectedAppointmentId": { "alias": "selectedAppointmentId"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
|
|
411
450
|
}
|
|
412
451
|
|
|
413
452
|
type AXSchedulerMonthDayCell = {
|
|
@@ -421,6 +460,15 @@ type AXSchedulerMonthDayCell = {
|
|
|
421
460
|
visibleAppointments: AXSchedulerAppointmentSegment[];
|
|
422
461
|
hiddenAppointments: AXSchedulerAppointmentSegment[];
|
|
423
462
|
overflowCount: number;
|
|
463
|
+
gridIndex: number;
|
|
464
|
+
};
|
|
465
|
+
type AXSchedulerSpanningAppointment = {
|
|
466
|
+
appointment: AXSchedulerAppointment;
|
|
467
|
+
gridStartIndex: number;
|
|
468
|
+
spanCount: number;
|
|
469
|
+
rowIndex: number;
|
|
470
|
+
isStartClipped: boolean;
|
|
471
|
+
isEndClipped: boolean;
|
|
424
472
|
};
|
|
425
473
|
declare class AXSchedulerMonthViewComponent extends NXComponent {
|
|
426
474
|
private document;
|
|
@@ -435,6 +483,8 @@ declare class AXSchedulerMonthViewComponent extends NXComponent {
|
|
|
435
483
|
date: _angular_core.InputSignal<AXDateTime>;
|
|
436
484
|
appointments: _angular_core.InputSignal<AXSchedulerAppointment[]>;
|
|
437
485
|
firstDayOfWeek: _angular_core.InputSignal<AXDayOfWeekName>;
|
|
486
|
+
selectedAppointmentId: _angular_core.InputSignal<string | number>;
|
|
487
|
+
protected isActive(appointmentId: string | number): boolean;
|
|
438
488
|
tooltipTemplate: _angular_core.InputSignal<string | TemplateRef<unknown>>;
|
|
439
489
|
readonly DAYS_IN_WEEK = 7;
|
|
440
490
|
readonly MAX_VISIBLE_APPOINTMENTS_PER_DAY = 2;
|
|
@@ -455,13 +505,20 @@ declare class AXSchedulerMonthViewComponent extends NXComponent {
|
|
|
455
505
|
private monthStartDate;
|
|
456
506
|
protected daysArray: _angular_core.Signal<AXDateTime[]>;
|
|
457
507
|
private calendarDaysInfo;
|
|
458
|
-
private
|
|
508
|
+
private isMultiDayAppointment;
|
|
509
|
+
protected spanningAppointments: _angular_core.Signal<AXSchedulerSpanningAppointment[]>;
|
|
510
|
+
private multiDayAppointmentIds;
|
|
459
511
|
protected dayCellLayouts: _angular_core.Signal<AXSchedulerMonthDayCell[]>;
|
|
460
512
|
protected gridTemplateRowsStyle: _angular_core.Signal<string>;
|
|
461
513
|
protected getSlotId(e: PointerEvent): void;
|
|
462
|
-
protected
|
|
514
|
+
protected getSpanningAppointmentStyle(spanning: AXSchedulerSpanningAppointment): Record<string, string>;
|
|
515
|
+
protected spanningAppointmentsByWeekRow: _angular_core.Signal<Map<number, AXSchedulerSpanningAppointment[]>>;
|
|
516
|
+
protected weekRowsArray: _angular_core.Signal<number[]>;
|
|
517
|
+
protected getSpanningAppointmentsForWeekRow(weekRowIndex: number): AXSchedulerSpanningAppointment[];
|
|
518
|
+
protected maxSpanningRowsPerWeek: _angular_core.Signal<Map<number, number>>;
|
|
519
|
+
protected getSpanningRowsCountForDayCell(gridIndex: number): number;
|
|
463
520
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerMonthViewComponent, never>;
|
|
464
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerMonthViewComponent, "ax-scheduler-month-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
|
|
521
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerMonthViewComponent, "ax-scheduler-month-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "required": false; "isSignal": true; }; "selectedAppointmentId": { "alias": "selectedAppointmentId"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
|
|
465
522
|
}
|
|
466
523
|
|
|
467
524
|
interface AgendaDayData {
|
|
@@ -486,6 +543,8 @@ declare class AXSchedulerAgendaViewComponent extends NXComponent {
|
|
|
486
543
|
date: _angular_core.InputSignal<AXDateTime>;
|
|
487
544
|
appointments: _angular_core.InputSignal<AXSchedulerAppointment[]>;
|
|
488
545
|
tooltipTemplate: _angular_core.InputSignal<string | TemplateRef<unknown>>;
|
|
546
|
+
selectedAppointmentId: _angular_core.InputSignal<string | number>;
|
|
547
|
+
protected isActive(appointmentId: string | number): boolean;
|
|
489
548
|
private dragStartSlotId;
|
|
490
549
|
protected agendaDaysLayout: _angular_core.Signal<AgendaDayData[]>;
|
|
491
550
|
slotClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
|
|
@@ -507,16 +566,29 @@ declare class AXSchedulerAgendaViewComponent extends NXComponent {
|
|
|
507
566
|
holiday?: AXHolidayDate;
|
|
508
567
|
};
|
|
509
568
|
protected getSlotId(e: PointerEvent): void;
|
|
510
|
-
|
|
569
|
+
/**
|
|
570
|
+
* Checks if an appointment spans multiple days.
|
|
571
|
+
* Returns true if the appointment covers more than one calendar day.
|
|
572
|
+
*/
|
|
573
|
+
protected isMultiDayAppointment(segment: AXSchedulerAppointmentSegment): boolean;
|
|
574
|
+
/**
|
|
575
|
+
* Gets the formatted date range for multi-day appointments.
|
|
576
|
+
* Returns the start and end dates formatted for display (e.g., "7 Dec", "21 Dec").
|
|
577
|
+
* Supports Persian calendar through the calendar input.
|
|
578
|
+
*/
|
|
579
|
+
protected getMultiDayStartDate(segment: AXSchedulerAppointmentSegment): Date;
|
|
580
|
+
protected getMultiDayEndDate(segment: AXSchedulerAppointmentSegment): Date;
|
|
511
581
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerAgendaViewComponent, never>;
|
|
512
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerAgendaViewComponent, "ax-scheduler-agenda-view", never, { "daysCount": { "alias": "daysCount"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
|
|
582
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerAgendaViewComponent, "ax-scheduler-agenda-view", never, { "daysCount": { "alias": "daysCount"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; "selectedAppointmentId": { "alias": "selectedAppointmentId"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
|
|
513
583
|
}
|
|
514
584
|
|
|
515
|
-
declare class AXSchedulerTimelineDayViewComponent extends NXComponent implements AfterViewInit {
|
|
585
|
+
declare class AXSchedulerTimelineDayViewComponent extends NXComponent implements AfterViewInit, OnDestroy {
|
|
516
586
|
private document;
|
|
587
|
+
private destroyRef;
|
|
517
588
|
private scheduler;
|
|
518
589
|
private calendarService;
|
|
519
590
|
private schedulerService;
|
|
591
|
+
private resizeObserverCleanup?;
|
|
520
592
|
readonly GAP_PX = 1;
|
|
521
593
|
readonly: _angular_core.InputSignal<boolean>;
|
|
522
594
|
draggable: _angular_core.InputSignal<boolean>;
|
|
@@ -526,6 +598,8 @@ declare class AXSchedulerTimelineDayViewComponent extends NXComponent implements
|
|
|
526
598
|
showResourceHeaders: _angular_core.InputSignal<boolean>;
|
|
527
599
|
date: _angular_core.InputSignal<AXDateTime>;
|
|
528
600
|
endDayHour: _angular_core.InputSignal<number>;
|
|
601
|
+
selectedAppointmentId: _angular_core.InputSignal<string | number>;
|
|
602
|
+
protected isActive(appointmentId: string | number): boolean;
|
|
529
603
|
startDayHour: _angular_core.InputSignal<number>;
|
|
530
604
|
showUnassignedAppointments: _angular_core.InputSignal<boolean>;
|
|
531
605
|
resources: _angular_core.InputSignal<AXSchedulerResource[]>;
|
|
@@ -576,6 +650,7 @@ declare class AXSchedulerTimelineDayViewComponent extends NXComponent implements
|
|
|
576
650
|
protected getCurrentTimePosition(): number | null;
|
|
577
651
|
protected getCurrentTimePositionWithOffset(): string | null;
|
|
578
652
|
ngAfterViewInit(): void;
|
|
653
|
+
ngOnDestroy(): void;
|
|
579
654
|
private setupCurrentTimeScroll;
|
|
580
655
|
/**
|
|
581
656
|
* Gets appointment layouts for a specific resource with proper positioning.
|
|
@@ -590,13 +665,13 @@ declare class AXSchedulerTimelineDayViewComponent extends NXComponent implements
|
|
|
590
665
|
*/
|
|
591
666
|
private calculateMaxOverlappingRows;
|
|
592
667
|
protected getSlotId(e: PointerEvent): void;
|
|
593
|
-
protected get isReadonly(): boolean;
|
|
594
668
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerTimelineDayViewComponent, never>;
|
|
595
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerTimelineDayViewComponent, "ax-scheduler-timeline-day-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "showResourceHeaders": { "alias": "showResourceHeaders"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": true; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "required": true; "isSignal": true; }; "showUnassignedAppointments": { "alias": "showUnassignedAppointments"; "required": false; "isSignal": true; }; "resources": { "alias": "resources"; "required": false; "isSignal": true; }; "showCurrentTimeIndicator": { "alias": "showCurrentTimeIndicator"; "required": false; "isSignal": true; }; "resourceTemplate": { "alias": "resourceTemplate"; "required": false; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
|
|
669
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerTimelineDayViewComponent, "ax-scheduler-timeline-day-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "showResourceHeaders": { "alias": "showResourceHeaders"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": true; "isSignal": true; }; "selectedAppointmentId": { "alias": "selectedAppointmentId"; "required": false; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "required": true; "isSignal": true; }; "showUnassignedAppointments": { "alias": "showUnassignedAppointments"; "required": false; "isSignal": true; }; "resources": { "alias": "resources"; "required": false; "isSignal": true; }; "showCurrentTimeIndicator": { "alias": "showCurrentTimeIndicator"; "required": false; "isSignal": true; }; "resourceTemplate": { "alias": "resourceTemplate"; "required": false; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
|
|
596
670
|
}
|
|
597
671
|
|
|
598
672
|
interface TimelineMonthViewDayData {
|
|
599
673
|
date: AXDateTime;
|
|
674
|
+
dayIndex: number;
|
|
600
675
|
visibleAppointments: AXSchedulerAppointmentSegment[];
|
|
601
676
|
hiddenAppointments: AXSchedulerAppointmentSegment[];
|
|
602
677
|
moreCount: number;
|
|
@@ -610,12 +685,28 @@ interface TimelineMonthViewDayData {
|
|
|
610
685
|
moreCount: number;
|
|
611
686
|
}>;
|
|
612
687
|
}
|
|
613
|
-
|
|
688
|
+
type AXSchedulerTimelineSpanningAppointment = {
|
|
689
|
+
appointment: AXSchedulerAppointment;
|
|
690
|
+
startDayIndex: number;
|
|
691
|
+
spanCount: number;
|
|
692
|
+
rowIndex: number;
|
|
693
|
+
isStartClipped: boolean;
|
|
694
|
+
isEndClipped: boolean;
|
|
695
|
+
};
|
|
696
|
+
declare class AXSchedulerTimelineMonthViewComponent extends NXComponent implements AfterViewInit, OnDestroy {
|
|
614
697
|
private document;
|
|
698
|
+
private destroyRef;
|
|
615
699
|
private scheduler;
|
|
616
700
|
private calendarService;
|
|
617
701
|
private schedulerService;
|
|
702
|
+
private resizeObserverCleanup?;
|
|
618
703
|
private readonly MAX_VISIBLE_APPOINTMENTS_PER_DAY;
|
|
704
|
+
private isMultiDayAppointment;
|
|
705
|
+
protected spanningAppointments: _angular_core.Signal<AXSchedulerTimelineSpanningAppointment[]>;
|
|
706
|
+
private multiDayAppointmentIds;
|
|
707
|
+
protected getSpanningAppointmentsForResource(resourceId: any): AXSchedulerTimelineSpanningAppointment[];
|
|
708
|
+
protected maxSpanningRows: _angular_core.Signal<number>;
|
|
709
|
+
protected getMaxSpanningRowsForResource(resourceId: any): number;
|
|
619
710
|
readonly: _angular_core.InputSignal<boolean>;
|
|
620
711
|
draggable: _angular_core.InputSignal<boolean>;
|
|
621
712
|
hasActions: _angular_core.InputSignal<boolean>;
|
|
@@ -624,6 +715,8 @@ declare class AXSchedulerTimelineMonthViewComponent extends NXComponent implemen
|
|
|
624
715
|
showResourceHeaders: _angular_core.InputSignal<boolean>;
|
|
625
716
|
date: _angular_core.InputSignal<AXDateTime>;
|
|
626
717
|
showUnassignedAppointments: _angular_core.InputSignal<boolean>;
|
|
718
|
+
selectedAppointmentId: _angular_core.InputSignal<string | number>;
|
|
719
|
+
protected isActive(appointmentId: string | number): boolean;
|
|
627
720
|
resources: _angular_core.InputSignal<AXSchedulerResource[]>;
|
|
628
721
|
showCurrentTimeIndicator: _angular_core.InputSignal<boolean>;
|
|
629
722
|
resourceTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
|
|
@@ -670,6 +763,7 @@ declare class AXSchedulerTimelineMonthViewComponent extends NXComponent implemen
|
|
|
670
763
|
protected getResourceContext(resourceId: any): AXSchedulerResource;
|
|
671
764
|
protected getCurrentTimePosition(): number | null;
|
|
672
765
|
ngAfterViewInit(): void;
|
|
766
|
+
ngOnDestroy(): void;
|
|
673
767
|
private setupCurrentTimeScroll;
|
|
674
768
|
/**
|
|
675
769
|
* Gets appointments for a specific resource and day.
|
|
@@ -690,11 +784,22 @@ declare class AXSchedulerTimelineMonthViewComponent extends NXComponent implemen
|
|
|
690
784
|
*/
|
|
691
785
|
protected calculateMaxOverlappingRows(appointments: AXSchedulerAppointmentSegment[]): number;
|
|
692
786
|
protected shouldShowCurrentTimeForDay(dayDate: AXDateTime): boolean;
|
|
693
|
-
protected get isReadonly(): boolean;
|
|
694
787
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerTimelineMonthViewComponent, never>;
|
|
695
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerTimelineMonthViewComponent, "ax-scheduler-timeline-month-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "showResourceHeaders": { "alias": "showResourceHeaders"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "showUnassignedAppointments": { "alias": "showUnassignedAppointments"; "required": false; "isSignal": true; }; "resources": { "alias": "resources"; "required": false; "isSignal": true; }; "showCurrentTimeIndicator": { "alias": "showCurrentTimeIndicator"; "required": false; "isSignal": true; }; "resourceTemplate": { "alias": "resourceTemplate"; "required": false; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
|
|
788
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerTimelineMonthViewComponent, "ax-scheduler-timeline-month-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "showResourceHeaders": { "alias": "showResourceHeaders"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "showUnassignedAppointments": { "alias": "showUnassignedAppointments"; "required": false; "isSignal": true; }; "selectedAppointmentId": { "alias": "selectedAppointmentId"; "required": false; "isSignal": true; }; "resources": { "alias": "resources"; "required": false; "isSignal": true; }; "showCurrentTimeIndicator": { "alias": "showCurrentTimeIndicator"; "required": false; "isSignal": true; }; "resourceTemplate": { "alias": "resourceTemplate"; "required": false; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
|
|
696
789
|
}
|
|
697
790
|
|
|
791
|
+
/**
|
|
792
|
+
* Represents a spanning appointment in the timeline-multi-day view.
|
|
793
|
+
*/
|
|
794
|
+
interface AXSchedulerTimelineMultiDaySpanningAppointment {
|
|
795
|
+
appointment: AXSchedulerAppointment;
|
|
796
|
+
startDayIndex: number;
|
|
797
|
+
spanCount: number;
|
|
798
|
+
rowIndex: number;
|
|
799
|
+
isStartClipped: boolean;
|
|
800
|
+
isEndClipped: boolean;
|
|
801
|
+
resourceId?: unknown;
|
|
802
|
+
}
|
|
698
803
|
interface TimelineMultiDayDaySlot {
|
|
699
804
|
date: AXDateTime;
|
|
700
805
|
originalAppointmentsForThisDay: AXSchedulerAppointment[];
|
|
@@ -703,9 +808,12 @@ interface TimelineMultiDayDaySlot {
|
|
|
703
808
|
holiday?: AXHolidayDate;
|
|
704
809
|
};
|
|
705
810
|
}
|
|
706
|
-
declare class AXSchedulerTimelineMultiDayViewComponent extends NXComponent implements AfterViewInit {
|
|
811
|
+
declare class AXSchedulerTimelineMultiDayViewComponent extends NXComponent implements AfterViewInit, OnDestroy {
|
|
812
|
+
private destroyRef;
|
|
813
|
+
private scheduler;
|
|
707
814
|
private calendarService;
|
|
708
815
|
private schedulerService;
|
|
816
|
+
private resizeObserverCleanup?;
|
|
709
817
|
daysCount: _angular_core.InputSignal<number>;
|
|
710
818
|
readonly: _angular_core.InputSignal<boolean>;
|
|
711
819
|
draggable: _angular_core.InputSignal<boolean>;
|
|
@@ -715,6 +823,8 @@ declare class AXSchedulerTimelineMultiDayViewComponent extends NXComponent imple
|
|
|
715
823
|
showResourceHeaders: _angular_core.InputSignal<boolean>;
|
|
716
824
|
date: _angular_core.InputSignal<AXDateTime>;
|
|
717
825
|
endDayHour: _angular_core.InputSignal<number>;
|
|
826
|
+
selectedAppointmentId: _angular_core.InputSignal<string | number>;
|
|
827
|
+
protected isActive(appointmentId: string | number): boolean;
|
|
718
828
|
showCurrentTimeIndicator: _angular_core.InputSignal<boolean>;
|
|
719
829
|
startDayHour: _angular_core.InputSignal<number>;
|
|
720
830
|
showUnassignedAppointments: _angular_core.InputSignal<boolean>;
|
|
@@ -724,6 +834,42 @@ declare class AXSchedulerTimelineMultiDayViewComponent extends NXComponent imple
|
|
|
724
834
|
tooltipTemplate: _angular_core.InputSignal<string | TemplateRef<unknown>>;
|
|
725
835
|
currentTimeLineElement: _angular_core.Signal<ElementRef<HTMLElement>>;
|
|
726
836
|
protected daysDataForTimelineViews: _angular_core.Signal<TimelineMultiDayDaySlot[]>;
|
|
837
|
+
/**
|
|
838
|
+
* Checks if an appointment spans multiple days.
|
|
839
|
+
*/
|
|
840
|
+
private isMultiDayAppointment;
|
|
841
|
+
/**
|
|
842
|
+
* Computes spanning appointments for multi-day events across the view.
|
|
843
|
+
*/
|
|
844
|
+
protected spanningAppointments: _angular_core.Signal<AXSchedulerTimelineMultiDaySpanningAppointment[]>;
|
|
845
|
+
/**
|
|
846
|
+
* Gets the set of multi-day appointment IDs to exclude from individual day views.
|
|
847
|
+
*/
|
|
848
|
+
protected multiDayAppointmentIds: _angular_core.Signal<Set<unknown>>;
|
|
849
|
+
/**
|
|
850
|
+
* Gets spanning appointments filtered for a specific resource.
|
|
851
|
+
*/
|
|
852
|
+
protected getSpanningAppointmentsForResource(resourceId: unknown): AXSchedulerTimelineMultiDaySpanningAppointment[];
|
|
853
|
+
/**
|
|
854
|
+
* Gets the maximum number of spanning rows for a resource.
|
|
855
|
+
*/
|
|
856
|
+
protected getMaxSpanningRowsForResource(resourceId: unknown): number;
|
|
857
|
+
/**
|
|
858
|
+
* Gets the maximum number of spanning rows across all appointments (for non-resource layouts).
|
|
859
|
+
*/
|
|
860
|
+
protected maxSpanningRows: _angular_core.Signal<number>;
|
|
861
|
+
/**
|
|
862
|
+
* Filters appointments for a day, excluding multi-day appointments.
|
|
863
|
+
*/
|
|
864
|
+
protected getFilteredAppointmentsForDay(originalAppointments: AXSchedulerAppointment[]): AXSchedulerAppointment[];
|
|
865
|
+
/**
|
|
866
|
+
* Handles clicking on a spanning appointment.
|
|
867
|
+
*/
|
|
868
|
+
protected handleSpanningAppointmentEvent(event: MouseEvent, appointment: AXSchedulerAppointment): void;
|
|
869
|
+
/**
|
|
870
|
+
* Handles action click on spanning appointment.
|
|
871
|
+
*/
|
|
872
|
+
protected handleSpanningActionClick(event: MouseEvent, appointment: AXSchedulerAppointment): void;
|
|
727
873
|
slotClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
|
|
728
874
|
slotDblClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
|
|
729
875
|
slotRightClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
|
|
@@ -754,6 +900,7 @@ declare class AXSchedulerTimelineMultiDayViewComponent extends NXComponent imple
|
|
|
754
900
|
protected getCurrentTimePosition(): number | null;
|
|
755
901
|
protected shouldShowCurrentTimeForDay(dayDate: AXDateTime): boolean;
|
|
756
902
|
ngAfterViewInit(): void;
|
|
903
|
+
ngOnDestroy(): void;
|
|
757
904
|
private setupCurrentTimeScroll;
|
|
758
905
|
/**
|
|
759
906
|
* Gets appointments for a specific resource and day.
|
|
@@ -762,7 +909,7 @@ declare class AXSchedulerTimelineMultiDayViewComponent extends NXComponent imple
|
|
|
762
909
|
/**
|
|
763
910
|
* Gets the height for a specific resource across all days.
|
|
764
911
|
*/
|
|
765
|
-
protected getResourceRowHeight(resourceId:
|
|
912
|
+
protected getResourceRowHeight(resourceId: unknown): string;
|
|
766
913
|
/**
|
|
767
914
|
* Calculates the maximum number of overlapping rows for a set of appointments.
|
|
768
915
|
* Uses the actual segmented times that will be displayed in the timeline view.
|
|
@@ -781,11 +928,12 @@ declare class AXSchedulerTimelineMultiDayViewComponent extends NXComponent imple
|
|
|
781
928
|
holiday?: AXHolidayDate;
|
|
782
929
|
};
|
|
783
930
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerTimelineMultiDayViewComponent, never>;
|
|
784
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerTimelineMultiDayViewComponent, "ax-scheduler-timeline-multi-day-view", never, { "daysCount": { "alias": "daysCount"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "showResourceHeaders": { "alias": "showResourceHeaders"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": true; "isSignal": true; }; "showCurrentTimeIndicator": { "alias": "showCurrentTimeIndicator"; "required": false; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "required": true; "isSignal": true; }; "showUnassignedAppointments": { "alias": "showUnassignedAppointments"; "required": false; "isSignal": true; }; "resources": { "alias": "resources"; "required": false; "isSignal": true; }; "resourceTemplate": { "alias": "resourceTemplate"; "required": false; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
|
|
931
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerTimelineMultiDayViewComponent, "ax-scheduler-timeline-multi-day-view", never, { "daysCount": { "alias": "daysCount"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "showResourceHeaders": { "alias": "showResourceHeaders"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": true; "isSignal": true; }; "selectedAppointmentId": { "alias": "selectedAppointmentId"; "required": false; "isSignal": true; }; "showCurrentTimeIndicator": { "alias": "showCurrentTimeIndicator"; "required": false; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "required": true; "isSignal": true; }; "showUnassignedAppointments": { "alias": "showUnassignedAppointments"; "required": false; "isSignal": true; }; "resources": { "alias": "resources"; "required": false; "isSignal": true; }; "resourceTemplate": { "alias": "resourceTemplate"; "required": false; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
|
|
785
932
|
}
|
|
786
933
|
|
|
787
934
|
interface TimelineYearViewDayData {
|
|
788
935
|
date: AXDateTime;
|
|
936
|
+
dayIndex: number;
|
|
789
937
|
visibleAppointments: AXSchedulerAppointmentSegment[];
|
|
790
938
|
hiddenAppointments: AXSchedulerAppointmentSegment[];
|
|
791
939
|
moreCount: number;
|
|
@@ -799,12 +947,28 @@ interface TimelineYearViewDayData {
|
|
|
799
947
|
moreCount: number;
|
|
800
948
|
}>;
|
|
801
949
|
}
|
|
802
|
-
|
|
950
|
+
type AXSchedulerTimelineYearSpanningAppointment = {
|
|
951
|
+
appointment: AXSchedulerAppointment;
|
|
952
|
+
startDayIndex: number;
|
|
953
|
+
spanCount: number;
|
|
954
|
+
rowIndex: number;
|
|
955
|
+
isStartClipped: boolean;
|
|
956
|
+
isEndClipped: boolean;
|
|
957
|
+
};
|
|
958
|
+
declare class AXSchedulerTimelineYearViewComponent extends NXComponent implements AfterViewInit, OnDestroy {
|
|
803
959
|
private document;
|
|
960
|
+
private destroyRef;
|
|
804
961
|
private scheduler;
|
|
805
962
|
private calendarService;
|
|
806
963
|
private schedulerService;
|
|
964
|
+
private resizeObserverCleanup?;
|
|
807
965
|
private readonly MAX_VISIBLE_APPOINTMENTS_PER_DAY;
|
|
966
|
+
private isMultiDayAppointment;
|
|
967
|
+
protected spanningAppointments: _angular_core.Signal<AXSchedulerTimelineYearSpanningAppointment[]>;
|
|
968
|
+
private multiDayAppointmentIds;
|
|
969
|
+
protected getSpanningAppointmentsForResource(resourceId: any): AXSchedulerTimelineYearSpanningAppointment[];
|
|
970
|
+
protected maxSpanningRows: _angular_core.Signal<number>;
|
|
971
|
+
protected getMaxSpanningRowsForResource(resourceId: any): number;
|
|
808
972
|
readonly: _angular_core.InputSignal<boolean>;
|
|
809
973
|
draggable: _angular_core.InputSignal<boolean>;
|
|
810
974
|
hasActions: _angular_core.InputSignal<boolean>;
|
|
@@ -813,6 +977,8 @@ declare class AXSchedulerTimelineYearViewComponent extends NXComponent implement
|
|
|
813
977
|
showResourceHeaders: _angular_core.InputSignal<boolean>;
|
|
814
978
|
date: _angular_core.InputSignal<AXDateTime>;
|
|
815
979
|
showUnassignedAppointments: _angular_core.InputSignal<boolean>;
|
|
980
|
+
selectedAppointmentId: _angular_core.InputSignal<string | number>;
|
|
981
|
+
protected isActive(appointmentId: string | number): boolean;
|
|
816
982
|
resources: _angular_core.InputSignal<AXSchedulerResource[]>;
|
|
817
983
|
showCurrentTimeIndicator: _angular_core.InputSignal<boolean>;
|
|
818
984
|
resourceTemplate: _angular_core.InputSignal<TemplateRef<unknown>>;
|
|
@@ -835,6 +1001,7 @@ declare class AXSchedulerTimelineYearViewComponent extends NXComponent implement
|
|
|
835
1001
|
protected getResourceContext(resourceId: any): AXSchedulerResource;
|
|
836
1002
|
protected getCurrentTimePosition(): number | null;
|
|
837
1003
|
ngAfterViewInit(): void;
|
|
1004
|
+
ngOnDestroy(): void;
|
|
838
1005
|
private setupCurrentTimeScroll;
|
|
839
1006
|
slotClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
|
|
840
1007
|
slotDblClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
|
|
@@ -852,7 +1019,7 @@ declare class AXSchedulerTimelineYearViewComponent extends NXComponent implement
|
|
|
852
1019
|
protected shouldShowCurrentTimeForDay(dayDate: AXDateTime): boolean;
|
|
853
1020
|
protected getSlotId(e: PointerEvent): void;
|
|
854
1021
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerTimelineYearViewComponent, never>;
|
|
855
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerTimelineYearViewComponent, "ax-scheduler-timeline-year-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "showResourceHeaders": { "alias": "showResourceHeaders"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "showUnassignedAppointments": { "alias": "showUnassignedAppointments"; "required": false; "isSignal": true; }; "resources": { "alias": "resources"; "required": false; "isSignal": true; }; "showCurrentTimeIndicator": { "alias": "showCurrentTimeIndicator"; "required": false; "isSignal": true; }; "resourceTemplate": { "alias": "resourceTemplate"; "required": false; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
|
|
1022
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerTimelineYearViewComponent, "ax-scheduler-timeline-year-view", never, { "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "hasActions": { "alias": "hasActions"; "required": false; "isSignal": true; }; "dragStartDelay": { "alias": "dragStartDelay"; "required": false; "isSignal": true; }; "calendar": { "alias": "calendar"; "required": false; "isSignal": true; }; "showResourceHeaders": { "alias": "showResourceHeaders"; "required": false; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "showUnassignedAppointments": { "alias": "showUnassignedAppointments"; "required": false; "isSignal": true; }; "selectedAppointmentId": { "alias": "selectedAppointmentId"; "required": false; "isSignal": true; }; "resources": { "alias": "resources"; "required": false; "isSignal": true; }; "showCurrentTimeIndicator": { "alias": "showCurrentTimeIndicator"; "required": false; "isSignal": true; }; "resourceTemplate": { "alias": "resourceTemplate"; "required": false; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; "onActionClickInternal": "onActionClickInternal"; "onAppointmentDropInternal": "onAppointmentDropInternal"; }, never, never, true, never>;
|
|
856
1023
|
}
|
|
857
1024
|
|
|
858
1025
|
declare class AXSchedulerModule {
|
|
@@ -1032,9 +1199,96 @@ declare class AXSchedulerService {
|
|
|
1032
1199
|
* @returns string[] - Array of resource IDs.
|
|
1033
1200
|
*/
|
|
1034
1201
|
getAllResourceIds(resources: AXSchedulerResource[], showUnassignedAppointments?: boolean): any[];
|
|
1202
|
+
/**
|
|
1203
|
+
* Calculates the updated appointment data after a drag-and-drop operation.
|
|
1204
|
+
*
|
|
1205
|
+
* This utility method handles the complex logic of preserving appointment duration
|
|
1206
|
+
* when dropping an appointment on a new slot. It correctly handles:
|
|
1207
|
+
* - Single-day timed events (preserves exact duration in milliseconds)
|
|
1208
|
+
* - All-day events (preserves the day span)
|
|
1209
|
+
* - Multi-day events (preserves the number of days spanned)
|
|
1210
|
+
* - Day-based views (agenda, month): preserves original time of day
|
|
1211
|
+
* - Time-slot views (day, week, timeline): uses the slot's time
|
|
1212
|
+
* - Resource ID changes
|
|
1213
|
+
*
|
|
1214
|
+
* @param event - The drop event from the scheduler's onAppointmentDrop output.
|
|
1215
|
+
* @returns AXSchedulerAppointmentDropResult - The calculated new appointment data,
|
|
1216
|
+
* or null if the drop was on the same slot (no change needed).
|
|
1217
|
+
*
|
|
1218
|
+
* @example
|
|
1219
|
+
* ```typescript
|
|
1220
|
+
* // In your component:
|
|
1221
|
+
* handleAppointmentDrop(event: AXSchedulerSlotDropEvent) {
|
|
1222
|
+
* const result = this.schedulerService.calculateAppointmentDropResult(event);
|
|
1223
|
+
*
|
|
1224
|
+
* if (result.isSameSlotDrop) {
|
|
1225
|
+
* return; // No change needed
|
|
1226
|
+
* }
|
|
1227
|
+
*
|
|
1228
|
+
* // Update your data
|
|
1229
|
+
* this.appointments.update(appointments =>
|
|
1230
|
+
* appointments.map(appt =>
|
|
1231
|
+
* appt.id === event.appointment.id
|
|
1232
|
+
* ? { ...appt, ...result }
|
|
1233
|
+
* : appt
|
|
1234
|
+
* )
|
|
1235
|
+
* );
|
|
1236
|
+
* }
|
|
1237
|
+
* ```
|
|
1238
|
+
*/
|
|
1239
|
+
calculateAppointmentDropResult(event: {
|
|
1240
|
+
appointment: AXSchedulerAppointment;
|
|
1241
|
+
slot: {
|
|
1242
|
+
startDate: {
|
|
1243
|
+
date: Date;
|
|
1244
|
+
};
|
|
1245
|
+
endDate?: {
|
|
1246
|
+
date: Date;
|
|
1247
|
+
};
|
|
1248
|
+
view?: AXSchedulerView;
|
|
1249
|
+
resourceId?: unknown;
|
|
1250
|
+
};
|
|
1251
|
+
isSameSlotDrop: boolean;
|
|
1252
|
+
}): AXSchedulerAppointmentDropResult;
|
|
1253
|
+
/**
|
|
1254
|
+
* Determines if a slot represents a day-based drop (entire day slot).
|
|
1255
|
+
* Day-based views (agenda, month, timeline-month, timeline-year) have slots
|
|
1256
|
+
* that start at 00:00:00 and span the entire day.
|
|
1257
|
+
*
|
|
1258
|
+
* @param slot - The slot to check.
|
|
1259
|
+
* @returns boolean - True if this is a day-based slot.
|
|
1260
|
+
*/
|
|
1261
|
+
private isDayBasedSlotDrop;
|
|
1262
|
+
/**
|
|
1263
|
+
* Applies the drop result to an appointment, returning a new updated appointment object.
|
|
1264
|
+
*
|
|
1265
|
+
* This is a convenience method that combines the drop result with the original appointment.
|
|
1266
|
+
*
|
|
1267
|
+
* @param appointment - The original appointment to update.
|
|
1268
|
+
* @param dropResult - The result from calculateAppointmentDropResult.
|
|
1269
|
+
* @returns AXSchedulerAppointment - A new appointment object with updated fields.
|
|
1270
|
+
*
|
|
1271
|
+
* @example
|
|
1272
|
+
* ```typescript
|
|
1273
|
+
* handleAppointmentDrop(event: AXSchedulerSlotDropEvent) {
|
|
1274
|
+
* const result = this.schedulerService.calculateAppointmentDropResult(event);
|
|
1275
|
+
*
|
|
1276
|
+
* if (result.isSameSlotDrop) return;
|
|
1277
|
+
*
|
|
1278
|
+
* this.appointments.update(appointments =>
|
|
1279
|
+
* appointments.map(appt =>
|
|
1280
|
+
* appt.id === event.appointment.id
|
|
1281
|
+
* ? this.schedulerService.applyDropResult(appt, result)
|
|
1282
|
+
* : appt
|
|
1283
|
+
* )
|
|
1284
|
+
* );
|
|
1285
|
+
* }
|
|
1286
|
+
* ```
|
|
1287
|
+
*/
|
|
1288
|
+
applyDropResult(appointment: AXSchedulerAppointment, dropResult: AXSchedulerAppointmentDropResult): AXSchedulerAppointment;
|
|
1035
1289
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerService, never>;
|
|
1036
1290
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXSchedulerService>;
|
|
1037
1291
|
}
|
|
1038
1292
|
|
|
1039
1293
|
export { AXSchedulerAgendaViewComponent, AXSchedulerComponent, AXSchedulerDayViewComponent, AXSchedulerModule, AXSchedulerMonthViewComponent, AXSchedulerService, AXSchedulerTimelineDayViewComponent, AXSchedulerTimelineMonthViewComponent, AXSchedulerTimelineMultiDayViewComponent, AXSchedulerTimelineYearViewComponent, AXSchedulerWeekViewComponent };
|
|
1040
|
-
export type { AXDayOfWeekName, AXSchedulerActiveAppointmentsInBlock, AXSchedulerAllDaySlotData, AXSchedulerAppointment, AXSchedulerAppointmentDataSource, AXSchedulerAppointmentDataSourceFilter, AXSchedulerAppointmentLayout, AXSchedulerAppointmentLoader, AXSchedulerAppointmentLoaderAsync, AXSchedulerAppointmentMouseEvent, AXSchedulerAppointmentSegment, AXSchedulerBlockIdentifier, AXSchedulerBlockOccupancyMap, AXSchedulerDateRange, AXSchedulerDayAppointmentLayout, AXSchedulerMonthDayCell, AXSchedulerMultiDayViewAppointment, AXSchedulerOverflowBadge, AXSchedulerResource, AXSchedulerSlotDropEvent, AXSchedulerSlotMouseEvent, AXSchedulerView, AgendaDayData, TimelineMonthViewDayData, TimelineMultiDayDaySlot, TimelineYearViewDayData };
|
|
1294
|
+
export type { AXDayOfWeekName, AXSchedulerActiveAppointmentsInBlock, AXSchedulerAllDaySlotData, AXSchedulerAppointment, AXSchedulerAppointmentDataSource, AXSchedulerAppointmentDataSourceFilter, AXSchedulerAppointmentDropResult, AXSchedulerAppointmentLayout, AXSchedulerAppointmentLoader, AXSchedulerAppointmentLoaderAsync, AXSchedulerAppointmentMouseEvent, AXSchedulerAppointmentSegment, AXSchedulerBlockIdentifier, AXSchedulerBlockOccupancyMap, AXSchedulerDateRange, AXSchedulerDayAppointmentLayout, AXSchedulerMonthDayCell, AXSchedulerMultiDayViewAppointment, AXSchedulerOverflowBadge, AXSchedulerResource, AXSchedulerSlotDropEvent, AXSchedulerSlotMouseEvent, AXSchedulerSpanningAppointment, AXSchedulerTimelineSpanningAppointment, AXSchedulerTimelineYearSpanningAppointment, AXSchedulerView, AgendaDayData, TimelineMonthViewDayData, TimelineMultiDayDaySlot, TimelineYearViewDayData };
|