react-native-ll-calendar 0.9.1 → 0.11.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/lib/module/calendar/resources-calendar/ResourcesCalendar.js +429 -0
- package/lib/module/calendar/resources-calendar/ResourcesCalendar.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/types/resources-calendar.js +2 -0
- package/lib/module/types/resources-calendar.js.map +1 -0
- package/lib/module/utils/functions.js +30 -0
- package/lib/module/utils/functions.js.map +1 -1
- package/lib/module/utils/resources-calendar-event-position.js +68 -0
- package/lib/module/utils/resources-calendar-event-position.js.map +1 -0
- package/lib/typescript/src/calendar/resources-calendar/ResourcesCalendar.d.ts +34 -0
- package/lib/typescript/src/calendar/resources-calendar/ResourcesCalendar.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +3 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types/resources-calendar.d.ts +18 -0
- package/lib/typescript/src/types/resources-calendar.d.ts.map +1 -0
- package/lib/typescript/src/utils/functions.d.ts +8 -0
- package/lib/typescript/src/utils/functions.d.ts.map +1 -1
- package/lib/typescript/src/utils/resources-calendar-event-position.d.ts +22 -0
- package/lib/typescript/src/utils/resources-calendar-event-position.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/calendar/resources-calendar/ResourcesCalendar.tsx +580 -0
- package/src/index.tsx +7 -0
- package/src/types/resources-calendar.ts +18 -0
- package/src/utils/functions.ts +34 -0
- package/src/utils/resources-calendar-event-position.ts +68 -0
|
@@ -0,0 +1,429 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useCallback, useMemo, useRef, useState } from 'react';
|
|
4
|
+
import { RefreshControl, ScrollView, StyleSheet, Text, TouchableOpacity } from 'react-native';
|
|
5
|
+
import { View } from 'react-native';
|
|
6
|
+
import { generateDates, groupDatesByMonth } from "../../utils/functions.js";
|
|
7
|
+
import dayjs from 'dayjs';
|
|
8
|
+
import ResourcesCalendarEventPosition from "../../utils/resources-calendar-event-position.js";
|
|
9
|
+
import { EVENT_GAP } from "../../constants/size.js";
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
+
const DEFAULT_DATE_COLUMN_WIDTH = 60;
|
|
12
|
+
const DEFAULT_EVENT_HEIGHT = 22;
|
|
13
|
+
const CELL_BORDER_WIDTH = 0.5;
|
|
14
|
+
function ResourceRow({
|
|
15
|
+
resource,
|
|
16
|
+
dates,
|
|
17
|
+
dateColumnWidth,
|
|
18
|
+
scrollOffset,
|
|
19
|
+
eventsByResourceId,
|
|
20
|
+
renderResourceNameLabel,
|
|
21
|
+
onPressCell,
|
|
22
|
+
onLongPressCell,
|
|
23
|
+
delayLongPressCell,
|
|
24
|
+
onPressEvent,
|
|
25
|
+
onLongPressEvent,
|
|
26
|
+
delayLongPressEvent,
|
|
27
|
+
eventHeight,
|
|
28
|
+
eventTextStyle,
|
|
29
|
+
eventEllipsizeMode,
|
|
30
|
+
cellContainerStyle,
|
|
31
|
+
allowFontScaling
|
|
32
|
+
}) {
|
|
33
|
+
const resourceEvents = eventsByResourceId.get(resource.id) ?? [];
|
|
34
|
+
const eventPosition = new ResourcesCalendarEventPosition();
|
|
35
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
36
|
+
style: styles.resourceRow,
|
|
37
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
38
|
+
style: [styles.resourceNameFixedLabel],
|
|
39
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
40
|
+
style: {
|
|
41
|
+
marginLeft: scrollOffset + 4
|
|
42
|
+
},
|
|
43
|
+
children: renderResourceNameLabel ? renderResourceNameLabel(resource) : /*#__PURE__*/_jsx(View, {
|
|
44
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
45
|
+
allowFontScaling: allowFontScaling,
|
|
46
|
+
style: styles.resourceNameFixedLabelText,
|
|
47
|
+
children: resource.name
|
|
48
|
+
})
|
|
49
|
+
})
|
|
50
|
+
})
|
|
51
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
52
|
+
style: styles.resourceRowContentArea,
|
|
53
|
+
children: dates.map((date, dateIndex) => {
|
|
54
|
+
const djs = dayjs(date);
|
|
55
|
+
|
|
56
|
+
// この日付が開始日のイベント、または行の先頭で前日から続くイベントを抽出
|
|
57
|
+
const filteredEvents = resourceEvents.filter(event => {
|
|
58
|
+
const startDjs = dayjs(event.start);
|
|
59
|
+
return startDjs.format('YYYY-MM-DD') === djs.format('YYYY-MM-DD') || dateIndex === 0 && startDjs.isBefore(djs);
|
|
60
|
+
}).sort((a, b) => {
|
|
61
|
+
const aStartDjs = dateIndex === 0 ? djs : dayjs(a.start);
|
|
62
|
+
const bStartDjs = dateIndex === 0 ? djs : dayjs(b.start);
|
|
63
|
+
const aDiffDays = dayjs(a.end).startOf('day').diff(aStartDjs.startOf('day'), 'day');
|
|
64
|
+
const bDiffDays = dayjs(b.end).startOf('day').diff(bStartDjs.startOf('day'), 'day');
|
|
65
|
+
if (aDiffDays !== bDiffDays) {
|
|
66
|
+
return bDiffDays - aDiffDays;
|
|
67
|
+
}
|
|
68
|
+
return dayjs(a.start).diff(dayjs(b.start));
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
// 行番号を考慮してイベントを配置(重複回避)
|
|
72
|
+
const rowNums = eventPosition.getRowNums({
|
|
73
|
+
resourceId: resource.id,
|
|
74
|
+
date
|
|
75
|
+
});
|
|
76
|
+
const cellEvents = [];
|
|
77
|
+
const rowsLength = rowNums.length + filteredEvents.length;
|
|
78
|
+
let eventIndex = 0;
|
|
79
|
+
for (let ii = 1; ii <= rowsLength; ii++) {
|
|
80
|
+
if (rowNums.includes(ii)) {
|
|
81
|
+
cellEvents.push(ii);
|
|
82
|
+
} else {
|
|
83
|
+
const event = filteredEvents[eventIndex];
|
|
84
|
+
if (event) {
|
|
85
|
+
cellEvents.push(event);
|
|
86
|
+
}
|
|
87
|
+
eventIndex++;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
91
|
+
style: [styles.contentCellContainer, {
|
|
92
|
+
width: dateColumnWidth
|
|
93
|
+
}, {
|
|
94
|
+
zIndex: dates.length - dateIndex
|
|
95
|
+
}, cellContainerStyle?.(resource, date)],
|
|
96
|
+
onPress: () => onPressCell?.(resource, date),
|
|
97
|
+
onLongPress: () => onLongPressCell?.(resource, date),
|
|
98
|
+
delayLongPress: delayLongPressCell,
|
|
99
|
+
activeOpacity: 1,
|
|
100
|
+
children: cellEvents.map((event, rowIndex) => {
|
|
101
|
+
if (typeof event === 'number') {
|
|
102
|
+
return /*#__PURE__*/_jsx(View, {
|
|
103
|
+
style: {
|
|
104
|
+
height: eventHeight,
|
|
105
|
+
marginBottom: EVENT_GAP
|
|
106
|
+
}
|
|
107
|
+
}, event);
|
|
108
|
+
}
|
|
109
|
+
const rawStartDjs = dayjs(event.start);
|
|
110
|
+
const startDjs = dateIndex === 0 ? djs : dayjs(event.start);
|
|
111
|
+
const endDjs = dayjs(event.end);
|
|
112
|
+
const diffDays = endDjs.startOf('day').diff(startDjs.startOf('day'), 'day');
|
|
113
|
+
const isPrevDateEvent = dateIndex === 0 && rawStartDjs.isBefore(djs);
|
|
114
|
+
|
|
115
|
+
// イベントの幅を日数に応じて計算
|
|
116
|
+
let width = (diffDays + 1) * dateColumnWidth - EVENT_GAP * 2 - CELL_BORDER_WIDTH * 2;
|
|
117
|
+
if (isPrevDateEvent) {
|
|
118
|
+
width += EVENT_GAP + 1;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// 位置情報を記録
|
|
122
|
+
eventPosition.push({
|
|
123
|
+
resourceId: resource.id,
|
|
124
|
+
startDate: startDjs.toDate(),
|
|
125
|
+
days: diffDays + 1,
|
|
126
|
+
rowNum: rowIndex + 1
|
|
127
|
+
});
|
|
128
|
+
return /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
129
|
+
"data-component-name": "resources-calendar-event",
|
|
130
|
+
style: [styles.event, {
|
|
131
|
+
backgroundColor: event.backgroundColor,
|
|
132
|
+
borderColor: event.borderColor,
|
|
133
|
+
width,
|
|
134
|
+
height: eventHeight,
|
|
135
|
+
...(event.borderStyle !== undefined && {
|
|
136
|
+
borderStyle: event.borderStyle
|
|
137
|
+
}),
|
|
138
|
+
...(event.borderWidth !== undefined && {
|
|
139
|
+
borderWidth: event.borderWidth
|
|
140
|
+
}),
|
|
141
|
+
...(event.borderRadius !== undefined && {
|
|
142
|
+
borderRadius: event.borderRadius
|
|
143
|
+
})
|
|
144
|
+
}, isPrevDateEvent ? styles.prevDateEvent : {}],
|
|
145
|
+
onPress: () => onPressEvent?.(event),
|
|
146
|
+
onLongPress: () => onLongPressEvent?.(event),
|
|
147
|
+
delayLongPress: delayLongPressEvent,
|
|
148
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
149
|
+
numberOfLines: 1,
|
|
150
|
+
ellipsizeMode: eventEllipsizeMode ?? 'tail',
|
|
151
|
+
allowFontScaling: allowFontScaling,
|
|
152
|
+
style: [styles.eventTitle, {
|
|
153
|
+
color: event.color
|
|
154
|
+
}, eventTextStyle?.(event)],
|
|
155
|
+
children: event.title
|
|
156
|
+
})
|
|
157
|
+
}, event.id);
|
|
158
|
+
})
|
|
159
|
+
}, date.getTime());
|
|
160
|
+
})
|
|
161
|
+
})]
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
export function ResourcesCalendar(props) {
|
|
165
|
+
const dateColumnWidth = props.dateColumnWidth ?? DEFAULT_DATE_COLUMN_WIDTH;
|
|
166
|
+
const fixedRowCount = props.fixedRowCount ?? 0;
|
|
167
|
+
const dates = useMemo(() => generateDates(props.fromDate, props.toDate), [props.fromDate, props.toDate]);
|
|
168
|
+
const monthGroups = useMemo(() => groupDatesByMonth(dates), [dates]);
|
|
169
|
+
const eventsByResourceId = useMemo(() => {
|
|
170
|
+
const map = new Map();
|
|
171
|
+
for (const event of props.events) {
|
|
172
|
+
const list = map.get(event.resourceId) ?? [];
|
|
173
|
+
list.push(event);
|
|
174
|
+
map.set(event.resourceId, list);
|
|
175
|
+
}
|
|
176
|
+
return map;
|
|
177
|
+
}, [props.events]);
|
|
178
|
+
const monthGroupOffsets = useMemo(() => {
|
|
179
|
+
let offset = 0;
|
|
180
|
+
return monthGroups.map(group => {
|
|
181
|
+
const start = offset;
|
|
182
|
+
offset += group.dates.length * dateColumnWidth;
|
|
183
|
+
return {
|
|
184
|
+
start,
|
|
185
|
+
width: group.dates.length * dateColumnWidth
|
|
186
|
+
};
|
|
187
|
+
});
|
|
188
|
+
}, [monthGroups, dateColumnWidth]);
|
|
189
|
+
const fixedResources = useMemo(() => props.resources.slice(0, fixedRowCount), [props.resources, fixedRowCount]);
|
|
190
|
+
const scrollableResources = useMemo(() => props.resources.slice(fixedRowCount), [props.resources, fixedRowCount]);
|
|
191
|
+
const headerScrollRef = useRef(null);
|
|
192
|
+
const bodyScrollRef = useRef(null);
|
|
193
|
+
const activeScroller = useRef(null);
|
|
194
|
+
const activeScrollerTimer = useRef(null);
|
|
195
|
+
const lastScrollX = useRef(0);
|
|
196
|
+
const [scrollOffset, setScrollOffset] = useState(0);
|
|
197
|
+
|
|
198
|
+
// スクロール停止後にラベルを追従させる。
|
|
199
|
+
// activeScroller のタイムアウトが切れた = スクロール停止とみなし、
|
|
200
|
+
// その時点の lastScrollX を state に反映する。
|
|
201
|
+
const releaseActiveScroller = useCallback(() => {
|
|
202
|
+
activeScroller.current = null;
|
|
203
|
+
setScrollOffset(lastScrollX.current);
|
|
204
|
+
}, []);
|
|
205
|
+
const handleHeaderScroll = useCallback(event => {
|
|
206
|
+
if (activeScroller.current === 'body') {
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
const x = event.nativeEvent.contentOffset.x;
|
|
210
|
+
lastScrollX.current = x;
|
|
211
|
+
activeScroller.current = 'header';
|
|
212
|
+
if (activeScrollerTimer.current != null) {
|
|
213
|
+
clearTimeout(activeScrollerTimer.current);
|
|
214
|
+
}
|
|
215
|
+
activeScrollerTimer.current = setTimeout(releaseActiveScroller, 150);
|
|
216
|
+
bodyScrollRef.current?.scrollTo({
|
|
217
|
+
x,
|
|
218
|
+
animated: false
|
|
219
|
+
});
|
|
220
|
+
}, [releaseActiveScroller]);
|
|
221
|
+
const handleBodyScroll = useCallback(event => {
|
|
222
|
+
if (activeScroller.current === 'header') {
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
const x = event.nativeEvent.contentOffset.x;
|
|
226
|
+
lastScrollX.current = x;
|
|
227
|
+
activeScroller.current = 'body';
|
|
228
|
+
if (activeScrollerTimer.current != null) {
|
|
229
|
+
clearTimeout(activeScrollerTimer.current);
|
|
230
|
+
}
|
|
231
|
+
activeScrollerTimer.current = setTimeout(releaseActiveScroller, 150);
|
|
232
|
+
headerScrollRef.current?.scrollTo({
|
|
233
|
+
x,
|
|
234
|
+
animated: false
|
|
235
|
+
});
|
|
236
|
+
}, [releaseActiveScroller]);
|
|
237
|
+
const commonRowProps = {
|
|
238
|
+
dates,
|
|
239
|
+
dateColumnWidth,
|
|
240
|
+
scrollOffset,
|
|
241
|
+
eventsByResourceId,
|
|
242
|
+
renderResourceNameLabel: props.renderResourceNameLabel,
|
|
243
|
+
onPressCell: props.onPressCell,
|
|
244
|
+
onLongPressCell: props.onLongPressCell,
|
|
245
|
+
delayLongPressCell: props.delayLongPressCell,
|
|
246
|
+
onPressEvent: props.onPressEvent,
|
|
247
|
+
onLongPressEvent: props.onLongPressEvent,
|
|
248
|
+
delayLongPressEvent: props.delayLongPressEvent,
|
|
249
|
+
eventHeight: props.eventHeight ?? DEFAULT_EVENT_HEIGHT,
|
|
250
|
+
eventTextStyle: props.eventTextStyle,
|
|
251
|
+
eventEllipsizeMode: props.eventEllipsizeMode,
|
|
252
|
+
cellContainerStyle: props.cellContainerStyle,
|
|
253
|
+
allowFontScaling: props.allowFontScaling
|
|
254
|
+
};
|
|
255
|
+
return /*#__PURE__*/_jsxs(ScrollView, {
|
|
256
|
+
stickyHeaderIndices: [0],
|
|
257
|
+
refreshControl: /*#__PURE__*/_jsx(RefreshControl, {
|
|
258
|
+
refreshing: !!props.refreshing,
|
|
259
|
+
onRefresh: props.onRefresh
|
|
260
|
+
}),
|
|
261
|
+
children: [/*#__PURE__*/_jsx(ScrollView, {
|
|
262
|
+
ref: headerScrollRef,
|
|
263
|
+
horizontal: true,
|
|
264
|
+
showsHorizontalScrollIndicator: false,
|
|
265
|
+
bounces: false,
|
|
266
|
+
overScrollMode: "never",
|
|
267
|
+
onScroll: handleHeaderScroll,
|
|
268
|
+
scrollEventThrottle: 16,
|
|
269
|
+
"data-component-name": "resources-calendar-header-row",
|
|
270
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
271
|
+
children: [!props.hiddenMonth && /*#__PURE__*/_jsx(View, {
|
|
272
|
+
style: styles.monthHeaderRow,
|
|
273
|
+
children: monthGroups.map(({
|
|
274
|
+
year,
|
|
275
|
+
month
|
|
276
|
+
}, index) => {
|
|
277
|
+
const {
|
|
278
|
+
start: cellStart,
|
|
279
|
+
width: cellWidth
|
|
280
|
+
} = monthGroupOffsets[index];
|
|
281
|
+
const textLeft = Math.max(8, scrollOffset - cellStart + 8);
|
|
282
|
+
return /*#__PURE__*/_jsx(View, {
|
|
283
|
+
style: [styles.monthHeaderCell, {
|
|
284
|
+
width: cellWidth
|
|
285
|
+
}],
|
|
286
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
287
|
+
style: {
|
|
288
|
+
marginLeft: textLeft
|
|
289
|
+
},
|
|
290
|
+
children: props.renderMonthLabel ? props.renderMonthLabel(year, month) : /*#__PURE__*/_jsx(View, {
|
|
291
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
292
|
+
numberOfLines: 1,
|
|
293
|
+
allowFontScaling: props.allowFontScaling,
|
|
294
|
+
style: styles.monthHeaderText,
|
|
295
|
+
children: dayjs(`${year}-${month}-01`).format('YYYY/MM')
|
|
296
|
+
})
|
|
297
|
+
})
|
|
298
|
+
})
|
|
299
|
+
}, `${year}-${month}`);
|
|
300
|
+
})
|
|
301
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
302
|
+
style: styles.headerRow,
|
|
303
|
+
children: dates.map(date => /*#__PURE__*/_jsx(View, {
|
|
304
|
+
"data-component-name": "resources-calendar-date-cell",
|
|
305
|
+
style: [styles.dateCellContainer, {
|
|
306
|
+
width: dateColumnWidth
|
|
307
|
+
}, props.dateCellContainerStyle?.(date)],
|
|
308
|
+
children: props.renderDateLabel ? props.renderDateLabel(date) : /*#__PURE__*/_jsx(View, {
|
|
309
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
310
|
+
allowFontScaling: props.allowFontScaling,
|
|
311
|
+
children: dayjs(date).format('D(ddd)')
|
|
312
|
+
})
|
|
313
|
+
})
|
|
314
|
+
}, date.getTime()))
|
|
315
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
316
|
+
children: fixedResources.map(resource => /*#__PURE__*/_jsx(ResourceRow, {
|
|
317
|
+
resource: resource,
|
|
318
|
+
...commonRowProps
|
|
319
|
+
}, resource.id))
|
|
320
|
+
})]
|
|
321
|
+
})
|
|
322
|
+
}), /*#__PURE__*/_jsx(ScrollView, {
|
|
323
|
+
ref: bodyScrollRef,
|
|
324
|
+
horizontal: true,
|
|
325
|
+
showsHorizontalScrollIndicator: false,
|
|
326
|
+
bounces: false,
|
|
327
|
+
overScrollMode: "never",
|
|
328
|
+
onScroll: handleBodyScroll,
|
|
329
|
+
scrollEventThrottle: 16,
|
|
330
|
+
"data-component-name": "resources-calendar-body-row",
|
|
331
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
332
|
+
children: scrollableResources.map(resource => /*#__PURE__*/_jsx(ResourceRow, {
|
|
333
|
+
resource: resource,
|
|
334
|
+
...commonRowProps
|
|
335
|
+
}, resource.id))
|
|
336
|
+
})
|
|
337
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
338
|
+
style: {
|
|
339
|
+
height: props.bottomSpacing
|
|
340
|
+
}
|
|
341
|
+
})]
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
const styles = StyleSheet.create({
|
|
345
|
+
monthHeaderRow: {
|
|
346
|
+
flexDirection: 'row',
|
|
347
|
+
backgroundColor: 'white'
|
|
348
|
+
},
|
|
349
|
+
monthHeaderCell: {
|
|
350
|
+
justifyContent: 'center',
|
|
351
|
+
alignItems: 'flex-start',
|
|
352
|
+
overflow: 'hidden',
|
|
353
|
+
borderRightWidth: CELL_BORDER_WIDTH,
|
|
354
|
+
borderRightColor: 'lightslategrey',
|
|
355
|
+
borderTopWidth: CELL_BORDER_WIDTH,
|
|
356
|
+
borderTopColor: 'lightslategrey',
|
|
357
|
+
height: 18
|
|
358
|
+
},
|
|
359
|
+
monthHeaderText: {
|
|
360
|
+
fontSize: 12,
|
|
361
|
+
color: '#333'
|
|
362
|
+
},
|
|
363
|
+
headerRow: {
|
|
364
|
+
flexDirection: 'row',
|
|
365
|
+
borderBottomWidth: CELL_BORDER_WIDTH,
|
|
366
|
+
borderRightWidth: CELL_BORDER_WIDTH,
|
|
367
|
+
borderBottomColor: 'lightslategrey',
|
|
368
|
+
backgroundColor: 'white'
|
|
369
|
+
},
|
|
370
|
+
dateCellContainer: {
|
|
371
|
+
width: 60,
|
|
372
|
+
borderTopWidth: CELL_BORDER_WIDTH,
|
|
373
|
+
borderRightWidth: CELL_BORDER_WIDTH,
|
|
374
|
+
borderColor: 'lightslategrey'
|
|
375
|
+
},
|
|
376
|
+
resourceNameCellContainer: {
|
|
377
|
+
width: 80,
|
|
378
|
+
borderRightWidth: CELL_BORDER_WIDTH,
|
|
379
|
+
borderColor: 'lightslategrey'
|
|
380
|
+
},
|
|
381
|
+
resourceRow: {
|
|
382
|
+
flexDirection: 'column',
|
|
383
|
+
borderBottomWidth: CELL_BORDER_WIDTH,
|
|
384
|
+
borderRightWidth: CELL_BORDER_WIDTH,
|
|
385
|
+
borderBottomColor: 'lightslategrey',
|
|
386
|
+
backgroundColor: 'white'
|
|
387
|
+
},
|
|
388
|
+
resourceRowContentArea: {
|
|
389
|
+
flexDirection: 'row',
|
|
390
|
+
minHeight: 30
|
|
391
|
+
},
|
|
392
|
+
contentCellContainer: {
|
|
393
|
+
paddingBottom: EVENT_GAP,
|
|
394
|
+
width: 60,
|
|
395
|
+
borderRightWidth: CELL_BORDER_WIDTH,
|
|
396
|
+
borderColor: 'lightslategrey'
|
|
397
|
+
},
|
|
398
|
+
resourceNameColumn: {
|
|
399
|
+
width: 80
|
|
400
|
+
},
|
|
401
|
+
resourceNameFixedLabel: {
|
|
402
|
+
width: '100%',
|
|
403
|
+
borderBottomWidth: CELL_BORDER_WIDTH,
|
|
404
|
+
borderColor: 'lightslategrey',
|
|
405
|
+
backgroundColor: '#EEEEEE'
|
|
406
|
+
},
|
|
407
|
+
resourceNameFixedLabelText: {
|
|
408
|
+
fontSize: 12,
|
|
409
|
+
color: 'black'
|
|
410
|
+
},
|
|
411
|
+
event: {
|
|
412
|
+
borderWidth: 0.5,
|
|
413
|
+
borderRadius: 4,
|
|
414
|
+
paddingHorizontal: 4,
|
|
415
|
+
flexDirection: 'row',
|
|
416
|
+
alignItems: 'center',
|
|
417
|
+
marginTop: EVENT_GAP,
|
|
418
|
+
marginLeft: EVENT_GAP
|
|
419
|
+
},
|
|
420
|
+
prevDateEvent: {
|
|
421
|
+
marginLeft: -1,
|
|
422
|
+
borderTopStartRadius: 0,
|
|
423
|
+
borderBottomStartRadius: 0
|
|
424
|
+
},
|
|
425
|
+
eventTitle: {
|
|
426
|
+
fontSize: 12
|
|
427
|
+
}
|
|
428
|
+
});
|
|
429
|
+
//# sourceMappingURL=ResourcesCalendar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useCallback","useMemo","useRef","useState","RefreshControl","ScrollView","StyleSheet","Text","TouchableOpacity","View","generateDates","groupDatesByMonth","dayjs","ResourcesCalendarEventPosition","EVENT_GAP","jsx","_jsx","jsxs","_jsxs","DEFAULT_DATE_COLUMN_WIDTH","DEFAULT_EVENT_HEIGHT","CELL_BORDER_WIDTH","ResourceRow","resource","dates","dateColumnWidth","scrollOffset","eventsByResourceId","renderResourceNameLabel","onPressCell","onLongPressCell","delayLongPressCell","onPressEvent","onLongPressEvent","delayLongPressEvent","eventHeight","eventTextStyle","eventEllipsizeMode","cellContainerStyle","allowFontScaling","resourceEvents","get","id","eventPosition","style","styles","resourceRow","children","resourceNameFixedLabel","marginLeft","resourceNameFixedLabelText","name","resourceRowContentArea","map","date","dateIndex","djs","filteredEvents","filter","event","startDjs","start","format","isBefore","sort","a","b","aStartDjs","bStartDjs","aDiffDays","end","startOf","diff","bDiffDays","rowNums","getRowNums","resourceId","cellEvents","rowsLength","length","eventIndex","ii","includes","push","contentCellContainer","width","zIndex","onPress","onLongPress","delayLongPress","activeOpacity","rowIndex","height","marginBottom","rawStartDjs","endDjs","diffDays","isPrevDateEvent","startDate","toDate","days","rowNum","backgroundColor","borderColor","borderStyle","undefined","borderWidth","borderRadius","prevDateEvent","numberOfLines","ellipsizeMode","eventTitle","color","title","getTime","ResourcesCalendar","props","fixedRowCount","fromDate","monthGroups","Map","events","list","set","monthGroupOffsets","offset","group","fixedResources","resources","slice","scrollableResources","headerScrollRef","bodyScrollRef","activeScroller","activeScrollerTimer","lastScrollX","setScrollOffset","releaseActiveScroller","current","handleHeaderScroll","x","nativeEvent","contentOffset","clearTimeout","setTimeout","scrollTo","animated","handleBodyScroll","commonRowProps","stickyHeaderIndices","refreshControl","refreshing","onRefresh","ref","horizontal","showsHorizontalScrollIndicator","bounces","overScrollMode","onScroll","scrollEventThrottle","hiddenMonth","monthHeaderRow","year","month","index","cellStart","cellWidth","textLeft","Math","max","monthHeaderCell","renderMonthLabel","monthHeaderText","headerRow","dateCellContainer","dateCellContainerStyle","renderDateLabel","bottomSpacing","create","flexDirection","justifyContent","alignItems","overflow","borderRightWidth","borderRightColor","borderTopWidth","borderTopColor","fontSize","borderBottomWidth","borderBottomColor","resourceNameCellContainer","minHeight","paddingBottom","resourceNameColumn","paddingHorizontal","marginTop","borderTopStartRadius","borderBottomStartRadius"],"sourceRoot":"../../../../src","sources":["calendar/resources-calendar/ResourcesCalendar.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MonthCalendar"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,4CAAyC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["MonthCalendar","ResourcesCalendar"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,4CAAyC;AAIvE,SAASC,iBAAiB,QAAQ,oDAAiD","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/resources-calendar.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -73,4 +73,34 @@ export function getWeekIds(args) {
|
|
|
73
73
|
}
|
|
74
74
|
return weekIds;
|
|
75
75
|
}
|
|
76
|
+
export function generateDates(from, to) {
|
|
77
|
+
const dates = [];
|
|
78
|
+
const current = new Date(from);
|
|
79
|
+
current.setHours(0, 0, 0, 0);
|
|
80
|
+
const end = new Date(to);
|
|
81
|
+
end.setHours(0, 0, 0, 0);
|
|
82
|
+
while (current <= end) {
|
|
83
|
+
dates.push(new Date(current));
|
|
84
|
+
current.setDate(current.getDate() + 1);
|
|
85
|
+
}
|
|
86
|
+
return dates;
|
|
87
|
+
}
|
|
88
|
+
export function groupDatesByMonth(dates) {
|
|
89
|
+
const groups = [];
|
|
90
|
+
for (const date of dates) {
|
|
91
|
+
const year = date.getFullYear();
|
|
92
|
+
const month = date.getMonth() + 1;
|
|
93
|
+
const last = groups[groups.length - 1];
|
|
94
|
+
if (last && last.year === year && last.month === month) {
|
|
95
|
+
last.dates.push(date);
|
|
96
|
+
} else {
|
|
97
|
+
groups.push({
|
|
98
|
+
year,
|
|
99
|
+
month,
|
|
100
|
+
dates: [date]
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return groups;
|
|
105
|
+
}
|
|
76
106
|
//# sourceMappingURL=functions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["dayjs","monthlyStartDate","args","date","weekStartsOn","djs","startOf","toDate","startOfMonth","day","subtract","monthlyEndDate","endOf","endOfMonth","add","getWeekIds","start","end","startDjs","endDjs","weekIds","current","isSame","isBefore","weekId","format","includes","push"],"sourceRoot":"../../../src","sources":["utils/functions.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["dayjs","monthlyStartDate","args","date","weekStartsOn","djs","startOf","toDate","startOfMonth","day","subtract","monthlyEndDate","endOf","endOfMonth","add","getWeekIds","start","end","startDjs","endDjs","weekIds","current","isSame","isBefore","weekId","format","includes","push","generateDates","from","to","dates","Date","setHours","setDate","getDate","groupDatesByMonth","groups","year","getFullYear","month","getMonth","last","length"],"sourceRoot":"../../../src","sources":["utils/functions.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
class ResourcesCalendarEventPosition {
|
|
4
|
+
record = {};
|
|
5
|
+
constructor() {}
|
|
6
|
+
generateKey(date) {
|
|
7
|
+
const year = date.getFullYear();
|
|
8
|
+
const month = date.getMonth() + 1;
|
|
9
|
+
const day = date.getDate();
|
|
10
|
+
return `${year}-${month}-${day}`;
|
|
11
|
+
}
|
|
12
|
+
push(arg) {
|
|
13
|
+
const {
|
|
14
|
+
resourceId,
|
|
15
|
+
startDate,
|
|
16
|
+
days,
|
|
17
|
+
rowNum
|
|
18
|
+
} = arg;
|
|
19
|
+
for (let i = 0; i < days; i++) {
|
|
20
|
+
const date = new Date(startDate);
|
|
21
|
+
date.setDate(date.getDate() + i);
|
|
22
|
+
const key = this.generateKey(date);
|
|
23
|
+
if (!this.record[resourceId]) {
|
|
24
|
+
this.record[resourceId] = {};
|
|
25
|
+
}
|
|
26
|
+
if (!this.record[resourceId][key]) {
|
|
27
|
+
this.record[resourceId][key] = [];
|
|
28
|
+
}
|
|
29
|
+
this.record[resourceId][key]?.push(rowNum);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
getMaxRowNum(arg) {
|
|
33
|
+
const {
|
|
34
|
+
resourceId,
|
|
35
|
+
date
|
|
36
|
+
} = arg;
|
|
37
|
+
const key = this.generateKey(date);
|
|
38
|
+
const resourceRecord = this.record[resourceId];
|
|
39
|
+
if (!resourceRecord) {
|
|
40
|
+
return 0;
|
|
41
|
+
}
|
|
42
|
+
const indexes = resourceRecord[key];
|
|
43
|
+
if (indexes === undefined || indexes.length === 0) {
|
|
44
|
+
return 0;
|
|
45
|
+
}
|
|
46
|
+
return Math.max(...indexes);
|
|
47
|
+
}
|
|
48
|
+
getRowNums(arg) {
|
|
49
|
+
const {
|
|
50
|
+
resourceId,
|
|
51
|
+
date
|
|
52
|
+
} = arg;
|
|
53
|
+
const key = this.generateKey(date);
|
|
54
|
+
const resourceRecord = this.record[resourceId];
|
|
55
|
+
if (!resourceRecord) {
|
|
56
|
+
return [];
|
|
57
|
+
}
|
|
58
|
+
if (!resourceRecord[key]) {
|
|
59
|
+
return [];
|
|
60
|
+
}
|
|
61
|
+
return resourceRecord[key];
|
|
62
|
+
}
|
|
63
|
+
reset(resourceId) {
|
|
64
|
+
this.record[resourceId] = {};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export default ResourcesCalendarEventPosition;
|
|
68
|
+
//# sourceMappingURL=resources-calendar-event-position.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ResourcesCalendarEventPosition","record","constructor","generateKey","date","year","getFullYear","month","getMonth","day","getDate","push","arg","resourceId","startDate","days","rowNum","i","Date","setDate","key","getMaxRowNum","resourceRecord","indexes","undefined","length","Math","max","getRowNums","reset"],"sourceRoot":"../../../src","sources":["utils/resources-calendar-event-position.ts"],"mappings":";;AAAA,MAAMA,8BAA8B,CAAC;EAC5BC,MAAM,GAA6C,CAAC,CAAC;EAC5DC,WAAWA,CAAA,EAAG,CAAC;EAEPC,WAAWA,CAACC,IAAU,EAAU;IACtC,MAAMC,IAAI,GAAGD,IAAI,CAACE,WAAW,CAAC,CAAC;IAC/B,MAAMC,KAAK,GAAGH,IAAI,CAACI,QAAQ,CAAC,CAAC,GAAG,CAAC;IACjC,MAAMC,GAAG,GAAGL,IAAI,CAACM,OAAO,CAAC,CAAC;IAC1B,OAAO,GAAGL,IAAI,IAAIE,KAAK,IAAIE,GAAG,EAAE;EAClC;EAEOE,IAAIA,CAACC,GAKX,EAAE;IACD,MAAM;MAAEC,UAAU;MAAEC,SAAS;MAAEC,IAAI;MAAEC;IAAO,CAAC,GAAGJ,GAAG;IAEnD,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,IAAI,EAAEE,CAAC,EAAE,EAAE;MAC7B,MAAMb,IAAI,GAAG,IAAIc,IAAI,CAACJ,SAAS,CAAC;MAChCV,IAAI,CAACe,OAAO,CAACf,IAAI,CAACM,OAAO,CAAC,CAAC,GAAGO,CAAC,CAAC;MAChC,MAAMG,GAAG,GAAG,IAAI,CAACjB,WAAW,CAACC,IAAI,CAAC;MAClC,IAAI,CAAC,IAAI,CAACH,MAAM,CAACY,UAAU,CAAC,EAAE;QAC5B,IAAI,CAACZ,MAAM,CAACY,UAAU,CAAC,GAAG,CAAC,CAAC;MAC9B;MACA,IAAI,CAAC,IAAI,CAACZ,MAAM,CAACY,UAAU,CAAC,CAACO,GAAG,CAAC,EAAE;QACjC,IAAI,CAACnB,MAAM,CAACY,UAAU,CAAC,CAACO,GAAG,CAAC,GAAG,EAAE;MACnC;MACA,IAAI,CAACnB,MAAM,CAACY,UAAU,CAAC,CAACO,GAAG,CAAC,EAAET,IAAI,CAACK,MAAM,CAAC;IAC5C;EACF;EAEOK,YAAYA,CAACT,GAAuC,EAAU;IACnE,MAAM;MAAEC,UAAU;MAAET;IAAK,CAAC,GAAGQ,GAAG;IAChC,MAAMQ,GAAG,GAAG,IAAI,CAACjB,WAAW,CAACC,IAAI,CAAC;IAClC,MAAMkB,cAAc,GAAG,IAAI,CAACrB,MAAM,CAACY,UAAU,CAAC;IAC9C,IAAI,CAACS,cAAc,EAAE;MACnB,OAAO,CAAC;IACV;IAEA,MAAMC,OAAO,GAAGD,cAAc,CAACF,GAAG,CAAC;IAEnC,IAAIG,OAAO,KAAKC,SAAS,IAAID,OAAO,CAACE,MAAM,KAAK,CAAC,EAAE;MACjD,OAAO,CAAC;IACV;IAEA,OAAOC,IAAI,CAACC,GAAG,CAAC,GAAGJ,OAAO,CAAC;EAC7B;EAEOK,UAAUA,CAAChB,GAAuC,EAAY;IACnE,MAAM;MAAEC,UAAU;MAAET;IAAK,CAAC,GAAGQ,GAAG;IAChC,MAAMQ,GAAG,GAAG,IAAI,CAACjB,WAAW,CAACC,IAAI,CAAC;IAClC,MAAMkB,cAAc,GAAG,IAAI,CAACrB,MAAM,CAACY,UAAU,CAAC;IAC9C,IAAI,CAACS,cAAc,EAAE;MACnB,OAAO,EAAE;IACX;IACA,IAAI,CAACA,cAAc,CAACF,GAAG,CAAC,EAAE;MACxB,OAAO,EAAE;IACX;IACA,OAAOE,cAAc,CAACF,GAAG,CAAC;EAC5B;EAEOS,KAAKA,CAAChB,UAAkB,EAAE;IAC/B,IAAI,CAACZ,MAAM,CAACY,UAAU,CAAC,GAAG,CAAC,CAAC;EAC9B;AACF;AACA,eAAeb,8BAA8B","ignoreList":[]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { CalendarEvent, CalendarResource } from '../../types/resources-calendar';
|
|
3
|
+
import { type TextStyle, type ViewStyle } from 'react-native';
|
|
4
|
+
type ResourcesCalendarProps = {
|
|
5
|
+
fromDate: Date;
|
|
6
|
+
toDate: Date;
|
|
7
|
+
resources: CalendarResource[];
|
|
8
|
+
events: CalendarEvent[];
|
|
9
|
+
renderDateLabel?: (date: Date) => React.JSX.Element;
|
|
10
|
+
renderMonthLabel?: (year: number, month: number) => React.JSX.Element;
|
|
11
|
+
renderResourceNameLabel?: (resource: CalendarResource) => React.JSX.Element;
|
|
12
|
+
resourceColumnWidth?: number;
|
|
13
|
+
dateColumnWidth?: number;
|
|
14
|
+
onRefresh?: () => void;
|
|
15
|
+
refreshing?: boolean;
|
|
16
|
+
fixedRowCount?: number;
|
|
17
|
+
onPressCell?: (resource: CalendarResource, date: Date) => void;
|
|
18
|
+
onLongPressCell?: (resource: CalendarResource, date: Date) => void;
|
|
19
|
+
delayLongPressCell?: number;
|
|
20
|
+
onPressEvent?: (event: CalendarEvent) => void;
|
|
21
|
+
onLongPressEvent?: (event: CalendarEvent) => void;
|
|
22
|
+
delayLongPressEvent?: number;
|
|
23
|
+
eventHeight?: number;
|
|
24
|
+
bottomSpacing?: number;
|
|
25
|
+
eventTextStyle?: (event: CalendarEvent) => TextStyle;
|
|
26
|
+
eventEllipsizeMode?: 'head' | 'middle' | 'tail' | 'clip';
|
|
27
|
+
dateCellContainerStyle?: (date: Date) => ViewStyle;
|
|
28
|
+
cellContainerStyle?: (resource: CalendarResource, date: Date) => ViewStyle;
|
|
29
|
+
hiddenMonth?: boolean;
|
|
30
|
+
allowFontScaling?: boolean;
|
|
31
|
+
};
|
|
32
|
+
export declare function ResourcesCalendar(props: ResourcesCalendarProps): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=ResourcesCalendar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourcesCalendar.d.ts","sourceRoot":"","sources":["../../../../../src/calendar/resources-calendar/ResourcesCalendar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AACtE,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EACjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,SAAS,EAMf,MAAM,cAAc,CAAC;AAOtB,KAAK,sBAAsB,GAAG;IAC5B,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,IAAI,CAAC;IACb,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IACpD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IACtE,uBAAuB,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IAC5E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/D,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9C,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAClD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,SAAS,CAAC;IACrD,kBAAkB,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IACzD,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC;IACnD,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC;IAC3E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AA2NF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,2CAiO9D"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
export { MonthCalendar } from './calendar/month-calendar/MonthCalendar';
|
|
2
2
|
export type { CalendarEvent } from './types/month-calendar';
|
|
3
|
+
export type { MonthCalendarRef } from './calendar/month-calendar/MonthCalendar';
|
|
4
|
+
export { ResourcesCalendar } from './calendar/resources-calendar/ResourcesCalendar';
|
|
5
|
+
export type { CalendarEvent as ResourcesCalendarEvent, CalendarResource, } from './types/resources-calendar';
|
|
3
6
|
//# sourceMappingURL=index.d.ts.map
|