@opentiny/vue-renderless
Version:
An enterprise-class UI component library, support both Vue.js 2 and Vue.js 3, as well as PC and mobile.
39 lines (38 loc) • 902 B
JavaScript
import "../chunk-G2ADBYYC.js";
const hide = ({ state, emit }) => () => {
state.isLock = true;
setTimeout(() => {
state.isLock = false;
}, 300);
state.showPopover = false;
};
const show = ({ state, props, emit }) => (trigger) => {
if ((trigger ? props.trigger !== trigger : !props.reference) || state.isLock || state.showPopover) {
return;
}
state.showPopover = true;
};
const confirm = ({ state, api }) => () => {
state.showPopover = false;
api.handleEmit("confirm");
};
const handleEmit = ({ state, emit, vm }) => (type) => {
let { events = {} } = vm;
if (events[type]) {
events[type].call(vm, { $modal: vm, type });
} else {
emit(type, state);
}
};
const handleDocumentClick = ({ vm, api }) => (event) => {
if (vm.$refs.popover.handleDocumentClick(event)) {
api.hide();
}
};
export {
confirm,
handleDocumentClick,
handleEmit,
hide,
show
};