@bimetal/calendar-vue-components 0.29.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/LICENSE +129 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/binding/composables/useCalendarConfig.d.ts +15 -0
- package/dist/binding/composables/useCalendarConfig.d.ts.map +1 -0
- package/dist/binding/composables/useCalendarConfig.js +19 -0
- package/dist/binding/composables/useCalendarConfig.js.map +1 -0
- package/dist/binding/composables/useCalendarContext.d.ts +73 -0
- package/dist/binding/composables/useCalendarContext.d.ts.map +1 -0
- package/dist/binding/composables/useCalendarContext.js +31 -0
- package/dist/binding/composables/useCalendarContext.js.map +1 -0
- package/dist/binding/composables/useCalendarController.d.ts +31 -0
- package/dist/binding/composables/useCalendarController.d.ts.map +1 -0
- package/dist/binding/composables/useCalendarController.js +38 -0
- package/dist/binding/composables/useCalendarController.js.map +1 -0
- package/dist/binding/config.d.ts +6 -0
- package/dist/binding/config.d.ts.map +1 -0
- package/dist/binding/config.js +6 -0
- package/dist/binding/config.js.map +1 -0
- package/dist/binding/index.d.ts +24 -0
- package/dist/binding/index.d.ts.map +1 -0
- package/dist/binding/index.js +26 -0
- package/dist/binding/index.js.map +1 -0
- package/dist/binding/types.d.ts +87 -0
- package/dist/binding/types.d.ts.map +1 -0
- package/dist/binding/types.js +12 -0
- package/dist/binding/types.js.map +1 -0
- package/dist/binding/utils/date-strings.d.ts +16 -0
- package/dist/binding/utils/date-strings.d.ts.map +1 -0
- package/dist/binding/utils/date-strings.js +30 -0
- package/dist/binding/utils/date-strings.js.map +1 -0
- package/dist/binding/utils/gridUtils.d.ts +6 -0
- package/dist/binding/utils/gridUtils.d.ts.map +1 -0
- package/dist/binding/utils/gridUtils.js +13 -0
- package/dist/binding/utils/gridUtils.js.map +1 -0
- package/dist/binding/view-configs.d.ts +6 -0
- package/dist/binding/view-configs.d.ts.map +1 -0
- package/dist/binding/view-configs.js +6 -0
- package/dist/binding/view-configs.js.map +1 -0
- package/dist/components/Calendar.d.ts +139 -0
- package/dist/components/Calendar.d.ts.map +1 -0
- package/dist/components/Calendar.js +229 -0
- package/dist/components/Calendar.js.map +1 -0
- package/dist/components/CalendarHeader.d.ts +65 -0
- package/dist/components/CalendarHeader.d.ts.map +1 -0
- package/dist/components/CalendarHeader.js +33 -0
- package/dist/components/CalendarHeader.js.map +1 -0
- package/dist/components/CategoryFilter.d.ts +26 -0
- package/dist/components/CategoryFilter.d.ts.map +1 -0
- package/dist/components/CategoryFilter.js +26 -0
- package/dist/components/CategoryFilter.js.map +1 -0
- package/dist/components/EventBar.d.ts +34 -0
- package/dist/components/EventBar.d.ts.map +1 -0
- package/dist/components/EventBar.js +141 -0
- package/dist/components/EventBar.js.map +1 -0
- package/dist/components/EventDialog.d.ts +54 -0
- package/dist/components/EventDialog.d.ts.map +1 -0
- package/dist/components/EventDialog.js +284 -0
- package/dist/components/EventDialog.js.map +1 -0
- package/dist/components/EventHistory.d.ts +32 -0
- package/dist/components/EventHistory.d.ts.map +1 -0
- package/dist/components/EventHistory.js +76 -0
- package/dist/components/EventHistory.js.map +1 -0
- package/dist/components/ResourceFilter.d.ts +32 -0
- package/dist/components/ResourceFilter.d.ts.map +1 -0
- package/dist/components/ResourceFilter.js +26 -0
- package/dist/components/ResourceFilter.js.map +1 -0
- package/dist/components/UndoToast.d.ts +4 -0
- package/dist/components/UndoToast.d.ts.map +1 -0
- package/dist/components/UndoToast.js +36 -0
- package/dist/components/UndoToast.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/styles/index.css +1 -0
- package/dist/views/agenda/AgendaView.d.ts +16 -0
- package/dist/views/agenda/AgendaView.d.ts.map +1 -0
- package/dist/views/agenda/AgendaView.js +163 -0
- package/dist/views/agenda/AgendaView.js.map +1 -0
- package/dist/views/day/DayView.d.ts +16 -0
- package/dist/views/day/DayView.d.ts.map +1 -0
- package/dist/views/day/DayView.js +237 -0
- package/dist/views/day/DayView.js.map +1 -0
- package/dist/views/month/MonthView.d.ts +22 -0
- package/dist/views/month/MonthView.d.ts.map +1 -0
- package/dist/views/month/MonthView.js +54 -0
- package/dist/views/month/MonthView.js.map +1 -0
- package/dist/views/month/WeekRow.d.ts +48 -0
- package/dist/views/month/WeekRow.d.ts.map +1 -0
- package/dist/views/month/WeekRow.js +208 -0
- package/dist/views/month/WeekRow.js.map +1 -0
- package/dist/views/resource/ResourceView.d.ts +40 -0
- package/dist/views/resource/ResourceView.d.ts.map +1 -0
- package/dist/views/resource/ResourceView.js +194 -0
- package/dist/views/resource/ResourceView.js.map +1 -0
- package/dist/views/timeline/TimelineView.d.ts +48 -0
- package/dist/views/timeline/TimelineView.d.ts.map +1 -0
- package/dist/views/timeline/TimelineView.js +155 -0
- package/dist/views/timeline/TimelineView.js.map +1 -0
- package/dist/views/week/AllDayRow.d.ts +24 -0
- package/dist/views/week/AllDayRow.d.ts.map +1 -0
- package/dist/views/week/AllDayRow.js +67 -0
- package/dist/views/week/AllDayRow.js.map +1 -0
- package/dist/views/week/TimeEvent.d.ts +72 -0
- package/dist/views/week/TimeEvent.d.ts.map +1 -0
- package/dist/views/week/TimeEvent.js +141 -0
- package/dist/views/week/TimeEvent.js.map +1 -0
- package/dist/views/week/WeekView.d.ts +16 -0
- package/dist/views/week/WeekView.d.ts.map +1 -0
- package/dist/views/week/WeekView.js +210 -0
- package/dist/views/week/WeekView.js.map +1 -0
- package/dist/views/year/YearView.d.ts +25 -0
- package/dist/views/year/YearView.d.ts.map +1 -0
- package/dist/views/year/YearView.js +67 -0
- package/dist/views/year/YearView.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import { defineComponent, computed, reactive, watch, markRaw, toRaw, h } from 'vue';
|
|
2
|
+
import { getYear, getMonth } from '@bimetal/calendar-core';
|
|
3
|
+
import { parseDragInfo } from '@bimetal/calendar-headless';
|
|
4
|
+
import { provideCalendarContext, provideCalendarConfig, useCalendarController, } from '../binding/index.js';
|
|
5
|
+
import { CalendarHeader } from './CalendarHeader.js';
|
|
6
|
+
import { EventDialog } from './EventDialog.js';
|
|
7
|
+
import { UndoToast } from './UndoToast.js';
|
|
8
|
+
import { MonthView } from '../views/month/MonthView.js';
|
|
9
|
+
import { WeekView } from '../views/week/WeekView.js';
|
|
10
|
+
import { DayView } from '../views/day/DayView.js';
|
|
11
|
+
import { AgendaView } from '../views/agenda/AgendaView.js';
|
|
12
|
+
import { YearView } from '../views/year/YearView.js';
|
|
13
|
+
import { CategoryFilter } from './CategoryFilter.js';
|
|
14
|
+
import { ResourceFilter } from './ResourceFilter.js';
|
|
15
|
+
import { ResourceView } from '../views/resource/ResourceView.js';
|
|
16
|
+
import { TimelineView } from '../views/timeline/TimelineView.js';
|
|
17
|
+
export const Calendar = defineComponent({
|
|
18
|
+
name: 'Calendar',
|
|
19
|
+
props: {
|
|
20
|
+
store: { type: Object, required: true },
|
|
21
|
+
rules: { type: Array, default: undefined },
|
|
22
|
+
config: { type: Object, default: undefined },
|
|
23
|
+
darkMode: { type: Boolean, default: false },
|
|
24
|
+
showCategoryFilter: { type: Boolean, default: false },
|
|
25
|
+
showResourceFilter: { type: Boolean, default: false },
|
|
26
|
+
customViews: { type: Array, default: undefined },
|
|
27
|
+
eventDialog: { type: Object, default: () => ({ kind: 'builtin' }) },
|
|
28
|
+
onEventClick: { type: Function, default: undefined },
|
|
29
|
+
onNewEventRequested: { type: Function, default: undefined },
|
|
30
|
+
renderEvent: { type: Function, default: undefined },
|
|
31
|
+
onError: { type: Function, default: undefined },
|
|
32
|
+
},
|
|
33
|
+
setup(props) {
|
|
34
|
+
// The controller owns ALL interaction state and semantics. This component
|
|
35
|
+
// is a thin binding: it bridges the snapshot into Vue reactivity, parses
|
|
36
|
+
// DOM drop/keyboard events into intents, and re-builds the (unchanged)
|
|
37
|
+
// context/config provide surface from the snapshot.
|
|
38
|
+
const { snapshot, ctrl } = useCalendarController({
|
|
39
|
+
store: props.store,
|
|
40
|
+
config: props.config,
|
|
41
|
+
rules: props.rules,
|
|
42
|
+
customViews: props.customViews,
|
|
43
|
+
eventDialogKind: props.eventDialog?.kind ?? 'builtin',
|
|
44
|
+
// `none`-mode: forward to the consumer's callbacks (read fresh from props).
|
|
45
|
+
onEventClickExternal: (id, rect, inst) => props.onEventClick?.(id, rect, inst),
|
|
46
|
+
onNewEventRequestedExternal: (date, rect, rid) => props.onNewEventRequested?.(date, rect, rid),
|
|
47
|
+
onError: (err) => props.onError?.(err),
|
|
48
|
+
}, {
|
|
49
|
+
config: () => props.config,
|
|
50
|
+
rules: () => props.rules,
|
|
51
|
+
customViews: () => props.customViews,
|
|
52
|
+
});
|
|
53
|
+
// F8: dialog mode is a dynamic prop — keep the controller in sync after mount.
|
|
54
|
+
watch(() => props.eventDialog?.kind ?? 'builtin', (kind) => ctrl.setEventDialogKind(kind));
|
|
55
|
+
// ── v0.29 Tastatur: root-scoped keydown → controller (Ctrl/Cmd+Z undo, Escape
|
|
56
|
+
// clears). Bound on the `.calendar` root below (onKeydown) — NOT a window listener
|
|
57
|
+
// (no document-level routing). Semantics live in the controller. ──
|
|
58
|
+
const onKey = (e) => ctrl.handleKeydown(e);
|
|
59
|
+
// ── DOM-event → controller-intent bindings (the only place DOM is parsed) ──
|
|
60
|
+
const onDropEvent = (e, dropDate) => {
|
|
61
|
+
const info = parseDragInfo(e.dataTransfer);
|
|
62
|
+
if (info)
|
|
63
|
+
void ctrl.dropAllDay(info, dropDate);
|
|
64
|
+
};
|
|
65
|
+
const onDropTimedEvent = (e, dropDate, dropTime) => {
|
|
66
|
+
const info = parseDragInfo(e.dataTransfer);
|
|
67
|
+
if (info)
|
|
68
|
+
void ctrl.dropTimed(info, dropDate, dropTime);
|
|
69
|
+
};
|
|
70
|
+
const onResourceDrop = (e, dropDate, dropTime, resourceId) => {
|
|
71
|
+
const info = parseDragInfo(e.dataTransfer);
|
|
72
|
+
if (info)
|
|
73
|
+
void ctrl.dropResource(info, dropDate, dropTime, resourceId);
|
|
74
|
+
};
|
|
75
|
+
const onTimelineDrop = (e, dropDate, targetResourceId) => {
|
|
76
|
+
const info = parseDragInfo(e.dataTransfer);
|
|
77
|
+
if (info)
|
|
78
|
+
void ctrl.dropTimeline(info, dropDate, targetResourceId);
|
|
79
|
+
};
|
|
80
|
+
const onResourceCellClick = (date, time, resourceId, anchorRect) => ctrl.openCreateFromResourceCell(date, time, resourceId, anchorRect);
|
|
81
|
+
const onTimelineCellClick = (date, resourceId, anchorRect) => ctrl.openCreate(date, anchorRect, resourceId);
|
|
82
|
+
// ── Context value: keep the existing Ref-based shape so views are UNCHANGED.
|
|
83
|
+
// Each reactive field is a `computed` derived from the immutable snapshot. ──
|
|
84
|
+
const contextValue = {
|
|
85
|
+
events: computed(() => [...snapshot.value.events]),
|
|
86
|
+
view: computed(() => snapshot.value.currentView),
|
|
87
|
+
previewEvent: computed(() => snapshot.value.previewEvent),
|
|
88
|
+
expandedMonthDay: computed(() => snapshot.value.expandedMonthDay),
|
|
89
|
+
onExpandMonthCell: ctrl.expandMonthCell,
|
|
90
|
+
onCollapseMonthCell: ctrl.collapseMonthCell,
|
|
91
|
+
onEventClick: ctrl.openEdit,
|
|
92
|
+
onDayCellClick: (date, anchorRect) => ctrl.openCreate(date, anchorRect),
|
|
93
|
+
onDropEvent,
|
|
94
|
+
onDropTimedEvent,
|
|
95
|
+
onDragOverDate: ctrl.updatePreview,
|
|
96
|
+
onDragOverDateTime: ctrl.updateTimedPreview,
|
|
97
|
+
onDragStart: ctrl.startDrag,
|
|
98
|
+
onHidePreview: ctrl.hidePreview,
|
|
99
|
+
onDragEnd: ctrl.endDrag,
|
|
100
|
+
selectedEventId: computed(() => snapshot.value.selection?.eventId ?? null),
|
|
101
|
+
selectedInstanceDate: computed(() => snapshot.value.selection?.instanceDate),
|
|
102
|
+
onSelectEvent: ctrl.selectEvent,
|
|
103
|
+
onClearSelection: ctrl.clearSelection,
|
|
104
|
+
onUndo: ctrl.undo,
|
|
105
|
+
getHistory: ctrl.getHistory,
|
|
106
|
+
lastAction: computed(() => snapshot.value.lastAction),
|
|
107
|
+
dismissUndo: ctrl.dismissUndo,
|
|
108
|
+
renderEvent: props.renderEvent,
|
|
109
|
+
};
|
|
110
|
+
// ── Reactive config provide (F4): a reactive object kept in sync with the
|
|
111
|
+
// snapshot's merged config, so locale/timezone/categories changes flow into
|
|
112
|
+
// the views without a re-mount. ──
|
|
113
|
+
const reactiveConfig = reactive({ ...snapshot.value.config });
|
|
114
|
+
watch(() => snapshot.value.config, (next) => {
|
|
115
|
+
Object.assign(reactiveConfig, next);
|
|
116
|
+
});
|
|
117
|
+
provideCalendarConfig(reactiveConfig);
|
|
118
|
+
provideCalendarContext(contextValue);
|
|
119
|
+
const renderView = (view, date) => {
|
|
120
|
+
const snap = snapshot.value;
|
|
121
|
+
switch (view) {
|
|
122
|
+
case 'year':
|
|
123
|
+
return h(YearView, {
|
|
124
|
+
year: getYear(date),
|
|
125
|
+
onMonthClick: (y, mo) => ctrl.goToMonth(y, mo),
|
|
126
|
+
});
|
|
127
|
+
case 'month':
|
|
128
|
+
return h(MonthView, { year: getYear(date), month: getMonth(date) });
|
|
129
|
+
case 'week':
|
|
130
|
+
return h(WeekView, { currentDate: date });
|
|
131
|
+
case 'day':
|
|
132
|
+
return h(DayView, { currentDate: date });
|
|
133
|
+
case 'agenda':
|
|
134
|
+
return h(AgendaView, { currentDate: date });
|
|
135
|
+
case 'resource':
|
|
136
|
+
return h(ResourceView, {
|
|
137
|
+
currentDate: date,
|
|
138
|
+
visibleResources: snap.visibleResources,
|
|
139
|
+
onResourceCellClick,
|
|
140
|
+
onResourceDrop,
|
|
141
|
+
});
|
|
142
|
+
case 'timeline':
|
|
143
|
+
return h(TimelineView, {
|
|
144
|
+
currentDate: date,
|
|
145
|
+
days: snap.config.core.timelineDays ?? 7,
|
|
146
|
+
visibleResources: snap.visibleResources,
|
|
147
|
+
onTimelineCellClick,
|
|
148
|
+
onTimelineDrop,
|
|
149
|
+
});
|
|
150
|
+
default: {
|
|
151
|
+
const custom = props.customViews?.find(v => v.id === view);
|
|
152
|
+
if (!custom)
|
|
153
|
+
return h('div', { class: 'view-placeholder' }, `${view} view`);
|
|
154
|
+
// toRaw + markRaw to avoid the reactive-Component warn (Vue wraps a
|
|
155
|
+
// consumer component travelling through a reactive prop).
|
|
156
|
+
return h(markRaw(toRaw(custom).component), {
|
|
157
|
+
currentDate: date,
|
|
158
|
+
events: snap.events,
|
|
159
|
+
config: snap.config,
|
|
160
|
+
onNewEvent: (defaultDate, anchorRect) => {
|
|
161
|
+
ctrl.openCreate(defaultDate, anchorRect ?? new DOMRect(0, 0, 0, 0));
|
|
162
|
+
},
|
|
163
|
+
onEventClick: ctrl.openEdit,
|
|
164
|
+
selectedEventId: snap.selection?.eventId ?? null,
|
|
165
|
+
selectedInstanceDate: snap.selection?.instanceDate,
|
|
166
|
+
onSelectEvent: ctrl.selectEvent,
|
|
167
|
+
onClearSelection: ctrl.clearSelection,
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
return () => {
|
|
173
|
+
const snap = snapshot.value;
|
|
174
|
+
const config = snap.config;
|
|
175
|
+
return h('div', { class: `calendar${props.darkMode ? ' dark' : ''}`, onKeydown: onKey }, [
|
|
176
|
+
h(CalendarHeader, {
|
|
177
|
+
title: snap.title,
|
|
178
|
+
currentView: snap.currentView,
|
|
179
|
+
viewConfigs: [...snap.viewConfigList],
|
|
180
|
+
onPrev: ctrl.prev,
|
|
181
|
+
onNext: ctrl.next,
|
|
182
|
+
onToday: ctrl.today,
|
|
183
|
+
onViewChange: ctrl.setView,
|
|
184
|
+
}),
|
|
185
|
+
props.showCategoryFilter
|
|
186
|
+
? h(CategoryFilter, {
|
|
187
|
+
categories: config.categories,
|
|
188
|
+
hiddenCategories: snap.hiddenCategories,
|
|
189
|
+
onToggle: ctrl.toggleCategory,
|
|
190
|
+
})
|
|
191
|
+
: null,
|
|
192
|
+
props.showResourceFilter && config.resources.length > 0
|
|
193
|
+
? h(ResourceFilter, {
|
|
194
|
+
resources: config.resources,
|
|
195
|
+
hiddenResources: snap.hiddenResources,
|
|
196
|
+
onToggle: ctrl.toggleResource,
|
|
197
|
+
})
|
|
198
|
+
: null,
|
|
199
|
+
renderView(snap.currentView, snap.currentDate),
|
|
200
|
+
snap.dialog && props.eventDialog?.kind === 'builtin'
|
|
201
|
+
? h(EventDialog, {
|
|
202
|
+
dialog: snap.dialog,
|
|
203
|
+
setDraft: ctrl.setDraft,
|
|
204
|
+
onSave: () => void ctrl.saveDialogFromInput(),
|
|
205
|
+
onDelete: ctrl.deleteDialog,
|
|
206
|
+
onClose: ctrl.closeDialog,
|
|
207
|
+
})
|
|
208
|
+
: null,
|
|
209
|
+
snap.dialog && props.eventDialog?.kind === 'custom'
|
|
210
|
+
// Vue's prop reactivity walks into the eventDialog object and wraps
|
|
211
|
+
// the consumer's component in a reactive proxy; h() then warns.
|
|
212
|
+
// toRaw returns the original definition; markRaw prevents re-wrapping.
|
|
213
|
+
? h(markRaw(toRaw(props.eventDialog).component), {
|
|
214
|
+
event: snap.dialog.event,
|
|
215
|
+
defaultDate: snap.dialog.defaultDate,
|
|
216
|
+
anchorRect: snap.dialog.anchorRect,
|
|
217
|
+
defaultResourceId: snap.dialog.defaultResourceId,
|
|
218
|
+
config,
|
|
219
|
+
onSave: ctrl.saveDialog,
|
|
220
|
+
onDelete: ctrl.deleteDialog,
|
|
221
|
+
onClose: ctrl.closeDialog,
|
|
222
|
+
})
|
|
223
|
+
: null,
|
|
224
|
+
h(UndoToast),
|
|
225
|
+
]);
|
|
226
|
+
};
|
|
227
|
+
},
|
|
228
|
+
});
|
|
229
|
+
//# sourceMappingURL=Calendar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Calendar.js","sourceRoot":"","sources":["../../src/components/Calendar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { type PropType } from 'vue';
|
|
2
|
+
import type { ViewType } from '@bimetal/calendar-core';
|
|
3
|
+
import type { ViewConfig } from '../binding/index.js';
|
|
4
|
+
export declare const CalendarHeader: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
5
|
+
title: {
|
|
6
|
+
type: StringConstructor;
|
|
7
|
+
required: true;
|
|
8
|
+
};
|
|
9
|
+
currentView: {
|
|
10
|
+
type: PropType<ViewType>;
|
|
11
|
+
required: true;
|
|
12
|
+
};
|
|
13
|
+
viewConfigs: {
|
|
14
|
+
type: PropType<ViewConfig[]>;
|
|
15
|
+
required: true;
|
|
16
|
+
};
|
|
17
|
+
onPrev: {
|
|
18
|
+
type: PropType<() => void>;
|
|
19
|
+
required: true;
|
|
20
|
+
};
|
|
21
|
+
onNext: {
|
|
22
|
+
type: PropType<() => void>;
|
|
23
|
+
required: true;
|
|
24
|
+
};
|
|
25
|
+
onToday: {
|
|
26
|
+
type: PropType<() => void>;
|
|
27
|
+
required: true;
|
|
28
|
+
};
|
|
29
|
+
onViewChange: {
|
|
30
|
+
type: PropType<(view: ViewType) => void>;
|
|
31
|
+
required: true;
|
|
32
|
+
};
|
|
33
|
+
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
34
|
+
[key: string]: any;
|
|
35
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
36
|
+
title: {
|
|
37
|
+
type: StringConstructor;
|
|
38
|
+
required: true;
|
|
39
|
+
};
|
|
40
|
+
currentView: {
|
|
41
|
+
type: PropType<ViewType>;
|
|
42
|
+
required: true;
|
|
43
|
+
};
|
|
44
|
+
viewConfigs: {
|
|
45
|
+
type: PropType<ViewConfig[]>;
|
|
46
|
+
required: true;
|
|
47
|
+
};
|
|
48
|
+
onPrev: {
|
|
49
|
+
type: PropType<() => void>;
|
|
50
|
+
required: true;
|
|
51
|
+
};
|
|
52
|
+
onNext: {
|
|
53
|
+
type: PropType<() => void>;
|
|
54
|
+
required: true;
|
|
55
|
+
};
|
|
56
|
+
onToday: {
|
|
57
|
+
type: PropType<() => void>;
|
|
58
|
+
required: true;
|
|
59
|
+
};
|
|
60
|
+
onViewChange: {
|
|
61
|
+
type: PropType<(view: ViewType) => void>;
|
|
62
|
+
required: true;
|
|
63
|
+
};
|
|
64
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
65
|
+
//# sourceMappingURL=CalendarHeader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CalendarHeader.d.ts","sourceRoot":"","sources":["../../src/components/CalendarHeader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,QAAQ,EAAK,MAAM,KAAK,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,eAAO,MAAM,cAAc;;;;;;cAIQ,QAAQ,CAAC,QAAQ,CAAC;;;;cACnB,QAAQ,CAAC,UAAU,EAAE,CAAC;;;;cACxB,QAAQ,CAAC,MAAM,IAAI,CAAC;;;;cACpB,QAAQ,CAAC,MAAM,IAAI,CAAC;;;;cACnB,QAAQ,CAAC,MAAM,IAAI,CAAC;;;;cACf,QAAQ,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;;;;;;;;;;;cALrC,QAAQ,CAAC,QAAQ,CAAC;;;;cACnB,QAAQ,CAAC,UAAU,EAAE,CAAC;;;;cACxB,QAAQ,CAAC,MAAM,IAAI,CAAC;;;;cACpB,QAAQ,CAAC,MAAM,IAAI,CAAC;;;;cACnB,QAAQ,CAAC,MAAM,IAAI,CAAC;;;;cACf,QAAQ,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;;;iGA0BtE,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { defineComponent, h } from 'vue';
|
|
2
|
+
import { useCalendarConfig } from '../binding/index.js';
|
|
3
|
+
export const CalendarHeader = defineComponent({
|
|
4
|
+
name: 'CalendarHeader',
|
|
5
|
+
props: {
|
|
6
|
+
title: { type: String, required: true },
|
|
7
|
+
currentView: { type: String, required: true },
|
|
8
|
+
viewConfigs: { type: Array, required: true },
|
|
9
|
+
onPrev: { type: Function, required: true },
|
|
10
|
+
onNext: { type: Function, required: true },
|
|
11
|
+
onToday: { type: Function, required: true },
|
|
12
|
+
onViewChange: { type: Function, required: true },
|
|
13
|
+
},
|
|
14
|
+
setup(props) {
|
|
15
|
+
const config = useCalendarConfig();
|
|
16
|
+
return () => h('div', { class: 'calendar-header' }, [
|
|
17
|
+
h('h1', { class: 'month-title' }, props.title),
|
|
18
|
+
h('div', { class: 'header-controls' }, [
|
|
19
|
+
h('div', { class: 'view-switcher' }, props.viewConfigs.map(vc => h('button', {
|
|
20
|
+
key: vc.type,
|
|
21
|
+
class: `view-btn ${props.currentView === vc.type ? 'view-btn--active' : ''}`,
|
|
22
|
+
onClick: () => props.onViewChange(vc.type),
|
|
23
|
+
}, vc.label))),
|
|
24
|
+
h('div', { class: 'nav-controls' }, [
|
|
25
|
+
h('button', { class: 'nav-btn', 'aria-label': config.locale.prev, onClick: props.onPrev, innerHTML: '‹' }),
|
|
26
|
+
h('button', { class: 'today-btn', onClick: props.onToday }, config.locale.today),
|
|
27
|
+
h('button', { class: 'nav-btn', 'aria-label': config.locale.next, onClick: props.onNext, innerHTML: '›' }),
|
|
28
|
+
]),
|
|
29
|
+
]),
|
|
30
|
+
]);
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=CalendarHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CalendarHeader.js","sourceRoot":"","sources":["../../src/components/CalendarHeader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAiB,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC;IAC5C,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE;QACL,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvC,WAAW,EAAE,EAAE,IAAI,EAAE,MAA4B,EAAE,QAAQ,EAAE,IAAI,EAAE;QACnE,WAAW,EAAE,EAAE,IAAI,EAAE,KAA+B,EAAE,QAAQ,EAAE,IAAI,EAAE;QACtE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAgC,EAAE,QAAQ,EAAE,IAAI,EAAE;QAClE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAgC,EAAE,QAAQ,EAAE,IAAI,EAAE;QAClE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAgC,EAAE,QAAQ,EAAE,IAAI,EAAE;QACnE,YAAY,EAAE,EAAE,IAAI,EAAE,QAA8C,EAAE,QAAQ,EAAE,IAAI,EAAE;KACvF;IACD,KAAK,CAAC,KAAK;QACT,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QAEnC,OAAO,GAAG,EAAE,CACV,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE;YACrC,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC;YAC9C,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE;gBACrC,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,EACjC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CACzB,CAAC,CAAC,QAAQ,EAAE;oBACV,GAAG,EAAE,EAAE,CAAC,IAAI;oBACZ,KAAK,EAAE,YAAY,KAAK,CAAC,WAAW,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC5E,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,YAAa,CAAC,EAAE,CAAC,IAAI,CAAC;iBAC5C,EAAE,EAAE,CAAC,KAAK,CAAC,CACb,CACF;gBACD,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;oBAClC,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;oBACjH,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;oBAChF,CAAC,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;iBAClH,CAAC;aACH,CAAC;SACH,CAAC,CAAC;IACP,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type PropType } from 'vue';
|
|
2
|
+
import type { Category } from '../binding/index.js';
|
|
3
|
+
export declare const CategoryFilter: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
4
|
+
categories: {
|
|
5
|
+
type: PropType<Category[]>;
|
|
6
|
+
required: true;
|
|
7
|
+
};
|
|
8
|
+
hiddenCategories: {
|
|
9
|
+
type: PropType<ReadonlySet<string>>;
|
|
10
|
+
required: true;
|
|
11
|
+
};
|
|
12
|
+
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
}> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "toggle"[], "toggle", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
15
|
+
categories: {
|
|
16
|
+
type: PropType<Category[]>;
|
|
17
|
+
required: true;
|
|
18
|
+
};
|
|
19
|
+
hiddenCategories: {
|
|
20
|
+
type: PropType<ReadonlySet<string>>;
|
|
21
|
+
required: true;
|
|
22
|
+
};
|
|
23
|
+
}>> & Readonly<{
|
|
24
|
+
onToggle?: ((...args: any[]) => any) | undefined;
|
|
25
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
26
|
+
//# sourceMappingURL=CategoryFilter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CategoryFilter.d.ts","sourceRoot":"","sources":["../../src/components/CategoryFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,QAAQ,EAAK,MAAM,KAAK,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,eAAO,MAAM,cAAc;;cAGM,QAAQ,CAAC,QAAQ,EAAE,CAAC;;;;cACb,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;;;;;;;cADpC,QAAQ,CAAC,QAAQ,EAAE,CAAC;;;;cACb,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;;;;;iFAqBnE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { defineComponent, h } from 'vue';
|
|
2
|
+
export const CategoryFilter = defineComponent({
|
|
3
|
+
name: 'CategoryFilter',
|
|
4
|
+
props: {
|
|
5
|
+
categories: { type: Array, required: true },
|
|
6
|
+
hiddenCategories: { type: Object, required: true },
|
|
7
|
+
},
|
|
8
|
+
emits: ['toggle'],
|
|
9
|
+
setup(props, { emit }) {
|
|
10
|
+
return () => {
|
|
11
|
+
if (props.categories.length === 0)
|
|
12
|
+
return null;
|
|
13
|
+
return h('div', { class: 'category-filter' }, props.categories.map(cat => {
|
|
14
|
+
const isHidden = props.hiddenCategories.has(cat.name);
|
|
15
|
+
return h('button', {
|
|
16
|
+
key: cat.name,
|
|
17
|
+
class: `category-filter__pill${isHidden ? ' category-filter__pill--hidden' : ''}`,
|
|
18
|
+
style: { backgroundColor: cat.color },
|
|
19
|
+
onClick: () => emit('toggle', cat.name),
|
|
20
|
+
type: 'button',
|
|
21
|
+
}, cat.name);
|
|
22
|
+
}));
|
|
23
|
+
};
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=CategoryFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CategoryFilter.js","sourceRoot":"","sources":["../../src/components/CategoryFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAiB,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxD,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC;IAC5C,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE;QACL,UAAU,EAAE,EAAE,IAAI,EAAE,KAA6B,EAAE,QAAQ,EAAE,IAAI,EAAE;QACnE,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAuC,EAAE,QAAQ,EAAE,IAAI,EAAE;KACpF;IACD,KAAK,EAAE,CAAC,QAAQ,CAAC;IACjB,KAAK,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE;QACnB,OAAO,GAAG,EAAE;YACV,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;YAE/C,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAC1C,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACtD,OAAO,CAAC,CAAC,QAAQ,EAAE;oBACjB,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,KAAK,EAAE,wBAAwB,QAAQ,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,EAAE,EAAE;oBACjF,KAAK,EAAE,EAAE,eAAe,EAAE,GAAG,CAAC,KAAK,EAAE;oBACrC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC;oBACvC,IAAI,EAAE,QAAQ;iBACf,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACf,CAAC,CAAC,CACH,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type PropType } from 'vue';
|
|
2
|
+
import type { CalendarDateTime, LayoutItem } from '@bimetal/calendar-core';
|
|
3
|
+
export declare const EventBar: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
4
|
+
item: {
|
|
5
|
+
type: PropType<LayoutItem>;
|
|
6
|
+
required: true;
|
|
7
|
+
};
|
|
8
|
+
weekDates: {
|
|
9
|
+
type: PropType<CalendarDateTime[]>;
|
|
10
|
+
required: true;
|
|
11
|
+
};
|
|
12
|
+
ghost: {
|
|
13
|
+
type: BooleanConstructor;
|
|
14
|
+
default: boolean;
|
|
15
|
+
};
|
|
16
|
+
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
17
|
+
[key: string]: any;
|
|
18
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
19
|
+
item: {
|
|
20
|
+
type: PropType<LayoutItem>;
|
|
21
|
+
required: true;
|
|
22
|
+
};
|
|
23
|
+
weekDates: {
|
|
24
|
+
type: PropType<CalendarDateTime[]>;
|
|
25
|
+
required: true;
|
|
26
|
+
};
|
|
27
|
+
ghost: {
|
|
28
|
+
type: BooleanConstructor;
|
|
29
|
+
default: boolean;
|
|
30
|
+
};
|
|
31
|
+
}>> & Readonly<{}>, {
|
|
32
|
+
ghost: boolean;
|
|
33
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
34
|
+
//# sourceMappingURL=EventBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventBar.d.ts","sourceRoot":"","sources":["../../src/components/EventBar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,QAAQ,EAAK,MAAM,KAAK,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAK3E,eAAO,MAAM,QAAQ;;cAGO,QAAQ,CAAC,UAAU,CAAC;;;;cAChB,QAAQ,CAAC,gBAAgB,EAAE,CAAC;;;;;;;;;;;cADhC,QAAQ,CAAC,UAAU,CAAC;;;;cAChB,QAAQ,CAAC,gBAAgB,EAAE,CAAC;;;;;;;;;4EAmJ1D,CAAC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { defineComponent, h } from 'vue';
|
|
2
|
+
import { daysBetween, getRecurrenceInstanceMetadata, isExpandedRecurrenceInstance } from '@bimetal/calendar-core';
|
|
3
|
+
import { useCalendarContext, useCalendarConfig, buildDragInfo, useEventSlots, toTimeStr } from '../binding/index.js';
|
|
4
|
+
import { createClickIntent, writeCalendarDragData, installTransparentDragImage, eventBarWantsDarkText } from '@bimetal/calendar-headless';
|
|
5
|
+
export const EventBar = defineComponent({
|
|
6
|
+
name: 'EventBar',
|
|
7
|
+
props: {
|
|
8
|
+
item: { type: Object, required: true },
|
|
9
|
+
weekDates: { type: Array, required: true },
|
|
10
|
+
ghost: { type: Boolean, default: false },
|
|
11
|
+
},
|
|
12
|
+
setup(props) {
|
|
13
|
+
const { onEventClick, onSelectEvent, selectedEventId, selectedInstanceDate, onDragStart: ctxDragStart, onDragEnd: ctxDragEnd, } = useCalendarContext();
|
|
14
|
+
const config = useCalendarConfig();
|
|
15
|
+
const click = createClickIntent();
|
|
16
|
+
const slots = useEventSlots(() => props.item.segment.event);
|
|
17
|
+
const handleMouseDown = () => {
|
|
18
|
+
click.markMouseDown();
|
|
19
|
+
};
|
|
20
|
+
const handleDragStart = (e) => {
|
|
21
|
+
click.markDragged();
|
|
22
|
+
const { segment, dayIndex, daySpan } = props.item;
|
|
23
|
+
const { event } = segment;
|
|
24
|
+
const bar = e.currentTarget;
|
|
25
|
+
const barRect = bar.getBoundingClientRect();
|
|
26
|
+
const colWidth = barRect.width / daySpan;
|
|
27
|
+
const grabColInBar = Math.min(Math.max(0, Math.floor((e.clientX - barRect.left) / colWidth)), daySpan - 1);
|
|
28
|
+
const grabbedDate = props.weekDates[dayIndex + grabColInBar];
|
|
29
|
+
const offset = daysBetween(event.timeRange.start, grabbedDate);
|
|
30
|
+
const info = buildDragInfo(event, 'move', { dayOffset: offset });
|
|
31
|
+
writeCalendarDragData(e.dataTransfer, info);
|
|
32
|
+
ctxDragStart(info);
|
|
33
|
+
};
|
|
34
|
+
const handleResizeDragStart = (e, edge) => {
|
|
35
|
+
e.stopPropagation();
|
|
36
|
+
click.markDragged();
|
|
37
|
+
installTransparentDragImage(e.dataTransfer);
|
|
38
|
+
const { event } = props.item.segment;
|
|
39
|
+
const info = buildDragInfo(event, 'resize', { edge });
|
|
40
|
+
writeCalendarDragData(e.dataTransfer, info);
|
|
41
|
+
ctxDragStart(info);
|
|
42
|
+
};
|
|
43
|
+
const handleClick = (e) => {
|
|
44
|
+
e.stopPropagation();
|
|
45
|
+
if (!click.accept(config.clickThresholdMs))
|
|
46
|
+
return;
|
|
47
|
+
const ev = props.item.segment.event;
|
|
48
|
+
const instanceDate = getRecurrenceInstanceMetadata(ev)?.instanceDate;
|
|
49
|
+
onSelectEvent(ev.id, instanceDate);
|
|
50
|
+
};
|
|
51
|
+
const handleDoubleClick = (e) => {
|
|
52
|
+
e.stopPropagation();
|
|
53
|
+
if (!click.accept(config.clickThresholdMs))
|
|
54
|
+
return;
|
|
55
|
+
const rect = e.currentTarget.getBoundingClientRect();
|
|
56
|
+
const ev = props.item.segment.event;
|
|
57
|
+
const instanceDate = getRecurrenceInstanceMetadata(ev)?.instanceDate;
|
|
58
|
+
onEventClick(ev.id, rect, instanceDate);
|
|
59
|
+
};
|
|
60
|
+
return () => {
|
|
61
|
+
const { segment, column, dayIndex, daySpan } = props.item;
|
|
62
|
+
const { event, isStart, isEnd } = segment;
|
|
63
|
+
const startCol = dayIndex;
|
|
64
|
+
const span = daySpan;
|
|
65
|
+
const lane = column;
|
|
66
|
+
const isCompact = span === 1 && isStart && isEnd && !event.allDay;
|
|
67
|
+
const isBar = !isCompact;
|
|
68
|
+
const color = event.metadata.color ?? '#007AFF';
|
|
69
|
+
const isRecurring = isExpandedRecurrenceInstance(event) || !!event.recurrence;
|
|
70
|
+
const ghostClass = props.ghost ? ' event-bar--ghost' : '';
|
|
71
|
+
const instanceDate = getRecurrenceInstanceMetadata(event)?.instanceDate;
|
|
72
|
+
const isSelected = selectedEventId.value === event.id && selectedInstanceDate.value === instanceDate;
|
|
73
|
+
const selectedClass = isSelected ? ' event-bar--selected' : '';
|
|
74
|
+
const s = slots.value;
|
|
75
|
+
const title = s.title ?? event.title;
|
|
76
|
+
const extraClass = s.className ? ' ' + s.className : '';
|
|
77
|
+
const style = {
|
|
78
|
+
gridColumn: `${startCol + 1} / span ${span}`,
|
|
79
|
+
gridRow: lane + 1,
|
|
80
|
+
};
|
|
81
|
+
if (isCompact) {
|
|
82
|
+
return h('div', {
|
|
83
|
+
class: `event-bar event-bar--single${ghostClass}${selectedClass}${extraClass}`,
|
|
84
|
+
style: { ...style, ...s.style },
|
|
85
|
+
draggable: !props.ghost,
|
|
86
|
+
onMousedown: handleMouseDown,
|
|
87
|
+
onDragstart: handleDragStart,
|
|
88
|
+
onDragend: ctxDragEnd,
|
|
89
|
+
onClick: handleClick,
|
|
90
|
+
onDblclick: handleDoubleClick,
|
|
91
|
+
title,
|
|
92
|
+
}, [
|
|
93
|
+
s.content ?? [
|
|
94
|
+
h('span', { class: 'event-dot', style: { backgroundColor: color } }),
|
|
95
|
+
h('span', { class: 'event-time' }, toTimeStr(event.timeRange.start)),
|
|
96
|
+
h('span', { class: 'event-title event-title--dark' }, `${isRecurring ? '↻ ' : ''}${title}`),
|
|
97
|
+
],
|
|
98
|
+
s.badges ?? null,
|
|
99
|
+
]);
|
|
100
|
+
}
|
|
101
|
+
return h('div', {
|
|
102
|
+
class: `event-bar event-bar--multi${ghostClass}${selectedClass}${extraClass}`,
|
|
103
|
+
style: {
|
|
104
|
+
...style,
|
|
105
|
+
backgroundColor: color,
|
|
106
|
+
borderRadius: `${isStart ? 4 : 0}px ${isEnd ? 4 : 0}px ${isEnd ? 4 : 0}px ${isStart ? 4 : 0}px`,
|
|
107
|
+
...s.style,
|
|
108
|
+
},
|
|
109
|
+
draggable: !props.ghost,
|
|
110
|
+
onMousedown: handleMouseDown,
|
|
111
|
+
onDragstart: handleDragStart,
|
|
112
|
+
onDragend: ctxDragEnd,
|
|
113
|
+
onClick: handleClick,
|
|
114
|
+
onDblclick: handleDoubleClick,
|
|
115
|
+
title,
|
|
116
|
+
}, [
|
|
117
|
+
isBar && isStart && !props.ghost
|
|
118
|
+
? h('div', {
|
|
119
|
+
class: 'resize-handle resize-handle--start',
|
|
120
|
+
draggable: true,
|
|
121
|
+
onDragstart: (e) => handleResizeDragStart(e, 'start'),
|
|
122
|
+
onDragend: ctxDragEnd,
|
|
123
|
+
onMousedown: (e) => e.stopPropagation(),
|
|
124
|
+
})
|
|
125
|
+
: null,
|
|
126
|
+
s.content ?? h('span', { class: `event-title${eventBarWantsDarkText(color) ? ' event-title--on-light' : ''}` }, `${isRecurring ? '↻ ' : ''}${title}`),
|
|
127
|
+
s.badges ?? null,
|
|
128
|
+
isBar && isEnd && !props.ghost
|
|
129
|
+
? h('div', {
|
|
130
|
+
class: 'resize-handle resize-handle--end',
|
|
131
|
+
draggable: true,
|
|
132
|
+
onDragstart: (e) => handleResizeDragStart(e, 'end'),
|
|
133
|
+
onDragend: ctxDragEnd,
|
|
134
|
+
onMousedown: (e) => e.stopPropagation(),
|
|
135
|
+
})
|
|
136
|
+
: null,
|
|
137
|
+
]);
|
|
138
|
+
};
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
//# sourceMappingURL=EventBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventBar.js","sourceRoot":"","sources":["../../src/components/EventBar.ts"],"names":[],"mappings":"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"}
|