laif-ds 0.1.5 → 0.1.7

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 (135) hide show
  1. package/dist/_virtual/_cloneBuffer.js +5 -0
  2. package/dist/_virtual/dayjs.min.js +8 -0
  3. package/dist/_virtual/dayjs.min2.js +5 -0
  4. package/dist/_virtual/debounce.js +8 -0
  5. package/dist/_virtual/index5.js +5 -2
  6. package/dist/_virtual/index6.js +5 -0
  7. package/dist/_virtual/index7.js +5 -0
  8. package/dist/_virtual/localizedFormat.js +8 -0
  9. package/dist/_virtual/localizedFormat2.js +5 -0
  10. package/dist/_virtual/omit.js +8 -0
  11. package/dist/components/ui/data-table.js +122 -0
  12. package/dist/components/ui/gantt/assets/icons/MinusSquareOutlined.js +36 -0
  13. package/dist/components/ui/gantt/assets/icons/PlusSquareOutlined.js +45 -0
  14. package/dist/components/ui/gantt/components/Chart/Bars/Bars.js +115 -0
  15. package/dist/components/ui/gantt/components/Chart/Bars/BarsRow/BarItem/BarItem.js +158 -0
  16. package/dist/components/ui/gantt/components/Chart/Bars/BarsRow/BarsItems/BarItems.js +36 -0
  17. package/dist/components/ui/gantt/components/Chart/Bars/BarsRow/BarsRow.js +26 -0
  18. package/dist/components/ui/gantt/components/Chart/Bars/BarsRow/BarsRowContext.js +14 -0
  19. package/dist/components/ui/gantt/components/Chart/Bars/BarsRow/RepeteadBars/RepeteadBars.js +75 -0
  20. package/dist/components/ui/gantt/components/Chart/Chart.js +66 -0
  21. package/dist/components/ui/gantt/components/Chart/Scale/Scale.js +88 -0
  22. package/dist/components/ui/gantt/components/Chart/Tree/Tree.js +72 -0
  23. package/dist/components/ui/gantt/components/Controls/Controls.js +82 -0
  24. package/dist/components/ui/gantt/components/Gantt/Gantt.js +58 -0
  25. package/dist/components/ui/gantt/components/Gantt/GanttContext.js +35 -0
  26. package/dist/components/ui/gantt/constants/DimensionsSettings.js +89 -0
  27. package/dist/components/ui/gantt/constants/DragStepOptions.js +43 -0
  28. package/dist/components/ui/gantt/constants/GanttConsts.js +17 -0
  29. package/dist/components/ui/gantt/constants/colors.json.js +106 -0
  30. package/dist/components/ui/gantt/enums/DataRepeatTimes.js +5 -0
  31. package/dist/components/ui/gantt/enums/DragStepSizes.js +5 -0
  32. package/dist/components/ui/gantt/enums/DragTypes.js +5 -0
  33. package/dist/components/ui/gantt/enums/GanttDimensions.js +5 -0
  34. package/dist/components/ui/gantt/enums/GanttUnitOfTimes.js +5 -0
  35. package/dist/components/ui/gantt/hooks/useForwardRef.js +11 -0
  36. package/dist/components/ui/gantt/hooks/useGanttCalculate.js +30 -0
  37. package/dist/components/ui/gantt/utils/getInitialScrollOffset.js +11 -0
  38. package/dist/components/ui/gantt/utils/getScaleDates.js +14 -0
  39. package/dist/components/ui/gantt/utils/getScaleItems.js +33 -0
  40. package/dist/components/ui/gantt/utils/getWholeWidth.js +7 -0
  41. package/dist/components/ui/gantt/utils/transformData.js +36 -0
  42. package/dist/components/ui/toaster.js +26 -0
  43. package/dist/dist/_virtual/jsx-runtime.js +6 -0
  44. package/dist/dist/_virtual/jsx-runtime2.js +5 -0
  45. package/dist/dist/_virtual/react-jsx-runtime.development.js +5 -0
  46. package/dist/dist/_virtual/react-jsx-runtime.production.js +5 -0
  47. package/dist/dist/components/ui/checkbox.js +32 -0
  48. package/dist/dist/components/ui/scroll-area.js +61 -0
  49. package/dist/dist/components/ui/table.js +87 -0
  50. package/dist/dist/lib/utils.js +9 -0
  51. package/dist/dist/node_modules/@radix-ui/number/dist/index.js +7 -0
  52. package/dist/dist/node_modules/@radix-ui/primitive/dist/index.js +10 -0
  53. package/dist/dist/node_modules/@radix-ui/react-checkbox/dist/index.js +136 -0
  54. package/dist/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js +30 -0
  55. package/dist/dist/node_modules/@radix-ui/react-context/dist/index.js +56 -0
  56. package/dist/dist/node_modules/@radix-ui/react-direction/dist/index.js +10 -0
  57. package/dist/dist/node_modules/@radix-ui/react-presence/dist/index.js +72 -0
  58. package/dist/dist/node_modules/@radix-ui/react-primitive/dist/index.js +32 -0
  59. package/dist/dist/node_modules/@radix-ui/react-scroll-area/dist/index.js +534 -0
  60. package/dist/dist/node_modules/@radix-ui/react-slot/dist/index.js +50 -0
  61. package/dist/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +14 -0
  62. package/dist/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +33 -0
  63. package/dist/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +7 -0
  64. package/dist/dist/node_modules/@radix-ui/react-use-previous/dist/index.js +9 -0
  65. package/dist/dist/node_modules/@radix-ui/react-use-size/dist/index.js +28 -0
  66. package/dist/dist/node_modules/clsx/dist/clsx.js +18 -0
  67. package/dist/dist/node_modules/lucide-react/dist/esm/Icon.js +41 -0
  68. package/dist/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js +28 -0
  69. package/dist/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js +21 -0
  70. package/dist/dist/node_modules/lucide-react/dist/esm/icons/check.js +13 -0
  71. package/dist/dist/node_modules/lucide-react/dist/esm/shared/src/utils.js +20 -0
  72. package/dist/dist/node_modules/react/cjs/react-jsx-runtime.development.js +248 -0
  73. package/dist/dist/node_modules/react/cjs/react-jsx-runtime.production.js +36 -0
  74. package/dist/dist/node_modules/react/jsx-runtime.js +11 -0
  75. package/dist/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +2732 -0
  76. package/dist/index.d.ts +191 -1
  77. package/dist/index.js +303 -295
  78. package/dist/laif-ds.css +1 -0
  79. package/dist/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +8 -0
  80. package/dist/node_modules/@babel/runtime/helpers/esm/extends.js +13 -0
  81. package/dist/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +8 -0
  82. package/dist/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +9 -0
  83. package/dist/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js +57 -0
  84. package/dist/node_modules/@dnd-kit/core/dist/core.esm.js +2150 -0
  85. package/dist/node_modules/@dnd-kit/modifiers/dist/modifiers.esm.js +27 -0
  86. package/dist/node_modules/@dnd-kit/utilities/dist/utilities.esm.js +184 -0
  87. package/dist/node_modules/@tanstack/react-table/build/lib/index.js +103 -0
  88. package/dist/node_modules/@tanstack/table-core/build/lib/index.js +1896 -0
  89. package/dist/node_modules/classnames/index.js +43 -0
  90. package/dist/node_modules/dayjs/dayjs.min.js +283 -0
  91. package/dist/node_modules/dayjs/plugin/localizedFormat.js +30 -0
  92. package/dist/node_modules/lodash/_arrayEach.js +15 -0
  93. package/dist/node_modules/lodash/_assignValue.js +17 -0
  94. package/dist/node_modules/lodash/_baseAssign.js +16 -0
  95. package/dist/node_modules/lodash/_baseAssignIn.js +16 -0
  96. package/dist/node_modules/lodash/_baseAssignValue.js +20 -0
  97. package/dist/node_modules/lodash/_baseClone.js +71 -0
  98. package/dist/node_modules/lodash/_baseCreate.js +24 -0
  99. package/dist/node_modules/lodash/_baseIsMap.js +16 -0
  100. package/dist/node_modules/lodash/_baseIsSet.js +16 -0
  101. package/dist/node_modules/lodash/_baseKeysIn.js +22 -0
  102. package/dist/node_modules/lodash/_baseUnset.js +18 -0
  103. package/dist/node_modules/lodash/_cloneArrayBuffer.js +16 -0
  104. package/dist/node_modules/lodash/_cloneBuffer.js +20 -0
  105. package/dist/node_modules/lodash/_cloneDataView.js +16 -0
  106. package/dist/node_modules/lodash/_cloneRegExp.js +15 -0
  107. package/dist/node_modules/lodash/_cloneSymbol.js +15 -0
  108. package/dist/node_modules/lodash/_cloneTypedArray.js +16 -0
  109. package/dist/node_modules/lodash/_copyArray.js +16 -0
  110. package/dist/node_modules/lodash/_copyObject.js +22 -0
  111. package/dist/node_modules/lodash/_copySymbols.js +16 -0
  112. package/dist/node_modules/lodash/_copySymbolsIn.js +16 -0
  113. package/dist/node_modules/lodash/_customOmitClone.js +15 -0
  114. package/dist/node_modules/lodash/_flatRest.js +17 -0
  115. package/dist/node_modules/lodash/_getAllKeysIn.js +17 -0
  116. package/dist/node_modules/lodash/_getPrototype.js +12 -0
  117. package/dist/node_modules/lodash/_getSymbolsIn.js +19 -0
  118. package/dist/node_modules/lodash/_initCloneArray.js +15 -0
  119. package/dist/node_modules/lodash/_initCloneByTag.js +49 -0
  120. package/dist/node_modules/lodash/_initCloneObject.js +17 -0
  121. package/dist/node_modules/lodash/_nativeKeysIn.js +17 -0
  122. package/dist/node_modules/lodash/_parent.js +16 -0
  123. package/dist/node_modules/lodash/flatten.js +16 -0
  124. package/dist/node_modules/lodash/isMap.js +14 -0
  125. package/dist/node_modules/lodash/isPlainObject.js +23 -0
  126. package/dist/node_modules/lodash/isSet.js +14 -0
  127. package/dist/node_modules/lodash/keysIn.js +17 -0
  128. package/dist/node_modules/lodash/last.js +14 -0
  129. package/dist/node_modules/lodash/omit.js +30 -0
  130. package/dist/node_modules/memoize-one/dist/memoize-one.esm.js +28 -0
  131. package/dist/node_modules/react-window/dist/index.esm.js +375 -0
  132. package/dist/node_modules/style-to-object/cjs/index.js +1 -1
  133. package/dist/styles.css +1 -1
  134. package/package.json +16 -7
  135. package/dist/components/ui/sonner.js +0 -23
@@ -0,0 +1,75 @@
1
+ "use client";
2
+ import { j as c } from "../../../../../../../../_virtual/jsx-runtime.js";
3
+ import { useMemo as f } from "react";
4
+ import u from "../../../../../../../../_virtual/dayjs.min.js";
5
+ import { GanttConsts as p } from "../../../../../constants/GanttConsts.js";
6
+ import { DataRepeatTypes as D } from "../../../../../enums/DataRepeatTimes.js";
7
+ import E from "../BarItem/BarItem.js";
8
+ const I = ({
9
+ data: o,
10
+ firstRenderedDate: t,
11
+ lastRenderedDate: i,
12
+ title: h,
13
+ barKey: l,
14
+ leftRender: N,
15
+ onBarDoubleClick: S
16
+ }) => {
17
+ const s = f(() => {
18
+ if (!t)
19
+ return null;
20
+ const e = o.fromDate ? u(o.fromDate).unix() : t;
21
+ return e > t ? e : t;
22
+ }, [o.fromDate, t]), m = f(() => {
23
+ if (!i)
24
+ return null;
25
+ const e = o.toDate ? u(o.toDate).unix() : i;
26
+ return e < i ? e : i;
27
+ }, [o.toDate, i]), n = f(() => o.toTime < o.fromTime ? o.toTime + p.SECONDS_IN_DAY - o.fromTime : o.toTime - o.fromTime, [o.fromTime, o.toTime]), _ = f(() => {
28
+ var T, x;
29
+ if (!s || !m || !n)
30
+ return [];
31
+ const e = [];
32
+ let r = u.unix(s).startOf("day").add(o.fromTime, "seconds").unix();
33
+ switch (o.repeatType) {
34
+ case D.DAY: {
35
+ for (; r <= m; )
36
+ e.push({
37
+ startDate: r,
38
+ endDate: r + n
39
+ }), r = r + p.SECONDS_IN_DAY;
40
+ break;
41
+ }
42
+ case D.WEEK:
43
+ for (; r <= m; )
44
+ (T = o.weekdays) != null && T.includes(+u.unix(r).format("d")) && e.push({
45
+ startDate: r,
46
+ endDate: r + n
47
+ }), r = r + p.SECONDS_IN_DAY;
48
+ break;
49
+ case D.MONTH:
50
+ for (; r <= m; )
51
+ (x = o.monthdays) != null && x.includes(+u.unix(r).format("D")) && e.push({
52
+ startDate: r,
53
+ endDate: r + n
54
+ }), r = r + p.SECONDS_IN_DAY;
55
+ break;
56
+ }
57
+ return e;
58
+ }, [o, n, s, m]);
59
+ return !s || !m ? null : /* @__PURE__ */ c.jsx(c.Fragment, { children: _.map(({ startDate: e, endDate: r }) => /* @__PURE__ */ c.jsx(
60
+ E,
61
+ {
62
+ title: h,
63
+ barKey: l,
64
+ startDate: e,
65
+ endDate: r,
66
+ repetead: !0,
67
+ leftRender: N,
68
+ onBarDoubleClick: S
69
+ },
70
+ l + e
71
+ )) });
72
+ };
73
+ export {
74
+ I as default
75
+ };
@@ -0,0 +1,66 @@
1
+ "use client";
2
+ import { j as s } from "../../../../../_virtual/jsx-runtime.js";
3
+ import { useContext as R, useRef as a, useState as o, useCallback as _, useMemo as M, useEffect as m } from "react";
4
+ import N from "../../../../../_virtual/index5.js";
5
+ import k from "../../../../../_virtual/debounce.js";
6
+ import { GanttContext as y } from "../Gantt/GanttContext.js";
7
+ /* empty css */
8
+ import { transformData as A } from "../../utils/transformData.js";
9
+ import B from "./Scale/Scale.js";
10
+ import F from "./Tree/Tree.js";
11
+ import O from "./Bars/Bars.js";
12
+ import { GanttConsts as u } from "../../constants/GanttConsts.js";
13
+ import { GanttDimensionsSettings as P } from "../../constants/DimensionsSettings.js";
14
+ const w = ({ data: f, className: H, onBarDoubleClick: S, onBarChange: W }) => {
15
+ const { settings: n, scaleDates: c, wrapRef: t, setCurrentDate: d } = R(y), h = a(null), T = a(null), g = a(null), [p, i] = o([]), [l, I] = o(!0), [D, b] = o(0), [x, G] = o(0), E = _(() => {
16
+ var r;
17
+ const e = Math.round(
18
+ ((((r = t == null ? void 0 : t.current) == null ? void 0 : r.scrollLeft) || 0) + u.TREE_WIDTH) * P[n.dimension].secondsInPixel
19
+ );
20
+ d(c[0] + e);
21
+ }, [c, d, n.dimension, t]), L = M(() => k(E, 100), [E]);
22
+ return m(() => {
23
+ var e, r;
24
+ (e = t == null ? void 0 : t.current) != null && e.clientWidth && ((r = t == null ? void 0 : t.current) != null && r.clientHeight) && (b(t.current.clientWidth - u.TREE_WIDTH), G(t.current.clientHeight - u.HEADER_HEIGHT), I(!1));
25
+ }, []), m(() => {
26
+ !l && t.current && (t.current.scrollLeft = n.initialScrollOffset);
27
+ }, [l]), m(() => {
28
+ i(A(f));
29
+ }, [f]), /* @__PURE__ */ s.jsx(
30
+ "div",
31
+ {
32
+ className: N("gantt-chart-wrap", H),
33
+ ref: t,
34
+ onScroll: (e) => {
35
+ var r, j, C;
36
+ (r = g.current) == null || r.scrollTo(e.currentTarget.scrollTop), (j = T.current) == null || j.scrollTo(e.currentTarget.scrollTop), (C = h.current) == null || C.scrollTo(e.currentTarget.scrollLeft), L();
37
+ },
38
+ children: l ? /* @__PURE__ */ s.jsx(
39
+ "div",
40
+ {
41
+ style: {
42
+ width: n.scaleStepItems * n.stepWidth * c.length
43
+ }
44
+ }
45
+ ) : /* @__PURE__ */ s.jsxs(s.Fragment, { children: [
46
+ /* @__PURE__ */ s.jsx(B, { width: D, wrapRef: t, ref: h }),
47
+ /* @__PURE__ */ s.jsx(F, { height: x, data: p, setData: i, ref: T }),
48
+ /* @__PURE__ */ s.jsx(
49
+ O,
50
+ {
51
+ ref: g,
52
+ data: p,
53
+ setData: i,
54
+ width: D,
55
+ height: x,
56
+ onBarDoubleClick: S,
57
+ onBarChange: W
58
+ }
59
+ )
60
+ ] })
61
+ }
62
+ );
63
+ };
64
+ export {
65
+ w as default
66
+ };
@@ -0,0 +1,88 @@
1
+ "use client";
2
+ import { j as a } from "../../../../../../_virtual/jsx-runtime.js";
3
+ import { forwardRef as T, useContext as A, useRef as M, useCallback as u, useEffect as C } from "react";
4
+ import c from "../../../../../../_virtual/dayjs.min.js";
5
+ import { VariableSizeList as O } from "../../../../../../node_modules/react-window/dist/index.esm.js";
6
+ import { GanttContext as R } from "../../Gantt/GanttContext.js";
7
+ /* empty css */
8
+ import { useForwardRef as _ } from "../../../hooks/useForwardRef.js";
9
+ import { getScaleItems as v } from "../../../utils/getScaleItems.js";
10
+ import { GanttDimensions as p } from "../../../enums/GanttDimensions.js";
11
+ import { GanttDimensionsSettings as w } from "../../../constants/DimensionsSettings.js";
12
+ import { GanttConsts as m } from "../../../constants/GanttConsts.js";
13
+ const F = T(({ width: W, wrapRef: f }, y) => {
14
+ const { scaleDates: n, setScaleDates: d, setScaleRenderState: h, settings: t } = A(R), e = _(y), l = M(null), j = M(null), E = u(
15
+ (s) => {
16
+ const i = c.unix(n[s]);
17
+ return t.dimension === p.DAY ? i.daysInMonth() * t.stepWidth : t.scaleStepItems * t.stepWidth;
18
+ },
19
+ [n, t.dimension, t.scaleStepItems, t.stepWidth]
20
+ ), N = u(
21
+ ({ scrollOffset: s }) => {
22
+ var r, o, S, x, I;
23
+ const i = w[t.dimension].unitOfTime;
24
+ if (s < m.MIN_SCROLL_OFFSET) {
25
+ const g = c.unix(n[0]).subtract(1, i);
26
+ let D = t.scaleStepItems * t.stepWidth;
27
+ t.dimension === p.DAY && (D = g.daysInMonth() * t.stepWidth), d([g.unix(), ...n]), (r = f.current) == null || r.scrollTo({ left: s + D }), (o = e == null ? void 0 : e.current) == null || o.resetAfterIndex(0);
28
+ }
29
+ (((S = l.current) == null ? void 0 : S.scrollWidth) || 0) - (((x = l.current) == null ? void 0 : x.clientWidth) || 0) - s - m.TREE_WIDTH < m.MIN_SCROLL_OFFSET && (d([
30
+ ...n,
31
+ c.unix(n[n.length - 1]).add(1, i).unix()
32
+ ]), (I = e == null ? void 0 : e.current) == null || I.resetAfterIndex(0));
33
+ },
34
+ [
35
+ e,
36
+ n,
37
+ d,
38
+ t.dimension,
39
+ t.scaleStepItems,
40
+ t.stepWidth,
41
+ f
42
+ ]
43
+ ), Y = u(
44
+ (s) => {
45
+ h(s);
46
+ },
47
+ [h]
48
+ );
49
+ return C(() => {
50
+ var s;
51
+ (s = e == null ? void 0 : e.current) == null || s.resetAfterIndex(0);
52
+ }, [e, t.dimension]), /* @__PURE__ */ a.jsx("div", { className: "gantt-scale-wrap", children: /* @__PURE__ */ a.jsx(
53
+ O,
54
+ {
55
+ className: "gantt-scale-list",
56
+ layout: "horizontal",
57
+ width: W,
58
+ height: m.HEADER_HEIGHT,
59
+ itemCount: n.length,
60
+ itemSize: E,
61
+ itemData: n,
62
+ ref: e,
63
+ outerRef: l,
64
+ innerRef: j,
65
+ initialScrollOffset: t.initialScrollOffset,
66
+ onScroll: N,
67
+ onItemsRendered: Y,
68
+ children: ({ style: s, index: i, data: r }) => /* @__PURE__ */ a.jsxs("div", { className: "gantt-scale-item", style: s, children: [
69
+ /* @__PURE__ */ a.jsx("div", { className: "gantt-scale-title", children: c.unix(r[i]).format(
70
+ t.dimension === p.DAY ? "MMMM, YYYY" : "ddd, D MMMM, YY"
71
+ ) }),
72
+ /* @__PURE__ */ a.jsx("div", { className: "gantt-scale-steps", children: v(t.dimension, r[i]).map((o) => /* @__PURE__ */ a.jsx(
73
+ "div",
74
+ {
75
+ className: "gantt-scale-step",
76
+ style: { width: t.stepWidth },
77
+ children: o
78
+ },
79
+ o
80
+ )) })
81
+ ] })
82
+ }
83
+ ) });
84
+ });
85
+ F.displayName = "Scale";
86
+ export {
87
+ F as default
88
+ };
@@ -0,0 +1,72 @@
1
+ "use client";
2
+ import { j as r } from "../../../../../../_virtual/jsx-runtime.js";
3
+ import { forwardRef as p, useMemo as u, useCallback as g } from "react";
4
+ import { VariableSizeList as h } from "../../../../../../node_modules/react-window/dist/index.esm.js";
5
+ /* empty css */
6
+ import { MinusSquareOutlined as f } from "../../../assets/icons/MinusSquareOutlined.js";
7
+ import { PlusSquareOutlined as x } from "../../../assets/icons/PlusSquareOutlined.js";
8
+ import { GanttConsts as a } from "../../../constants/GanttConsts.js";
9
+ const E = p(({ height: d, data: i, setData: l }, c) => {
10
+ const o = u(() => {
11
+ const n = [];
12
+ for (const e of i)
13
+ e.hasOwnProperty("expanded") && !e.expanded && n.push(e.key);
14
+ return i.filter((e) => !e.parentsKeys.some((s) => n.includes(s)));
15
+ }, [i]), m = g(
16
+ (n) => {
17
+ const e = [...i], t = e.find((s) => s.key === n);
18
+ t != null && t.hasOwnProperty("expanded") && (t.expanded = !t.expanded), l(e);
19
+ },
20
+ [i, l]
21
+ );
22
+ return /* @__PURE__ */ r.jsx(
23
+ "div",
24
+ {
25
+ className: "gantt-tree-wrap bg-background shadow-lg",
26
+ style: {
27
+ width: a.TREE_WIDTH,
28
+ marginTop: -a.HEADER_HEIGHT
29
+ },
30
+ children: /* @__PURE__ */ r.jsx(
31
+ h,
32
+ {
33
+ ref: c,
34
+ className: "gantt-tree-list bg-background",
35
+ layout: "vertical",
36
+ width: "100%",
37
+ height: d,
38
+ itemCount: o.length,
39
+ itemSize: () => a.ROW_HEIGHT,
40
+ itemData: o,
41
+ innerElementType: ({ children: n, props: e }) => /* @__PURE__ */ r.jsxs("div", { style: { height: o.length * a.ROW_HEIGHT }, ...e, children: [
42
+ /* @__PURE__ */ r.jsx("div", { className: "gantt-tree-title bg-background", style: { height: a.HEADER_HEIGHT }, children: "Title" }),
43
+ /* @__PURE__ */ r.jsx("div", { className: "gantt-tree-inner-wrap", children: n })
44
+ ] }),
45
+ children: ({ style: n, index: e, data: t }) => {
46
+ const s = t[e];
47
+ return /* @__PURE__ */ r.jsxs(
48
+ "button",
49
+ {
50
+ className: "gantt-tree-list-item bg-background text-foreground",
51
+ style: {
52
+ ...n,
53
+ backgroundColor: e % 2 === 0 ? "var(--background)" : "var(--muted)",
54
+ paddingLeft: a.LEAF_TITLE_PADDING_LEFT + s.level * a.LEAF_CHILDREN_PADDING_LEFT
55
+ },
56
+ onClick: () => m(s.key),
57
+ children: [
58
+ s.hasOwnProperty("expanded") ? s.expanded ? /* @__PURE__ */ r.jsx(f, { className: "gantt-tree-icon" }) : /* @__PURE__ */ r.jsx(x, { className: "gantt-tree-icon" }) : null,
59
+ /* @__PURE__ */ r.jsx("div", { children: t[e].title })
60
+ ]
61
+ }
62
+ );
63
+ }
64
+ }
65
+ )
66
+ }
67
+ );
68
+ });
69
+ E.displayName = "Tree";
70
+ export {
71
+ E as default
72
+ };
@@ -0,0 +1,82 @@
1
+ "use client";
2
+ import { j as n } from "../../../../../_virtual/jsx-runtime.js";
3
+ import { useContext as V, useState as x, useMemo as p, useCallback as a } from "react";
4
+ import G from "../../../../../_virtual/dayjs.min.js";
5
+ import { cn as y } from "../../../../../lib/utils.js";
6
+ import { Button as h } from "../../../button.js";
7
+ import { Select as j, SelectTrigger as f, SelectValue as g, SelectContent as S, SelectItem as v } from "../../../select.js";
8
+ import { GanttContext as R } from "../Gantt/GanttContext.js";
9
+ import { useGanttCalculate as P } from "../../hooks/useGanttCalculate.js";
10
+ import B from "../../../../../node_modules/lucide-react/dist/esm/icons/chevron-left.js";
11
+ import E from "../../../../../node_modules/lucide-react/dist/esm/icons/chevron-right.js";
12
+ import { GanttDimensions as H } from "../../enums/GanttDimensions.js";
13
+ import { GanttDimensionsSettings as l } from "../../constants/DimensionsSettings.js";
14
+ import { DragStepOptions as d } from "../../constants/DragStepOptions.js";
15
+ const Z = ({ className: b }) => {
16
+ const { calculate: i } = P(), { settings: r, setSettings: u, currentDate: C } = V(R), [D, c] = x(H.HOUR), [t, m] = x(0), o = p(() => Object.keys(l).map((e, s) => ({
17
+ label: l[e].label,
18
+ value: e,
19
+ index: s
20
+ })), []), z = a(
21
+ (e) => {
22
+ const s = o.findIndex((I) => I.value === e);
23
+ c(e), m(s), i(e);
24
+ },
25
+ [i, o]
26
+ ), N = a(() => {
27
+ if (t < o.length - 1) {
28
+ const e = Object.keys(l)[t + 1];
29
+ c(e), m(t + 1), i(e);
30
+ }
31
+ }, [i, o.length, t]), O = a(() => {
32
+ if (t > 0) {
33
+ const e = Object.keys(l)[t - 1];
34
+ c(e), m(t - 1), i(e);
35
+ }
36
+ }, [i, t]), k = p(() => Object.keys(d).map((e) => ({
37
+ label: d[e].label,
38
+ value: e
39
+ })), []), w = a(
40
+ (e) => {
41
+ u(() => {
42
+ const s = { ...r };
43
+ return s.dragStepSize = e, s.gridSize = d[e].seconds / l[s.dimension].secondsInPixel, s;
44
+ });
45
+ },
46
+ [u, r]
47
+ );
48
+ return /* @__PURE__ */ n.jsxs("div", { className: y("flex items-center gap-2 p-4 border-b", b), children: [
49
+ /* @__PURE__ */ n.jsx(
50
+ h,
51
+ {
52
+ variant: "outline",
53
+ size: "icon",
54
+ onClick: O,
55
+ disabled: t <= 0,
56
+ children: /* @__PURE__ */ n.jsx(B, { className: "h-4 w-4" })
57
+ }
58
+ ),
59
+ /* @__PURE__ */ n.jsxs(j, { value: D, onValueChange: z, children: [
60
+ /* @__PURE__ */ n.jsx(f, { className: "w-[180px]", children: /* @__PURE__ */ n.jsx(g, { placeholder: "Seleziona dimensione" }) }),
61
+ /* @__PURE__ */ n.jsx(S, { className: "z-100", children: o.map((e) => /* @__PURE__ */ n.jsx(v, { value: e.value, children: e.label }, e.value)) })
62
+ ] }),
63
+ /* @__PURE__ */ n.jsx(
64
+ h,
65
+ {
66
+ variant: "outline",
67
+ size: "icon",
68
+ onClick: N,
69
+ disabled: t >= o.length - 1,
70
+ children: /* @__PURE__ */ n.jsx(E, { className: "h-4 w-4" })
71
+ }
72
+ ),
73
+ /* @__PURE__ */ n.jsx("div", { className: "px-4 text-sm font-medium", children: G.unix(C).format("ddd, ll") }),
74
+ /* @__PURE__ */ n.jsxs(j, { value: r.dragStepSize, onValueChange: w, children: [
75
+ /* @__PURE__ */ n.jsx(f, { className: "w-[180px]", children: /* @__PURE__ */ n.jsx(g, { placeholder: "Seleziona step" }) }),
76
+ /* @__PURE__ */ n.jsx(S, { children: k.map((e) => /* @__PURE__ */ n.jsx(v, { value: e.value, children: e.label }, e.value)) })
77
+ ] })
78
+ ] });
79
+ };
80
+ export {
81
+ Z as default
82
+ };
@@ -0,0 +1,58 @@
1
+ "use client";
2
+ import { j as s } from "../../../../../_virtual/jsx-runtime.js";
3
+ import { useMemo as n, useRef as O, useState as e } from "react";
4
+ import a from "../../../../../_virtual/dayjs.min.js";
5
+ import H from "../../../../../_virtual/localizedFormat.js";
6
+ import { GanttContext as v } from "./GanttContext.js";
7
+ /* empty css */
8
+ /* empty css */
9
+ /* empty css */
10
+ import C from "../Chart/Chart.js";
11
+ import U from "../Controls/Controls.js";
12
+ import { getScaleDates as h } from "../../utils/getScaleDates.js";
13
+ import { getInitialScrollOffset as j } from "../../utils/getInitialScrollOffset.js";
14
+ import { GanttDimensions as t } from "../../enums/GanttDimensions.js";
15
+ import { DragStepSizes as i } from "../../enums/DragStepSizes.js";
16
+ import { GanttConsts as G } from "../../constants/GanttConsts.js";
17
+ import { GanttDimensionsSettings as r } from "../../constants/DimensionsSettings.js";
18
+ import { DragStepOptions as z } from "../../constants/DragStepOptions.js";
19
+ a.extend(H);
20
+ const m = ({ children: l, draggable: p = !1 }) => {
21
+ const o = n(() => h(), []), c = n(() => j(t.HOUR, o), [o]), S = O(null), [d, f] = e(a().unix()), [x, u] = e(o), [I, R] = e({
22
+ stepWidth: r[t.HOUR].stepWidth,
23
+ secondsInPixel: r[t.HOUR].secondsInPixel,
24
+ scaleStepItems: G.HOURS_IN_DAY,
25
+ initialScrollOffset: c,
26
+ dimension: t.HOUR,
27
+ draggable: p,
28
+ dragStepSize: i.THIRTY_MIN,
29
+ gridSize: z[i.THIRTY_MIN].seconds / r[t.HOUR].secondsInPixel
30
+ }), [D, g] = e({
31
+ overscanStartIndex: 0,
32
+ overscanStopIndex: 0,
33
+ visibleStartIndex: 0,
34
+ visibleStopIndex: 0
35
+ });
36
+ return /* @__PURE__ */ s.jsx(
37
+ v.Provider,
38
+ {
39
+ value: {
40
+ wrapRef: S,
41
+ scaleDates: x,
42
+ setScaleDates: u,
43
+ settings: I,
44
+ setSettings: R,
45
+ scaleRenderState: D,
46
+ setScaleRenderState: g,
47
+ currentDate: d,
48
+ setCurrentDate: f
49
+ },
50
+ children: /* @__PURE__ */ s.jsx("div", { className: "gantt-wrap", children: l })
51
+ }
52
+ );
53
+ };
54
+ m.Chart = C;
55
+ m.Controls = U;
56
+ export {
57
+ m as default
58
+ };
@@ -0,0 +1,35 @@
1
+ "use client";
2
+ import { createContext as e } from "react";
3
+ import { DragStepSizes as t } from "../../enums/DragStepSizes.js";
4
+ import { GanttDimensions as s } from "../../enums/GanttDimensions.js";
5
+ const i = e({
6
+ wrapRef: { current: null },
7
+ scaleDates: [],
8
+ setScaleDates: () => {
9
+ },
10
+ settings: {
11
+ stepWidth: 0,
12
+ secondsInPixel: 0,
13
+ scaleStepItems: 0,
14
+ initialScrollOffset: 0,
15
+ dimension: s.HOUR,
16
+ dragStepSize: t.THIRTY_MIN,
17
+ gridSize: 0,
18
+ draggable: !1
19
+ },
20
+ setSettings: () => {
21
+ },
22
+ scaleRenderState: {
23
+ overscanStartIndex: 0,
24
+ overscanStopIndex: 0,
25
+ visibleStartIndex: 0,
26
+ visibleStopIndex: 0
27
+ },
28
+ setScaleRenderState: () => {
29
+ },
30
+ currentDate: 0,
31
+ setCurrentDate: () => 0
32
+ });
33
+ export {
34
+ i as GanttContext
35
+ };
@@ -0,0 +1,89 @@
1
+ "use client";
2
+ import { GanttConsts as _ } from "./GanttConsts.js";
3
+ import { GanttUnitOfTimes as S } from "../enums/GanttUnitOfTimes.js";
4
+ import { GanttDimensions as e } from "../enums/GanttDimensions.js";
5
+ const s = {
6
+ [e.HOUR]: {
7
+ value: 0,
8
+ hours: 1,
9
+ label: "1 hour",
10
+ unitOfTime: S.DAY,
11
+ itemsCount: 11,
12
+ stepWidth: _.SCALE_STEP_DEFAULT_WIDTH,
13
+ scaleStepItems: _.HOURS_IN_DAY / 1,
14
+ secondsInPixel: _.SECONDS_IN_HOUR * 1 / _.SCALE_STEP_DEFAULT_WIDTH
15
+ },
16
+ [e.TWO_HOURS]: {
17
+ value: 1,
18
+ hours: 2,
19
+ label: "2 hours",
20
+ unitOfTime: S.DAY,
21
+ itemsCount: 11 * 2,
22
+ stepWidth: _.SCALE_STEP_DEFAULT_WIDTH * _.SCALE_STEP_RATIO,
23
+ scaleStepItems: _.HOURS_IN_DAY / 2,
24
+ secondsInPixel: _.SECONDS_IN_HOUR * 2 / (_.SCALE_STEP_DEFAULT_WIDTH * _.SCALE_STEP_RATIO)
25
+ },
26
+ [e.THREE_HOURS]: {
27
+ value: 2,
28
+ hours: 3,
29
+ label: "3 hours",
30
+ unitOfTime: S.DAY,
31
+ itemsCount: 11 * 3,
32
+ stepWidth: _.SCALE_STEP_DEFAULT_WIDTH * _.SCALE_STEP_RATIO,
33
+ scaleStepItems: _.HOURS_IN_DAY / 3,
34
+ secondsInPixel: _.SECONDS_IN_HOUR * 3 / (_.SCALE_STEP_DEFAULT_WIDTH * _.SCALE_STEP_RATIO)
35
+ },
36
+ [e.FOUR_HOURS]: {
37
+ value: 3,
38
+ hours: 4,
39
+ label: "4 hours",
40
+ unitOfTime: S.DAY,
41
+ itemsCount: 11 * 4,
42
+ stepWidth: _.SCALE_STEP_DEFAULT_WIDTH * _.SCALE_STEP_RATIO,
43
+ scaleStepItems: _.HOURS_IN_DAY / 4,
44
+ secondsInPixel: _.SECONDS_IN_HOUR * 4 / (_.SCALE_STEP_DEFAULT_WIDTH * _.SCALE_STEP_RATIO)
45
+ },
46
+ [e.SIX_HOURS]: {
47
+ value: 4,
48
+ hours: 6,
49
+ label: "6 hours",
50
+ unitOfTime: S.DAY,
51
+ itemsCount: 11 * 6,
52
+ stepWidth: _.SCALE_STEP_DEFAULT_WIDTH * _.SCALE_STEP_RATIO,
53
+ scaleStepItems: _.HOURS_IN_DAY / 6,
54
+ secondsInPixel: _.SECONDS_IN_HOUR * 6 / (_.SCALE_STEP_DEFAULT_WIDTH * _.SCALE_STEP_RATIO)
55
+ },
56
+ [e.EIGHT_HOURS]: {
57
+ value: 5,
58
+ hours: 8,
59
+ label: "8 hours",
60
+ unitOfTime: S.DAY,
61
+ itemsCount: 11 * 8,
62
+ stepWidth: _.SCALE_STEP_DEFAULT_WIDTH * _.SCALE_STEP_RATIO,
63
+ scaleStepItems: _.HOURS_IN_DAY / 8,
64
+ secondsInPixel: _.SECONDS_IN_HOUR * 8 / (_.SCALE_STEP_DEFAULT_WIDTH * _.SCALE_STEP_RATIO)
65
+ },
66
+ [e.TWELVE_HOURS]: {
67
+ value: 6,
68
+ hours: 12,
69
+ label: "12 hours",
70
+ unitOfTime: S.DAY,
71
+ itemsCount: 11 * 12,
72
+ stepWidth: _.SCALE_STEP_DEFAULT_WIDTH * _.SCALE_STEP_RATIO,
73
+ scaleStepItems: _.HOURS_IN_DAY / 12,
74
+ secondsInPixel: _.SECONDS_IN_HOUR * 12 / (_.SCALE_STEP_DEFAULT_WIDTH * _.SCALE_STEP_RATIO)
75
+ },
76
+ [e.DAY]: {
77
+ value: 7,
78
+ hours: 24,
79
+ label: "1 day",
80
+ unitOfTime: S.MONTH,
81
+ itemsCount: 11,
82
+ stepWidth: _.SCALE_STEP_DEFAULT_WIDTH,
83
+ scaleStepItems: _.HOURS_IN_DAY / 24,
84
+ secondsInPixel: _.SECONDS_IN_HOUR * 24 / _.SCALE_STEP_DEFAULT_WIDTH
85
+ }
86
+ };
87
+ export {
88
+ s as GanttDimensionsSettings
89
+ };
@@ -0,0 +1,43 @@
1
+ "use client";
2
+ import { DragStepSizes as e } from "../enums/DragStepSizes.js";
3
+ const l = {
4
+ [e.FIVE_MIN]: {
5
+ seconds: 5 * 60,
6
+ label: "5 min"
7
+ },
8
+ [e.TEN_MIN]: {
9
+ seconds: 10 * 60,
10
+ label: "10 min"
11
+ },
12
+ [e.FIFTEEN_MIN]: {
13
+ seconds: 15 * 60,
14
+ label: "15 min"
15
+ },
16
+ [e.TWENTY_MIN]: {
17
+ seconds: 20 * 60,
18
+ label: "20 min"
19
+ },
20
+ [e.THIRTY_MIN]: {
21
+ seconds: 30 * 60,
22
+ label: "30 min"
23
+ },
24
+ [e.ONE_HOUR]: {
25
+ seconds: 60 * 60,
26
+ label: "1 hour"
27
+ },
28
+ [e.EIGHT_HOURS]: {
29
+ seconds: 8 * 60 * 60,
30
+ label: "8 hours"
31
+ },
32
+ [e.TWELVE_HOURS]: {
33
+ seconds: 12 * 60 * 60,
34
+ label: "12 hours"
35
+ },
36
+ [e.ONE_DAY]: {
37
+ seconds: 24 * 60 * 60,
38
+ label: "1 day"
39
+ }
40
+ };
41
+ export {
42
+ l as DragStepOptions
43
+ };
@@ -0,0 +1,17 @@
1
+ "use client";
2
+ const _ = {
3
+ ROW_HEIGHT: 40,
4
+ HEADER_HEIGHT: 50,
5
+ TREE_WIDTH: 300,
6
+ LEAF_TITLE_PADDING_LEFT: 50,
7
+ LEAF_CHILDREN_PADDING_LEFT: 5,
8
+ SCALE_STEP_DEFAULT_WIDTH: 50,
9
+ SECONDS_IN_HOUR: 3600,
10
+ SECONDS_IN_DAY: 86400,
11
+ HOURS_IN_DAY: 24,
12
+ MIN_SCROLL_OFFSET: 2400,
13
+ SCALE_STEP_RATIO: 1.6
14
+ };
15
+ export {
16
+ _ as GanttConsts
17
+ };