UNPKG

@vuesax-alpha/nightly

Version:
71 lines (66 loc) 2.22 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var vue = require('vue'); require('../../../hooks/index.js'); require('../../../utils/index.js'); var optionGroup = require('./option-group.js'); var tokens = require('./tokens.js'); var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js'); var index = require('../../../hooks/use-namespace/index.js'); var error = require('../../../utils/error.js'); const __default__ = vue.defineComponent({ name: "VsOptionGroup" }); const _sfc_main = vue.defineComponent({ ...__default__, props: optionGroup.optionGroupProps, setup(__props) { const ns = index.useNamespace("option-group"); const select = vue.inject(tokens.selectContextKey); if (!select) { error.throwError( "Option Group", "`option-group` component must be called inside `select` component" ); } const visible = vue.ref(true); const options = vue.ref(/* @__PURE__ */ new Map()); const optionsArray = vue.computed(() => Array.from(options.value.values())); vue.watch( () => select.queryChange, () => { visible.value = optionsArray.value.some((option) => option.visible === true); }, { flush: "post" } ); vue.provide(tokens.optionGroupRegisterKey, (option) => { options.value.set(option.value, option); return { unregister() { options.value.delete(option.value); } }; }); return (_ctx, _cache) => { return vue.openBlock(), vue.createElementBlock( "div", { class: vue.normalizeClass([vue.unref(ns).b(), vue.unref(ns).is("hidden", !visible.value)]) }, [ vue.createElementVNode( "h5", null, vue.toDisplayString(_ctx.label), 1 ), vue.renderSlot(_ctx.$slots, "default") ], 2 ); }; } }); var OptionGroup = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "/home/runner/work/vuesax-alpha/vuesax-alpha/packages/components/select/src/option-group.vue"]]); exports["default"] = OptionGroup; //# sourceMappingURL=option-group2.js.map