@fullcalendar/timeline 6.1.14 → 7.0.0-beta.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/internal.d.ts CHANGED
@@ -1,7 +1,41 @@
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 headerSlotInnerWidth?;
21
+ private bodySlotInnerWidth?;
22
+ private syncedScroller;
23
+ render(): createElement.JSX.Element;
24
+ componentDidMount(): void;
25
+ componentDidUpdate(prevProps: ViewProps): void;
26
+ componentWillUnmount(): void;
27
+ handleHeaderSlotInnerWidth: (innerWidth: number) => 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
+ updateSyncedScroller(): void;
34
+ private timeScrollResponder;
35
+ handeBodyEl: (el: HTMLElement | null) => void;
36
+ queryHit(positionLeft: number, positionTop: number, elWidth: number, elHeight: number): Hit;
37
+ }
38
+
5
39
  interface TimelineDateProfile {
6
40
  labelInterval: Duration;
7
41
  slotDuration: Duration;
@@ -20,9 +54,9 @@ interface TimelineDateProfile {
20
54
  snapIndexToDiff: number[];
21
55
  snapCnt: number;
22
56
  slotCnt: number;
23
- cellRows: TimelineHeaderCell[][];
57
+ cellRows: TimelineHeaderCellData[][];
24
58
  }
25
- interface TimelineHeaderCell {
59
+ interface TimelineHeaderCellData {
26
60
  date: DateMarker;
27
61
  text: string;
28
62
  rowUnit: string;
@@ -31,54 +65,6 @@ interface TimelineHeaderCell {
31
65
  }
32
66
  declare function buildTimelineDateProfile(dateProfile: DateProfile, dateEnv: DateEnv, allOptions: BaseOptionsRefined, dateProfileGenerator: DateProfileGenerator): TimelineDateProfile;
33
67
 
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
68
  interface TimelineLaneSeg extends Seg {
83
69
  start: DateMarker;
84
70
  end: DateMarker;
@@ -92,140 +78,154 @@ declare class TimelineLaneSlicer extends Slicer<TimelineLaneSeg, [
92
78
  sliceRange(origRange: DateRange, dateProfile: DateProfile, dateProfileGenerator: DateProfileGenerator, tDateProfile: TimelineDateProfile, dateEnv: DateEnv): TimelineLaneSeg[];
93
79
  }
94
80
 
95
- interface TimelineSegPlacement {
96
- seg: TimelineLaneSeg | TimelineLaneSeg[];
97
- hcoords: SegSpan | null;
98
- top: number | null;
81
+ interface TimelineSegHorizontals {
82
+ start: number;
83
+ size: number;
99
84
  }
100
85
 
101
- interface TimelineLaneProps extends TimelineLaneCoreProps {
102
- onHeightChange?: (innerEl: HTMLElement, isStable: boolean) => void;
103
- }
104
- interface TimelineLaneCoreProps {
105
- nowDate: DateMarker;
106
- todayRange: DateRange;
86
+ interface TimelineLaneProps {
107
87
  dateProfile: DateProfile;
108
88
  tDateProfile: TimelineDateProfile;
89
+ nowDate: DateMarker;
90
+ todayRange: DateRange;
109
91
  nextDayThreshold: Duration;
110
- businessHours: EventStore | null;
111
92
  eventStore: EventStore | null;
112
93
  eventUiBases: EventUiHash;
94
+ businessHours: EventStore | null;
113
95
  dateSelection: DateSpan | null;
114
- eventSelection: string;
115
96
  eventDrag: EventInteractionState | null;
116
97
  eventResize: EventInteractionState | null;
117
- timelineCoords: TimelineCoords | null;
98
+ eventSelection: string;
118
99
  resourceId?: string;
119
- syncParentMinHeight?: boolean;
100
+ slotWidth: number | undefined;
120
101
  }
121
102
  interface TimelineLaneState {
122
- eventInstanceHeights: {
123
- [instanceId: string]: number;
124
- };
125
- moreLinkHeights: {
126
- [isoStr: string]: number;
127
- };
103
+ segHeightRev?: string;
104
+ moreLinkHeightRev?: string;
128
105
  }
129
106
  declare class TimelineLane extends BaseComponent<TimelineLaneProps, TimelineLaneState> {
130
- private slicer;
131
107
  private sortEventSegs;
132
- private harnessElRefs;
133
- private moreElRefs;
134
- private innerElRef;
135
- state: TimelineLaneState;
108
+ private segHeightRefMap;
109
+ private moreLinkHeightRefMap;
110
+ private slicer;
136
111
  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: {
112
+ renderFgSegs(segs: TimelineLaneSeg[], segHorizontals: {
113
+ [instanceId: string]: TimelineSegHorizontals;
114
+ }, segTops: {
115
+ [instanceId: string]: number;
116
+ }, forcedInvisibleMap: {
143
117
  [instanceId: string]: any;
118
+ }, hiddenGroups: SegGroup[], hiddenGroupTops: {
119
+ [key: string]: number;
144
120
  }, isDragging: boolean, isResizing: boolean, isDateSelecting: boolean): createElement.JSX.Element;
121
+ private handleMoreLinkHeights;
122
+ private handleSegHeights;
145
123
  }
146
124
 
147
125
  interface TimelineLaneBgProps {
148
- businessHourSegs: TimelineLaneSeg[] | null;
126
+ tDateProfile: TimelineDateProfile;
127
+ nowDate: DateMarker;
128
+ todayRange: DateRange;
149
129
  bgEventSegs: TimelineLaneSeg[] | null;
130
+ businessHourSegs: TimelineLaneSeg[] | null;
150
131
  dateSelectionSegs: TimelineLaneSeg[];
151
132
  eventResizeSegs: TimelineLaneSeg[];
152
- timelineCoords: TimelineCoords | null;
153
- todayRange: DateRange;
154
- nowDate: DateMarker;
133
+ slotWidth: number | undefined;
155
134
  }
156
135
  declare class TimelineLaneBg extends BaseComponent<TimelineLaneBgProps> {
157
136
  render(): createElement.JSX.Element;
158
- renderSegs(segs: TimelineLaneSeg[], timelineCoords: TimelineCoords | null, fillType: string): createElement.JSX.Element;
137
+ renderSegs(segs: TimelineLaneSeg[], fillType: string): createElement.JSX.Element;
159
138
  }
160
139
 
161
- interface TimelineHeaderProps {
140
+ interface TimelineSlatsProps {
162
141
  dateProfile: DateProfile;
163
142
  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>;
143
+ nowDate: DateMarker;
144
+ todayRange: DateRange;
145
+ slotWidth: number | undefined;
146
+ innerWidthRef?: Ref<number>;
147
+ }
148
+ declare class TimelineSlats extends BaseComponent<TimelineSlatsProps> {
149
+ private innerWidthRefMap;
174
150
  render(): createElement.JSX.Element;
175
- componentDidMount(): void;
176
- componentDidUpdate(): void;
177
- updateSize(): void;
178
- computeMaxCushionWidth(): number;
151
+ handleInnerWidths: () => void;
179
152
  }
180
153
 
181
- interface TimelineSlatsContentProps {
154
+ interface CoordRange {
155
+ start: number;
156
+ size: number;
157
+ }
158
+ declare function createVerticalStyle(props: {
159
+ start: number;
160
+ size: number;
161
+ } | undefined): {
162
+ top: number;
163
+ height: number;
164
+ } | undefined;
165
+ declare function createHorizontalStyle(props: {
166
+ start: number;
167
+ size: number;
168
+ } | undefined, isRtl: boolean): {
169
+ left: number;
170
+ width: number;
171
+ } | {
172
+ right: number;
173
+ width: number;
174
+ } | undefined;
175
+ declare function computeSlotWidth(slatCnt: number, slatsPerLabel: number, slatMinWidth: number | undefined, labelInnerWidth: number | undefined, viewportWidth: number | undefined): [
176
+ canvasWidth: number | undefined,
177
+ slatWidth: number | undefined,
178
+ slatLiquid: boolean
179
+ ];
180
+ declare function timeToCoord(// pixels
181
+ time: Duration, dateEnv: DateEnv, dateProfile: DateProfile, tDateProfile: TimelineDateProfile, slowWidth: number): number;
182
+
183
+ declare function coordToCss(hcoord: number | null, isRtl: boolean): {
184
+ left: CssDimValue;
185
+ right: CssDimValue;
186
+ };
187
+ declare function coordsToCss(hcoords: SegSpan | null, isRtl: boolean): {
188
+ left: CssDimValue;
189
+ right: CssDimValue;
190
+ };
191
+
192
+ interface TimelineHeaderRowProps {
182
193
  dateProfile: DateProfile;
183
194
  tDateProfile: TimelineDateProfile;
184
195
  nowDate: DateMarker;
185
196
  todayRange: DateRange;
197
+ rowLevel: number;
198
+ isLastRow: boolean;
199
+ cells: TimelineHeaderCellData[];
200
+ innerHeighRef?: Ref<number>;
201
+ innerWidthRef?: Ref<number>;
202
+ slotWidth: number | undefined;
203
+ height?: number;
204
+ }
205
+ declare class TimelineHeaderRow extends BaseComponent<TimelineHeaderRowProps> {
206
+ private innerWidthRefMap;
207
+ private innerHeightRefMap;
208
+ render(): createElement.JSX.Element;
209
+ handleInnerWidths: () => void;
210
+ handleInnerHeights: () => void;
186
211
  }
187
212
 
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;
213
+ interface TimelineNowIndicatorArrowProps {
214
+ tDateProfile: TimelineDateProfile;
215
+ nowDate: DateMarker;
216
+ slotWidth: number | undefined;
194
217
  }
195
- declare class TimelineSlats extends BaseComponent<TimelineSlatsProps> {
196
- private rootElRef;
197
- private cellElRefs;
198
- private coords;
199
- private scrollResponder;
218
+ declare class TimelineNowIndicatorArrow extends BaseComponent<TimelineNowIndicatorArrowProps> {
200
219
  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
220
  }
219
221
 
220
- interface TimelineHeaderRowsProps {
221
- dateProfile: DateProfile;
222
+ interface TimelineNowIndicatorLineProps {
222
223
  tDateProfile: TimelineDateProfile;
223
224
  nowDate: DateMarker;
224
- todayRange: DateRange;
225
- rowInnerHeights?: number[];
225
+ slotWidth: number | undefined;
226
226
  }
227
- declare class TimelineHeaderRows extends BaseComponent<TimelineHeaderRowsProps> {
227
+ declare class TimelineNowIndicatorLine extends BaseComponent<TimelineNowIndicatorLineProps> {
228
228
  render(): createElement.JSX.Element;
229
229
  }
230
230
 
231
- export { TimelineCoords, TimelineDateProfile, TimelineHeader, TimelineHeaderRows, TimelineLane, TimelineLaneBg, TimelineLaneCoreProps, TimelineLaneProps, TimelineLaneSeg, TimelineLaneSlicer, TimelineSlats, TimelineView, buildSlatCols, buildTimelineDateProfile, coordToCss, coordsToCss };
231
+ export { CoordRange, TimelineDateProfile, TimelineHeaderRow, TimelineLane, TimelineLaneBg, TimelineLaneProps, TimelineLaneSeg, TimelineLaneSlicer, TimelineNowIndicatorArrow, TimelineNowIndicatorLine, TimelineSlats, TimelineView, buildTimelineDateProfile, computeSlotWidth, coordToCss, coordsToCss, createHorizontalStyle, createVerticalStyle, timeToCoord };