song-ui-u
Version:
vue3 + js的PC前端组件库
199 lines (191 loc) • 8.92 kB
JavaScript
import { mergeModels, useModel, openBlock, createBlock, Teleport, createVNode, Transition, withCtx, withDirectives, mergeProps, createElementVNode, normalizeClass, normalizeStyle, createElementBlock, renderSlot, Fragment, toDisplayString, createCommentVNode, createTextVNode, vShow } from 'vue';
import { useNamespace } from '../../../hook/use-namespace/index.mjs';
import 'song-ui-pro-icon';
import '../../../hook/use-zindex/index.mjs';
import { XButton } from '../../button/index.mjs';
import '../../buttonGroup/index.mjs';
import { XIcon } from '../../icon/index.mjs';
import '../../input/index.mjs';
import '../../textarea/index.mjs';
import '../../row/index.mjs';
import '../../col/index.mjs';
import '../../container/index.mjs';
import '../../checkbox/index.mjs';
import '../../switch/index.mjs';
import '../../form/index.mjs';
import '../../message/index.mjs';
import { XMask } from '../../mask/index.mjs';
import '../../modal/index.mjs';
import '../../messageBox/index.mjs';
import '../index.mjs';
import '../../badge/index.mjs';
import '../../space/index.mjs';
import '../../image/index.mjs';
import '../../radio/index.mjs';
import '../../divider/index.mjs';
import '../../chat/index.mjs';
import '../../progress/index.mjs';
import '../../upload/index.mjs';
import '../../vTree/index.mjs';
import '../../table/index.mjs';
import '../../tabs/index.mjs';
import '../../menu/index.mjs';
import '../../steps/index.mjs';
import '../../header/index.mjs';
import '../../breadcrumble/index.mjs';
import '../../datePicker/index.mjs';
import '../../tooltip/index.mjs';
import '../../popover/index.mjs';
import '../../timePicker/index.mjs';
import '../../select/index.mjs';
import '../../collapse/index.mjs';
import '../../card/index.mjs';
import '../../timeline/index.mjs';
import '../../tag/index.mjs';
import '../../result/index.mjs';
import '../../sender/index.mjs';
import _export_sfc from '../../../_virtual/_plugin-vue_export-helper.mjs';
import Close from '../../../icons/svg/Close.vue.mjs';
import { useDrawer } from './composables/use-drawer.mjs';
import { drawerProps } from './drawer.mjs';
const __default__ = { name: "x-drawer" };
const _sfc_main = /*#__PURE__*/Object.assign(__default__, {
props: /*#__PURE__*/mergeModels(drawerProps, {
"modelValue": {},
"modelModifiers": {},
}),
emits: /*#__PURE__*/mergeModels(["ok", "cancel", "open", "opened", "close", "closed"], ["update:modelValue"]),
setup(__props, { expose: __expose, emit: __emit }) {
__expose();
const props = __props;
const emit = __emit;
const ns = useNamespace("drawer");
const visible = useModel(__props, "modelValue");
const {
useBeforeCancel,
useBeforeChange,
useClose,
isLoading,
useBeforeEnter,
useEnter,
useAfterEnter,
useBeforeLeave,
useAfterLeave,
rendered,
size,
offset,
} = useDrawer({ props, visible });
const __returned__ = { props, emit, ns, visible, useBeforeCancel, useBeforeChange, useClose, isLoading, useBeforeEnter, useEnter, useAfterEnter, useBeforeLeave, useAfterLeave, rendered, size, offset, get useNamespace() { return useNamespace }, get XMask() { return XMask }, get XButton() { return XButton }, get XIcon() { return XIcon }, get Close() { return Close }, get useDrawer() { return useDrawer }, get drawerProps() { return drawerProps } };
Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true });
return __returned__
}
});
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return (openBlock(), createBlock(Teleport, { to: "body" }, [
createVNode(Transition, {
name: $setup.ns.b(),
onBeforeEnter: $setup.useBeforeEnter,
onEnter: $setup.useEnter,
onAfterEnter: $setup.useAfterEnter,
onBeforeLeave: $setup.useBeforeLeave,
onAfterLeave: $setup.useAfterLeave,
persisted: ""
}, {
default: withCtx(() => [
withDirectives(createVNode($setup["XMask"], mergeProps(_ctx.$attrs, { onClose: $setup.useClose }), {
default: withCtx(() => [
createElementVNode("div", {
class: normalizeClass([$setup.ns.b(), $setup.ns.m('placement', _ctx.placement), $setup.offset]),
style: normalizeStyle([$setup.size])
}, [
createElementVNode("div", {
class: normalizeClass([$setup.ns.e('wrap')])
}, [
(_ctx.header)
? (openBlock(), createElementBlock("div", {
key: 0,
class: normalizeClass([$setup.ns.e('header')])
}, [
(_ctx.$slots.header)
? renderSlot(_ctx.$slots, "header", { key: 0 })
: (openBlock(), createElementBlock(Fragment, { key: 1 }, [
createElementVNode("h4", {
class: normalizeClass([$setup.ns.e('title')])
}, toDisplayString(_ctx.title), 3 /* TEXT, CLASS */),
createVNode($setup["XIcon"], {
class: normalizeClass([$setup.ns.e('close')]),
onClick: $setup.useClose
}, {
default: withCtx(() => [
createVNode($setup["Close"])
]),
_: 1 /* STABLE */
}, 8 /* PROPS */, ["class", "onClick"])
], 64 /* STABLE_FRAGMENT */))
], 2 /* CLASS */))
: createCommentVNode("v-if", true),
createElementVNode("div", {
class: normalizeClass([$setup.ns.e('body')])
}, [
($setup.rendered)
? (openBlock(), createElementBlock("div", {
key: 0,
class: normalizeClass([$setup.ns.e('render-content')])
}, [
renderSlot(_ctx.$slots, "default")
], 2 /* CLASS */))
: createCommentVNode("v-if", true)
], 2 /* CLASS */),
(_ctx.footer)
? (openBlock(), createElementBlock("div", {
key: 1,
class: normalizeClass([$setup.ns.e('footer')])
}, [
(_ctx.$slots.footer)
? renderSlot(_ctx.$slots, "footer", { key: 0 })
: (openBlock(), createElementBlock(Fragment, { key: 1 }, [
(_ctx.cancelButtonShow)
? (openBlock(), createBlock($setup["XButton"], {
key: 0,
text: "",
size: "large",
onClick: $setup.useBeforeCancel
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.cancelButtonText), 1 /* TEXT */)
]),
_: 1 /* STABLE */
}, 8 /* PROPS */, ["onClick"]))
: createCommentVNode("v-if", true),
(_ctx.confirmButtonShow)
? (openBlock(), createBlock($setup["XButton"], {
key: 1,
type: "primary",
size: "large",
loading: $setup.isLoading,
onClick: $setup.useBeforeChange
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.confirmButtonText), 1 /* TEXT */)
]),
_: 1 /* STABLE */
}, 8 /* PROPS */, ["loading", "onClick"]))
: createCommentVNode("v-if", true)
], 64 /* STABLE_FRAGMENT */))
], 2 /* CLASS */))
: createCommentVNode("v-if", true)
], 2 /* CLASS */)
], 6 /* CLASS, STYLE */)
]),
_: 3 /* FORWARDED */
}, 16 /* FULL_PROPS */, ["onClose"]), [
[vShow, $setup.visible]
])
]),
_: 3 /* FORWARDED */
}, 8 /* PROPS */, ["name", "onBeforeEnter", "onEnter", "onAfterEnter", "onBeforeLeave", "onAfterLeave"])
]))
}
var Drawer = /*#__PURE__*/_export_sfc(_sfc_main, [['render',_sfc_render],['__file',"E:\\code\\my-code\\song-ui-ultra\\packages\\components\\drawer\\src\\index.vue"]]);
export { Drawer as default };
//# sourceMappingURL=index.vue.mjs.map