@fe6/water-pro
Version:
An enterprise-class UI design language and Vue-based implementation
71 lines (62 loc) • 2.29 kB
JavaScript
import { createVNode as _createVNode } from "vue";
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
import { defineComponent, computed } from 'vue';
import { FullscreenExitOutlined, FullscreenOutlined, CloseOutlined } from '@ant-design/icons-vue';
import useConfigInject from '../../../_util/hooks/useConfigInject';
import PropTypes from '../../../_util/vue-types';
export default defineComponent({
name: 'ModalClose',
components: {
FullscreenExitOutlined: FullscreenExitOutlined,
FullscreenOutlined: FullscreenOutlined,
CloseOutlined: CloseOutlined
},
props: {
canFullscreen: PropTypes.bool.def(true),
fullScreen: PropTypes.bool,
prefixCls: PropTypes.string
},
emits: ['cancel', 'fullscreen'],
setup: function setup(props, _ref) {
var emit = _ref.emit;
var _useConfigInject = useConfigInject('modal-pro-close', props),
prefixClsNew = _useConfigInject.prefixCls;
var getClass = computed(function () {
return [prefixClsNew, "".concat(prefixClsNew, "--custom"), _defineProperty({}, "".concat(prefixClsNew, "--can-full"), props.canFullscreen)];
});
function handleCancel() {
emit('cancel');
}
function handleFullScreen(e) {
e === null || e === void 0 ? void 0 : e.stopPropagation();
e === null || e === void 0 ? void 0 : e.preventDefault();
emit('fullscreen');
}
return {
getClass: getClass,
handleCancel: handleCancel,
handleFullScreen: handleFullScreen
};
},
render: function render() {
var fullScreenNode = null;
if (this.canFullscreen) {
if (this.fullScreen) {
fullScreenNode = _createVNode(FullscreenExitOutlined, {
"role": "full",
"onClick": this.handleFullScreen
}, null);
} else {
fullScreenNode = _createVNode(FullscreenOutlined, {
"role": "close",
"onClick": this.handleFullScreen
}, null);
}
}
return _createVNode("div", {
"class": this.getClass
}, [fullScreenNode, _createVNode(CloseOutlined, {
"onClick": this.handleCancel
}, null)]);
}
});