vlite3 1.4.32 → 1.4.34
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/README.md +7 -0
- package/components/Alert.vue.js +45 -40
- package/components/Barcode/Barcode.vue.js +34 -21
- package/components/CategoryManager/CategoryNode.vue.js +30 -30
- package/components/CategoryMenu/CategoryMenu.vue.js +9 -11
- package/components/Chart/GanttChart.vue.d.ts +5 -1
- package/components/Chart/GanttChart.vue.js +2 -2
- package/components/Chart/GanttChart.vue2.js +977 -812
- package/components/Chart/GanttChartConnectorRouting.d.ts +83 -0
- package/components/Chart/GanttChartConnectorRouting.js +405 -0
- package/components/Chart/GanttChartDependencyUtils.js +43 -47
- package/components/Chart/types.d.ts +16 -1
- package/components/ColorPicker/ColorIro.vue2.js +78 -64
- package/components/ColorPicker/ColorPicker.vue.d.ts +5 -0
- package/components/ColorPicker/ColorPicker.vue.js +110 -64
- package/components/ColorPicker/constants.d.ts +2 -0
- package/components/ColorPicker/constants.js +4 -0
- package/components/ColorPicker/index.d.ts +1 -0
- package/components/Dropdown/Dropdown.vue.js +100 -97
- package/components/ExportData/ExportData.vue.js +85 -63
- package/components/FilePreview/FilePreview.vue.js +31 -13
- package/components/Form/FormField.vue.js +9 -8
- package/components/ImportData/ImportStep1.vue.js +80 -75
- package/components/Kanban/Kanban.vue.d.ts +16 -2
- package/components/Kanban/Kanban.vue.js +2 -2
- package/components/Kanban/Kanban.vue2.js +150 -86
- package/components/Kanban/types.d.ts +37 -0
- package/components/QRCode/QRCode.vue.js +31 -26
- package/components/ToastNotification.vue.js +1 -1
- package/components/ToastNotification.vue2.js +3 -3
- package/components/index.d.ts +1 -1
- package/composables/useKeyStroke.d.ts +18 -0
- package/composables/useKeyStroke.js +103 -77
- package/composables/useTheme.js +1 -1
- package/directives/vScrollReveal.js +23 -18
- package/index.d.ts +1 -0
- package/index.js +235 -233
- package/package.json +11 -4
- package/style.css +1 -1
- package/utils/UtilsModuleInterop.d.ts +6 -0
- package/utils/UtilsModuleInterop.js +9 -0
- package/utils/environment.d.ts +29 -0
- package/utils/environment.js +4 -0
- package/utils/functions.js +14 -13
package/README.md
CHANGED
|
@@ -20,6 +20,13 @@ yarn add vlite3
|
|
|
20
20
|
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
+
### Server-side rendering
|
|
24
|
+
|
|
25
|
+
The package entry is safe to evaluate during Vue SSR. Browser-only export,
|
|
26
|
+
import, barcode, QR-code, and scroll-reveal runtimes are loaded lazily when
|
|
27
|
+
their client-side actions or lifecycle hooks run. SSR applications can import
|
|
28
|
+
VLite3 components normally without evaluating those dependencies on the server.
|
|
29
|
+
|
|
23
30
|
## 2. Tailwind CSS Setup (Tailwind v4)
|
|
24
31
|
|
|
25
32
|
`vite.config.ts`
|
package/components/Alert.vue.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import
|
|
3
|
-
import { $t as
|
|
4
|
-
const
|
|
1
|
+
import { defineComponent as $, useSlots as S, ref as T, computed as t, openBlock as r, createElementBlock as i, normalizeClass as n, renderSlot as v, createBlock as D, createCommentVNode as a, createElementVNode as f, toDisplayString as b, unref as E, createTextVNode as z, createVNode as A } from "vue";
|
|
2
|
+
import m from "./Icon.vue.js";
|
|
3
|
+
import { $t as y } from "../utils/i18n.js";
|
|
4
|
+
const O = ["role"], R = {
|
|
5
5
|
key: 1,
|
|
6
6
|
class: "text-sm opacity-90 [&_p]:leading-relaxed"
|
|
7
|
-
},
|
|
7
|
+
}, F = /* @__PURE__ */ $({
|
|
8
8
|
__name: "Alert",
|
|
9
9
|
props: {
|
|
10
10
|
title: {},
|
|
@@ -18,71 +18,76 @@ const D = ["role"], E = {
|
|
|
18
18
|
class: { default: "" }
|
|
19
19
|
},
|
|
20
20
|
emits: ["close"],
|
|
21
|
-
setup(s, { emit:
|
|
22
|
-
const e = s, x =
|
|
23
|
-
|
|
24
|
-
},
|
|
25
|
-
() => e.descriptionI18n ? m(e.descriptionI18n) : e.description
|
|
26
|
-
), k = t(() => ({
|
|
21
|
+
setup(s, { emit: x }) {
|
|
22
|
+
const e = s, h = x, c = S(), d = T(!0), k = () => {
|
|
23
|
+
d.value = !1, h("close");
|
|
24
|
+
}, g = t(() => e.titleI18n ? y(e.titleI18n) : e.title), u = t(() => e.descriptionI18n ? y(e.descriptionI18n) : e.description), w = t(() => ({
|
|
27
25
|
danger: "bg-danger-subtle text-danger-subtle-fg border-danger-subtle-border/20",
|
|
28
26
|
primary: "bg-primary-light text-primary-light-fg border-primary/10",
|
|
29
27
|
success: "bg-success-subtle text-success-subtle-fg border-success-subtle-border/20",
|
|
30
28
|
warning: "bg-warning-subtle text-warning-subtle-fg border-warning-subtle-border/20"
|
|
31
|
-
})[e.variant]),
|
|
29
|
+
})[e.variant]), C = t(() => ({
|
|
32
30
|
primary: "text-primary-light-fg!",
|
|
33
31
|
success: "text-success-subtle-fg!",
|
|
34
32
|
warning: "text-warning-subtle-fg!",
|
|
35
33
|
danger: "text-danger-subtle-fg!"
|
|
36
|
-
})[e.variant]),
|
|
37
|
-
"relative w-full rounded-lg border px-4
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
34
|
+
})[e.variant]), I = t(() => !!(e.icon || c.icon)), l = t(() => !u.value && !c.default), B = t(() => [
|
|
35
|
+
"relative w-full rounded-lg border px-4",
|
|
36
|
+
"[&>svg]:absolute [&>svg]:left-4 [&>svg]:text-foreground",
|
|
37
|
+
l.value ? "py-3" : "pt-4 pb-2",
|
|
38
|
+
l.value ? "[&>svg]:top-1/2 [&>svg]:-translate-y-1/2" : "[&>svg]:top-4 [&>svg+div]:translate-y-[-3px]",
|
|
39
|
+
w.value,
|
|
41
40
|
e.class
|
|
42
|
-
]
|
|
41
|
+
]), V = t(() => [
|
|
43
42
|
"font-medium leading-none tracking-tight text-inherit!",
|
|
44
|
-
|
|
45
|
-
]
|
|
46
|
-
return (
|
|
43
|
+
!l.value && "mb-1"
|
|
44
|
+
]), N = t(() => e.role ? e.role : ["danger", "warning"].includes(e.variant) ? "alert" : "status");
|
|
45
|
+
return (o, p) => d.value ? (r(), i("div", {
|
|
47
46
|
key: 0,
|
|
48
|
-
class:
|
|
49
|
-
role:
|
|
47
|
+
class: n(B.value),
|
|
48
|
+
role: N.value
|
|
50
49
|
}, [
|
|
51
|
-
|
|
52
|
-
s.icon ? (r(),
|
|
50
|
+
v(o.$slots, "icon", {}, () => [
|
|
51
|
+
s.icon ? (r(), D(m, {
|
|
53
52
|
key: 0,
|
|
54
53
|
icon: s.icon,
|
|
55
|
-
class:
|
|
54
|
+
class: n(["h-4 w-4", C.value])
|
|
56
55
|
}, null, 8, ["icon", "class"])) : a("", !0)
|
|
57
56
|
]),
|
|
58
|
-
|
|
59
|
-
class:
|
|
57
|
+
f("div", {
|
|
58
|
+
class: n({
|
|
59
|
+
"pl-7": I.value,
|
|
60
|
+
"pr-6": s.closable
|
|
61
|
+
})
|
|
60
62
|
}, [
|
|
61
|
-
|
|
63
|
+
g.value ? (r(), i("h5", {
|
|
62
64
|
key: 0,
|
|
63
|
-
class:
|
|
64
|
-
},
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
class: n(V.value)
|
|
66
|
+
}, b(g.value), 3)) : a("", !0),
|
|
67
|
+
u.value || E(c).default ? (r(), i("div", R, [
|
|
68
|
+
v(o.$slots, "default", {}, () => [
|
|
69
|
+
z(b(u.value), 1)
|
|
68
70
|
])
|
|
69
71
|
])) : a("", !0)
|
|
70
72
|
], 2),
|
|
71
73
|
s.closable ? (r(), i("button", {
|
|
72
74
|
key: 0,
|
|
73
75
|
type: "button",
|
|
74
|
-
|
|
75
|
-
|
|
76
|
+
class: n([
|
|
77
|
+
"absolute right-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
78
|
+
l.value ? "top-1/2 -translate-y-1/2" : "top-4"
|
|
79
|
+
]),
|
|
80
|
+
onClick: k
|
|
76
81
|
}, [
|
|
77
|
-
|
|
82
|
+
A(m, {
|
|
78
83
|
icon: "lucide:x",
|
|
79
84
|
class: "h-4 w-4"
|
|
80
85
|
}),
|
|
81
|
-
|
|
86
|
+
p[0] || (p[0] = f("span", { class: "sr-only" }, " Close ", -1))
|
|
82
87
|
], 2)) : a("", !0)
|
|
83
|
-
], 10,
|
|
88
|
+
], 10, O)) : a("", !0);
|
|
84
89
|
}
|
|
85
90
|
});
|
|
86
91
|
export {
|
|
87
|
-
|
|
92
|
+
F as default
|
|
88
93
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
const
|
|
1
|
+
import { defineComponent as p, ref as f, onMounted as h, watch as g, openBlock as i, createElementBlock as u, toDisplayString as w, createCommentVNode as b, withDirectives as y, vShow as x } from "vue";
|
|
2
|
+
import { barcodesConstants as _ } from "./types.js";
|
|
3
|
+
import { resolveModuleRuntime as C } from "../../utils/UtilsModuleInterop.js";
|
|
4
|
+
const k = { class: "inline-flex justify-center items-center max-w-full flex-col gap-2" }, B = {
|
|
5
5
|
key: 0,
|
|
6
6
|
class: "text-sm text-destructive px-4 py-2 bg-destructive/10 rounded-md border border-destructive/20 text-center whitespace-normal overflow-wrap-anywhere"
|
|
7
|
-
},
|
|
7
|
+
}, D = /* @__PURE__ */ p({
|
|
8
8
|
__name: "Barcode",
|
|
9
9
|
props: {
|
|
10
10
|
value: {},
|
|
@@ -16,16 +16,26 @@ const y = { class: "inline-flex justify-center items-center max-w-full flex-col
|
|
|
16
16
|
background: { default: "#ffffff" },
|
|
17
17
|
margin: { default: 10 }
|
|
18
18
|
},
|
|
19
|
-
setup(
|
|
20
|
-
const e =
|
|
21
|
-
|
|
19
|
+
setup(m) {
|
|
20
|
+
const e = m, o = f(null), r = f("");
|
|
21
|
+
let a = 0;
|
|
22
|
+
const s = async () => {
|
|
23
|
+
const n = ++a;
|
|
24
|
+
if (r.value = "", o.value && e.value) {
|
|
22
25
|
o.value.innerHTML = "";
|
|
23
26
|
try {
|
|
24
|
-
const t =
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
const t = await import("jsbarcode");
|
|
28
|
+
if (n !== a || !o.value) return;
|
|
29
|
+
const c = C(
|
|
30
|
+
t,
|
|
31
|
+
(l) => typeof l == "function"
|
|
32
|
+
);
|
|
33
|
+
if (!c) throw new Error("The barcode runtime is unavailable.");
|
|
34
|
+
const d = _.find(
|
|
35
|
+
(l) => l.value.toLowerCase() === e.format.toLowerCase()
|
|
36
|
+
), v = d ? d.value : e.format;
|
|
37
|
+
c(o.value, e.value, {
|
|
38
|
+
format: v,
|
|
29
39
|
displayValue: e.displayValue,
|
|
30
40
|
width: e.width,
|
|
31
41
|
height: e.height,
|
|
@@ -35,25 +45,28 @@ const y = { class: "inline-flex justify-center items-center max-w-full flex-col
|
|
|
35
45
|
margin: e.margin
|
|
36
46
|
});
|
|
37
47
|
} catch (t) {
|
|
38
|
-
|
|
48
|
+
if (n !== a) return;
|
|
49
|
+
console.error("Failed to generate barcode:", t), r.value = typeof t == "string" ? t : t?.message || "Invalid barcode value for this format";
|
|
39
50
|
}
|
|
40
51
|
}
|
|
41
52
|
};
|
|
42
|
-
return
|
|
43
|
-
|
|
44
|
-
}),
|
|
45
|
-
|
|
46
|
-
|
|
53
|
+
return h(() => {
|
|
54
|
+
s();
|
|
55
|
+
}), g(() => e, () => {
|
|
56
|
+
s();
|
|
57
|
+
}, { deep: !0 }), (n, t) => (i(), u("div", k, [
|
|
58
|
+
r.value ? (i(), u("div", B, w(r.value), 1)) : b("", !0),
|
|
59
|
+
y((i(), u("svg", {
|
|
47
60
|
ref_key: "barcodeRef",
|
|
48
61
|
ref: o,
|
|
49
62
|
class: "w-full h-auto max-w-full",
|
|
50
63
|
preserveAspectRatio: "xMidYMid meet"
|
|
51
64
|
}, null, 512)), [
|
|
52
|
-
[
|
|
65
|
+
[x, !r.value]
|
|
53
66
|
])
|
|
54
67
|
]));
|
|
55
68
|
}
|
|
56
69
|
});
|
|
57
70
|
export {
|
|
58
|
-
|
|
71
|
+
D as default
|
|
59
72
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent as
|
|
1
|
+
import { defineComponent as B, inject as F, computed as g, resolveComponent as K, openBlock as a, createBlock as f, unref as l, withCtx as P, createElementBlock as i, Fragment as R, renderList as L, isMemoSame as O, createElementVNode as y, normalizeClass as u, createVNode as s, createCommentVNode as c, withDirectives as k, withModifiers as q, withKeys as w, vModelText as _, toDisplayString as Q, vShow as G } from "vue";
|
|
2
2
|
import { VueDraggable as H } from "vue-draggable-plus";
|
|
3
3
|
import C from "../Icon.vue.js";
|
|
4
4
|
import m from "../Button.vue.js";
|
|
@@ -15,7 +15,7 @@ const J = { class: "flex items-center gap-px overflow-hidden flex-1" }, W = ["on
|
|
|
15
15
|
}, le = {
|
|
16
16
|
key: 1,
|
|
17
17
|
class: "flex items-center gap-1.5 py-1.5 px-2 bg-background border border-border shadow-sm rounded-lg w-full mb-1.5"
|
|
18
|
-
}, ne = ["placeholder"], ce = /* @__PURE__ */
|
|
18
|
+
}, ne = ["placeholder"], ce = /* @__PURE__ */ B({
|
|
19
19
|
__name: "CategoryNode",
|
|
20
20
|
props: {
|
|
21
21
|
modelValue: {},
|
|
@@ -23,24 +23,24 @@ const J = { class: "flex items-center gap-px overflow-hidden flex-1" }, W = ["on
|
|
|
23
23
|
},
|
|
24
24
|
emits: ["update:modelValue", "change", "dragEnd"],
|
|
25
25
|
setup(V, { emit: E }) {
|
|
26
|
-
const S = V, p = E, t =
|
|
26
|
+
const S = V, p = E, t = F("categoryManager"), b = g({
|
|
27
27
|
get: () => S.modelValue,
|
|
28
|
-
set: (
|
|
29
|
-
}), D = (
|
|
30
|
-
n.children =
|
|
31
|
-
}, U = () => p("change"), N = (
|
|
32
|
-
const n =
|
|
28
|
+
set: (d) => p("update:modelValue", d)
|
|
29
|
+
}), D = (d, n) => {
|
|
30
|
+
n.children = d, p("change");
|
|
31
|
+
}, U = () => p("change"), N = (d) => {
|
|
32
|
+
const n = d.item?.dataset?.id;
|
|
33
33
|
n && p("dragEnd", n);
|
|
34
|
-
}, v = g(() => t?.readonly.value || !1), r = g(() => t?.size.value || "md"), M = g(() => r.value === "sm" ? "p-1 md:p-1.5" : r.value === "lg" ? "p-2 md:p-2.5" : "py-1.5 px-2"),
|
|
34
|
+
}, v = g(() => t?.readonly.value || !1), r = g(() => t?.size.value || "md"), M = g(() => r.value === "sm" ? "p-1 md:p-1.5" : r.value === "lg" ? "p-2 md:p-2.5" : "py-1.5 px-2"), T = g(() => {
|
|
35
35
|
const n = S.level === 0 ? "font-semibold" : "font-medium";
|
|
36
36
|
return r.value === "sm" ? `text-xs ${n} text-foreground` : r.value === "lg" ? `-text-fs-1 ${n} text-foreground` : `text-sm ${n} text-foreground`;
|
|
37
37
|
}), h = g(() => r.value === "sm" ? "w-3.5 h-3.5" : r.value === "lg" ? "w-4.5 h-4.5" : "w-4 h-4"), j = {
|
|
38
|
-
mounted: (
|
|
39
|
-
setTimeout(() =>
|
|
38
|
+
mounted: (d) => {
|
|
39
|
+
setTimeout(() => d.focus(), 10);
|
|
40
40
|
}
|
|
41
41
|
};
|
|
42
|
-
return (
|
|
43
|
-
const
|
|
42
|
+
return (d, n) => {
|
|
43
|
+
const A = K("CategoryNode", !0);
|
|
44
44
|
return a(), f(l(H), {
|
|
45
45
|
modelValue: b.value,
|
|
46
46
|
"onUpdate:modelValue": n[11] || (n[11] = (e) => b.value = e),
|
|
@@ -52,9 +52,9 @@ const J = { class: "flex items-center gap-px overflow-hidden flex-1" }, W = ["on
|
|
|
52
52
|
class: "min-h-[2px]",
|
|
53
53
|
onEnd: N
|
|
54
54
|
}, {
|
|
55
|
-
default:
|
|
56
|
-
(a(!0),
|
|
57
|
-
const
|
|
55
|
+
default: P(() => [
|
|
56
|
+
(a(!0), i(R, null, L(b.value, (e, oe, ae, x) => {
|
|
57
|
+
const I = [
|
|
58
58
|
e.id,
|
|
59
59
|
e.title,
|
|
60
60
|
e.icon,
|
|
@@ -65,8 +65,8 @@ const J = { class: "flex items-center gap-px overflow-hidden flex-1" }, W = ["on
|
|
|
65
65
|
v.value,
|
|
66
66
|
r.value
|
|
67
67
|
];
|
|
68
|
-
if (x && x.key === e.id && O(x,
|
|
69
|
-
const $ = (a(),
|
|
68
|
+
if (x && x.key === e.id && O(x, I)) return x;
|
|
69
|
+
const $ = (a(), i("div", {
|
|
70
70
|
key: e.id,
|
|
71
71
|
"data-id": e.id,
|
|
72
72
|
class: "mb-1.5 flex flex-col"
|
|
@@ -78,7 +78,7 @@ const J = { class: "flex items-center gap-px overflow-hidden flex-1" }, W = ["on
|
|
|
78
78
|
])
|
|
79
79
|
}, [
|
|
80
80
|
y("div", J, [
|
|
81
|
-
e.children && e.children.length > 0 ? (a(),
|
|
81
|
+
e.children && e.children.length > 0 ? (a(), i("button", {
|
|
82
82
|
key: 0,
|
|
83
83
|
onClick: (o) => l(t)?.toggleExpand(e.id),
|
|
84
84
|
class: u([
|
|
@@ -92,7 +92,7 @@ const J = { class: "flex items-center gap-px overflow-hidden flex-1" }, W = ["on
|
|
|
92
92
|
}, null, 8, ["icon", "class"])
|
|
93
93
|
], 10, W)) : c("", !0),
|
|
94
94
|
y("div", X, [
|
|
95
|
-
v.value ? c("", !0) : (a(),
|
|
95
|
+
v.value ? c("", !0) : (a(), i("div", Y, [
|
|
96
96
|
s(C, {
|
|
97
97
|
icon: "lucide:grip-vertical",
|
|
98
98
|
class: u(h.value)
|
|
@@ -113,18 +113,18 @@ const J = { class: "flex items-center gap-px overflow-hidden flex-1" }, W = ["on
|
|
|
113
113
|
},
|
|
114
114
|
position: "bottom-start",
|
|
115
115
|
onOnSelect: (o) => {
|
|
116
|
-
|
|
116
|
+
e.icon = o, l(t)?.saveItem(e);
|
|
117
117
|
}
|
|
118
118
|
}, null, 8, ["value", "btn-props", "onOnSelect"])),
|
|
119
|
-
v.value ? (a(),
|
|
119
|
+
v.value ? (a(), i("span", {
|
|
120
120
|
key: 4,
|
|
121
|
-
class: u(["truncate",
|
|
122
|
-
}, Q(e.title), 3)) : k((a(),
|
|
121
|
+
class: u(["truncate", T.value])
|
|
122
|
+
}, Q(e.title), 3)) : k((a(), i("input", {
|
|
123
123
|
key: 3,
|
|
124
124
|
"onUpdate:modelValue": (o) => e.title = o,
|
|
125
125
|
class: u([
|
|
126
126
|
"bg-transparent border-0 outline-none focus:ring-0 px-1 py-0.5 -ml-1 transition-colors w-full truncate cursor-text min-w-0 shadow-none caret-primary",
|
|
127
|
-
|
|
127
|
+
T.value
|
|
128
128
|
]),
|
|
129
129
|
placeholder: l(t)?.categoryTitlePlaceholderText.value || "Category title...",
|
|
130
130
|
onChange: (o) => l(t)?.saveItem(e),
|
|
@@ -136,7 +136,7 @@ const J = { class: "flex items-center gap-px overflow-hidden flex-1" }, W = ["on
|
|
|
136
136
|
])
|
|
137
137
|
])
|
|
138
138
|
]),
|
|
139
|
-
v.value ? c("", !0) : (a(),
|
|
139
|
+
v.value ? c("", !0) : (a(), i("div", ee, [
|
|
140
140
|
s(m, {
|
|
141
141
|
variant: "ghost",
|
|
142
142
|
size: "xs",
|
|
@@ -164,8 +164,8 @@ const J = { class: "flex items-center gap-px overflow-hidden flex-1" }, W = ["on
|
|
|
164
164
|
}, null, 8, ["title", "onClick"])
|
|
165
165
|
]))
|
|
166
166
|
], 2),
|
|
167
|
-
e.children && e.children.length > 0 || l(t)?.inlineState.value.mode === "add-child" && l(t).inlineState.value.targetId === e.id ? k((a(),
|
|
168
|
-
e.children && e.children.length > 0 ? (a(), f(
|
|
167
|
+
e.children && e.children.length > 0 || l(t)?.inlineState.value.mode === "add-child" && l(t).inlineState.value.targetId === e.id ? k((a(), i("div", te, [
|
|
168
|
+
e.children && e.children.length > 0 ? (a(), f(A, {
|
|
169
169
|
key: 0,
|
|
170
170
|
modelValue: e.children,
|
|
171
171
|
"onUpdate:modelValue": (o) => D(o, e),
|
|
@@ -173,7 +173,7 @@ const J = { class: "flex items-center gap-px overflow-hidden flex-1" }, W = ["on
|
|
|
173
173
|
onChange: U,
|
|
174
174
|
onDragEnd: n[2] || (n[2] = (o) => p("dragEnd", o))
|
|
175
175
|
}, null, 8, ["modelValue", "onUpdate:modelValue", "level"])) : c("", !0),
|
|
176
|
-
l(t)?.inlineState.value.mode === "add-child" && l(t).inlineState.value.targetId === e.id ? (a(),
|
|
176
|
+
l(t)?.inlineState.value.mode === "add-child" && l(t).inlineState.value.targetId === e.id ? (a(), i("div", le, [
|
|
177
177
|
s(z, {
|
|
178
178
|
modelValue: l(t).inlineState.value.icon,
|
|
179
179
|
"onUpdate:modelValue": n[3] || (n[3] = (o) => l(t).inlineState.value.icon = o),
|
|
@@ -217,7 +217,7 @@ const J = { class: "flex items-center gap-px overflow-hidden flex-1" }, W = ["on
|
|
|
217
217
|
[G, l(t)?.expandedIds.value.has(e.id)]
|
|
218
218
|
]) : c("", !0)
|
|
219
219
|
], 8, ["data-id"]));
|
|
220
|
-
return $.memo =
|
|
220
|
+
return $.memo = I, $;
|
|
221
221
|
}, n, 9), 128))
|
|
222
222
|
]),
|
|
223
223
|
_: 1
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent as C, computed as
|
|
1
|
+
import { defineComponent as C, computed as o, markRaw as u, inject as B, openBlock as m, createElementBlock as D, createBlock as f, unref as E, normalizeClass as h, resolveDynamicComponent as S } from "vue";
|
|
2
2
|
import v from "./CategoryMenuVariant1.vue.js";
|
|
3
3
|
import k from "./CategoryMenuVariant2.vue.js";
|
|
4
4
|
import { CATEGORY_MENU_ROUTE_PREFIX_KEY as R, buildCategoryRoute as A } from "./utils.js";
|
|
@@ -42,9 +42,7 @@ const L = {
|
|
|
42
42
|
},
|
|
43
43
|
emits: ["select"],
|
|
44
44
|
setup(w, { emit: g }) {
|
|
45
|
-
const e = w, n = g,
|
|
46
|
-
console.log(l.value);
|
|
47
|
-
const x = i(() => {
|
|
45
|
+
const e = w, n = g, i = o(() => e.rawData && e.rawData.length > 0 ? j(e.rawData) : e.items || []), x = o(() => {
|
|
48
46
|
switch (e.variant) {
|
|
49
47
|
case "tabs":
|
|
50
48
|
return u(v);
|
|
@@ -53,13 +51,13 @@ const L = {
|
|
|
53
51
|
default:
|
|
54
52
|
return u(v);
|
|
55
53
|
}
|
|
56
|
-
}),
|
|
54
|
+
}), l = B(
|
|
57
55
|
R,
|
|
58
56
|
void 0
|
|
59
|
-
), s =
|
|
60
|
-
const a = typeof
|
|
57
|
+
), s = o(() => {
|
|
58
|
+
const a = typeof l == "object" && l && "value" in l ? l.value : l;
|
|
61
59
|
return String(e.routePrefix || a || "");
|
|
62
|
-
}), y =
|
|
60
|
+
}), y = o(() => {
|
|
63
61
|
if (e.variant !== "sidebar") return [];
|
|
64
62
|
const a = (t, d = []) => {
|
|
65
63
|
const c = t.children && t.children.length > 0 ? t.children.map((_) => a(_, [...d, t])) : void 0, p = !!c?.length;
|
|
@@ -73,7 +71,7 @@ const L = {
|
|
|
73
71
|
// Parent nodes are expanders in tree/sidebar mode; leaves select/navigate.
|
|
74
72
|
action: p ? void 0 : () => n("select", t)
|
|
75
73
|
};
|
|
76
|
-
}, r =
|
|
74
|
+
}, r = i.value.map((t) => a(t));
|
|
77
75
|
return e.showAllItem && r.unshift({
|
|
78
76
|
id: "all",
|
|
79
77
|
label: e.allItemLabel,
|
|
@@ -81,7 +79,7 @@ const L = {
|
|
|
81
79
|
icon: e.showIcons ? "lucide:layout-grid" : void 0,
|
|
82
80
|
action: () => n("select", { id: "all", title: e.allItemLabel })
|
|
83
81
|
}), r;
|
|
84
|
-
}), I = (a) => n("select", a), b =
|
|
82
|
+
}), I = (a) => n("select", a), b = o(() => !i.value || i.value.length === 0);
|
|
85
83
|
return (a, r) => b.value ? (m(), D("div", L, " No categories to display. ")) : e.variant === "sidebar" ? (m(), f(E(P), {
|
|
86
84
|
key: 1,
|
|
87
85
|
items: y.value,
|
|
@@ -90,7 +88,7 @@ const L = {
|
|
|
90
88
|
class: h(e.class)
|
|
91
89
|
}, null, 8, ["items", "allow-multiple", "default-expanded", "class"])) : (m(), f(S(x.value), {
|
|
92
90
|
key: 2,
|
|
93
|
-
items:
|
|
91
|
+
items: i.value,
|
|
94
92
|
"max-depth": e.maxDepth,
|
|
95
93
|
"show-icons": e.showIcons,
|
|
96
94
|
"show-all-item": e.showAllItem,
|
|
@@ -25,7 +25,11 @@ export interface GanttChartProps {
|
|
|
25
25
|
* new dependency. Independent of `showDependencies`.
|
|
26
26
|
*/
|
|
27
27
|
editableDependencies?: boolean;
|
|
28
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* When moving a task, dependents follow the bar as a visual preview only.
|
|
30
|
+
* Release still emits ONE root `task-update`; the parent owns the
|
|
31
|
+
* authoritative cascade and pushes final dates back via `tasks`.
|
|
32
|
+
*/
|
|
29
33
|
cascadeDependencies?: boolean;
|
|
30
34
|
zoom?: boolean;
|
|
31
35
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import t from "./GanttChart.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import o from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
-
const
|
|
4
|
+
const m = /* @__PURE__ */ o(t, [["__scopeId", "data-v-94a48eeb"]]);
|
|
5
5
|
export {
|
|
6
|
-
|
|
6
|
+
m as default
|
|
7
7
|
};
|