@acorex/components 19.12.0-next.1 → 19.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-components-conversation.mjs +2 -2
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-map.mjs +13 -3
- package/fesm2022/acorex-components-map.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +1266 -103
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/map/lib/map.service.d.ts +1 -1
- package/package.json +1 -1
- package/scheduler/index.d.ts +5 -2
- package/scheduler/lib/scheduler.class.d.ts +53 -0
- package/scheduler/lib/scheduler.component.d.ts +71 -22
- package/scheduler/lib/scheduler.module.d.ts +5 -9
- package/scheduler/lib/scheduler.service.d.ts +60 -0
- package/scheduler/lib/views/day/scheduler-day-view.component.d.ts +34 -0
- package/scheduler/lib/views/month/scheduler-month-view.component.d.ts +43 -0
- package/scheduler/lib/views/week/scheduler-week-view.component.d.ts +41 -0
- package/scheduler/lib/scheduler-month-view.component.d.ts +0 -41
- package/scheduler/lib/scheduler-week-view.component.d.ts +0 -10
@@ -1,14 +1,10 @@
|
|
1
1
|
import * as i0 from "@angular/core";
|
2
|
-
import * as i1 from "
|
3
|
-
import * as i2 from "
|
4
|
-
import * as i3 from "
|
5
|
-
import * as i4 from "
|
6
|
-
import * as i5 from "@acorex/core/date-time";
|
7
|
-
import * as i6 from "./scheduler.component";
|
8
|
-
import * as i7 from "./scheduler-month-view.component";
|
9
|
-
import * as i8 from "./scheduler-week-view.component";
|
2
|
+
import * as i1 from "./scheduler.component";
|
3
|
+
import * as i2 from "./views/day/scheduler-day-view.component";
|
4
|
+
import * as i3 from "./views/week/scheduler-week-view.component";
|
5
|
+
import * as i4 from "./views/month/scheduler-month-view.component";
|
10
6
|
export declare class AXSchedulerModule {
|
11
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXSchedulerModule, never>;
|
12
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<AXSchedulerModule, never, [typeof i1.
|
8
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AXSchedulerModule, never, [typeof i1.AXSchedulerComponent, typeof i2.AXSchedulerDayViewComponent, typeof i3.AXSchedulerWeekViewComponent, typeof i4.AXSchedulerMonthViewComponent], [typeof i1.AXSchedulerComponent, typeof i2.AXSchedulerDayViewComponent, typeof i3.AXSchedulerWeekViewComponent, typeof i4.AXSchedulerMonthViewComponent]>;
|
13
9
|
static ɵinj: i0.ɵɵInjectorDeclaration<AXSchedulerModule>;
|
14
10
|
}
|
@@ -0,0 +1,60 @@
|
|
1
|
+
import { AXDateTime } from '@acorex/core/date-time';
|
2
|
+
import { AXDayOfWeekName, AXSchedulerActiveAppointmentsInBlock, AXSchedulerAppointmentEvent, AXSchedulerAppointmentsByStartBlock, AXSchedulerAppointmentType, AXSchedulerBlockIdentifier, AXSchedulerSlotEvent, AXSchedulerView } from './scheduler.class';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export declare class AXSchedulerService {
|
5
|
+
readonly BLOCK_DURATION_MINUTES = 30;
|
6
|
+
readonly MILLISECONDS_PER_MINUTE: number;
|
7
|
+
readonly MINUTES_PER_HOUR = 60;
|
8
|
+
readonly HOURS_PER_DAY = 24;
|
9
|
+
readonly MILLISECONDS_PER_DAY: number;
|
10
|
+
/**
|
11
|
+
* Checks if two appointments overlap in time.
|
12
|
+
*/
|
13
|
+
doAppointmentsOverlap(appointmentA: AXSchedulerAppointmentType, appointmentB: AXSchedulerAppointmentType): boolean;
|
14
|
+
/**
|
15
|
+
* Calculates appointment duration in minutes.
|
16
|
+
*/
|
17
|
+
calculateDurationInMinutes(Appointment: AXSchedulerAppointmentType): number;
|
18
|
+
/**
|
19
|
+
* Calculates appointment duration in blocks (default 30 min).
|
20
|
+
*/
|
21
|
+
calculateDurationInBlocks(appointment: AXSchedulerAppointmentType): number;
|
22
|
+
/**
|
23
|
+
* Gets the day index (relative to view start) and block index (relative to start hour)
|
24
|
+
* for a given date time within the view context. Returns null if outside view.
|
25
|
+
*/
|
26
|
+
getBlockIdentifier(dateTime: AXDateTime, viewStartDate: AXDateTime, startHour: number, endHour: number, // Exclusive end hour
|
27
|
+
viewTotalDays?: number): AXSchedulerBlockIdentifier | null;
|
28
|
+
/**
|
29
|
+
* Groups appointments by the blocks they are ACTIVE in for a given view.
|
30
|
+
* @param viewTotalDays - Number of days in the current view (1 for Day, 7 for Week, etc.)
|
31
|
+
*/
|
32
|
+
calculateActiveAppointmentsInBlock(singleDayAppointments: AXSchedulerAppointmentType[], viewStartDate: AXDateTime, startHour: number, endHour: number, viewTotalDays: number): AXSchedulerActiveAppointmentsInBlock;
|
33
|
+
/**
|
34
|
+
* Calculates max concurrency and effective total columns for Day View appointments.
|
35
|
+
*/
|
36
|
+
calculateDayViewConcurrencyInfo(singleDayAppointments: AXSchedulerAppointmentType[], viewStartDate: AXDateTime, // Need start date for context
|
37
|
+
startHour: number, endHour: number): Map<any, {
|
38
|
+
maxConcurrency: number;
|
39
|
+
effectiveTotalColumns: number;
|
40
|
+
}>;
|
41
|
+
/**
|
42
|
+
* Groups appointments by the block they START in for Week View.
|
43
|
+
*/
|
44
|
+
calculateWeekViewAppointmentsByStartBlock(singleDayAppointments: AXSchedulerAppointmentType[], viewStartDate: AXDateTime, startHour: number, endHour: number): AXSchedulerAppointmentsByStartBlock;
|
45
|
+
/**
|
46
|
+
* Groups appointments by the day(s) they occur on within a given date range.
|
47
|
+
* Returns a Map where the key is the date string ('YYYY-MM-DD') and the value is an array of appointments.
|
48
|
+
*/
|
49
|
+
groupAppointmentsByDay(appointments: AXSchedulerAppointmentType[], viewStartDate: AXDateTime, // First day visible in the grid
|
50
|
+
viewEndDate: AXDateTime): Map<string, AXSchedulerAppointmentType[]>;
|
51
|
+
getDayOfWeekNumber(dayName: AXDayOfWeekName): number;
|
52
|
+
getSlotData(startDate: AXDateTime, view: AXSchedulerView): {
|
53
|
+
startDate: AXDateTime;
|
54
|
+
endDate: AXDateTime;
|
55
|
+
view: AXSchedulerView;
|
56
|
+
};
|
57
|
+
handleEvent(event: AXSchedulerSlotEvent | AXSchedulerAppointmentEvent, eventOutputMap: any, eventType: 'appointment' | 'slot'): void;
|
58
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXSchedulerService, never>;
|
59
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXSchedulerService>;
|
60
|
+
}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import { MXBaseComponent } from '@acorex/components/common';
|
2
|
+
import { AXDateTime } from '@acorex/core/date-time';
|
3
|
+
import { AXSchedulerAppointmentEvent, AXSchedulerAppointmentType, AXSchedulerDayAppointmentLayout, AXSchedulerSlotEvent } from '../../scheduler.class';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
export declare class AXSchedulerDayViewComponent extends MXBaseComponent {
|
6
|
+
private schedulerCalcService;
|
7
|
+
readonly GAP_WIDTH_PX = 1;
|
8
|
+
draggable: import("@angular/core").InputSignal<boolean>;
|
9
|
+
endHour: import("@angular/core").InputSignal<number>;
|
10
|
+
date: import("@angular/core").InputSignal<AXDateTime>;
|
11
|
+
startHour: import("@angular/core").InputSignal<number>;
|
12
|
+
appointments: import("@angular/core").InputSignal<AXSchedulerAppointmentType[]>;
|
13
|
+
allDayAppointments: import("@angular/core").Signal<AXSchedulerAppointmentType[]>;
|
14
|
+
singleDayAppointments: import("@angular/core").Signal<AXSchedulerAppointmentType[]>;
|
15
|
+
slotClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotEvent>;
|
16
|
+
slotDblClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotEvent>;
|
17
|
+
slotRightClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotEvent>;
|
18
|
+
appointmentClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerAppointmentEvent>;
|
19
|
+
appointmentDblClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerAppointmentEvent>;
|
20
|
+
appointmentRightClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerAppointmentEvent>;
|
21
|
+
private readonly eventOutputMap;
|
22
|
+
handleAppointmentEvent(mouseEvent: MouseEvent, appointment: AXSchedulerAppointmentType): void;
|
23
|
+
handleSingleSlotEvent(mouseEvent: MouseEvent, startDate: AXDateTime, minuteIndex: number): void;
|
24
|
+
handleAllDaySlotEvent(mouseEvent: MouseEvent): void;
|
25
|
+
hoursArray: import("@angular/core").Signal<AXDateTime[]>;
|
26
|
+
appointmentLayouts: import("@angular/core").Signal<Map<any, AXSchedulerDayAppointmentLayout>>;
|
27
|
+
getAppointmentLayout(key: any): AXSchedulerDayAppointmentLayout | undefined;
|
28
|
+
getAppointmentLeft(key: any): string;
|
29
|
+
getAppointmentWidth(key: any): string;
|
30
|
+
getAppointmentTransform(key: any): string;
|
31
|
+
getAppointmentHeight(key: any): string;
|
32
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXSchedulerDayViewComponent, never>;
|
33
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXSchedulerDayViewComponent, "ax-scheduler-day-view", never, { "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "endHour": { "alias": "endHour"; "required": true; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "startHour": { "alias": "startHour"; "required": true; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; }, never, never, true, never>;
|
34
|
+
}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
import { MXBaseComponent } from '@acorex/components/common';
|
2
|
+
import { AXDateTime } from '@acorex/core/date-time';
|
3
|
+
import { AXDayOfWeekName, AXSchedulerAppointmentEvent, AXSchedulerAppointmentType, AXSchedulerSlotEvent } from '../../scheduler.class';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
export type AXSchedulerMonthDayCell = {
|
6
|
+
date: AXDateTime;
|
7
|
+
isCurrentMonth: boolean;
|
8
|
+
isToday: boolean;
|
9
|
+
appointments: AXSchedulerAppointmentType[];
|
10
|
+
visibleAppointments: AXSchedulerAppointmentType[];
|
11
|
+
hiddenAppointments: AXSchedulerAppointmentType[];
|
12
|
+
overflowCount: number;
|
13
|
+
};
|
14
|
+
export declare class AXSchedulerMonthViewComponent extends MXBaseComponent {
|
15
|
+
private schedulerCalcService;
|
16
|
+
private calendarService;
|
17
|
+
draggable: import("@angular/core").InputSignal<boolean>;
|
18
|
+
date: import("@angular/core").InputSignal<AXDateTime>;
|
19
|
+
appointments: import("@angular/core").InputSignal<AXSchedulerAppointmentType[]>;
|
20
|
+
firstDayOfWeek: import("@angular/core").InputSignal<AXDayOfWeekName>;
|
21
|
+
readonly MAX_VISIBLE_APPOINTMENTS_PER_DAY = 2;
|
22
|
+
readonly DAYS_IN_WEEK = 7;
|
23
|
+
slotClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotEvent>;
|
24
|
+
slotDblClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotEvent>;
|
25
|
+
slotRightClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotEvent>;
|
26
|
+
appointmentClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerAppointmentEvent>;
|
27
|
+
appointmentDblClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerAppointmentEvent>;
|
28
|
+
appointmentRightClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerAppointmentEvent>;
|
29
|
+
private readonly eventOutputMap;
|
30
|
+
handleAppointmentEvent(mouseEvent: MouseEvent, appointment: AXSchedulerAppointmentType): void;
|
31
|
+
handleSlotEvent(mouseEvent: MouseEvent, date: AXDateTime): void;
|
32
|
+
monthStartDate: import("@angular/core").Signal<AXDateTime>;
|
33
|
+
daysArray: import("@angular/core").Signal<AXDateTime[]>;
|
34
|
+
calendarDaysInfo: import("@angular/core").Signal<{
|
35
|
+
days: AXSchedulerMonthDayCell[];
|
36
|
+
weeksNeeded: number;
|
37
|
+
}>;
|
38
|
+
appointmentsGroupedByDay: import("@angular/core").Signal<Map<string, AXSchedulerAppointmentType[]>>;
|
39
|
+
dayCellLayouts: import("@angular/core").Signal<AXSchedulerMonthDayCell[]>;
|
40
|
+
gridTemplateRowsStyle: import("@angular/core").Signal<string>;
|
41
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXSchedulerMonthViewComponent, never>;
|
42
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXSchedulerMonthViewComponent, "ax-scheduler-month-view", never, { "draggable": { "alias": "draggable"; "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; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; }, never, never, true, never>;
|
43
|
+
}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import { MXBaseComponent } from '@acorex/components/common';
|
2
|
+
import { AXDateTime } from '@acorex/core/date-time';
|
3
|
+
import { AXSchedulerActiveAppointmentsInBlock, AXSchedulerAllDaySlotData, AXSchedulerAppointmentEvent, AXSchedulerAppointmentsByStartBlock, AXSchedulerAppointmentType, AXSchedulerOverflowBadge, AXSchedulerSlotEvent, AXSchedulerWeekAppointmentLayout } from '../../scheduler.class';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
type AXSchedulerGridBadgeInfo = AXSchedulerOverflowBadge & {
|
6
|
+
hiddenAppointments: AXSchedulerAppointmentType[];
|
7
|
+
};
|
8
|
+
export declare class AXSchedulerWeekViewComponent extends MXBaseComponent {
|
9
|
+
private schedulerCalcService;
|
10
|
+
readonly GAP_WIDTH_PX = 1;
|
11
|
+
draggable: import("@angular/core").InputSignal<boolean>;
|
12
|
+
endHour: import("@angular/core").InputSignal<number>;
|
13
|
+
date: import("@angular/core").InputSignal<AXDateTime>;
|
14
|
+
startHour: import("@angular/core").InputSignal<number>;
|
15
|
+
appointments: import("@angular/core").InputSignal<AXSchedulerAppointmentType[]>;
|
16
|
+
slotClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotEvent>;
|
17
|
+
slotDblClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotEvent>;
|
18
|
+
slotRightClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerSlotEvent>;
|
19
|
+
appointmentClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerAppointmentEvent>;
|
20
|
+
appointmentDblClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerAppointmentEvent>;
|
21
|
+
appointmentRightClickedInternal: import("@angular/core").OutputEmitterRef<AXSchedulerAppointmentEvent>;
|
22
|
+
private readonly eventOutputMap;
|
23
|
+
handleAppointmentEvent(mouseEvent: MouseEvent, appointment: AXSchedulerAppointmentType): void;
|
24
|
+
handleSingleSlotEvent(mouseEvent: MouseEvent, hour: AXDateTime, day: AXDateTime, minuteIndex: number): void;
|
25
|
+
handleAllDaySlotEvent(mouseEvent: MouseEvent, day: AXDateTime): void;
|
26
|
+
allDayAppointments: import("@angular/core").Signal<AXSchedulerAppointmentType[]>;
|
27
|
+
singleDayAppointments: import("@angular/core").Signal<AXSchedulerAppointmentType[]>;
|
28
|
+
hoursArray: import("@angular/core").Signal<AXDateTime[]>;
|
29
|
+
daysArray: import("@angular/core").Signal<AXDateTime[]>;
|
30
|
+
totalBlocksPerViewDay: import("@angular/core").Signal<number>;
|
31
|
+
appointmentsByStartBlock: import("@angular/core").Signal<AXSchedulerAppointmentsByStartBlock>;
|
32
|
+
activeAppointmentsInBlock: import("@angular/core").Signal<AXSchedulerActiveAppointmentsInBlock>;
|
33
|
+
visibleAppointmentsLayout: import("@angular/core").Signal<AXSchedulerWeekAppointmentLayout[]>;
|
34
|
+
visualOccupancyMap: import("@angular/core").Signal<Map<string, any>>;
|
35
|
+
overflowBadges: import("@angular/core").Signal<AXSchedulerOverflowBadge[]>;
|
36
|
+
allDayAppointmentsPerDay: import("@angular/core").Signal<AXSchedulerAllDaySlotData[]>;
|
37
|
+
overflowBadgesWithData: import("@angular/core").Signal<AXSchedulerGridBadgeInfo[]>;
|
38
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXSchedulerWeekViewComponent, never>;
|
39
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXSchedulerWeekViewComponent, "ax-scheduler-week-view", never, { "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "endHour": { "alias": "endHour"; "required": true; "isSignal": true; }; "date": { "alias": "date"; "required": true; "isSignal": true; }; "startHour": { "alias": "startHour"; "required": true; "isSignal": true; }; "appointments": { "alias": "appointments"; "required": false; "isSignal": true; }; }, { "slotClickedInternal": "slotClickedInternal"; "slotDblClickedInternal": "slotDblClickedInternal"; "slotRightClickedInternal": "slotRightClickedInternal"; "appointmentClickedInternal": "appointmentClickedInternal"; "appointmentDblClickedInternal": "appointmentDblClickedInternal"; "appointmentRightClickedInternal": "appointmentRightClickedInternal"; }, never, never, true, never>;
|
40
|
+
}
|
41
|
+
export {};
|
@@ -1,41 +0,0 @@
|
|
1
|
-
import { MXBaseComponent } from '@acorex/components/common';
|
2
|
-
import { AXDateTime } from '@acorex/core/date-time';
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
/**
|
5
|
-
* @category
|
6
|
-
* Represents a view in the scheduler component that displays the calendar month.
|
7
|
-
*/
|
8
|
-
export declare class AXSchedulerMonthViewComponent extends MXBaseComponent {
|
9
|
-
/** @ignore */
|
10
|
-
private _platform;
|
11
|
-
/** @ignore */
|
12
|
-
protected _slots: {
|
13
|
-
date: AXDateTime;
|
14
|
-
cssClass: {
|
15
|
-
[key: string]: boolean;
|
16
|
-
};
|
17
|
-
isToday: boolean;
|
18
|
-
}[];
|
19
|
-
/** @ignore */
|
20
|
-
protected get dayNames(): string[];
|
21
|
-
/** @ignore */
|
22
|
-
private _date;
|
23
|
-
/**
|
24
|
-
* Gets or sets the date for the scheduler view.
|
25
|
-
*/
|
26
|
-
get date(): AXDateTime;
|
27
|
-
/**
|
28
|
-
* Sets the date for the scheduler view and triggers the generation of time slots.
|
29
|
-
* @param {AXDateTime} v
|
30
|
-
*/
|
31
|
-
set date(v: AXDateTime);
|
32
|
-
/** @ignore */
|
33
|
-
ngOnInit(): void;
|
34
|
-
/**
|
35
|
-
* Generates slots for the scheduler, including CSS classes for days outside the current month
|
36
|
-
* and a flag for the current day.
|
37
|
-
*/
|
38
|
-
generateSlots(): void;
|
39
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AXSchedulerMonthViewComponent, never>;
|
40
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AXSchedulerMonthViewComponent, "ax-scheduler-month-view", never, { "date": { "alias": "date"; "required": false; }; }, {}, never, never, true, never>;
|
41
|
-
}
|
@@ -1,10 +0,0 @@
|
|
1
|
-
import { MXBaseComponent } from '@acorex/components/common';
|
2
|
-
import * as i0 from "@angular/core";
|
3
|
-
/**
|
4
|
-
* @category
|
5
|
-
* This component renders the weekly view for the scheduler.
|
6
|
-
*/
|
7
|
-
export declare class AXSchedulerWeekViewComponent extends MXBaseComponent {
|
8
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AXSchedulerWeekViewComponent, never>;
|
9
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AXSchedulerWeekViewComponent, "ax-scheduler-week-view", never, {}, {}, never, never, true, never>;
|
10
|
-
}
|