various-ui
Version:
This is a test version of the Vue 3 component library
127 lines (122 loc) • 4.57 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
require('../../../utils/index.js');
var composable = require('./src/composable.js');
var index = require('./index.js');
var index$2 = require('../../icon/index.js');
var index$1 = require('../../../utils/src/node/index.js');
const _hoisted_1 = {
key: 0,
class: "ui-modal-header"
};
const _hoisted_2 = {
class: "ui-modal-content",
ref: "content"
};
const __default__ = vue.defineComponent({ name: "UiModal" });
var _sfc_main = /* @__PURE__ */ vue.defineComponent({
...__default__,
props: index.UiModalPropsOption,
emits: index.UiModalEmits,
setup(__props, { expose: __expose, emit: __emit }) {
const define = __props;
const emits = __emit;
const { ons, vars, refs, binds, methods, computeds } = composable.useComposable(define, emits);
const { containerStyle } = computeds;
const { scrollTo, openModal, closeModal } = methods;
const { open, main, container } = refs;
vue.onMounted(() => {
refs.observer.value = new ResizeObserver(methods.resizeHandler);
if (refs.main.value) {
index$1.append(document.body, refs.main.value);
}
});
vue.onBeforeUnmount(() => {
var _a;
(_a = refs.observer.value) == null ? void 0 : _a.disconnect();
if (refs.main.value) index$1.remove(document.body, refs.main.value);
if (refs.open.value) {
document.body.style.overflow = vars.overflow;
document.body.style.paddingRight = vars.spacing.x;
document.body.style.paddingBottom = vars.spacing.y;
}
});
;
__expose({ scrollTo, openModal, closeModal });
return (_ctx, _cache) => {
return vue.openBlock(), vue.createBlock(
vue.Transition,
vue.mergeProps(vue.toHandlers(vue.unref(ons).animation), { persisted: "" }),
{
default: vue.withCtx(() => [
vue.withDirectives(vue.createElementVNode(
"div",
vue.mergeProps({
class: "ui-modal ui-mask",
ref_key: "main",
ref: main
}, vue.unref(binds).main, {
onClick: _cache[1] || (_cache[1] = vue.withModifiers(($event) => _ctx.closeOnClick && vue.unref(closeModal)(), ["self"]))
}),
[
vue.createElementVNode(
"div",
{
class: "ui-modal-container",
ref_key: "container",
ref: container,
style: vue.normalizeStyle(vue.unref(containerStyle))
},
[
vue.createCommentVNode(" \u5934\u90E8\u4FE1\u606F "),
_ctx.title || _ctx.$slots.header ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
vue.renderSlot(_ctx.$slots, "header", {}, () => [
vue.createTextVNode(
vue.toDisplayString(_ctx.title),
1
/* TEXT */
)
])
])) : vue.createCommentVNode("v-if", true),
vue.createCommentVNode(" \u5173\u95ED\u6309\u94AE "),
_ctx.close ? (vue.openBlock(), vue.createElementBlock("div", {
key: 1,
class: "ui-modal-close",
onClick: _cache[0] || (_cache[0] = //@ts-ignore
(...args) => vue.unref(closeModal) && vue.unref(closeModal)(...args))
}, [
vue.createVNode(vue.unref(index$2.UiIcon), { name: "close" })
])) : vue.createCommentVNode("v-if", true),
vue.createCommentVNode(" \u5185\u5BB9 "),
vue.createElementVNode(
"div",
_hoisted_2,
[
vue.renderSlot(_ctx.$slots, "default")
],
512
/* NEED_PATCH */
)
],
4
/* STYLE */
)
],
16
/* FULL_PROPS */
), [
[vue.vShow, vue.unref(open)]
])
]),
_: 3
/* FORWARDED */
},
16
/* FULL_PROPS */
);
};
}
});
exports.default = _sfc_main;
//# sourceMappingURL=index.vue2.js.map