react-timelane 1.2.0 → 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.
Files changed (140) hide show
  1. package/dist/_virtual/bind-all.js +4 -0
  2. package/dist/_virtual/bind.js +4 -0
  3. package/dist/_virtual/index.js +5 -0
  4. package/dist/_virtual/index2.js +4 -0
  5. package/dist/_virtual/index3.js +5 -0
  6. package/dist/_virtual/index4.js +4 -0
  7. package/dist/_virtual/react-dom.development.js +4 -0
  8. package/dist/_virtual/react-dom.production.js +4 -0
  9. package/dist/components/Timelane/Timelane.css +1 -0
  10. package/dist/components/Timelane/Timelane.js +53 -0
  11. package/dist/components/TimelaneAllocation/TimelaneAllocation.js +49 -0
  12. package/dist/components/TimelaneAside/TimelaneAside.d.ts +6 -1
  13. package/dist/components/TimelaneAside/TimelaneAside.js +60 -0
  14. package/dist/components/TimelaneBackground/TimelaneBackground.js +46 -0
  15. package/dist/components/TimelaneBody/TimelaneBody.js +13 -0
  16. package/dist/components/TimelaneBody/TimelaneSelectionLayer.js +96 -0
  17. package/dist/components/TimelaneHeader/DaysHeader.js +30 -0
  18. package/dist/components/TimelaneHeader/MonthsHeader.js +38 -0
  19. package/dist/components/TimelaneHeader/TimelaneHeader.js +55 -0
  20. package/dist/components/TimelaneHeader/WeeksHeader.js +39 -0
  21. package/dist/components/TimelaneHeader/renderingUtils.js +26 -0
  22. package/dist/components/TimelaneItem/DragResizeComponent.js +125 -0
  23. package/dist/components/TimelaneItem/TimelaneItem.js +42 -0
  24. package/dist/components/TimelaneLane/DropPreview.js +25 -0
  25. package/dist/components/TimelaneLane/DropTarget.js +57 -0
  26. package/dist/components/TimelaneLane/OverlapIndicator.js +21 -0
  27. package/dist/components/TimelaneLane/TimelaneLane.js +164 -0
  28. package/dist/components/TimelaneLayout/TimelaneLayout.js +77 -0
  29. package/dist/components/TimelaneLayout/layout.css +1 -0
  30. package/dist/components/TimelaneSettingsProvider/TimelaneSettingsContext.js +21 -0
  31. package/dist/components/TimelaneSettingsProvider/TimelaneSettingsProvider.js +15 -0
  32. package/dist/components/utils.js +243 -0
  33. package/dist/hooks/useScroll.js +47 -0
  34. package/dist/hooks/useTimelaneContext.js +6 -0
  35. package/dist/index.js +36 -0
  36. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/adapter/element-adapter-native-data-key.js +4 -0
  37. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/adapter/element-adapter.js +127 -0
  38. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/get-element-from-point-without-honey-pot.js +9 -0
  39. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/honey-pot-data-attribute.js +4 -0
  40. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/is-honey-pot-element.js +7 -0
  41. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/make-honey-pot-fix.js +226 -0
  42. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/ledger/dispatch-consumer-event.js +107 -0
  43. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/ledger/lifecycle-manager.js +195 -0
  44. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/ledger/usage-ledger.js +21 -0
  45. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/make-adapter/make-adapter.js +43 -0
  46. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/make-adapter/make-drop-target.js +253 -0
  47. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/make-adapter/make-monitor.js +121 -0
  48. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/public-utils/combine.js +12 -0
  49. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/public-utils/once.js +17 -0
  50. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/add-attribute.js +9 -0
  51. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/android.js +8 -0
  52. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/changing-window/count-events-for-safari.js +57 -0
  53. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/changing-window/is-from-another-window.js +9 -0
  54. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/changing-window/is-leaving-window.js +13 -0
  55. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/detect-broken-drag.js +47 -0
  56. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/get-input.js +17 -0
  57. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/is-firefox.js +7 -0
  58. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/is-safari.js +10 -0
  59. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/max-z-index.js +4 -0
  60. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/media-types/text-media-type.js +4 -0
  61. package/dist/node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/media-types/url-media-type.js +4 -0
  62. package/dist/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +8 -0
  63. package/dist/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js +6 -0
  64. package/dist/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js +7 -0
  65. package/dist/node_modules/@babel/runtime/helpers/esm/defineProperty.js +12 -0
  66. package/dist/node_modules/@babel/runtime/helpers/esm/iterableToArray.js +6 -0
  67. package/dist/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js +21 -0
  68. package/dist/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js +7 -0
  69. package/dist/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js +7 -0
  70. package/dist/node_modules/@babel/runtime/helpers/esm/slicedToArray.js +10 -0
  71. package/dist/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js +10 -0
  72. package/dist/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +14 -0
  73. package/dist/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +9 -0
  74. package/dist/node_modules/@babel/runtime/helpers/esm/typeof.js +11 -0
  75. package/dist/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +11 -0
  76. package/dist/node_modules/bind-event-listener/dist/bind-all.js +45 -0
  77. package/dist/node_modules/bind-event-listener/dist/bind.js +16 -0
  78. package/dist/node_modules/bind-event-listener/dist/index.js +20 -0
  79. package/dist/node_modules/date-fns/_lib/addLeadingZeros.js +7 -0
  80. package/dist/node_modules/date-fns/_lib/defaultOptions.js +7 -0
  81. package/dist/node_modules/date-fns/_lib/format/formatters.js +583 -0
  82. package/dist/node_modules/date-fns/_lib/format/lightFormatters.js +59 -0
  83. package/dist/node_modules/date-fns/_lib/format/longFormatters.js +52 -0
  84. package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +18 -0
  85. package/dist/node_modules/date-fns/_lib/normalizeDates.js +11 -0
  86. package/dist/node_modules/date-fns/_lib/normalizeInterval.js +8 -0
  87. package/dist/node_modules/date-fns/_lib/protectedTokens.js +20 -0
  88. package/dist/node_modules/date-fns/addDays.js +10 -0
  89. package/dist/node_modules/date-fns/addWeeks.js +8 -0
  90. package/dist/node_modules/date-fns/constants.js +6 -0
  91. package/dist/node_modules/date-fns/constructFrom.js +8 -0
  92. package/dist/node_modules/date-fns/differenceInCalendarDays.js +16 -0
  93. package/dist/node_modules/date-fns/eachDayOfInterval.js +17 -0
  94. package/dist/node_modules/date-fns/eachMonthOfInterval.js +17 -0
  95. package/dist/node_modules/date-fns/eachWeekOfInterval.js +22 -0
  96. package/dist/node_modules/date-fns/format.js +59 -0
  97. package/dist/node_modules/date-fns/getDay.js +8 -0
  98. package/dist/node_modules/date-fns/getDayOfYear.js +11 -0
  99. package/dist/node_modules/date-fns/getISOWeek.js +12 -0
  100. package/dist/node_modules/date-fns/getISOWeekYear.js +15 -0
  101. package/dist/node_modules/date-fns/getWeek.js +12 -0
  102. package/dist/node_modules/date-fns/getWeekYear.js +17 -0
  103. package/dist/node_modules/date-fns/isDate.js +7 -0
  104. package/dist/node_modules/date-fns/isSameDay.js +14 -0
  105. package/dist/node_modules/date-fns/isSunday.js +8 -0
  106. package/dist/node_modules/date-fns/isValid.js +9 -0
  107. package/dist/node_modules/date-fns/lastDayOfMonth.js +9 -0
  108. package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +9 -0
  109. package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +18 -0
  110. package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js +31 -0
  111. package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +15 -0
  112. package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +70 -0
  113. package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js +33 -0
  114. package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +11 -0
  115. package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js +155 -0
  116. package/dist/node_modules/date-fns/locale/en-US/_lib/match.js +110 -0
  117. package/dist/node_modules/date-fns/locale/en-US.js +21 -0
  118. package/dist/node_modules/date-fns/max.js +14 -0
  119. package/dist/node_modules/date-fns/min.js +14 -0
  120. package/dist/node_modules/date-fns/nextDay.js +10 -0
  121. package/dist/node_modules/date-fns/nextSunday.js +8 -0
  122. package/dist/node_modules/date-fns/setHours.js +9 -0
  123. package/dist/node_modules/date-fns/startOfDay.js +9 -0
  124. package/dist/node_modules/date-fns/startOfISOWeek.js +8 -0
  125. package/dist/node_modules/date-fns/startOfISOWeekYear.js +11 -0
  126. package/dist/node_modules/date-fns/startOfWeek.js +11 -0
  127. package/dist/node_modules/date-fns/startOfWeekYear.js +13 -0
  128. package/dist/node_modules/date-fns/startOfYear.js +9 -0
  129. package/dist/node_modules/date-fns/toDate.js +8 -0
  130. package/dist/node_modules/raf-schd/dist/raf-schd.esm.js +15 -0
  131. package/dist/node_modules/re-resizable/lib/index.js +424 -0
  132. package/dist/node_modules/re-resizable/lib/resizer.js +49 -0
  133. package/dist/node_modules/react-dom/cjs/react-dom.development.js +227 -0
  134. package/dist/node_modules/react-dom/cjs/react-dom.production.js +147 -0
  135. package/dist/node_modules/react-dom/index.js +23 -0
  136. package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js +12 -0
  137. package/dist/types/Item.js +6 -0
  138. package/package.json +15 -6
  139. package/dist/react-timelane.css +0 -1
  140. package/dist/react-timelane.js +0 -4752
@@ -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
+ };