various-ui
Version:
This is a test version of the Vue 3 component library
121 lines (116 loc) • 4.09 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 = {
key: 1,
class: "ui-modal-close"
};
const _hoisted_3 = {
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 { 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;
document.body.style.overflow = "";
(_a = refs.observer.value) == null ? void 0 : _a.disconnect();
if (refs.main.value) {
index$1.remove(document.body, refs.main.value);
}
});
;
__expose({ scrollTo, openModal, closeModal });
return (_ctx, _cache) => {
return vue.openBlock(), vue.createBlock(vue.Transition, { 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[0] || (_cache[0] = 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", _hoisted_2, [
vue.createVNode(vue.unref(index$2.UiIcon), {
name: "close",
onClick: vue.unref(closeModal)
}, null, 8, ["onClick"])
])) : vue.createCommentVNode("v-if", true),
vue.createCommentVNode(" \u5185\u5BB9 "),
vue.createElementVNode(
"div",
_hoisted_3,
[
vue.renderSlot(_ctx.$slots, "default")
],
512
/* NEED_PATCH */
)
],
4
/* STYLE */
)
],
16
/* FULL_PROPS */
), [
[vue.vShow, vue.unref(open)]
])
]),
_: 3
/* FORWARDED */
});
};
}
});
exports.default = _sfc_main;
//# sourceMappingURL=index.vue2.js.map