@fullcalendar/timeline 6.1.15 → 7.0.0-beta.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.
package/internal.d.ts CHANGED
@@ -1,7 +1,44 @@
1
- import { DateRange, DateMarker, DateProfile, DateEnv, BaseOptionsRefined, DateProfileGenerator, PositionCache, SegSpan, DateComponent, ViewProps, Seg, Slicer, EventStore, EventUiHash, DateSpan, EventInteractionState, BaseComponent, ScrollRequest } from '@fullcalendar/core/internal';
2
- import { createElement, RefObject, VNode } from '@fullcalendar/core/preact';
1
+ import { DateComponent, ViewProps, Hit, DateRange, DateMarker, DateProfile, DateEnv, BaseOptionsRefined, DateProfileGenerator, Seg, Slicer, EventStore, EventUiHash, DateSpan, EventInteractionState, BaseComponent, SegGroup, SegSpan } from '@fullcalendar/core/internal';
2
+ import { createElement, Ref } from '@fullcalendar/core/preact';
3
3
  import { Duration, CssDimValue } from '@fullcalendar/core';
4
4
 
5
+ interface TimelineViewState {
6
+ scrollerWidth?: number;
7
+ leftScrollbarWidth?: number;
8
+ rightScrollbarWidth?: number;
9
+ slotInnerWidth?: number;
10
+ }
11
+ declare class TimelineView extends DateComponent<ViewProps, TimelineViewState> {
12
+ private buildTimelineDateProfile;
13
+ private computeSlotWidth;
14
+ private headerScrollerRef;
15
+ private bodyScrollerRef;
16
+ private footerScrollerRef;
17
+ private tDateProfile?;
18
+ private bodyEl?;
19
+ private slotWidth?;
20
+ private headerRowInnerWidthMap;
21
+ private bodySlotInnerWidth?;
22
+ private syncedScroller;
23
+ private scrollTime;
24
+ render(): createElement.JSX.Element;
25
+ componentDidMount(): void;
26
+ componentDidUpdate(prevProps: ViewProps): void;
27
+ componentWillUnmount(): void;
28
+ handleBodySlotInnerWidth: (innerWidth: number) => void;
29
+ handleSlotInnerWidths: () => void;
30
+ handleScrollerWidth: (scrollerWidth: number) => void;
31
+ handleLeftScrollbarWidth: (leftScrollbarWidth: number) => void;
32
+ handleRightScrollbarWidth: (rightScrollbarWidth: number) => void;
33
+ private updateSyncedScroller;
34
+ private resetScroll;
35
+ private handleTimeScroll;
36
+ private updateScroll;
37
+ private clearScroll;
38
+ handeBodyEl: (el: HTMLElement | null) => void;
39
+ queryHit(positionLeft: number, positionTop: number, elWidth: number, elHeight: number): Hit;
40
+ }
41
+
5
42
  interface TimelineDateProfile {
6
43
  labelInterval: Duration;
7
44
  slotDuration: Duration;
@@ -20,9 +57,9 @@ interface TimelineDateProfile {
20
57
  snapIndexToDiff: number[];
21
58
  snapCnt: number;
22
59
  slotCnt: number;
23
- cellRows: TimelineHeaderCell[][];
60
+ cellRows: TimelineHeaderCellData[][];
24
61
  }
25
- interface TimelineHeaderCell {
62
+ interface TimelineHeaderCellData {
26
63
  date: DateMarker;
27
64
  text: string;
28
65
  rowUnit: string;
@@ -31,54 +68,6 @@ interface TimelineHeaderCell {
31
68
  }
32
69
  declare function buildTimelineDateProfile(dateProfile: DateProfile, dateEnv: DateEnv, allOptions: BaseOptionsRefined, dateProfileGenerator: DateProfileGenerator): TimelineDateProfile;
33
70
 
34
- declare class TimelineCoords {
35
- slatRootEl: HTMLElement;
36
- dateProfile: DateProfile;
37
- private tDateProfile;
38
- private dateEnv;
39
- isRtl: boolean;
40
- outerCoordCache: PositionCache;
41
- innerCoordCache: PositionCache;
42
- constructor(slatRootEl: HTMLElement, // okay to expose?
43
- slatEls: HTMLElement[], dateProfile: DateProfile, tDateProfile: TimelineDateProfile, dateEnv: DateEnv, isRtl: boolean);
44
- isDateInRange(date: DateMarker): boolean;
45
- dateToCoord(date: DateMarker): number;
46
- rangeToCoords(range: DateRange): SegSpan;
47
- durationToCoord(duration: Duration): number;
48
- coordFromLeft(coord: number): number;
49
- computeDateSnapCoverage(date: DateMarker): number;
50
- }
51
- declare function coordToCss(hcoord: number | null, isRtl: boolean): {
52
- left: CssDimValue;
53
- right: CssDimValue;
54
- };
55
- declare function coordsToCss(hcoords: SegSpan | null, isRtl: boolean): {
56
- left: CssDimValue;
57
- right: CssDimValue;
58
- };
59
-
60
- interface TimelineViewState {
61
- slatCoords: TimelineCoords | null;
62
- slotCushionMaxWidth: number | null;
63
- }
64
- declare class TimelineView extends DateComponent<ViewProps, TimelineViewState> {
65
- private buildTimelineDateProfile;
66
- private scrollGridRef;
67
- state: {
68
- slatCoords: any;
69
- slotCushionMaxWidth: any;
70
- };
71
- render(): createElement.JSX.Element;
72
- handleSlatCoords: (slatCoords: TimelineCoords | null) => void;
73
- handleScrollLeftRequest: (scrollLeft: number) => void;
74
- handleMaxCushionWidth: (slotCushionMaxWidth: any) => void;
75
- computeFallbackSlotMinWidth(tDateProfile: TimelineDateProfile): number;
76
- }
77
- declare function buildSlatCols(tDateProfile: TimelineDateProfile, slotMinWidth?: number): {
78
- span: number;
79
- minWidth: number;
80
- }[];
81
-
82
71
  interface TimelineLaneSeg extends Seg {
83
72
  start: DateMarker;
84
73
  end: DateMarker;
@@ -92,140 +81,155 @@ declare class TimelineLaneSlicer extends Slicer<TimelineLaneSeg, [
92
81
  sliceRange(origRange: DateRange, dateProfile: DateProfile, dateProfileGenerator: DateProfileGenerator, tDateProfile: TimelineDateProfile, dateEnv: DateEnv): TimelineLaneSeg[];
93
82
  }
94
83
 
95
- interface TimelineSegPlacement {
96
- seg: TimelineLaneSeg | TimelineLaneSeg[];
97
- hcoords: SegSpan | null;
98
- top: number | null;
84
+ interface TimelineSegHorizontals {
85
+ start: number;
86
+ size: number;
99
87
  }
100
88
 
101
- interface TimelineLaneProps extends TimelineLaneCoreProps {
102
- onHeightChange?: (innerEl: HTMLElement, isStable: boolean) => void;
103
- }
104
- interface TimelineLaneCoreProps {
105
- nowDate: DateMarker;
106
- todayRange: DateRange;
89
+ interface TimelineLaneProps {
107
90
  dateProfile: DateProfile;
108
91
  tDateProfile: TimelineDateProfile;
92
+ nowDate: DateMarker;
93
+ todayRange: DateRange;
109
94
  nextDayThreshold: Duration;
110
- businessHours: EventStore | null;
111
95
  eventStore: EventStore | null;
112
96
  eventUiBases: EventUiHash;
97
+ businessHours: EventStore | null;
113
98
  dateSelection: DateSpan | null;
114
- eventSelection: string;
115
99
  eventDrag: EventInteractionState | null;
116
100
  eventResize: EventInteractionState | null;
117
- timelineCoords: TimelineCoords | null;
101
+ eventSelection: string;
118
102
  resourceId?: string;
119
- syncParentMinHeight?: boolean;
103
+ slotWidth: number | undefined;
120
104
  }
121
105
  interface TimelineLaneState {
122
- eventInstanceHeights: {
123
- [instanceId: string]: number;
124
- };
125
- moreLinkHeights: {
126
- [isoStr: string]: number;
127
- };
106
+ segHeightRev?: string;
107
+ moreLinkHeightRev?: string;
128
108
  }
129
109
  declare class TimelineLane extends BaseComponent<TimelineLaneProps, TimelineLaneState> {
130
- private slicer;
131
110
  private sortEventSegs;
132
- private harnessElRefs;
133
- private moreElRefs;
134
- private innerElRef;
135
- state: TimelineLaneState;
111
+ private segHeightRefMap;
112
+ private moreLinkHeightRefMap;
113
+ private slicer;
136
114
  render(): createElement.JSX.Element;
137
- componentDidMount(): void;
138
- componentDidUpdate(prevProps: TimelineLaneProps, prevState: TimelineLaneState): void;
139
- componentWillUnmount(): void;
140
- handleResize: (isForced: boolean) => void;
141
- updateSize(): void;
142
- renderFgSegs(segPlacements: TimelineSegPlacement[], isForcedInvisible: {
115
+ renderFgSegs(segs: TimelineLaneSeg[], segHorizontals: {
116
+ [instanceId: string]: TimelineSegHorizontals;
117
+ }, segTops: {
118
+ [instanceId: string]: number;
119
+ }, forcedInvisibleMap: {
143
120
  [instanceId: string]: any;
121
+ }, hiddenGroups: SegGroup[], hiddenGroupTops: {
122
+ [key: string]: number;
144
123
  }, isDragging: boolean, isResizing: boolean, isDateSelecting: boolean): createElement.JSX.Element;
124
+ private handleMoreLinkHeights;
125
+ private handleSegHeights;
145
126
  }
146
127
 
147
128
  interface TimelineLaneBgProps {
148
- businessHourSegs: TimelineLaneSeg[] | null;
129
+ tDateProfile: TimelineDateProfile;
130
+ nowDate: DateMarker;
131
+ todayRange: DateRange;
149
132
  bgEventSegs: TimelineLaneSeg[] | null;
133
+ businessHourSegs: TimelineLaneSeg[] | null;
150
134
  dateSelectionSegs: TimelineLaneSeg[];
151
135
  eventResizeSegs: TimelineLaneSeg[];
152
- timelineCoords: TimelineCoords | null;
153
- todayRange: DateRange;
154
- nowDate: DateMarker;
136
+ slotWidth: number | undefined;
155
137
  }
156
138
  declare class TimelineLaneBg extends BaseComponent<TimelineLaneBgProps> {
157
139
  render(): createElement.JSX.Element;
158
- renderSegs(segs: TimelineLaneSeg[], timelineCoords: TimelineCoords | null, fillType: string): createElement.JSX.Element;
140
+ renderSegs(segs: TimelineLaneSeg[], fillType: string): createElement.JSX.Element;
159
141
  }
160
142
 
161
- interface TimelineHeaderProps {
143
+ interface TimelineSlatsProps {
162
144
  dateProfile: DateProfile;
163
145
  tDateProfile: TimelineDateProfile;
164
- clientWidth: number | null;
165
- clientHeight: number | null;
166
- tableMinWidth: CssDimValue;
167
- tableColGroupNode: VNode;
168
- slatCoords: TimelineCoords;
169
- rowInnerHeights?: number[];
170
- onMaxCushionWidth?: (number: any) => void;
171
- }
172
- declare class TimelineHeader extends BaseComponent<TimelineHeaderProps> {
173
- rootElRef: RefObject<HTMLDivElement>;
146
+ nowDate: DateMarker;
147
+ todayRange: DateRange;
148
+ slotWidth: number | undefined;
149
+ innerWidthRef?: Ref<number>;
150
+ }
151
+ declare class TimelineSlats extends BaseComponent<TimelineSlatsProps> {
152
+ private innerWidthRefMap;
174
153
  render(): createElement.JSX.Element;
175
- componentDidMount(): void;
176
- componentDidUpdate(): void;
177
- updateSize(): void;
178
- computeMaxCushionWidth(): number;
154
+ handleInnerWidths: () => void;
179
155
  }
180
156
 
181
- interface TimelineSlatsContentProps {
157
+ interface CoordRange {
158
+ start: number;
159
+ size: number;
160
+ }
161
+ declare function createVerticalStyle(props: {
162
+ start: number;
163
+ size: number;
164
+ } | undefined): {
165
+ top: number;
166
+ height: number;
167
+ } | undefined;
168
+ declare function createHorizontalStyle(props: {
169
+ start: number;
170
+ size: number;
171
+ } | undefined, isRtl: boolean): {
172
+ left: number;
173
+ width: number;
174
+ } | {
175
+ right: number;
176
+ width: number;
177
+ } | undefined;
178
+ declare function computeSlotWidth(slatCnt: number, slatsPerLabel: number, slatMinWidth: number | undefined, labelInnerWidth: number | undefined, viewportWidth: number | undefined): [
179
+ canvasWidth: number | undefined,
180
+ slatWidth: number | undefined,
181
+ slatLiquid: boolean
182
+ ];
183
+ declare function timeToCoord(// pixels
184
+ time: Duration, dateEnv: DateEnv, dateProfile: DateProfile, tDateProfile: TimelineDateProfile, slowWidth: number): number;
185
+
186
+ declare function coordToCss(hcoord: number | null, isRtl: boolean): {
187
+ left: CssDimValue;
188
+ right: CssDimValue;
189
+ };
190
+ declare function coordsToCss(hcoords: SegSpan | null, isRtl: boolean): {
191
+ left: CssDimValue;
192
+ right: CssDimValue;
193
+ };
194
+
195
+ interface TimelineHeaderRowProps {
182
196
  dateProfile: DateProfile;
183
197
  tDateProfile: TimelineDateProfile;
184
198
  nowDate: DateMarker;
185
199
  todayRange: DateRange;
200
+ rowLevel: number;
201
+ isLastRow: boolean;
202
+ cells: TimelineHeaderCellData[];
203
+ innerHeighRef?: Ref<number>;
204
+ innerWidthRef?: Ref<number>;
205
+ slotWidth: number | undefined;
206
+ height?: number;
207
+ }
208
+ declare class TimelineHeaderRow extends BaseComponent<TimelineHeaderRowProps> {
209
+ private innerWidthRefMap;
210
+ private innerHeightRefMap;
211
+ render(): createElement.JSX.Element;
212
+ handleInnerWidths: () => void;
213
+ handleInnerHeights: () => void;
214
+ componentWillUnmount(): void;
186
215
  }
187
216
 
188
- interface TimelineSlatsProps extends TimelineSlatsContentProps {
189
- clientWidth: number | null;
190
- tableMinWidth: CssDimValue;
191
- tableColGroupNode: VNode;
192
- onCoords?: (coord: TimelineCoords | null) => void;
193
- onScrollLeftRequest?: (scrollLeft: number) => void;
217
+ interface TimelineNowIndicatorArrowProps {
218
+ tDateProfile: TimelineDateProfile;
219
+ nowDate: DateMarker;
220
+ slotWidth: number | undefined;
194
221
  }
195
- declare class TimelineSlats extends BaseComponent<TimelineSlatsProps> {
196
- private rootElRef;
197
- private cellElRefs;
198
- private coords;
199
- private scrollResponder;
222
+ declare class TimelineNowIndicatorArrow extends BaseComponent<TimelineNowIndicatorArrowProps> {
200
223
  render(): createElement.JSX.Element;
201
- componentDidMount(): void;
202
- componentDidUpdate(prevProps: TimelineSlatsProps): void;
203
- componentWillUnmount(): void;
204
- updateSizing(): void;
205
- handleScrollRequest: (request: ScrollRequest) => boolean;
206
- positionToHit(leftPosition: any): {
207
- dateSpan: {
208
- range: {
209
- start: Date;
210
- end: Date;
211
- };
212
- allDay: boolean;
213
- };
214
- dayEl: HTMLTableCellElement;
215
- left: any;
216
- right: any;
217
- };
218
224
  }
219
225
 
220
- interface TimelineHeaderRowsProps {
221
- dateProfile: DateProfile;
226
+ interface TimelineNowIndicatorLineProps {
222
227
  tDateProfile: TimelineDateProfile;
223
228
  nowDate: DateMarker;
224
- todayRange: DateRange;
225
- rowInnerHeights?: number[];
229
+ slotWidth: number | undefined;
226
230
  }
227
- declare class TimelineHeaderRows extends BaseComponent<TimelineHeaderRowsProps> {
231
+ declare class TimelineNowIndicatorLine extends BaseComponent<TimelineNowIndicatorLineProps> {
228
232
  render(): createElement.JSX.Element;
229
233
  }
230
234
 
231
- export { TimelineCoords, TimelineDateProfile, TimelineHeader, TimelineHeaderRows, TimelineLane, TimelineLaneBg, TimelineLaneCoreProps, TimelineLaneProps, TimelineLaneSeg, TimelineLaneSlicer, TimelineSlats, TimelineView, buildSlatCols, buildTimelineDateProfile, coordToCss, coordsToCss };
235
+ export { CoordRange, TimelineDateProfile, TimelineHeaderRow, TimelineLane, TimelineLaneBg, TimelineLaneProps, TimelineLaneSeg, TimelineLaneSlicer, TimelineNowIndicatorArrow, TimelineNowIndicatorLine, TimelineSlats, TimelineView, buildTimelineDateProfile, computeSlotWidth, coordToCss, coordsToCss, createHorizontalStyle, createVerticalStyle, timeToCoord };