@squirkle-ui/calendar 0.0.0-stage → 0.1.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.
@@ -0,0 +1,605 @@
1
+ import { type PropType } from 'vue';
2
+ import { type CalendarEvent, type Placed } from './layout';
3
+ type View = 'month' | 'week' | 'day';
4
+ /** Event calendar: month / week / day views, overlapping-event layout, drag to move & resize (editable). */
5
+ declare const _default: typeof __VLS_export;
6
+ export default _default;
7
+ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
8
+ /** Focused date (ISO `YYYY-MM-DD`). */
9
+ modelValue: {
10
+ type: StringConstructor;
11
+ default: undefined;
12
+ };
13
+ view: {
14
+ type: PropType<View>;
15
+ default: string;
16
+ };
17
+ views: {
18
+ type: PropType<View[]>;
19
+ default: () => string[];
20
+ };
21
+ events: {
22
+ type: PropType<CalendarEvent[]>;
23
+ default: () => never[];
24
+ };
25
+ firstDayOfWeek: {
26
+ type: NumberConstructor;
27
+ default: number;
28
+ };
29
+ editable: BooleanConstructor;
30
+ /** Minutes the drag snaps to. */
31
+ snap: {
32
+ type: NumberConstructor;
33
+ default: number;
34
+ };
35
+ hourHeight: {
36
+ type: NumberConstructor;
37
+ default: number;
38
+ };
39
+ height: {
40
+ type: (NumberConstructor | StringConstructor)[];
41
+ default: number;
42
+ };
43
+ maxEvents: {
44
+ type: NumberConstructor;
45
+ default: number;
46
+ };
47
+ locale: {
48
+ type: StringConstructor;
49
+ default: undefined;
50
+ };
51
+ hour12: {
52
+ type: BooleanConstructor;
53
+ default: undefined;
54
+ };
55
+ }>, {
56
+ viewModel: import("vue").WritableComputedRef<View, View>;
57
+ viewLabels: Record<View, string>;
58
+ weekdays: import("vue").ComputedRef<string[]>;
59
+ title: import("vue").ComputedRef<string>;
60
+ monthDays: import("vue").ComputedRef<{
61
+ date: Date;
62
+ key: string;
63
+ inMonth: boolean;
64
+ today: boolean;
65
+ events: import("./layout").NormEvent[];
66
+ }[]>;
67
+ columns: import("vue").ComputedRef<{
68
+ date: Date;
69
+ key: string;
70
+ weekday: string;
71
+ today: boolean;
72
+ placed: Placed[];
73
+ allDay: import("./layout").NormEvent[];
74
+ }[]>;
75
+ shift: (d: number) => void;
76
+ today: () => string;
77
+ goDay: (d: Date) => void;
78
+ colorOf: (ev: CalendarEvent) => string | undefined;
79
+ time: (d: Date) => string;
80
+ hourLabel: (h: number) => string;
81
+ nowTop: import("vue").ComputedRef<number>;
82
+ dragId: import("vue").Ref<string | number | null, string | number | null>;
83
+ dropKey: import("vue").Ref<string, string>;
84
+ onMonthDrop: (date: Date) => void;
85
+ scroller: import("vue").Ref<HTMLElement | null, HTMLElement | null>;
86
+ dragState: import("vue").Ref<{
87
+ id: string | number;
88
+ mode: "move" | "resize";
89
+ dMin: number;
90
+ dDay: number;
91
+ } | null, {
92
+ id: string | number;
93
+ mode: "move" | "resize";
94
+ dMin: number;
95
+ dDay: number;
96
+ } | {
97
+ id: string | number;
98
+ mode: "move" | "resize";
99
+ dMin: number;
100
+ dDay: number;
101
+ } | null>;
102
+ moved: import("vue").Ref<boolean, boolean>;
103
+ startDrag: (e: PointerEvent, p: Placed, mode: "move" | "resize") => void;
104
+ previewStart: (p: Placed) => Date;
105
+ previewEnd: (p: Placed) => Date;
106
+ eventStyle: (p: Placed) => {
107
+ top: string;
108
+ height: string;
109
+ left: string;
110
+ width: string;
111
+ transform: string | undefined;
112
+ '--sq-ev': string | undefined;
113
+ };
114
+ onSlotClick: (e: MouseEvent, date: Date) => void;
115
+ toUnit: (v: string | number | undefined | null, unit?: string) => string | undefined;
116
+ messages: import("vue").ComputedRef<{
117
+ close: string;
118
+ clear: string;
119
+ loading: string;
120
+ noData: string;
121
+ noResults: string;
122
+ search: string;
123
+ selectAll: string;
124
+ today: string;
125
+ previous: string;
126
+ next: string;
127
+ rowsPerPage: string;
128
+ pageRange: string;
129
+ required: string;
130
+ }>;
131
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "update:view" | "click:event" | "click:date" | "click:time" | "event-change")[], "update:modelValue" | "update:view" | "click:event" | "click:date" | "click:time" | "event-change", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
132
+ /** Focused date (ISO `YYYY-MM-DD`). */
133
+ modelValue: {
134
+ type: StringConstructor;
135
+ default: undefined;
136
+ };
137
+ view: {
138
+ type: PropType<View>;
139
+ default: string;
140
+ };
141
+ views: {
142
+ type: PropType<View[]>;
143
+ default: () => string[];
144
+ };
145
+ events: {
146
+ type: PropType<CalendarEvent[]>;
147
+ default: () => never[];
148
+ };
149
+ firstDayOfWeek: {
150
+ type: NumberConstructor;
151
+ default: number;
152
+ };
153
+ editable: BooleanConstructor;
154
+ /** Minutes the drag snaps to. */
155
+ snap: {
156
+ type: NumberConstructor;
157
+ default: number;
158
+ };
159
+ hourHeight: {
160
+ type: NumberConstructor;
161
+ default: number;
162
+ };
163
+ height: {
164
+ type: (NumberConstructor | StringConstructor)[];
165
+ default: number;
166
+ };
167
+ maxEvents: {
168
+ type: NumberConstructor;
169
+ default: number;
170
+ };
171
+ locale: {
172
+ type: StringConstructor;
173
+ default: undefined;
174
+ };
175
+ hour12: {
176
+ type: BooleanConstructor;
177
+ default: undefined;
178
+ };
179
+ }>> & Readonly<{
180
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
181
+ "onUpdate:view"?: ((...args: any[]) => any) | undefined;
182
+ "onClick:event"?: ((...args: any[]) => any) | undefined;
183
+ "onClick:date"?: ((...args: any[]) => any) | undefined;
184
+ "onClick:time"?: ((...args: any[]) => any) | undefined;
185
+ "onEvent-change"?: ((...args: any[]) => any) | undefined;
186
+ }>, {
187
+ modelValue: string;
188
+ editable: boolean;
189
+ view: View;
190
+ views: View[];
191
+ events: CalendarEvent[];
192
+ firstDayOfWeek: number;
193
+ snap: number;
194
+ hourHeight: number;
195
+ height: string | number;
196
+ maxEvents: number;
197
+ locale: string;
198
+ hour12: boolean;
199
+ }, {}, {
200
+ SqBtn: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
201
+ text: {
202
+ type: StringConstructor;
203
+ default: undefined;
204
+ };
205
+ variant: {
206
+ type: PropType<import("@squirkle-ui/ui").Variant>;
207
+ default: import("@squirkle-ui/ui").Variant;
208
+ };
209
+ color: {
210
+ default: string;
211
+ type: StringConstructor;
212
+ };
213
+ size: {
214
+ type: PropType<import("@squirkle-ui/ui").Size>;
215
+ default: string;
216
+ };
217
+ rounded: {
218
+ type: PropType<import("@squirkle-ui/ui").Rounded>;
219
+ default: undefined;
220
+ };
221
+ icon: {
222
+ type: (BooleanConstructor | StringConstructor)[];
223
+ default: undefined;
224
+ };
225
+ prependIcon: {
226
+ type: StringConstructor;
227
+ default: undefined;
228
+ };
229
+ appendIcon: {
230
+ type: StringConstructor;
231
+ default: undefined;
232
+ };
233
+ block: BooleanConstructor;
234
+ loading: BooleanConstructor;
235
+ disabled: BooleanConstructor;
236
+ active: {
237
+ type: BooleanConstructor;
238
+ default: undefined;
239
+ };
240
+ elevation: {
241
+ type: (StringConstructor | NumberConstructor)[];
242
+ default: undefined;
243
+ };
244
+ href: {
245
+ type: StringConstructor;
246
+ default: undefined;
247
+ };
248
+ to: {
249
+ type: (ObjectConstructor | StringConstructor)[];
250
+ default: undefined;
251
+ };
252
+ type: {
253
+ type: PropType<"button" | "submit" | "reset">;
254
+ default: string;
255
+ };
256
+ value: {
257
+ type: (ObjectConstructor | BooleanConstructor | StringConstructor | NumberConstructor)[];
258
+ default: undefined;
259
+ };
260
+ }>, {
261
+ tag: import("vue").ComputedRef<"button" | "router-link" | "a">;
262
+ style: import("vue").ComputedRef<{
263
+ "--sq-shadow"?: undefined;
264
+ "--sq-shadow-filter"?: undefined;
265
+ "--sq-r": string;
266
+ } | {
267
+ "--sq-shadow": string;
268
+ "--sq-shadow-filter": string;
269
+ "--sq-r": string;
270
+ }>;
271
+ classes: import("vue").ComputedRef<(string | {
272
+ "sq-btn--icon": boolean;
273
+ "sq-btn--block": boolean;
274
+ "sq-btn--loading": boolean;
275
+ "sq-btn--active": boolean;
276
+ "sq-disabled": boolean;
277
+ })[]>;
278
+ iconName: import("vue").ComputedRef<string | undefined>;
279
+ isActive: import("vue").ComputedRef<boolean>;
280
+ isDisabled: import("vue").ComputedRef<boolean>;
281
+ toggleable: boolean;
282
+ onClick: (e: MouseEvent) => void;
283
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "click"[], "click", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
284
+ text: {
285
+ type: StringConstructor;
286
+ default: undefined;
287
+ };
288
+ variant: {
289
+ type: PropType<import("@squirkle-ui/ui").Variant>;
290
+ default: import("@squirkle-ui/ui").Variant;
291
+ };
292
+ color: {
293
+ default: string;
294
+ type: StringConstructor;
295
+ };
296
+ size: {
297
+ type: PropType<import("@squirkle-ui/ui").Size>;
298
+ default: string;
299
+ };
300
+ rounded: {
301
+ type: PropType<import("@squirkle-ui/ui").Rounded>;
302
+ default: undefined;
303
+ };
304
+ icon: {
305
+ type: (BooleanConstructor | StringConstructor)[];
306
+ default: undefined;
307
+ };
308
+ prependIcon: {
309
+ type: StringConstructor;
310
+ default: undefined;
311
+ };
312
+ appendIcon: {
313
+ type: StringConstructor;
314
+ default: undefined;
315
+ };
316
+ block: BooleanConstructor;
317
+ loading: BooleanConstructor;
318
+ disabled: BooleanConstructor;
319
+ active: {
320
+ type: BooleanConstructor;
321
+ default: undefined;
322
+ };
323
+ elevation: {
324
+ type: (StringConstructor | NumberConstructor)[];
325
+ default: undefined;
326
+ };
327
+ href: {
328
+ type: StringConstructor;
329
+ default: undefined;
330
+ };
331
+ to: {
332
+ type: (ObjectConstructor | StringConstructor)[];
333
+ default: undefined;
334
+ };
335
+ type: {
336
+ type: PropType<"button" | "submit" | "reset">;
337
+ default: string;
338
+ };
339
+ value: {
340
+ type: (ObjectConstructor | BooleanConstructor | StringConstructor | NumberConstructor)[];
341
+ default: undefined;
342
+ };
343
+ }>> & Readonly<{
344
+ onClick?: ((...args: any[]) => any) | undefined;
345
+ }>, {
346
+ loading: boolean;
347
+ icon: string | boolean;
348
+ type: "button" | "submit" | "reset";
349
+ active: boolean;
350
+ text: string;
351
+ size: import("@squirkle-ui/ui").Size;
352
+ color: string;
353
+ rounded: import("@squirkle-ui/ui").Rounded;
354
+ block: boolean;
355
+ disabled: boolean;
356
+ variant: import("@squirkle-ui/ui").Variant;
357
+ prependIcon: string;
358
+ appendIcon: string;
359
+ elevation: string | number;
360
+ href: string;
361
+ to: string | Record<string, any>;
362
+ value: string | number | boolean | Record<string, any>;
363
+ }, {}, {
364
+ SqShape: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
365
+ watchKey: {
366
+ type: (ObjectConstructor | BooleanConstructor | ArrayConstructor | StringConstructor | NumberConstructor)[];
367
+ default: undefined;
368
+ };
369
+ clip: BooleanConstructor;
370
+ }>, {
371
+ active: import("vue").Ref<boolean, boolean>;
372
+ w: import("vue").Ref<number, number>;
373
+ h: import("vue").Ref<number, number>;
374
+ bw: import("vue").Ref<number, number>;
375
+ d: import("vue").ComputedRef<string>;
376
+ strokeD: import("vue").ComputedRef<string>;
377
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
378
+ watchKey: {
379
+ type: (ObjectConstructor | BooleanConstructor | ArrayConstructor | StringConstructor | NumberConstructor)[];
380
+ default: undefined;
381
+ };
382
+ clip: BooleanConstructor;
383
+ }>> & Readonly<{}>, {
384
+ clip: boolean;
385
+ watchKey: string | number | boolean | unknown[] | Record<string, any>;
386
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
387
+ SqIcon: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
388
+ icon: {
389
+ type: StringConstructor;
390
+ default: undefined;
391
+ };
392
+ size: {
393
+ type: (StringConstructor | NumberConstructor)[];
394
+ default: string;
395
+ };
396
+ color: {
397
+ type: StringConstructor;
398
+ default: undefined;
399
+ };
400
+ label: {
401
+ type: StringConstructor;
402
+ default: undefined;
403
+ };
404
+ clickable: BooleanConstructor;
405
+ }>, {
406
+ resolved: import("vue").ComputedRef<import("@squirkle-ui/ui/dist/types/icons").ResolvedIcon>;
407
+ style: import("vue").ComputedRef<{
408
+ "--sq-icon-size": string;
409
+ color: string | undefined;
410
+ }>;
411
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
412
+ icon: {
413
+ type: StringConstructor;
414
+ default: undefined;
415
+ };
416
+ size: {
417
+ type: (StringConstructor | NumberConstructor)[];
418
+ default: string;
419
+ };
420
+ color: {
421
+ type: StringConstructor;
422
+ default: undefined;
423
+ };
424
+ label: {
425
+ type: StringConstructor;
426
+ default: undefined;
427
+ };
428
+ clickable: BooleanConstructor;
429
+ }>> & Readonly<{}>, {
430
+ label: string;
431
+ icon: string;
432
+ clickable: boolean;
433
+ size: string | number;
434
+ color: string;
435
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
436
+ SqProgressCircular: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
437
+ modelValue: {
438
+ type: NumberConstructor;
439
+ default: number;
440
+ };
441
+ indeterminate: BooleanConstructor;
442
+ size: {
443
+ type: (StringConstructor | NumberConstructor)[];
444
+ default: number;
445
+ };
446
+ width: {
447
+ type: NumberConstructor;
448
+ default: number;
449
+ };
450
+ color: {
451
+ type: StringConstructor;
452
+ default: string;
453
+ };
454
+ }>, {
455
+ r: import("vue").ComputedRef<number>;
456
+ circ: import("vue").ComputedRef<number>;
457
+ offset: import("vue").ComputedRef<number>;
458
+ style: import("vue").ComputedRef<{
459
+ width: string | undefined;
460
+ height: string | undefined;
461
+ color: string | undefined;
462
+ }>;
463
+ has: (n: string) => boolean;
464
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
465
+ modelValue: {
466
+ type: NumberConstructor;
467
+ default: number;
468
+ };
469
+ indeterminate: BooleanConstructor;
470
+ size: {
471
+ type: (StringConstructor | NumberConstructor)[];
472
+ default: number;
473
+ };
474
+ width: {
475
+ type: NumberConstructor;
476
+ default: number;
477
+ };
478
+ color: {
479
+ type: StringConstructor;
480
+ default: string;
481
+ };
482
+ }>> & Readonly<{}>, {
483
+ width: number;
484
+ size: string | number;
485
+ color: string;
486
+ indeterminate: boolean;
487
+ modelValue: number;
488
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
489
+ }, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
490
+ SqBtnToggle: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
491
+ modelValue: {
492
+ type: (ObjectConstructor | BooleanConstructor | ArrayConstructor | StringConstructor | NumberConstructor)[];
493
+ default: undefined;
494
+ };
495
+ multiple: BooleanConstructor;
496
+ mandatory: BooleanConstructor;
497
+ disabled: BooleanConstructor;
498
+ divided: BooleanConstructor;
499
+ rounded: {
500
+ default: string;
501
+ type: import("vue").PropType<import("@squirkle-ui/ui").Rounded>;
502
+ };
503
+ }>, void, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
504
+ modelValue: {
505
+ type: (ObjectConstructor | BooleanConstructor | ArrayConstructor | StringConstructor | NumberConstructor)[];
506
+ default: undefined;
507
+ };
508
+ multiple: BooleanConstructor;
509
+ mandatory: BooleanConstructor;
510
+ disabled: BooleanConstructor;
511
+ divided: BooleanConstructor;
512
+ rounded: {
513
+ default: string;
514
+ type: import("vue").PropType<import("@squirkle-ui/ui").Rounded>;
515
+ };
516
+ }>> & Readonly<{
517
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
518
+ }>, {
519
+ modelValue: string | number | boolean | unknown[] | Record<string, any>;
520
+ rounded: import("@squirkle-ui/ui").Rounded;
521
+ disabled: boolean;
522
+ multiple: boolean;
523
+ divided: boolean;
524
+ mandatory: boolean;
525
+ }, {}, {
526
+ SqBtnGroup: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
527
+ rounded: {
528
+ default: string;
529
+ type: import("vue").PropType<import("@squirkle-ui/ui").Rounded>;
530
+ };
531
+ divided: BooleanConstructor;
532
+ color: {
533
+ type: StringConstructor;
534
+ default: undefined;
535
+ };
536
+ }>, {
537
+ style: import("vue").ComputedRef<{
538
+ "--sq-r": string;
539
+ "--sq-bg": string;
540
+ "--sq-group-color": string | undefined;
541
+ }>;
542
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
543
+ rounded: {
544
+ default: string;
545
+ type: import("vue").PropType<import("@squirkle-ui/ui").Rounded>;
546
+ };
547
+ divided: BooleanConstructor;
548
+ color: {
549
+ type: StringConstructor;
550
+ default: undefined;
551
+ };
552
+ }>> & Readonly<{}>, {
553
+ color: string;
554
+ rounded: import("@squirkle-ui/ui").Rounded;
555
+ divided: boolean;
556
+ }, {}, {
557
+ SqShape: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
558
+ watchKey: {
559
+ type: (ObjectConstructor | BooleanConstructor | ArrayConstructor | StringConstructor | NumberConstructor)[];
560
+ default: undefined;
561
+ };
562
+ clip: BooleanConstructor;
563
+ }>, {
564
+ active: import("vue").Ref<boolean, boolean>;
565
+ w: import("vue").Ref<number, number>;
566
+ h: import("vue").Ref<number, number>;
567
+ bw: import("vue").Ref<number, number>;
568
+ d: import("vue").ComputedRef<string>;
569
+ strokeD: import("vue").ComputedRef<string>;
570
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
571
+ watchKey: {
572
+ type: (ObjectConstructor | BooleanConstructor | ArrayConstructor | StringConstructor | NumberConstructor)[];
573
+ default: undefined;
574
+ };
575
+ clip: BooleanConstructor;
576
+ }>> & Readonly<{}>, {
577
+ clip: boolean;
578
+ watchKey: string | number | boolean | unknown[] | Record<string, any>;
579
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
580
+ }, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
581
+ }, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
582
+ SqShape: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
583
+ watchKey: {
584
+ type: (ObjectConstructor | BooleanConstructor | ArrayConstructor | StringConstructor | NumberConstructor)[];
585
+ default: undefined;
586
+ };
587
+ clip: BooleanConstructor;
588
+ }>, {
589
+ active: import("vue").Ref<boolean, boolean>;
590
+ w: import("vue").Ref<number, number>;
591
+ h: import("vue").Ref<number, number>;
592
+ bw: import("vue").Ref<number, number>;
593
+ d: import("vue").ComputedRef<string>;
594
+ strokeD: import("vue").ComputedRef<string>;
595
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
596
+ watchKey: {
597
+ type: (ObjectConstructor | BooleanConstructor | ArrayConstructor | StringConstructor | NumberConstructor)[];
598
+ default: undefined;
599
+ };
600
+ clip: BooleanConstructor;
601
+ }>> & Readonly<{}>, {
602
+ clip: boolean;
603
+ watchKey: string | number | boolean | unknown[] | Record<string, any>;
604
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
605
+ }, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -0,0 +1,5 @@
1
+ import SqCalendar from './SqCalendar.vue';
2
+ export { SqCalendar };
3
+ export * from './layout';
4
+ export declare const componentNames: readonly ["SqCalendar"];
5
+ export default SqCalendar;
@@ -0,0 +1,28 @@
1
+ /** Pure layout helpers for SqCalendar (unit-tested). */
2
+ export interface CalendarEvent {
3
+ id: string | number;
4
+ title: string;
5
+ start: Date | string;
6
+ end?: Date | string;
7
+ color?: string;
8
+ allDay?: boolean;
9
+ [key: string]: unknown;
10
+ }
11
+ export interface NormEvent {
12
+ ev: CalendarEvent;
13
+ start: Date;
14
+ end: Date;
15
+ }
16
+ export declare function normalizeEvent(ev: CalendarEvent): NormEvent;
17
+ export interface Placed extends NormEvent {
18
+ col: number;
19
+ cols: number;
20
+ top: number;
21
+ height: number;
22
+ }
23
+ /**
24
+ * Side-by-side layout for timed events of one day: overlapping events share the width in columns.
25
+ * top/height are in minutes from midnight.
26
+ */
27
+ export declare function layoutDay(events: NormEvent[], day: Date): Placed[];
28
+ export declare const eventsOnDay: (events: NormEvent[], day: Date) => NormEvent[];