vxe-pc-ui
Version:
A vue based PC component library
1 lines • 2.79 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.VxeModal=exports.ModalController=exports.Modal=void 0;var _core=require("@vxe-ui/core"),_xeUtils=_interopRequireDefault(require("xe-utils")),_modal=_interopRequireWildcard(require("./src/modal")),_dynamics=require("../dynamics");function _interopRequireWildcard(e,o){var a,r;return"function"==typeof WeakMap&&(a=new WeakMap,r=new WeakMap),(_interopRequireWildcard=function(o,e){if(!e&&o&&o.__esModule)return o;var t,l,n={__proto__:null,default:o};if(null!==o&&("object"==typeof o||"function"==typeof o)){if(t=e?r:a){if(t.has(o))return t.get(o);t.set(o,n)}for(let e in o)"default"!==e&&{}.hasOwnProperty.call(o,e)&&((l=(t=Object.defineProperty)&&Object.getOwnPropertyDescriptor(o,e))&&(l.get||l.set)?t(n,e,l):n[e]=o[e])}return n})(e,o)}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function handleModal(e){return(0,_dynamics.checkDynamic)(),new Promise(n=>{let o=Object.assign({},e);if(o.id&&_modal.allActiveModals.some(e=>e.props.id===o.id))n("exist");else{let t=o.onHide,l=Object.assign(o,{key:_xeUtils.default.uniqueId(),modelValue:!0,onHide(e){var o=_dynamics.dynamicStore.modals;t&&t(e),_dynamics.dynamicStore.modals=o.filter(e=>e.key!==l.key),n(e.type)}});_dynamics.dynamicStore.modals.push(l)}})}function getModal(o){return _xeUtils.default.find(_modal.allActiveModals,e=>e.props.id===o)}function closeModal(e){e=e?[getModal(e)]:_modal.allActiveModals;let o=[];return e.forEach(e=>{e&&o.push(e.close())}),Promise.all(o)}function handleOpen(e,o,t,l){let n;return n=_xeUtils.default.isObject(o)?o:{content:_xeUtils.default.toValueString(o),title:t},handleModal(Object.assign(Object.assign(Object.assign({},e),l),n))}function openModal(e){return handleOpen({type:"modal"},e)}function openAlert(e,o,t){return handleOpen({type:"alert",lockScroll:!0,showHeader:!0,showFooter:!0},e,o,t)}function openConfirm(e,o,t){return handleOpen({type:"confirm",status:"question",lockScroll:!0,showHeader:!0,showFooter:!0},e,o,t)}function openMessage(e,o){return handleOpen({type:"message",mask:!1,lockView:!1,lockScroll:!1,showHeader:!1},e,"",o)}function openNotification(e,o,t){return handleOpen({type:"notification",mask:!1,lockView:!1,lockScroll:!1,showHeader:!0,draggable:!1,position:"top-right",width:320},e,o,t)}let ModalController=exports.ModalController={get:getModal,close:closeModal,open:openModal,alert:openAlert,confirm:openConfirm,message:openMessage,notification:openNotification},VxeModal=exports.VxeModal=Object.assign(_modal.default,{install:function(e){e.component(_modal.default.name,_modal.default)}}),Modal=(_core.VxeUI.modal=ModalController,_dynamics.dynamicApp.use(VxeModal),_core.VxeUI.component(_modal.default),exports.Modal=VxeModal);var _default=exports.default=VxeModal;