@primeui/scheduler-core 0.0.1-alpha.1

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.
Files changed (63) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +1 -0
  3. package/dist/calendar/index.d.mts +57 -0
  4. package/dist/calendar/index.mjs +1 -0
  5. package/dist/chunk-2B3YLWHA.mjs +196 -0
  6. package/dist/chunk-2THQAZ26.mjs +1669 -0
  7. package/dist/chunk-5KORIWDT.mjs +41 -0
  8. package/dist/chunk-5N4ZOBJV.mjs +866 -0
  9. package/dist/chunk-6OZAPQZ5.mjs +229 -0
  10. package/dist/chunk-6PK5WSKT.mjs +369 -0
  11. package/dist/chunk-6VYWVIGM.mjs +1170 -0
  12. package/dist/chunk-AAVM7UCG.mjs +100 -0
  13. package/dist/chunk-C7ADJGNV.mjs +157 -0
  14. package/dist/chunk-DYW6WUHE.mjs +277 -0
  15. package/dist/chunk-F5W5HD7S.mjs +285 -0
  16. package/dist/chunk-FIBAZFC4.mjs +871 -0
  17. package/dist/chunk-HPC5B3AR.mjs +558 -0
  18. package/dist/chunk-KQGRXTP5.mjs +650 -0
  19. package/dist/chunk-NMX4BW42.mjs +672 -0
  20. package/dist/chunk-NX46LPLF.mjs +440 -0
  21. package/dist/chunk-NZGJN7HG.mjs +314 -0
  22. package/dist/chunk-QDMZBJDV.mjs +251 -0
  23. package/dist/chunk-QR2SVYAD.mjs +1144 -0
  24. package/dist/chunk-SYJ5O4KH.mjs +136 -0
  25. package/dist/chunk-TNKJPFGI.mjs +569 -0
  26. package/dist/chunk-UMAMDBU4.mjs +1 -0
  27. package/dist/chunk-W2SJW3QQ.mjs +3925 -0
  28. package/dist/chunk-WFUJWDST.mjs +352 -0
  29. package/dist/chunk-XUBQ2IQS.mjs +1 -0
  30. package/dist/chunk-ZUKUKGNK.mjs +613 -0
  31. package/dist/controllers/index.d.mts +384 -0
  32. package/dist/controllers/index.mjs +13 -0
  33. package/dist/date-D_CjQPmM.d.mts +74 -0
  34. package/dist/display-format-CLVvRt4I.d.mts +57 -0
  35. package/dist/event/index.d.mts +267 -0
  36. package/dist/event/index.mjs +8 -0
  37. package/dist/event-surface-_R_LHD95.d.mts +21 -0
  38. package/dist/event.positioning-BdzAVPk7.d.mts +51 -0
  39. package/dist/event.utils-QSNdd-3W.d.mts +35 -0
  40. package/dist/index.d.mts +1128 -0
  41. package/dist/index.mjs +1022 -0
  42. package/dist/interaction/index.d.mts +442 -0
  43. package/dist/interaction/index.mjs +9 -0
  44. package/dist/month/index.d.mts +104 -0
  45. package/dist/month/index.mjs +6 -0
  46. package/dist/overlay-BYM9B6nC.d.mts +64 -0
  47. package/dist/resource/index.d.mts +172 -0
  48. package/dist/resource/index.mjs +1 -0
  49. package/dist/selection-CO_98HdS.d.mts +56 -0
  50. package/dist/time-grid/index.d.mts +92 -0
  51. package/dist/time-grid/index.mjs +13 -0
  52. package/dist/timeline/index.d.mts +165 -0
  53. package/dist/timeline/index.mjs +6 -0
  54. package/dist/touch-BhsMWsjf.d.mts +69 -0
  55. package/dist/utils/index.d.mts +494 -0
  56. package/dist/utils/index.mjs +17 -0
  57. package/dist/views/index.d.mts +51 -0
  58. package/dist/views/index.mjs +8 -0
  59. package/dist/views/timeline/index.d.mts +37 -0
  60. package/dist/views/timeline/index.mjs +4 -0
  61. package/dist/year/index.d.mts +70 -0
  62. package/dist/year/index.mjs +6 -0
  63. package/package.json +58 -0
@@ -0,0 +1,172 @@
1
+ import { SchedulerResource, ResourceStoreState, ResourceStoreOptions, FlattenedResource, ResourceColumnLayout, ResourceRowLayout, ResourceGroupingOptions, ResourceFilterOptions } from '@primeui/scheduler-types/resource';
2
+ export * from '@primeui/scheduler-types/resource';
3
+ import { SchedulerEvent } from '@primeui/scheduler-types/scheduler';
4
+ import { ResourceScalePolicyInput, ResourceScalePolicy, ResourceScaleStrategyInput, ResourceScaleStrategy } from '@primeui/scheduler-types/resource-scale';
5
+ export { ResourceScalePolicy, ResourceScalePolicyInput, ResourceScaleStrategy, ResourceScaleStrategyInput, ResourceScaleTier } from '@primeui/scheduler-types/resource-scale';
6
+
7
+ interface ResourceTreeMutationResult {
8
+ resources: SchedulerResource[];
9
+ changed: boolean;
10
+ }
11
+ declare function flattenResourceTree(resourceList: SchedulerResource[]): SchedulerResource[];
12
+ declare function upsertResourceById(resourceList: SchedulerResource[], resource: SchedulerResource): SchedulerResource[];
13
+ declare function addResourceToTree(resourceList: SchedulerResource[], resource: SchedulerResource, parentId?: string | number): ResourceTreeMutationResult;
14
+ declare function updateResourceInTree(resourceList: SchedulerResource[], updatedResource: SchedulerResource): ResourceTreeMutationResult;
15
+ declare function removeResourceFromTree(resourceList: SchedulerResource[], resourceId: string | number): ResourceTreeMutationResult;
16
+ declare function setResourceExpansionInTree(resourceList: SchedulerResource[], resourceId: string | number, expanded: boolean): ResourceTreeMutationResult;
17
+ declare function dedupeResourceIds(resourceIds: Array<string | number>): Array<string | number>;
18
+ declare function areResourceIdSetsEqual(left: Array<string | number>, right: Array<string | number>): boolean;
19
+
20
+ declare function createResourceStore(initialResources?: SchedulerResource[], options?: ResourceStoreOptions): ResourceStoreState;
21
+ declare function flattenResources(resources: SchedulerResource[], expandedIds: Set<string | number>, resourceMap: Map<string | number, SchedulerResource>, depth?: number, ancestorIds?: (string | number)[], parentExpanded?: boolean): FlattenedResource[];
22
+ declare function addResource(state: ResourceStoreState, resource: SchedulerResource, parentId?: string | number): ResourceStoreState;
23
+ declare function updateResource(state: ResourceStoreState, resourceId: string | number, updates: Partial<SchedulerResource>): ResourceStoreState;
24
+ declare function removeResource(state: ResourceStoreState, resourceId: string | number): ResourceStoreState;
25
+ declare function expandResource(state: ResourceStoreState, resourceId: string | number): ResourceStoreState;
26
+ declare function collapseResource(state: ResourceStoreState, resourceId: string | number): ResourceStoreState;
27
+ declare function toggleResourceExpansion(state: ResourceStoreState, resourceId: string | number): ResourceStoreState;
28
+ declare function expandAllResources(state: ResourceStoreState): ResourceStoreState;
29
+ declare function collapseAllResources(state: ResourceStoreState): ResourceStoreState;
30
+ declare function getResourceById(state: ResourceStoreState, resourceId: string | number): SchedulerResource | undefined;
31
+ declare function getResourcesByIds(state: ResourceStoreState, resourceIds: (string | number)[]): SchedulerResource[];
32
+ declare function getVisibleResources(state: ResourceStoreState): FlattenedResource[];
33
+ declare function getChildResources(state: ResourceStoreState, parentId: string | number): SchedulerResource[];
34
+ declare function getParentResource(state: ResourceStoreState, resourceId: string | number): SchedulerResource | undefined;
35
+ declare function getAncestorResources(state: ResourceStoreState, resourceId: string | number): SchedulerResource[];
36
+ declare function findResourceById(resources: SchedulerResource[], resourceId: string | number): SchedulerResource | undefined;
37
+ declare function getAllResourceIds(resources: SchedulerResource[]): (string | number)[];
38
+ declare function countResources(resources: SchedulerResource[]): number;
39
+ interface HierarchicalHeaderCell {
40
+ resource: SchedulerResource;
41
+ colspan: number;
42
+ depth: number;
43
+ isLeaf: boolean;
44
+ }
45
+ interface HierarchicalHeaderRow {
46
+ depth: number;
47
+ cells: HierarchicalHeaderCell[];
48
+ }
49
+ declare function getLeafResources(resources: SchedulerResource[]): SchedulerResource[];
50
+ declare function getMaxDepth(resources: SchedulerResource[], currentDepth?: number): number;
51
+ declare function countLeafDescendants(resource: SchedulerResource): number;
52
+ declare function getHierarchicalHeaderRows(resources: SchedulerResource[]): HierarchicalHeaderRow[];
53
+ declare function groupResourcesByField(resources: SchedulerResource[], fieldName: string): SchedulerResource[];
54
+ declare function hasHierarchy(resources: SchedulerResource[]): boolean;
55
+
56
+ declare const DEFAULT_RESOURCE_AREA_WIDTH = 200;
57
+ declare const DEFAULT_RESOURCE_ROW_HEIGHT = 40;
58
+ declare const DEFAULT_RESOURCE_MIN_ROW_HEIGHT = 32;
59
+ interface ResourceEventGroup {
60
+ resource: FlattenedResource;
61
+ events: SchedulerEvent[];
62
+ }
63
+ interface DateResourceGroup {
64
+ date: Date;
65
+ dateStr: string;
66
+ resources: {
67
+ resource: SchedulerResource;
68
+ events: SchedulerEvent[];
69
+ }[];
70
+ }
71
+ declare function groupEventsByResource(events: SchedulerEvent[], state: ResourceStoreState): ResourceEventGroup[];
72
+ declare function groupEventsByDate(events: SchedulerEvent[], resources: SchedulerResource[], dates: Date[]): DateResourceGroup[];
73
+ declare function getEventsForResource(events: SchedulerEvent[], resourceId: string | number): SchedulerEvent[];
74
+ declare function getEventsWithoutResource(events: SchedulerEvent[]): SchedulerEvent[];
75
+ declare function getResourceIdsForEvent(event: SchedulerEvent): (string | number)[];
76
+ declare function assignEventToResource(event: SchedulerEvent, resourceId: string | number): SchedulerEvent;
77
+ declare function moveEventToResource(event: SchedulerEvent, fromResourceId: string | number | undefined, toResourceId: string | number): SchedulerEvent;
78
+ declare function addResourceToEvent(event: SchedulerEvent, resourceId: string | number): SchedulerEvent;
79
+ declare function removeResourceFromEvent(event: SchedulerEvent, resourceId: string | number): SchedulerEvent;
80
+ declare function calculateResourceRowLayouts(visibleResources: FlattenedResource[], rowHeight?: number, expandedRowHeights?: Map<string | number, number>, laneCounts?: Map<string | number, number>): ResourceRowLayout[];
81
+ declare function calculateResourceColumnLayouts(resources: SchedulerResource[], totalWidth: number, minColumnWidth?: number): ResourceColumnLayout[];
82
+ declare function getResourceAtPosition(layouts: ResourceRowLayout[], y: number): FlattenedResource | undefined;
83
+ declare function getResourceColumnAtPosition(layouts: ResourceColumnLayout[], x: number): SchedulerResource | undefined;
84
+ declare function sortResources(resources: SchedulerResource[], options: ResourceGroupingOptions): SchedulerResource[];
85
+ declare function getTotalResourceHeight(layouts: ResourceRowLayout[]): number;
86
+ declare function getResourceAreaWidth(options: ResourceGroupingOptions): number;
87
+ declare function getResourceLabel(resource: SchedulerResource, options?: ResourceGroupingOptions): string;
88
+ declare function calculateExpandedRowHeight(eventCount: number, eventHeight?: number, eventGap?: number, minHeight?: number, padding?: number): number;
89
+
90
+ interface ResourceFilterResult {
91
+ filteredResources: SchedulerResource[];
92
+ flattenedResources: FlattenedResource[];
93
+ matchingIds: Set<string | number>;
94
+ visibleIds: Set<string | number>;
95
+ }
96
+ declare function filterResources(state: ResourceStoreState, query: string, options?: ResourceFilterOptions): ResourceFilterResult;
97
+ declare function searchResources(resources: SchedulerResource[], query: string, predicate?: (resource: SchedulerResource, query: string) => boolean): SchedulerResource[];
98
+ declare function createResourceFilter(options?: Partial<ResourceFilterOptions>): ResourceFilterOptions;
99
+ declare function highlightMatch(text: string, query: string): {
100
+ text: string;
101
+ isMatch: boolean;
102
+ }[];
103
+ declare function getFilterStats(filterResult: ResourceFilterResult, totalCount: number): {
104
+ matchCount: number;
105
+ totalCount: number;
106
+ percentage: number;
107
+ };
108
+
109
+ declare function resolveResourceScalePolicy(input: ResourceScalePolicyInput): ResourceScalePolicy;
110
+
111
+ declare function resolveResourceScaleStrategy(input: ResourceScaleStrategyInput): ResourceScaleStrategy;
112
+
113
+ interface AdaptiveGroupingOptions {
114
+ enabled: boolean;
115
+ breakpoint?: number;
116
+ sidebarPosition?: 'left' | 'right';
117
+ sidebarWidth?: number | string;
118
+ showBreadcrumb?: boolean;
119
+ persistSelection?: boolean;
120
+ }
121
+ interface AdaptiveGroupingState {
122
+ isMobile: boolean;
123
+ isSidebarOpen: boolean;
124
+ selectedResourceId: string | number | null;
125
+ selectionPath: (string | number)[];
126
+ }
127
+ interface BreadcrumbItem {
128
+ id: string | number;
129
+ title: string;
130
+ isRoot?: boolean;
131
+ }
132
+ declare const DEFAULT_ADAPTIVE_BREAKPOINT = 768;
133
+ declare const DEFAULT_SIDEBAR_WIDTH = 280;
134
+ declare function createAdaptiveGroupingState(): AdaptiveGroupingState;
135
+ declare function detectMobileMode(viewportWidth: number, breakpoint?: number): boolean;
136
+ declare function getAncestorIds(resourceMap: Map<string | number, SchedulerResource>, resourceId: string | number): (string | number)[];
137
+ declare function selectResource(state: AdaptiveGroupingState, resourceMap: Map<string | number, SchedulerResource>, resourceId: string | number, closeSidebarOnSelect?: boolean): AdaptiveGroupingState;
138
+ declare function buildBreadcrumbPath(resourceMap: Map<string | number, SchedulerResource>, selectionPath: (string | number)[]): BreadcrumbItem[];
139
+ declare function toggleSidebar(state: AdaptiveGroupingState): AdaptiveGroupingState;
140
+ declare function openSidebar(state: AdaptiveGroupingState): AdaptiveGroupingState;
141
+ declare function closeSidebar(state: AdaptiveGroupingState): AdaptiveGroupingState;
142
+ declare function setMobileMode(state: AdaptiveGroupingState, isMobile: boolean): AdaptiveGroupingState;
143
+ declare function navigateBreadcrumb(state: AdaptiveGroupingState, resourceMap: Map<string | number, SchedulerResource>, targetId: string | number): AdaptiveGroupingState;
144
+ declare function getFilteredEventsForResource(events: SchedulerEvent[], resourceId: string | number | null, descendantIds?: (string | number)[]): SchedulerEvent[];
145
+ declare function clearResourceSelection(state: AdaptiveGroupingState): AdaptiveGroupingState;
146
+ declare function getSelectedResource(resourceMap: Map<string | number, SchedulerResource>, resourceId: string | number | null): SchedulerResource | null;
147
+ declare function isResourceInPath(selectionPath: (string | number)[], resourceId: string | number): boolean;
148
+ declare function getSelectionDepth(selectionPath: (string | number)[]): number;
149
+ declare const adaptiveClasses: {
150
+ readonly container: "p-scheduler-adaptive";
151
+ readonly mobile: "p-scheduler-adaptive-mobile";
152
+ readonly desktop: "p-scheduler-adaptive-desktop";
153
+ readonly sidebar: "p-scheduler-adaptive-sidebar";
154
+ readonly sidebarOpen: "p-scheduler-adaptive-sidebar-open";
155
+ readonly sidebarLeft: "p-scheduler-adaptive-sidebar-left";
156
+ readonly sidebarRight: "p-scheduler-adaptive-sidebar-right";
157
+ readonly sidebarOverlay: "p-scheduler-adaptive-sidebar-overlay";
158
+ readonly sidebarHeader: "p-scheduler-adaptive-sidebar-header";
159
+ readonly sidebarBody: "p-scheduler-adaptive-sidebar-body";
160
+ readonly sidebarClose: "p-scheduler-adaptive-sidebar-close";
161
+ readonly breadcrumb: "p-scheduler-adaptive-breadcrumb";
162
+ readonly breadcrumbList: "p-scheduler-adaptive-breadcrumb-list";
163
+ readonly breadcrumbItem: "p-scheduler-adaptive-breadcrumb-item";
164
+ readonly breadcrumbItemWrapper: "p-scheduler-adaptive-breadcrumb-item-wrapper";
165
+ readonly breadcrumbSeparator: "p-scheduler-adaptive-breadcrumb-separator";
166
+ readonly breadcrumbCurrent: "p-scheduler-adaptive-breadcrumb-current";
167
+ readonly menuButton: "p-scheduler-adaptive-menu-button";
168
+ readonly secondaryToolbar: "p-scheduler-adaptive-secondary-toolbar";
169
+ readonly resourceSelected: "p-scheduler-adaptive-resource-selected";
170
+ };
171
+
172
+ export { type AdaptiveGroupingOptions, type AdaptiveGroupingState, type BreadcrumbItem, DEFAULT_ADAPTIVE_BREAKPOINT, DEFAULT_RESOURCE_AREA_WIDTH, DEFAULT_RESOURCE_MIN_ROW_HEIGHT, DEFAULT_RESOURCE_ROW_HEIGHT, DEFAULT_SIDEBAR_WIDTH, type DateResourceGroup, type HierarchicalHeaderCell, type HierarchicalHeaderRow, type ResourceEventGroup, type ResourceFilterResult, type ResourceTreeMutationResult, adaptiveClasses, addResource, addResourceToEvent, addResourceToTree, areResourceIdSetsEqual, assignEventToResource, buildBreadcrumbPath, calculateExpandedRowHeight, calculateResourceColumnLayouts, calculateResourceRowLayouts, clearResourceSelection, closeSidebar, collapseAllResources, collapseResource, countLeafDescendants, countResources, createAdaptiveGroupingState, createResourceFilter, createResourceStore, dedupeResourceIds, detectMobileMode, expandAllResources, expandResource, filterResources, findResourceById, flattenResourceTree, flattenResources, getAllResourceIds, getAncestorIds, getAncestorResources, getChildResources, getEventsForResource, getEventsWithoutResource, getFilterStats, getFilteredEventsForResource, getHierarchicalHeaderRows, getLeafResources, getMaxDepth, getParentResource, getResourceAreaWidth, getResourceAtPosition, getResourceById, getResourceColumnAtPosition, getResourceIdsForEvent, getResourceLabel, getResourcesByIds, getSelectedResource, getSelectionDepth, getTotalResourceHeight, getVisibleResources, groupEventsByDate, groupEventsByResource, groupResourcesByField, hasHierarchy, highlightMatch, isResourceInPath, moveEventToResource, navigateBreadcrumb, openSidebar, removeResource, removeResourceFromEvent, removeResourceFromTree, resolveResourceScalePolicy, resolveResourceScaleStrategy, searchResources, selectResource, setMobileMode, setResourceExpansionInTree, sortResources, toggleResourceExpansion, toggleSidebar, updateResource, updateResourceInTree, upsertResourceById };
@@ -0,0 +1 @@
1
+ export { DEFAULT_ADAPTIVE_BREAKPOINT, DEFAULT_RESOURCE_AREA_WIDTH, DEFAULT_RESOURCE_MIN_ROW_HEIGHT, DEFAULT_RESOURCE_ROW_HEIGHT, DEFAULT_SIDEBAR_WIDTH, adaptiveClasses, addResource, addResourceToEvent, addResourceToTree, areResourceIdSetsEqual, assignEventToResource, buildBreadcrumbPath, calculateExpandedRowHeight, calculateResourceColumnLayouts, calculateResourceRowLayouts, clearResourceSelection, closeSidebar, collapseAllResources, collapseResource, countLeafDescendants, countResources, createAdaptiveGroupingState, createResourceFilter, createResourceStore, dedupeResourceIds, detectMobileMode, expandAllResources, expandResource, filterResources, findResourceById, flattenResourceTree, flattenResources, getAllResourceIds, getAncestorIds, getAncestorResources, getChildResources, getEventsForResource, getEventsWithoutResource, getFilterStats, getFilteredEventsForResource, getHierarchicalHeaderRows, getLeafResources, getMaxDepth, getParentResource, getResourceAreaWidth, getResourceAtPosition, getResourceById, getResourceColumnAtPosition, getResourceIdsForEvent, getResourceLabel, getResourcesByIds, getSelectedResource, getSelectionDepth, getTotalResourceHeight, getVisibleResources, groupEventsByDate, groupEventsByResource, groupResourcesByField, hasHierarchy, highlightMatch, isResourceInPath, moveEventToResource, navigateBreadcrumb, openSidebar, removeResource, removeResourceFromEvent, removeResourceFromTree, resolveResourceScalePolicy, resolveResourceScaleStrategy, searchResources, selectResource, setMobileMode, setResourceExpansionInTree, sortResources, toggleResourceExpansion, toggleSidebar, updateResource, updateResourceInTree, upsertResourceById } from '../chunk-QR2SVYAD.mjs';
@@ -0,0 +1,56 @@
1
+ import { DateRange } from '@primeui/scheduler-types/scheduler';
2
+
3
+ type SelectionMode = 'none' | 'single' | 'multiple' | 'range';
4
+ interface SelectionState {
5
+ selectedDates: Date[];
6
+ selectedRange: DateRange | null;
7
+ selectedTimeRange: DateRange | null;
8
+ }
9
+ interface DateSelectionResult {
10
+ selectedDates: Date[];
11
+ selectedRange: DateRange | null;
12
+ selectedTimeRange: DateRange | null;
13
+ changed: boolean;
14
+ }
15
+ interface TimeSelectionResult {
16
+ selectedDates: Date[];
17
+ selectedRange: DateRange | null;
18
+ selectedTimeRange: DateRange | null;
19
+ changed: boolean;
20
+ }
21
+ interface DragSelectionState {
22
+ isDragging: boolean;
23
+ dragStartDate: Date | null;
24
+ previewRange: DateRange | null;
25
+ }
26
+ interface DragStartResult {
27
+ isDragging: boolean;
28
+ dragStartDate: Date;
29
+ previewRange: DateRange;
30
+ }
31
+ interface DragMoveResult {
32
+ previewRange: DateRange;
33
+ }
34
+ interface DragEndResult {
35
+ selectedDates: Date[];
36
+ selectedRange: DateRange;
37
+ selectedTimeRange: DateRange | null;
38
+ isDragging: false;
39
+ dragStartDate: null;
40
+ previewRange: null;
41
+ }
42
+ declare function handleDateSelection(date: Date, mode: SelectionMode, currentState: SelectionState): DateSelectionResult;
43
+ declare function handleTimeSelection(start: Date, end: Date, mode: SelectionMode): TimeSelectionResult;
44
+ declare function startDragSelection(date: Date): DragStartResult;
45
+ declare function calculateDragRange(startDate: Date, currentDate: Date): DateRange;
46
+ declare function updateDragPreview(startDate: Date, currentDate: Date): DragMoveResult;
47
+ declare function finalizeDragSelection(startDate: Date, endDate: Date): DragEndResult;
48
+ declare function clearSelection(): SelectionState;
49
+ declare function hasSelection(state: SelectionState): boolean;
50
+ declare function isDateSelected(date: Date, selectedDates: Date[]): boolean;
51
+ declare function isDateInSelectionRange(date: Date, range: DateRange | null): boolean;
52
+ declare function isRangeStart(date: Date, range: DateRange | null): boolean;
53
+ declare function isRangeEnd(date: Date, range: DateRange | null): boolean;
54
+ declare function getActiveRange(selectedRange: DateRange | null, previewRange: DateRange | null, isDragging: boolean): DateRange | null;
55
+
56
+ export { type DateSelectionResult as D, type SelectionMode as S, type TimeSelectionResult as T, type DragEndResult as a, type DragMoveResult as b, type DragSelectionState as c, type DragStartResult as d, type SelectionState as e, calculateDragRange as f, clearSelection as g, finalizeDragSelection as h, getActiveRange as i, handleDateSelection as j, handleTimeSelection as k, hasSelection as l, isDateInSelectionRange as m, isDateSelected as n, isRangeEnd as o, isRangeStart as p, startDragSelection as s, updateDragPreview as u };
@@ -0,0 +1,92 @@
1
+ import { SchedulerEvent, BlockedInterval, SchedulerViewType, DensityMode, BusinessHours, BlockedIntervalsOptions, AppointmentSlotsOptions, SchedulerCalendarMode } from '@primeui/scheduler-types/scheduler';
2
+ import { SchedulerResource } from '@primeui/scheduler-types/resource';
3
+ import { P as ParsedEvent } from '../event.utils-QSNdd-3W.mjs';
4
+ import { P as PositionedEvent } from '../event.positioning-BdzAVPk7.mjs';
5
+ import { T as TimedOverlay, c as AppointmentSlotOverlay, b as AppointmentSlotIndicator } from '../overlay-BYM9B6nC.mjs';
6
+ import '../display-format-CLVvRt4I.mjs';
7
+
8
+ interface TimeGridSlotModel {
9
+ time: string;
10
+ minutes: number;
11
+ }
12
+ interface TimeGridAllDayEventLayout {
13
+ event: SchedulerEvent;
14
+ row: number;
15
+ startCol: number;
16
+ endCol: number;
17
+ isContinuationStart: boolean;
18
+ isContinuationEnd: boolean;
19
+ }
20
+ interface TimeGridAllDayWeekLayout {
21
+ positioned: TimeGridAllDayEventLayout[];
22
+ overflowByDay: Record<string, SchedulerEvent[]>;
23
+ visibleRowCount: number;
24
+ gridRowCount: number;
25
+ }
26
+ interface TimeGridPositionedEventResult {
27
+ event: PositionedEvent;
28
+ top: number;
29
+ height: number;
30
+ left: number;
31
+ width: number;
32
+ zIndex: number;
33
+ }
34
+ interface TimeGridViewModelInput {
35
+ currentDate: Date;
36
+ currentView: SchedulerViewType;
37
+ firstDayOfWeek: number;
38
+ events: SchedulerEvent[];
39
+ resources?: SchedulerResource[];
40
+ slotDuration?: number;
41
+ slotMinTime?: string;
42
+ slotMaxTime?: string;
43
+ numberOfDays?: number;
44
+ daysOfWeek?: number[];
45
+ density?: DensityMode;
46
+ now?: Date;
47
+ nowIndicator?: boolean;
48
+ resolvedDisplayTimezone?: string;
49
+ showBusinessHours?: boolean;
50
+ businessHours?: BusinessHours;
51
+ blockedIntervals?: BlockedIntervalsOptions;
52
+ appointmentSlots?: AppointmentSlotsOptions;
53
+ locale?: string;
54
+ calendar?: SchedulerCalendarMode;
55
+ }
56
+ interface TimeGridViewModel {
57
+ days: Date[];
58
+ resources: SchedulerResource[];
59
+ slotDuration: number;
60
+ slotMinTime: string;
61
+ slotMaxTime: string;
62
+ slotHeight: number;
63
+ totalSlotCount: number;
64
+ totalHeight: number;
65
+ timeSlots: TimeGridSlotModel[];
66
+ parsedEvents: ParsedEvent[];
67
+ usesSpanningAllDayRow: boolean;
68
+ hasAllDayEvents: boolean;
69
+ nowIndicatorTop: number | null;
70
+ showNowIndicator: boolean;
71
+ getTimedEventsForColumn: (date: Date, resourceId?: string | number) => SchedulerEvent[];
72
+ getAllDayEventsForDay: (date: Date, resourceId?: string | number) => SchedulerEvent[];
73
+ getVisibleAllDayEventsForDay: (date: Date, resourceId?: string | number) => SchedulerEvent[];
74
+ getOverflowAllDayEventsForDay: () => SchedulerEvent[];
75
+ getPositionedTimedEvent: (event: SchedulerEvent, date: Date, resourceId?: string | number) => TimeGridPositionedEventResult | null;
76
+ getEventTopPosition: (event: SchedulerEvent) => number;
77
+ getEventHeight: (event: SchedulerEvent) => number;
78
+ getOverlapLayout: (event: SchedulerEvent, date: Date, resourceId?: string | number) => {
79
+ left: string;
80
+ width: string;
81
+ zIndex: number;
82
+ };
83
+ getWeekAllDayLayout: (resourceId?: string | number) => TimeGridAllDayWeekLayout;
84
+ getBusinessHoursOverlays: (date: Date) => Array<Record<string, string>>;
85
+ getBlockedIntervalOverlays: (date: Date, resourceId?: string | number) => TimedOverlay[];
86
+ getBlockedIntervalStyle: (interval: BlockedInterval, date: Date, resourceId?: string | number) => Record<string, string> | null;
87
+ getAppointmentSlotOverlaysForDay: (date: Date, resourceId?: string | number) => AppointmentSlotOverlay[];
88
+ getAppointmentSlotIndicatorsForDay: (date: Date, resourceId?: string | number) => AppointmentSlotIndicator[];
89
+ }
90
+ declare function buildTimeGridViewModel(input: TimeGridViewModelInput): TimeGridViewModel;
91
+
92
+ export { type TimeGridAllDayEventLayout, type TimeGridAllDayWeekLayout, type TimeGridPositionedEventResult, type TimeGridSlotModel, type TimeGridViewModel, type TimeGridViewModelInput, buildTimeGridViewModel };
@@ -0,0 +1,13 @@
1
+ export { buildTimeGridViewModel } from '../chunk-F5W5HD7S.mjs';
2
+ import '../chunk-6VYWVIGM.mjs';
3
+ import '../chunk-2B3YLWHA.mjs';
4
+ import '../chunk-AAVM7UCG.mjs';
5
+ import '../chunk-C7ADJGNV.mjs';
6
+ import '../chunk-NZGJN7HG.mjs';
7
+ import '../chunk-HPC5B3AR.mjs';
8
+ import '../chunk-5KORIWDT.mjs';
9
+ import '../chunk-FIBAZFC4.mjs';
10
+ import '../chunk-QDMZBJDV.mjs';
11
+ import '../chunk-WFUJWDST.mjs';
12
+ import '../chunk-TNKJPFGI.mjs';
13
+ import '../chunk-DYW6WUHE.mjs';
@@ -0,0 +1,165 @@
1
+ import { SchedulerViewType, SchedulerCalendarMode, SchedulerEvent } from '@primeui/scheduler-types/scheduler';
2
+ import { SchedulerResource, FlattenedResource, ResourceRowLayout } from '@primeui/scheduler-types/resource';
3
+ import { TimelineCell, TimelineEventPosition } from '@primeui/scheduler-types/timeline';
4
+
5
+ declare const DEFAULT_TIMELINE_EVENT_MIN_HEIGHT = 36;
6
+ declare const TIMELINE_LANE_GAP = 2;
7
+ declare const TIMELINE_LANE_BASE_PADDING = 4;
8
+ type TimelineResourceRowHeightMode = 'auto' | 'fixed';
9
+ interface ResolveTimelineResourceRowHeightInput {
10
+ laneCount: number;
11
+ eventHeight?: number;
12
+ eventGap?: number;
13
+ minRowHeight?: number;
14
+ mode?: TimelineResourceRowHeightMode;
15
+ }
16
+ interface TimelineCellModel {
17
+ startDate: Date;
18
+ endDate: Date;
19
+ width: number;
20
+ label: string;
21
+ isToday: boolean;
22
+ isWeekend: boolean;
23
+ }
24
+ interface TimelineHeaderCellModel {
25
+ label: string;
26
+ width: number;
27
+ left: number;
28
+ startDate: Date;
29
+ endDate: Date;
30
+ }
31
+ interface TimelineHeaderTierModel {
32
+ cells: TimelineHeaderCellModel[];
33
+ }
34
+ interface TimelineLabelFormatters {
35
+ hour: (date: Date) => string;
36
+ day: (date: Date) => string;
37
+ month: (date: Date) => string;
38
+ monthYear: (date: Date) => string;
39
+ quarter: (quarterIndex: number) => string;
40
+ }
41
+ interface BuildTimelineCellsInput {
42
+ view: SchedulerViewType;
43
+ start: Date;
44
+ end: Date;
45
+ now: Date;
46
+ slotsPerDay: number;
47
+ slotDurationMin: number;
48
+ slotWidth: number;
49
+ minTimeMin: number;
50
+ dayWidth: number;
51
+ timezone?: string;
52
+ locale?: string;
53
+ calendar?: SchedulerCalendarMode;
54
+ labels: Pick<TimelineLabelFormatters, 'hour' | 'day' | 'month'>;
55
+ }
56
+ declare function resolveTimelineEventMinHeight(value: number | undefined): number;
57
+ declare function getTimelineLaneStackHeight(laneCount: number, eventMinHeight: number, eventGap?: number): number;
58
+ declare function resolveTimelineResourceRowHeight(input: ResolveTimelineResourceRowHeightInput): number;
59
+ declare function isTimelineMonthGranularityView(view: SchedulerViewType): boolean;
60
+ declare function getTimelineVisibleDayStarts(view: SchedulerViewType, start: Date, end: Date): Date[];
61
+ declare function buildTimelineCells(input: BuildTimelineCellsInput): TimelineCellModel[];
62
+ declare function buildTimelineHeaderTiers(input: {
63
+ view: SchedulerViewType;
64
+ cells: TimelineCellModel[];
65
+ visibleDayStarts: Date[];
66
+ dayWidth: number;
67
+ labels: Pick<TimelineLabelFormatters, 'day' | 'monthYear' | 'quarter'>;
68
+ locale?: string;
69
+ calendar?: SchedulerCalendarMode;
70
+ }): TimelineHeaderTierModel[];
71
+ declare function filterTimelineLaneEvents(events: SchedulerEvent[], input: {
72
+ resourceId?: string | number;
73
+ matchIds?: Set<string | number> | null;
74
+ viewStart: Date;
75
+ viewEnd: Date;
76
+ }): SchedulerEvent[];
77
+ declare function timeToTimelinePixels(input: {
78
+ date: Date;
79
+ view: SchedulerViewType;
80
+ cells: TimelineCellModel[];
81
+ visibleDayStarts: Date[];
82
+ dayWidth: number;
83
+ minTimeMin: number;
84
+ visibleMinutesPerDay: number;
85
+ totalWidth: number;
86
+ }): number;
87
+ declare function getTimelineEventRect(event: SchedulerEvent, input: Omit<Parameters<typeof timeToTimelinePixels>[0], 'date'> & {
88
+ fallbackDurationMinutes: number;
89
+ }): {
90
+ left: number;
91
+ width: number;
92
+ };
93
+ declare function computeTimelineLaneAssignment(events: SchedulerEvent[], stackingMode?: 'stack' | 'collapse' | 'expand'): {
94
+ assignment: Map<string | number, number>;
95
+ laneCount: number;
96
+ };
97
+
98
+ interface TimelineViewModelVirtualRange {
99
+ startIndex: number;
100
+ endIndex: number;
101
+ startOffset: number;
102
+ }
103
+ interface TimelineViewModelInput {
104
+ view: SchedulerViewType;
105
+ viewStart: Date;
106
+ viewEnd: Date;
107
+ now: Date;
108
+ events: SchedulerEvent[];
109
+ resources?: SchedulerResource[];
110
+ visibleResources?: FlattenedResource[];
111
+ isResourceExpanded?: (resourceId: string | number) => boolean;
112
+ showAggregatedEvents?: boolean;
113
+ rowAutoHeight?: boolean;
114
+ resourceRowHeight?: number;
115
+ timelineEventMinHeight?: number;
116
+ stackingMode?: 'stack' | 'collapse' | 'expand';
117
+ slotDurationMin: number;
118
+ slotWidth: number;
119
+ minTimeMin: number;
120
+ maxTimeMin: number;
121
+ timezone?: string;
122
+ locale?: string;
123
+ calendar?: SchedulerCalendarMode;
124
+ labels: TimelineLabelFormatters;
125
+ virtualRange?: TimelineViewModelVirtualRange | null;
126
+ }
127
+ interface TimelineLaneModel {
128
+ resourceId?: string | number;
129
+ events: SchedulerEvent[];
130
+ assignment: Map<string | number, number>;
131
+ laneCount: number;
132
+ aggregateEvents: SchedulerEvent[];
133
+ aggregateCount: number;
134
+ isAggregated: boolean;
135
+ }
136
+ interface TimelineViewModel {
137
+ cells: TimelineCellModel[];
138
+ visibleDayStarts: Date[];
139
+ effectiveViewStart: Date;
140
+ effectiveViewEnd: Date;
141
+ totalWidth: number;
142
+ visibleMinutesPerDay: number;
143
+ resources: SchedulerResource[];
144
+ visibleResources: FlattenedResource[];
145
+ headerTiers: TimelineHeaderTierModel[];
146
+ visibleCells: TimelineCellModel[];
147
+ visibleHeaderTiers: TimelineHeaderTierModel[];
148
+ laneModels: Map<string | number | undefined, TimelineLaneModel>;
149
+ resourceLayouts: ResourceRowLayout[];
150
+ totalResourceHeight: number;
151
+ virtualScrollCells: TimelineCell[];
152
+ virtualScrollEvents: TimelineEventPosition[];
153
+ getEventsForLane: (resourceId?: string | number) => SchedulerEvent[];
154
+ getAggregateEvents: (resourceId: string | number | undefined) => SchedulerEvent[];
155
+ getAggregateCount: (resourceId: string | number | undefined) => number;
156
+ getEventLeft: (event: SchedulerEvent) => number;
157
+ getEventWidth: (event: SchedulerEvent) => number;
158
+ getEventLane: (event: SchedulerEvent, resourceId?: string | number) => number;
159
+ getLaneCount: (resourceId?: string | number) => number;
160
+ isAggregatedRow: (resourceId: string | number | undefined) => boolean;
161
+ timeToPixels: (date: Date) => number;
162
+ }
163
+ declare function buildTimelineViewModel(input: TimelineViewModelInput): TimelineViewModel;
164
+
165
+ export { type BuildTimelineCellsInput, DEFAULT_TIMELINE_EVENT_MIN_HEIGHT, type ResolveTimelineResourceRowHeightInput, TIMELINE_LANE_BASE_PADDING, TIMELINE_LANE_GAP, type TimelineCellModel, type TimelineHeaderCellModel, type TimelineHeaderTierModel, type TimelineLabelFormatters, type TimelineLaneModel, type TimelineResourceRowHeightMode, type TimelineViewModel, type TimelineViewModelInput, type TimelineViewModelVirtualRange, buildTimelineCells, buildTimelineHeaderTiers, buildTimelineViewModel, computeTimelineLaneAssignment, filterTimelineLaneEvents, getTimelineEventRect, getTimelineLaneStackHeight, getTimelineVisibleDayStarts, isTimelineMonthGranularityView, resolveTimelineEventMinHeight, resolveTimelineResourceRowHeight, timeToTimelinePixels };
@@ -0,0 +1,6 @@
1
+ export { DEFAULT_TIMELINE_EVENT_MIN_HEIGHT, TIMELINE_LANE_BASE_PADDING, TIMELINE_LANE_GAP, buildTimelineCells, buildTimelineHeaderTiers, buildTimelineViewModel, computeTimelineLaneAssignment, filterTimelineLaneEvents, getTimelineEventRect, getTimelineLaneStackHeight, getTimelineVisibleDayStarts, isTimelineMonthGranularityView, resolveTimelineEventMinHeight, resolveTimelineResourceRowHeight, timeToTimelinePixels } from '../chunk-KQGRXTP5.mjs';
2
+ import '../chunk-QDMZBJDV.mjs';
3
+ import '../chunk-WFUJWDST.mjs';
4
+ import '../chunk-TNKJPFGI.mjs';
5
+ import '../chunk-DYW6WUHE.mjs';
6
+ import '../chunk-QR2SVYAD.mjs';
@@ -0,0 +1,69 @@
1
+ import { SchedulerEvent, DragDelta, EventDragState, DragConstraints } from '@primeui/scheduler-types/scheduler';
2
+ import { SchedulerCalendarInteractionOptions } from './calendar/index.mjs';
3
+
4
+ declare const DEFAULT_DRAG_MIN_DISTANCE = 5;
5
+ declare const DEFAULT_SNAP_DURATION = 15;
6
+ declare function createDragState(event: SchedulerEvent, startX: number, startY: number, offsetX: number, offsetY: number): EventDragState;
7
+ declare function updateDragState(state: EventDragState, currentX: number, currentY: number, minDistance?: number): EventDragState;
8
+ declare function snapToSlot(minutes: number, slotDuration: number): number;
9
+ declare function snapTime(date: Date, slotDuration: number): Date;
10
+ declare function calculateTimeDelta(pixelDelta: number, slotHeight: number, slotDuration: number, snapDuration?: number): number;
11
+ declare function getSchedulerTimedInteractionDeltaMs(input: {
12
+ pixelDelta: number;
13
+ slotHeight: number;
14
+ slotDuration: number;
15
+ snapDuration: number;
16
+ }): number;
17
+ interface SchedulerDropCalendarOptions extends SchedulerCalendarInteractionOptions {
18
+ }
19
+ interface SchedulerEventDropCandidateInput extends SchedulerDropCalendarOptions {
20
+ source: SchedulerEvent;
21
+ date: Date;
22
+ resourceId?: string | number;
23
+ preserveTime?: boolean;
24
+ }
25
+ interface SchedulerEventDropCandidate {
26
+ next: SchedulerEvent;
27
+ nextStart: Date;
28
+ nextEnd: Date;
29
+ sourceStart: Date;
30
+ targetResourceId?: string | number;
31
+ delta: DragDelta;
32
+ }
33
+ declare function getSchedulerEventDropDelta(sourceStart: Date, nextStart: Date, options?: SchedulerDropCalendarOptions): DragDelta;
34
+ declare function createSchedulerEventDropCandidate({ source, date, resourceId, preserveTime, calendar, locale, view }: SchedulerEventDropCandidateInput): SchedulerEventDropCandidate;
35
+ declare function calculateDayDelta(pixelDelta: number, columnWidth: number): number;
36
+ declare function applyDeltaToEvent(event: SchedulerEvent, delta: DragDelta, calendarOptions?: SchedulerCalendarInteractionOptions): SchedulerEvent;
37
+ declare function validateDragPosition(event: SchedulerEvent, delta: DragDelta, constraints: DragConstraints, allEvents: SchedulerEvent[]): {
38
+ valid: boolean;
39
+ reason?: string;
40
+ };
41
+ declare function findOverlappingEvents(event: SchedulerEvent, allEvents: SchedulerEvent[]): SchedulerEvent[];
42
+ declare function isEventDraggable(event: SchedulerEvent, globalEditable?: boolean, eventStartEditable?: boolean): boolean;
43
+ declare function getTimeFromYPosition(yPosition: number, date: Date, slotMinTime: string, slotDuration: number, slotHeight: number): Date;
44
+ declare function getYPositionFromTime(date: Date, slotMinTime: string, slotDuration: number, slotHeight: number): number;
45
+ declare function getDayIndexFromX(x: number, columnWidth: number, numColumns: number): number;
46
+ declare function clampTime(date: Date, slotMinTime: string, slotMaxTime: string): Date;
47
+ declare function calculateDragDelta(state: EventDragState, columnWidth: number, slotHeight: number, slotDuration: number): DragDelta;
48
+
49
+ interface SchedulerPointerInput {
50
+ clientX: number;
51
+ clientY: number;
52
+ button?: number;
53
+ altKey?: boolean;
54
+ ctrlKey?: boolean;
55
+ metaKey?: boolean;
56
+ shiftKey?: boolean;
57
+ }
58
+ interface SchedulerRectInput {
59
+ left: number;
60
+ top: number;
61
+ width?: number;
62
+ height: number;
63
+ }
64
+ declare function getPointerCoords(input: SchedulerPointerInput): {
65
+ clientX: number;
66
+ clientY: number;
67
+ };
68
+
69
+ export { DEFAULT_DRAG_MIN_DISTANCE as D, type SchedulerDropCalendarOptions as S, DEFAULT_SNAP_DURATION as a, type SchedulerEventDropCandidate as b, type SchedulerEventDropCandidateInput as c, type SchedulerPointerInput as d, type SchedulerRectInput as e, applyDeltaToEvent as f, calculateDayDelta as g, calculateDragDelta as h, calculateTimeDelta as i, clampTime as j, createDragState as k, createSchedulerEventDropCandidate as l, findOverlappingEvents as m, getDayIndexFromX as n, getPointerCoords as o, getSchedulerEventDropDelta as p, getSchedulerTimedInteractionDeltaMs as q, getTimeFromYPosition as r, getYPositionFromTime as s, isEventDraggable as t, snapTime as u, snapToSlot as v, updateDragState as w, validateDragPosition as x };