UNPKG

@coreui/vue

Version:

UI Components Library for Vue.js

32 lines (28 loc) 1.17 kB
'use strict'; var vue = require('vue'); const CAccordionItem = vue.defineComponent({ name: 'CAccordionItem', props: { /** * The item key. */ itemKey: [Number, String], }, setup(props, { slots }) { const activeItemKey = vue.inject('activeItemKey'); const alwaysOpen = vue.inject('alwaysOpen'); const setActiveItemKey = vue.inject('setActiveItemKey'); const itemKey = vue.ref(props.itemKey ?? Math.random().toString(36).slice(2, 11)); const visible = vue.ref(Boolean(activeItemKey.value === itemKey.value)); vue.watch(activeItemKey, () => (visible.value = Boolean(activeItemKey.value === itemKey.value))); const toggleVisibility = () => { visible.value = !visible.value; !alwaysOpen && visible && setActiveItemKey(itemKey.value); }; vue.provide('visible', visible); vue.provide('toggleVisibility', toggleVisibility); return () => vue.h('div', { class: ['accordion-item'] }, slots.default && slots.default()); }, }); exports.CAccordionItem = CAccordionItem; //# sourceMappingURL=CAccordionItem.js.map