@fullcalendar/daygrid 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,40 +1,12 @@
1
- import { Duration, CssDimValue } from '@fullcalendar/core';
2
- import { DateComponent, ViewContext, DateProfile, DayTableModel, EventStore, EventUiHash, DateSpan, EventInteractionState, Seg, Slicer, DateRange, DateProfileGenerator, DateEnv, Hit, DayTableCell, EventSegUiInteractionState, Dictionary, ViewProps, ChunkConfigRowContent, ChunkContentCallbackArgs } from '@fullcalendar/core/internal';
3
- import { createElement, VNode, RefObject } from '@fullcalendar/core/preact';
4
-
5
- interface DayTableProps {
6
- dateProfile: DateProfile;
7
- dayTableModel: DayTableModel;
8
- nextDayThreshold: Duration;
9
- businessHours: EventStore;
10
- eventStore: EventStore;
11
- eventUiBases: EventUiHash;
12
- dateSelection: DateSpan | null;
13
- eventSelection: string;
14
- eventDrag: EventInteractionState | null;
15
- eventResize: EventInteractionState | null;
16
- colGroupNode: VNode;
17
- tableMinWidth: CssDimValue;
18
- renderRowIntro?: () => VNode;
19
- dayMaxEvents: boolean | number;
20
- dayMaxEventRows: boolean | number;
21
- expandRows: boolean;
22
- showWeekNumbers: boolean;
23
- headerAlignElRef?: RefObject<HTMLElement>;
24
- clientWidth: number | null;
25
- clientHeight: number | null;
26
- forPrint: boolean;
27
- }
28
- declare class DayTable extends DateComponent<DayTableProps, ViewContext> {
29
- private slicer;
30
- private tableRef;
31
- render(): createElement.JSX.Element;
32
- }
1
+ import { Seg, Slicer, DayTableModel, DateRange, DateProfileGenerator, DateEnv, BaseComponent, ViewProps, DateProfile, DateMarker, DateFormatter, Dictionary, DayTableCell, Hit, EventSegUiInteractionState, DateComponent, RefMap } from '@fullcalendar/core/internal';
2
+ import { createElement, Ref, ComponentChild, VNode } from '@fullcalendar/core/preact';
3
+ import '@fullcalendar/core';
33
4
 
34
5
  interface TableSeg extends Seg {
35
6
  row: number;
36
7
  firstCol: number;
37
8
  lastCol: number;
9
+ isStandin?: boolean;
38
10
  }
39
11
 
40
12
  declare class DayTableSlicer extends Slicer<TableSeg, [DayTableModel]> {
@@ -52,75 +24,229 @@ declare function buildDayTableRenderRange(props: {
52
24
  dateEnv: DateEnv;
53
25
  }): DateRange;
54
26
 
55
- interface TableRowsProps {
27
+ declare class DayGridView extends BaseComponent<ViewProps> {
28
+ private buildDayTableModel;
29
+ private buildHeaderTiers;
30
+ private createDayHeaderFormatter;
31
+ private slicer;
32
+ render(): createElement.JSX.Element;
33
+ }
34
+
35
+ interface DateHeaderCellProps {
56
36
  dateProfile: DateProfile;
57
- cells: DayTableCell[][];
58
- renderRowIntro?: () => VNode;
59
- showWeekNumbers: boolean;
60
- clientWidth: number | null;
61
- clientHeight: number | null;
62
- businessHourSegs: TableSeg[];
63
- bgEventSegs: TableSeg[];
37
+ todayRange: DateRange;
38
+ date: DateMarker;
39
+ navLink: boolean;
40
+ dayHeaderFormat: DateFormatter;
41
+ isSticky?: boolean;
42
+ colSpan?: number;
43
+ extraRenderProps?: Dictionary;
44
+ extraDataAttrs?: Dictionary;
45
+ extraClassNames?: string[];
46
+ colWidth?: number;
47
+ innerHeightRef?: Ref<number>;
48
+ }
49
+ declare class DateHeaderCell extends BaseComponent<DateHeaderCellProps> {
50
+ private innerElRef;
51
+ private disconectInnerHeight?;
52
+ render(): createElement.JSX.Element;
53
+ componentDidMount(): void;
54
+ componentWillUnmount(): void;
55
+ }
56
+
57
+ interface DayOfWeekHeaderCellProps {
58
+ dow: number;
59
+ dayHeaderFormat: DateFormatter;
60
+ isSticky?: boolean;
61
+ colSpan?: number;
62
+ extraRenderProps?: Dictionary;
63
+ extraDataAttrs?: Dictionary;
64
+ extraClassNames?: string[];
65
+ colWidth?: number;
66
+ innerHeightRef?: Ref<number>;
67
+ }
68
+ declare class DayOfWeekHeaderCell extends BaseComponent<DayOfWeekHeaderCellProps> {
69
+ private innerElRef;
70
+ private disconectInnerHeight?;
71
+ render(): createElement.JSX.Element;
72
+ componentDidMount(): void;
73
+ componentWillUnmount(): void;
74
+ }
75
+
76
+ interface HeaderRowProps<Model, ModelKey> {
77
+ tierNum: number;
78
+ cells: Model[];
79
+ renderHeaderContent: (model: Model, tier: number, innerHeightRef: Ref<number> | undefined, // unused
80
+ width: number | undefined) => ComponentChild;
81
+ getHeaderModelKey: (model: Model) => ModelKey;
82
+ cellGroup?: boolean;
83
+ className?: string;
84
+ colWidth?: number;
85
+ }
86
+ declare class HeaderRow<Model, ModelKey> extends BaseComponent<HeaderRowProps<Model, ModelKey>> {
87
+ render(): createElement.JSX.Element;
88
+ }
89
+
90
+ interface HeaderRowAdvancedProps<Model, ModelKey> {
91
+ tierNum: number;
92
+ cells: Model[];
93
+ renderHeaderContent: (// TODO: better name
94
+ model: Model, tier: number, innerHeightRef: Ref<number> | undefined, width: number | undefined) => ComponentChild;
95
+ getHeaderModelKey: (model: Model) => ModelKey;
96
+ innerHeightRef?: Ref<number>;
97
+ height: number | undefined;
98
+ colWidth?: number;
99
+ }
100
+ declare class HeaderRowAdvanced<Model, ModelKey> extends BaseComponent<HeaderRowAdvancedProps<Model, ModelKey>> {
101
+ private innerHeightRefMap;
102
+ private currentInnerHeight?;
103
+ render(): createElement.JSX.Element;
104
+ private handleInnerHeights;
105
+ }
106
+
107
+ declare function createDayHeaderFormatter(explicitFormat: DateFormatter, datesRepDistinctDays: any, dateCnt: any): DateFormatter;
108
+
109
+ interface DayGridLayoutProps<HeaderCellModel, HeaderCellKey> {
110
+ dateProfile: DateProfile;
111
+ todayRange: DateRange;
112
+ cellRows: DayTableCell[][];
113
+ forPrint: boolean;
114
+ isHitComboAllowed?: (hit0: Hit, hit1: Hit) => boolean;
115
+ className: string;
116
+ headerTiers: HeaderCellModel[][];
117
+ renderHeaderContent: (model: HeaderCellModel, tier: number, innerHeightRef: Ref<number> | undefined, // unused... why do we have it then???
118
+ width: number | undefined) => ComponentChild;
119
+ getHeaderModelKey: (model: HeaderCellModel) => HeaderCellKey;
64
120
  fgEventSegs: TableSeg[];
121
+ bgEventSegs: TableSeg[];
122
+ businessHourSegs: TableSeg[];
65
123
  dateSelectionSegs: TableSeg[];
124
+ eventDrag: EventSegUiInteractionState | null;
125
+ eventResize: EventSegUiInteractionState | null;
66
126
  eventSelection: string;
127
+ }
128
+ declare class DayGridLayout<HeaderCellModel, HeaderCellKey> extends BaseComponent<DayGridLayoutProps<HeaderCellModel, HeaderCellKey>> {
129
+ private scrollerRef;
130
+ private rowHeightRefMap;
131
+ render(): createElement.JSX.Element;
132
+ componentDidMount(): void;
133
+ componentDidUpdate(prevProps: DayGridLayoutProps<unknown, unknown>): void;
134
+ componentWillUnmount(): void;
135
+ private timeScrollResponder;
136
+ }
137
+
138
+ interface DayGridRowProps {
139
+ dateProfile: DateProfile;
140
+ todayRange: DateRange;
141
+ cells: DayTableCell[];
142
+ showDayNumbers: boolean;
143
+ showWeekNumbers?: boolean;
144
+ forPrint: boolean;
145
+ cellGroup?: boolean;
146
+ className?: string;
147
+ forceVSpacing?: boolean;
148
+ compact?: boolean;
149
+ fgEventSegs: TableSeg[];
150
+ bgEventSegs: TableSeg[];
151
+ businessHourSegs: TableSeg[];
152
+ dateSelectionSegs: TableSeg[];
67
153
  eventDrag: EventSegUiInteractionState | null;
68
154
  eventResize: EventSegUiInteractionState | null;
155
+ eventSelection: string;
69
156
  dayMaxEvents: boolean | number;
70
157
  dayMaxEventRows: boolean | number;
158
+ colWidth?: number;
159
+ minHeight?: number | string;
160
+ rootElRef?: Ref<HTMLElement>;
161
+ heightRef?: Ref<number>;
162
+ innerHeightRef?: Ref<number>;
163
+ }
164
+ interface DayGridRowState {
165
+ innerHeight?: number;
166
+ headerHeight?: number;
167
+ segHeightRev?: string;
168
+ }
169
+ declare const COMPACT_CELL_WIDTH = 80;
170
+ declare class DayGridRow extends BaseComponent<DayGridRowProps, DayGridRowState> {
171
+ private rootEl;
172
+ private cellInnerHeightRefMap;
173
+ private cellHeaderHeightRefMap;
174
+ private segHeightRefMap;
175
+ private disconnectHeight?;
176
+ render(): createElement.JSX.Element;
177
+ renderFgSegs(segs: TableSeg[], segTops: {
178
+ [segStartId: string]: number;
179
+ }, todayRange: DateRange, forcedInvisibleMap: {
180
+ [instanceId: string]: any;
181
+ }, isDragging?: boolean, isResizing?: boolean, isDateSelecting?: boolean): VNode[];
182
+ renderFillSegs(segs: TableSeg[], fillType: string): VNode;
183
+ handleRootEl: (rootEl: HTMLElement) => void;
184
+ componentDidMount(): void;
185
+ componentWillUnmount(): void;
186
+ private handleHeaderHeights;
187
+ private handleInnerHeights;
188
+ private handleSegHeights;
189
+ getMirrorSegs(): TableSeg[];
190
+ getHighlightSegs(): TableSeg[];
191
+ }
192
+
193
+ interface DayGridRowsProps {
194
+ dateProfile: DateProfile;
195
+ todayRange: DateRange;
196
+ cellRows: DayTableCell[][];
71
197
  forPrint: boolean;
72
198
  isHitComboAllowed?: (hit0: Hit, hit1: Hit) => boolean;
199
+ fgEventSegs: TableSeg[];
200
+ bgEventSegs: TableSeg[];
201
+ businessHourSegs: TableSeg[];
202
+ dateSelectionSegs: TableSeg[];
203
+ eventDrag: EventSegUiInteractionState | null;
204
+ eventResize: EventSegUiInteractionState | null;
205
+ eventSelection: string;
206
+ colWidth?: number;
207
+ width?: number | string;
208
+ rowHeightRefMap?: RefMap<string, number>;
73
209
  }
74
- declare class TableRows extends DateComponent<TableRowsProps> {
210
+ interface DayGridRowsState {
211
+ width?: number;
212
+ }
213
+ declare class DayGridRows extends DateComponent<DayGridRowsProps, DayGridRowsState> {
214
+ private rootEl;
75
215
  private splitBusinessHourSegs;
76
216
  private splitBgEventSegs;
77
217
  private splitFgEventSegs;
78
218
  private splitDateSelectionSegs;
79
219
  private splitEventDrag;
80
220
  private splitEventResize;
81
- private rootEl;
82
- private rowRefs;
83
- private rowPositions;
84
- private colPositions;
221
+ private rowHeightRefMap;
222
+ private unwatchWidth?;
85
223
  render(): createElement.JSX.Element;
224
+ handleRootEl: (rootEl: HTMLDivElement) => void;
86
225
  componentDidMount(): void;
87
- componentDidUpdate(): void;
88
- registerInteractiveComponent(): void;
89
226
  componentWillUnmount(): void;
90
- prepareHits(): void;
91
- queryHit(positionLeft: number, positionTop: number): Hit;
92
- private getCellEl;
93
- private getCellRange;
94
- }
95
-
96
- interface TableProps extends TableRowsProps {
97
- colGroupNode: VNode;
98
- tableMinWidth: CssDimValue;
99
- expandRows: boolean;
100
- headerAlignElRef?: RefObject<HTMLElement>;
101
- }
102
- declare class Table extends DateComponent<TableProps> {
103
- private elRef;
104
- private needsScrollReset;
105
- render(): createElement.JSX.Element;
106
- componentDidMount(): void;
107
- componentDidUpdate(prevProps: TableProps): void;
108
- requestScrollReset(): void;
109
- flushScrollReset(): void;
227
+ queryHit(positionLeft: number, positionTop: number, elWidth: number): Hit;
110
228
  }
111
229
 
112
- declare abstract class TableView<State = Dictionary> extends DateComponent<ViewProps, State> {
113
- protected headerElRef: RefObject<HTMLTableCellElement>;
114
- renderSimpleLayout(headerRowContent: ChunkConfigRowContent, bodyContent: (contentArg: ChunkContentCallbackArgs) => VNode): createElement.JSX.Element;
115
- renderHScrollLayout(headerRowContent: ChunkConfigRowContent, bodyContent: (contentArg: ChunkContentCallbackArgs) => VNode, colCnt: number, dayMinWidth: number): createElement.JSX.Element;
116
- }
117
-
118
- declare class DayTableView extends TableView {
119
- private buildDayTableModel;
120
- private headerRef;
121
- private tableRef;
122
- render(): createElement.JSX.Element;
123
- }
124
230
  declare function buildDayTableModel(dateProfile: DateProfile, dateProfileGenerator: DateProfileGenerator): DayTableModel;
231
+ declare function computeColWidth(colCnt: number, colMinWidth: number, viewportWidth: number | undefined): [
232
+ canvasWidth: number | undefined,
233
+ colWidth: number | undefined
234
+ ];
235
+ type DateHeaderCellObj = {
236
+ date: DateMarker;
237
+ colSpan: number;
238
+ };
239
+ type DayOfWeekHeaderCellObj = {
240
+ dow: number;
241
+ colSpan: number;
242
+ };
243
+ type HeaderCellObj = DateHeaderCellObj | DayOfWeekHeaderCellObj;
244
+ declare function computeColFromPosition(positionLeft: number, elWidth: number, colWidth: number | undefined, colCnt: number, isRtl: boolean): {
245
+ col: number;
246
+ left: number;
247
+ right: number;
248
+ };
249
+ declare function getRowEl(rootEl: HTMLElement, row: number): HTMLElement;
250
+ declare function getCellEl(rowEl: HTMLElement, col: number): HTMLElement;
125
251
 
126
- export { DayTableView as DayGridView, DayTable, DayTableSlicer, Table, TableDateProfileGenerator, TableRows, TableSeg, TableView, buildDayTableModel, buildDayTableRenderRange };
252
+ export { COMPACT_CELL_WIDTH, DateHeaderCell, DateHeaderCellObj, DayGridLayout, DayGridLayoutProps, DayGridRow, DayGridRowProps, DayGridRows, DayGridView, DayOfWeekHeaderCell, DayOfWeekHeaderCellObj, DayTableSlicer, HeaderCellObj, HeaderRow, HeaderRowAdvanced, TableDateProfileGenerator, TableSeg, buildDayTableModel, buildDayTableRenderRange, computeColFromPosition, computeColWidth, createDayHeaderFormatter, getCellEl, getRowEl };