| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135 |
- module.exports =
- /******/ (function(modules) { // webpackBootstrap
- /******/ // The module cache
- /******/ var installedModules = {};
- /******/ // The require function
- /******/ function __webpack_require__(moduleId) {
- /******/ // Check if module is in cache
- /******/ if(installedModules[moduleId])
- /******/ return installedModules[moduleId].exports;
- /******/ // Create a new module (and put it into the cache)
- /******/ var module = installedModules[moduleId] = {
- /******/ i: moduleId,
- /******/ l: false,
- /******/ exports: {}
- /******/ };
- /******/ // Execute the module function
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
- /******/ // Flag the module as loaded
- /******/ module.l = true;
- /******/ // Return the exports of the module
- /******/ return module.exports;
- /******/ }
- /******/ // expose the modules object (__webpack_modules__)
- /******/ __webpack_require__.m = modules;
- /******/ // expose the module cache
- /******/ __webpack_require__.c = installedModules;
- /******/ // identity function for calling harmony imports with the correct context
- /******/ __webpack_require__.i = function(value) { return value; };
- /******/ // define getter function for harmony exports
- /******/ __webpack_require__.d = function(exports, name, getter) {
- /******/ if(!__webpack_require__.o(exports, name)) {
- /******/ Object.defineProperty(exports, name, {
- /******/ configurable: false,
- /******/ enumerable: true,
- /******/ get: getter
- /******/ });
- /******/ }
- /******/ };
- /******/ // getDefaultExport function for compatibility with non-harmony modules
- /******/ __webpack_require__.n = function(module) {
- /******/ var getter = module && module.__esModule ?
- /******/ function getDefault() { return module['default']; } :
- /******/ function getModuleExports() { return module; };
- /******/ __webpack_require__.d(getter, 'a', getter);
- /******/ return getter;
- /******/ };
- /******/ // Object.prototype.hasOwnProperty.call
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
- /******/ // __webpack_public_path__
- /******/ __webpack_require__.p = "";
- /******/ // Load entry module and return exports
- /******/ return __webpack_require__(__webpack_require__.s = 229);
- /******/ })
- /************************************************************************/
- /******/ ({
- /***/ 0:
- /***/ function(module, exports) {
- /* globals __VUE_SSR_CONTEXT__ */
- // this module is a runtime utility for cleaner component module output and will
- // be included in the final webpack user bundle
- module.exports = function normalizeComponent (
- rawScriptExports,
- compiledTemplate,
- injectStyles,
- scopeId,
- moduleIdentifier /* server only */
- ) {
- var esModule
- var scriptExports = rawScriptExports = rawScriptExports || {}
- // ES6 modules interop
- var type = typeof rawScriptExports.default
- if (type === 'object' || type === 'function') {
- esModule = rawScriptExports
- scriptExports = rawScriptExports.default
- }
- // Vue.extend constructor export interop
- var options = typeof scriptExports === 'function'
- ? scriptExports.options
- : scriptExports
- // render functions
- if (compiledTemplate) {
- options.render = compiledTemplate.render
- options.staticRenderFns = compiledTemplate.staticRenderFns
- }
- // scopedId
- if (scopeId) {
- options._scopeId = scopeId
- }
- var hook
- if (moduleIdentifier) { // server build
- hook = function (context) {
- // 2.3 injection
- context =
- context || // cached call
- (this.$vnode && this.$vnode.ssrContext) || // stateful
- (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
- // 2.2 with runInNewContext: true
- if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
- context = __VUE_SSR_CONTEXT__
- }
- // inject component styles
- if (injectStyles) {
- injectStyles.call(this, context)
- }
- // register component module identifier for async chunk inferrence
- if (context && context._registeredComponents) {
- context._registeredComponents.add(moduleIdentifier)
- }
- }
- // used by ssr in case component is cached and beforeCreate
- // never gets called
- options._ssrRegister = hook
- } else if (injectStyles) {
- hook = injectStyles
- }
- if (hook) {
- var functional = options.functional
- var existing = functional
- ? options.render
- : options.beforeCreate
- if (!functional) {
- // inject component registration as beforeCreate hook
- options.beforeCreate = existing
- ? [].concat(existing, hook)
- : [hook]
- } else {
- // register for functioal component in vue file
- options.render = function renderWithStyleInjection (h, context) {
- hook.call(context)
- return existing(h, context)
- }
- }
- }
- return {
- esModule: esModule,
- exports: scriptExports,
- options: options
- }
- }
- /***/ },
- /***/ 1:
- /***/ function(module, exports) {
- module.exports = require("vue");
- /***/ },
- /***/ 123:
- /***/ function(module, exports) {
- // removed by extract-text-webpack-plugin
- /***/ },
- /***/ 13:
- /***/ function(module, exports) {
- // removed by extract-text-webpack-plugin
- /***/ },
- /***/ 148:
- /***/ function(module, exports, __webpack_require__) {
- function injectStyle (ssrContext) {
- __webpack_require__(123)
- }
- var Component = __webpack_require__(0)(
- /* script */
- __webpack_require__(70),
- /* template */
- __webpack_require__(193),
- /* styles */
- injectStyle,
- /* scopeId */
- null,
- /* moduleIdentifier (server only) */
- null
- )
- module.exports = Component.exports
- /***/ },
- /***/ 193:
- /***/ function(module, exports) {
- module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
- return _c('transition', {
- attrs: {
- "name": _vm.currentTransition
- }
- }, [_c('div', {
- directives: [{
- name: "show",
- rawName: "v-show",
- value: (_vm.currentValue),
- expression: "currentValue"
- }],
- staticClass: "mint-popup",
- class: [_vm.position ? 'mint-popup-' + _vm.position : '']
- }, [_vm._t("default")], 2)])
- },staticRenderFns: []}
- /***/ },
- /***/ 2:
- /***/ function(module, exports, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_vue__);
- /* unused harmony export on */
- /* unused harmony export off */
- /* harmony export (binding) */ __webpack_require__.d(exports, "c", function() { return once; });
- /* unused harmony export hasClass */
- /* harmony export (immutable) */ exports["a"] = addClass;
- /* harmony export (immutable) */ exports["b"] = removeClass;
- /* unused harmony export getStyle */
- /* unused harmony export setStyle */
- /* istanbul ignore next */
- var isServer = __WEBPACK_IMPORTED_MODULE_0_vue___default.a.prototype.$isServer;
- var SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g;
- var MOZ_HACK_REGEXP = /^moz([A-Z])/;
- var ieVersion = isServer ? 0 : Number(document.documentMode);
- /* istanbul ignore next */
- var trim = function(string) {
- return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, '');
- };
- /* istanbul ignore next */
- var camelCase = function(name) {
- return name.replace(SPECIAL_CHARS_REGEXP, function(_, separator, letter, offset) {
- return offset ? letter.toUpperCase() : letter;
- }).replace(MOZ_HACK_REGEXP, 'Moz$1');
- };
- /* istanbul ignore next */
- var on = (function() {
- if (!isServer && document.addEventListener) {
- return function(element, event, handler) {
- if (element && event && handler) {
- element.addEventListener(event, handler, false);
- }
- };
- } else {
- return function(element, event, handler) {
- if (element && event && handler) {
- element.attachEvent('on' + event, handler);
- }
- };
- }
- })();
- /* istanbul ignore next */
- var off = (function() {
- if (!isServer && document.removeEventListener) {
- return function(element, event, handler) {
- if (element && event) {
- element.removeEventListener(event, handler, false);
- }
- };
- } else {
- return function(element, event, handler) {
- if (element && event) {
- element.detachEvent('on' + event, handler);
- }
- };
- }
- })();
- /* istanbul ignore next */
- var once = function(el, event, fn) {
- var listener = function() {
- if (fn) {
- fn.apply(this, arguments);
- }
- off(el, event, listener);
- };
- on(el, event, listener);
- };
- /* istanbul ignore next */
- function hasClass(el, cls) {
- if (!el || !cls) return false;
- if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.');
- if (el.classList) {
- return el.classList.contains(cls);
- } else {
- return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1;
- }
- };
- /* istanbul ignore next */
- function addClass(el, cls) {
- if (!el) return;
- var curClass = el.className;
- var classes = (cls || '').split(' ');
- for (var i = 0, j = classes.length; i < j; i++) {
- var clsName = classes[i];
- if (!clsName) continue;
- if (el.classList) {
- el.classList.add(clsName);
- } else {
- if (!hasClass(el, clsName)) {
- curClass += ' ' + clsName;
- }
- }
- }
- if (!el.classList) {
- el.className = curClass;
- }
- };
- /* istanbul ignore next */
- function removeClass(el, cls) {
- if (!el || !cls) return;
- var classes = cls.split(' ');
- var curClass = ' ' + el.className + ' ';
- for (var i = 0, j = classes.length; i < j; i++) {
- var clsName = classes[i];
- if (!clsName) continue;
- if (el.classList) {
- el.classList.remove(clsName);
- } else {
- if (hasClass(el, clsName)) {
- curClass = curClass.replace(' ' + clsName + ' ', ' ');
- }
- }
- }
- if (!el.classList) {
- el.className = trim(curClass);
- }
- };
- /* istanbul ignore next */
- var getStyle = ieVersion < 9 ? function(element, styleName) {
- if (isServer) return;
- if (!element || !styleName) return null;
- styleName = camelCase(styleName);
- if (styleName === 'float') {
- styleName = 'styleFloat';
- }
- try {
- switch (styleName) {
- case 'opacity':
- try {
- return element.filters.item('alpha').opacity / 100;
- } catch (e) {
- return 1.0;
- }
- default:
- return (element.style[styleName] || element.currentStyle ? element.currentStyle[styleName] : null);
- }
- } catch (e) {
- return element.style[styleName];
- }
- } : function(element, styleName) {
- if (isServer) return;
- if (!element || !styleName) return null;
- styleName = camelCase(styleName);
- if (styleName === 'float') {
- styleName = 'cssFloat';
- }
- try {
- var computed = document.defaultView.getComputedStyle(element, '');
- return element.style[styleName] || computed ? computed[styleName] : null;
- } catch (e) {
- return element.style[styleName];
- }
- };
- /* istanbul ignore next */
- function setStyle(element, styleName, value) {
- if (!element || !styleName) return;
- if (typeof styleName === 'object') {
- for (var prop in styleName) {
- if (styleName.hasOwnProperty(prop)) {
- setStyle(element, prop, styleName[prop]);
- }
- }
- } else {
- styleName = camelCase(styleName);
- if (styleName === 'opacity' && ieVersion < 9) {
- element.style.filter = isNaN(value) ? '' : 'alpha(opacity=' + value * 100 + ')';
- } else {
- element.style[styleName] = value;
- }
- }
- };
- /***/ },
- /***/ 229:
- /***/ function(module, exports, __webpack_require__) {
- module.exports = __webpack_require__(37);
- /***/ },
- /***/ 37:
- /***/ function(module, exports, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_popup_vue__ = __webpack_require__(148);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_popup_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__src_popup_vue__);
- Object.defineProperty(exports, "__esModule", { value: true });
- /* harmony reexport (default from non-hamory) */ __webpack_require__.d(exports, "default", function() { return __WEBPACK_IMPORTED_MODULE_0__src_popup_vue___default.a; });
- /***/ },
- /***/ 7:
- /***/ function(module, exports, __webpack_require__) {
- "use strict";
- /* harmony default export */ exports["a"] = function(target) {
- var arguments$1 = arguments;
- for (var i = 1, j = arguments.length; i < j; i++) {
- var source = arguments$1[i] || {};
- for (var prop in source) {
- if (source.hasOwnProperty(prop)) {
- var value = source[prop];
- if (value !== undefined) {
- target[prop] = value;
- }
- }
- }
- }
- return target;
- };;
- /***/ },
- /***/ 70:
- /***/ function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_mint_ui_src_utils_popup__ = __webpack_require__(8);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- if (!__WEBPACK_IMPORTED_MODULE_1_vue___default.a.prototype.$isServer) {
- __webpack_require__(13);
- }
- /* harmony default export */ exports["default"] = {
- name: 'mt-popup',
- mixins: [__WEBPACK_IMPORTED_MODULE_0_mint_ui_src_utils_popup__["a" /* default */]],
- props: {
- modal: {
- default: true
- },
- modalFade: {
- default: false
- },
- lockScroll: {
- default: false
- },
- closeOnClickModal: {
- default: true
- },
- popupTransition: {
- type: String,
- default: 'popup-slide'
- },
- position: {
- type: String,
- default: ''
- }
- },
- data: function data() {
- return {
- currentValue: false,
- currentTransition: this.popupTransition
- };
- },
- watch: {
- currentValue: function currentValue(val) {
- this.$emit('input', val);
- },
- value: function value(val) {
- this.currentValue = val;
- }
- },
- beforeMount: function beforeMount() {
- if (this.popupTransition !== 'popup-fade') {
- this.currentTransition = "popup-slide-" + (this.position);
- }
- },
- mounted: function mounted() {
- if (this.value) {
- this.rendered = true;
- this.currentValue = true;
- this.open();
- }
- }
- };
- /***/ },
- /***/ 8:
- /***/ function(module, exports, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_vue__);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_mint_ui_src_utils_merge__ = __webpack_require__(7);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_mint_ui_src_utils_popup_popup_manager__ = __webpack_require__(9);
- /* unused harmony reexport PopupManager */
- var idSeed = 1;
- var transitions = [];
- var hookTransition = function (transition) {
- if (transitions.indexOf(transition) !== -1) return;
- var getVueInstance = function (element) {
- var instance = element.__vue__;
- if (!instance) {
- var textNode = element.previousSibling;
- if (textNode.__vue__) {
- instance = textNode.__vue__;
- }
- }
- return instance;
- };
- __WEBPACK_IMPORTED_MODULE_0_vue___default.a.transition(transition, {
- afterEnter: function afterEnter(el) {
- var instance = getVueInstance(el);
- if (instance) {
- instance.doAfterOpen && instance.doAfterOpen();
- }
- },
- afterLeave: function afterLeave(el) {
- var instance = getVueInstance(el);
- if (instance) {
- instance.doAfterClose && instance.doAfterClose();
- }
- }
- });
- };
- var scrollBarWidth;
- var getScrollBarWidth = function () {
- if (__WEBPACK_IMPORTED_MODULE_0_vue___default.a.prototype.$isServer) return;
- if (scrollBarWidth !== undefined) return scrollBarWidth;
- var outer = document.createElement('div');
- outer.style.visibility = 'hidden';
- outer.style.width = '100px';
- outer.style.position = 'absolute';
- outer.style.top = '-9999px';
- document.body.appendChild(outer);
- var widthNoScroll = outer.offsetWidth;
- outer.style.overflow = 'scroll';
- var inner = document.createElement('div');
- inner.style.width = '100%';
- outer.appendChild(inner);
- var widthWithScroll = inner.offsetWidth;
- outer.parentNode.removeChild(outer);
- return widthNoScroll - widthWithScroll;
- };
- var getDOM = function(dom) {
- if (dom.nodeType === 3) {
- dom = dom.nextElementSibling || dom.nextSibling;
- getDOM(dom);
- }
- return dom;
- };
- /* harmony default export */ exports["a"] = {
- props: {
- value: {
- type: Boolean,
- default: false
- },
- transition: {
- type: String,
- default: ''
- },
- openDelay: {},
- closeDelay: {},
- zIndex: {},
- modal: {
- type: Boolean,
- default: false
- },
- modalFade: {
- type: Boolean,
- default: true
- },
- modalClass: {
- },
- lockScroll: {
- type: Boolean,
- default: true
- },
- closeOnPressEscape: {
- type: Boolean,
- default: false
- },
- closeOnClickModal: {
- type: Boolean,
- default: false
- }
- },
- created: function created() {
- if (this.transition) {
- hookTransition(this.transition);
- }
- },
- beforeMount: function beforeMount() {
- this._popupId = 'popup-' + idSeed++;
- __WEBPACK_IMPORTED_MODULE_2_mint_ui_src_utils_popup_popup_manager__["a" /* default */].register(this._popupId, this);
- },
- beforeDestroy: function beforeDestroy() {
- __WEBPACK_IMPORTED_MODULE_2_mint_ui_src_utils_popup_popup_manager__["a" /* default */].deregister(this._popupId);
- __WEBPACK_IMPORTED_MODULE_2_mint_ui_src_utils_popup_popup_manager__["a" /* default */].closeModal(this._popupId);
- if (this.modal && this.bodyOverflow !== null && this.bodyOverflow !== 'hidden') {
- document.body.style.overflow = this.bodyOverflow;
- document.body.style.paddingRight = this.bodyPaddingRight;
- }
- this.bodyOverflow = null;
- this.bodyPaddingRight = null;
- },
- data: function data() {
- return {
- opened: false,
- bodyOverflow: null,
- bodyPaddingRight: null,
- rendered: false
- };
- },
- watch: {
- value: function value(val) {
- var this$1 = this;
- if (val) {
- if (this._opening) return;
- if (!this.rendered) {
- this.rendered = true;
- __WEBPACK_IMPORTED_MODULE_0_vue___default.a.nextTick(function () {
- this$1.open();
- });
- } else {
- this.open();
- }
- } else {
- this.close();
- }
- }
- },
- methods: {
- open: function open(options) {
- var this$1 = this;
- if (!this.rendered) {
- this.rendered = true;
- this.$emit('input', true);
- }
- var props = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_mint_ui_src_utils_merge__["a" /* default */])({}, this, options, this.$props);
- if (this._closeTimer) {
- clearTimeout(this._closeTimer);
- this._closeTimer = null;
- }
- clearTimeout(this._openTimer);
- var openDelay = Number(props.openDelay);
- if (openDelay > 0) {
- this._openTimer = setTimeout(function () {
- this$1._openTimer = null;
- this$1.doOpen(props);
- }, openDelay);
- } else {
- this.doOpen(props);
- }
- },
- doOpen: function doOpen(props) {
- if (this.$isServer) return;
- if (this.willOpen && !this.willOpen()) return;
- if (this.opened) return;
- this._opening = true;
- // 使用 vue-popup 的组件,如果需要和父组件通信显示的状态,应该使用 value,它是一个 prop,
- // 这样在父组件中用 v-model 即可;否则可以使用 visible,它是一个 data
- this.visible = true;
- this.$emit('input', true);
- var dom = getDOM(this.$el);
- var modal = props.modal;
- var zIndex = props.zIndex;
- if (zIndex) {
- __WEBPACK_IMPORTED_MODULE_2_mint_ui_src_utils_popup_popup_manager__["a" /* default */].zIndex = zIndex;
- }
- if (modal) {
- if (this._closing) {
- __WEBPACK_IMPORTED_MODULE_2_mint_ui_src_utils_popup_popup_manager__["a" /* default */].closeModal(this._popupId);
- this._closing = false;
- }
- __WEBPACK_IMPORTED_MODULE_2_mint_ui_src_utils_popup_popup_manager__["a" /* default */].openModal(this._popupId, __WEBPACK_IMPORTED_MODULE_2_mint_ui_src_utils_popup_popup_manager__["a" /* default */].nextZIndex(), dom, props.modalClass, props.modalFade);
- if (props.lockScroll) {
- if (!this.bodyOverflow) {
- this.bodyPaddingRight = document.body.style.paddingRight;
- this.bodyOverflow = document.body.style.overflow;
- }
- scrollBarWidth = getScrollBarWidth();
- var bodyHasOverflow = document.documentElement.clientHeight < document.body.scrollHeight;
- if (scrollBarWidth > 0 && bodyHasOverflow) {
- document.body.style.paddingRight = scrollBarWidth + 'px';
- }
- document.body.style.overflow = 'hidden';
- }
- }
- if (getComputedStyle(dom).position === 'static') {
- dom.style.position = 'absolute';
- }
- dom.style.zIndex = __WEBPACK_IMPORTED_MODULE_2_mint_ui_src_utils_popup_popup_manager__["a" /* default */].nextZIndex();
- this.opened = true;
- this.onOpen && this.onOpen();
- if (!this.transition) {
- this.doAfterOpen();
- }
- },
- doAfterOpen: function doAfterOpen() {
- this._opening = false;
- },
- close: function close() {
- var this$1 = this;
- if (this.willClose && !this.willClose()) return;
- if (this._openTimer !== null) {
- clearTimeout(this._openTimer);
- this._openTimer = null;
- }
- clearTimeout(this._closeTimer);
- var closeDelay = Number(this.closeDelay);
- if (closeDelay > 0) {
- this._closeTimer = setTimeout(function () {
- this$1._closeTimer = null;
- this$1.doClose();
- }, closeDelay);
- } else {
- this.doClose();
- }
- },
- doClose: function doClose() {
- var this$1 = this;
- this.visible = false;
- this.$emit('input', false);
- this._closing = true;
- this.onClose && this.onClose();
- if (this.lockScroll) {
- setTimeout(function () {
- if (this$1.modal && this$1.bodyOverflow !== 'hidden') {
- document.body.style.overflow = this$1.bodyOverflow;
- document.body.style.paddingRight = this$1.bodyPaddingRight;
- }
- this$1.bodyOverflow = null;
- this$1.bodyPaddingRight = null;
- }, 200);
- }
- this.opened = false;
- if (!this.transition) {
- this.doAfterClose();
- }
- },
- doAfterClose: function doAfterClose() {
- __WEBPACK_IMPORTED_MODULE_2_mint_ui_src_utils_popup_popup_manager__["a" /* default */].closeModal(this._popupId);
- this._closing = false;
- }
- }
- };
- /***/ },
- /***/ 9:
- /***/ function(module, exports, __webpack_require__) {
- "use strict";
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(1);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_vue__);
- /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_mint_ui_src_utils_dom__ = __webpack_require__(2);
- var hasModal = false;
- var getModal = function() {
- if (__WEBPACK_IMPORTED_MODULE_0_vue___default.a.prototype.$isServer) return;
- var modalDom = PopupManager.modalDom;
- if (modalDom) {
- hasModal = true;
- } else {
- hasModal = false;
- modalDom = document.createElement('div');
- PopupManager.modalDom = modalDom;
- modalDom.addEventListener('touchmove', function(event) {
- event.preventDefault();
- event.stopPropagation();
- });
- modalDom.addEventListener('click', function() {
- PopupManager.doOnModalClick && PopupManager.doOnModalClick();
- });
- }
- return modalDom;
- };
- var instances = {};
- var PopupManager = {
- zIndex: 2000,
- modalFade: true,
- getInstance: function(id) {
- return instances[id];
- },
- register: function(id, instance) {
- if (id && instance) {
- instances[id] = instance;
- }
- },
- deregister: function(id) {
- if (id) {
- instances[id] = null;
- delete instances[id];
- }
- },
- nextZIndex: function() {
- return PopupManager.zIndex++;
- },
- modalStack: [],
- doOnModalClick: function() {
- var topItem = PopupManager.modalStack[PopupManager.modalStack.length - 1];
- if (!topItem) return;
- var instance = PopupManager.getInstance(topItem.id);
- if (instance && instance.closeOnClickModal) {
- instance.close();
- }
- },
- openModal: function(id, zIndex, dom, modalClass, modalFade) {
- if (__WEBPACK_IMPORTED_MODULE_0_vue___default.a.prototype.$isServer) return;
- if (!id || zIndex === undefined) return;
- this.modalFade = modalFade;
- var modalStack = this.modalStack;
- for (var i = 0, j = modalStack.length; i < j; i++) {
- var item = modalStack[i];
- if (item.id === id) {
- return;
- }
- }
- var modalDom = getModal();
- __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_mint_ui_src_utils_dom__["a" /* addClass */])(modalDom, 'v-modal');
- if (this.modalFade && !hasModal) {
- __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_mint_ui_src_utils_dom__["a" /* addClass */])(modalDom, 'v-modal-enter');
- }
- if (modalClass) {
- var classArr = modalClass.trim().split(/\s+/);
- classArr.forEach(function (item) { return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_mint_ui_src_utils_dom__["a" /* addClass */])(modalDom, item); });
- }
- setTimeout(function () {
- __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_mint_ui_src_utils_dom__["b" /* removeClass */])(modalDom, 'v-modal-enter');
- }, 200);
- if (dom && dom.parentNode && dom.parentNode.nodeType !== 11) {
- dom.parentNode.appendChild(modalDom);
- } else {
- document.body.appendChild(modalDom);
- }
- if (zIndex) {
- modalDom.style.zIndex = zIndex;
- }
- modalDom.style.display = '';
- this.modalStack.push({ id: id, zIndex: zIndex, modalClass: modalClass });
- },
- closeModal: function(id) {
- var modalStack = this.modalStack;
- var modalDom = getModal();
- if (modalStack.length > 0) {
- var topItem = modalStack[modalStack.length - 1];
- if (topItem.id === id) {
- if (topItem.modalClass) {
- var classArr = topItem.modalClass.trim().split(/\s+/);
- classArr.forEach(function (item) { return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_mint_ui_src_utils_dom__["b" /* removeClass */])(modalDom, item); });
- }
- modalStack.pop();
- if (modalStack.length > 0) {
- modalDom.style.zIndex = modalStack[modalStack.length - 1].zIndex;
- }
- } else {
- for (var i = modalStack.length - 1; i >= 0; i--) {
- if (modalStack[i].id === id) {
- modalStack.splice(i, 1);
- break;
- }
- }
- }
- }
- if (modalStack.length === 0) {
- if (this.modalFade) {
- __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_mint_ui_src_utils_dom__["a" /* addClass */])(modalDom, 'v-modal-leave');
- }
- setTimeout(function () {
- if (modalStack.length === 0) {
- if (modalDom.parentNode) modalDom.parentNode.removeChild(modalDom);
- modalDom.style.display = 'none';
- PopupManager.modalDom = undefined;
- }
- __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_mint_ui_src_utils_dom__["b" /* removeClass */])(modalDom, 'v-modal-leave');
- }, 200);
- }
- }
- };
- !__WEBPACK_IMPORTED_MODULE_0_vue___default.a.prototype.$isServer && window.addEventListener('keydown', function(event) {
- if (event.keyCode === 27) { // ESC
- if (PopupManager.modalStack.length > 0) {
- var topItem = PopupManager.modalStack[PopupManager.modalStack.length - 1];
- if (!topItem) return;
- var instance = PopupManager.getInstance(topItem.id);
- if (instance.closeOnPressEscape) {
- instance.close();
- }
- }
- }
- });
- /* harmony default export */ exports["a"] = PopupManager;
- /***/ }
- /******/ });
|