react-timelane 1.2.1 → 1.2.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/_virtual/bind-all.js +4 -0
- package/dist/_virtual/bind.js +4 -0
- package/dist/_virtual/index.js +5 -0
- package/dist/_virtual/index2.js +4 -0
- package/dist/_virtual/index3.js +5 -0
- package/dist/_virtual/index4.js +4 -0
- package/dist/_virtual/react-dom.development.js +4 -0
- package/dist/_virtual/react-dom.production.js +4 -0
- package/dist/components/Timelane/Timelane.css +1 -0
- package/dist/components/Timelane/Timelane.js +53 -0
- package/dist/components/TimelaneAllocation/TimelaneAllocation.js +49 -0
- package/dist/components/TimelaneAside/TimelaneAside.js +60 -0
- package/dist/components/TimelaneBackground/TimelaneBackground.js +46 -0
- package/dist/components/TimelaneBody/TimelaneBody.js +13 -0
- package/dist/components/TimelaneBody/TimelaneSelectionLayer.js +96 -0
- package/dist/components/TimelaneHeader/DaysHeader.js +30 -0
- package/dist/components/TimelaneHeader/MonthsHeader.js +38 -0
- package/dist/components/TimelaneHeader/TimelaneHeader.js +55 -0
- package/dist/components/TimelaneHeader/WeeksHeader.js +39 -0
- package/dist/components/TimelaneHeader/renderingUtils.js +26 -0
- package/dist/components/TimelaneItem/DragResizeComponent.js +125 -0
- package/dist/components/TimelaneItem/TimelaneItem.js +42 -0
- package/dist/components/TimelaneLane/DropPreview.js +25 -0
- package/dist/components/TimelaneLane/DropTarget.js +57 -0
- package/dist/components/TimelaneLane/OverlapIndicator.js +21 -0
- package/dist/components/TimelaneLane/TimelaneLane.js +164 -0
- package/dist/components/TimelaneLayout/TimelaneLayout.js +77 -0
- package/dist/components/TimelaneLayout/layout.css +1 -0
- package/dist/components/TimelaneSettingsProvider/TimelaneSettingsContext.js +21 -0
- package/dist/components/TimelaneSettingsProvider/TimelaneSettingsProvider.js +15 -0
- package/dist/components/utils.js +243 -0
- package/dist/hooks/useScroll.js +47 -0
- package/dist/hooks/useTimelaneContext.js +6 -0
- package/dist/index.js +36 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/adapter/element-adapter-native-data-key.js +4 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/adapter/element-adapter.js +127 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/get-element-from-point-without-honey-pot.js +9 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/honey-pot-data-attribute.js +4 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/is-honey-pot-element.js +7 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/make-honey-pot-fix.js +226 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/ledger/dispatch-consumer-event.js +107 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/ledger/lifecycle-manager.js +195 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/ledger/usage-ledger.js +21 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/make-adapter/make-adapter.js +43 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/make-adapter/make-drop-target.js +253 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/make-adapter/make-monitor.js +121 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/public-utils/combine.js +12 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/public-utils/once.js +17 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/add-attribute.js +9 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/android.js +8 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/changing-window/count-events-for-safari.js +57 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/changing-window/is-from-another-window.js +9 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/changing-window/is-leaving-window.js +13 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/detect-broken-drag.js +47 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/get-input.js +17 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/is-firefox.js +7 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/is-safari.js +10 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/max-z-index.js +4 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/media-types/text-media-type.js +4 -0
- package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/media-types/url-media-type.js +4 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +8 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js +6 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js +7 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/defineProperty.js +12 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/iterableToArray.js +6 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js +21 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js +7 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js +7 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/slicedToArray.js +10 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js +10 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +14 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +9 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/typeof.js +11 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +11 -0
- package/dist/node_modules/bind-event-listener/dist/bind-all.js +45 -0
- package/dist/node_modules/bind-event-listener/dist/bind.js +16 -0
- package/dist/node_modules/bind-event-listener/dist/index.js +20 -0
- package/dist/node_modules/date-fns/_lib/addLeadingZeros.js +7 -0
- package/dist/node_modules/date-fns/_lib/defaultOptions.js +7 -0
- package/dist/node_modules/date-fns/_lib/format/formatters.js +583 -0
- package/dist/node_modules/date-fns/_lib/format/lightFormatters.js +59 -0
- package/dist/node_modules/date-fns/_lib/format/longFormatters.js +52 -0
- package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +18 -0
- package/dist/node_modules/date-fns/_lib/normalizeDates.js +11 -0
- package/dist/node_modules/date-fns/_lib/normalizeInterval.js +8 -0
- package/dist/node_modules/date-fns/_lib/protectedTokens.js +20 -0
- package/dist/node_modules/date-fns/addDays.js +10 -0
- package/dist/node_modules/date-fns/addWeeks.js +8 -0
- package/dist/node_modules/date-fns/constants.js +6 -0
- package/dist/node_modules/date-fns/constructFrom.js +8 -0
- package/dist/node_modules/date-fns/differenceInCalendarDays.js +16 -0
- package/dist/node_modules/date-fns/eachDayOfInterval.js +17 -0
- package/dist/node_modules/date-fns/eachMonthOfInterval.js +17 -0
- package/dist/node_modules/date-fns/eachWeekOfInterval.js +22 -0
- package/dist/node_modules/date-fns/format.js +59 -0
- package/dist/node_modules/date-fns/getDay.js +8 -0
- package/dist/node_modules/date-fns/getDayOfYear.js +11 -0
- package/dist/node_modules/date-fns/getISOWeek.js +12 -0
- package/dist/node_modules/date-fns/getISOWeekYear.js +15 -0
- package/dist/node_modules/date-fns/getWeek.js +12 -0
- package/dist/node_modules/date-fns/getWeekYear.js +17 -0
- package/dist/node_modules/date-fns/isDate.js +7 -0
- package/dist/node_modules/date-fns/isSameDay.js +14 -0
- package/dist/node_modules/date-fns/isSunday.js +8 -0
- package/dist/node_modules/date-fns/isValid.js +9 -0
- package/dist/node_modules/date-fns/lastDayOfMonth.js +9 -0
- package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +9 -0
- package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +18 -0
- package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js +31 -0
- package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +15 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +70 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js +33 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +11 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js +155 -0
- package/dist/node_modules/date-fns/locale/en-US/_lib/match.js +110 -0
- package/dist/node_modules/date-fns/locale/en-US.js +21 -0
- package/dist/node_modules/date-fns/max.js +14 -0
- package/dist/node_modules/date-fns/min.js +14 -0
- package/dist/node_modules/date-fns/nextDay.js +10 -0
- package/dist/node_modules/date-fns/nextSunday.js +8 -0
- package/dist/node_modules/date-fns/setHours.js +9 -0
- package/dist/node_modules/date-fns/startOfDay.js +9 -0
- package/dist/node_modules/date-fns/startOfISOWeek.js +8 -0
- package/dist/node_modules/date-fns/startOfISOWeekYear.js +11 -0
- package/dist/node_modules/date-fns/startOfWeek.js +11 -0
- package/dist/node_modules/date-fns/startOfWeekYear.js +13 -0
- package/dist/node_modules/date-fns/startOfYear.js +9 -0
- package/dist/node_modules/date-fns/toDate.js +8 -0
- package/dist/node_modules/raf-schd/dist/raf-schd.esm.js +15 -0
- package/dist/node_modules/re-resizable/lib/index.js +424 -0
- package/dist/node_modules/re-resizable/lib/resizer.js +49 -0
- package/dist/node_modules/react-dom/cjs/react-dom.development.js +227 -0
- package/dist/node_modules/react-dom/cjs/react-dom.production.js +147 -0
- package/dist/node_modules/react-dom/index.js +23 -0
- package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js +12 -0
- package/dist/types/Item.js +6 -0
- package/package.json +10 -7
- package/dist/react-timelane.css +0 -1
- package/dist/react-timelane.js +0 -4754
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { jsx as f } from "react/jsx-runtime";
|
|
2
|
+
import { useRef as x, useState as v, useEffect as z } from "react";
|
|
3
|
+
import b from "../../node_modules/tiny-invariant/dist/esm/tiny-invariant.js";
|
|
4
|
+
import { draggable as D } from "../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/adapter/element-adapter.js";
|
|
5
|
+
import { getGrabPosition as I } from "../utils.js";
|
|
6
|
+
import { Resizable as C } from "../../node_modules/re-resizable/lib/index.js";
|
|
7
|
+
import { useTimelaneContext as P } from "../../hooks/useTimelaneContext.js";
|
|
8
|
+
function k({
|
|
9
|
+
item: n,
|
|
10
|
+
rectangle: e,
|
|
11
|
+
boundingRectangle: d,
|
|
12
|
+
children: R,
|
|
13
|
+
onDrag: g,
|
|
14
|
+
onDragStart: p,
|
|
15
|
+
onDrop: w,
|
|
16
|
+
onUpdate: y,
|
|
17
|
+
onResizeStart: $
|
|
18
|
+
}) {
|
|
19
|
+
const { settings: o } = P(), r = x(null), l = x(null), [s, u] = v(e);
|
|
20
|
+
return z(() => {
|
|
21
|
+
u(e);
|
|
22
|
+
}, [e]), z(() => (b(r.current), b(l.current), D({
|
|
23
|
+
element: r.current,
|
|
24
|
+
dragHandle: l.current,
|
|
25
|
+
onDragStart: ({ source: m, location: i }) => {
|
|
26
|
+
const a = I(m, i);
|
|
27
|
+
p(a.absolute, a.relative);
|
|
28
|
+
},
|
|
29
|
+
onDrag: () => {
|
|
30
|
+
g();
|
|
31
|
+
},
|
|
32
|
+
onDrop: () => {
|
|
33
|
+
w();
|
|
34
|
+
},
|
|
35
|
+
getInitialData: () => ({ ...n }),
|
|
36
|
+
canDrag: () => o.enableItemDragging
|
|
37
|
+
})), [o.enableItemDragging, n, g, p, w]), /* @__PURE__ */ f(
|
|
38
|
+
"div",
|
|
39
|
+
{
|
|
40
|
+
id: `timelane-item-${n.id}`,
|
|
41
|
+
className: "timelane-item",
|
|
42
|
+
"data-timelane-item-id": n.id,
|
|
43
|
+
ref: r,
|
|
44
|
+
style: {
|
|
45
|
+
width: `${s.width}px`,
|
|
46
|
+
height: `${s.height}px`,
|
|
47
|
+
minWidth: `${s.width}px`,
|
|
48
|
+
minHeight: `${s.height}px`,
|
|
49
|
+
maxWidth: `${s.width}px`,
|
|
50
|
+
maxHeight: `${s.height}px`,
|
|
51
|
+
top: `${s.y}px`,
|
|
52
|
+
left: `${s.x}px`
|
|
53
|
+
},
|
|
54
|
+
onMouseDown: (m) => {
|
|
55
|
+
m.stopPropagation();
|
|
56
|
+
},
|
|
57
|
+
onClick: (m) => {
|
|
58
|
+
m.stopPropagation();
|
|
59
|
+
},
|
|
60
|
+
children: /* @__PURE__ */ f(
|
|
61
|
+
C,
|
|
62
|
+
{
|
|
63
|
+
enable: o.enableItemResizing === !0 ? void 0 : o.enableItemResizing,
|
|
64
|
+
handleClasses: {
|
|
65
|
+
left: "timelane-item-resize-handle timelane-item-resize-handle-left",
|
|
66
|
+
right: "timelane-item-resize-handle timelane-item-resize-handle-right"
|
|
67
|
+
},
|
|
68
|
+
size: {
|
|
69
|
+
width: s.width,
|
|
70
|
+
height: s.height
|
|
71
|
+
},
|
|
72
|
+
onResizeStart: () => {
|
|
73
|
+
$();
|
|
74
|
+
},
|
|
75
|
+
onResize: (m, i, a, t) => {
|
|
76
|
+
u((h) => i === "right" ? {
|
|
77
|
+
...h,
|
|
78
|
+
width: e.width + t.width
|
|
79
|
+
} : i === "left" ? {
|
|
80
|
+
...h,
|
|
81
|
+
x: e.x - t.width,
|
|
82
|
+
width: e.width + t.width
|
|
83
|
+
} : i === "bottom" ? {
|
|
84
|
+
...h,
|
|
85
|
+
height: Math.min(
|
|
86
|
+
e.height + t.height,
|
|
87
|
+
d.height - e.y
|
|
88
|
+
)
|
|
89
|
+
} : i === "top" ? {
|
|
90
|
+
...h,
|
|
91
|
+
y: e.y - t.height,
|
|
92
|
+
height: e.height + t.height
|
|
93
|
+
} : h);
|
|
94
|
+
},
|
|
95
|
+
onResizeStop: (m, i, a, t) => {
|
|
96
|
+
let h = e;
|
|
97
|
+
i === "right" ? h = {
|
|
98
|
+
...e,
|
|
99
|
+
width: e.width + t.width
|
|
100
|
+
} : i === "left" ? h = {
|
|
101
|
+
...e,
|
|
102
|
+
x: e.x - t.width,
|
|
103
|
+
width: e.width + t.width
|
|
104
|
+
} : i === "bottom" ? h = {
|
|
105
|
+
...e,
|
|
106
|
+
height: Math.min(
|
|
107
|
+
e.height + t.height,
|
|
108
|
+
d.height - e.y
|
|
109
|
+
)
|
|
110
|
+
} : i === "top" && (h = {
|
|
111
|
+
...e,
|
|
112
|
+
y: e.y - t.height,
|
|
113
|
+
height: e.height + t.height
|
|
114
|
+
}), y(h);
|
|
115
|
+
},
|
|
116
|
+
style: { overflow: "hidden" },
|
|
117
|
+
children: /* @__PURE__ */ f("div", { className: "timelane-item-drag-handle", ref: l, children: R })
|
|
118
|
+
}
|
|
119
|
+
)
|
|
120
|
+
}
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
export {
|
|
124
|
+
k as default
|
|
125
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as I } from "react/jsx-runtime";
|
|
2
|
+
import l from "./DragResizeComponent.js";
|
|
3
|
+
import { getItemRectangle as D, getDropTargetDimensions as R, getUpdatedItem as i } from "../utils.js";
|
|
4
|
+
function b({
|
|
5
|
+
lane: o,
|
|
6
|
+
item: r,
|
|
7
|
+
settings: e,
|
|
8
|
+
children: t,
|
|
9
|
+
onDragStart: m,
|
|
10
|
+
onDrag: n,
|
|
11
|
+
onDrop: a,
|
|
12
|
+
onUpdate: p,
|
|
13
|
+
onResizeStart: c
|
|
14
|
+
}) {
|
|
15
|
+
const d = D(r, o, e, e), f = R(o, e, e);
|
|
16
|
+
return /* @__PURE__ */ I(
|
|
17
|
+
l,
|
|
18
|
+
{
|
|
19
|
+
item: r,
|
|
20
|
+
rectangle: d,
|
|
21
|
+
boundingRectangle: f,
|
|
22
|
+
onDrag: n,
|
|
23
|
+
onDragStart: m,
|
|
24
|
+
onDrop: a,
|
|
25
|
+
onUpdate: (u) => {
|
|
26
|
+
const g = i(
|
|
27
|
+
r,
|
|
28
|
+
o,
|
|
29
|
+
u,
|
|
30
|
+
e,
|
|
31
|
+
e
|
|
32
|
+
);
|
|
33
|
+
p(g);
|
|
34
|
+
},
|
|
35
|
+
onResizeStart: c,
|
|
36
|
+
children: t
|
|
37
|
+
}
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
export {
|
|
41
|
+
b as default
|
|
42
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
+
function a({
|
|
3
|
+
x: e,
|
|
4
|
+
y: t,
|
|
5
|
+
width: p,
|
|
6
|
+
height: r,
|
|
7
|
+
children: i
|
|
8
|
+
}) {
|
|
9
|
+
return /* @__PURE__ */ o(
|
|
10
|
+
"div",
|
|
11
|
+
{
|
|
12
|
+
className: "timelane-drop-preview",
|
|
13
|
+
style: {
|
|
14
|
+
left: `${e}px`,
|
|
15
|
+
top: `${t}px`,
|
|
16
|
+
width: `${p}px`,
|
|
17
|
+
height: `${r}px`
|
|
18
|
+
},
|
|
19
|
+
children: i
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
export {
|
|
24
|
+
a as default
|
|
25
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { jsx as c } from "react/jsx-runtime";
|
|
2
|
+
import { dropTargetForElements as P } from "../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/adapter/element-adapter.js";
|
|
3
|
+
import { useRef as l, useEffect as v } from "react";
|
|
4
|
+
import b from "../../node_modules/tiny-invariant/dist/esm/tiny-invariant.js";
|
|
5
|
+
import { getGrabPosition as s } from "../utils.js";
|
|
6
|
+
function y({
|
|
7
|
+
children: n,
|
|
8
|
+
onDragStart: a = () => {
|
|
9
|
+
},
|
|
10
|
+
onDrag: g = () => {
|
|
11
|
+
},
|
|
12
|
+
onDrop: p = () => {
|
|
13
|
+
},
|
|
14
|
+
onDragEnter: u = () => {
|
|
15
|
+
},
|
|
16
|
+
onDragLeave: m = () => {
|
|
17
|
+
}
|
|
18
|
+
}) {
|
|
19
|
+
const d = l(null);
|
|
20
|
+
return v(() => {
|
|
21
|
+
const f = d.current;
|
|
22
|
+
return b(f), P({
|
|
23
|
+
element: f,
|
|
24
|
+
getData: () => ({ drop: "drop" }),
|
|
25
|
+
onDragStart: ({ source: t, location: e }) => {
|
|
26
|
+
const r = i(e), o = s(t, e);
|
|
27
|
+
a(r, o, t.data);
|
|
28
|
+
},
|
|
29
|
+
onDragEnter: ({ source: t, location: e }) => {
|
|
30
|
+
const r = i(e), o = s(t, e);
|
|
31
|
+
u(r, o, t.data);
|
|
32
|
+
},
|
|
33
|
+
onDrag: ({ source: t, location: e }) => {
|
|
34
|
+
const r = i(e), o = s(t, e);
|
|
35
|
+
g(r, o, t.data);
|
|
36
|
+
},
|
|
37
|
+
onDrop: ({ source: t, location: e }) => {
|
|
38
|
+
const r = i(e), o = s(t, e);
|
|
39
|
+
p(r, o, t.data);
|
|
40
|
+
},
|
|
41
|
+
onDragLeave: ({ source: t, location: e }) => {
|
|
42
|
+
const r = s(t, e);
|
|
43
|
+
m(r, t.data);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}, [g, m, a, p, u]), /* @__PURE__ */ c("div", { className: "timelane-drop-target", ref: d, children: n });
|
|
47
|
+
}
|
|
48
|
+
function i(n) {
|
|
49
|
+
const a = n.current.dropTargets[0].element.getBoundingClientRect();
|
|
50
|
+
return {
|
|
51
|
+
x: n.current.input.pageX - a.x,
|
|
52
|
+
y: n.current.input.pageY - a.y
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export {
|
|
56
|
+
y as default
|
|
57
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
2
|
+
function e({ overlap: t }) {
|
|
3
|
+
return /* @__PURE__ */ i(
|
|
4
|
+
"div",
|
|
5
|
+
{
|
|
6
|
+
style: {
|
|
7
|
+
position: "absolute",
|
|
8
|
+
left: `${t.x}px`,
|
|
9
|
+
top: `${t.y}px`,
|
|
10
|
+
width: `${t.width - 1}px`,
|
|
11
|
+
height: `${t.height - 1}px`,
|
|
12
|
+
background: "rgba(255,0,0, 0.3)",
|
|
13
|
+
marginLeft: "1px",
|
|
14
|
+
pointerEvents: "none"
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
export {
|
|
20
|
+
e as default
|
|
21
|
+
};
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { jsx as d, jsxs as x } from "react/jsx-runtime";
|
|
2
|
+
import X from "./DropTarget.js";
|
|
3
|
+
import $ from "./DropPreview.js";
|
|
4
|
+
import { useState as P } from "react";
|
|
5
|
+
import { getDropTargetDimensions as z, getItemRectangle as A, getOverlap as H, getAvailableSpace as N, getUpdatedItem as U, getDropPreviewRectangle as q } from "../utils.js";
|
|
6
|
+
import F from "../TimelaneItem/TimelaneItem.js";
|
|
7
|
+
import G from "./OverlapIndicator.js";
|
|
8
|
+
import { useTimelaneContext as J } from "../../hooks/useTimelaneContext.js";
|
|
9
|
+
import { isItem as R } from "../../types/Item.js";
|
|
10
|
+
import { formatDate as h } from "../../node_modules/date-fns/format.js";
|
|
11
|
+
import { setHours as K } from "../../node_modules/date-fns/setHours.js";
|
|
12
|
+
import { addDays as Q } from "../../node_modules/date-fns/addDays.js";
|
|
13
|
+
function ce({
|
|
14
|
+
id: o,
|
|
15
|
+
capacity: i = 100,
|
|
16
|
+
items: s = [],
|
|
17
|
+
focused: I = !1,
|
|
18
|
+
onItemUpdate: m = () => {
|
|
19
|
+
},
|
|
20
|
+
onMouseUp: w = () => {
|
|
21
|
+
},
|
|
22
|
+
onClick: C = () => {
|
|
23
|
+
},
|
|
24
|
+
onDoubleClick: O = () => {
|
|
25
|
+
},
|
|
26
|
+
onContextMenu: T = () => {
|
|
27
|
+
},
|
|
28
|
+
renderItem: b = V,
|
|
29
|
+
onResizeStart: k = () => {
|
|
30
|
+
}
|
|
31
|
+
}) {
|
|
32
|
+
const l = { id: o, capacity: i }, { settings: n } = J(), S = {
|
|
33
|
+
x: n.pixelsPerDay,
|
|
34
|
+
offsetX: n.pixelsPerDay / 2
|
|
35
|
+
}, M = z(l, n, n), [p, u] = P(null), [c, f] = P(
|
|
36
|
+
null
|
|
37
|
+
);
|
|
38
|
+
function g(e) {
|
|
39
|
+
const t = e.currentTarget.getBoundingClientRect();
|
|
40
|
+
return K(
|
|
41
|
+
Q(
|
|
42
|
+
n.start,
|
|
43
|
+
(e.clientX - t.left) / n.pixelsPerDay
|
|
44
|
+
),
|
|
45
|
+
12
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
function L(e) {
|
|
49
|
+
const t = e.currentTarget.getBoundingClientRect();
|
|
50
|
+
return (e.pageY - t.top) / t.height * i;
|
|
51
|
+
}
|
|
52
|
+
function Y(e, t, r) {
|
|
53
|
+
if (!R(r)) return;
|
|
54
|
+
const a = q(
|
|
55
|
+
l,
|
|
56
|
+
s,
|
|
57
|
+
r,
|
|
58
|
+
e,
|
|
59
|
+
t,
|
|
60
|
+
n,
|
|
61
|
+
S,
|
|
62
|
+
n,
|
|
63
|
+
n.allowOverlaps
|
|
64
|
+
);
|
|
65
|
+
f(a);
|
|
66
|
+
}
|
|
67
|
+
function j(e, t, r) {
|
|
68
|
+
if (!R(r) || c === null) return;
|
|
69
|
+
const a = U(
|
|
70
|
+
r,
|
|
71
|
+
l,
|
|
72
|
+
c,
|
|
73
|
+
n,
|
|
74
|
+
n
|
|
75
|
+
);
|
|
76
|
+
m(a), f(null);
|
|
77
|
+
}
|
|
78
|
+
function B() {
|
|
79
|
+
f(null);
|
|
80
|
+
}
|
|
81
|
+
function D(e, t) {
|
|
82
|
+
const r = g(e), a = L(e), y = N(
|
|
83
|
+
r,
|
|
84
|
+
a,
|
|
85
|
+
l,
|
|
86
|
+
s,
|
|
87
|
+
n
|
|
88
|
+
);
|
|
89
|
+
t == "single" ? C(r, y, e) : O(r, y, e);
|
|
90
|
+
}
|
|
91
|
+
const v = s.map((e) => ({
|
|
92
|
+
id: e.id,
|
|
93
|
+
...A(e, l, n, n)
|
|
94
|
+
})), E = v.flatMap(
|
|
95
|
+
(e) => v.map((t) => e.id < t.id ? H(e, t) : null)
|
|
96
|
+
).filter((e) => e !== null);
|
|
97
|
+
return /* @__PURE__ */ d(
|
|
98
|
+
"div",
|
|
99
|
+
{
|
|
100
|
+
id: `timelane-lane-${o}`,
|
|
101
|
+
className: `timelane-lane ${I ? "timelane-lane-focused" : ""}`,
|
|
102
|
+
"data-timelane-lane-id": o,
|
|
103
|
+
style: M,
|
|
104
|
+
onMouseUp: w,
|
|
105
|
+
onClick: (e) => D(e, "single"),
|
|
106
|
+
onDoubleClick: (e) => D(e, "double"),
|
|
107
|
+
onContextMenu: (e) => {
|
|
108
|
+
T(g(e), e);
|
|
109
|
+
},
|
|
110
|
+
children: /* @__PURE__ */ x(
|
|
111
|
+
X,
|
|
112
|
+
{
|
|
113
|
+
onDrag: Y,
|
|
114
|
+
onDragLeave: B,
|
|
115
|
+
onDrop: j,
|
|
116
|
+
children: [
|
|
117
|
+
s.map((e, t) => /* @__PURE__ */ d(
|
|
118
|
+
F,
|
|
119
|
+
{
|
|
120
|
+
item: e,
|
|
121
|
+
settings: n,
|
|
122
|
+
lane: l,
|
|
123
|
+
onDragStart: () => {
|
|
124
|
+
u(e);
|
|
125
|
+
},
|
|
126
|
+
onDrag: () => {
|
|
127
|
+
},
|
|
128
|
+
onDrop: () => {
|
|
129
|
+
u(null);
|
|
130
|
+
},
|
|
131
|
+
onUpdate: m,
|
|
132
|
+
onResizeStart: () => {
|
|
133
|
+
k(e.payload);
|
|
134
|
+
},
|
|
135
|
+
children: b(
|
|
136
|
+
e,
|
|
137
|
+
p !== null && p.id === e.id
|
|
138
|
+
)
|
|
139
|
+
},
|
|
140
|
+
t
|
|
141
|
+
)),
|
|
142
|
+
c && /* @__PURE__ */ d($, { ...c }),
|
|
143
|
+
E.map((e, t) => /* @__PURE__ */ d(G, { overlap: e }, t))
|
|
144
|
+
]
|
|
145
|
+
}
|
|
146
|
+
)
|
|
147
|
+
}
|
|
148
|
+
);
|
|
149
|
+
}
|
|
150
|
+
function V(o, i) {
|
|
151
|
+
return /* @__PURE__ */ x("div", { children: [
|
|
152
|
+
o.id,
|
|
153
|
+
" (",
|
|
154
|
+
h(o.start, "yyyy-mm-dd"),
|
|
155
|
+
" -",
|
|
156
|
+
" ",
|
|
157
|
+
h(o.end, "yyyy-mm-dd"),
|
|
158
|
+
")",
|
|
159
|
+
i ? "dragging" : ""
|
|
160
|
+
] });
|
|
161
|
+
}
|
|
162
|
+
export {
|
|
163
|
+
ce as TimelaneLane
|
|
164
|
+
};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { useRef as r } from "react";
|
|
3
|
+
import './layout.css';/* empty css */
|
|
4
|
+
function l({ children: e }) {
|
|
5
|
+
const o = r(null);
|
|
6
|
+
return /* @__PURE__ */ a(
|
|
7
|
+
"div",
|
|
8
|
+
{
|
|
9
|
+
className: "timelane-layout",
|
|
10
|
+
onWheel: (t) => {
|
|
11
|
+
o.current && (t.ctrlKey || t.shiftKey) && (o.current.scrollLeft += t.deltaY, t.preventDefault());
|
|
12
|
+
},
|
|
13
|
+
ref: o,
|
|
14
|
+
children: /* @__PURE__ */ a("div", { className: "timelane-layout-inner", children: e })
|
|
15
|
+
}
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
function n({ children: e }) {
|
|
19
|
+
return /* @__PURE__ */ a("div", { className: "timelane-layout-header", children: e });
|
|
20
|
+
}
|
|
21
|
+
function i({ children: e }) {
|
|
22
|
+
return /* @__PURE__ */ a("div", { className: "timelane-layout-background", children: e });
|
|
23
|
+
}
|
|
24
|
+
function u({ children: e }) {
|
|
25
|
+
return /* @__PURE__ */ a("div", { className: "timelane-layout-body", children: e });
|
|
26
|
+
}
|
|
27
|
+
function m({ children: e }) {
|
|
28
|
+
return /* @__PURE__ */ a("div", { className: "timelane-layout-footer", children: e });
|
|
29
|
+
}
|
|
30
|
+
function c({
|
|
31
|
+
side: e = "left",
|
|
32
|
+
children: o
|
|
33
|
+
}) {
|
|
34
|
+
return /* @__PURE__ */ a(
|
|
35
|
+
"div",
|
|
36
|
+
{
|
|
37
|
+
className: `timelane-layout-aside ${e == "left" ? "timelane-layout-aside-left" : "timelane-layout-aside-right"}`,
|
|
38
|
+
children: o
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
function s({
|
|
43
|
+
corner: e = "top left",
|
|
44
|
+
children: o
|
|
45
|
+
}) {
|
|
46
|
+
let t = "";
|
|
47
|
+
switch (e) {
|
|
48
|
+
case "top left":
|
|
49
|
+
t = "timelane-layout-corner-top-left";
|
|
50
|
+
break;
|
|
51
|
+
case "top right":
|
|
52
|
+
t = "timelane-layout-corner-top-right";
|
|
53
|
+
break;
|
|
54
|
+
case "bottom left":
|
|
55
|
+
t = "timelane-layout-corner-bottom-left";
|
|
56
|
+
break;
|
|
57
|
+
case "bottom right":
|
|
58
|
+
t = "timelane-layout-corner-bottom-right";
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
return /* @__PURE__ */ a("div", { className: `timelane-layout-corner ${t}`, children: o });
|
|
62
|
+
}
|
|
63
|
+
l.Header = n;
|
|
64
|
+
l.Body = u;
|
|
65
|
+
l.Background = i;
|
|
66
|
+
l.Footer = m;
|
|
67
|
+
l.Aside = c;
|
|
68
|
+
l.Corner = s;
|
|
69
|
+
export {
|
|
70
|
+
l as TimelaneLayout,
|
|
71
|
+
c as TimelaneLayoutAside,
|
|
72
|
+
i as TimelaneLayoutBackground,
|
|
73
|
+
u as TimelaneLayoutBody,
|
|
74
|
+
s as TimelaneLayoutCorner,
|
|
75
|
+
m as TimelaneLayoutFooter,
|
|
76
|
+
n as TimelaneLayoutHeader
|
|
77
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--border: 1px solid lightgray}.timelane-layout{position:relative;width:100%;height:100%;overflow:auto;border:var(--border)}.timelane-layout .timelane-layout-inner{position:relative;width:fit-content;height:fit-content;display:grid;grid-template-areas:"corner-tl header corner-tr" "aside-l body aside-r" "corner-bl footer corner-br"}.timelane-layout .timelane-layout-inner .timelane-layout-header,.timelane-layout .timelane-layout-inner .timelane-layout-footer,.timelane-layout .timelane-layout-inner .timelane-layout-aside,.timelane-layout .timelane-layout-inner .timelane-layout-corner{background:#fff}.timelane-layout .timelane-layout-inner .timelane-layout-header{grid-area:header;position:sticky;position:-webkit-sticky;top:0;z-index:101;border-bottom:var(--border)}.timelane-layout .timelane-layout-inner .timelane-layout-body{grid-area:body;z-index:100}.timelane-layout .timelane-layout-inner .timelane-layout-background{grid-area:body;z-index:-1}.timelane-layout .timelane-layout-inner .timelane-layout-footer{grid-area:footer;position:sticky;position:-webkit-sticky;bottom:0;z-index:101;border-top:var(--border)}.timelane-layout .timelane-layout-inner .timelane-layout-aside{grid-area:aside-l;justify-self:stretch;position:sticky;position:-webkit-sticky;left:0;z-index:101;border-right:var(--border)}.timelane-layout .timelane-layout-inner .timelane-layout-aside.timelane-layout-aside-right{grid-area:aside-r;right:0;left:initial;border-left:var(--border);border-right:none}.timelane-layout .timelane-layout-inner .timelane-layout-corner{position:sticky;position:-webkit-sticky;z-index:102}.timelane-layout .timelane-layout-inner .timelane-layout-corner.timelane-layout-corner-top-left{grid-area:corner-tl;top:0;left:0;border-bottom:var(--border);border-right:var(--border)}.timelane-layout .timelane-layout-inner .timelane-layout-corner.timelane-layout-corner-top-right{grid-area:corner-tr;top:0;right:0;border-bottom:var(--border);border-left:var(--border)}.timelane-layout .timelane-layout-inner .timelane-layout-corner.timelane-layout-corner-bottom-left{grid-area:corner-bl;bottom:0;left:0;border-top:var(--border);border-right:var(--border)}.timelane-layout .timelane-layout-inner .timelane-layout-corner.timelane-layout-corner-bottom-right{grid-area:corner-br;bottom:0;right:0;border-top:var(--border);border-left:var(--border)}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { createContext as e } from "react";
|
|
2
|
+
const t = {
|
|
3
|
+
start: new Date(2025, 1, 1),
|
|
4
|
+
end: new Date(2025, 5, 1),
|
|
5
|
+
pixelsPerDay: 30,
|
|
6
|
+
pixelsPerLane: 100,
|
|
7
|
+
showMonths: !0,
|
|
8
|
+
showWeeks: !0,
|
|
9
|
+
showDays: !0,
|
|
10
|
+
allowOverlaps: !0,
|
|
11
|
+
focusedDate: null,
|
|
12
|
+
enableItemDragging: !0,
|
|
13
|
+
enableItemResizing: !0
|
|
14
|
+
}, n = {
|
|
15
|
+
settings: t,
|
|
16
|
+
setSettings: () => {
|
|
17
|
+
}
|
|
18
|
+
}, a = e(n);
|
|
19
|
+
export {
|
|
20
|
+
a as TimelaneSettingsContext
|
|
21
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
2
|
+
import { useState as m, useEffect as s } from "react";
|
|
3
|
+
import { TimelaneSettingsContext as f } from "./TimelaneSettingsContext.js";
|
|
4
|
+
function S({
|
|
5
|
+
settings: t,
|
|
6
|
+
children: r
|
|
7
|
+
}) {
|
|
8
|
+
const [o, e] = m(t);
|
|
9
|
+
return s(() => {
|
|
10
|
+
e((i) => ({ ...i, ...t }));
|
|
11
|
+
}, [t]), /* @__PURE__ */ n(f.Provider, { value: { settings: o, setSettings: e }, children: r });
|
|
12
|
+
}
|
|
13
|
+
export {
|
|
14
|
+
S as TimelaneSettingsProvider
|
|
15
|
+
};
|