UNPKG

various-ui

Version:

This is a test version of the Vue 3 component library

121 lines (116 loc) 4.09 kB
'use strict'; 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