@mintplayer/scheduler-wc 1.0.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/package.json +33 -0
- package/src/components/mp-scheduler.d.ts +91 -0
- package/src/components/mp-scheduler.js +982 -0
- package/src/components/mp-scheduler.js.map +1 -0
- package/src/index.d.ts +5 -0
- package/src/index.js +9 -0
- package/src/index.js.map +1 -0
- package/src/state/scheduler-state.d.ts +148 -0
- package/src/state/scheduler-state.js +253 -0
- package/src/state/scheduler-state.js.map +1 -0
- package/src/styles/scheduler.styles.d.ts +5 -0
- package/src/styles/scheduler.styles.js +619 -0
- package/src/styles/scheduler.styles.js.map +1 -0
- package/src/views/base-view.d.ts +37 -0
- package/src/views/base-view.js +40 -0
- package/src/views/base-view.js.map +1 -0
- package/src/views/day-view.d.ts +18 -0
- package/src/views/day-view.js +250 -0
- package/src/views/day-view.js.map +1 -0
- package/src/views/index.d.ts +6 -0
- package/src/views/index.js +7 -0
- package/src/views/index.js.map +1 -0
- package/src/views/month-view.d.ts +14 -0
- package/src/views/month-view.js +141 -0
- package/src/views/month-view.js.map +1 -0
- package/src/views/timeline-view.d.ts +17 -0
- package/src/views/timeline-view.js +223 -0
- package/src/views/timeline-view.js.map +1 -0
- package/src/views/week-view.d.ts +19 -0
- package/src/views/week-view.js +299 -0
- package/src/views/week-view.js.map +1 -0
- package/src/views/year-view.d.ts +11 -0
- package/src/views/year-view.js +83 -0
- package/src/views/year-view.js.map +1 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { dateService, timelineService, } from '@mintplayer/scheduler-core';
|
|
2
|
+
import { BaseView } from './base-view';
|
|
3
|
+
/**
|
|
4
|
+
* Year view renderer
|
|
5
|
+
*/
|
|
6
|
+
export class YearView extends BaseView {
|
|
7
|
+
render() {
|
|
8
|
+
this.clearContainer();
|
|
9
|
+
this.container.classList.add('scheduler-year-view');
|
|
10
|
+
const { date, options } = this.state;
|
|
11
|
+
const months = dateService.getYearMonths(date);
|
|
12
|
+
const grid = this.createElement('div', 'scheduler-year-grid');
|
|
13
|
+
for (const month of months) {
|
|
14
|
+
const monthEl = this.createMonthCard(month);
|
|
15
|
+
grid.appendChild(monthEl);
|
|
16
|
+
}
|
|
17
|
+
this.container.appendChild(grid);
|
|
18
|
+
}
|
|
19
|
+
createMonthCard(month) {
|
|
20
|
+
const { events, options } = this.state;
|
|
21
|
+
const card = this.createElement('div', 'scheduler-year-month');
|
|
22
|
+
// Month header
|
|
23
|
+
const header = this.createElement('div', 'scheduler-year-month-header');
|
|
24
|
+
header.textContent = dateService.getMonthName(month, options.locale);
|
|
25
|
+
this.setData(header, { month: month.toISOString() });
|
|
26
|
+
card.appendChild(header);
|
|
27
|
+
// Mini calendar
|
|
28
|
+
const miniMonth = this.createElement('div', 'scheduler-mini-month');
|
|
29
|
+
// Day headers
|
|
30
|
+
const weeks = dateService.getMonthWeeks(month, options.firstDayOfWeek);
|
|
31
|
+
const firstWeek = weeks[0];
|
|
32
|
+
for (const day of firstWeek) {
|
|
33
|
+
const dayHeader = this.createElement('div', 'scheduler-mini-day', 'header');
|
|
34
|
+
dayHeader.textContent = dateService.getDayName(day, options.locale, 'narrow');
|
|
35
|
+
dayHeader.style.fontWeight = '600';
|
|
36
|
+
dayHeader.style.color = '#666';
|
|
37
|
+
miniMonth.appendChild(dayHeader);
|
|
38
|
+
}
|
|
39
|
+
// Days
|
|
40
|
+
const monthStart = dateService.getMonthStart(month);
|
|
41
|
+
const monthEnd = dateService.getMonthEnd(month);
|
|
42
|
+
const monthEvents = timelineService.filterByRange(events, monthStart, monthEnd);
|
|
43
|
+
// Create a set of dates that have events
|
|
44
|
+
const datesWithEvents = new Set();
|
|
45
|
+
for (const event of monthEvents) {
|
|
46
|
+
const current = new Date(event.start);
|
|
47
|
+
current.setHours(0, 0, 0, 0);
|
|
48
|
+
while (current <= event.end) {
|
|
49
|
+
datesWithEvents.add(current.toISOString().split('T')[0]);
|
|
50
|
+
current.setDate(current.getDate() + 1);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
for (const week of weeks) {
|
|
54
|
+
for (const day of week) {
|
|
55
|
+
const dayEl = this.createElement('div', 'scheduler-mini-day');
|
|
56
|
+
dayEl.textContent = String(day.getDate());
|
|
57
|
+
this.setData(dayEl, { date: day.toISOString() });
|
|
58
|
+
if (!dateService.isSameMonth(day, month)) {
|
|
59
|
+
dayEl.classList.add('other-month');
|
|
60
|
+
}
|
|
61
|
+
if (dateService.isToday(day)) {
|
|
62
|
+
dayEl.classList.add('today');
|
|
63
|
+
}
|
|
64
|
+
const dateKey = day.toISOString().split('T')[0];
|
|
65
|
+
if (datesWithEvents.has(dateKey)) {
|
|
66
|
+
dayEl.classList.add('has-events');
|
|
67
|
+
}
|
|
68
|
+
miniMonth.appendChild(dayEl);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
card.appendChild(miniMonth);
|
|
72
|
+
return card;
|
|
73
|
+
}
|
|
74
|
+
update(state) {
|
|
75
|
+
this.state = state;
|
|
76
|
+
// Year view is mostly static, re-render fully
|
|
77
|
+
this.render();
|
|
78
|
+
}
|
|
79
|
+
destroy() {
|
|
80
|
+
this.clearContainer();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=year-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"year-view.js","sourceRoot":"","sources":["../../../../../libs/mp-scheduler-wc/src/views/year-view.ts"],"names":[],"mappings":"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"}
|