@calchemy/date-react 0.1.0 → 0.1.2
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/calendar-scroll.cjs +261 -0
- package/dist/calendar-scroll.cjs.map +1 -0
- package/dist/components/calendar/CalendarGrid.d.ts.map +1 -1
- package/dist/components/calendar/CalendarGrid.js +9 -27
- package/dist/components/calendar/CalendarGrid.js.map +1 -1
- package/dist/components/calendar/CalendarPeriod.d.ts.map +1 -1
- package/dist/components/calendar/CalendarPeriod.js +9 -27
- package/dist/components/calendar/CalendarPeriod.js.map +1 -1
- package/dist/components/calendar/CalendarPeriodList.d.ts.map +1 -1
- package/dist/components/calendar/CalendarPeriodList.js +9 -27
- package/dist/components/calendar/CalendarPeriodList.js.map +1 -1
- package/dist/components/calendar/calendar-period-drag.d.ts +3 -1
- package/dist/components/calendar/calendar-period-drag.d.ts.map +1 -1
- package/dist/components/calendar/calendar-period-drag.js +29 -0
- package/dist/components/calendar/calendar-period-drag.js.map +1 -1
- package/dist/components/calendar/date-model.d.ts +0 -1
- package/dist/components/calendar/date-model.d.ts.map +1 -1
- package/dist/components/calendar/date-model.js +1 -1
- package/dist/components/calendar/date-model.js.map +1 -1
- package/dist/index.cjs +1711 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.js +1673 -2
- package/dist/index.js.map +1 -1
- package/package.json +7 -5
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/calendar-scroll.ts
|
|
21
|
+
var calendar_scroll_exports = {};
|
|
22
|
+
__export(calendar_scroll_exports, {
|
|
23
|
+
CalendarScroll: () => CalendarScroll
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(calendar_scroll_exports);
|
|
26
|
+
|
|
27
|
+
// src/components/calendar/CalendarScroll.tsx
|
|
28
|
+
var import_react2 = require("react");
|
|
29
|
+
var import_react_dom = require("react-dom");
|
|
30
|
+
|
|
31
|
+
// src/components/calendar/context.ts
|
|
32
|
+
var import_react = require("react");
|
|
33
|
+
var CalchemyContext = (0, import_react.createContext)(null);
|
|
34
|
+
var CalendarContext = (0, import_react.createContext)(null);
|
|
35
|
+
var CalendarPeriodContext = (0, import_react.createContext)(null);
|
|
36
|
+
var CalendarScrollContext = (0, import_react.createContext)(null);
|
|
37
|
+
function useCalchemyCalendar() {
|
|
38
|
+
const state = (0, import_react.useContext)(CalendarContext);
|
|
39
|
+
if (!state) {
|
|
40
|
+
throw new Error("Calchemy calendar components must be rendered inside Calchemy.Calendar.");
|
|
41
|
+
}
|
|
42
|
+
return state;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// src/components/calendar/scroll-preload.ts
|
|
46
|
+
function getScrollPosition(element, direction) {
|
|
47
|
+
return direction === "horizontal" ? element.scrollLeft : element.scrollTop;
|
|
48
|
+
}
|
|
49
|
+
function setScrollPosition(element, direction, value) {
|
|
50
|
+
if (direction === "horizontal") {
|
|
51
|
+
element.scrollLeft = value;
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
element.scrollTop = value;
|
|
55
|
+
}
|
|
56
|
+
function getScrollSize(element, direction) {
|
|
57
|
+
return direction === "horizontal" ? element.scrollWidth : element.scrollHeight;
|
|
58
|
+
}
|
|
59
|
+
function getClientSize(element, direction) {
|
|
60
|
+
return direction === "horizontal" ? element.clientWidth : element.clientHeight;
|
|
61
|
+
}
|
|
62
|
+
function scrollPeriodIntoView(scrollElement, period, direction) {
|
|
63
|
+
const scrollRect = scrollElement.getBoundingClientRect();
|
|
64
|
+
const periodRect = period.getBoundingClientRect();
|
|
65
|
+
if (direction === "horizontal") {
|
|
66
|
+
scrollElement.scrollLeft += periodRect.left - scrollRect.left;
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
scrollElement.scrollTop += periodRect.top - scrollRect.top;
|
|
70
|
+
}
|
|
71
|
+
function getScrollAnchorPeriod(scrollElement, direction) {
|
|
72
|
+
const scrollRect = scrollElement.getBoundingClientRect();
|
|
73
|
+
const periods = Array.from(scrollElement.querySelectorAll("[calchemy-period]"));
|
|
74
|
+
let fallback = null;
|
|
75
|
+
for (const period of periods) {
|
|
76
|
+
const periodRect = period.getBoundingClientRect();
|
|
77
|
+
const periodStart = direction === "horizontal" ? periodRect.left : periodRect.top;
|
|
78
|
+
const periodEnd = direction === "horizontal" ? periodRect.right : periodRect.bottom;
|
|
79
|
+
const scrollStart = direction === "horizontal" ? scrollRect.left : scrollRect.top;
|
|
80
|
+
const scrollEnd = direction === "horizontal" ? scrollRect.right : scrollRect.bottom;
|
|
81
|
+
if (periodEnd <= scrollStart) {
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
if (periodStart >= scrollEnd) {
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
fallback = period;
|
|
88
|
+
if (periodStart >= scrollStart) {
|
|
89
|
+
return period;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return fallback;
|
|
93
|
+
}
|
|
94
|
+
function getCalendarPeriodWindowSize(scrollElement, direction, periodCount) {
|
|
95
|
+
const periods = Array.from(scrollElement.querySelectorAll("[calchemy-period]"));
|
|
96
|
+
const firstPeriod = periods[0];
|
|
97
|
+
const nextPeriod = periods[1];
|
|
98
|
+
const fallback = direction === "horizontal" ? scrollElement.clientWidth : scrollElement.clientHeight;
|
|
99
|
+
if (!firstPeriod) {
|
|
100
|
+
return fallback;
|
|
101
|
+
}
|
|
102
|
+
const firstRect = firstPeriod.getBoundingClientRect();
|
|
103
|
+
const nextRect = nextPeriod?.getBoundingClientRect();
|
|
104
|
+
const singlePeriodSize = nextRect ? direction === "horizontal" ? nextRect.left - firstRect.left : nextRect.top - firstRect.top : direction === "horizontal" ? firstRect.width : firstRect.height;
|
|
105
|
+
const windowSize = Math.abs(singlePeriodSize) * periodCount;
|
|
106
|
+
return windowSize > 0 ? windowSize : fallback;
|
|
107
|
+
}
|
|
108
|
+
function getLoadedPeriodRunway(calendar, anchor, direction) {
|
|
109
|
+
const anchorIndex = anchor?.getAttribute("calchemy-period-index") ? Number(anchor.getAttribute("calchemy-period-index")) : NaN;
|
|
110
|
+
const firstIndex = calendar.periods[0]?.index;
|
|
111
|
+
const lastIndex = calendar.periods.at(-1)?.index;
|
|
112
|
+
if (!Number.isFinite(anchorIndex) || firstIndex === void 0 || lastIndex === void 0) {
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
return direction === "before" ? anchorIndex - firstIndex : lastIndex - anchorIndex;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// src/components/calendar/CalendarScroll.tsx
|
|
119
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
120
|
+
var preloadWindowCount = 2;
|
|
121
|
+
function CalendarScroll({
|
|
122
|
+
direction = "vertical",
|
|
123
|
+
onScroll,
|
|
124
|
+
...props
|
|
125
|
+
}) {
|
|
126
|
+
const calendar = useCalchemyCalendar();
|
|
127
|
+
const scrollRef = (0, import_react2.useRef)(null);
|
|
128
|
+
const [leadingSpacer, setLeadingSpacer] = (0, import_react2.useState)({
|
|
129
|
+
periodCount: 0,
|
|
130
|
+
pixelSize: 0
|
|
131
|
+
});
|
|
132
|
+
const positionedPeriodAnchor = (0, import_react2.useRef)(null);
|
|
133
|
+
const suppressPreloadEvaluation = (0, import_react2.useRef)(false);
|
|
134
|
+
const pendingPrependStabilization = (0, import_react2.useRef)(null);
|
|
135
|
+
(0, import_react2.useLayoutEffect)(() => {
|
|
136
|
+
const anchorKey = calendar.periodAnchor.toString();
|
|
137
|
+
if (positionedPeriodAnchor.current === anchorKey) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
const element = scrollRef.current;
|
|
141
|
+
const currentPeriod = element?.querySelector(
|
|
142
|
+
"[calchemy-period][calchemy-period-index='0']"
|
|
143
|
+
);
|
|
144
|
+
if (!element || !currentPeriod) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
positionedPeriodAnchor.current = anchorKey;
|
|
148
|
+
scrollPeriodIntoView(element, currentPeriod, direction);
|
|
149
|
+
}, [direction, calendar.periodAnchor, calendar.periods]);
|
|
150
|
+
function startBeforePreloadTransaction(element, preloadDirection, periodWindowSize) {
|
|
151
|
+
suppressPreloadEvaluation.current = true;
|
|
152
|
+
const extendPeriodCount = calendar.period.count * preloadWindowCount;
|
|
153
|
+
const previousScrollSize = getScrollSize(element, preloadDirection);
|
|
154
|
+
const previousScrollPosition = getScrollPosition(element, preloadDirection);
|
|
155
|
+
(0, import_react_dom.flushSync)(() => {
|
|
156
|
+
setLeadingSpacer({
|
|
157
|
+
periodCount: extendPeriodCount,
|
|
158
|
+
pixelSize: periodWindowSize * preloadWindowCount
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
setScrollPosition(
|
|
162
|
+
element,
|
|
163
|
+
preloadDirection,
|
|
164
|
+
previousScrollPosition + getScrollSize(element, preloadDirection) - previousScrollSize
|
|
165
|
+
);
|
|
166
|
+
(0, import_react_dom.flushSync)(() => {
|
|
167
|
+
calendar.extendPeriods("before", preloadWindowCount);
|
|
168
|
+
setLeadingSpacer({ periodCount: 0, pixelSize: 0 });
|
|
169
|
+
});
|
|
170
|
+
const insertedDelta = getScrollSize(element, preloadDirection) - previousScrollSize;
|
|
171
|
+
const targetPosition = previousScrollPosition + insertedDelta;
|
|
172
|
+
setScrollPosition(element, preloadDirection, targetPosition);
|
|
173
|
+
pendingPrependStabilization.current = {
|
|
174
|
+
direction: preloadDirection,
|
|
175
|
+
insertedDelta,
|
|
176
|
+
targetPosition
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
function stabilizePrependScrollEvent(element) {
|
|
180
|
+
const stabilization = pendingPrependStabilization.current;
|
|
181
|
+
if (!stabilization) {
|
|
182
|
+
suppressPreloadEvaluation.current = false;
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
const observedPosition = getScrollPosition(
|
|
186
|
+
element,
|
|
187
|
+
stabilization.direction
|
|
188
|
+
);
|
|
189
|
+
const targetDistance = observedPosition - stabilization.targetPosition;
|
|
190
|
+
const staleCoordinate = Math.abs(
|
|
191
|
+
observedPosition + stabilization.insertedDelta - stabilization.targetPosition
|
|
192
|
+
) < Math.abs(targetDistance);
|
|
193
|
+
if (staleCoordinate) {
|
|
194
|
+
setScrollPosition(
|
|
195
|
+
element,
|
|
196
|
+
stabilization.direction,
|
|
197
|
+
observedPosition + stabilization.insertedDelta
|
|
198
|
+
);
|
|
199
|
+
}
|
|
200
|
+
pendingPrependStabilization.current = null;
|
|
201
|
+
suppressPreloadEvaluation.current = false;
|
|
202
|
+
}
|
|
203
|
+
function handleScroll(event) {
|
|
204
|
+
onScroll?.(event);
|
|
205
|
+
if (event.defaultPrevented) {
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
const element = event.currentTarget;
|
|
209
|
+
if (suppressPreloadEvaluation.current) {
|
|
210
|
+
stabilizePrependScrollEvent(element);
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
if (getScrollSize(element, direction) <= getClientSize(element, direction)) {
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
const anchor = getScrollAnchorPeriod(element, direction);
|
|
217
|
+
const anchorIndex = anchor?.getAttribute("calchemy-period-index") ? Number(anchor.getAttribute("calchemy-period-index")) : NaN;
|
|
218
|
+
if (Number.isFinite(anchorIndex)) {
|
|
219
|
+
calendar.setVisiblePeriodIndex(anchorIndex);
|
|
220
|
+
}
|
|
221
|
+
const periodWindowSize = getCalendarPeriodWindowSize(
|
|
222
|
+
element,
|
|
223
|
+
direction,
|
|
224
|
+
calendar.period.count
|
|
225
|
+
);
|
|
226
|
+
const startRunway = getLoadedPeriodRunway(calendar, anchor, "before");
|
|
227
|
+
const runwayThreshold = calendar.period.count * preloadWindowCount;
|
|
228
|
+
const endRunway = getLoadedPeriodRunway(calendar, anchor, "after");
|
|
229
|
+
if (startRunway !== null && startRunway <= runwayThreshold && calendar.canExtendPeriods("before", preloadWindowCount)) {
|
|
230
|
+
startBeforePreloadTransaction(element, direction, periodWindowSize);
|
|
231
|
+
}
|
|
232
|
+
if (endRunway !== null && endRunway <= runwayThreshold && calendar.canExtendPeriods("after", preloadWindowCount)) {
|
|
233
|
+
calendar.extendPeriods("after", preloadWindowCount);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
237
|
+
CalendarScrollContext.Provider,
|
|
238
|
+
{
|
|
239
|
+
value: {
|
|
240
|
+
direction,
|
|
241
|
+
leadingSpacerPeriodCount: leadingSpacer.periodCount,
|
|
242
|
+
leadingSpacerPixelSize: leadingSpacer.pixelSize
|
|
243
|
+
},
|
|
244
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
245
|
+
"div",
|
|
246
|
+
{
|
|
247
|
+
...props,
|
|
248
|
+
ref: scrollRef,
|
|
249
|
+
"calchemy-scroll": "",
|
|
250
|
+
"calchemy-direction": direction,
|
|
251
|
+
onScroll: handleScroll
|
|
252
|
+
}
|
|
253
|
+
)
|
|
254
|
+
}
|
|
255
|
+
);
|
|
256
|
+
}
|
|
257
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
258
|
+
0 && (module.exports = {
|
|
259
|
+
CalendarScroll
|
|
260
|
+
});
|
|
261
|
+
//# sourceMappingURL=calendar-scroll.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/calendar-scroll.ts","../src/components/calendar/CalendarScroll.tsx","../src/components/calendar/context.ts","../src/components/calendar/scroll-preload.ts"],"sourcesContent":["export {\n CalendarScroll,\n type CalchemyCalendarScrollProps,\n} from \"./components/calendar/CalendarScroll\";\n","import { useLayoutEffect, useRef, useState } from \"react\";\nimport type { ComponentPropsWithoutRef, UIEvent } from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { CalendarScrollContext, useCalchemyCalendar } from \"./context\";\nimport {\n getCalendarPeriodWindowSize,\n getClientSize,\n getLoadedPeriodRunway,\n getScrollAnchorPeriod,\n getScrollPosition,\n getScrollSize,\n scrollPeriodIntoView,\n setScrollPosition,\n} from \"./scroll-preload\";\nimport type { CalendarScrollDirection } from \"./types\";\n\nconst preloadWindowCount = 2;\n\nexport type CalchemyCalendarScrollProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"onScroll\"\n> & {\n direction?: CalendarScrollDirection;\n onScroll?: ComponentPropsWithoutRef<\"div\">[\"onScroll\"];\n};\n\nexport function CalendarScroll({\n direction = \"vertical\",\n onScroll,\n ...props\n}: CalchemyCalendarScrollProps) {\n const calendar = useCalchemyCalendar();\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const [leadingSpacer, setLeadingSpacer] = useState({\n periodCount: 0,\n pixelSize: 0,\n });\n const positionedPeriodAnchor = useRef<string | null>(null);\n const suppressPreloadEvaluation = useRef(false);\n const pendingPrependStabilization = useRef<{\n direction: CalendarScrollDirection;\n insertedDelta: number;\n targetPosition: number;\n } | null>(null);\n\n useLayoutEffect(() => {\n const anchorKey = calendar.periodAnchor.toString();\n if (positionedPeriodAnchor.current === anchorKey) {\n return;\n }\n\n const element = scrollRef.current;\n const currentPeriod = element?.querySelector<HTMLElement>(\n \"[calchemy-period][calchemy-period-index='0']\",\n );\n if (!element || !currentPeriod) {\n return;\n }\n\n positionedPeriodAnchor.current = anchorKey;\n scrollPeriodIntoView(element, currentPeriod, direction);\n }, [direction, calendar.periodAnchor, calendar.periods]);\n\n function startBeforePreloadTransaction(\n element: HTMLDivElement,\n preloadDirection: CalendarScrollDirection,\n periodWindowSize: number,\n ) {\n suppressPreloadEvaluation.current = true;\n const extendPeriodCount = calendar.period.count * preloadWindowCount;\n const previousScrollSize = getScrollSize(element, preloadDirection);\n const previousScrollPosition = getScrollPosition(element, preloadDirection);\n\n flushSync(() => {\n setLeadingSpacer({\n periodCount: extendPeriodCount,\n pixelSize: periodWindowSize * preloadWindowCount,\n });\n });\n\n setScrollPosition(\n element,\n preloadDirection,\n previousScrollPosition +\n getScrollSize(element, preloadDirection) -\n previousScrollSize,\n );\n\n flushSync(() => {\n calendar.extendPeriods(\"before\", preloadWindowCount);\n setLeadingSpacer({ periodCount: 0, pixelSize: 0 });\n });\n\n const insertedDelta =\n getScrollSize(element, preloadDirection) - previousScrollSize;\n const targetPosition = previousScrollPosition + insertedDelta;\n setScrollPosition(element, preloadDirection, targetPosition);\n pendingPrependStabilization.current = {\n direction: preloadDirection,\n insertedDelta,\n targetPosition,\n };\n }\n\n function stabilizePrependScrollEvent(element: HTMLDivElement) {\n const stabilization = pendingPrependStabilization.current;\n if (!stabilization) {\n suppressPreloadEvaluation.current = false;\n return;\n }\n\n const observedPosition = getScrollPosition(\n element,\n stabilization.direction,\n );\n const targetDistance = observedPosition - stabilization.targetPosition;\n const staleCoordinate =\n Math.abs(\n observedPosition +\n stabilization.insertedDelta -\n stabilization.targetPosition,\n ) < Math.abs(targetDistance);\n\n if (staleCoordinate) {\n setScrollPosition(\n element,\n stabilization.direction,\n observedPosition + stabilization.insertedDelta,\n );\n }\n\n pendingPrependStabilization.current = null;\n suppressPreloadEvaluation.current = false;\n }\n\n function handleScroll(event: UIEvent<HTMLDivElement>) {\n onScroll?.(event);\n if (event.defaultPrevented) {\n return;\n }\n\n const element = event.currentTarget;\n if (suppressPreloadEvaluation.current) {\n stabilizePrependScrollEvent(element);\n return;\n }\n\n if (\n getScrollSize(element, direction) <= getClientSize(element, direction)\n ) {\n return;\n }\n\n const anchor = getScrollAnchorPeriod(element, direction);\n const anchorIndex = anchor?.getAttribute(\"calchemy-period-index\")\n ? Number(anchor.getAttribute(\"calchemy-period-index\"))\n : NaN;\n if (Number.isFinite(anchorIndex)) {\n calendar.setVisiblePeriodIndex(anchorIndex);\n }\n\n const periodWindowSize = getCalendarPeriodWindowSize(\n element,\n direction,\n calendar.period.count,\n );\n const startRunway = getLoadedPeriodRunway(calendar, anchor, \"before\");\n const runwayThreshold = calendar.period.count * preloadWindowCount;\n const endRunway = getLoadedPeriodRunway(calendar, anchor, \"after\");\n if (\n startRunway !== null &&\n startRunway <= runwayThreshold &&\n calendar.canExtendPeriods(\"before\", preloadWindowCount)\n ) {\n startBeforePreloadTransaction(element, direction, periodWindowSize);\n }\n if (\n endRunway !== null &&\n endRunway <= runwayThreshold &&\n calendar.canExtendPeriods(\"after\", preloadWindowCount)\n ) {\n calendar.extendPeriods(\"after\", preloadWindowCount);\n }\n }\n\n return (\n <CalendarScrollContext.Provider\n value={{\n direction,\n leadingSpacerPeriodCount: leadingSpacer.periodCount,\n leadingSpacerPixelSize: leadingSpacer.pixelSize,\n }}\n >\n <div\n {...props}\n ref={scrollRef}\n calchemy-scroll=\"\"\n calchemy-direction={direction}\n onScroll={handleScroll}\n />\n </CalendarScrollContext.Provider>\n );\n}\n","import { createContext, useContext } from \"react\";\nimport type { CalchemyState } from \"../../hooks/useCalchemy\";\nimport type { CalendarPeriodModel, CalendarScrollContextValue, CalendarState } from \"./types\";\n\nexport const CalchemyContext = createContext<CalchemyState | null>(null);\nexport const CalendarContext = createContext<CalendarState | null>(null);\nexport const CalendarPeriodContext = createContext<CalendarPeriodModel | null>(null);\nexport const CalendarScrollContext = createContext<CalendarScrollContextValue | null>(null);\n\nexport function useCalchemyContext(): CalchemyState {\n const state = useContext(CalchemyContext);\n\n if (!state) {\n throw new Error(\"Calchemy components must be rendered inside Calchemy.Root.\");\n }\n\n return state;\n}\n\nexport function useCalchemyCalendar(): CalendarState {\n const state = useContext(CalendarContext);\n\n if (!state) {\n throw new Error(\"Calchemy calendar components must be rendered inside Calchemy.Calendar.\");\n }\n\n return state;\n}\n\nexport function useCalendarPeriod(): CalendarPeriodModel | null {\n return useContext(CalendarPeriodContext);\n}\n","import type { CalendarScrollDirection, CalendarState } from \"./types\";\n\nexport function getScrollPosition(element: HTMLElement, direction: CalendarScrollDirection): number {\n return direction === \"horizontal\" ? element.scrollLeft : element.scrollTop;\n}\n\nexport function setScrollPosition(\n element: HTMLElement,\n direction: CalendarScrollDirection,\n value: number,\n): void {\n if (direction === \"horizontal\") {\n element.scrollLeft = value;\n return;\n }\n\n element.scrollTop = value;\n}\n\nexport function getScrollSize(element: HTMLElement, direction: CalendarScrollDirection): number {\n return direction === \"horizontal\" ? element.scrollWidth : element.scrollHeight;\n}\n\nexport function getClientSize(element: HTMLElement, direction: CalendarScrollDirection): number {\n return direction === \"horizontal\" ? element.clientWidth : element.clientHeight;\n}\n\nexport function scrollPeriodIntoView(\n scrollElement: HTMLElement,\n period: HTMLElement,\n direction: CalendarScrollDirection,\n): void {\n const scrollRect = scrollElement.getBoundingClientRect();\n const periodRect = period.getBoundingClientRect();\n\n if (direction === \"horizontal\") {\n scrollElement.scrollLeft += periodRect.left - scrollRect.left;\n return;\n }\n\n scrollElement.scrollTop += periodRect.top - scrollRect.top;\n}\n\nexport function getScrollAnchorPeriod(\n scrollElement: HTMLElement,\n direction: CalendarScrollDirection,\n): HTMLElement | null {\n const scrollRect = scrollElement.getBoundingClientRect();\n const periods = Array.from(scrollElement.querySelectorAll<HTMLElement>(\"[calchemy-period]\"));\n let fallback: HTMLElement | null = null;\n\n for (const period of periods) {\n const periodRect = period.getBoundingClientRect();\n const periodStart = direction === \"horizontal\" ? periodRect.left : periodRect.top;\n const periodEnd = direction === \"horizontal\" ? periodRect.right : periodRect.bottom;\n const scrollStart = direction === \"horizontal\" ? scrollRect.left : scrollRect.top;\n const scrollEnd = direction === \"horizontal\" ? scrollRect.right : scrollRect.bottom;\n\n if (periodEnd <= scrollStart) {\n continue;\n }\n if (periodStart >= scrollEnd) {\n break;\n }\n\n fallback = period;\n if (periodStart >= scrollStart) {\n return period;\n }\n }\n\n return fallback;\n}\n\nexport function getCalendarPeriodWindowSize(\n scrollElement: HTMLElement,\n direction: CalendarScrollDirection,\n periodCount: number,\n): number {\n const periods = Array.from(scrollElement.querySelectorAll<HTMLElement>(\"[calchemy-period]\"));\n const firstPeriod = periods[0];\n const nextPeriod = periods[1];\n const fallback = direction === \"horizontal\" ? scrollElement.clientWidth : scrollElement.clientHeight;\n\n if (!firstPeriod) {\n return fallback;\n }\n\n const firstRect = firstPeriod.getBoundingClientRect();\n const nextRect = nextPeriod?.getBoundingClientRect();\n const singlePeriodSize = nextRect\n ? direction === \"horizontal\"\n ? nextRect.left - firstRect.left\n : nextRect.top - firstRect.top\n : direction === \"horizontal\"\n ? firstRect.width\n : firstRect.height;\n const windowSize = Math.abs(singlePeriodSize) * periodCount;\n\n return windowSize > 0 ? windowSize : fallback;\n}\n\nexport function getLoadedPeriodRunway(\n calendar: CalendarState,\n anchor: HTMLElement | null,\n direction: \"before\" | \"after\",\n): number | null {\n const anchorIndex = anchor?.getAttribute(\"calchemy-period-index\")\n ? Number(anchor.getAttribute(\"calchemy-period-index\"))\n : NaN;\n const firstIndex = calendar.periods[0]?.index;\n const lastIndex = calendar.periods.at(-1)?.index;\n\n if (!Number.isFinite(anchorIndex) || firstIndex === undefined || lastIndex === undefined) {\n return null;\n }\n\n return direction === \"before\" ? anchorIndex - firstIndex : lastIndex - anchorIndex;\n}\n"],"mappings":"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","names":["import_react"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarGrid.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/CalendarGrid.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CalendarGrid.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/CalendarGrid.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAYtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAUrD,MAAM,MAAM,6BAA6B,GAAG,wBAAwB,CAAC,KAAK,CAAC,GAAG;IAC5E,aAAa,CAAC,EAAE,qBAAqB,CAAC;CACvC,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,aAA4C,EAC5C,GAAG,KAAK,EACT,EAAE,6BAA6B,2CAiB/B;AAED,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG;IAC1F,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAC3B,YAAoB,EACpB,aAAoB,EACpB,KAAK,EACL,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,EACX,GAAG,KAAK,EACT,EAAE,yBAAyB,2CA2H3B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo } from "react";
|
|
3
3
|
import { useCalchemyCalendar, useCalendarPeriod } from "./context";
|
|
4
|
-
import { CalendarDragRectangleOverlay, getMultipleDates, getSelectedDateKeys, multipleDragSurfaceStyle, toggleDateKeys, useCalendarPeriodDragSurface, useOptionalCalendarPeriodDrag, } from "./calendar-period-drag";
|
|
4
|
+
import { CalendarDragRectangleOverlay, getMultipleDates, getSelectedDateKeys, mergeCalendarDragPointerProps, multipleDragSurfaceStyle, toggleDateKeys, useCalendarPeriodDragSurface, useOptionalCalendarPeriodDrag, } from "./calendar-period-drag";
|
|
5
5
|
import { buildCalendarWeeks, buildWeekdays, getCalendarDayState, getFirstVisibleCalendarPeriod, } from "./date-model";
|
|
6
6
|
const defaultCalendarWeekdayFormat = "short";
|
|
7
7
|
export function CalendarWeekdays({ weekdayFormat = defaultCalendarWeekdayFormat, ...props }) {
|
|
@@ -21,32 +21,14 @@ export function CalendarGrid({ showBookends = false, dragSelection = true, style
|
|
|
21
21
|
const committedSelectedKeys = useMemo(() => new Set(getSelectedDateKeys(calendar.selected)), [calendar.selected]);
|
|
22
22
|
const previewSelectedKeys = drag?.previewSelectedKeys ?? new Set();
|
|
23
23
|
const dragState = drag?.dragState ?? null;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
onPointerMove?.(event);
|
|
33
|
-
}
|
|
34
|
-
: onPointerMove, onPointerUp: useLocalDragHandlers
|
|
35
|
-
? (event) => {
|
|
36
|
-
drag?.handlePointerUp(event);
|
|
37
|
-
onPointerUp?.(event);
|
|
38
|
-
}
|
|
39
|
-
: onPointerUp, onPointerCancel: useLocalDragHandlers
|
|
40
|
-
? (event) => {
|
|
41
|
-
drag?.handlePointerCancel(event);
|
|
42
|
-
onPointerCancel?.(event);
|
|
43
|
-
}
|
|
44
|
-
: onPointerCancel, onDragStart: useLocalDragHandlers
|
|
45
|
-
? (event) => {
|
|
46
|
-
event.preventDefault();
|
|
47
|
-
onDragStart?.(event);
|
|
48
|
-
}
|
|
49
|
-
: onDragStart, children: [useLocalDragHandlers && drag?.dragRectangle ? (_jsx(CalendarDragRectangleOverlay, { dragRectangle: drag.dragRectangle, surfaceRef: drag.surfaceRef })) : null, weeks.map((week) => (_jsx("div", { "calchemy-week": "", children: week.map((date) => {
|
|
24
|
+
const dragPointerProps = mergeCalendarDragPointerProps(useLocalDragHandlers, drag, {
|
|
25
|
+
onPointerDownCapture,
|
|
26
|
+
onPointerMove,
|
|
27
|
+
onPointerUp,
|
|
28
|
+
onPointerCancel,
|
|
29
|
+
onDragStart,
|
|
30
|
+
});
|
|
31
|
+
return (_jsxs("div", { ...props, "calchemy-grid": "", "calchemy-multiple-drag": useLocalDragHandlers ? "" : undefined, "calchemy-dragging": useLocalDragHandlers && dragState ? "" : undefined, style: useLocalDragHandlers ? { ...multipleDragSurfaceStyle, ...style } : style, ...dragPointerProps, children: [useLocalDragHandlers && drag?.dragRectangle ? (_jsx(CalendarDragRectangleOverlay, { dragRectangle: drag.dragRectangle, surfaceRef: drag.surfaceRef })) : null, weeks.map((week) => (_jsx("div", { "calchemy-week": "", children: week.map((date) => {
|
|
50
32
|
const dayState = getCalendarDayState(calendar, period, date);
|
|
51
33
|
const namedDateLabels = dayState.namedDates.map((item) => item.value).join(", ");
|
|
52
34
|
const dateKey = date.toString();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarGrid.js","sourceRoot":"","sources":["../../../src/components/calendar/CalendarGrid.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EACL,4BAA4B,EAC5B,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,EACd,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,6BAA6B,GAC9B,MAAM,cAAc,CAAC;AAEtB,MAAM,4BAA4B,GAAG,OAAuC,CAAC;AAM7E,MAAM,UAAU,gBAAgB,CAAC,EAC/B,aAAa,GAAG,4BAA4B,EAC5C,GAAG,KAAK,EACsB;IAC9B,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAExD,OAAO,CACL,iBAAS,KAAK,mBAAgB,EAAE,YAC7B,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CACzB,kCAEmB,EAAE,sBACD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,YAEjD,OAAO,CAAC,KAAK,IAJT,OAAO,CAAC,KAAK,CAKd,CACP,CAAC,GACE,CACP,CAAC;AACJ,CAAC;AAOD,MAAM,UAAU,YAAY,CAAC,EAC3B,YAAY,GAAG,KAAK,EACpB,aAAa,GAAG,IAAI,EACpB,KAAK,EACL,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,EACX,GAAG,KAAK,EACkB;IAC1B,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,iBAAiB,EAAE,IAAI,6BAA6B,CAAC,QAAQ,CAAC,CAAC;IAC9E,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,6BAA6B,EAAE,CAAC;IACnD,MAAM,SAAS,GAAG,4BAA4B,CAC5C,QAAQ,CAAC,QAAQ,IAAI,aAAa,IAAI,UAAU,KAAK,IAAI,CAC1D,CAAC;IACF,MAAM,IAAI,GAAG,UAAU,IAAI,SAAS,CAAC;IACrC,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC3D,MAAM,oBAAoB,GAAG,OAAO,CAAC,IAAI,IAAI,UAAU,KAAK,IAAI,CAAC,CAAC;IAClE,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClH,MAAM,mBAAmB,GAAG,IAAI,EAAE,mBAAmB,IAAI,IAAI,GAAG,EAAU,CAAC;IAC3E,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"CalendarGrid.js","sourceRoot":"","sources":["../../../src/components/calendar/CalendarGrid.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarPeriod.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/CalendarPeriod.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CalendarPeriod.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/CalendarPeriod.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAWtD,MAAM,MAAM,2BAA2B,GAAG,wBAAwB,CAAC,SAAS,CAAC,GAAG;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,wBAAgB,cAAc,CAAC,EAC7B,aAAoB,EACpB,KAAK,EACL,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,EACX,GAAG,KAAK,EACT,EAAE,2BAA2B,2CA4C7B"}
|
|
@@ -1,42 +1,24 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useContext } from "react";
|
|
3
3
|
import { CalendarPeriodContext, useCalchemyCalendar } from "./context";
|
|
4
|
-
import { CalendarDragRectangleOverlay, CalendarPeriodDragProvider, multipleDragSurfaceStyle, useCalendarPeriodDragSurface, useOptionalCalendarPeriodDrag, } from "./calendar-period-drag";
|
|
4
|
+
import { CalendarDragRectangleOverlay, CalendarPeriodDragProvider, mergeCalendarDragPointerProps, multipleDragSurfaceStyle, useCalendarPeriodDragSurface, useOptionalCalendarPeriodDrag, } from "./calendar-period-drag";
|
|
5
5
|
export function CalendarPeriod({ dragSelection = true, style, children, onPointerDownCapture, onPointerMove, onPointerUp, onPointerCancel, onDragStart, ...props }) {
|
|
6
6
|
const period = useContext(CalendarPeriodContext);
|
|
7
7
|
const calendar = useCalchemyCalendar();
|
|
8
8
|
const parentDrag = useOptionalCalendarPeriodDrag();
|
|
9
9
|
const drag = useCalendarPeriodDragSurface(calendar.editable && dragSelection && parentDrag === null);
|
|
10
10
|
const content = drag ? (_jsxs(CalendarPeriodDragProvider, { value: drag, children: [_jsx(CalendarDragRectangleOverlay, {}), children] })) : (children);
|
|
11
|
+
const dragPointerProps = mergeCalendarDragPointerProps(Boolean(drag), drag, {
|
|
12
|
+
onPointerDownCapture,
|
|
13
|
+
onPointerMove,
|
|
14
|
+
onPointerUp,
|
|
15
|
+
onPointerCancel,
|
|
16
|
+
onDragStart,
|
|
17
|
+
});
|
|
11
18
|
return (_jsx("section", { ...props, "calchemy-period": "", "calchemy-period-id": period?.id, "calchemy-period-index": period?.index, "calchemy-multiple-drag": drag ? "" : undefined, "calchemy-dragging": drag?.dragState ? "" : undefined, style: drag
|
|
12
19
|
? { ...multipleDragSurfaceStyle, ...style }
|
|
13
20
|
: parentDrag
|
|
14
21
|
? { touchAction: "none", ...style }
|
|
15
|
-
: style,
|
|
16
|
-
? (event) => {
|
|
17
|
-
drag.handlePointerDownCapture(event);
|
|
18
|
-
onPointerDownCapture?.(event);
|
|
19
|
-
}
|
|
20
|
-
: onPointerDownCapture, onPointerMove: drag
|
|
21
|
-
? (event) => {
|
|
22
|
-
drag.handlePointerMove(event);
|
|
23
|
-
onPointerMove?.(event);
|
|
24
|
-
}
|
|
25
|
-
: onPointerMove, onPointerUp: drag
|
|
26
|
-
? (event) => {
|
|
27
|
-
drag.handlePointerUp(event);
|
|
28
|
-
onPointerUp?.(event);
|
|
29
|
-
}
|
|
30
|
-
: onPointerUp, onPointerCancel: drag
|
|
31
|
-
? (event) => {
|
|
32
|
-
drag.handlePointerCancel(event);
|
|
33
|
-
onPointerCancel?.(event);
|
|
34
|
-
}
|
|
35
|
-
: onPointerCancel, onDragStart: drag
|
|
36
|
-
? (event) => {
|
|
37
|
-
event.preventDefault();
|
|
38
|
-
onDragStart?.(event);
|
|
39
|
-
}
|
|
40
|
-
: onDragStart, children: content }));
|
|
22
|
+
: style, ...dragPointerProps, children: content }));
|
|
41
23
|
}
|
|
42
24
|
//# sourceMappingURL=CalendarPeriod.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarPeriod.js","sourceRoot":"","sources":["../../../src/components/calendar/CalendarPeriod.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAMhC,MAAM,UAAU,cAAc,CAAC,EAC7B,aAAa,GAAG,IAAI,EACpB,KAAK,EACL,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,EACX,GAAG,KAAK,EACoB;IAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,6BAA6B,EAAE,CAAC;IACnD,MAAM,IAAI,GAAG,4BAA4B,CACvC,QAAQ,CAAC,QAAQ,IAAI,aAAa,IAAI,UAAU,KAAK,IAAI,CAC1D,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CACrB,MAAC,0BAA0B,IAAC,KAAK,EAAE,IAAI,aACrC,KAAC,4BAA4B,KAAG,EAC/B,QAAQ,IACkB,CAC9B,CAAC,CAAC,CAAC,CACF,QAAQ,CACT,CAAC;
|
|
1
|
+
{"version":3,"file":"CalendarPeriod.js","sourceRoot":"","sources":["../../../src/components/calendar/CalendarPeriod.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,6BAA6B,EAC7B,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAMhC,MAAM,UAAU,cAAc,CAAC,EAC7B,aAAa,GAAG,IAAI,EACpB,KAAK,EACL,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,EACX,GAAG,KAAK,EACoB;IAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,6BAA6B,EAAE,CAAC;IACnD,MAAM,IAAI,GAAG,4BAA4B,CACvC,QAAQ,CAAC,QAAQ,IAAI,aAAa,IAAI,UAAU,KAAK,IAAI,CAC1D,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CACrB,MAAC,0BAA0B,IAAC,KAAK,EAAE,IAAI,aACrC,KAAC,4BAA4B,KAAG,EAC/B,QAAQ,IACkB,CAC9B,CAAC,CAAC,CAAC,CACF,QAAQ,CACT,CAAC;IACF,MAAM,gBAAgB,GAAG,6BAA6B,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE;QAC1E,oBAAoB;QACpB,aAAa;QACb,WAAW;QACX,eAAe;QACf,WAAW;KACZ,CAAC,CAAC;IAEH,OAAO,CACL,qBACM,KAAK,qBACO,EAAE,wBACE,MAAM,EAAE,EAAE,2BACP,MAAM,EAAE,KAAK,4BACZ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,uBAC1B,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EACnD,KAAK,EACH,IAAI;YACF,CAAC,CAAC,EAAE,GAAG,wBAAwB,EAAE,GAAG,KAAK,EAAE;YAC3C,CAAC,CAAC,UAAU;gBACV,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE;gBACnC,CAAC,CAAC,KAAK,KAET,gBAAgB,YAEnB,OAAO,GACA,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarPeriodList.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/CalendarPeriodList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CalendarPeriodList.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/CalendarPeriodList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,OAAO,CAAC;AActD,MAAM,MAAM,+BAA+B,GAAG,wBAAwB,CAAC,KAAK,CAAC,GAAG;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,aAAoB,EACpB,KAAK,EACL,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,eAAe,EACf,WAAW,EACX,GAAG,KAAK,EACT,EAAE,+BAA+B,2CAgIjC"}
|
|
@@ -4,7 +4,7 @@ import { CalendarPeriodContext, CalendarScrollContext, useCalchemyCalendar } fro
|
|
|
4
4
|
import { CalendarGrid, CalendarWeekdays } from "./CalendarGrid";
|
|
5
5
|
import { CalendarPeriodHeading } from "./CalendarPeriodHeading";
|
|
6
6
|
import { CalendarPeriod } from "./CalendarPeriod";
|
|
7
|
-
import { CalendarDragRectangleOverlay, CalendarPeriodDragProvider, multiplePeriodListDragSurfaceStyle, useCalendarPeriodDragSurface, useOptionalCalendarPeriodDrag, } from "./calendar-period-drag";
|
|
7
|
+
import { CalendarDragRectangleOverlay, CalendarPeriodDragProvider, mergeCalendarDragPointerProps, multiplePeriodListDragSurfaceStyle, useCalendarPeriodDragSurface, useOptionalCalendarPeriodDrag, } from "./calendar-period-drag";
|
|
8
8
|
export function CalendarPeriodList({ children, dragSelection = true, style, onPointerDownCapture, onPointerMove, onPointerUp, onPointerCancel, onDragStart, ...props }) {
|
|
9
9
|
const calendar = useCalchemyCalendar();
|
|
10
10
|
const scrollContext = useContext(CalendarScrollContext);
|
|
@@ -63,31 +63,13 @@ export function CalendarPeriodList({ children, dragSelection = true, style, onPo
|
|
|
63
63
|
pointerEvents: "auto",
|
|
64
64
|
touchAction: "none",
|
|
65
65
|
} }), _jsx(CalendarDragRectangleOverlay, {}), periodContent] })) : (periodContent);
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
onPointerMove?.(event);
|
|
75
|
-
}
|
|
76
|
-
: onPointerMove, onPointerUp: drag
|
|
77
|
-
? (event) => {
|
|
78
|
-
drag.handlePointerUp(event);
|
|
79
|
-
onPointerUp?.(event);
|
|
80
|
-
}
|
|
81
|
-
: onPointerUp, onPointerCancel: drag
|
|
82
|
-
? (event) => {
|
|
83
|
-
drag.handlePointerCancel(event);
|
|
84
|
-
onPointerCancel?.(event);
|
|
85
|
-
}
|
|
86
|
-
: onPointerCancel, onDragStart: drag
|
|
87
|
-
? (event) => {
|
|
88
|
-
event.preventDefault();
|
|
89
|
-
onDragStart?.(event);
|
|
90
|
-
}
|
|
91
|
-
: onDragStart, children: content }));
|
|
66
|
+
const dragPointerProps = mergeCalendarDragPointerProps(Boolean(drag), drag, {
|
|
67
|
+
onPointerDownCapture,
|
|
68
|
+
onPointerMove,
|
|
69
|
+
onPointerUp,
|
|
70
|
+
onPointerCancel,
|
|
71
|
+
onDragStart,
|
|
72
|
+
});
|
|
73
|
+
return (_jsx("div", { ...props, ref: surfaceRef, "calchemy-period-list": "", "calchemy-multiple-drag": drag ? "" : undefined, "calchemy-dragging": drag?.dragState ? "" : undefined, style: drag ? { ...multiplePeriodListDragSurfaceStyle, ...style } : style, ...dragPointerProps, children: content }));
|
|
92
74
|
}
|
|
93
75
|
//# sourceMappingURL=CalendarPeriodList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarPeriodList.js","sourceRoot":"","sources":["../../../src/components/calendar/CalendarPeriodList.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"CalendarPeriodList.js","sourceRoot":"","sources":["../../../src/components/calendar/CalendarPeriodList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type PointerEvent, type RefObject } from "react";
|
|
1
|
+
import { type ComponentPropsWithoutRef, type PointerEvent, type RefObject } from "react";
|
|
2
2
|
import type { DateValue, PlainDate } from "@calchemy/date-core";
|
|
3
3
|
type Point = {
|
|
4
4
|
x: number;
|
|
@@ -55,6 +55,8 @@ export declare const multiplePeriodListDragSurfaceStyle: {
|
|
|
55
55
|
readonly WebkitUserSelect: "none";
|
|
56
56
|
readonly touchAction: "none";
|
|
57
57
|
};
|
|
58
|
+
export type CalendarDragPointerHandlerProps = Pick<ComponentPropsWithoutRef<"div">, "onPointerDownCapture" | "onPointerMove" | "onPointerUp" | "onPointerCancel" | "onDragStart">;
|
|
59
|
+
export declare function mergeCalendarDragPointerProps(enabled: boolean, drag: CalendarPeriodDragContextValue | null | undefined, handlers: CalendarDragPointerHandlerProps): CalendarDragPointerHandlerProps;
|
|
58
60
|
export declare function useOptionalCalendarPeriodDrag(): CalendarPeriodDragContextValue | null;
|
|
59
61
|
export declare function useCalendarPeriodDragSurface(dragSelection?: boolean, surfaceElementRef?: RefObject<HTMLElement | null>): CalendarPeriodDragContextValue | null;
|
|
60
62
|
export type CalendarDragRectangleOverlayProps = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar-period-drag.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/calendar-period-drag.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"calendar-period-drag.d.ts","sourceRoot":"","sources":["../../../src/components/calendar/calendar-period-drag.tsx"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,35 @@ export const multiplePeriodListDragSurfaceStyle = {
|
|
|
13
13
|
position: "relative",
|
|
14
14
|
background: "transparent",
|
|
15
15
|
};
|
|
16
|
+
// Example: `mergeCalendarDragPointerProps(true, drag, handlers)` chains drag surface handlers with caller props.
|
|
17
|
+
export function mergeCalendarDragPointerProps(enabled, drag, handlers) {
|
|
18
|
+
if (!enabled || !drag) {
|
|
19
|
+
return handlers;
|
|
20
|
+
}
|
|
21
|
+
const { onPointerDownCapture, onPointerMove, onPointerUp, onPointerCancel, onDragStart } = handlers;
|
|
22
|
+
return {
|
|
23
|
+
onPointerDownCapture: (event) => {
|
|
24
|
+
drag.handlePointerDownCapture(event);
|
|
25
|
+
onPointerDownCapture?.(event);
|
|
26
|
+
},
|
|
27
|
+
onPointerMove: (event) => {
|
|
28
|
+
drag.handlePointerMove(event);
|
|
29
|
+
onPointerMove?.(event);
|
|
30
|
+
},
|
|
31
|
+
onPointerUp: (event) => {
|
|
32
|
+
drag.handlePointerUp(event);
|
|
33
|
+
onPointerUp?.(event);
|
|
34
|
+
},
|
|
35
|
+
onPointerCancel: (event) => {
|
|
36
|
+
drag.handlePointerCancel(event);
|
|
37
|
+
onPointerCancel?.(event);
|
|
38
|
+
},
|
|
39
|
+
onDragStart: (event) => {
|
|
40
|
+
event.preventDefault();
|
|
41
|
+
onDragStart?.(event);
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
}
|
|
16
45
|
export function useOptionalCalendarPeriodDrag() {
|
|
17
46
|
return useContext(CalendarPeriodDragContext);
|
|
18
47
|
}
|