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.
Files changed (26) hide show
  1. package/lib/module/calendar/resources-calendar/ResourcesCalendar.js +429 -0
  2. package/lib/module/calendar/resources-calendar/ResourcesCalendar.js.map +1 -0
  3. package/lib/module/index.js +1 -0
  4. package/lib/module/index.js.map +1 -1
  5. package/lib/module/types/resources-calendar.js +2 -0
  6. package/lib/module/types/resources-calendar.js.map +1 -0
  7. package/lib/module/utils/functions.js +30 -0
  8. package/lib/module/utils/functions.js.map +1 -1
  9. package/lib/module/utils/resources-calendar-event-position.js +68 -0
  10. package/lib/module/utils/resources-calendar-event-position.js.map +1 -0
  11. package/lib/typescript/src/calendar/resources-calendar/ResourcesCalendar.d.ts +34 -0
  12. package/lib/typescript/src/calendar/resources-calendar/ResourcesCalendar.d.ts.map +1 -0
  13. package/lib/typescript/src/index.d.ts +3 -0
  14. package/lib/typescript/src/index.d.ts.map +1 -1
  15. package/lib/typescript/src/types/resources-calendar.d.ts +18 -0
  16. package/lib/typescript/src/types/resources-calendar.d.ts.map +1 -0
  17. package/lib/typescript/src/utils/functions.d.ts +8 -0
  18. package/lib/typescript/src/utils/functions.d.ts.map +1 -1
  19. package/lib/typescript/src/utils/resources-calendar-event-position.d.ts +22 -0
  20. package/lib/typescript/src/utils/resources-calendar-event-position.d.ts.map +1 -0
  21. package/package.json +1 -1
  22. package/src/calendar/resources-calendar/ResourcesCalendar.tsx +580 -0
  23. package/src/index.tsx +7 -0
  24. package/src/types/resources-calendar.ts +18 -0
  25. package/src/utils/functions.ts +34 -0
  26. 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":[]}
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
2
 
3
3
  export { MonthCalendar } from "./calendar/month-calendar/MonthCalendar.js";
4
+ export { ResourcesCalendar } from "./calendar/resources-calendar/ResourcesCalendar.js";
4
5
  //# sourceMappingURL=index.js.map
@@ -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,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=resources-calendar.js.map
@@ -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":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAGzB,OAAO,SAASC,gBAAgBA,CAACC,IAGhC,EAAE;EACD,MAAM;IAAEC,IAAI;IAAEC;EAAa,CAAC,GAAGF,IAAI;EACnC,MAAMG,GAAG,GAAGL,KAAK,CAACG,IAAI,CAAC;EACvB,IAAIC,YAAY,KAAK,CAAC,EAAE;IACtB,OAAOC,GAAG,CAACC,OAAO,CAAC,OAAO,CAAC,CAACA,OAAO,CAAC,MAAM,CAAC,CAACC,MAAM,CAAC,CAAC;EACtD,CAAC,MAAM;IACL,MAAMC,YAAY,GAAGH,GAAG,CAACC,OAAO,CAAC,OAAO,CAAC;IACzC,IAAIE,YAAY,CAACC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;MAC5B,OAAOD,YAAY,CAACD,MAAM,CAAC,CAAC;IAC9B,CAAC,MAAM,IAAIC,YAAY,CAACC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;MACnC,OAAOD,YAAY,CAACE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAACH,MAAM,CAAC,CAAC;IACjD,CAAC,MAAM;MACL,OAAOC,YAAY,CAACE,QAAQ,CAACF,YAAY,CAACC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAACF,MAAM,CAAC,CAAC;IACtE;EACF;AACF;AAEA,OAAO,SAASI,cAAcA,CAACT,IAG9B,EAAE;EACD,MAAM;IAAEC,IAAI;IAAEC;EAAa,CAAC,GAAGF,IAAI;EACnC,MAAMG,GAAG,GAAGL,KAAK,CAACG,IAAI,CAAC;EACvB,IAAIC,YAAY,KAAK,CAAC,EAAE;IACtB,OAAOC,GAAG,CAACO,KAAK,CAAC,OAAO,CAAC,CAACA,KAAK,CAAC,MAAM,CAAC,CAACL,MAAM,CAAC,CAAC;EAClD,CAAC,MAAM;IACL,MAAMM,UAAU,GAAGR,GAAG,CAACO,KAAK,CAAC,OAAO,CAAC;IACrC,IAAIC,UAAU,CAACJ,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;MAC1B,OAAOI,UAAU,CAACN,MAAM,CAAC,CAAC;IAC5B,CAAC,MAAM;MACL,OAAOM,UAAU,CAACC,GAAG,CAAC,CAAC,GAAGD,UAAU,CAACJ,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAACF,MAAM,CAAC,CAAC;IAC7D;EACF;AACF;AAEA,OAAO,SAASQ,UAAUA,CAACb,IAI1B,EAAE;EACD,MAAM;IAAEc,KAAK;IAAEC,GAAG;IAAEb;EAAa,CAAC,GAAGF,IAAI;EACzC,MAAMgB,QAAQ,GAAGlB,KAAK,CAACgB,KAAK,CAAC,CAACV,OAAO,CAAC,KAAK,CAAC;EAC5C,MAAMa,MAAM,GAAGnB,KAAK,CAACiB,GAAG,CAAC,CAACX,OAAO,CAAC,KAAK,CAAC;EACxC,MAAMc,OAAiB,GAAG,EAAE;EAC5B,IAAIC,OAAO,GAAGH,QAAQ;EACtB,IAAId,YAAY,KAAK,CAAC,EAAE;IACtB,OAAOiB,OAAO,CAACC,MAAM,CAACH,MAAM,CAAC,IAAIE,OAAO,CAACE,QAAQ,CAACJ,MAAM,CAAC,EAAE;MACzD,MAAMK,MAAM,GAAGH,OAAO,CAACf,OAAO,CAAC,MAAM,CAAC,CAACmB,MAAM,CAAC,YAAY,CAAC;MAC3D,IAAI,CAACL,OAAO,CAACM,QAAQ,CAACF,MAAM,CAAC,EAAE;QAC7BJ,OAAO,CAACO,IAAI,CAACH,MAAM,CAAC;MACtB;MACAH,OAAO,GAAGA,OAAO,CAACP,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;IACjC;EACF,CAAC,MAAM;IACL,OAAOO,OAAO,CAACC,MAAM,CAACH,MAAM,CAAC,IAAIE,OAAO,CAACE,QAAQ,CAACJ,MAAM,CAAC,EAAE;MACzD,IAAIE,OAAO,CAACZ,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;QACvB,MAAMe,MAAM,GAAGH,OAAO,CAACX,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAACe,MAAM,CAAC,YAAY,CAAC;QAC9D,IAAI,CAACL,OAAO,CAACM,QAAQ,CAACF,MAAM,CAAC,EAAE;UAC7BJ,OAAO,CAACO,IAAI,CAACH,MAAM,CAAC;QACtB;MACF,CAAC,MAAM;QACL,MAAMA,MAAM,GAAGH,OAAO,CACnBX,QAAQ,CAACW,OAAO,CAACZ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAClCgB,MAAM,CAAC,YAAY,CAAC;QACvB,IAAI,CAACL,OAAO,CAACM,QAAQ,CAACF,MAAM,CAAC,EAAE;UAC7BJ,OAAO,CAACO,IAAI,CAACH,MAAM,CAAC;QACtB;MACF;MACAH,OAAO,GAAGA,OAAO,CAACP,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC;IACjC;EACF;EACA,OAAOM,OAAO;AAChB;AAEA,OAAO,SAASQ,aAAaA,CAACC,IAAU,EAAEC,EAAQ,EAAU;EAC1D,MAAMC,KAAa,GAAG,EAAE;EACxB,MAAMV,OAAO,GAAG,IAAIW,IAAI,CAACH,IAAI,CAAC;EAC9BR,OAAO,CAACY,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;EAC5B,MAAMhB,GAAG,GAAG,IAAIe,IAAI,CAACF,EAAE,CAAC;EACxBb,GAAG,CAACgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;EACxB,OAAOZ,OAAO,IAAIJ,GAAG,EAAE;IACrBc,KAAK,CAACJ,IAAI,CAAC,IAAIK,IAAI,CAACX,OAAO,CAAC,CAAC;IAC7BA,OAAO,CAACa,OAAO,CAACb,OAAO,CAACc,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;EACxC;EACA,OAAOJ,KAAK;AACd;AAQA,OAAO,SAASK,iBAAiBA,CAACL,KAAa,EAAgB;EAC7D,MAAMM,MAAoB,GAAG,EAAE;EAC/B,KAAK,MAAMlC,IAAI,IAAI4B,KAAK,EAAE;IACxB,MAAMO,IAAI,GAAGnC,IAAI,CAACoC,WAAW,CAAC,CAAC;IAC/B,MAAMC,KAAK,GAAGrC,IAAI,CAACsC,QAAQ,CAAC,CAAC,GAAG,CAAC;IACjC,MAAMC,IAAI,GAAGL,MAAM,CAACA,MAAM,CAACM,MAAM,GAAG,CAAC,CAAC;IACtC,IAAID,IAAI,IAAIA,IAAI,CAACJ,IAAI,KAAKA,IAAI,IAAII,IAAI,CAACF,KAAK,KAAKA,KAAK,EAAE;MACtDE,IAAI,CAACX,KAAK,CAACJ,IAAI,CAACxB,IAAI,CAAC;IACvB,CAAC,MAAM;MACLkC,MAAM,CAACV,IAAI,CAAC;QAAEW,IAAI;QAAEE,KAAK;QAAET,KAAK,EAAE,CAAC5B,IAAI;MAAE,CAAC,CAAC;IAC7C;EACF;EACA,OAAOkC,MAAM;AACf","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