bootstrap-vue-next
Version:
Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development
34 lines (33 loc) • 1.76 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
require("../../../chunk-CoQrYLCe.js");
const require_keys = require("../../../keys-durSVUrO.js");
const require_registryAccess = require("../../../registryAccess-D-YxwQJq.js");
let vue = require("vue");
//#region src/composables/useToggle/index.ts
var useToggle = (id = void 0) => {
const instance = (0, vue.getCurrentInstance)();
const storage = (0, vue.inject)(require_keys.showHideRegistryKey, null);
if (!storage) throw new Error("useToggle() must be called within setup(), and BApp, useRegistry or plugin must be installed/provided.");
const registry = storage.values;
const findComponent = (component) => {
if (!component.parent) return null;
if (component.parent.exposed?.["id"] && registry.value.get((0, vue.toValue)(component.parent.exposed.id))) return component.parent;
return findComponent(component.parent);
};
const myComponent = (0, vue.computed)(() => {
const resolvedId = (0, vue.toValue)(id);
if (resolvedId) return require_registryAccess.getActiveShowHide(registry, resolvedId);
if (!instance) return null;
return require_registryAccess.getActiveShowHide(registry, (0, vue.toValue)(findComponent(instance)?.exposed?.id));
});
return {
value: (0, vue.computed)(() => myComponent.value?.value),
show: (resolveOnHide) => myComponent.value?.show(resolveOnHide) || Promise.reject("not found"),
hide: (trigger) => myComponent.value?.hide(trigger, true) || Promise.reject("not found"),
toggle: (resolveOnHide) => myComponent.value?.toggle(resolveOnHide) || Promise.reject("not found"),
component: (0, vue.computed)(() => myComponent.value?.component)
};
};
//#endregion
exports.useToggle = useToggle;
//# sourceMappingURL=index.umd.js.map