@bimetal/calendar-vue-components 0.29.0 → 0.32.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/dist/.tsbuildinfo +1 -1
- package/dist/components/Calendar.d.ts +57 -7
- package/dist/components/Calendar.d.ts.map +1 -1
- package/dist/components/Calendar.js +58 -28
- package/dist/components/Calendar.js.map +1 -1
- package/dist/components/CalendarHeader.js +9 -9
- package/dist/components/CalendarHeader.js.map +1 -1
- package/dist/components/CategoryFilter.js +2 -2
- package/dist/components/CategoryFilter.js.map +1 -1
- package/dist/components/EventBar.d.ts +62 -5
- package/dist/components/EventBar.d.ts.map +1 -1
- package/dist/components/EventBar.js +34 -23
- package/dist/components/EventBar.js.map +1 -1
- package/dist/components/EventDialog.js +49 -49
- package/dist/components/EventDialog.js.map +1 -1
- package/dist/components/EventHistory.d.ts.map +1 -1
- package/dist/components/EventHistory.js +16 -20
- package/dist/components/EventHistory.js.map +1 -1
- package/dist/components/ResourceFilter.js +2 -2
- package/dist/components/ResourceFilter.js.map +1 -1
- package/dist/components/UndoToast.js +4 -4
- package/dist/components/UndoToast.js.map +1 -1
- package/dist/views/agenda/AgendaView.d.ts +15 -7
- package/dist/views/agenda/AgendaView.d.ts.map +1 -1
- package/dist/views/agenda/AgendaView.js +92 -110
- package/dist/views/agenda/AgendaView.js.map +1 -1
- package/dist/views/day/DayView.d.ts.map +1 -1
- package/dist/views/day/DayView.js +31 -26
- package/dist/views/day/DayView.js.map +1 -1
- package/dist/views/month/MonthView.js +4 -4
- package/dist/views/month/MonthView.js.map +1 -1
- package/dist/views/month/WeekRow.d.ts.map +1 -1
- package/dist/views/month/WeekRow.js +28 -17
- package/dist/views/month/WeekRow.js.map +1 -1
- package/dist/views/resource/ResourceView.d.ts.map +1 -1
- package/dist/views/resource/ResourceView.js +32 -29
- package/dist/views/resource/ResourceView.js.map +1 -1
- package/dist/views/timeline/TimelineView.d.ts.map +1 -1
- package/dist/views/timeline/TimelineView.js +23 -15
- package/dist/views/timeline/TimelineView.js.map +1 -1
- package/dist/views/week/AllDayRow.d.ts.map +1 -1
- package/dist/views/week/AllDayRow.js +14 -6
- package/dist/views/week/AllDayRow.js.map +1 -1
- package/dist/views/week/TimeEvent.d.ts +61 -15
- package/dist/views/week/TimeEvent.d.ts.map +1 -1
- package/dist/views/week/TimeEvent.js +35 -19
- package/dist/views/week/TimeEvent.js.map +1 -1
- package/dist/views/week/WeekView.d.ts.map +1 -1
- package/dist/views/week/WeekView.js +29 -26
- package/dist/views/week/WeekView.js.map +1 -1
- package/dist/views/year/YearView.js +10 -10
- package/dist/views/year/YearView.js.map +1 -1
- package/package.json +9 -8
- package/dist/binding/utils/date-strings.d.ts +0 -16
- package/dist/binding/utils/date-strings.d.ts.map +0 -1
- package/dist/binding/utils/date-strings.js +0 -30
- package/dist/binding/utils/date-strings.js.map +0 -1
- package/dist/binding/utils/gridUtils.d.ts +0 -6
- package/dist/binding/utils/gridUtils.d.ts.map +0 -1
- package/dist/binding/utils/gridUtils.js +0 -13
- package/dist/binding/utils/gridUtils.js.map +0 -1
|
@@ -1,25 +1,42 @@
|
|
|
1
1
|
import { type PropType } from 'vue';
|
|
2
2
|
import type { CalendarEvent, CalendarDateTime } from '@bimetal/calendar-core';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Ein Termin in einer Spalten-orientierten View (Week, Day, Resource). Zwei orthogonale
|
|
5
|
+
* Layout-Achsen — siehe React-Variante für die Architektur-Begründung (Pilot-Direktive
|
|
6
|
+
* 2026-06-21).
|
|
7
|
+
*
|
|
8
|
+
* v0.30 Slice 3 (Vue identity-treue): die sechs Achsen werden als FLACHE primitive Props
|
|
9
|
+
* übergeben (statt als `layout`-Objekt), damit Vues Prop-Diff sie per Wert vergleicht;
|
|
10
|
+
* Selektion kommt als `isSelected`-Prop. Der Render liest KEIN `selectedEventId` mehr aus
|
|
11
|
+
* dem Context — dieser reaktive Read re-renderte sonst JEDEN Termin bei jeder Selektion.
|
|
7
12
|
*/
|
|
8
|
-
export interface TimeEventLayout {
|
|
9
|
-
readonly dayCol: number;
|
|
10
|
-
readonly dayCount: number;
|
|
11
|
-
readonly lane: number;
|
|
12
|
-
readonly laneCount: number;
|
|
13
|
-
readonly startOffset: number;
|
|
14
|
-
readonly endOffset: number;
|
|
15
|
-
}
|
|
16
13
|
export declare const TimeEvent: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
17
14
|
event: {
|
|
18
15
|
type: PropType<CalendarEvent>;
|
|
19
16
|
required: true;
|
|
20
17
|
};
|
|
21
|
-
|
|
22
|
-
type:
|
|
18
|
+
dayCol: {
|
|
19
|
+
type: NumberConstructor;
|
|
20
|
+
required: true;
|
|
21
|
+
};
|
|
22
|
+
dayCount: {
|
|
23
|
+
type: NumberConstructor;
|
|
24
|
+
required: true;
|
|
25
|
+
};
|
|
26
|
+
lane: {
|
|
27
|
+
type: NumberConstructor;
|
|
28
|
+
required: true;
|
|
29
|
+
};
|
|
30
|
+
laneCount: {
|
|
31
|
+
type: NumberConstructor;
|
|
32
|
+
required: true;
|
|
33
|
+
};
|
|
34
|
+
startOffset: {
|
|
35
|
+
type: NumberConstructor;
|
|
36
|
+
required: true;
|
|
37
|
+
};
|
|
38
|
+
endOffset: {
|
|
39
|
+
type: NumberConstructor;
|
|
23
40
|
required: true;
|
|
24
41
|
};
|
|
25
42
|
dayDate: {
|
|
@@ -38,6 +55,10 @@ export declare const TimeEvent: import("vue").DefineComponent<import("vue").Extr
|
|
|
38
55
|
type: BooleanConstructor;
|
|
39
56
|
default: boolean;
|
|
40
57
|
};
|
|
58
|
+
isSelected: {
|
|
59
|
+
type: BooleanConstructor;
|
|
60
|
+
default: boolean;
|
|
61
|
+
};
|
|
41
62
|
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
42
63
|
[key: string]: any;
|
|
43
64
|
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
@@ -45,8 +66,28 @@ export declare const TimeEvent: import("vue").DefineComponent<import("vue").Extr
|
|
|
45
66
|
type: PropType<CalendarEvent>;
|
|
46
67
|
required: true;
|
|
47
68
|
};
|
|
48
|
-
|
|
49
|
-
type:
|
|
69
|
+
dayCol: {
|
|
70
|
+
type: NumberConstructor;
|
|
71
|
+
required: true;
|
|
72
|
+
};
|
|
73
|
+
dayCount: {
|
|
74
|
+
type: NumberConstructor;
|
|
75
|
+
required: true;
|
|
76
|
+
};
|
|
77
|
+
lane: {
|
|
78
|
+
type: NumberConstructor;
|
|
79
|
+
required: true;
|
|
80
|
+
};
|
|
81
|
+
laneCount: {
|
|
82
|
+
type: NumberConstructor;
|
|
83
|
+
required: true;
|
|
84
|
+
};
|
|
85
|
+
startOffset: {
|
|
86
|
+
type: NumberConstructor;
|
|
87
|
+
required: true;
|
|
88
|
+
};
|
|
89
|
+
endOffset: {
|
|
90
|
+
type: NumberConstructor;
|
|
50
91
|
required: true;
|
|
51
92
|
};
|
|
52
93
|
dayDate: {
|
|
@@ -65,8 +106,13 @@ export declare const TimeEvent: import("vue").DefineComponent<import("vue").Extr
|
|
|
65
106
|
type: BooleanConstructor;
|
|
66
107
|
default: boolean;
|
|
67
108
|
};
|
|
109
|
+
isSelected: {
|
|
110
|
+
type: BooleanConstructor;
|
|
111
|
+
default: boolean;
|
|
112
|
+
};
|
|
68
113
|
}>> & Readonly<{}>, {
|
|
69
114
|
ghost: boolean;
|
|
115
|
+
isSelected: boolean;
|
|
70
116
|
timeLabelWidth: number;
|
|
71
117
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
72
118
|
//# sourceMappingURL=TimeEvent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeEvent.d.ts","sourceRoot":"","sources":["../../../src/views/week/TimeEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,QAAQ,EAAK,MAAM,KAAK,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"TimeEvent.d.ts","sourceRoot":"","sources":["../../../src/views/week/TimeEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,QAAQ,EAAK,MAAM,KAAK,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAM9E;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS;;cAGO,QAAQ,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAOrB,QAAQ,CAAC,gBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;cAP5B,QAAQ,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAOrB,QAAQ,CAAC,gBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;4EA+IvD,CAAC"}
|
|
@@ -2,19 +2,36 @@ import { defineComponent, h } from 'vue';
|
|
|
2
2
|
import { isSameDay, getRecurrenceInstanceMetadata } from '@bimetal/calendar-core';
|
|
3
3
|
import { useCalendarContext, useCalendarConfig, toTimeStr, buildDragInfo, useEventSlots } from '../../binding/index.js';
|
|
4
4
|
import { createClickIntent, writeCalendarDragData, installTransparentDragImage } from '@bimetal/calendar-headless';
|
|
5
|
+
import { probeRender } from '@bimetal/vue';
|
|
6
|
+
/**
|
|
7
|
+
* Ein Termin in einer Spalten-orientierten View (Week, Day, Resource). Zwei orthogonale
|
|
8
|
+
* Layout-Achsen — siehe React-Variante für die Architektur-Begründung (Pilot-Direktive
|
|
9
|
+
* 2026-06-21).
|
|
10
|
+
*
|
|
11
|
+
* v0.30 Slice 3 (Vue identity-treue): die sechs Achsen werden als FLACHE primitive Props
|
|
12
|
+
* übergeben (statt als `layout`-Objekt), damit Vues Prop-Diff sie per Wert vergleicht;
|
|
13
|
+
* Selektion kommt als `isSelected`-Prop. Der Render liest KEIN `selectedEventId` mehr aus
|
|
14
|
+
* dem Context — dieser reaktive Read re-renderte sonst JEDEN Termin bei jeder Selektion.
|
|
15
|
+
*/
|
|
5
16
|
export const TimeEvent = defineComponent({
|
|
6
17
|
name: 'TimeEvent',
|
|
7
18
|
props: {
|
|
8
19
|
event: { type: Object, required: true },
|
|
9
|
-
|
|
20
|
+
dayCol: { type: Number, required: true },
|
|
21
|
+
dayCount: { type: Number, required: true },
|
|
22
|
+
lane: { type: Number, required: true },
|
|
23
|
+
laneCount: { type: Number, required: true },
|
|
24
|
+
startOffset: { type: Number, required: true },
|
|
25
|
+
endOffset: { type: Number, required: true },
|
|
10
26
|
dayDate: { type: Object, required: true },
|
|
11
27
|
hourHeight: { type: Number, required: true },
|
|
12
28
|
timeLabelWidth: { type: Number, default: 50 },
|
|
13
29
|
ghost: { type: Boolean, default: false },
|
|
30
|
+
isSelected: { type: Boolean, default: false },
|
|
14
31
|
},
|
|
15
32
|
setup(props) {
|
|
16
33
|
const config = useCalendarConfig();
|
|
17
|
-
const { onEventClick, onSelectEvent,
|
|
34
|
+
const { onEventClick, onSelectEvent, onDragStart: ctxDragStart, onDragEnd: ctxDragEnd, } = useCalendarContext();
|
|
18
35
|
const click = createClickIntent();
|
|
19
36
|
const slots = useEventSlots(() => props.event);
|
|
20
37
|
const handleMouseDown = () => {
|
|
@@ -56,12 +73,13 @@ export const TimeEvent = defineComponent({
|
|
|
56
73
|
onEventClick(props.event.id, rect, instanceDate);
|
|
57
74
|
};
|
|
58
75
|
return () => {
|
|
76
|
+
probeRender(props.event.id);
|
|
59
77
|
// Zeit-Geometrie aus layoutTimed (Pilot-Direktive 2026-06-21).
|
|
60
78
|
const dayHeight = 24 * props.hourHeight;
|
|
61
|
-
const top = props.
|
|
62
|
-
const rawHeight = (props.
|
|
79
|
+
const top = props.startOffset * dayHeight;
|
|
80
|
+
const rawHeight = (props.endOffset - props.startOffset) * dayHeight;
|
|
63
81
|
const height = Math.max(rawHeight, 0.25 * props.hourHeight);
|
|
64
|
-
const duration = Math.max((props.
|
|
82
|
+
const duration = Math.max((props.endOffset - props.startOffset) * 24, 0.25);
|
|
65
83
|
const isFirstDay = isSameDay(props.event.timeRange.start, props.dayDate);
|
|
66
84
|
const isLastDay = isSameDay(props.event.timeRange.end, props.dayDate);
|
|
67
85
|
const color = props.event.metadata.color ?? '#007AFF';
|
|
@@ -78,16 +96,14 @@ export const TimeEvent = defineComponent({
|
|
|
78
96
|
timeLabel = `${config.locale.timeUntil} ${endTimeStr}`;
|
|
79
97
|
}
|
|
80
98
|
const tlw = props.timeLabelWidth;
|
|
81
|
-
const leftFraction = props.
|
|
82
|
-
+ props.
|
|
83
|
-
const widthFraction = 1 / (props.
|
|
99
|
+
const leftFraction = props.dayCol / props.dayCount
|
|
100
|
+
+ props.lane / (props.dayCount * props.laneCount);
|
|
101
|
+
const widthFraction = 1 / (props.dayCount * props.laneCount);
|
|
84
102
|
const s = slots.value;
|
|
85
103
|
const title = s.title ?? props.event.title;
|
|
86
104
|
const extraClass = s.className ? ' ' + s.className : '';
|
|
87
|
-
const instanceDate = getRecurrenceInstanceMetadata(props.event)?.instanceDate;
|
|
88
|
-
const isSelected = selectedEventId.value === props.event.id && selectedInstanceDate.value === instanceDate;
|
|
89
105
|
return h('div', {
|
|
90
|
-
class: `time-event ${props.ghost ? 'time-event--ghost' : ''}${isSelected ? ' time-event--selected' : ''}${extraClass}`,
|
|
106
|
+
class: `bm-cal-time-event ${props.ghost ? 'bm-cal-time-event--ghost' : ''}${props.isSelected ? ' bm-cal-time-event--selected' : ''}${extraClass}`,
|
|
91
107
|
style: {
|
|
92
108
|
top: `${top}px`,
|
|
93
109
|
height: `${height}px`,
|
|
@@ -98,10 +114,10 @@ export const TimeEvent = defineComponent({
|
|
|
98
114
|
...s.style,
|
|
99
115
|
},
|
|
100
116
|
draggable: !props.ghost,
|
|
101
|
-
'data-day-col': props.
|
|
102
|
-
'data-day-count': props.
|
|
103
|
-
'data-lane': props.
|
|
104
|
-
'data-lane-count': props.
|
|
117
|
+
'data-day-col': props.dayCol,
|
|
118
|
+
'data-day-count': props.dayCount,
|
|
119
|
+
'data-lane': props.lane,
|
|
120
|
+
'data-lane-count': props.laneCount,
|
|
105
121
|
onMousedown: handleMouseDown,
|
|
106
122
|
onDragstart: handleDragStart,
|
|
107
123
|
onDragend: ctxDragEnd,
|
|
@@ -111,7 +127,7 @@ export const TimeEvent = defineComponent({
|
|
|
111
127
|
}, [
|
|
112
128
|
isFirstDay && !props.ghost
|
|
113
129
|
? h('div', {
|
|
114
|
-
class: 'time-event__resize time-event__resize--top',
|
|
130
|
+
class: 'bm-cal-time-event__resize bm-cal-time-event__resize--top',
|
|
115
131
|
draggable: true,
|
|
116
132
|
onDragstart: (e) => handleResizeDragStart(e, 'start'),
|
|
117
133
|
onDragend: ctxDragEnd,
|
|
@@ -119,15 +135,15 @@ export const TimeEvent = defineComponent({
|
|
|
119
135
|
})
|
|
120
136
|
: null,
|
|
121
137
|
s.content ?? [
|
|
122
|
-
h('div', { class: 'time-event__title' }, title),
|
|
138
|
+
h('div', { class: 'bm-cal-time-event__title' }, title),
|
|
123
139
|
duration >= 0.75 && timeLabel
|
|
124
|
-
? h('div', { class: 'time-event__time' }, timeLabel)
|
|
140
|
+
? h('div', { class: 'bm-cal-time-event__time' }, timeLabel)
|
|
125
141
|
: null,
|
|
126
142
|
],
|
|
127
143
|
s.badges ?? null,
|
|
128
144
|
isLastDay && !props.ghost
|
|
129
145
|
? h('div', {
|
|
130
|
-
class: 'time-event__resize time-event__resize--bottom',
|
|
146
|
+
class: 'bm-cal-time-event__resize bm-cal-time-event__resize--bottom',
|
|
131
147
|
draggable: true,
|
|
132
148
|
onDragstart: (e) => handleResizeDragStart(e, 'end'),
|
|
133
149
|
onDragend: ctxDragEnd,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeEvent.js","sourceRoot":"","sources":["../../../src/views/week/TimeEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAiB,CAAC,EAAE,MAAM,KAAK,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACxH,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"TimeEvent.js","sourceRoot":"","sources":["../../../src/views/week/TimeEvent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WeekView.d.ts","sourceRoot":"","sources":["../../../src/views/week/WeekView.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0D,KAAK,QAAQ,EAAK,MAAM,KAAK,CAAC;AAC/F,OAAO,KAAK,EAAiB,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAa9E,eAAO,MAAM,QAAQ;;cAGc,QAAQ,CAAC,gBAAgB,CAAC;;;;;;;cAA1B,QAAQ,CAAC,gBAAgB,CAAC;;;
|
|
1
|
+
{"version":3,"file":"WeekView.d.ts","sourceRoot":"","sources":["../../../src/views/week/WeekView.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0D,KAAK,QAAQ,EAAK,MAAM,KAAK,CAAC;AAC/F,OAAO,KAAK,EAAiB,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAa9E,eAAO,MAAM,QAAQ;;cAGc,QAAQ,CAAC,gBAAgB,CAAC;;;;;;;cAA1B,QAAQ,CAAC,gBAAgB,CAAC;;;iGAiO3D,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, computed, ref, onMounted, onUnmounted, h } from 'vue';
|
|
2
|
-
import { weekGrid, calendarWeekNumber, isSameDay, now, segmentAllDay, segmentTimed, layoutAllDay, layoutTimed, getHours, getMinutes, getDayOfMonth, } from '@bimetal/calendar-core';
|
|
2
|
+
import { weekGrid, calendarWeekNumber, isSameDay, now, segmentAllDay, segmentTimed, layoutAllDay, layoutTimed, getHours, getMinutes, getDayOfMonth, getRecurrenceInstanceMetadata, } from '@bimetal/calendar-core';
|
|
3
3
|
import { useCalendarContext, useCalendarConfig, toDateStr, parseDateTimeStr } from '../../binding/index.js';
|
|
4
4
|
import { DEFAULT_HOUR_HEIGHT, DEFAULT_TIME_LABEL_WIDTH_WEEK, DEFAULT_SCROLL_HOUR, createClickIntent, timeGridHit } from '@bimetal/calendar-headless';
|
|
5
5
|
import { AllDayRow } from './AllDayRow.js';
|
|
@@ -12,7 +12,9 @@ export const WeekView = defineComponent({
|
|
|
12
12
|
},
|
|
13
13
|
setup(props) {
|
|
14
14
|
const config = useCalendarConfig();
|
|
15
|
-
const { events, previewEvent, onDragOverDateTime, onDropTimedEvent, onHidePreview, onDayCellClick, selectedEventId, onClearSelection, } = useCalendarContext();
|
|
15
|
+
const { events, previewEvent, onDragOverDateTime, onDropTimedEvent, onHidePreview, onDayCellClick, selectedEventId, selectedInstanceDate, onClearSelection, } = useCalendarContext();
|
|
16
|
+
// v0.30 Slice 3: selection computed per-leaf, passed to TimeEvent as `isSelected` (not read there).
|
|
17
|
+
const isTimeSelected = (ev) => selectedEventId.value === ev.id && selectedInstanceDate.value === (getRecurrenceInstanceMetadata(ev)?.instanceDate);
|
|
16
18
|
const timeGridRef = ref(null);
|
|
17
19
|
const gridInnerRef = ref(null);
|
|
18
20
|
const click = createClickIntent();
|
|
@@ -79,7 +81,7 @@ export const WeekView = defineComponent({
|
|
|
79
81
|
const handleGridClick = (e) => {
|
|
80
82
|
if (!click.accept(config.clickThresholdMs))
|
|
81
83
|
return;
|
|
82
|
-
if (e.target.closest('.time-event'))
|
|
84
|
+
if (e.target.closest('.bm-cal-time-event'))
|
|
83
85
|
return;
|
|
84
86
|
// Single click on empty grid deselects; create-dialog moves to dblclick.
|
|
85
87
|
if (selectedEventId.value !== null)
|
|
@@ -90,7 +92,7 @@ export const WeekView = defineComponent({
|
|
|
90
92
|
return;
|
|
91
93
|
if (!gridInnerRef.value)
|
|
92
94
|
return;
|
|
93
|
-
if (e.target.closest('.time-event'))
|
|
95
|
+
if (e.target.closest('.bm-cal-time-event'))
|
|
94
96
|
return;
|
|
95
97
|
const gridRect = gridInnerRef.value.getBoundingClientRect();
|
|
96
98
|
const hit = timeGridHit({ x: e.clientX, y: e.clientY }, gridRect, { labelWidth: DEFAULT_TIME_LABEL_WIDTH_WEEK, hourHeight: DEFAULT_HOUR_HEIGHT, snapMinutes: timeSnapMinutes });
|
|
@@ -113,19 +115,19 @@ export const WeekView = defineComponent({
|
|
|
113
115
|
const currentNow = now(config.core.timezone, config.core.clock);
|
|
114
116
|
const nowCol = weekDates.value.findIndex(d => isSameDay(d, currentNow));
|
|
115
117
|
const nowHours = getHours(currentNow) + getMinutes(currentNow) / 60;
|
|
116
|
-
return h('div', { class: 'week
|
|
118
|
+
return h('div', { class: 'bm-cal-week' }, [
|
|
117
119
|
// Header
|
|
118
|
-
h('div', { class: '
|
|
119
|
-
h('div', { class: '
|
|
120
|
+
h('div', { class: 'bm-cal-week__header' }, [
|
|
121
|
+
h('div', { class: 'bm-cal-week__corner' }, `${config.locale.calendarWeek} ${weekNumber.value}`),
|
|
120
122
|
...weekDates.value.map((date, i) => {
|
|
121
123
|
const isToday = isSameDay(date, currentNow);
|
|
122
124
|
return h('div', {
|
|
123
125
|
key: i,
|
|
124
|
-
class: `
|
|
126
|
+
class: `bm-cal-week__day-header ${isToday ? 'bm-cal-week__day-header--today' : ''}`,
|
|
125
127
|
}, [
|
|
126
|
-
h('span', { class: '
|
|
128
|
+
h('span', { class: 'bm-cal-week__day-name' }, config.locale.dayNamesShort[i]),
|
|
127
129
|
h('span', {
|
|
128
|
-
class: `
|
|
130
|
+
class: `bm-cal-week__day-number ${isToday ? 'bm-cal-week__day-number--today' : ''}`,
|
|
129
131
|
}, getDayOfMonth(date)),
|
|
130
132
|
]);
|
|
131
133
|
}),
|
|
@@ -138,7 +140,7 @@ export const WeekView = defineComponent({
|
|
|
138
140
|
// Time grid
|
|
139
141
|
h('div', {
|
|
140
142
|
ref: timeGridRef,
|
|
141
|
-
class: '
|
|
143
|
+
class: 'bm-cal-week__time-grid',
|
|
142
144
|
onDragover: handleGridDragOver,
|
|
143
145
|
onDrop: handleGridDrop,
|
|
144
146
|
onDragleave: handleGridDragLeave,
|
|
@@ -148,7 +150,7 @@ export const WeekView = defineComponent({
|
|
|
148
150
|
}, [
|
|
149
151
|
h('div', {
|
|
150
152
|
ref: gridInnerRef,
|
|
151
|
-
class: '
|
|
153
|
+
class: 'bm-cal-week__time-grid-inner',
|
|
152
154
|
style: { height: `${24 * DEFAULT_HOUR_HEIGHT}px` },
|
|
153
155
|
}, [
|
|
154
156
|
// Hour rows
|
|
@@ -157,48 +159,49 @@ export const WeekView = defineComponent({
|
|
|
157
159
|
const isOff = wh ? (hr < wh.start || hr >= wh.end) : false;
|
|
158
160
|
return h('div', {
|
|
159
161
|
key: hr,
|
|
160
|
-
class: `
|
|
162
|
+
class: `bm-cal-week__hour-row${isOff ? ' bm-cal__hour-slot--off' : ''}`,
|
|
161
163
|
style: { top: `${hr * DEFAULT_HOUR_HEIGHT}px`, height: `${DEFAULT_HOUR_HEIGHT}px` },
|
|
162
164
|
}, [
|
|
163
|
-
h('div', { class: '
|
|
165
|
+
h('div', { class: 'bm-cal-week__hour-label' }, hr > 0 ? `${String(hr).padStart(2, '0')}:00` : ''),
|
|
164
166
|
]);
|
|
165
167
|
}),
|
|
166
168
|
// Day columns
|
|
167
169
|
...weekDates.value.map((_, col) => h('div', {
|
|
168
170
|
key: col,
|
|
169
|
-
class: '
|
|
171
|
+
class: 'bm-cal-week__day-col',
|
|
170
172
|
style: {
|
|
171
173
|
left: `calc(${DEFAULT_TIME_LABEL_WIDTH_WEEK}px + ${col} * (100% - ${DEFAULT_TIME_LABEL_WIDTH_WEEK}px) / 7)`,
|
|
172
174
|
width: `calc((100% - ${DEFAULT_TIME_LABEL_WIDTH_WEEK}px) / 7)`,
|
|
173
175
|
},
|
|
174
176
|
})),
|
|
175
177
|
// Timed events
|
|
176
|
-
...Array.from(timedLayoutByDay.value.entries()).flatMap(([col, items]) => items.map(item =>
|
|
178
|
+
...Array.from(timedLayoutByDay.value.entries()).flatMap(([col, items]) => items.map(item =>
|
|
179
|
+
// v0.30 Slice 3: flat primitive layout props + per-leaf isSelected (no wrapper).
|
|
180
|
+
h(TimeEvent, {
|
|
177
181
|
key: `${item.segment.event.id}-${col}-${item.column}`,
|
|
178
182
|
event: item.segment.event,
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
endOffset: item.endOffset,
|
|
186
|
-
},
|
|
183
|
+
dayCol: col,
|
|
184
|
+
dayCount: 7,
|
|
185
|
+
lane: item.column,
|
|
186
|
+
laneCount: item.totalColumns,
|
|
187
|
+
startOffset: item.startOffset,
|
|
188
|
+
endOffset: item.endOffset,
|
|
187
189
|
dayDate: weekDates.value[col],
|
|
188
190
|
hourHeight: DEFAULT_HOUR_HEIGHT,
|
|
189
191
|
ghost: previewEvent.value?.id === item.segment.event.id,
|
|
192
|
+
isSelected: isTimeSelected(item.segment.event),
|
|
190
193
|
}))),
|
|
191
194
|
// Now line
|
|
192
195
|
nowCol >= 0
|
|
193
196
|
? h('div', {
|
|
194
|
-
class: '
|
|
197
|
+
class: 'bm-cal-week__now-line',
|
|
195
198
|
style: {
|
|
196
199
|
top: `${nowHours * DEFAULT_HOUR_HEIGHT}px`,
|
|
197
200
|
left: `calc(${DEFAULT_TIME_LABEL_WIDTH_WEEK}px + ${nowCol} * (100% - ${DEFAULT_TIME_LABEL_WIDTH_WEEK}px) / 7)`,
|
|
198
201
|
width: `calc((100% - ${DEFAULT_TIME_LABEL_WIDTH_WEEK}px) / 7)`,
|
|
199
202
|
},
|
|
200
203
|
}, [
|
|
201
|
-
h('div', { class: '
|
|
204
|
+
h('div', { class: 'bm-cal-week__now-dot' }),
|
|
202
205
|
])
|
|
203
206
|
: null,
|
|
204
207
|
]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WeekView.js","sourceRoot":"","sources":["../../../src/views/week/WeekView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAiB,CAAC,EAAE,MAAM,KAAK,CAAC;AAE/F,OAAO,EACL,QAAQ,EAAE,kBAAkB,EAAE,SAAS,EAAE,GAAG,EAC5C,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EACtD,QAAQ,EAAE,UAAU,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"WeekView.js","sourceRoot":"","sources":["../../../src/views/week/WeekView.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,31 +34,31 @@ export const YearView = defineComponent({
|
|
|
34
34
|
});
|
|
35
35
|
return () => {
|
|
36
36
|
const today = now(config.core.timezone, config.core.clock);
|
|
37
|
-
return h('div', { class: 'year
|
|
37
|
+
return h('div', { class: 'bm-cal-year' }, months.value.map(({ month, label, weeks }) => h('div', { key: month, class: 'bm-cal-year-month' }, [
|
|
38
38
|
props.onMonthClick
|
|
39
39
|
? h('button', {
|
|
40
40
|
type: 'button',
|
|
41
|
-
class: 'year-month__header',
|
|
41
|
+
class: 'bm-cal-year-month__header',
|
|
42
42
|
onClick: () => props.onMonthClick(props.year, month),
|
|
43
43
|
}, label)
|
|
44
|
-
: h('div', { class: 'year-month__header' }, label),
|
|
45
|
-
h('div', { class: 'year-month__day-headers' }, config.locale.dayNamesShort.map(n => h('div', { key: n, class: 'year-month__day-header' }, n[0]))),
|
|
46
|
-
h('div', { class: 'year-month__days' }, weeks.flatMap(week => week.map(date => {
|
|
44
|
+
: h('div', { class: 'bm-cal-year-month__header' }, label),
|
|
45
|
+
h('div', { class: 'bm-cal-year-month__day-headers' }, config.locale.dayNamesShort.map(n => h('div', { key: n, class: 'bm-cal-year-month__day-header' }, n[0]))),
|
|
46
|
+
h('div', { class: 'bm-cal-year-month__days' }, weeks.flatMap(week => week.map(date => {
|
|
47
47
|
const inMonth = getMonth(date) === month;
|
|
48
48
|
const isToday = isSameDay(date, today);
|
|
49
49
|
const hasEvents = eventDays.value.has(startOfDay(date).epochMs);
|
|
50
50
|
return h('button', {
|
|
51
51
|
key: date.epochMs,
|
|
52
52
|
type: 'button',
|
|
53
|
-
class: 'year-month__day'
|
|
54
|
-
+ (inMonth ? '' : ' year-month__day--outside')
|
|
55
|
-
+ (isToday ? ' year-month__day--today' : '')
|
|
56
|
-
+ (hasEvents ? ' year-month__day--has-events' : ''),
|
|
53
|
+
class: 'bm-cal-year-month__day'
|
|
54
|
+
+ (inMonth ? '' : ' bm-cal-year-month__day--outside')
|
|
55
|
+
+ (isToday ? ' bm-cal-year-month__day--today' : '')
|
|
56
|
+
+ (hasEvents ? ' bm-cal-year-month__day--has-events' : ''),
|
|
57
57
|
onClick: (e) => {
|
|
58
58
|
const rect = e.currentTarget.getBoundingClientRect();
|
|
59
59
|
onDayCellClick(date, rect);
|
|
60
60
|
},
|
|
61
|
-
}, h('span', { class: 'year-month__day-num' }, String(getDayOfMonth(date))));
|
|
61
|
+
}, h('span', { class: 'bm-cal-year-month__day-num' }, String(getDayOfMonth(date))));
|
|
62
62
|
}))),
|
|
63
63
|
])));
|
|
64
64
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YearView.js","sourceRoot":"","sources":["../../../src/views/year/YearView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,EAAiB,MAAM,KAAK,CAAC;AAClE,OAAO,EACL,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,GACxE,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE/E,MAAM,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAC;IACtC,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE;QACL,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;QACtC,YAAY,EAAE,EAAE,IAAI,EAAE,QAA2D,EAAE,OAAO,EAAE,SAAS,EAAE;KACxG;IACD,KAAK,CAAC,KAAK;QACT,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACnC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,kBAAkB,EAAE,CAAC;QAExD,MAAM,SAAS,GAAG,QAAQ,CAAc,GAAG,EAAE;YAC3C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;YAC9B,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC9B,IAAI,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC5C,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC;gBAC9B,OAAO,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;oBACrC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBACxB,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE;YAC3B,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;gBAC3D,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ;aAC9C,CAAC,CAAC;YACH,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3C,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;gBACjE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC;aAC7C,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3D,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"YearView.js","sourceRoot":"","sources":["../../../src/views/year/YearView.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bimetal/calendar-vue-components",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.32.0",
|
|
4
4
|
"description": "Default Vue 3 calendar UI components",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -25,13 +25,14 @@
|
|
|
25
25
|
"prepublishOnly": "npm run build"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@bimetal/vue": "^0.
|
|
29
|
-
"@bimetal/core": "^0.
|
|
30
|
-
"@bimetal/calendar-core": "^0.
|
|
31
|
-
"@bimetal/calendar-data": "^0.
|
|
32
|
-
"@bimetal/calendar-headless": "^0.
|
|
33
|
-
"@bimetal/
|
|
34
|
-
"@bimetal/calendar-
|
|
28
|
+
"@bimetal/vue": "^0.32.0",
|
|
29
|
+
"@bimetal/core": "^0.32.0",
|
|
30
|
+
"@bimetal/calendar-core": "^0.32.0",
|
|
31
|
+
"@bimetal/calendar-data": "^0.32.0",
|
|
32
|
+
"@bimetal/calendar-headless": "^0.32.0",
|
|
33
|
+
"@bimetal/a11y-dom": "^0.32.0",
|
|
34
|
+
"@bimetal/calendar-rules": "^0.32.0",
|
|
35
|
+
"@bimetal/calendar-themes": "^0.32.0"
|
|
35
36
|
},
|
|
36
37
|
"peerDependencies": {
|
|
37
38
|
"vue": "^3.3.0"
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { CalendarDateTime } from '@bimetal/core';
|
|
2
|
-
/** Convert CalendarDateTime to a date string "YYYY-MM-DD". */
|
|
3
|
-
export declare function toDateStr(dt: CalendarDateTime): string;
|
|
4
|
-
/** Convert CalendarDateTime to a time string "HH:MM". */
|
|
5
|
-
export declare function toTimeStr(dt: CalendarDateTime): string;
|
|
6
|
-
/**
|
|
7
|
-
* Parse a date string "YYYY-MM-DD" to CalendarDateTime (at midnight).
|
|
8
|
-
* Validation is delegated to createDateTime() — invalid dates throw CalendarValidationError.
|
|
9
|
-
*/
|
|
10
|
-
export declare function parseDateStr(dateStr: string, timezone?: string): CalendarDateTime;
|
|
11
|
-
/**
|
|
12
|
-
* Parse date + time strings into a single CalendarDateTime.
|
|
13
|
-
* Validation is delegated to createDateTime() — invalid values throw CalendarValidationError.
|
|
14
|
-
*/
|
|
15
|
-
export declare function parseDateTimeStr(dateStr: string, timeStr: string, timezone?: string): CalendarDateTime;
|
|
16
|
-
//# sourceMappingURL=date-strings.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date-strings.d.ts","sourceRoot":"","sources":["../../../src/binding/utils/date-strings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGtD,8DAA8D;AAC9D,wBAAgB,SAAS,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,CAKtD;AAED,yDAAyD;AACzD,wBAAgB,SAAS,CAAC,EAAE,EAAE,gBAAgB,GAAG,MAAM,CAEtD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAc,GAAG,gBAAgB,CAGxF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAc,GACvB,gBAAgB,CAIlB"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { getYear, getMonth, getDayOfMonth, getHours, getMinutes, createDateTime } from '@bimetal/core';
|
|
2
|
-
/** Convert CalendarDateTime to a date string "YYYY-MM-DD". */
|
|
3
|
-
export function toDateStr(dt) {
|
|
4
|
-
const y = getYear(dt);
|
|
5
|
-
const m = getMonth(dt) + 1;
|
|
6
|
-
const d = getDayOfMonth(dt);
|
|
7
|
-
return `${y}-${String(m).padStart(2, '0')}-${String(d).padStart(2, '0')}`;
|
|
8
|
-
}
|
|
9
|
-
/** Convert CalendarDateTime to a time string "HH:MM". */
|
|
10
|
-
export function toTimeStr(dt) {
|
|
11
|
-
return `${String(getHours(dt)).padStart(2, '0')}:${String(getMinutes(dt)).padStart(2, '0')}`;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Parse a date string "YYYY-MM-DD" to CalendarDateTime (at midnight).
|
|
15
|
-
* Validation is delegated to createDateTime() — invalid dates throw CalendarValidationError.
|
|
16
|
-
*/
|
|
17
|
-
export function parseDateStr(dateStr, timezone = 'UTC') {
|
|
18
|
-
const [y, m, d] = dateStr.split('-').map(Number);
|
|
19
|
-
return createDateTime(y, m - 1, d, 0, 0, timezone);
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Parse date + time strings into a single CalendarDateTime.
|
|
23
|
-
* Validation is delegated to createDateTime() — invalid values throw CalendarValidationError.
|
|
24
|
-
*/
|
|
25
|
-
export function parseDateTimeStr(dateStr, timeStr, timezone = 'UTC') {
|
|
26
|
-
const [y, mo, d] = dateStr.split('-').map(Number);
|
|
27
|
-
const [h, mi] = timeStr.split(':').map(Number);
|
|
28
|
-
return createDateTime(y, mo - 1, d, h, mi, timezone);
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=date-strings.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date-strings.js","sourceRoot":"","sources":["../../../src/binding/utils/date-strings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEvG,8DAA8D;AAC9D,MAAM,UAAU,SAAS,CAAC,EAAoB;IAC5C,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;IACtB,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC3B,MAAM,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;IAC5B,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,SAAS,CAAC,EAAoB;IAC5C,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AAC/F,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,WAAmB,KAAK;IACpE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjD,OAAO,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAe,EACf,OAAe,EACf,WAAmB,KAAK;IAExB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO,cAAc,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;AACvD,CAAC"}
|