@acorex/components 20.1.33 → 20.1.35

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex/components",
3
- "version": "20.1.33",
3
+ "version": "20.1.35",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.0.0",
6
6
  "@angular/core": "^20.0.0",
@@ -127,6 +127,10 @@
127
127
  "types": "./color-palette/index.d.ts",
128
128
  "default": "./fesm2022/acorex-components-color-palette.mjs"
129
129
  },
130
+ "./command": {
131
+ "types": "./command/index.d.ts",
132
+ "default": "./fesm2022/acorex-components-command.mjs"
133
+ },
130
134
  "./comment": {
131
135
  "types": "./comment/index.d.ts",
132
136
  "default": "./fesm2022/acorex-components-comment.mjs"
@@ -379,14 +383,14 @@
379
383
  "types": "./skeleton/index.d.ts",
380
384
  "default": "./fesm2022/acorex-components-skeleton.mjs"
381
385
  },
382
- "./slider": {
383
- "types": "./slider/index.d.ts",
384
- "default": "./fesm2022/acorex-components-slider.mjs"
385
- },
386
386
  "./sliding-item": {
387
387
  "types": "./sliding-item/index.d.ts",
388
388
  "default": "./fesm2022/acorex-components-sliding-item.mjs"
389
389
  },
390
+ "./slider": {
391
+ "types": "./slider/index.d.ts",
392
+ "default": "./fesm2022/acorex-components-slider.mjs"
393
+ },
390
394
  "./step-wizard": {
391
395
  "types": "./step-wizard/index.d.ts",
392
396
  "default": "./fesm2022/acorex-components-step-wizard.mjs"
@@ -15,6 +15,7 @@ type AXSchedulerAppointment = {
15
15
  endDate: Date;
16
16
  title?: string;
17
17
  startDate: Date;
18
+ resourceId?: any;
18
19
  allDay?: boolean;
19
20
  cssClass?: string;
20
21
  readonly?: boolean;
@@ -62,6 +63,11 @@ type AXSchedulerAppointmentDataSourceFilter = {
62
63
  type AXSchedulerAppointmentLoader = (filter?: AXSchedulerAppointmentDataSourceFilter) => AXSchedulerAppointment[];
63
64
  type AXSchedulerAppointmentLoaderAsync = (filter?: AXSchedulerAppointmentDataSourceFilter) => Promise<AXSchedulerAppointment[]>;
64
65
  type AXSchedulerAppointmentDataSource = AXSchedulerAppointment[] | AXSchedulerAppointmentLoader | AXSchedulerAppointmentLoaderAsync;
66
+ type AXSchedulerResource = {
67
+ id: any;
68
+ title: string;
69
+ description?: string;
70
+ };
65
71
 
66
72
  interface AXSchedulerAppointmentMouseEvent extends NXNativeEvent<AXSchedulerComponent, MouseEvent> {
67
73
  appointment: AXSchedulerAppointment;
@@ -80,6 +86,7 @@ interface AXSchedulerSlotDropEvent extends NXEvent<AXSchedulerComponent> {
80
86
  endDate: AXDateTime;
81
87
  startDate: AXDateTime;
82
88
  view: AXSchedulerView;
89
+ resourceId?: any;
83
90
  };
84
91
  isSameSlotDrop: boolean;
85
92
  }
@@ -118,6 +125,8 @@ declare class AXSchedulerComponent extends NXComponent implements OnInit {
118
125
  weekend: _angular_core.InputSignal<number[]>;
119
126
  allowFullScreen: _angular_core.InputSignal<boolean>;
120
127
  multiDayViewDaysCount: _angular_core.InputSignal<number>;
128
+ resources: _angular_core.InputSignal<AXSchedulerResource[]>;
129
+ showUnassignedAppointments: _angular_core.InputSignal<boolean>;
121
130
  tooltipTemplate: _angular_core.InputSignal<string | TemplateRef<unknown>>;
122
131
  dataSource: _angular_core.InputSignal<AXSchedulerAppointmentDataSource>;
123
132
  holidays: _angular_core.InputSignal<(range: AXSchedulerDateRange) => Promise<AXHolidayDate[]>>;
@@ -182,7 +191,7 @@ declare class AXSchedulerComponent extends NXComponent implements OnInit {
182
191
  */
183
192
  refresh(appointments?: AXSchedulerAppointment[]): Promise<void>;
184
193
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerComponent, never>;
185
- 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; }; "tooltipTemplate": { "alias": "tooltipTemplate"; "required": false; "isSignal": true; }; "dataSource": { "alias": "dataSource"; "required": false; "isSignal": true; }; "holidays": { "alias": "holidays"; "required": false; "isSignal": true; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "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>;
194
+ 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; }; "resources": { "alias": "resources"; "required": false; "isSignal": true; }; "showUnassignedAppointments": { "alias": "showUnassignedAppointments"; "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; }; "firstDayOfWeek": { "alias": "firstDayOfWeek"; "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>;
186
195
  }
187
196
 
188
197
  declare class AXSchedulerDayViewComponent extends NXComponent {
@@ -451,9 +460,21 @@ declare class AXSchedulerTimelineDayViewComponent extends NXComponent {
451
460
  date: _angular_core.InputSignal<AXDateTime>;
452
461
  endDayHour: _angular_core.InputSignal<number>;
453
462
  startDayHour: _angular_core.InputSignal<number>;
463
+ resources: _angular_core.InputSignal<AXSchedulerResource[]>;
464
+ showUnassignedAppointments: _angular_core.InputSignal<boolean>;
465
+ showResourceHeaders: _angular_core.InputSignal<boolean>;
454
466
  appointments: _angular_core.InputSignal<AXSchedulerAppointment[]>;
455
467
  tooltipTemplate: _angular_core.InputSignal<string | TemplateRef<unknown>>;
456
468
  private dragStartSlotId;
469
+ private dragStartSlotResourceId;
470
+ /**
471
+ * Gets appointments grouped by resources for timeline view.
472
+ */
473
+ protected appointmentsByResource: _angular_core.Signal<Map<string, AXSchedulerAppointment[]>>;
474
+ /**
475
+ * Gets all resource IDs including unassigned if applicable.
476
+ */
477
+ protected resourceIds: _angular_core.Signal<string[]>;
457
478
  /**
458
479
  * Processes original appointments to get segments relevant to this specific day and its viewable hours.
459
480
  * Filters out original all-day events.
@@ -470,14 +491,34 @@ declare class AXSchedulerTimelineDayViewComponent extends NXComponent {
470
491
  private readonly eventOutputMap;
471
492
  protected handleAppointmentEvent(mouseEvent: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
472
493
  protected handleSlotEvent(mouseEvent: MouseEvent, startDate: AXDateTime): void;
473
- protected handleDrop(e: AXDropZoneDropEvent, startDate: AXDateTime): void;
494
+ protected handleDrop(e: AXDropZoneDropEvent, startDate: AXDateTime, resourceId?: any): void;
474
495
  protected handleActionClick(event: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
475
496
  protected hoursArray: _angular_core.Signal<AXDateTime[]>;
476
497
  protected appointmentLayouts: _angular_core.Signal<AXSchedulerAppointmentLayout[]>;
498
+ /**
499
+ * Gets appointments for a specific resource.
500
+ */
501
+ protected getAppointmentsForResource(resourceId: any): AXSchedulerAppointment[];
502
+ /**
503
+ * Gets resource title by ID.
504
+ */
505
+ protected getResourceTitle(resourceId: any): string;
506
+ /**
507
+ * Gets appointment layouts for a specific resource with proper positioning.
508
+ */
509
+ protected getAppointmentLayoutsForResource(resourceId: any): AXSchedulerAppointmentLayout[];
510
+ /**
511
+ * Calculates the height for a resource row based on its appointments.
512
+ */
513
+ protected getResourceRowHeight(resourceId: any): string;
514
+ /**
515
+ * Calculates the maximum number of overlapping appointment rows needed.
516
+ */
517
+ private calculateMaxOverlappingRows;
477
518
  protected getSlotId(e: PointerEvent): void;
478
519
  protected get isReadonly(): boolean;
479
520
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerTimelineDayViewComponent, never>;
480
- 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; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": true; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "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>;
521
+ 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; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": true; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "required": true; "isSignal": true; }; "resources": { "alias": "resources"; "required": false; "isSignal": true; }; "showUnassignedAppointments": { "alias": "showUnassignedAppointments"; "required": false; "isSignal": true; }; "showResourceHeaders": { "alias": "showResourceHeaders"; "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>;
481
522
  }
482
523
 
483
524
  declare class AXSchedulerModule {
@@ -632,6 +673,31 @@ declare class AXSchedulerService {
632
673
  * @returns boolean - True if the date is a weekend.
633
674
  */
634
675
  isWeekend(date: AXDateTime, calendar: string): boolean;
676
+ /**
677
+ * Filters appointments by resources and unassigned appointments.
678
+ *
679
+ * @param appointments - Array of appointments to filter.
680
+ * @param resources - Array of resources.
681
+ * @param showUnassignedAppointments - Whether to show appointments without resources.
682
+ * @returns Map<string, AXSchedulerAppointment[]> - Appointments grouped by resource ID.
683
+ */
684
+ filterAppointmentsByResources(appointments: AXSchedulerAppointment[], resources: AXSchedulerResource[], showUnassignedAppointments?: boolean): Map<string, AXSchedulerAppointment[]>;
685
+ /**
686
+ * Gets appointments for a specific resource.
687
+ *
688
+ * @param appointments - Array of appointments.
689
+ * @param resourceId - The resource ID to filter by.
690
+ * @returns AXSchedulerAppointment[] - Filtered appointments.
691
+ */
692
+ getAppointmentsForResource(appointments: AXSchedulerAppointment[], resourceId: any): AXSchedulerAppointment[];
693
+ /**
694
+ * Gets all resource IDs including unassigned if applicable.
695
+ *
696
+ * @param resources - Array of resources.
697
+ * @param showUnassignedAppointments - Whether to include unassigned appointments.
698
+ * @returns string[] - Array of resource IDs.
699
+ */
700
+ getAllResourceIds(resources: AXSchedulerResource[], showUnassignedAppointments?: boolean): string[];
635
701
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerService, never>;
636
702
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXSchedulerService>;
637
703
  }
@@ -693,6 +759,11 @@ interface TimelineMonthViewDayData {
693
759
  state: 'holiday' | 'weekend' | 'none';
694
760
  holiday?: AXHolidayDate;
695
761
  };
762
+ appointmentsByResource?: Map<string, {
763
+ visible: AXSchedulerAppointmentSegment[];
764
+ hidden: AXSchedulerAppointmentSegment[];
765
+ moreCount: number;
766
+ }>;
696
767
  }
697
768
  declare class AXSchedulerTimelineMonthViewComponent extends NXComponent {
698
769
  private document;
@@ -706,9 +777,13 @@ declare class AXSchedulerTimelineMonthViewComponent extends NXComponent {
706
777
  dragStartDelay: _angular_core.InputSignal<number>;
707
778
  calendar: _angular_core.InputSignal<string>;
708
779
  date: _angular_core.InputSignal<AXDateTime>;
780
+ resources: _angular_core.InputSignal<AXSchedulerResource[]>;
781
+ showUnassignedAppointments: _angular_core.InputSignal<boolean>;
782
+ showResourceHeaders: _angular_core.InputSignal<boolean>;
709
783
  appointments: _angular_core.InputSignal<AXSchedulerAppointment[]>;
710
784
  tooltipTemplate: _angular_core.InputSignal<string | TemplateRef<unknown>>;
711
785
  private dragStartSlotId;
786
+ private dragStartSlotResourceId;
712
787
  protected processedDayData: _angular_core.Signal<TimelineMonthViewDayData[]>;
713
788
  slotClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
714
789
  slotDblClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotMouseEvent>;
@@ -721,17 +796,50 @@ declare class AXSchedulerTimelineMonthViewComponent extends NXComponent {
721
796
  private readonly eventOutputMap;
722
797
  protected handleAppointmentEvent(mouseEvent: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
723
798
  protected handleSlotEvent(mouseEvent: MouseEvent, date: AXDateTime): void;
724
- protected handleDrop(e: AXDropZoneDropEvent, date: AXDateTime): void;
799
+ protected handleDrop(e: AXDropZoneDropEvent, date: AXDateTime, resourceId?: any): void;
725
800
  protected handleActionClick(event: MouseEvent, appointmentItem: AXSchedulerAppointment): void;
726
801
  protected isToday(date: AXDateTime): boolean;
727
802
  protected isHoliday(date: AXDateTime): {
728
803
  state: 'holiday' | 'weekend' | 'none';
729
804
  holiday?: AXHolidayDate;
730
805
  };
806
+ /**
807
+ * Gets appointments grouped by resources for timeline view.
808
+ */
809
+ protected appointmentsByResource: _angular_core.Signal<Map<string, AXSchedulerAppointment[]>>;
810
+ /**
811
+ * Gets all resource IDs including unassigned if applicable.
812
+ */
813
+ protected resourceIds: _angular_core.Signal<string[]>;
814
+ /**
815
+ * Gets appointments for a specific resource.
816
+ */
817
+ protected getAppointmentsForResource(resourceId: any): AXSchedulerAppointment[];
818
+ /**
819
+ * Gets resource title by ID.
820
+ */
821
+ protected getResourceTitle(resourceId: any): string;
822
+ /**
823
+ * Gets appointments for a specific resource and day.
824
+ */
825
+ protected getAppointmentsForResourceAndDay(resourceId: any, dayData: TimelineMonthViewDayData): {
826
+ visible: AXSchedulerAppointmentSegment[];
827
+ hidden: AXSchedulerAppointmentSegment[];
828
+ moreCount: number;
829
+ };
731
830
  protected getSlotId(e: PointerEvent): void;
831
+ /**
832
+ * Gets the height for a specific resource row based on appointments.
833
+ */
834
+ protected getResourceRowHeight(resourceId: any): string;
835
+ /**
836
+ * Calculates the maximum number of overlapping appointment rows needed.
837
+ * This is a simplified version for timeline month view.
838
+ */
839
+ protected calculateMaxOverlappingRows(appointments: AXSchedulerAppointmentSegment[]): number;
732
840
  protected get isReadonly(): boolean;
733
841
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerTimelineMonthViewComponent, never>;
734
- 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; }; "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>;
842
+ 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; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "resources": { "alias": "resources"; "required": false; "isSignal": true; }; "showUnassignedAppointments": { "alias": "showUnassignedAppointments"; "required": false; "isSignal": true; }; "showResourceHeaders": { "alias": "showResourceHeaders"; "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>;
735
843
  }
736
844
 
737
845
  interface TimelineMultiDayDaySlot {
@@ -754,6 +862,8 @@ declare class AXSchedulerTimelineMultiDayViewComponent extends NXComponent {
754
862
  date: _angular_core.InputSignal<AXDateTime>;
755
863
  endDayHour: _angular_core.InputSignal<number>;
756
864
  startDayHour: _angular_core.InputSignal<number>;
865
+ resources: _angular_core.InputSignal<AXSchedulerResource[]>;
866
+ showUnassignedAppointments: _angular_core.InputSignal<boolean>;
757
867
  appointments: _angular_core.InputSignal<AXSchedulerAppointment[]>;
758
868
  tooltipTemplate: _angular_core.InputSignal<string | TemplateRef<unknown>>;
759
869
  protected daysDataForTimelineViews: _angular_core.Signal<TimelineMultiDayDaySlot[]>;
@@ -765,14 +875,52 @@ declare class AXSchedulerTimelineMultiDayViewComponent extends NXComponent {
765
875
  appointmentRightClickedInternal: _angular_core.OutputEmitterRef<AXSchedulerAppointmentMouseEvent>;
766
876
  onActionClickInternal: _angular_core.OutputEmitterRef<AXSchedulerAppointmentMouseEvent>;
767
877
  onAppointmentDropInternal: _angular_core.OutputEmitterRef<AXSchedulerSlotDropEvent>;
878
+ protected handleDrop(event: AXSchedulerSlotDropEvent, resourceId: any): void;
768
879
  protected isToday(date: AXDateTime): boolean;
880
+ /**
881
+ * Gets appointments grouped by resources for timeline view.
882
+ */
883
+ protected appointmentsByResource: _angular_core.Signal<Map<string, AXSchedulerAppointment[]>>;
884
+ /**
885
+ * Gets all resource IDs including unassigned if applicable.
886
+ */
887
+ protected resourceIds: _angular_core.Signal<string[]>;
888
+ /**
889
+ * Gets appointments for a specific resource.
890
+ */
891
+ protected getAppointmentsForResource(resourceId: any): AXSchedulerAppointment[];
892
+ /**
893
+ * Gets resource title by ID.
894
+ */
895
+ protected getResourceTitle(resourceId: any): string;
896
+ /**
897
+ * Gets appointments for a specific resource and day.
898
+ */
899
+ protected getAppointmentsForResourceAndDay(resourceId: any, dayAppointments: AXSchedulerAppointment[]): AXSchedulerAppointment[];
900
+ /**
901
+ * Gets the height for a specific resource across all days.
902
+ */
903
+ protected getResourceRowHeight(resourceId: any): string;
904
+ /**
905
+ * Calculates the maximum number of overlapping rows for a set of appointments.
906
+ * Uses the actual segmented times that will be displayed in the timeline view.
907
+ */
908
+ private calculateMaxOverlappingRowsForAppointments;
909
+ /**
910
+ * Gets the hours array for time slots display.
911
+ */
912
+ protected getHoursArray(): AXDateTime[];
913
+ /**
914
+ * Gets the number of hours for CSS calculations.
915
+ */
916
+ protected getHoursCount(): number;
769
917
  protected isHoliday(date: AXDateTime): {
770
918
  state: 'holiday' | 'weekend' | 'none';
771
919
  holiday?: AXHolidayDate;
772
920
  };
773
921
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerTimelineMultiDayViewComponent, never>;
774
- 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; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": true; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "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>;
922
+ 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; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "endDayHour": { "alias": "endDayHour"; "required": true; "isSignal": true; }; "startDayHour": { "alias": "startDayHour"; "required": true; "isSignal": true; }; "resources": { "alias": "resources"; "required": false; "isSignal": true; }; "showUnassignedAppointments": { "alias": "showUnassignedAppointments"; "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>;
775
923
  }
776
924
 
777
925
  export { AXSchedulerAgendaViewComponent, AXSchedulerComponent, AXSchedulerDayViewComponent, AXSchedulerModule, AXSchedulerMonthViewComponent, AXSchedulerService, AXSchedulerTimelineDayViewComponent, AXSchedulerTimelineMonthViewComponent, AXSchedulerTimelineMultiDayViewComponent, AXSchedulerWeekViewComponent };
778
- export type { AXDayOfWeekName, AXSchedulerActiveAppointmentsInBlock, AXSchedulerAllDaySlotData, AXSchedulerAppointment, AXSchedulerAppointmentDataSource, AXSchedulerAppointmentDataSourceFilter, AXSchedulerAppointmentLayout, AXSchedulerAppointmentLoader, AXSchedulerAppointmentLoaderAsync, AXSchedulerAppointmentMouseEvent, AXSchedulerAppointmentSegment, AXSchedulerBlockIdentifier, AXSchedulerBlockOccupancyMap, AXSchedulerDateRange, AXSchedulerDayAppointmentLayout, AXSchedulerMonthDayCell, AXSchedulerMultiDayViewAppointment, AXSchedulerOverflowBadge, AXSchedulerSlotDropEvent, AXSchedulerSlotMouseEvent, AXSchedulerView, AgendaDayData, TimelineMonthViewDayData, TimelineMultiDayDaySlot };
926
+ 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 };