UNPKG

@opensig/opendesign

Version:

44 lines (43 loc) 1.15 kB
import { resolveHtmlElement } from "../_utils/vue-utils.mjs"; import { createApp } from "vue"; import _sfc_main from "./OScrollbar.vue.mjs"; const ScrollbarClass = { wrapper: "o-scrollbar-wrapper" }; function useScrollbar(options) { const { wrapper, target, ...rests } = options; const app = createApp(_sfc_main, { ...rests, target }); const div = document.createElement("div"); const instance = app.mount(div); let wrapperEl; const mount = (wrap) => { if (div.childNodes.length === 0) { return; } wrapperEl = wrap || document.body; wrapperEl == null ? void 0 : wrapperEl.appendChild(div.childNodes[0]); wrapperEl == null ? void 0 : wrapperEl.classList.add(ScrollbarClass.wrapper); }; if (wrapper) { resolveHtmlElement(wrapper).then((el) => { mount(el); }); } else { resolveHtmlElement(target).then((el) => { mount(el == null ? void 0 : el.parentNode); }); } return { scrollbar: instance, unmount: () => { app.unmount(); wrapperEl == null ? void 0 : wrapperEl.classList.remove(ScrollbarClass.wrapper); } }; } export { useScrollbar };