@fullcalendar/timeline 7.0.0-beta.3 → 7.0.0-beta.5

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/esm/index.d.ts ADDED
@@ -0,0 +1,25 @@
1
+ import { PluginDef } from '@fullcalendar/core';
2
+ import '@fullcalendar/premium-common';
3
+ import '@fullcalendar/scrollgrid';
4
+ import { RawOptionsFromRefiners, RefinedOptionsFromRefiners, Identity } from '@fullcalendar/core/internal';
5
+
6
+ declare const OPTION_REFINERS: {
7
+ timelineTopClass: Identity<string>;
8
+ timelineBottomClass: Identity<string>;
9
+ };
10
+ type TimelineOptionRefiners = typeof OPTION_REFINERS;
11
+ type TimelineOptions = RawOptionsFromRefiners<TimelineOptionRefiners>;
12
+ type TimelineOptionsRefined = RefinedOptionsFromRefiners<TimelineOptionRefiners>;
13
+
14
+ declare module '@fullcalendar/core/internal' {
15
+ interface BaseOptions extends TimelineOptions {
16
+ }
17
+ interface BaseOptionsRefined extends TimelineOptionsRefined {
18
+ }
19
+ }
20
+ //# sourceMappingURL=ambient.d.ts.map
21
+
22
+ declare const _default: PluginDef;
23
+ //# sourceMappingURL=index.d.ts.map
24
+
25
+ export { TimelineOptions, _default as default };
@@ -1,15 +1,22 @@
1
- import { createPlugin } from '@fullcalendar/core/index.js';
2
- import premiumCommonPlugin from '@fullcalendar/premium-common/index.js';
1
+ import { createPlugin } from '@fullcalendar/core';
2
+ import premiumCommonPlugin from '@fullcalendar/premium-common';
3
3
  import { TimelineView } from './internal.js';
4
- import '@fullcalendar/core/internal.js';
5
- import '@fullcalendar/core/preact.js';
6
- import '@fullcalendar/scrollgrid/internal.js';
4
+ import { identity } from '@fullcalendar/core/internal';
5
+ import '@fullcalendar/core/internal-classnames';
6
+ import '@fullcalendar/core/preact';
7
+ import '@fullcalendar/scrollgrid/internal';
8
+
9
+ const OPTION_REFINERS = {
10
+ timelineTopClass: identity,
11
+ timelineBottomClass: identity,
12
+ };
7
13
 
8
14
  var index = createPlugin({
9
15
  name: '@fullcalendar/timeline',
10
- premiumReleaseDate: '2024-12-19',
16
+ premiumReleaseDate: '2025-12-20',
11
17
  deps: [premiumCommonPlugin],
12
18
  initialView: 'timelineDay',
19
+ optionRefiners: OPTION_REFINERS,
13
20
  views: {
14
21
  timeline: {
15
22
  component: TimelineView,
@@ -1,10 +1,10 @@
1
- import { DateComponent, ViewProps, Hit, DateRange, DateMarker, DateProfile, DateEnv, BaseOptionsRefined, DateProfileGenerator, Slicer, CoordRange, EventStore, EventUiHash, DateSpan, EventInteractionState, BaseComponent, EventRangeProps, CoordSpan, SegGroup } from '@fullcalendar/core/internal';
1
+ import { DateComponent, ViewProps, Hit, DateRange, DateMarker, DateProfile, DateEnv, BaseOptionsRefined, DateProfileGenerator, Slicer, CoordRange, BaseComponent, EventRangeProps, CoordSpan, SegGroup, EventSegUiInteractionState } from '@fullcalendar/core/internal';
2
2
  import { createElement, Ref } from '@fullcalendar/core/preact';
3
3
  import { Duration } from '@fullcalendar/core';
4
4
 
5
5
  interface TimelineViewState {
6
+ totalWidth?: number;
6
7
  clientWidth?: number;
7
- endScrollbarWidth?: number;
8
8
  slotInnerWidth?: number;
9
9
  }
10
10
  declare class TimelineView extends DateComponent<ViewProps, TimelineViewState> {
@@ -17,24 +17,23 @@ declare class TimelineView extends DateComponent<ViewProps, TimelineViewState> {
17
17
  private bodyEl?;
18
18
  private slotWidth?;
19
19
  private headerRowInnerWidthMap;
20
- private bodySlotInnerWidth?;
21
20
  private syncedScroller;
22
21
  private scrollTime;
22
+ private slicer;
23
23
  render(): createElement.JSX.Element;
24
24
  componentDidMount(): void;
25
25
  componentDidUpdate(prevProps: ViewProps): void;
26
26
  componentWillUnmount(): void;
27
- handleBodySlotInnerWidth: (innerWidth: number) => void;
28
27
  handleSlotInnerWidths: () => void;
28
+ handleTotalWidth: (totalWidth: number) => void;
29
29
  handleClientWidth: (clientWidth: number) => void;
30
- handleEndScrollbarWidth: (endScrollbarWidth: number) => void;
31
30
  private updateSyncedScroller;
32
31
  private resetScroll;
33
- private handleTimeScroll;
34
- private updateScroll;
35
- private clearScroll;
32
+ private handleTimeScrollRequest;
33
+ private handleTimeScrollEnd;
34
+ private applyTimeScroll;
36
35
  handeBodyEl: (el: HTMLElement | null) => void;
37
- queryHit(positionLeft: number, positionTop: number, elWidth: number, elHeight: number): Hit;
36
+ queryHit(isRtl: boolean, positionLeft: number, positionTop: number, elWidth: number, elHeight: number): Hit;
38
37
  }
39
38
 
40
39
  interface TimelineDateProfile {
@@ -44,13 +43,12 @@ interface TimelineDateProfile {
44
43
  headerFormats: any;
45
44
  isTimeScale: boolean;
46
45
  largeUnit: string;
47
- emphasizeWeeks: boolean;
48
46
  snapDuration: Duration;
49
47
  snapsPerSlot: number;
50
48
  normalizedRange: DateRange;
51
49
  timeWindowMs: number;
52
50
  slotDates: DateMarker[];
53
- isWeekStarts: boolean[];
51
+ slotDatesMajor: boolean[];
54
52
  snapDiffToIndex: number[];
55
53
  snapIndexToDiff: number[];
56
54
  snapCnt: number;
@@ -59,10 +57,10 @@ interface TimelineDateProfile {
59
57
  }
60
58
  interface TimelineHeaderCellData {
61
59
  date: DateMarker;
60
+ isMajor: boolean;
62
61
  text: string;
63
62
  rowUnit: string;
64
63
  colspan: number;
65
- isWeekStart: boolean;
66
64
  }
67
65
  declare function buildTimelineDateProfile(dateProfile: DateProfile, dateEnv: DateEnv, allOptions: BaseOptionsRefined, dateProfileGenerator: DateProfileGenerator): TimelineDateProfile;
68
66
 
@@ -82,52 +80,50 @@ declare class TimelineLaneSlicer extends Slicer<TimelineRange, [
82
80
  sliceRange(origRange: DateRange, dateProfile: DateProfile, dateProfileGenerator: DateProfileGenerator, tDateProfile: TimelineDateProfile, dateEnv: DateEnv): TimelineRange[];
83
81
  }
84
82
 
85
- interface TimelineLaneProps {
83
+ interface TimelineFgProps {
86
84
  dateProfile: DateProfile;
87
85
  tDateProfile: TimelineDateProfile;
88
86
  nowDate: DateMarker;
89
87
  todayRange: DateRange;
90
- nextDayThreshold: Duration;
91
- eventStore: EventStore | null;
92
- eventUiBases: EventUiHash;
93
- businessHours: EventStore | null;
94
- dateSelection: DateSpan | null;
95
- eventDrag: EventInteractionState | null;
96
- eventResize: EventInteractionState | null;
88
+ fgEventSegs: (TimelineRange & EventRangeProps)[];
89
+ eventDrag: EventSegUiInteractionState<TimelineRange> | null;
90
+ eventResize: EventSegUiInteractionState<TimelineRange> | null;
97
91
  eventSelection: string;
98
92
  resourceId?: string;
99
93
  slotWidth: number | undefined;
94
+ heightRef?: Ref<number>;
100
95
  }
101
- interface TimelineLaneState {
96
+ interface TimelineFgState {
102
97
  segHeightRev?: string;
103
98
  moreLinkHeightRev?: string;
104
99
  }
105
- declare class TimelineLane extends BaseComponent<TimelineLaneProps, TimelineLaneState> {
100
+ declare class TimelineFg extends BaseComponent<TimelineFgProps, TimelineFgState> {
106
101
  private sortEventSegs;
107
102
  private segHeightRefMap;
108
103
  private moreLinkHeightRefMap;
109
- private slicer;
104
+ private totalHeight?;
105
+ private firedTotalHeight?;
110
106
  render(): createElement.JSX.Element;
111
107
  renderFgSegs(segs: (TimelineRange & EventRangeProps)[], segHorizontals: {
112
108
  [instanceId: string]: CoordSpan;
113
- }, segTops: Map<string, number>, forcedInvisibleMap: {
114
- [instanceId: string]: any;
115
- }, hiddenGroups: SegGroup<TimelineCoordRange>[], hiddenGroupTops: Map<string, number>, isDragging: boolean, isResizing: boolean, isDateSelecting: boolean): createElement.JSX.Element;
109
+ }, segTops: Map<string, number>, hiddenGroups: SegGroup<TimelineCoordRange>[], hiddenGroupTops: Map<string, number>, isMirror: boolean): createElement.JSX.Element;
116
110
  private handleMoreLinkHeights;
117
111
  private handleSegHeights;
112
+ componentDidUpdate(): void;
113
+ componentWillUnmount(): void;
118
114
  }
119
115
 
120
- interface TimelineLaneBgProps {
116
+ interface TimelineBgProps {
121
117
  tDateProfile: TimelineDateProfile;
122
118
  nowDate: DateMarker;
123
119
  todayRange: DateRange;
124
120
  bgEventSegs: (TimelineRange & EventRangeProps)[] | null;
125
121
  businessHourSegs: (TimelineRange & EventRangeProps)[] | null;
126
122
  dateSelectionSegs: (TimelineRange & EventRangeProps)[];
127
- eventResizeSegs: (TimelineRange & EventRangeProps)[];
123
+ eventResizeSegs: (TimelineRange & EventRangeProps)[] | null;
128
124
  slotWidth: number | undefined;
129
125
  }
130
- declare class TimelineLaneBg extends BaseComponent<TimelineLaneBgProps> {
126
+ declare class TimelineBg extends BaseComponent<TimelineBgProps> {
131
127
  render(): createElement.JSX.Element;
132
128
  renderSegs(segs: (TimelineRange & EventRangeProps)[], fillType: string): createElement.JSX.Element;
133
129
  }
@@ -139,30 +135,15 @@ interface TimelineSlatsProps {
139
135
  todayRange: DateRange;
140
136
  height?: number;
141
137
  slotWidth: number | undefined;
142
- innerWidthRef?: Ref<number>;
143
138
  }
144
139
  declare class TimelineSlats extends BaseComponent<TimelineSlatsProps> {
145
- private innerWidthRefMap;
146
140
  render(): createElement.JSX.Element;
147
- handleInnerWidths: () => void;
148
141
  }
149
142
 
150
- declare function createVerticalStyle(props: CoordSpan | undefined): {
151
- top: number;
152
- height: number;
153
- } | undefined;
154
- declare function createHorizontalStyle(// TODO: DRY up?
155
- props: CoordSpan | undefined, isRtl: boolean): {
156
- left: number;
157
- width: number;
158
- } | {
159
- right: number;
160
- width: number;
161
- } | undefined;
162
143
  declare function computeSlotWidth(slatCnt: number, slatsPerLabel: number, slatMinWidth: number | undefined, labelInnerWidth: number | undefined, viewportWidth: number | undefined): [
163
144
  canvasWidth: number | undefined,
164
145
  slatWidth: number | undefined,
165
- slatLiquid: boolean
146
+ slotLiquid: boolean
166
147
  ];
167
148
  declare function timeToCoord(// pixels
168
149
  time: Duration, dateEnv: DateEnv, dateProfile: DateProfile, tDateProfile: TimelineDateProfile, slowWidth: number): number;
@@ -173,13 +154,15 @@ interface TimelineHeaderRowProps {
173
154
  nowDate: DateMarker;
174
155
  todayRange: DateRange;
175
156
  rowLevel: number;
176
- isLastRow: boolean;
177
157
  cells: TimelineHeaderCellData[];
178
158
  innerHeighRef?: Ref<number>;
179
159
  innerWidthRef?: Ref<number>;
180
160
  slotWidth: number | undefined;
181
161
  }
182
- declare class TimelineHeaderRow extends BaseComponent<TimelineHeaderRowProps> {
162
+ interface TimelineHeaderRowState {
163
+ innerHeight?: number;
164
+ }
165
+ declare class TimelineHeaderRow extends BaseComponent<TimelineHeaderRowProps, TimelineHeaderRowState> {
183
166
  private innerWidthRefMap;
184
167
  private innerHeightRefMap;
185
168
  render(): createElement.JSX.Element;
@@ -206,4 +189,6 @@ declare class TimelineNowIndicatorLine extends BaseComponent<TimelineNowIndicato
206
189
  render(): createElement.JSX.Element;
207
190
  }
208
191
 
209
- export { TimelineDateProfile, TimelineHeaderRow, TimelineLane, TimelineLaneBg, TimelineLaneProps, TimelineLaneSlicer, TimelineNowIndicatorArrow, TimelineNowIndicatorLine, TimelineRange, TimelineSlats, TimelineView, buildTimelineDateProfile, computeSlotWidth, createHorizontalStyle, createVerticalStyle, timeToCoord };
192
+ declare function getTimelineSlotEl(parentEl: HTMLElement, index: number): HTMLElement;
193
+
194
+ export { TimelineBg, TimelineDateProfile, TimelineFg, TimelineHeaderRow, TimelineLaneSlicer, TimelineNowIndicatorArrow, TimelineNowIndicatorLine, TimelineRange, TimelineSlats, TimelineView, buildTimelineDateProfile, computeSlotWidth, getTimelineSlotEl, timeToCoord };