ucc-ui
Version:
ucc-ui components library
41 lines (40 loc) • 1.18 kB
JavaScript
import { defineComponent as d, ref as i, watch as p, provide as m, onBeforeUnmount as f, openBlock as C, createElementBlock as v, normalizeClass as h, renderSlot as _ } from "vue";
const V = Symbol("collapseContext"), E = /* @__PURE__ */ d({
name: "UCollapse",
__name: "Collapse",
props: {
modelValue: {},
accordion: { type: Boolean, default: !1 }
},
emits: ["update:modelValue", "change"],
setup(s, { expose: n, emit: r }) {
const a = s, t = r, o = i(a.modelValue || []), l = (e) => {
o.value = e, t("update:modelValue", e), t("change", e);
}, u = p(() => a.modelValue, (e) => l(e));
return m(V, {
activeNames: o,
handleItemClick: (e) => {
if (a.accordion) {
l(o.value.includes(e) ? [] : [e]);
return;
}
o.value.includes(e) ? l(o.value.filter((c) => c !== e)) : l([...o.value, e]);
}
}), f(() => {
u();
}), n({
activeNames: o,
updateActiveNames: l
}), (e, c) => (C(), v("div", {
class: h(["u-collapse", {
"is-accordion": e.accordion
}])
}, [
_(e.$slots, "default")
], 2));
}
});
export {
V as C,
E as _
};