tass-ui
Version:
A high quality UI Toolkit built on Vue.js3+.
67 lines (66 loc) • 2.54 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const vue = require("vue");
require("../../../theme-chalk/src/collapse.scss.js");
const _hoisted_1 = { class: "tas-collapse" };
const _hoisted_2 = { class: "tas-collapse-ul" };
const _hoisted_3 = ["onClick"];
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
__name: "collapse",
props: {
posts: null,
types: { type: Boolean, default: false }
},
setup(__props) {
const props = __props;
const arr = vue.reactive([]);
function toggle(index) {
if (!arr.includes(index)) {
if (props.types == true) {
arr.push(index);
} else {
arr.length = 0;
arr.push(index);
}
} else {
arr.splice(arr.indexOf(index), 1);
}
}
return (_ctx, _cache) => {
const _component_tass_icon = vue.resolveComponent("tass-icon");
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
vue.createElementVNode("ul", _hoisted_2, [
vue.createElementVNode("li", null, [
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.posts, (item) => {
return vue.openBlock(), vue.createElementBlock("div", {
key: item.id,
class: "tas-collapse-panel"
}, [
vue.createElementVNode("div", {
class: "tas-collapse-title",
onClick: ($event) => toggle(item.id)
}, [
vue.createTextVNode(vue.toDisplayString(item.title) + " ", 1),
vue.createVNode(_component_tass_icon, {
name: "chevronright",
class: vue.normalizeClass([arr.includes(item.id) === true ? "icon-select" : "icon-unselect"]),
style: { "float": "right" }
}, null, 8, ["class"])
], 8, _hoisted_3),
vue.createVNode(vue.Transition, { name: "tas-collapse" }, {
default: vue.withCtx(() => [
vue.withDirectives(vue.createElementVNode("div", { class: "tas-collapse-content" }, vue.toDisplayString(item.body), 513), [
[vue.vShow, arr.includes(item.id) === true]
])
]),
_: 2
}, 1024)
]);
}), 128))
])
])
]);
};
}
});
exports.default = _sfc_main;