vlite3 0.4.6 → 0.4.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.
- package/components/Accordion/AccordionItem.vue.js +33 -32
- package/components/Accordion/types.d.ts +2 -0
- package/components/Alert.vue.d.ts +2 -0
- package/components/Alert.vue.js +38 -36
- package/components/AvatarUploader/AvatarUploader.vue.d.ts +1 -1
- package/components/AvatarUploader/AvatarUploader.vue.js +25 -24
- package/components/Button.vue.d.ts +1 -1
- package/components/Button.vue.js +37 -35
- package/components/CheckBox.vue.d.ts +1 -0
- package/components/CheckBox.vue.js +40 -40
- package/components/Chip/Chip.vue.js +55 -55
- package/components/Chip/types.d.ts +1 -0
- package/components/ChoiceBox/ChoiceBox.vue.d.ts +5 -0
- package/components/ChoiceBox/ChoiceBox.vue.js +61 -58
- package/components/ColorPicker/ColorPicker.vue.js +3 -2
- package/components/ConfirmationModal.vue.d.ts +4 -2
- package/components/ConfirmationModal.vue.js +48 -33
- package/components/DataList/DataList.vue.d.ts +0 -2
- package/components/DataList/DataList.vue.js +39 -35
- package/components/DataList/types.d.ts +2 -0
- package/components/DataTable/DataTable.vue.d.ts +0 -5
- package/components/DataTable/DataTable.vue.js +177 -158
- package/components/DataTable/DataTableHeader.vue.js +15 -14
- package/components/DataTable/DataTableToolbar.vue.d.ts +1 -1
- package/components/DataTable/DataTableToolbar.vue.js +30 -23
- package/components/DataTable/types.d.ts +4 -0
- package/components/DatePicker.vue.d.ts +1 -0
- package/components/DatePicker.vue.js +32 -25
- package/components/Dropdown/DropdownBooleanItem.vue.js +18 -17
- package/components/Dropdown/DropdownGroupedLayout.vue.js +28 -27
- package/components/Dropdown/DropdownItem.vue.js +24 -23
- package/components/Dropdown/DropdownMenu.vue.js +100 -91
- package/components/Dropdown/composables/useDropdownNavigation.js +24 -23
- package/components/Dropdown/composables/useDropdownSelection.js +19 -17
- package/components/Empty/Empty.vue.d.ts +2 -2
- package/components/Empty/Empty.vue.js +32 -18
- package/components/FilePicker/FilePicker.vue.d.ts +3 -1
- package/components/FilePicker/FilePicker.vue.js +140 -127
- package/components/FileTree/FileTree.vue.js +68 -58
- package/components/FileTree/FileTreeNode.vue.js +35 -34
- package/components/FileTree/types.d.ts +3 -0
- package/components/Form/CustomFields.vue.d.ts +3 -1
- package/components/Form/CustomFields.vue.js +2 -2
- package/components/Form/CustomFields.vue2.js +92 -80
- package/components/Form/Form.vue.d.ts +1 -1
- package/components/Form/FormField.vue.d.ts +1 -1
- package/components/Form/FormField.vue.js +60 -59
- package/components/Form/FormFields.vue.js +2 -2
- package/components/Form/FormFields.vue2.js +58 -57
- package/components/Form/composables/useForm.js +84 -79
- package/components/Form/types.d.ts +4 -0
- package/components/GoogleLogin.vue.d.ts +1 -1
- package/components/GoogleLogin.vue.js +39 -32
- package/components/Heatmap/Heatmap.vue2.js +3 -2
- package/components/IconPicker.vue.d.ts +2 -0
- package/components/IconPicker.vue.js +37 -29
- package/components/Input.vue.d.ts +1 -1
- package/components/Input.vue.js +96 -98
- package/components/Kanban/KanbanBoard.vue.js +1 -1
- package/components/Kanban/KanbanBoard.vue2.js +55 -54
- package/components/Kanban/types.d.ts +1 -0
- package/components/Masonry/Masonry.vue2.js +3 -2
- package/components/Modal.vue.d.ts +2 -0
- package/components/Modal.vue.js +62 -57
- package/components/MultiSelect/MultiSelect.vue.d.ts +1 -1
- package/components/MultiSelect/MultiSelect.vue.js +61 -54
- package/components/Navbar/Navbar.vue.js +46 -46
- package/components/Pagination/Pagination.vue.js +116 -97
- package/components/PricingPlan/PricingPlanItem.vue.js +60 -47
- package/components/PricingPlan/types.d.ts +5 -0
- package/components/Screen/Screen.vue.d.ts +0 -4
- package/components/Screen/Screen.vue.js +231 -189
- package/components/Screen/ScreenFilter.vue.js +73 -63
- package/components/Screen/types.d.ts +5 -0
- package/components/SidePanel.vue.d.ts +2 -0
- package/components/SidePanel.vue.js +140 -5
- package/components/SidePanel.vue2.js +2 -135
- package/components/SidebarMenu/SidebarMenuItem.vue.js +131 -130
- package/components/SidebarMenu/types.d.ts +1 -0
- package/components/Slider.vue.d.ts +1 -0
- package/components/Slider.vue.js +71 -69
- package/components/Switch.vue.d.ts +1 -0
- package/components/Switch.vue.js +23 -18
- package/components/Tabes/Tabes.vue.js +20 -19
- package/components/Tabes/types.d.ts +1 -0
- package/components/Textarea.vue.d.ts +1 -0
- package/components/Textarea.vue.js +18 -16
- package/components/ThemeToggle.vue.js +24 -14
- package/components/Timeline.vue.js +68 -82
- package/components/ToastNotification.vue.js +2 -2
- package/components/Tooltip.vue.d.ts +4 -3
- package/components/Tooltip.vue.js +17 -15
- package/components/Workbook/Sheet.vue.js +80 -71
- package/components/Workbook/WorkbookAddButton.vue.js +14 -10
- package/components/Workbook/types.d.ts +1 -0
- package/core/config.d.ts +2 -0
- package/index.d.ts +1 -0
- package/index.js +28 -26
- package/package.json +1 -1
- package/style.css +1 -2
- package/types/button.d.ts +1 -0
- package/types/config.type.d.ts +10 -0
- package/types/form.type.d.ts +2 -0
- package/types/styles.d.ts +3 -0
- package/types/timeline.type.d.ts +2 -0
- package/utils/i18n.d.ts +8 -0
- package/utils/i18n.js +5 -0
- package/utils/index.d.ts +1 -0
package/components/Input.vue.js
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
import { defineComponent as
|
|
1
|
+
import { defineComponent as O, computed as d, useSlots as Q, ref as g, onMounted as X, nextTick as F, openBlock as r, createElementBlock as u, normalizeClass as a, createBlock as k, withCtx as Y, createTextVNode as V, toDisplayString as B, createCommentVNode as c, createElementVNode as j, renderSlot as M, createVNode as p } from "vue";
|
|
2
2
|
import f from "./Icon.vue.js";
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
3
|
+
import Z from "./Label.vue.js";
|
|
4
|
+
import _ from "./Textarea.vue.js";
|
|
5
|
+
import { $t as N } from "../utils/i18n.js";
|
|
6
|
+
const ee = ["type", "value", "placeholder", "disabled", "min", "max"], ne = { class: "absolute right-3 top-1/2 -translate-y-1/2 flex items-center justify-center gap-2 z-20" }, ue = /* @__PURE__ */ O({
|
|
6
7
|
__name: "Input",
|
|
7
8
|
props: {
|
|
8
9
|
modelValue: { default: "" },
|
|
9
10
|
type: { default: "text" },
|
|
10
11
|
label: {},
|
|
12
|
+
labelI18n: {},
|
|
11
13
|
placeholder: {},
|
|
14
|
+
placeholderI18n: {},
|
|
12
15
|
disabled: { type: Boolean, default: !1 },
|
|
13
16
|
loading: { type: Boolean, default: !1 },
|
|
14
17
|
error: {},
|
|
@@ -32,16 +35,16 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
|
|
|
32
35
|
max: {}
|
|
33
36
|
},
|
|
34
37
|
emits: ["update:modelValue", "focus", "blur", "change", "click:icon", "click:icon-right"],
|
|
35
|
-
setup(n, { emit:
|
|
36
|
-
const e = n, s =
|
|
38
|
+
setup(n, { emit: T }) {
|
|
39
|
+
const e = n, s = T, x = d(() => e.labelI18n ? N(e.labelI18n) : e.label), z = d(() => e.placeholderI18n ? N(e.placeholderI18n) : e.placeholder), m = Q(), y = g(null), b = g(!1), E = d(() => e.type === "password" && b.value ? "text" : e.type), R = d(() => e.modelValue !== "" && e.modelValue !== null && e.modelValue !== void 0), v = d(() => !!e.addonLeft || !!m["addon-left"]), h = d(() => !!e.addonRight || !!m["addon-right"]), D = d(() => [
|
|
37
40
|
"relative w-full",
|
|
38
41
|
e.class,
|
|
39
42
|
e.labelPosition === "left" ? "flex items-center gap-4" : "",
|
|
40
43
|
e.labelPosition === "right" ? "flex flex-row-reverse items-center gap-4" : "space-y-2"
|
|
41
|
-
].join(" ")),
|
|
44
|
+
].join(" ")), H = d(() => ["relative flex w-full items-stretch", e.labelPosition !== "top" ? "flex-1" : ""].join(
|
|
42
45
|
" "
|
|
43
|
-
)),
|
|
44
|
-
const
|
|
46
|
+
)), $ = d(() => {
|
|
47
|
+
const o = "block w-full bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground/50 disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none relative focus:z-10", l = {
|
|
45
48
|
solid: "bg-muted border-transparent focus-visible:border-primary",
|
|
46
49
|
outline: "border border-input focus-visible:border-primary",
|
|
47
50
|
"outline-b": "border-b border-input bg-transparent rounded-none focus-visible:border-primary",
|
|
@@ -51,7 +54,7 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
|
|
|
51
54
|
md: "h-9 text-sm",
|
|
52
55
|
lg: "h-10 text-base"
|
|
53
56
|
};
|
|
54
|
-
let
|
|
57
|
+
let t = {
|
|
55
58
|
none: "rounded-none",
|
|
56
59
|
sm: "rounded-sm",
|
|
57
60
|
md: "rounded-md",
|
|
@@ -60,41 +63,36 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
|
|
|
60
63
|
"2xl": "rounded-2xl",
|
|
61
64
|
full: "rounded-full"
|
|
62
65
|
}[e.rounded];
|
|
63
|
-
|
|
64
|
-
const
|
|
66
|
+
v.value && (e.rounded === "md" ? t = "rounded-r-md rounded-l-none" : e.rounded === "sm" ? t = "rounded-r-sm rounded-l-none" : e.rounded === "lg" ? t = "rounded-r-lg rounded-l-none" : e.rounded === "full" ? t = "rounded-r-full rounded-l-none" : e.rounded !== "none" && (t = t.replace("rounded-", "rounded-r-").replace("rounded-l-", ""))), h.value && (v.value ? t = "rounded-none" : e.rounded === "md" ? t = "rounded-l-md rounded-r-none" : e.rounded === "sm" ? t = "rounded-l-sm rounded-r-none" : e.rounded === "lg" ? t = "rounded-l-lg rounded-r-none" : e.rounded === "full" ? t = "rounded-l-full rounded-r-none" : e.rounded !== "none" && (t = t.replace("rounded-", "rounded-l-").replace("rounded-r-", ""))), e.variant === "outline-b" && (t = "rounded-none");
|
|
67
|
+
const A = e.variant === "outline-b" || e.variant === "transparent";
|
|
65
68
|
return [
|
|
66
|
-
|
|
67
|
-
|
|
69
|
+
o,
|
|
70
|
+
l[e.variant],
|
|
68
71
|
i[e.size],
|
|
69
|
-
|
|
72
|
+
t,
|
|
70
73
|
e.error ? "border-destructive focus-visible:ring-destructive" : "",
|
|
71
|
-
e.icon ? "pl-9" :
|
|
72
|
-
e.showClearButton &&
|
|
74
|
+
e.icon ? "pl-9" : A && !v.value ? "pl-0" : "",
|
|
75
|
+
e.showClearButton && R.value || e.type === "password" || e.loading || e.iconRight ? "pr-9" : A && !h.value ? "pr-0" : "",
|
|
73
76
|
e.inputClass
|
|
74
77
|
].join(" ");
|
|
75
|
-
}),
|
|
78
|
+
}), I = {
|
|
76
79
|
sm: "text-xs",
|
|
77
80
|
md: "text-sm",
|
|
78
81
|
lg: "text-base"
|
|
79
|
-
},
|
|
80
|
-
const
|
|
82
|
+
}, L = (o) => {
|
|
83
|
+
const l = o === "left";
|
|
81
84
|
return [
|
|
82
|
-
// Ensure height matches
|
|
83
85
|
"[&_button]:w-full [&_a]:w-full! [&_.v-btn]:w-full! [&_.tooltip-trigger]:w-full",
|
|
84
|
-
|
|
85
|
-
o ? "[&_button]:rounded-r-none [&_a]:rounded-r-none [&_.v-btn]:rounded-r-none" : "[&_button]:rounded-l-none [&_a]:rounded-l-none [&_.v-btn]:rounded-l-none",
|
|
86
|
-
// Ensure focus ring appears on top
|
|
86
|
+
l ? "[&_button]:rounded-r-none [&_a]:rounded-r-none [&_.v-btn]:rounded-r-none" : "[&_button]:rounded-l-none [&_a]:rounded-l-none [&_.v-btn]:rounded-l-none",
|
|
87
87
|
"[&_button]:relative [&_button]:focus:z-20",
|
|
88
|
-
|
|
89
|
-
o ? "-mr-px" : "-ml-px",
|
|
88
|
+
l ? "-mr-px" : "-ml-px",
|
|
90
89
|
"z-10"
|
|
91
|
-
// Ensure addons sit visually above input border if needed
|
|
92
90
|
].join(" ");
|
|
93
|
-
},
|
|
94
|
-
const
|
|
91
|
+
}, U = d(() => {
|
|
92
|
+
const o = !!m["addon-left"];
|
|
95
93
|
return [
|
|
96
94
|
"flex items-center justify-center whitespace-nowrap",
|
|
97
|
-
|
|
95
|
+
o ? `border-none ${L("left")}` : `bg-muted border border-input border-r-0! px-3 text-muted-foreground ${{
|
|
98
96
|
sm: "rounded-l-sm",
|
|
99
97
|
md: "rounded-l-md",
|
|
100
98
|
lg: "rounded-l-lg",
|
|
@@ -103,15 +101,15 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
|
|
|
103
101
|
xl: "rounded-l-xl",
|
|
104
102
|
"2xl": "rounded-l-2xl"
|
|
105
103
|
}[e.rounded] || "rounded-l-md"}`,
|
|
106
|
-
|
|
104
|
+
o ? "" : I[e.size],
|
|
107
105
|
e.addonLeftClass,
|
|
108
106
|
e.disabled ? "opacity-50 cursor-not-allowed" : ""
|
|
109
107
|
].join(" ");
|
|
110
|
-
}),
|
|
111
|
-
const
|
|
108
|
+
}), W = d(() => {
|
|
109
|
+
const o = !!m["addon-right"];
|
|
112
110
|
return [
|
|
113
111
|
"flex items-center justify-center whitespace-nowrap",
|
|
114
|
-
|
|
112
|
+
o ? `border-none ${L("right")}` : `bg-muted border border-input border-l-0! px-3 text-muted-foreground ${{
|
|
115
113
|
sm: "rounded-r-sm",
|
|
116
114
|
md: "rounded-r-md",
|
|
117
115
|
lg: "rounded-r-lg",
|
|
@@ -120,87 +118,87 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
|
|
|
120
118
|
xl: "rounded-r-xl",
|
|
121
119
|
"2xl": "rounded-r-2xl"
|
|
122
120
|
}[e.rounded] || "rounded-r-md"}`,
|
|
123
|
-
|
|
121
|
+
o ? "" : I[e.size],
|
|
124
122
|
e.addonRightClass,
|
|
125
123
|
e.disabled ? "opacity-50 cursor-not-allowed" : ""
|
|
126
124
|
].join(" ");
|
|
127
|
-
}),
|
|
128
|
-
const
|
|
129
|
-
s("update:modelValue",
|
|
130
|
-
},
|
|
131
|
-
const
|
|
132
|
-
s("change",
|
|
133
|
-
},
|
|
125
|
+
}), q = (o) => {
|
|
126
|
+
const l = o.target;
|
|
127
|
+
s("update:modelValue", l.value);
|
|
128
|
+
}, G = (o) => {
|
|
129
|
+
const l = o.target;
|
|
130
|
+
s("change", l.value);
|
|
131
|
+
}, J = () => {
|
|
134
132
|
b.value = !b.value;
|
|
135
|
-
},
|
|
136
|
-
s("update:modelValue", ""),
|
|
133
|
+
}, K = () => {
|
|
134
|
+
s("update:modelValue", ""), F(() => {
|
|
137
135
|
y.value?.focus();
|
|
138
136
|
});
|
|
139
|
-
},
|
|
140
|
-
|
|
141
|
-
},
|
|
142
|
-
|
|
137
|
+
}, w = g(!1), C = g(!1), P = (o) => {
|
|
138
|
+
w.value = !0, s("focus", o);
|
|
139
|
+
}, S = (o) => {
|
|
140
|
+
w.value = !1, s("blur", o);
|
|
143
141
|
};
|
|
144
|
-
return
|
|
145
|
-
e.autofocus &&
|
|
142
|
+
return X(() => {
|
|
143
|
+
e.autofocus && F(() => {
|
|
146
144
|
y.value?.focus();
|
|
147
145
|
});
|
|
148
|
-
}), (
|
|
149
|
-
class: a(
|
|
146
|
+
}), (o, l) => (r(), u("div", {
|
|
147
|
+
class: a(D.value)
|
|
150
148
|
}, [
|
|
151
|
-
|
|
149
|
+
x.value ? (r(), k(Z, {
|
|
152
150
|
key: 0,
|
|
153
|
-
for:
|
|
151
|
+
for: x.value,
|
|
154
152
|
class: a(["mb-1.5", n.labelPosition !== "top" ? "mb-0" : ""].join(" "))
|
|
155
153
|
}, {
|
|
156
|
-
default:
|
|
157
|
-
|
|
154
|
+
default: Y(() => [
|
|
155
|
+
V(B(x.value), 1)
|
|
158
156
|
]),
|
|
159
157
|
_: 1
|
|
160
158
|
}, 8, ["for", "class"])) : c("", !0),
|
|
161
|
-
|
|
162
|
-
class: a(
|
|
159
|
+
j("div", {
|
|
160
|
+
class: a(H.value)
|
|
163
161
|
}, [
|
|
164
|
-
|
|
162
|
+
v.value ? (r(), u("div", {
|
|
165
163
|
key: 0,
|
|
166
|
-
class: a(
|
|
164
|
+
class: a(U.value)
|
|
167
165
|
}, [
|
|
168
|
-
|
|
169
|
-
|
|
166
|
+
M(o.$slots, "addon-left", {}, () => [
|
|
167
|
+
V(B(n.addonLeft), 1)
|
|
170
168
|
])
|
|
171
169
|
], 2)) : c("", !0),
|
|
172
|
-
|
|
170
|
+
j("div", {
|
|
173
171
|
class: "relative w-full",
|
|
174
|
-
onMouseenter:
|
|
175
|
-
onMouseleave:
|
|
172
|
+
onMouseenter: l[2] || (l[2] = (i) => C.value = !0),
|
|
173
|
+
onMouseleave: l[3] || (l[3] = (i) => C.value = !1)
|
|
176
174
|
}, [
|
|
177
|
-
n.type === "textarea" ? (
|
|
175
|
+
n.type === "textarea" ? (r(), k(_, {
|
|
178
176
|
key: 0,
|
|
179
177
|
"model-value": String(n.modelValue),
|
|
180
|
-
placeholder:
|
|
178
|
+
placeholder: z.value,
|
|
181
179
|
disabled: n.disabled,
|
|
182
180
|
rows: n.rows,
|
|
183
|
-
class: a(
|
|
184
|
-
"onUpdate:modelValue":
|
|
185
|
-
onBlur:
|
|
186
|
-
onFocus:
|
|
187
|
-
}, null, 8, ["model-value", "placeholder", "disabled", "rows", "class"])) : (
|
|
181
|
+
class: a($.value),
|
|
182
|
+
"onUpdate:modelValue": l[0] || (l[0] = (i) => s("update:modelValue", i)),
|
|
183
|
+
onBlur: S,
|
|
184
|
+
onFocus: P
|
|
185
|
+
}, null, 8, ["model-value", "placeholder", "disabled", "rows", "class"])) : (r(), u("input", {
|
|
188
186
|
key: 1,
|
|
189
187
|
ref_key: "inputRef",
|
|
190
188
|
ref: y,
|
|
191
|
-
type:
|
|
189
|
+
type: E.value,
|
|
192
190
|
value: n.modelValue,
|
|
193
|
-
placeholder:
|
|
191
|
+
placeholder: z.value,
|
|
194
192
|
disabled: n.disabled,
|
|
195
193
|
min: n.min,
|
|
196
194
|
max: n.max,
|
|
197
|
-
class: a(
|
|
198
|
-
onInput:
|
|
199
|
-
onChange:
|
|
200
|
-
onBlur:
|
|
201
|
-
onFocus:
|
|
202
|
-
}, null, 42,
|
|
203
|
-
n.icon ? (
|
|
195
|
+
class: a($.value),
|
|
196
|
+
onInput: q,
|
|
197
|
+
onChange: G,
|
|
198
|
+
onBlur: S,
|
|
199
|
+
onFocus: P
|
|
200
|
+
}, null, 42, ee)),
|
|
201
|
+
n.icon ? (r(), u("div", {
|
|
204
202
|
key: 2,
|
|
205
203
|
tabindex: "-1",
|
|
206
204
|
class: a([
|
|
@@ -208,62 +206,62 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
|
|
|
208
206
|
n.disabled ? "opacity-50" : ""
|
|
209
207
|
])
|
|
210
208
|
}, [
|
|
211
|
-
|
|
209
|
+
p(f, {
|
|
212
210
|
icon: n.icon,
|
|
213
211
|
class: "h-4 w-4"
|
|
214
212
|
}, null, 8, ["icon"])
|
|
215
213
|
], 2)) : c("", !0),
|
|
216
|
-
|
|
217
|
-
n.loading ? (
|
|
214
|
+
j("div", ne, [
|
|
215
|
+
n.loading ? (r(), k(f, {
|
|
218
216
|
key: 0,
|
|
219
217
|
icon: "lucide:loader-2",
|
|
220
218
|
class: "h-4 w-4 animate-spin text-muted-foreground"
|
|
221
|
-
})) : n.iconRight ? (
|
|
219
|
+
})) : n.iconRight ? (r(), u("div", {
|
|
222
220
|
key: 1,
|
|
223
221
|
tabindex: "-1",
|
|
224
222
|
class: a([
|
|
225
223
|
"flex items-center justify-center text-muted-foreground",
|
|
226
224
|
n.disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer hover:text-foreground"
|
|
227
225
|
]),
|
|
228
|
-
onClick:
|
|
226
|
+
onClick: l[1] || (l[1] = (i) => !n.disabled && s("click:icon-right", i))
|
|
229
227
|
}, [
|
|
230
|
-
|
|
228
|
+
p(f, {
|
|
231
229
|
icon: n.iconRight,
|
|
232
230
|
class: "h-4 w-4"
|
|
233
231
|
}, null, 8, ["icon"])
|
|
234
232
|
], 2)) : c("", !0),
|
|
235
|
-
n.type === "password" && !n.disabled ? (
|
|
233
|
+
n.type === "password" && !n.disabled ? (r(), u("button", {
|
|
236
234
|
key: 2,
|
|
237
235
|
type: "button",
|
|
238
236
|
tabindex: "-1",
|
|
239
237
|
class: "flex items-center justify-center text-muted-foreground hover:text-foreground focus:outline-none",
|
|
240
|
-
onClick:
|
|
238
|
+
onClick: J
|
|
241
239
|
}, [
|
|
242
|
-
|
|
240
|
+
p(f, {
|
|
243
241
|
icon: b.value ? "lucide:eye-off" : "lucide:eye",
|
|
244
242
|
class: "h-4 w-4"
|
|
245
243
|
}, null, 8, ["icon"])
|
|
246
244
|
])) : c("", !0),
|
|
247
|
-
n.showClearButton &&
|
|
245
|
+
n.showClearButton && R.value && !n.disabled && !n.loading && n.type !== "textarea" && n.type !== "password" && (w.value || C.value) ? (r(), u("button", {
|
|
248
246
|
key: 3,
|
|
249
247
|
type: "button",
|
|
250
248
|
tabindex: "-1",
|
|
251
249
|
class: "flex items-center justify-center text-muted-foreground hover:text-foreground focus:outline-none transition-opacity duration-200",
|
|
252
|
-
onClick:
|
|
250
|
+
onClick: K
|
|
253
251
|
}, [
|
|
254
|
-
|
|
252
|
+
p(f, {
|
|
255
253
|
icon: "lucide:x-circle",
|
|
256
254
|
class: "h-4 w-4"
|
|
257
255
|
})
|
|
258
256
|
])) : c("", !0)
|
|
259
257
|
])
|
|
260
258
|
], 32),
|
|
261
|
-
|
|
259
|
+
h.value ? (r(), u("div", {
|
|
262
260
|
key: 1,
|
|
263
|
-
class: a(
|
|
261
|
+
class: a(W.value)
|
|
264
262
|
}, [
|
|
265
|
-
|
|
266
|
-
|
|
263
|
+
M(o.$slots, "addon-right", {}, () => [
|
|
264
|
+
V(B(n.addonRight), 1)
|
|
267
265
|
])
|
|
268
266
|
], 2)) : c("", !0)
|
|
269
267
|
], 2)
|
|
@@ -271,5 +269,5 @@ const Y = ["type", "value", "placeholder", "disabled", "min", "max"], Z = { clas
|
|
|
271
269
|
}
|
|
272
270
|
});
|
|
273
271
|
export {
|
|
274
|
-
|
|
272
|
+
ue as default
|
|
275
273
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import o from "./KanbanBoard.vue2.js";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import a from "../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
-
const p = /* @__PURE__ */ a(o, [["__scopeId", "data-v-
|
|
4
|
+
const p = /* @__PURE__ */ a(o, [["__scopeId", "data-v-3849c10a"]]);
|
|
5
5
|
export {
|
|
6
6
|
p as default
|
|
7
7
|
};
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { VueDraggable as
|
|
3
|
-
import
|
|
4
|
-
import { useKanbanBoard as
|
|
5
|
-
|
|
1
|
+
import { defineComponent as K, ref as U, watch as E, onMounted as L, computed as M, openBlock as r, createElementBlock as d, normalizeClass as u, createElementVNode as n, renderSlot as m, unref as t, toDisplayString as f, Fragment as g, renderList as b, createVNode as h, withCtx as V, createCommentVNode as j } from "vue";
|
|
2
|
+
import { VueDraggable as z } from "vue-draggable-plus";
|
|
3
|
+
import F from "../Spinner/Spinner.vue.js";
|
|
4
|
+
import { useKanbanBoard as H } from "./useKanbanBoard.js";
|
|
5
|
+
import { $t as J } from "../../utils/i18n.js";
|
|
6
|
+
const O = { class: "flex items-center justify-between font-semibold text-foreground" }, T = {
|
|
6
7
|
key: 0,
|
|
7
8
|
class: "flex-1 flex flex-col gap-3 min-h-[50px] py-1"
|
|
8
|
-
},
|
|
9
|
+
}, A = { class: "bg-body p-3 rounded-md shadow-sm border border-border text-sm" }, R = {
|
|
9
10
|
key: 0,
|
|
10
11
|
class: "py-4 flex justify-center shrink-0"
|
|
11
|
-
},
|
|
12
|
+
}, X = /* @__PURE__ */ K({
|
|
12
13
|
__name: "KanbanBoard",
|
|
13
14
|
props: {
|
|
14
15
|
column: {},
|
|
@@ -23,112 +24,112 @@ const F = { class: "flex items-center justify-between font-semibold text-foregro
|
|
|
23
24
|
ghostClass: {}
|
|
24
25
|
},
|
|
25
26
|
emits: ["change", "update:columnData"],
|
|
26
|
-
setup(
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
),
|
|
32
|
-
a.value = e,
|
|
27
|
+
setup(l, { emit: p }) {
|
|
28
|
+
const o = l, c = p, v = U(null), { items: a, isInitialLoading: y, isLoadingMore: x, pageInfo: C, loadInitial: k, loadMore: D } = H(
|
|
29
|
+
o.column.id,
|
|
30
|
+
o.loadData,
|
|
31
|
+
o.columnData
|
|
32
|
+
), I = (e) => {
|
|
33
|
+
a.value = e, c("update:columnData", e);
|
|
33
34
|
};
|
|
34
|
-
|
|
35
|
-
() =>
|
|
35
|
+
E(
|
|
36
|
+
() => o.columnData,
|
|
36
37
|
(e) => {
|
|
37
38
|
e && JSON.stringify(e) !== JSON.stringify(a.value) && (a.value = [...e]);
|
|
38
39
|
},
|
|
39
40
|
{ deep: !0 }
|
|
40
|
-
),
|
|
41
|
-
|
|
41
|
+
), L(() => {
|
|
42
|
+
o.loadData && (!o.columnData || o.columnData.length === 0) && k();
|
|
42
43
|
});
|
|
43
|
-
const
|
|
44
|
-
const
|
|
45
|
-
|
|
44
|
+
const w = (e) => {
|
|
45
|
+
const i = e.target;
|
|
46
|
+
i.scrollTop + i.clientHeight >= i.scrollHeight - 50 && D();
|
|
46
47
|
}, S = (e) => {
|
|
47
|
-
|
|
48
|
-
}, N = (e) => {
|
|
49
|
-
i("change", { type: "remove", event: e, columnId: l.column.id });
|
|
48
|
+
c("change", { type: "add", event: e, columnId: o.column.id });
|
|
50
49
|
}, $ = (e) => {
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
|
|
50
|
+
c("change", { type: "remove", event: e, columnId: o.column.id });
|
|
51
|
+
}, N = (e) => {
|
|
52
|
+
c("change", { type: "update", event: e, columnId: o.column.id });
|
|
53
|
+
}, B = M(() => o.column.titleI18n ? J(o.column.titleI18n) : o.column.title);
|
|
54
|
+
return (e, i) => (r(), d("div", {
|
|
54
55
|
class: u([
|
|
55
56
|
"flex flex-col bg-card rounded-lg overflow-hidden shrink-0 border border-border/60",
|
|
56
|
-
|
|
57
|
+
l.boardClass || "w-80"
|
|
57
58
|
])
|
|
58
59
|
}, [
|
|
59
60
|
n("div", {
|
|
60
|
-
class: u(["p-3 border-b border-border/80 ",
|
|
61
|
+
class: u(["p-3 border-b border-border/80 ", l.headerClass])
|
|
61
62
|
}, [
|
|
62
63
|
m(e.$slots, "header", {
|
|
63
|
-
column:
|
|
64
|
+
column: l.column,
|
|
64
65
|
pageInfo: t(C)
|
|
65
66
|
}, () => [
|
|
66
|
-
n("div",
|
|
67
|
-
n("span", null, f(
|
|
67
|
+
n("div", O, [
|
|
68
|
+
n("span", null, f(B.value), 1)
|
|
68
69
|
])
|
|
69
70
|
], !0)
|
|
70
71
|
], 2),
|
|
71
72
|
n("div", {
|
|
72
73
|
ref_key: "scrollContainer",
|
|
73
|
-
ref:
|
|
74
|
-
class: u(["flex-1 flex flex-col overflow-y-auto p-3 custom-scrollbar",
|
|
75
|
-
onScroll:
|
|
74
|
+
ref: v,
|
|
75
|
+
class: u(["flex-1 flex flex-col overflow-y-auto p-3 custom-scrollbar", l.bodyClass]),
|
|
76
|
+
onScroll: w
|
|
76
77
|
}, [
|
|
77
|
-
t(y) && t(a).length === 0 ? (r(), d("div",
|
|
78
|
+
t(y) && t(a).length === 0 ? (r(), d("div", T, [
|
|
78
79
|
(r(), d(g, null, b(3, (s) => n("div", {
|
|
79
80
|
key: "skeleton-" + s,
|
|
80
81
|
class: "bg-body p-3 rounded-md shadow-sm border border-border animate-pulse flex flex-col gap-3"
|
|
81
|
-
}, [...
|
|
82
|
+
}, [...i[0] || (i[0] = [
|
|
82
83
|
n("div", { class: "h-4 bg-muted/60 rounded w-2/3" }, null, -1),
|
|
83
84
|
n("div", { class: "h-3 bg-muted/60 rounded w-1/3" }, null, -1)
|
|
84
85
|
])])), 64))
|
|
85
86
|
])) : (r(), d(g, { key: 1 }, [
|
|
86
87
|
m(e.$slots, "prepend-item", {
|
|
87
|
-
column:
|
|
88
|
+
column: l.column,
|
|
88
89
|
items: t(a)
|
|
89
90
|
}, void 0, !0),
|
|
90
|
-
h(t(
|
|
91
|
+
h(t(z), {
|
|
91
92
|
"model-value": t(a),
|
|
92
|
-
"onUpdate:modelValue":
|
|
93
|
-
group:
|
|
93
|
+
"onUpdate:modelValue": I,
|
|
94
|
+
group: l.group,
|
|
94
95
|
animation: 150,
|
|
95
|
-
ghostClass:
|
|
96
|
-
class: u(["flex-1 flex flex-col gap-2 min-h-[50px] py-1",
|
|
96
|
+
ghostClass: l.ghostClass || "kanban-ghost",
|
|
97
|
+
class: u(["flex-1 flex flex-col gap-2 min-h-[50px] py-1", l.draggableClass]),
|
|
97
98
|
onAdd: S,
|
|
98
|
-
onRemove:
|
|
99
|
-
onUpdate:
|
|
99
|
+
onRemove: $,
|
|
100
|
+
onUpdate: N
|
|
100
101
|
}, {
|
|
101
|
-
default:
|
|
102
|
+
default: V(() => [
|
|
102
103
|
(r(!0), d(g, null, b(t(a), (s) => (r(), d("div", {
|
|
103
|
-
key: s[
|
|
104
|
+
key: s[l.itemKey || "id"],
|
|
104
105
|
class: "cursor-grab active:cursor-grabbing"
|
|
105
106
|
}, [
|
|
106
107
|
m(e.$slots, "item", {
|
|
107
108
|
item: s,
|
|
108
|
-
column:
|
|
109
|
+
column: l.column
|
|
109
110
|
}, () => [
|
|
110
|
-
n("div",
|
|
111
|
+
n("div", A, f(s.title || s.name || s.id), 1)
|
|
111
112
|
], !0)
|
|
112
113
|
]))), 128))
|
|
113
114
|
]),
|
|
114
115
|
_: 3
|
|
115
116
|
}, 8, ["model-value", "group", "ghostClass", "class"]),
|
|
116
117
|
m(e.$slots, "append-item", {
|
|
117
|
-
column:
|
|
118
|
+
column: l.column,
|
|
118
119
|
items: t(a)
|
|
119
120
|
}, void 0, !0),
|
|
120
|
-
t(x) ? (r(), d("div",
|
|
121
|
-
h(
|
|
121
|
+
t(x) ? (r(), d("div", R, [
|
|
122
|
+
h(F, {
|
|
122
123
|
size: "sm",
|
|
123
124
|
variant: "dots",
|
|
124
125
|
color: "primary"
|
|
125
126
|
})
|
|
126
|
-
])) :
|
|
127
|
+
])) : j("", !0)
|
|
127
128
|
], 64))
|
|
128
129
|
], 34)
|
|
129
130
|
], 2));
|
|
130
131
|
}
|
|
131
132
|
});
|
|
132
133
|
export {
|
|
133
|
-
|
|
134
|
+
X as default
|
|
134
135
|
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { defineComponent as B, ref as d, computed as m, onMounted as K, onUnmounted as O, openBlock as u, createBlock as w, resolveDynamicComponent as z, normalizeStyle as v, withCtx as C, createElementBlock as c, Fragment as p, renderList as y, renderSlot as S } from "vue";
|
|
2
2
|
import { MASONRY_BREAKPOINTS as x } from "./types.js";
|
|
3
3
|
import { debounce as A } from "../../utils/functions.js";
|
|
4
|
-
|
|
4
|
+
import "../../core/config.js";
|
|
5
|
+
const k = /* @__PURE__ */ B({
|
|
5
6
|
__name: "Masonry",
|
|
6
7
|
props: {
|
|
7
8
|
data: {},
|
|
@@ -79,5 +80,5 @@ const j = /* @__PURE__ */ B({
|
|
|
79
80
|
}
|
|
80
81
|
});
|
|
81
82
|
export {
|
|
82
|
-
|
|
83
|
+
k as default
|
|
83
84
|
};
|
|
@@ -2,10 +2,12 @@ import { Component } from 'vue';
|
|
|
2
2
|
interface Props {
|
|
3
3
|
show?: boolean;
|
|
4
4
|
title?: string;
|
|
5
|
+
titleI18n?: string;
|
|
5
6
|
maxWidth?: string;
|
|
6
7
|
closeOutside?: boolean;
|
|
7
8
|
backdrop?: boolean;
|
|
8
9
|
description?: string;
|
|
10
|
+
descriptionI18n?: string;
|
|
9
11
|
triggerClass?: string;
|
|
10
12
|
bodyClass?: string;
|
|
11
13
|
headerClass?: string;
|