@acorex/components 21.0.1-next.52 → 21.0.1-next.53

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,9 +1,9 @@
1
1
  {
2
2
  "name": "@acorex/components",
3
- "version": "21.0.1-next.52",
3
+ "version": "21.0.1-next.53",
4
4
  "peerDependencies": {
5
- "@acorex/core": "21.0.1-next.52",
6
- "@acorex/cdk": "21.0.1-next.52",
5
+ "@acorex/core": "21.0.1-next.53",
6
+ "@acorex/cdk": "21.0.1-next.53",
7
7
  "@angular/common": ">=21.0.0",
8
8
  "@angular/core": ">=21.0.0",
9
9
  "@angular/cdk": ">=21.0.0",
@@ -1,17 +1,17 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { EventEmitter } from '@angular/core';
3
- import * as polytype from 'polytype';
4
- import { MXInteractiveComponent, MXColorLookComponent, AXClickEvent, AXSelectionMode, MXColorComponent, AXStyleColorType } from '@acorex/cdk/common';
3
+ import { MXInteractiveComponent, AXStyleColorType, AXStyleLookType, AXClickEvent, AXSelectionMode } from '@acorex/cdk/common';
5
4
 
6
- declare const AXButtonGroupComponent_base: polytype.Polytype.ClusteredConstructor<[typeof MXInteractiveComponent, typeof MXColorLookComponent]>;
7
5
  /**
8
6
  * A component that groups multiple buttons together, allowing for consistent styling and behavior.
9
7
  *
10
8
  * @category Components
11
9
  */
12
- declare class AXButtonGroupComponent extends AXButtonGroupComponent_base {
10
+ declare class AXButtonGroupComponent extends MXInteractiveComponent {
13
11
  #private;
14
12
  readonly fitParent: i0.InputSignal<boolean>;
13
+ color: AXStyleColorType;
14
+ look: AXStyleLookType;
15
15
  readonly customClass: i0.InputSignal<string>;
16
16
  /**
17
17
  * Fires when any button in the group is clicked.
@@ -83,7 +83,7 @@ declare class AXButtonGroupComponent extends AXButtonGroupComponent_base {
83
83
  */
84
84
  __hostClick(e: MouseEvent): void;
85
85
  static ɵfac: i0.ɵɵFactoryDeclaration<AXButtonGroupComponent, never>;
86
- static ɵcmp: i0.ɵɵComponentDeclaration<AXButtonGroupComponent, "ax-button-group", never, { "disabled": { "alias": "disabled"; "required": false; }; "color": { "alias": "color"; "required": false; }; "look": { "alias": "look"; "required": false; }; "fitParent": { "alias": "fitParent"; "required": false; "isSignal": true; }; "customClass": { "alias": "class"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; }; }, { "onBlur": "onBlur"; "onFocus": "onFocus"; "lookChange": "lookChange"; "colorChange": "colorChange"; "disabledChange": "disabledChange"; "onClick": "onClick"; "selectionChange": "selectionChange"; "selectedButtonChange": "selectedButtonChange"; }, ["_contentButtons"], ["ax-button-group-item"], true, never>;
86
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXButtonGroupComponent, "ax-button-group", never, { "disabled": { "alias": "disabled"; "required": false; }; "fitParent": { "alias": "fitParent"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; }; "look": { "alias": "look"; "required": false; }; "customClass": { "alias": "class"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; }; }, { "onBlur": "onBlur"; "onFocus": "onFocus"; "lookChange": "lookChange"; "colorChange": "colorChange"; "disabledChange": "disabledChange"; "onClick": "onClick"; "selectionChange": "selectionChange"; "selectedButtonChange": "selectedButtonChange"; }, ["_contentButtons"], ["ax-button-group-item"], true, never>;
87
87
  }
88
88
 
89
89
  interface AXButtonItemListItem {
@@ -94,14 +94,14 @@ interface AXButtonItemListItem {
94
94
  disabled?: boolean;
95
95
  color?: AXStyleColorType;
96
96
  }
97
- declare const AXButtonGroupItemComponent_base: polytype.Polytype.ClusteredConstructor<[typeof MXInteractiveComponent, typeof MXColorComponent]>;
98
97
  /**
99
98
  * Represents a button item with optional content like icons, text, and dropdowns.
100
99
  *
101
100
  * @category Components
102
101
  */
103
- declare class AXButtonGroupItemComponent extends AXButtonGroupItemComponent_base {
102
+ declare class AXButtonGroupItemComponent extends MXInteractiveComponent {
104
103
  btnGroup: AXButtonGroupComponent;
104
+ color: AXStyleColorType;
105
105
  /**
106
106
  * Text displayed on the button item.
107
107
  */
@@ -159,7 +159,7 @@ declare class AXButtonGroupItemComponent extends AXButtonGroupItemComponent_base
159
159
  */
160
160
  tabindex: string;
161
161
  static ɵfac: i0.ɵɵFactoryDeclaration<AXButtonGroupItemComponent, never>;
162
- static ɵcmp: i0.ɵɵComponentDeclaration<AXButtonGroupItemComponent, "ax-button-group-item", never, { "color": { "alias": "color"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "text": { "alias": "text"; "required": false; }; "customClass": { "alias": "class"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; }; "divided": { "alias": "divided"; "required": false; }; "data": { "alias": "data"; "required": false; }; "name": { "alias": "name"; "required": false; }; }, { "onClick": "onClick"; "onFocus": "onFocus"; "onBlur": "onBlur"; "disabledChange": "disabledChange"; "customClass": "classChange"; }, never, ["*"], true, never>;
162
+ static ɵcmp: i0.ɵɵComponentDeclaration<AXButtonGroupItemComponent, "ax-button-group-item", never, { "disabled": { "alias": "disabled"; "required": false; }; "color": { "alias": "color"; "required": false; }; "text": { "alias": "text"; "required": false; }; "customClass": { "alias": "class"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; }; "divided": { "alias": "divided"; "required": false; }; "data": { "alias": "data"; "required": false; }; "name": { "alias": "name"; "required": false; }; }, { "onClick": "onClick"; "onFocus": "onFocus"; "onBlur": "onBlur"; "disabledChange": "disabledChange"; "customClass": "classChange"; }, never, ["*"], true, never>;
163
163
  }
164
164
 
165
165
  declare class AXButtonGroupModule {
@@ -4,7 +4,7 @@ import * as _angular_core from '@angular/core';
4
4
  import { OnInit, TemplateRef, AfterViewInit, OnDestroy, ElementRef } from '@angular/core';
5
5
  import { AXDropZoneDropEvent } from '@acorex/cdk/drag-drop';
6
6
 
7
- type AXSchedulerView = 'day' | 'week' | 'month' | 'timeline-day' | 'timeline-multi-day' | 'timeline-month' | 'timeline-year' | 'agenda';
7
+ type AXSchedulerView = 'day' | 'week' | 'month' | 'timeline-day' | 'timeline-weekly' | 'timeline-month' | 'timeline-year' | 'agenda';
8
8
  type AXDayOfWeekName = 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday';
9
9
  type AXSchedulerBlockIdentifier = {
10
10
  dayIndex: number;
@@ -116,7 +116,13 @@ declare class AXSchedulerComponent extends NXComponent implements OnInit {
116
116
  private translationService;
117
117
  private viewModeSelectbox;
118
118
  private calendarPopover;
119
- protected calendarDayCellTemplate: _angular_core.Signal<TemplateRef<unknown>>;
119
+ private _calendarDayCellTemplate;
120
+ private _calendarMonthCellTemplate;
121
+ private _calendarYearCellTemplate;
122
+ /** Expose template refs for calendar bindings (signals are not callable in template type-check) */
123
+ protected get calendarDayCellTemplateRef(): TemplateRef<unknown> | undefined;
124
+ protected get calendarMonthCellTemplateRef(): TemplateRef<unknown> | undefined;
125
+ protected get calendarYearCellTemplateRef(): TemplateRef<unknown> | undefined;
120
126
  private displayViews;
121
127
  calendar: _angular_core.InputSignal<string>;
122
128
  protected calendarType: _angular_core.WritableSignal<string>;
@@ -181,6 +187,15 @@ declare class AXSchedulerComponent extends NXComponent implements OnInit {
181
187
  range: _angular_core.Signal<AXSchedulerDateRange>;
182
188
  viewAppointments: _angular_core.Signal<AXSchedulerAppointment[]>;
183
189
  protected hasAppointmentsOnDate(date: Date): boolean;
190
+ /**
191
+ * Returns whether any appointment overlaps the given month (used for calendar month-cell badge).
192
+ * Works correctly when navigating to previous/next month or year in the calendar.
193
+ */
194
+ protected hasAppointmentsInMonth(monthStartDate: Date): boolean;
195
+ /**
196
+ * Returns whether any appointment falls in the given year (used for calendar year-cell badge).
197
+ */
198
+ protected hasAppointmentsInYear(yearStartDate: Date): boolean;
184
199
  /**
185
200
  * Handles view change events.
186
201
  *
@@ -795,9 +810,9 @@ declare class AXSchedulerTimelineMonthViewComponent extends NXComponent implemen
795
810
  }
796
811
 
797
812
  /**
798
- * Represents a spanning appointment in the timeline-multi-day view.
813
+ * Represents a spanning appointment in the timeline-weekly view.
799
814
  */
800
- interface AXSchedulerTimelineMultiDaySpanningAppointment {
815
+ interface AXSchedulerTimelineWeeklySpanningAppointment {
801
816
  appointment: AXSchedulerAppointment;
802
817
  startDayIndex: number;
803
818
  spanCount: number;
@@ -806,7 +821,7 @@ interface AXSchedulerTimelineMultiDaySpanningAppointment {
806
821
  isEndClipped: boolean;
807
822
  resourceId?: unknown;
808
823
  }
809
- interface TimelineMultiDayDaySlot {
824
+ interface TimelineWeeklyDaySlot {
810
825
  date: AXDateTime;
811
826
  originalAppointmentsForThisDay: AXSchedulerAppointment[];
812
827
  holiday?: {
@@ -814,7 +829,7 @@ interface TimelineMultiDayDaySlot {
814
829
  holiday?: AXHolidayDate;
815
830
  };
816
831
  }
817
- declare class AXSchedulerTimelineMultiDayViewComponent extends NXComponent implements AfterViewInit, OnDestroy {
832
+ declare class AXSchedulerTimelineWeeklyViewComponent extends NXComponent implements AfterViewInit, OnDestroy {
818
833
  private destroyRef;
819
834
  private scheduler;
820
835
  private calendarService;
@@ -840,7 +855,7 @@ declare class AXSchedulerTimelineMultiDayViewComponent extends NXComponent imple
840
855
  appointments: _angular_core.InputSignal<AXSchedulerAppointment[]>;
841
856
  tooltipTemplate: _angular_core.InputSignal<string | TemplateRef<unknown>>;
842
857
  currentTimeLineElement: _angular_core.Signal<ElementRef<HTMLElement>>;
843
- protected daysDataForTimelineViews: _angular_core.Signal<TimelineMultiDayDaySlot[]>;
858
+ protected daysDataForTimelineViews: _angular_core.Signal<TimelineWeeklyDaySlot[]>;
844
859
  /**
845
860
  * Checks if an appointment spans multiple days.
846
861
  */
@@ -848,7 +863,7 @@ declare class AXSchedulerTimelineMultiDayViewComponent extends NXComponent imple
848
863
  /**
849
864
  * Computes spanning appointments for multi-day events across the view.
850
865
  */
851
- protected spanningAppointments: _angular_core.Signal<AXSchedulerTimelineMultiDaySpanningAppointment[]>;
866
+ protected spanningAppointments: _angular_core.Signal<AXSchedulerTimelineWeeklySpanningAppointment[]>;
852
867
  /**
853
868
  * Gets the set of multi-day appointment IDs to exclude from individual day views.
854
869
  */
@@ -856,7 +871,7 @@ declare class AXSchedulerTimelineMultiDayViewComponent extends NXComponent imple
856
871
  /**
857
872
  * Gets spanning appointments filtered for a specific resource.
858
873
  */
859
- protected getSpanningAppointmentsForResource(resourceId: unknown): AXSchedulerTimelineMultiDaySpanningAppointment[];
874
+ protected getSpanningAppointmentsForResource(resourceId: unknown): AXSchedulerTimelineWeeklySpanningAppointment[];
860
875
  /**
861
876
  * Gets the maximum number of spanning rows for a resource.
862
877
  */
@@ -934,8 +949,8 @@ declare class AXSchedulerTimelineMultiDayViewComponent extends NXComponent imple
934
949
  state: 'holiday' | 'weekend' | 'none';
935
950
  holiday?: AXHolidayDate;
936
951
  };
937
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerTimelineMultiDayViewComponent, never>;
938
- 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; }; "scrollToCurrentTimeIndicator": { "alias": "scrollToCurrentTimeIndicator"; "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>;
952
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerTimelineWeeklyViewComponent, never>;
953
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXSchedulerTimelineWeeklyViewComponent, "ax-scheduler-timeline-weekly-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; }; "scrollToCurrentTimeIndicator": { "alias": "scrollToCurrentTimeIndicator"; "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>;
939
954
  }
940
955
 
941
956
  interface TimelineYearViewDayData {
@@ -1032,7 +1047,7 @@ declare class AXSchedulerTimelineYearViewComponent extends NXComponent implement
1032
1047
 
1033
1048
  declare class AXSchedulerModule {
1034
1049
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXSchedulerModule, never>;
1035
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXSchedulerModule, never, [typeof AXSchedulerComponent, typeof AXSchedulerDayViewComponent, typeof AXSchedulerWeekViewComponent, typeof AXSchedulerMonthViewComponent, typeof AXSchedulerAgendaViewComponent, typeof AXSchedulerTimelineDayViewComponent, typeof AXSchedulerTimelineMonthViewComponent, typeof AXSchedulerTimelineMultiDayViewComponent, typeof AXSchedulerTimelineYearViewComponent], [typeof AXSchedulerComponent, typeof AXSchedulerDayViewComponent, typeof AXSchedulerWeekViewComponent, typeof AXSchedulerMonthViewComponent, typeof AXSchedulerAgendaViewComponent, typeof AXSchedulerTimelineDayViewComponent, typeof AXSchedulerTimelineMonthViewComponent, typeof AXSchedulerTimelineMultiDayViewComponent, typeof AXSchedulerTimelineYearViewComponent]>;
1050
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXSchedulerModule, never, [typeof AXSchedulerComponent, typeof AXSchedulerDayViewComponent, typeof AXSchedulerWeekViewComponent, typeof AXSchedulerMonthViewComponent, typeof AXSchedulerAgendaViewComponent, typeof AXSchedulerTimelineDayViewComponent, typeof AXSchedulerTimelineMonthViewComponent, typeof AXSchedulerTimelineWeeklyViewComponent, typeof AXSchedulerTimelineYearViewComponent], [typeof AXSchedulerComponent, typeof AXSchedulerDayViewComponent, typeof AXSchedulerWeekViewComponent, typeof AXSchedulerMonthViewComponent, typeof AXSchedulerAgendaViewComponent, typeof AXSchedulerTimelineDayViewComponent, typeof AXSchedulerTimelineMonthViewComponent, typeof AXSchedulerTimelineWeeklyViewComponent, typeof AXSchedulerTimelineYearViewComponent]>;
1036
1051
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXSchedulerModule>;
1037
1052
  }
1038
1053
 
@@ -1298,5 +1313,5 @@ declare class AXSchedulerService {
1298
1313
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXSchedulerService>;
1299
1314
  }
1300
1315
 
1301
- export { AXSchedulerAgendaViewComponent, AXSchedulerComponent, AXSchedulerDayViewComponent, AXSchedulerModule, AXSchedulerMonthViewComponent, AXSchedulerService, AXSchedulerTimelineDayViewComponent, AXSchedulerTimelineMonthViewComponent, AXSchedulerTimelineMultiDayViewComponent, AXSchedulerTimelineYearViewComponent, AXSchedulerWeekViewComponent };
1302
- 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 };
1316
+ export { AXSchedulerAgendaViewComponent, AXSchedulerComponent, AXSchedulerDayViewComponent, AXSchedulerModule, AXSchedulerMonthViewComponent, AXSchedulerService, AXSchedulerTimelineDayViewComponent, AXSchedulerTimelineMonthViewComponent, AXSchedulerTimelineWeeklyViewComponent, AXSchedulerTimelineYearViewComponent, AXSchedulerWeekViewComponent };
1317
+ 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, TimelineWeeklyDaySlot, TimelineYearViewDayData };