UNPKG

bootstrap-vue-next

Version:

BootstrapVueNext is an early and lovely component library for Vue 3 & Nuxt 3 based on Bootstrap 5 and Typescript.

93 lines (92 loc) 2.77 kB
import { ref, toValue, toRef, watch, isRef, onScopeDispose } from "vue"; import { p as popoverPluginKey } from "../../../keys-BZewGSMQ.mjs"; const popoverPlugin = { install(app) { const popovers = ref(/* @__PURE__ */ new Map()); const popover = (obj) => { var _a; const resolvedProps = toRef(obj); const _self = ((_a = resolvedProps.value) == null ? void 0 : _a.id) || Symbol("Popover controller"); watch( resolvedProps, (newValue) => { popovers.value.set(_self, { ...newValue, ...typeof newValue["modelValue"] !== "undefined" && isRef(obj) ? { "onUpdate:modelValue": (val) => { var _a2; (_a2 = newValue["onUpdate:modelValue"]) == null ? void 0 : _a2.call(newValue, val); obj.value.modelValue = val; } } : {} }); }, { immediate: true, deep: true } ); onScopeDispose(() => popovers.value.delete(_self), true); return _self; }; const setPopover = (self, val) => { const popover2 = popovers.value.get(self); if (!popover2) return; popovers.value.set(self, { ...popover2, ...toValue(val) }); }; const removePopover = (self) => popovers.value.delete(self); const tooltips = ref(/* @__PURE__ */ new Map()); const tooltip = (obj) => { var _a; const resolvedProps = toRef(obj); const _self = ((_a = resolvedProps.value) == null ? void 0 : _a.id) || Symbol("Tooltip controller"); watch( resolvedProps, (newValue) => { popovers.value.set(_self, { ...newValue, ...typeof newValue["modelValue"] !== "undefined" && isRef(obj) ? { "onUpdate:modelValue": (val) => { var _a2; (_a2 = newValue["onUpdate:modelValue"]) == null ? void 0 : _a2.call(newValue, val); obj.value.modelValue = val; } } : {} }); }, { immediate: true, deep: true } ); onScopeDispose(() => tooltips.value.delete(_self), true); return _self; }; const setTooltip = (self, val) => { const tooltip2 = tooltips.value.get(self); if (!tooltip2) return; tooltips.value.set(self, { ...tooltip2, ...toValue(val) }); }; const removeTooltip = (self) => tooltips.value.delete(self); app.provide(popoverPluginKey, { popovers, tooltips, tooltip, popover, setPopover, setTooltip, removePopover, removeTooltip }); } }; export { popoverPlugin }; //# sourceMappingURL=index.mjs.map