UNPKG

@fe6/water-pro

Version:

An enterprise-class UI design language and Vue-based implementation

106 lines (82 loc) 2.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useModal = useModal; var _lodashEs = require("lodash"); var _vue = require("vue"); var _env = require("../../../_util/env"); var _warning = _interopRequireDefault(require("../../../_util/warning")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** @format */ var dataTransferRef = (0, _vue.reactive)({}); var visibleData = (0, _vue.reactive)({}); /** * @description: Applicable to independent modal and call outside */ function useModal() { var modalRef = (0, _vue.ref)(null); var loadedRef = (0, _vue.ref)(false); var uidRef = (0, _vue.ref)(''); function register(modalMethod) { var uuid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; uidRef.value = uuid; (0, _env.isProdMode)() && (0, _vue.onUnmounted)(function () { modalRef.value = null; loadedRef.value = false; dataTransferRef[(0, _vue.unref)(uidRef)] = null; }); if ((0, _vue.unref)(loadedRef) && (0, _env.isProdMode)() && modalMethod === (0, _vue.unref)(modalRef)) { return; } modalRef.value = modalMethod; modalMethod.emitVisible = function (visible, uid) { visibleData[uid] = visible; }; } var getInstance = function getInstance() { var instance = (0, _vue.unref)(modalRef); if (!instance) { (0, _warning.default)('useModal instance is undefined!'); } return instance; }; var methods = { setModalProps: function setModalProps(props) { var _a; (_a = getInstance()) === null || _a === void 0 ? void 0 : _a.setModalProps(props); }, getVisible: (0, _vue.computed)(function () { return visibleData[~~(0, _vue.unref)(uidRef)]; }), redoModalHeight: function redoModalHeight() { var _a, _b; (_b = (_a = getInstance()) === null || _a === void 0 ? void 0 : _a.redoModalHeight) === null || _b === void 0 ? void 0 : _b.call(_a); }, openModal: function openModal() { var visible = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; var data = arguments.length > 1 ? arguments[1] : undefined; var openOnSet = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; var _a; (_a = getInstance()) === null || _a === void 0 ? void 0 : _a.setModalProps({ visible: visible }); if (!data) { return; } if (openOnSet) { dataTransferRef[(0, _vue.unref)(uidRef)] = null; dataTransferRef[(0, _vue.unref)(uidRef)] = (0, _vue.toRaw)(data); return; } var equal = (0, _lodashEs.isEqual)((0, _vue.toRaw)(dataTransferRef[(0, _vue.unref)(uidRef)]), (0, _vue.toRaw)(data)); if (!equal) { dataTransferRef[(0, _vue.unref)(uidRef)] = (0, _vue.toRaw)(data); } } }; return { register: register, methods: methods }; }