@opensig/opendesign
Version:
<p align="center"><img src="../docs/public/opendesign-logo-light.png"/></p> <h1 align="center">opendesign</h1> <p align="center">一个 Vue 3 组件库</p> <p align="center"><b>皮肤可定制,使用 TypeScript</b></p>
41 lines (40 loc) • 1.28 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const vueUtils = require("../_utils/vue-utils.js");
const vue = require("vue");
const OScrollbar_vue_vue_type_script_setup_true_lang = require("./OScrollbar.vue.js");
const ScrollbarClass = {
wrapper: "o-scrollbar-wrapper"
};
function useScrollbar(options) {
const { wrapper, target, ...rests } = options;
const app = vue.createApp(OScrollbar_vue_vue_type_script_setup_true_lang, {
...rests,
target
});
const div = document.createElement("div");
const instance = app.mount(div);
let wrapperEl;
const mount = (wrapper2) => {
wrapperEl = wrapper2 || document.body;
wrapperEl == null ? void 0 : wrapperEl.appendChild(div.childNodes[0]);
wrapperEl == null ? void 0 : wrapperEl.classList.add(ScrollbarClass.wrapper);
};
if (wrapper) {
vueUtils.resolveHtmlElement(wrapper).then((el) => {
mount(el);
});
} else {
vueUtils.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);
}
};
}
exports.useScrollbar = useScrollbar;