react-native-ll-calendar 0.16.0 → 0.17.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/README.md CHANGED
@@ -1,6 +1,10 @@
1
1
  # react-native-ll-calendar
2
2
 
3
- A horizontally scrollable monthly calendar component for React Native with event support.
3
+ A collection of horizontally scrollable calendar components for React Native with event support.
4
+
5
+ - **MonthCalendar** — month view, swipe left/right to change months
6
+ - **ResourcesCalendar** — resource × date grid, horizontal scroll across a date range
7
+ - **WeekResourcesCalendar** — resource × date grid, swipe left/right to change weeks
4
8
 
5
9
  <img src="assets/screen-shot.png" width="320px">
6
10
 
@@ -138,26 +142,111 @@ You can access these methods by passing a `ref` to the `MonthCalendar` component
138
142
  | `borderWidth` | `number` | No | Border width |
139
143
  | `borderRadius` | `number` | No | Border radius |
140
144
 
145
+ ---
146
+
147
+ ### ResourcesCalendar Props
148
+
149
+ | Prop | Type | Required | Default | Description |
150
+ | --- | --- | --- | --- | --- |
151
+ | `fromDate` | `Date` | Yes | - | Start of the displayed date range |
152
+ | `toDate` | `Date` | Yes | - | End of the displayed date range |
153
+ | `resources` | `CalendarResource[]` | Yes | - | List of resources (rows) |
154
+ | `events` | `ResourcesCalendarEvent[]` | Yes | - | Array of resource events |
155
+ | `renderDateLabel` | `(date: Date) => JSX.Element` | No | - | Custom header date cell content |
156
+ | `renderMonthLabel` | `(year: number, month: number) => JSX.Element` | No | - | Custom month label content |
157
+ | `renderResourceNameLabel` | `(resource: CalendarResource) => JSX.Element` | No | - | Custom resource name cell content |
158
+ | `resourceColumnWidth` | `number` | No | `80` | Width of the resource name column |
159
+ | `dateColumnWidth` | `number` | No | `60` | Width of each date column |
160
+ | `onRefresh` | `() => void` | No | - | Callback for pull-to-refresh |
161
+ | `refreshing` | `boolean` | No | - | Whether the calendar is refreshing |
162
+ | `fixedRowCount` | `number` | No | `0` | Number of resource rows pinned above the scroll area |
163
+ | `onPressCell` | `(resource: CalendarResource, date: Date) => void` | No | - | Callback when a cell is pressed |
164
+ | `onLongPressCell` | `(resource: CalendarResource, date: Date) => void` | No | - | Callback when a cell is long pressed |
165
+ | `delayLongPressCell` | `number` | No | - | Delay in ms before long press is triggered |
166
+ | `onPressEvent` | `(event: ResourcesCalendarEvent) => void` | No | - | Callback when an event is pressed |
167
+ | `onLongPressEvent` | `(event: ResourcesCalendarEvent) => void` | No | - | Callback when an event is long pressed |
168
+ | `delayLongPressEvent` | `number` | No | - | Delay in ms before long press is triggered |
169
+ | `eventHeight` | `number` | No | `22` | Height of event items in pixels |
170
+ | `bottomSpacing` | `number` | No | - | Bottom spacing in pixels for scrollable content |
171
+ | `eventTextStyle` | `(event: ResourcesCalendarEvent) => TextStyle` | No | - | Style function for event text |
172
+ | `eventEllipsizeMode` | `'head' \| 'middle' \| 'tail' \| 'clip'` | No | `'tail'` | Ellipsize mode for event text |
173
+ | `renderEventOverlay` | `(event: ResourcesCalendarEvent) => ReactNode` | No | - | Optional overlay above each event |
174
+ | `dateCellContainerStyle` | `(date: Date) => ViewStyle` | No | - | Style for header date cells |
175
+ | `cellContainerStyle` | `(resource: CalendarResource, date: Date) => ViewStyle` | No | - | Style for resource day cell background |
176
+ | `hiddenMonth` | `boolean` | No | `false` | Hide the month header row |
177
+ | `allowFontScaling` | `boolean` | No | - | Enable font scaling for text elements |
178
+ | `resourceNameLayout` | `'fixed-column' \| 'inline-band'` | No | `'fixed-column'` | Layout mode for the resource name |
179
+ | `prioritizeCellInteraction` | `boolean` | No | `false` | Overlay to prioritize cell taps over events |
180
+
181
+ ### CalendarResource
182
+
183
+ | Property | Type | Required | Description |
184
+ | --- | --- | --- | --- |
185
+ | `id` | `string` | Yes | Unique identifier |
186
+ | `name` | `string` | Yes | Display name |
187
+
188
+ ### ResourcesCalendarEvent
189
+
190
+ Same fields as `CalendarEvent` with the addition of:
191
+
192
+ | Property | Type | Required | Description |
193
+ | --- | --- | --- | --- |
194
+ | `resourceId` | `string` | Yes | ID of the resource this event belongs to |
195
+
196
+ ---
197
+
198
+ ### WeekResourcesCalendar Props
199
+
200
+ | Prop | Type | Required | Default | Description |
201
+ | --- | --- | --- | --- | --- |
202
+ | `defaultDate` | `Date` | Yes | - | Initial date to display |
203
+ | `weekStartsOn` | `0 \| 1` | No | `0` | Week start day (0 = Sunday, 1 = Monday) |
204
+ | `onChangeDate` | `(date: Date) => void` | No | - | Callback when the displayed week changes |
205
+ | `resources` | `CalendarResource[]` | Yes | - | List of resources (rows) |
206
+ | `events` | `ResourcesCalendarEvent[]` | Yes | - | Array of resource events |
207
+ | `eventHeight` | `number` | No | `22` | Height of event items in pixels |
208
+ | `onPressCell` | `(resource: CalendarResource, date: Date) => void` | No | - | Callback when a cell is pressed |
209
+ | `onLongPressCell` | `(resource: CalendarResource, date: Date) => void` | No | - | Callback when a cell is long pressed |
210
+ | `delayLongPressCell` | `number` | No | - | Delay in ms before long press is triggered |
211
+ | `onPressEvent` | `(event: ResourcesCalendarEvent) => void` | No | - | Callback when an event is pressed |
212
+ | `onLongPressEvent` | `(event: ResourcesCalendarEvent) => void` | No | - | Callback when an event is long pressed |
213
+ | `delayLongPressEvent` | `number` | No | - | Delay in ms before long press is triggered |
214
+ | `prioritizeCellInteraction` | `boolean` | No | `false` | Overlay to prioritize cell taps over events |
215
+ | `eventTextStyle` | `(event: ResourcesCalendarEvent) => TextStyle` | No | - | Style function for event text |
216
+ | `eventEllipsizeMode` | `'head' \| 'middle' \| 'tail' \| 'clip'` | No | `'tail'` | Ellipsize mode for event text |
217
+ | `allowFontScaling` | `boolean` | No | - | Enable font scaling for text elements |
218
+ | `renderEventOverlay` | `(event: ResourcesCalendarEvent) => ReactNode` | No | - | Optional overlay above each event |
219
+ | `dateCellContainerStyle` | `(date: Date) => ViewStyle` | No | - | Style for header date cells |
220
+ | `cellContainerStyle` | `(resource: CalendarResource, date: Date) => ViewStyle` | No | - | Style for resource day cell background |
221
+ | `renderDateLabel` | `(date: Date) => JSX.Element` | No | - | Custom header date cell content |
222
+ | `renderResourceNameLabel` | `(resource: CalendarResource) => JSX.Element` | No | - | Custom resource name cell content |
223
+ | `onRefresh` | `() => void` | No | - | Callback for pull-to-refresh |
224
+ | `refreshing` | `boolean` | No | - | Whether the calendar is refreshing |
225
+ | `bottomSpacing` | `number` | No | - | Bottom spacing in pixels for scrollable content |
226
+ | `fixedRowCount` | `number` | No | `0` | Number of resource rows pinned above the scroll area |
227
+
228
+ ---
229
+
141
230
  ## Features
142
231
 
143
- - Horizontally scrollable month view
144
- - Multi-day event support
232
+ - Horizontally scrollable month view (±10 years)
233
+ - Horizontally scrollable week resource view (±120 weeks)
234
+ - Resource × date grid view across a custom date range
235
+ - Multi-day event support with overlap stacking
145
236
  - Customizable event colors and border styles
146
237
  - Event press handlers (tap and long press)
147
- - Date cell press handlers (tap and long press)
238
+ - Cell press handlers (tap and long press)
239
+ - `prioritizeCellInteraction` to route taps to cells over events
148
240
  - Configurable week start day (Sunday or Monday)
149
- - Customizable styling for day cells, weekday cells, and today's cell
150
241
  - Pull-to-refresh support
242
+ - Fixed row pinning for resource calendars
243
+ - Custom render props for date labels, month labels, and resource names
244
+ - Event overlay support (e.g. badge counts)
151
245
  - Locale support for internationalization
152
- - Optional month header visibility control
153
- - Custom month format display
154
- - Sticky header support for month and week rows
155
- - Customizable cell border colors
156
246
  - Font scaling control for text elements
157
247
  - Customizable event height and text styles
158
- - Spans 10 years before and after the default date
159
- - **Programmatic scroll control via Ref**
160
- - **Dynamic row height retrieval via Ref**
248
+ - **Programmatic scroll control via Ref** (MonthCalendar)
249
+ - **Dynamic row height retrieval via Ref** (MonthCalendar)
161
250
 
162
251
  ## License
163
252
 
@@ -0,0 +1,402 @@
1
+ "use strict";
2
+
3
+ import React, { useMemo } from 'react';
4
+ import { Platform, RefreshControl, ScrollView, StyleSheet, Text, TouchableOpacity, View } from 'react-native';
5
+ import dayjs from 'dayjs';
6
+ import ResourcesCalendarEventPosition from "../../utils/resources-calendar-event-position.js";
7
+ import { EVENT_GAP } from "../../constants/size.js";
8
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
9
+ export const CELL_BORDER_WIDTH = 0.5;
10
+ export const BORDER_COLOR = 'lightslategrey';
11
+ const DEFAULT_EVENT_HEIGHT = 22;
12
+ function DayCell({
13
+ resource,
14
+ date,
15
+ dateIndex,
16
+ columnWidth,
17
+ eventHeight,
18
+ eventPosition,
19
+ eventsByResourceId,
20
+ onPressCell,
21
+ onLongPressCell,
22
+ delayLongPressCell,
23
+ onPressEvent,
24
+ onLongPressEvent,
25
+ delayLongPressEvent,
26
+ prioritizeCellInteraction,
27
+ eventTextStyle,
28
+ eventEllipsizeMode,
29
+ allowFontScaling,
30
+ renderEventOverlay,
31
+ cellContainerStyle
32
+ }) {
33
+ const resourceEvents = eventsByResourceId.get(resource.id) ?? [];
34
+ const filteredEvents = resourceEvents.filter(event => {
35
+ const startDjs = dayjs(event.start);
36
+ const endDjs = dayjs(event.end);
37
+ return startDjs.format('YYYY-MM-DD') === date.format('YYYY-MM-DD') || dateIndex === 0 && startDjs.isBefore(date) && !endDjs.startOf('day').isBefore(date.startOf('day'));
38
+ }).sort((a, b) => {
39
+ const aStartDjs = dateIndex === 0 ? date : dayjs(a.start);
40
+ const bStartDjs = dateIndex === 0 ? date : dayjs(b.start);
41
+ const aDiffDays = dayjs(a.end).startOf('day').diff(aStartDjs.startOf('day'), 'day');
42
+ const bDiffDays = dayjs(b.end).startOf('day').diff(bStartDjs.startOf('day'), 'day');
43
+ if (aDiffDays !== bDiffDays) {
44
+ return bDiffDays - aDiffDays;
45
+ }
46
+ return dayjs(a.start).diff(dayjs(b.start));
47
+ });
48
+ const rowNums = eventPosition.getRowNums({
49
+ resourceId: resource.id,
50
+ date: date.toDate()
51
+ });
52
+ const cellEvents = [];
53
+ const rowsLength = rowNums.length + filteredEvents.length;
54
+ let eventIndex = 0;
55
+ for (let ii = 1; ii <= rowsLength; ii++) {
56
+ if (rowNums.includes(ii)) {
57
+ cellEvents.push(ii);
58
+ } else {
59
+ const event = filteredEvents[eventIndex];
60
+ if (event) {
61
+ cellEvents.push(event);
62
+ }
63
+ eventIndex++;
64
+ }
65
+ }
66
+ const showPrioritizedCellOverlay = prioritizeCellInteraction === true && (onPressCell != null || onLongPressCell != null);
67
+ const cellWrapperStyle = [styles.dayCell, {
68
+ width: columnWidth,
69
+ zIndex: 7 - dateIndex
70
+ }];
71
+ const cellInner = /*#__PURE__*/_jsxs(_Fragment, {
72
+ children: [/*#__PURE__*/_jsx(View, {
73
+ style: [styles.dayCellBackground, cellContainerStyle?.(resource, date.toDate())]
74
+ }), cellEvents.map((event, rowIndex) => {
75
+ if (typeof event === 'number') {
76
+ return /*#__PURE__*/_jsx(View, {
77
+ style: {
78
+ height: eventHeight,
79
+ marginBottom: EVENT_GAP
80
+ }
81
+ }, `spacer-${rowIndex}`);
82
+ }
83
+ const rawStartDjs = dayjs(event.start);
84
+ const startDjs = dateIndex === 0 ? date : rawStartDjs;
85
+ const endDjs = dayjs(event.end);
86
+ const diffDays = endDjs.startOf('day').diff(startDjs.startOf('day'), 'day');
87
+ const isPrevDateEvent = dateIndex === 0 && rawStartDjs.isBefore(date);
88
+ const remainingDaysInWeek = 6 - dateIndex;
89
+ const isNextWeekEvent = diffDays > remainingDaysInWeek;
90
+ const effectiveDiffDays = isNextWeekEvent ? remainingDaysInWeek : diffDays;
91
+ let width = (effectiveDiffDays + 1) * columnWidth - EVENT_GAP * 2 - CELL_BORDER_WIDTH * 2;
92
+ if (isPrevDateEvent) {
93
+ width += EVENT_GAP + 1;
94
+ }
95
+ if (isNextWeekEvent) {
96
+ width += EVENT_GAP + CELL_BORDER_WIDTH;
97
+ }
98
+ eventPosition.push({
99
+ resourceId: resource.id,
100
+ startDate: startDjs.toDate(),
101
+ days: effectiveDiffDays + 1,
102
+ rowNum: rowIndex + 1
103
+ });
104
+ const eventOverlayNode = renderEventOverlay?.(event);
105
+ const showEventOverlay = renderEventOverlay != null && eventOverlayNode != null && eventOverlayNode !== false;
106
+ return /*#__PURE__*/_jsxs(View, {
107
+ pointerEvents: showPrioritizedCellOverlay ? 'none' : 'auto',
108
+ style: [styles.eventOuter, {
109
+ width,
110
+ height: eventHeight
111
+ }, isPrevDateEvent && styles.prevDateEvent],
112
+ children: [/*#__PURE__*/_jsx(TouchableOpacity, {
113
+ style: [styles.event, {
114
+ backgroundColor: event.backgroundColor,
115
+ borderColor: event.borderColor,
116
+ ...(event.borderStyle !== undefined && {
117
+ borderStyle: event.borderStyle
118
+ }),
119
+ ...(event.borderWidth !== undefined && {
120
+ borderWidth: event.borderWidth
121
+ }),
122
+ ...(event.borderRadius !== undefined && {
123
+ borderRadius: event.borderRadius
124
+ })
125
+ }, isPrevDateEvent && styles.prevDateEventInner, isNextWeekEvent && styles.nextWeekEventInner],
126
+ activeOpacity: 0.8,
127
+ onPress: () => onPressEvent?.(event),
128
+ onLongPress: () => onLongPressEvent?.(event),
129
+ delayLongPress: delayLongPressEvent,
130
+ children: /*#__PURE__*/_jsx(Text, {
131
+ numberOfLines: 1,
132
+ ellipsizeMode: eventEllipsizeMode ?? 'tail',
133
+ allowFontScaling: allowFontScaling,
134
+ style: [styles.eventTitle, {
135
+ color: event.color
136
+ }, eventTextStyle?.(event)],
137
+ children: event.title
138
+ })
139
+ }), showEventOverlay ? /*#__PURE__*/_jsx(View, {
140
+ style: styles.eventOverlayHost,
141
+ pointerEvents: "box-none",
142
+ children: eventOverlayNode
143
+ }) : null]
144
+ }, event.id);
145
+ })]
146
+ });
147
+ return showPrioritizedCellOverlay ? /*#__PURE__*/_jsxs(View, {
148
+ style: cellWrapperStyle,
149
+ children: [cellInner, /*#__PURE__*/_jsx(TouchableOpacity, {
150
+ accessible: false,
151
+ style: styles.cellInteractionOverlay,
152
+ activeOpacity: 1,
153
+ onPress: () => onPressCell?.(resource, date.toDate()),
154
+ onLongPress: () => onLongPressCell?.(resource, date.toDate()),
155
+ delayLongPress: delayLongPressCell
156
+ })]
157
+ }) : /*#__PURE__*/_jsx(TouchableOpacity, {
158
+ activeOpacity: 1,
159
+ style: cellWrapperStyle,
160
+ onPress: () => onPressCell?.(resource, date.toDate()),
161
+ onLongPress: () => onLongPressCell?.(resource, date.toDate()),
162
+ delayLongPress: delayLongPressCell,
163
+ children: cellInner
164
+ });
165
+ }
166
+ export function WeekPanel({
167
+ weekKey,
168
+ width,
169
+ resources,
170
+ events,
171
+ eventHeight,
172
+ onPressCell,
173
+ onLongPressCell,
174
+ delayLongPressCell,
175
+ onPressEvent,
176
+ onLongPressEvent,
177
+ delayLongPressEvent,
178
+ prioritizeCellInteraction,
179
+ eventTextStyle,
180
+ eventEllipsizeMode,
181
+ allowFontScaling,
182
+ renderEventOverlay,
183
+ dateCellContainerStyle,
184
+ cellContainerStyle,
185
+ renderDateLabel,
186
+ renderResourceNameLabel,
187
+ onRefresh,
188
+ refreshing,
189
+ bottomSpacing,
190
+ fixedRowCount
191
+ }) {
192
+ const columnWidth = width / 8;
193
+ const startDjs = dayjs(weekKey);
194
+ const days = Array.from({
195
+ length: 7
196
+ }, (_, i) => startDjs.add(i, 'day'));
197
+ const resolvedEventHeight = eventHeight ?? DEFAULT_EVENT_HEIGHT;
198
+ const resolvedFixedRowCount = fixedRowCount ?? 0;
199
+ const eventsByResourceId = useMemo(() => {
200
+ const deduped = new Map();
201
+ for (const event of events) {
202
+ deduped.set(event.id, event);
203
+ }
204
+ const map = new Map();
205
+ for (const event of deduped.values()) {
206
+ const list = map.get(event.resourceId) ?? [];
207
+ list.push(event);
208
+ map.set(event.resourceId, list);
209
+ }
210
+ return map;
211
+ }, [events]);
212
+ const fixedResources = useMemo(() => resources.slice(0, resolvedFixedRowCount), [resources, resolvedFixedRowCount]);
213
+ const scrollableResources = useMemo(() => resources.slice(resolvedFixedRowCount), [resources, resolvedFixedRowCount]);
214
+ const eventPosition = new ResourcesCalendarEventPosition();
215
+ const renderResourceRow = (resource, showTopBorder) => /*#__PURE__*/_jsxs(View, {
216
+ style: [styles.resourceRow, showTopBorder && styles.resourceRowFirst],
217
+ children: [/*#__PURE__*/_jsx(View, {
218
+ style: [styles.resourceNameCell, {
219
+ width: columnWidth
220
+ }],
221
+ children: renderResourceNameLabel ? renderResourceNameLabel(resource) : /*#__PURE__*/_jsx(Text, {
222
+ style: styles.resourceNameText,
223
+ numberOfLines: 2,
224
+ allowFontScaling: allowFontScaling,
225
+ children: resource.name
226
+ })
227
+ }), days.map((day, dateIndex) => /*#__PURE__*/_jsx(DayCell, {
228
+ resource: resource,
229
+ date: day,
230
+ dateIndex: dateIndex,
231
+ columnWidth: columnWidth,
232
+ eventHeight: resolvedEventHeight,
233
+ eventPosition: eventPosition,
234
+ eventsByResourceId: eventsByResourceId,
235
+ onPressCell: onPressCell,
236
+ onLongPressCell: onLongPressCell,
237
+ delayLongPressCell: delayLongPressCell,
238
+ onPressEvent: onPressEvent,
239
+ onLongPressEvent: onLongPressEvent,
240
+ delayLongPressEvent: delayLongPressEvent,
241
+ prioritizeCellInteraction: prioritizeCellInteraction,
242
+ eventTextStyle: eventTextStyle,
243
+ eventEllipsizeMode: eventEllipsizeMode,
244
+ allowFontScaling: allowFontScaling,
245
+ renderEventOverlay: renderEventOverlay,
246
+ cellContainerStyle: cellContainerStyle
247
+ }, day.format('YYYY-MM-DD')))]
248
+ }, resource.id);
249
+ return /*#__PURE__*/_jsxs(View, {
250
+ style: [styles.panel, {
251
+ width
252
+ }],
253
+ children: [/*#__PURE__*/_jsxs(View, {
254
+ style: styles.headerRow,
255
+ children: [/*#__PURE__*/_jsx(View, {
256
+ style: [styles.headerCell, styles.resourceNameHeaderCell, {
257
+ width: columnWidth
258
+ }]
259
+ }), days.map(day => /*#__PURE__*/_jsx(View, {
260
+ style: [styles.headerCell, {
261
+ width: columnWidth
262
+ }, dateCellContainerStyle?.(day.toDate())],
263
+ children: renderDateLabel ? renderDateLabel(day.toDate()) : /*#__PURE__*/_jsxs(_Fragment, {
264
+ children: [/*#__PURE__*/_jsx(Text, {
265
+ style: styles.headerDayOfWeekText,
266
+ children: day.format('ddd')
267
+ }), /*#__PURE__*/_jsx(Text, {
268
+ style: styles.headerDateText,
269
+ children: day.format('M/D')
270
+ })]
271
+ })
272
+ }, day.format('YYYY-MM-DD')))]
273
+ }), fixedResources.map((resource, index) => renderResourceRow(resource, index === 0)), /*#__PURE__*/_jsxs(ScrollView, {
274
+ showsVerticalScrollIndicator: false,
275
+ refreshControl: /*#__PURE__*/_jsx(RefreshControl, {
276
+ refreshing: refreshing ?? false,
277
+ onRefresh: onRefresh
278
+ }),
279
+ children: [scrollableResources.map((resource, index) => renderResourceRow(resource, fixedResources.length === 0 && index === 0)), /*#__PURE__*/_jsx(View, {
280
+ style: {
281
+ height: bottomSpacing
282
+ }
283
+ })]
284
+ })]
285
+ });
286
+ }
287
+ const styles = StyleSheet.create({
288
+ panel: {
289
+ flex: 1,
290
+ overflow: 'hidden'
291
+ },
292
+ headerRow: {
293
+ flexDirection: 'row',
294
+ backgroundColor: 'white',
295
+ borderBottomWidth: CELL_BORDER_WIDTH,
296
+ borderBottomColor: BORDER_COLOR
297
+ },
298
+ headerCell: {
299
+ alignItems: 'center',
300
+ justifyContent: 'center',
301
+ paddingVertical: 6,
302
+ borderRightWidth: CELL_BORDER_WIDTH,
303
+ borderRightColor: BORDER_COLOR
304
+ },
305
+ resourceNameHeaderCell: {
306
+ borderRightWidth: CELL_BORDER_WIDTH,
307
+ borderRightColor: BORDER_COLOR
308
+ },
309
+ headerDayOfWeekText: {
310
+ fontSize: 11,
311
+ color: '#666'
312
+ },
313
+ headerDateText: {
314
+ fontSize: 13,
315
+ fontWeight: '600',
316
+ color: '#222'
317
+ },
318
+ resourceRow: {
319
+ flexDirection: 'row',
320
+ minHeight: 30,
321
+ borderBottomWidth: CELL_BORDER_WIDTH,
322
+ borderBottomColor: BORDER_COLOR,
323
+ backgroundColor: 'white'
324
+ },
325
+ resourceRowFirst: {
326
+ borderTopWidth: CELL_BORDER_WIDTH,
327
+ borderTopColor: BORDER_COLOR
328
+ },
329
+ resourceNameCell: {
330
+ justifyContent: 'center',
331
+ paddingHorizontal: 4,
332
+ borderRightWidth: CELL_BORDER_WIDTH,
333
+ borderRightColor: BORDER_COLOR,
334
+ backgroundColor: '#fafafa'
335
+ },
336
+ resourceNameText: {
337
+ fontSize: 11,
338
+ color: '#333'
339
+ },
340
+ dayCell: {
341
+ borderRightWidth: CELL_BORDER_WIDTH,
342
+ borderRightColor: BORDER_COLOR,
343
+ minHeight: 30,
344
+ paddingBottom: EVENT_GAP,
345
+ position: 'relative'
346
+ },
347
+ dayCellBackground: {
348
+ ...StyleSheet.absoluteFillObject
349
+ },
350
+ cellInteractionOverlay: {
351
+ ...StyleSheet.absoluteFillObject,
352
+ zIndex: 1000,
353
+ backgroundColor: 'transparent',
354
+ ...Platform.select({
355
+ android: {
356
+ elevation: 12
357
+ },
358
+ default: {}
359
+ })
360
+ },
361
+ eventOuter: {
362
+ position: 'relative',
363
+ marginTop: EVENT_GAP,
364
+ marginLeft: EVENT_GAP
365
+ },
366
+ prevDateEvent: {
367
+ marginLeft: -1
368
+ },
369
+ prevDateEventInner: {
370
+ borderTopStartRadius: 0,
371
+ borderBottomStartRadius: 0
372
+ },
373
+ nextWeekEventInner: {
374
+ borderTopEndRadius: 0,
375
+ borderBottomEndRadius: 0,
376
+ paddingRight: 0
377
+ },
378
+ event: {
379
+ flex: 1,
380
+ width: '100%',
381
+ height: '100%',
382
+ borderWidth: 0.5,
383
+ borderRadius: 4,
384
+ paddingHorizontal: 4,
385
+ flexDirection: 'row',
386
+ alignItems: 'center',
387
+ ...Platform.select({
388
+ android: {
389
+ elevation: 2
390
+ },
391
+ default: {}
392
+ })
393
+ },
394
+ eventTitle: {
395
+ fontSize: 11
396
+ },
397
+ eventOverlayHost: {
398
+ ...StyleSheet.absoluteFillObject,
399
+ pointerEvents: 'box-none'
400
+ }
401
+ });
402
+ //# sourceMappingURL=WeekPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useMemo","Platform","RefreshControl","ScrollView","StyleSheet","Text","TouchableOpacity","View","dayjs","ResourcesCalendarEventPosition","EVENT_GAP","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","CELL_BORDER_WIDTH","BORDER_COLOR","DEFAULT_EVENT_HEIGHT","DayCell","resource","date","dateIndex","columnWidth","eventHeight","eventPosition","eventsByResourceId","onPressCell","onLongPressCell","delayLongPressCell","onPressEvent","onLongPressEvent","delayLongPressEvent","prioritizeCellInteraction","eventTextStyle","eventEllipsizeMode","allowFontScaling","renderEventOverlay","cellContainerStyle","resourceEvents","get","id","filteredEvents","filter","event","startDjs","start","endDjs","end","format","isBefore","startOf","sort","a","b","aStartDjs","bStartDjs","aDiffDays","diff","bDiffDays","rowNums","getRowNums","resourceId","toDate","cellEvents","rowsLength","length","eventIndex","ii","includes","push","showPrioritizedCellOverlay","cellWrapperStyle","styles","dayCell","width","zIndex","cellInner","children","style","dayCellBackground","map","rowIndex","height","marginBottom","rawStartDjs","diffDays","isPrevDateEvent","remainingDaysInWeek","isNextWeekEvent","effectiveDiffDays","startDate","days","rowNum","eventOverlayNode","showEventOverlay","pointerEvents","eventOuter","prevDateEvent","backgroundColor","borderColor","borderStyle","undefined","borderWidth","borderRadius","prevDateEventInner","nextWeekEventInner","activeOpacity","onPress","onLongPress","delayLongPress","numberOfLines","ellipsizeMode","eventTitle","color","title","eventOverlayHost","accessible","cellInteractionOverlay","WeekPanel","weekKey","resources","events","dateCellContainerStyle","renderDateLabel","renderResourceNameLabel","onRefresh","refreshing","bottomSpacing","fixedRowCount","Array","from","_","i","add","resolvedEventHeight","resolvedFixedRowCount","deduped","Map","set","values","list","fixedResources","slice","scrollableResources","renderResourceRow","showTopBorder","resourceRow","resourceRowFirst","resourceNameCell","resourceNameText","name","day","panel","headerRow","headerCell","resourceNameHeaderCell","headerDayOfWeekText","headerDateText","index","showsVerticalScrollIndicator","refreshControl","create","flex","overflow","flexDirection","borderBottomWidth","borderBottomColor","alignItems","justifyContent","paddingVertical","borderRightWidth","borderRightColor","fontSize","fontWeight","minHeight","borderTopWidth","borderTopColor","paddingHorizontal","paddingBottom","position","absoluteFillObject","select","android","elevation","default","marginTop","marginLeft","borderTopStartRadius","borderBottomStartRadius","borderTopEndRadius","borderBottomEndRadius","paddingRight"],"sourceRoot":"../../../../src","sources":["calendar/week-resources-calendar/WeekPanel.tsx"],"mappings":"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","ignoreList":[]}