@wikicasa-dev/components 2.2.8-alpha.9 → 2.2.9-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Swiper/autoplay.js +1 -1
- package/dist/Swiper/controller.js +1 -1
- package/dist/Swiper/keyboard.js +1 -1
- package/dist/Swiper/thumbs.js +1 -1
- package/dist/UIKit/Autocomplete/ClearableAutocomplete.d.ts +18 -5
- package/dist/UIKit/BaseDropDown.d.ts +3 -0
- package/dist/UIKit/BaseFloatingLabel.js +4 -4
- package/dist/UIKit/BaseModal.d.ts +4 -0
- package/dist/UIKit/Checkbox/CheckboxBtn.d.ts +34 -38
- package/dist/UIKit/Checkbox/CheckboxBtn.js +3 -2
- package/dist/UIKit/Checkbox/CheckboxGroup.d.ts +6 -9
- package/dist/assets/BaseFloatingLabel.css +1 -1
- package/dist/assets/CheckboxBtn.css +1 -0
- package/dist/assets/tailwind.css +1 -1
- package/dist/components/carousel/SwiperCarousel.d.ts +8 -8
- package/dist/index.js +84 -83
- package/dist/packages/components/lib/UIKit/AccessibleSelect.vue.js +30 -31
- package/dist/packages/components/lib/UIKit/Autocomplete/ClearableAutocomplete.vue.js +98 -74
- package/dist/packages/components/lib/UIKit/BaseDropDown.vue.js +101 -96
- package/dist/packages/components/lib/UIKit/BaseFloatingLabel.vue.js +8 -8
- package/dist/packages/components/lib/UIKit/BaseModal.vue.js +11 -10
- package/dist/packages/components/lib/UIKit/Checkbox/CheckboxBtn.vue.js +3 -3
- package/dist/packages/components/lib/UIKit/Checkbox/CheckboxGroup.vue.js +42 -39
- package/package.json +3 -3
- /package/dist/assets/{swiper-autoplay.css → swiper-thumbs.css} +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import
|
|
3
|
-
import { ArrowIcon as
|
|
4
|
-
import { useKeyboardController as
|
|
5
|
-
const
|
|
1
|
+
import { defineComponent as N, mergeModels as D, useId as R, useModel as E, shallowRef as x, computed as V, useTemplateRef as I, onMounted as z, onUnmounted as q, watch as l, nextTick as U, createElementBlock as j, openBlock as f, normalizeClass as i, renderSlot as K, createBlock as B, createVNode as F, unref as r, withCtx as L, createElementVNode as G, createCommentVNode as J, resolveDynamicComponent as P } from "vue";
|
|
2
|
+
import Q from "./BaseButton.vue.js";
|
|
3
|
+
import { ArrowIcon as X } from "@wikicasa-dev/svg-icons";
|
|
4
|
+
import { useKeyboardController as Y } from "@wikicasa-dev/vue-composables";
|
|
5
|
+
const Z = ["innerHTML"], le = /* @__PURE__ */ N({
|
|
6
6
|
inheritAttrs: !1,
|
|
7
7
|
__name: "BaseDropDown",
|
|
8
|
-
props: /* @__PURE__ */
|
|
8
|
+
props: /* @__PURE__ */ D({
|
|
9
9
|
dropdownClasses: { default: "" },
|
|
10
10
|
btnClasses: { default: "" },
|
|
11
11
|
withArrowIcon: { type: Boolean, default: !1 },
|
|
@@ -27,124 +27,129 @@ const Q = ["innerHTML"], te = /* @__PURE__ */ L({
|
|
|
27
27
|
resetKeyboardController: { type: Boolean, default: !1 },
|
|
28
28
|
resetKeyboardControllerModifiers: {}
|
|
29
29
|
}),
|
|
30
|
-
emits: /* @__PURE__ */
|
|
31
|
-
setup(
|
|
32
|
-
const
|
|
33
|
-
|
|
30
|
+
emits: /* @__PURE__ */ D(["click", "update:dropdownState"], ["update:toggleDropdown", "update:resetKeyboardController"]),
|
|
31
|
+
setup(o, { expose: S, emit: A }) {
|
|
32
|
+
const n = o, k = R(), v = A, w = E(o, "toggleDropdown"), m = E(
|
|
33
|
+
o,
|
|
34
34
|
"resetKeyboardController"
|
|
35
|
-
)
|
|
35
|
+
);
|
|
36
|
+
let p = !1;
|
|
37
|
+
const t = x(!1), u = x([]), M = V(() => u.value.length), s = I("container"), y = I("dropdown"), { activeIdx: d, selectedIdx: a, onKeyDownHandler: O } = Y({
|
|
36
38
|
optionsLength: M,
|
|
37
|
-
isDropdownOpen:
|
|
38
|
-
|
|
39
|
-
})
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
isDropdownOpen: t,
|
|
40
|
+
global: !1
|
|
41
|
+
}), W = () => {
|
|
42
|
+
t.value = !1;
|
|
43
|
+
}, b = ({ target: e }) => {
|
|
44
|
+
s.value?.contains(e) || W();
|
|
45
|
+
}, h = (e) => {
|
|
46
|
+
t.value && s.value?.contains(document.activeElement) && e.key === "Tab" && (t.value = !1);
|
|
47
|
+
}, $ = (e) => {
|
|
48
|
+
n.activateKeyboardController && O(e);
|
|
49
|
+
}, c = () => {
|
|
50
|
+
n.keepState === "closed" && !t.value || n.keepState === "opened" && t.value || (t.value = !t.value);
|
|
51
|
+
}, T = (e) => {
|
|
52
|
+
e != null && (d.value = e);
|
|
53
|
+
}, H = (e) => {
|
|
54
|
+
e != null && (a.value = e);
|
|
55
|
+
}, C = () => {
|
|
56
|
+
y.value && (u.value = Array.from(y.value.children));
|
|
57
|
+
};
|
|
58
|
+
return z(() => {
|
|
59
|
+
C();
|
|
60
|
+
}), q(() => {
|
|
61
|
+
n.closeWhenClickedOutside && (document.removeEventListener("click", b), document.removeEventListener("keydown", h));
|
|
62
|
+
}), l(m, (e) => {
|
|
63
|
+
e && (d.value = -1, a.value = -1, U(() => {
|
|
64
|
+
C(), m.value = !1;
|
|
65
|
+
}));
|
|
66
|
+
}), l(
|
|
67
|
+
() => n.openDropdown,
|
|
42
68
|
(e) => {
|
|
43
|
-
|
|
69
|
+
t.value = e;
|
|
44
70
|
},
|
|
45
71
|
{
|
|
46
72
|
immediate: !0
|
|
47
73
|
}
|
|
48
|
-
),
|
|
49
|
-
|
|
50
|
-
}),
|
|
51
|
-
e
|
|
52
|
-
}),
|
|
53
|
-
e
|
|
54
|
-
})
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
H(() => {
|
|
65
|
-
l.closeWhenClickedOutside && document.body.addEventListener("click", b);
|
|
66
|
-
});
|
|
67
|
-
const y = () => {
|
|
68
|
-
p.value && (s.value = Array.from(p.value.children));
|
|
69
|
-
};
|
|
70
|
-
return N(() => {
|
|
71
|
-
y();
|
|
72
|
-
}), V(() => {
|
|
73
|
-
l.closeWhenClickedOutside && document.body.removeEventListener("click", b);
|
|
74
|
-
}), a(m, (e) => {
|
|
75
|
-
e && (r.value = -1, i.value = -1, R(() => {
|
|
76
|
-
y(), m.value = !1;
|
|
77
|
-
}));
|
|
78
|
-
}), I({
|
|
79
|
-
activeIdx: r,
|
|
80
|
-
selectedIdx: i
|
|
81
|
-
}), (e, u) => (f(), q("div", {
|
|
82
|
-
class: n(["uikit-relative uikit-block", e.$attrs.class]),
|
|
83
|
-
onClick: u[1] || (u[1] = g((X) => {
|
|
84
|
-
w("click"), c();
|
|
85
|
-
}, ["stop"]))
|
|
74
|
+
), l(t, (e) => {
|
|
75
|
+
v("update:dropdownState", e);
|
|
76
|
+
}), l(t, (e) => {
|
|
77
|
+
!e || p || !n.closeWhenClickedOutside || (document.addEventListener("click", b), document.addEventListener("keydown", h), p = !0);
|
|
78
|
+
}), l(w, (e) => {
|
|
79
|
+
e && (t.value = !t.value, w.value = !1);
|
|
80
|
+
}), l(a, (e) => {
|
|
81
|
+
e !== -1 && u.value[e].querySelector("a")?.click();
|
|
82
|
+
}), S({
|
|
83
|
+
activeIdx: d,
|
|
84
|
+
selectedIdx: a,
|
|
85
|
+
getRootElement: () => s.value
|
|
86
|
+
}), (e, g) => (f(), j("div", {
|
|
87
|
+
ref: "container",
|
|
88
|
+
class: i(["uikit-relative uikit-block", e.$attrs.class]),
|
|
89
|
+
onKeydown: $
|
|
86
90
|
}, [
|
|
87
|
-
|
|
91
|
+
K(e.$slots, "btn_slot", {
|
|
88
92
|
toggleDropdown: c,
|
|
89
|
-
isOpen:
|
|
93
|
+
isOpen: t.value
|
|
90
94
|
}, () => [
|
|
91
|
-
|
|
92
|
-
id:
|
|
95
|
+
F(Q, {
|
|
96
|
+
id: r(k),
|
|
93
97
|
type: "button",
|
|
94
|
-
"data-cy":
|
|
95
|
-
class:
|
|
98
|
+
"data-cy": o.dataCy,
|
|
99
|
+
class: i([
|
|
96
100
|
"!uikit-flex uikit-w-full uikit-items-center uikit-truncate",
|
|
97
|
-
|
|
101
|
+
o.btnClasses
|
|
98
102
|
]),
|
|
99
|
-
"aria-expanded":
|
|
100
|
-
"btn-class": "uikit-btn-single-selection"
|
|
103
|
+
"aria-expanded": t.value,
|
|
104
|
+
"btn-class": "uikit-btn-single-selection",
|
|
105
|
+
onClick: g[0] || (g[0] = (_) => {
|
|
106
|
+
v("click"), c();
|
|
107
|
+
})
|
|
101
108
|
}, {
|
|
102
|
-
default:
|
|
103
|
-
|
|
104
|
-
class:
|
|
105
|
-
innerHTML:
|
|
106
|
-
}, null, 10,
|
|
107
|
-
|
|
109
|
+
default: L(() => [
|
|
110
|
+
G("span", {
|
|
111
|
+
class: i(["uikit-mr-5px", o.labelClasses]),
|
|
112
|
+
innerHTML: o.btnLabel
|
|
113
|
+
}, null, 10, Z),
|
|
114
|
+
o.withArrowIcon ? (f(), B(r(X), {
|
|
108
115
|
key: 0,
|
|
109
|
-
class:
|
|
110
|
-
width:
|
|
111
|
-
height:
|
|
112
|
-
"stroke-color":
|
|
113
|
-
}, null, 8, ["class", "width", "height", "stroke-color"])) :
|
|
116
|
+
class: i(["uikit-shrink-0 uikit-transition-transform motion-reduce:uikit-transition-none", t.value ? "uikit-rotate-180" : ""]),
|
|
117
|
+
width: o.arrowWidth,
|
|
118
|
+
height: o.arrowWidth,
|
|
119
|
+
"stroke-color": o.arrowStrokeColor
|
|
120
|
+
}, null, 8, ["class", "width", "height", "stroke-color"])) : J("", !0)
|
|
114
121
|
]),
|
|
115
122
|
_: 1
|
|
116
123
|
}, 8, ["id", "data-cy", "class", "aria-expanded"])
|
|
117
124
|
]),
|
|
118
|
-
(f(),
|
|
119
|
-
id: "dropdown_" +
|
|
125
|
+
(f(), B(P(o.dropdownElement), {
|
|
126
|
+
id: "dropdown_" + r(k),
|
|
120
127
|
ref: "dropdown",
|
|
121
|
-
"data-cy":
|
|
122
|
-
class:
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
{ "uikit-bottom-[55px] uikit-rounded-xs":
|
|
126
|
-
{ "uikit-rounded-b uikit-border-t-0":
|
|
127
|
-
{ "uikit-absolute":
|
|
128
|
+
"data-cy": o.dataCy && `${o.dataCy}_dropdown`,
|
|
129
|
+
class: i(["uikit-dropdown-content uikit-w-full uikit-flex-col uikit-overflow-y-auto uikit-border uikit-border-solid uikit-bg-white uikit-pl-0 uikit-opacity-100 uikit-shadow uikit-no-scrollbar", [
|
|
130
|
+
o.dropdownClasses,
|
|
131
|
+
t.value ? "uikit-flex" : "uikit-hidden",
|
|
132
|
+
{ "uikit-bottom-[55px] uikit-rounded-xs": o.direction === "up" },
|
|
133
|
+
{ "uikit-rounded-b uikit-border-t-0": o.direction === "down" },
|
|
134
|
+
{ "uikit-absolute": o.isAbsolute }
|
|
128
135
|
]]),
|
|
129
|
-
"aria-hidden": !
|
|
130
|
-
onClick: u[0] || (u[0] = g(() => {
|
|
131
|
-
}, ["stop"]))
|
|
136
|
+
"aria-hidden": !t.value
|
|
132
137
|
}, {
|
|
133
|
-
default:
|
|
134
|
-
|
|
135
|
-
isOpen:
|
|
138
|
+
default: L(() => [
|
|
139
|
+
K(e.$slots, "default", {
|
|
140
|
+
isOpen: t.value,
|
|
136
141
|
toggleDropdown: c,
|
|
137
|
-
activeIdx: d
|
|
138
|
-
selectedIdx:
|
|
139
|
-
setActiveIdx:
|
|
140
|
-
setSelectedIdx:
|
|
142
|
+
activeIdx: r(d),
|
|
143
|
+
selectedIdx: r(a),
|
|
144
|
+
setActiveIdx: T,
|
|
145
|
+
setSelectedIdx: H
|
|
141
146
|
})
|
|
142
147
|
]),
|
|
143
148
|
_: 3
|
|
144
149
|
}, 8, ["id", "data-cy", "class", "aria-hidden"]))
|
|
145
|
-
],
|
|
150
|
+
], 34));
|
|
146
151
|
}
|
|
147
152
|
});
|
|
148
153
|
export {
|
|
149
|
-
|
|
154
|
+
le as default
|
|
150
155
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent as d, createElementBlock as a, openBlock as s, withModifiers as
|
|
1
|
+
import { defineComponent as d, createElementBlock as a, openBlock as s, withModifiers as u, normalizeClass as t, createElementVNode as r, createCommentVNode as k } from "vue";
|
|
2
2
|
const b = ["for"], c = ["innerHTML"], x = /* @__PURE__ */ d({
|
|
3
3
|
__name: "BaseFloatingLabel",
|
|
4
4
|
props: {
|
|
@@ -11,14 +11,14 @@ const b = ["for"], c = ["innerHTML"], x = /* @__PURE__ */ d({
|
|
|
11
11
|
},
|
|
12
12
|
emits: ["click"],
|
|
13
13
|
setup(e, { emit: n }) {
|
|
14
|
-
const
|
|
14
|
+
const o = n;
|
|
15
15
|
return (i, l) => (s(), a("label", {
|
|
16
16
|
for: i.$attrs.for,
|
|
17
|
-
class: t(["uikit-pointer-events-none uikit-absolute uikit-left-15px uikit-h-5
|
|
18
|
-
onClick: l[0] || (l[0] =
|
|
17
|
+
class: t(["uikit-pointer-events-none uikit-absolute uikit-left-15px uikit-h-5", [e.labelState, { "uikit-text-w-secondary": e.disabled }, e.labelClasses]]),
|
|
18
|
+
onClick: l[0] || (l[0] = u((f) => o("click"), ["stop"]))
|
|
19
19
|
}, [
|
|
20
|
-
|
|
21
|
-
class: t(["uikit-
|
|
20
|
+
r("span", {
|
|
21
|
+
class: t(["uikit-font-medium [font-size:inherit]", [
|
|
22
22
|
e.disabled ? "uikit-text-w-secondary" : "uikit-text-w-black",
|
|
23
23
|
e.labelTextClasses
|
|
24
24
|
]]),
|
|
@@ -26,12 +26,12 @@ const b = ["for"], c = ["innerHTML"], x = /* @__PURE__ */ d({
|
|
|
26
26
|
}, null, 10, c),
|
|
27
27
|
i.$attrs.required ? (s(), a("sup", {
|
|
28
28
|
key: 0,
|
|
29
|
-
class: t(["uikit-absolute -uikit-top-[0.3rem]
|
|
29
|
+
class: t(["uikit-absolute -uikit-top-[0.3rem] [font-size:inherit]", [
|
|
30
30
|
{ "uikit-text-w-secondary": e.disabled },
|
|
31
31
|
{ "uikit-text-w-danger": e.isValid === !1 },
|
|
32
32
|
{ "uikit-text-w-primary": (e.isValid || e.isValid === null) && !e.disabled }
|
|
33
33
|
]])
|
|
34
|
-
}, " *", 2)) :
|
|
34
|
+
}, " *", 2)) : k("", !0)
|
|
35
35
|
], 10, b));
|
|
36
36
|
}
|
|
37
37
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { defineComponent as
|
|
1
|
+
import { defineComponent as I, ref as n, useTemplateRef as T, onUnmounted as z, watch as H, createBlock as O, openBlock as r, Teleport as $, createElementVNode as l, normalizeClass as s, withModifiers as y, createElementBlock as h, createCommentVNode as w, renderSlot as d, createVNode as D, unref as K, nextTick as N } from "vue";
|
|
2
2
|
import { isWindows as C, awaitableSetTimeout as S } from "@wikicasa-dev/utilities";
|
|
3
3
|
import { CloseIcon as V } from "@wikicasa-dev/svg-icons";
|
|
4
|
-
const F = ["id", "data-cy"], U = ["innerHTML"], R = /* @__PURE__ */
|
|
4
|
+
const F = ["id", "data-cy"], U = ["innerHTML"], R = /* @__PURE__ */ I({
|
|
5
5
|
__name: "BaseModal",
|
|
6
6
|
props: {
|
|
7
7
|
id: { default: "base-bt-modal" },
|
|
@@ -11,6 +11,7 @@ const F = ["id", "data-cy"], U = ["innerHTML"], R = /* @__PURE__ */ T({
|
|
|
11
11
|
customModalHeaderClasses: {},
|
|
12
12
|
customModalBodyClasses: {},
|
|
13
13
|
customModalFooterClasses: {},
|
|
14
|
+
closeIcon: {},
|
|
14
15
|
withCloseIcon: { type: Boolean, default: !0 },
|
|
15
16
|
showModal: { type: Boolean, default: !0 },
|
|
16
17
|
headerTitle: { default: "" },
|
|
@@ -24,7 +25,7 @@ const F = ["id", "data-cy"], U = ["innerHTML"], R = /* @__PURE__ */ T({
|
|
|
24
25
|
},
|
|
25
26
|
emits: ["closed", "opened", "dialogClick"],
|
|
26
27
|
setup(e, { emit: g }) {
|
|
27
|
-
const c = g, i = n(!1), m = n(null), a =
|
|
28
|
+
const c = g, i = n(!1), m = n(null), a = T("modalDialog"), k = n(!1), u = n(!1), f = ({ key: t }) => {
|
|
28
29
|
t === "Escape" && o();
|
|
29
30
|
}, x = () => {
|
|
30
31
|
document?.body.addEventListener("keydown", f);
|
|
@@ -53,9 +54,9 @@ const F = ["id", "data-cy"], U = ["innerHTML"], R = /* @__PURE__ */ T({
|
|
|
53
54
|
m.value?.classList.add("uikit-hidden"), c("closed");
|
|
54
55
|
}, 250);
|
|
55
56
|
};
|
|
56
|
-
return
|
|
57
|
+
return z(() => {
|
|
57
58
|
b(), document?.documentElement.classList.remove("uikit-no-scrolling"), C() ? document?.body.classList.remove("uikit-no-scrolling", "sm:uikit-pr-15px") : document?.body.classList.remove("uikit-no-scrolling");
|
|
58
|
-
}),
|
|
59
|
+
}), H(
|
|
59
60
|
() => e.showModal,
|
|
60
61
|
async (t) => {
|
|
61
62
|
!t && !i.value ? k.value = !0 : k.value = !1, t && !i.value && await p(), !t && i.value && await o(), i.value = t;
|
|
@@ -102,16 +103,16 @@ const F = ["id", "data-cy"], U = ["innerHTML"], R = /* @__PURE__ */ T({
|
|
|
102
103
|
key: 0,
|
|
103
104
|
id: "close-icon-btn",
|
|
104
105
|
"data-cy": "bbt-default-close-icon-btn",
|
|
105
|
-
class: s(["uikit-absolute uikit-right-15px uikit-top-15px uikit-z-10 uikit-bg-transparent", e.closeIconBtnClasses]),
|
|
106
|
+
class: s(["uikit-absolute uikit-right-15px uikit-top-15px uikit-z-10 uikit-bg-transparent uikit-p-5px", e.closeIconBtnClasses]),
|
|
106
107
|
type: "button",
|
|
107
108
|
"aria-label": "Close",
|
|
108
109
|
onClick: y(o, ["prevent", "stop"])
|
|
109
110
|
}, [
|
|
110
111
|
D(K(V), {
|
|
111
|
-
class: "bbt-close-icon uikit-box-border
|
|
112
|
-
width: 30,
|
|
113
|
-
height: 30
|
|
114
|
-
})
|
|
112
|
+
class: s(["bbt-close-icon uikit-box-border", e.closeIcon?.classes]),
|
|
113
|
+
width: e.closeIcon?.size || 30,
|
|
114
|
+
height: e.closeIcon?.size || 30
|
|
115
|
+
}, null, 8, ["class", "width", "height"])
|
|
115
116
|
], 2)) : w("", !0),
|
|
116
117
|
d(t.$slots, "header", { closeModal: o }, () => [
|
|
117
118
|
l("span", {
|
|
@@ -14,7 +14,7 @@ const N = ["for"], j = /* @__PURE__ */ m({
|
|
|
14
14
|
label: { default: "" },
|
|
15
15
|
modelValue: { type: Boolean, default: !1 }
|
|
16
16
|
},
|
|
17
|
-
emits: ["click", "
|
|
17
|
+
emits: ["click", "update:modelValue", "change"],
|
|
18
18
|
setup(e, { emit: r }) {
|
|
19
19
|
const l = f(), d = h(() => `${e.id ?? l}`), a = r;
|
|
20
20
|
b(
|
|
@@ -31,7 +31,7 @@ const N = ["for"], j = /* @__PURE__ */ m({
|
|
|
31
31
|
}), a("update:modelValue", t));
|
|
32
32
|
};
|
|
33
33
|
return (t, o) => (u(), C("label", {
|
|
34
|
-
class: "uikit-flex uikit-items-center uikit-gap-[12px]
|
|
34
|
+
class: "uikit-checkbox-btn uikit-flex uikit-items-center uikit-gap-[12px]",
|
|
35
35
|
for: d.value,
|
|
36
36
|
onClick: o[0] || (o[0] = (s) => a("click", s))
|
|
37
37
|
}, [
|
|
@@ -40,7 +40,7 @@ const N = ["for"], j = /* @__PURE__ */ m({
|
|
|
40
40
|
"model-value": e.modelValue,
|
|
41
41
|
"data-cy": e.dataCy,
|
|
42
42
|
disabled: e.disabled,
|
|
43
|
-
class: y(["
|
|
43
|
+
class: y(["uikit-inline-flex uikit-size-[20px] uikit-items-center uikit-justify-center uikit-rounded-[4px] uikit-p-0 data-[state='unchecked']:uikit-border data-[state='unchecked']:uikit-border-solid data-[state='unchecked']:uikit-border-w-lightgray", [
|
|
44
44
|
{
|
|
45
45
|
"uikit-bg-white": !e.modelValue,
|
|
46
46
|
"uikit-bg-w-primary": e.modelValue
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { stringToHyphened as
|
|
3
|
-
import
|
|
4
|
-
|
|
1
|
+
import { defineComponent as p, ref as v, computed as h, watch as D, renderSlot as b, createElementVNode as E, normalizeClass as $, createElementBlock as B, createCommentVNode as A, openBlock as g, Fragment as I, renderList as R, createBlock as K, unref as V } from "vue";
|
|
2
|
+
import { stringToHyphened as L, isArrNullOrEmpty as G } from "@wikicasa-dev/utilities";
|
|
3
|
+
import N from "./CheckboxBtn.vue.js";
|
|
4
|
+
import '../../../../../assets/CheckboxBtn.css';/* empty css */
|
|
5
|
+
const T = ["id", "data-cy"], j = /* @__PURE__ */ p({
|
|
5
6
|
inheritAttrs: !1,
|
|
6
7
|
__name: "CheckboxGroup",
|
|
7
8
|
props: {
|
|
@@ -14,36 +15,38 @@ const N = ["id", "data-cy"], O = /* @__PURE__ */ x({
|
|
|
14
15
|
autoCheckResetAll: { type: Boolean, default: !1 },
|
|
15
16
|
autoCheckResetEmpty: { type: Boolean, default: !1 },
|
|
16
17
|
manualToggleResetButton: { type: Boolean, default: !1 },
|
|
17
|
-
getKey: { type: Function, default: (
|
|
18
|
+
getKey: { type: Function, default: (a) => typeof a == "string" || typeof a == "number" ? `${a}` : `${a.id}` },
|
|
18
19
|
groupId: { default: "" },
|
|
19
20
|
dataCy: { default: "" }
|
|
20
21
|
},
|
|
21
22
|
emits: ["resetted", "update:modelValue", "checkedGroup"],
|
|
22
|
-
setup(
|
|
23
|
-
const o =
|
|
23
|
+
setup(a, { emit: C }) {
|
|
24
|
+
const o = a, s = C, l = v(
|
|
25
|
+
/* @__PURE__ */ new Map()
|
|
26
|
+
), r = h(() => {
|
|
24
27
|
for (const e of o.checkboxData)
|
|
25
28
|
if (e.reset) return e;
|
|
26
29
|
return null;
|
|
27
30
|
}), y = h(() => o.checkboxData.length), f = h(() => {
|
|
28
31
|
let e = 0;
|
|
29
|
-
return l.value.forEach((
|
|
30
|
-
|
|
32
|
+
return l.value.forEach((t) => {
|
|
33
|
+
t.checked && e++;
|
|
31
34
|
}), e;
|
|
32
35
|
});
|
|
33
36
|
(() => {
|
|
34
37
|
const e = [];
|
|
35
|
-
for (const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
),
|
|
38
|
+
for (const t of o.checkboxData)
|
|
39
|
+
l.value.set(`${t.id}`, {
|
|
40
|
+
...t,
|
|
41
|
+
checked: !!t.checked
|
|
42
|
+
}), t.checked && e.push(t);
|
|
40
43
|
s("update:modelValue", e);
|
|
41
44
|
})();
|
|
42
|
-
const u = (e,
|
|
45
|
+
const u = (e, t) => {
|
|
43
46
|
const c = l.value.get(e);
|
|
44
47
|
if (c) {
|
|
45
|
-
if (
|
|
46
|
-
l.value.set(e, { ...c, ...
|
|
48
|
+
if (t) {
|
|
49
|
+
l.value.set(e, { ...c, ...t });
|
|
47
50
|
return;
|
|
48
51
|
}
|
|
49
52
|
l.value.set(e, { ...c, checked: !c.checked });
|
|
@@ -55,55 +58,55 @@ const N = ["id", "data-cy"], O = /* @__PURE__ */ x({
|
|
|
55
58
|
}, m = () => {
|
|
56
59
|
k(), s("update:modelValue", []), s("resetted");
|
|
57
60
|
}, d = (e) => l.value.get(o.getKey(e))?.checked ?? !1, i = (e) => {
|
|
58
|
-
if (
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
+
if (G(o.checkboxData)) return;
|
|
62
|
+
const t = l.value.get(e.id);
|
|
63
|
+
t?.reset && e.checked ? k() : r.value && !t?.reset && u(o.getKey(r.value), { checked: !1 }), u(`${e.id}`), o.autoCheckResetAll && r.value && f.value === y.value - 1 && l.value.forEach((n) => {
|
|
61
64
|
n.checked = !!n.reset;
|
|
62
|
-
}), o.autoCheckResetEmpty && r.value && !f.value && (!o.manualToggleResetButton || !
|
|
65
|
+
}), o.autoCheckResetEmpty && r.value && !f.value && (!o.manualToggleResetButton || !t?.reset) && u(o.getKey(r.value), { checked: !0 });
|
|
63
66
|
const c = [];
|
|
64
67
|
l.value.forEach((n) => {
|
|
65
68
|
n.checked && c.push(n);
|
|
66
69
|
}), s("update:modelValue", c), s("checkedGroup", o.groupId);
|
|
67
70
|
};
|
|
68
|
-
return
|
|
71
|
+
return D(
|
|
69
72
|
() => o.reset,
|
|
70
73
|
(e) => {
|
|
71
74
|
e && m();
|
|
72
75
|
}
|
|
73
|
-
), (e,
|
|
76
|
+
), (e, t) => b(e.$slots, "default", {
|
|
74
77
|
isActive: d,
|
|
75
78
|
handleChange: i,
|
|
76
|
-
checkboxesData:
|
|
79
|
+
checkboxesData: a.checkboxData
|
|
77
80
|
}, () => [
|
|
78
|
-
|
|
79
|
-
id:
|
|
80
|
-
class:
|
|
81
|
-
"data-cy":
|
|
81
|
+
E("div", {
|
|
82
|
+
id: a.groupId,
|
|
83
|
+
class: $(["checkbox-group-container", e.$attrs.class || ""]),
|
|
84
|
+
"data-cy": a.dataCy
|
|
82
85
|
}, [
|
|
83
86
|
b(e.$slots, "checkbox_elements", {
|
|
84
87
|
isActive: d,
|
|
85
88
|
handleChange: i,
|
|
86
|
-
checkboxesData:
|
|
89
|
+
checkboxesData: a.checkboxData,
|
|
87
90
|
reset: m
|
|
88
91
|
}, () => [
|
|
89
|
-
|
|
90
|
-
id:
|
|
92
|
+
a.checkboxData ? (g(!0), B(I, { key: 0 }, R(a.checkboxData, (c, n) => (g(), K(N, {
|
|
93
|
+
id: a.getKey(c),
|
|
91
94
|
key: n,
|
|
92
|
-
"data-cy": c.dataCy ?? `checkbox_${
|
|
95
|
+
"data-cy": c.dataCy ?? `checkbox_${V(L)(`${c.label}`)}`,
|
|
93
96
|
label: c.label,
|
|
94
|
-
inline:
|
|
97
|
+
inline: a.formCheckInline,
|
|
95
98
|
"model-value": d(c),
|
|
96
99
|
"container-class": [
|
|
97
|
-
|
|
98
|
-
|
|
100
|
+
a.formCheckInline ? "uikit-mr-10px" : "uikit-mb-10px",
|
|
101
|
+
a.checkboxContainerClasses
|
|
99
102
|
],
|
|
100
|
-
onChange: i
|
|
101
|
-
}, null, 8, ["id", "data-cy", "label", "inline", "model-value", "container-class"]))), 128)) :
|
|
103
|
+
onChange: t[0] || (t[0] = (x) => i(x))
|
|
104
|
+
}, null, 8, ["id", "data-cy", "label", "inline", "model-value", "container-class"]))), 128)) : A("", !0)
|
|
102
105
|
])
|
|
103
|
-
], 10,
|
|
106
|
+
], 10, T)
|
|
104
107
|
]);
|
|
105
108
|
}
|
|
106
109
|
});
|
|
107
110
|
export {
|
|
108
|
-
|
|
111
|
+
j as default
|
|
109
112
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wikicasa-dev/components",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.9-alpha.1",
|
|
4
4
|
"description": "Wikicasa frontend components",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"vue": "^3.5.0",
|
|
45
45
|
"date-fns": "^4.0.0",
|
|
46
46
|
"@wikicasa-dev/svg-icons": "^1.2.24",
|
|
47
|
-
"@wikicasa-dev/vue-composables": "^0.0.
|
|
47
|
+
"@wikicasa-dev/vue-composables": "^0.0.29",
|
|
48
48
|
"@wikicasa-dev/types": "^2.4.0",
|
|
49
49
|
"@wikicasa-dev/utilities": "^1.2.0"
|
|
50
50
|
},
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"@vue/eslint-config-prettier": "^10.2.0",
|
|
65
65
|
"@vue/eslint-config-typescript": "^14.6.0",
|
|
66
66
|
"@wikicasa-dev/svg-icons": "1.2.24",
|
|
67
|
-
"@wikicasa-dev/vue-composables": "0.0.
|
|
67
|
+
"@wikicasa-dev/vue-composables": "0.0.29",
|
|
68
68
|
"@wikicasa-dev/tailwind-plugins": "^0.0.3",
|
|
69
69
|
"@wikicasa-dev/types": "2.4.6",
|
|
70
70
|
"@wikicasa-dev/utilities": "1.2.0",
|
|
File without changes
|