song-ui-u
Version:
vue3 + js的PC前端组件库
191 lines (179 loc) • 8.79 kB
JavaScript
'use strict';
var vue = require('vue');
var index = require('../../../hook/use-namespace/index.cjs');
var types = require('../../../utils/types.cjs');
var componentsType = require('../../../utils/componentsType.cjs');
var themeType = require('../../../utils/themeType.cjs');
require('../../../hook/use-zindex/index.cjs');
var index$2 = require('../../button/index.cjs');
require('../../buttonGroup/index.cjs');
var index$3 = require('../../icon/index.cjs');
require('../../input/index.cjs');
require('../../textarea/index.cjs');
require('../../row/index.cjs');
require('../../col/index.cjs');
require('../../container/index.cjs');
require('../../checkbox/index.cjs');
require('../../switch/index.cjs');
require('../../form/index.cjs');
require('../../message/index.cjs');
var index$1 = require('../../mask/index.cjs');
require('../../modal/index.cjs');
require('../index.cjs');
require('../../drawer/index.cjs');
require('../../badge/index.cjs');
require('../../space/index.cjs');
require('../../image/index.cjs');
require('../../radio/index.cjs');
require('../../divider/index.cjs');
require('../../chat/index.cjs');
require('../../progress/index.cjs');
require('../../upload/index.cjs');
require('../../vTree/index.cjs');
require('../../table/index.cjs');
require('../../tabs/index.cjs');
require('../../menu/index.cjs');
require('../../steps/index.cjs');
require('../../header/index.cjs');
require('../../breadcrumble/index.cjs');
require('../../datePicker/index.cjs');
require('../../tooltip/index.cjs');
require('../../popover/index.cjs');
require('../../timePicker/index.cjs');
require('../../select/index.cjs');
require('../../collapse/index.cjs');
require('../../card/index.cjs');
require('../../timeline/index.cjs');
require('../../tag/index.cjs');
require('../../result/index.cjs');
require('../../sender/index.cjs');
var useMessageBox = require('./composables/use-message-box.cjs');
var messageBox = require('./message-box.cjs');
var _pluginVue_exportHelper = require('../../../_virtual/_plugin-vue_export-helper.cjs');
const __default__ = { name: "x-message-box" };
const _sfc_main = /*#__PURE__*/Object.assign(__default__, {
props: /*#__PURE__*/vue.mergeModels(messageBox.messageBoxProps, {
"modelValue": {},
"modelModifiers": {},
}),
emits: /*#__PURE__*/vue.mergeModels(["ok", "cancel", "open", "opened", "close", "closed"], ["update:modelValue"]),
setup(__props, { expose: __expose, emit: __emit }) {
__expose();
const props = __props;
const emit = __emit;
const ns = index.useNamespace("message-box");
const visible = vue.useModel(__props, "modelValue");
const { useBeforeCancel, useBeforeChange, useClose, isLoading } = useMessageBox.useMessageBox(
{ props, visible }
);
// icon
const icon = vue.computed(() => componentsType.typeIcon[props.icon]);
const theme = vue.computed(() => themeType.themeType?.[props.icon] || props.icon);
// isString
const isString = vue.computed(() => types.types().isString(props.content));
const isVNodeDom = vue.computed(() => vue.isVNode(props.content));
vue.onMounted(() => {
visible.value = true;
});
const __returned__ = { props, emit, ns, visible, useBeforeCancel, useBeforeChange, useClose, isLoading, icon, theme, isString, isVNodeDom, onMounted: vue.onMounted, computed: vue.computed, isVNode: vue.isVNode, get useNamespace() { return index.useNamespace }, get typeIcon() { return componentsType.typeIcon }, get themeType() { return themeType.themeType }, get types() { return types.types }, get XMask() { return index$1.XMask }, get XButton() { return index$2.XButton }, get XIcon() { return index$3.XIcon }, get useMessageBox() { return useMessageBox.useMessageBox }, get messageBoxProps() { return messageBox.messageBoxProps } };
Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true });
return __returned__
}
});
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return (vue.openBlock(), vue.createBlock(vue.Transition, {
name: $setup.ns.b(),
persisted: ""
}, {
default: vue.withCtx(() => [
vue.withDirectives(vue.createVNode($setup["XMask"], vue.mergeProps(_ctx.$attrs, { onClose: $setup.useClose }), {
default: vue.withCtx(() => [
vue.createElementVNode("div", {
class: vue.normalizeClass([$setup.ns.b()])
}, [
vue.createElementVNode("div", {
class: vue.normalizeClass([$setup.ns.e('wrap')])
}, [
vue.createElementVNode("div", {
class: vue.normalizeClass([$setup.ns.e('body')])
}, [
vue.createElementVNode("div", {
class: vue.normalizeClass([$setup.ns.e('header')])
}, [
vue.createVNode($setup["XIcon"], {
class: vue.normalizeClass([$setup.ns.m($setup.theme)])
}, {
default: vue.withCtx(() => [
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent($setup.icon)))
]),
_: 1 /* STABLE */
}, 8 /* PROPS */, ["class"]),
vue.createElementVNode("div", {
class: vue.normalizeClass([$setup.ns.e('title')])
}, vue.toDisplayString(_ctx.title), 3 /* TEXT, CLASS */)
], 2 /* CLASS */),
vue.createElementVNode("div", {
class: vue.normalizeClass([$setup.ns.e('content')])
}, [
($setup.isString)
? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 0 }, [
vue.createTextVNode(vue.toDisplayString(_ctx.content), 1 /* TEXT */)
], 64 /* STABLE_FRAGMENT */))
: vue.createCommentVNode("v-if", true),
($setup.isVNodeDom)
? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.content), { key: 1 }))
: vue.createCommentVNode("v-if", true)
], 2 /* CLASS */)
], 2 /* CLASS */),
(_ctx.footer)
? (vue.openBlock(), vue.createElementBlock("div", {
key: 0,
class: vue.normalizeClass([$setup.ns.e('footer')])
}, [
(_ctx.$slots.footer)
? vue.renderSlot(_ctx.$slots, "footer", { key: 0 })
: (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
(_ctx.cancelButtonShow)
? (vue.openBlock(), vue.createBlock($setup["XButton"], {
key: 0,
text: "",
size: "large",
onClick: $setup.useBeforeCancel
}, {
default: vue.withCtx(() => [
vue.createTextVNode(vue.toDisplayString(_ctx.cancelButtonText), 1 /* TEXT */)
]),
_: 1 /* STABLE */
}, 8 /* PROPS */, ["onClick"]))
: vue.createCommentVNode("v-if", true),
(_ctx.confirmButtonShow)
? (vue.openBlock(), vue.createBlock($setup["XButton"], {
key: 1,
type: "primary",
size: "large",
loading: $setup.isLoading,
onClick: $setup.useBeforeChange
}, {
default: vue.withCtx(() => [
vue.createTextVNode(vue.toDisplayString(_ctx.confirmButtonText), 1 /* TEXT */)
]),
_: 1 /* STABLE */
}, 8 /* PROPS */, ["loading", "onClick"]))
: vue.createCommentVNode("v-if", true)
], 64 /* STABLE_FRAGMENT */))
], 2 /* CLASS */))
: vue.createCommentVNode("v-if", true)
], 2 /* CLASS */)
], 2 /* CLASS */)
]),
_: 3 /* FORWARDED */
}, 16 /* FULL_PROPS */, ["onClose"]), [
[vue.vShow, $setup.visible]
])
]),
_: 3 /* FORWARDED */
}, 8 /* PROPS */, ["name"]))
}
var MessageBoxNode = /*#__PURE__*/_pluginVue_exportHelper(_sfc_main, [['render',_sfc_render],['__file',"E:\\code\\my-code\\song-ui-ultra\\packages\\components\\messageBox\\src\\message-box.vue"]]);
module.exports = MessageBoxNode;
//# sourceMappingURL=message-box.vue.cjs.map