UNPKG

28.7 kBJavaScriptView Raw
1module.exports =
2/******/ (function(modules) { // webpackBootstrap
3/******/ // The module cache
4/******/ var installedModules = {};
5
6/******/ // The require function
7/******/ function __webpack_require__(moduleId) {
8
9/******/ // Check if module is in cache
10/******/ if(installedModules[moduleId])
11/******/ return installedModules[moduleId].exports;
12
13/******/ // Create a new module (and put it into the cache)
14/******/ var module = installedModules[moduleId] = {
15/******/ i: moduleId,
16/******/ l: false,
17/******/ exports: {}
18/******/ };
19
20/******/ // Execute the module function
21/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
22
23/******/ // Flag the module as loaded
24/******/ module.l = true;
25
26/******/ // Return the exports of the module
27/******/ return module.exports;
28/******/ }
29
30
31/******/ // expose the modules object (__webpack_modules__)
32/******/ __webpack_require__.m = modules;
33
34/******/ // expose the module cache
35/******/ __webpack_require__.c = installedModules;
36
37/******/ // identity function for calling harmony imports with the correct context
38/******/ __webpack_require__.i = function(value) { return value; };
39
40/******/ // define getter function for harmony exports
41/******/ __webpack_require__.d = function(exports, name, getter) {
42/******/ if(!__webpack_require__.o(exports, name)) {
43/******/ Object.defineProperty(exports, name, {
44/******/ configurable: false,
45/******/ enumerable: true,
46/******/ get: getter
47/******/ });
48/******/ }
49/******/ };
50
51/******/ // getDefaultExport function for compatibility with non-harmony modules
52/******/ __webpack_require__.n = function(module) {
53/******/ var getter = module && module.__esModule ?
54/******/ function getDefault() { return module['default']; } :
55/******/ function getModuleExports() { return module; };
56/******/ __webpack_require__.d(getter, 'a', getter);
57/******/ return getter;
58/******/ };
59
60/******/ // Object.prototype.hasOwnProperty.call
61/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
62
63/******/ // __webpack_public_path__
64/******/ __webpack_require__.p = "";
65
66/******/ // Load entry module and return exports
67/******/ return __webpack_require__(__webpack_require__.s = 229);
68/******/ })
69/************************************************************************/
70/******/ ({
71
72/***/ 0:
73/***/ function(module, exports) {
74
75/* globals __VUE_SSR_CONTEXT__ */
76
77// this module is a runtime utility for cleaner component module output and will
78// be included in the final webpack user bundle
79
80module.exports = function normalizeComponent (
81 rawScriptExports,
82 compiledTemplate,
83 injectStyles,
84 scopeId,
85 moduleIdentifier /* server only */
86) {
87 var esModule
88 var scriptExports = rawScriptExports = rawScriptExports || {}
89
90 // ES6 modules interop
91 var type = typeof rawScriptExports.default
92 if (type === 'object' || type === 'function') {
93 esModule = rawScriptExports
94 scriptExports = rawScriptExports.default
95 }
96
97 // Vue.extend constructor export interop
98 var options = typeof scriptExports === 'function'
99 ? scriptExports.options
100 : scriptExports
101
102 // render functions
103 if (compiledTemplate) {
104 options.render = compiledTemplate.render
105 options.staticRenderFns = compiledTemplate.staticRenderFns
106 }
107
108 // scopedId
109 if (scopeId) {
110 options._scopeId = scopeId
111 }
112
113 var hook
114 if (moduleIdentifier) { // server build
115 hook = function (context) {
116 // 2.3 injection
117 context =
118 context || // cached call
119 (this.$vnode && this.$vnode.ssrContext) || // stateful
120 (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
121 // 2.2 with runInNewContext: true
122 if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
123 context = __VUE_SSR_CONTEXT__
124 }
125 // inject component styles
126 if (injectStyles) {
127 injectStyles.call(this, context)
128 }
129 // register component module identifier for async chunk inferrence
130 if (context && context._registeredComponents) {
131 context._registeredComponents.add(moduleIdentifier)
132 }
133 }
134 // used by ssr in case component is cached and beforeCreate
135 // never gets called
136 options._ssrRegister = hook
137 } else if (injectStyles) {
138 hook = injectStyles
139 }
140
141 if (hook) {
142 var functional = options.functional
143 var existing = functional
144 ? options.render
145 : options.beforeCreate
146 if (!functional) {
147 // inject component registration as beforeCreate hook
148 options.beforeCreate = existing
149 ? [].concat(existing, hook)
150 : [hook]
151 } else {
152 // register for functioal component in vue file
153 options.render = function renderWithStyleInjection (h, context) {
154 hook.call(context)
155 return existing(h, context)
156 }
157 }
158 }
159
160 return {
161 esModule: esModule,
162 exports: scriptExports,
163 options: options
164 }
165}
166
167
168/***/ },
169
170/***/ 1:
171/***/ function(module, exports) {
172
173module.exports = require("vue");
174
175/***/ },
176
177/***/ 123:
178/***/ function(module, exports) {
179
180// removed by extract-text-webpack-plugin
181
182/***/ },
183
184/***/ 13:
185/***/ function(module, exports) {
186
187// removed by extract-text-webpack-plugin
188
189/***/ },
190
191/***/ 148:
192/***/ function(module, exports, __webpack_require__) {
193
194function injectStyle (ssrContext) {
195 __webpack_require__(123)
196}
197var Component = __webpack_require__(0)(
198 /* script */
199 __webpack_require__(70),
200 /* template */
201 __webpack_require__(193),
202 /* styles */
203 injectStyle,
204 /* scopeId */
205 null,
206 /* moduleIdentifier (server only) */
207 null
208)
209
210module.exports = Component.exports
211
212
213/***/ },
214
215/***/ 193:
216/***/ function(module, exports) {
217
218module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
219 return _c('transition', {
220 attrs: {
221 "name": _vm.currentTransition
222 }
223 }, [_c('div', {
224 directives: [{
225 name: "show",
226 rawName: "v-show",
227 value: (_vm.currentValue),
228 expression: "currentValue"
229 }],
230 staticClass: "mint-popup",
231 class: [_vm.position ? 'mint-popup-' + _vm.position : '']
232 }, [_vm._t("default")], 2)])
233},staticRenderFns: []}
234
235/***/ },
236
237/***/ 2:
238/***/ function(module, exports, __webpack_require__) {
239
240"use strict";
241/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(1);
242/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_vue__);
243/* unused harmony export on */
244/* unused harmony export off */
245/* harmony export (binding) */ __webpack_require__.d(exports, "c", function() { return once; });
246/* unused harmony export hasClass */
247/* harmony export (immutable) */ exports["a"] = addClass;
248/* harmony export (immutable) */ exports["b"] = removeClass;
249/* unused harmony export getStyle */
250/* unused harmony export setStyle */
251/* istanbul ignore next */
252
253
254
255var isServer = __WEBPACK_IMPORTED_MODULE_0_vue___default.a.prototype.$isServer;
256var SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g;
257var MOZ_HACK_REGEXP = /^moz([A-Z])/;
258var ieVersion = isServer ? 0 : Number(document.documentMode);
259
260/* istanbul ignore next */
261var trim = function(string) {
262 return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, '');
263};
264/* istanbul ignore next */
265var camelCase = function(name) {
266 return name.replace(SPECIAL_CHARS_REGEXP, function(_, separator, letter, offset) {
267 return offset ? letter.toUpperCase() : letter;
268 }).replace(MOZ_HACK_REGEXP, 'Moz$1');
269};
270
271/* istanbul ignore next */
272var on = (function() {
273 if (!isServer && document.addEventListener) {
274 return function(element, event, handler) {
275 if (element && event && handler) {
276 element.addEventListener(event, handler, false);
277 }
278 };
279 } else {
280 return function(element, event, handler) {
281 if (element && event && handler) {
282 element.attachEvent('on' + event, handler);
283 }
284 };
285 }
286})();
287
288/* istanbul ignore next */
289var off = (function() {
290 if (!isServer && document.removeEventListener) {
291 return function(element, event, handler) {
292 if (element && event) {
293 element.removeEventListener(event, handler, false);
294 }
295 };
296 } else {
297 return function(element, event, handler) {
298 if (element && event) {
299 element.detachEvent('on' + event, handler);
300 }
301 };
302 }
303})();
304
305/* istanbul ignore next */
306var once = function(el, event, fn) {
307 var listener = function() {
308 if (fn) {
309 fn.apply(this, arguments);
310 }
311 off(el, event, listener);
312 };
313 on(el, event, listener);
314};
315
316/* istanbul ignore next */
317function hasClass(el, cls) {
318 if (!el || !cls) return false;
319 if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.');
320 if (el.classList) {
321 return el.classList.contains(cls);
322 } else {
323 return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1;
324 }
325};
326
327/* istanbul ignore next */
328function addClass(el, cls) {
329 if (!el) return;
330 var curClass = el.className;
331 var classes = (cls || '').split(' ');
332
333 for (var i = 0, j = classes.length; i < j; i++) {
334 var clsName = classes[i];
335 if (!clsName) continue;
336
337 if (el.classList) {
338 el.classList.add(clsName);
339 } else {
340 if (!hasClass(el, clsName)) {
341 curClass += ' ' + clsName;
342 }
343 }
344 }
345 if (!el.classList) {
346 el.className = curClass;
347 }
348};
349
350/* istanbul ignore next */
351function removeClass(el, cls) {
352 if (!el || !cls) return;
353 var classes = cls.split(' ');
354 var curClass = ' ' + el.className + ' ';
355
356 for (var i = 0, j = classes.length; i < j; i++) {
357 var clsName = classes[i];
358 if (!clsName) continue;
359
360 if (el.classList) {
361 el.classList.remove(clsName);
362 } else {
363 if (hasClass(el, clsName)) {
364 curClass = curClass.replace(' ' + clsName + ' ', ' ');
365 }
366 }
367 }
368 if (!el.classList) {
369 el.className = trim(curClass);
370 }
371};
372
373/* istanbul ignore next */
374var getStyle = ieVersion < 9 ? function(element, styleName) {
375 if (isServer) return;
376 if (!element || !styleName) return null;
377 styleName = camelCase(styleName);
378 if (styleName === 'float') {
379 styleName = 'styleFloat';
380 }
381 try {
382 switch (styleName) {
383 case 'opacity':
384 try {
385 return element.filters.item('alpha').opacity / 100;
386 } catch (e) {
387 return 1.0;
388 }
389 default:
390 return (element.style[styleName] || element.currentStyle ? element.currentStyle[styleName] : null);
391 }
392 } catch (e) {
393 return element.style[styleName];
394 }
395} : function(element, styleName) {
396 if (isServer) return;
397 if (!element || !styleName) return null;
398 styleName = camelCase(styleName);
399 if (styleName === 'float') {
400 styleName = 'cssFloat';
401 }
402 try {
403 var computed = document.defaultView.getComputedStyle(element, '');
404 return element.style[styleName] || computed ? computed[styleName] : null;
405 } catch (e) {
406 return element.style[styleName];
407 }
408};
409
410/* istanbul ignore next */
411function setStyle(element, styleName, value) {
412 if (!element || !styleName) return;
413
414 if (typeof styleName === 'object') {
415 for (var prop in styleName) {
416 if (styleName.hasOwnProperty(prop)) {
417 setStyle(element, prop, styleName[prop]);
418 }
419 }
420 } else {
421 styleName = camelCase(styleName);
422 if (styleName === 'opacity' && ieVersion < 9) {
423 element.style.filter = isNaN(value) ? '' : 'alpha(opacity=' + value * 100 + ')';
424 } else {
425 element.style[styleName] = value;
426 }
427 }
428};
429
430
431/***/ },
432
433/***/ 229:
434/***/ function(module, exports, __webpack_require__) {
435
436module.exports = __webpack_require__(37);
437
438
439/***/ },
440
441/***/ 37:
442/***/ function(module, exports, __webpack_require__) {
443
444"use strict";
445/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_popup_vue__ = __webpack_require__(148);
446/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src_popup_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__src_popup_vue__);
447Object.defineProperty(exports, "__esModule", { value: true });
448/* harmony reexport (default from non-hamory) */ __webpack_require__.d(exports, "default", function() { return __WEBPACK_IMPORTED_MODULE_0__src_popup_vue___default.a; });
449
450
451
452/***/ },
453
454/***/ 7:
455/***/ function(module, exports, __webpack_require__) {
456
457"use strict";
458/* harmony default export */ exports["a"] = function(target) {
459 var arguments$1 = arguments;
460
461 for (var i = 1, j = arguments.length; i < j; i++) {
462 var source = arguments$1[i] || {};
463 for (var prop in source) {
464 if (source.hasOwnProperty(prop)) {
465 var value = source[prop];
466 if (value !== undefined) {
467 target[prop] = value;
468 }
469 }
470 }
471 }
472
473 return target;
474};;
475
476
477/***/ },
478
479/***/ 70:
480/***/ function(module, exports, __webpack_require__) {
481
482"use strict";
483Object.defineProperty(exports, "__esModule", { value: true });
484/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_mint_ui_src_utils_popup__ = __webpack_require__(8);
485/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(1);
486/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);
487//
488//
489//
490//
491//
492//
493//
494//
495//
496//
497//
498//
499//
500//
501//
502//
503//
504//
505//
506//
507//
508//
509//
510//
511//
512//
513//
514//
515//
516//
517//
518//
519//
520//
521//
522//
523//
524//
525//
526//
527//
528//
529//
530//
531//
532//
533//
534//
535//
536//
537//
538//
539//
540//
541//
542//
543//
544//
545//
546//
547//
548//
549//
550//
551//
552//
553//
554//
555//
556//
557//
558//
559//
560//
561//
562//
563//
564//
565//
566
567
568
569if (!__WEBPACK_IMPORTED_MODULE_1_vue___default.a.prototype.$isServer) {
570 __webpack_require__(13);
571}
572
573/* harmony default export */ exports["default"] = {
574 name: 'mt-popup',
575
576 mixins: [__WEBPACK_IMPORTED_MODULE_0_mint_ui_src_utils_popup__["a" /* default */]],
577
578 props: {
579 modal: {
580 default: true
581 },
582
583 modalFade: {
584 default: false
585 },
586
587 lockScroll: {
588 default: false
589 },
590
591 closeOnClickModal: {
592 default: true
593 },
594
595 popupTransition: {
596 type: String,
597 default: 'popup-slide'
598 },
599
600 position: {
601 type: String,
602 default: ''
603 }
604 },
605
606 data: function data() {
607 return {
608 currentValue: false,
609 currentTransition: this.popupTransition
610 };
611 },
612
613 watch: {
614 currentValue: function currentValue(val) {
615 this.$emit('input', val);
616 },
617
618 value: function value(val) {
619 this.currentValue = val;
620 }
621 },
622
623 beforeMount: function beforeMount() {
624 if (this.popupTransition !== 'popup-fade') {
625 this.currentTransition = "popup-slide-" + (this.position);
626 }
627 },
628
629 mounted: function mounted() {
630 if (this.value) {
631 this.rendered = true;
632 this.currentValue = true;
633 this.open();
634 }
635 }
636};
637
638
639/***/ },
640
641/***/ 8:
642/***/ function(module, exports, __webpack_require__) {
643
644"use strict";
645/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(1);
646/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_vue__);
647/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_mint_ui_src_utils_merge__ = __webpack_require__(7);
648/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_mint_ui_src_utils_popup_popup_manager__ = __webpack_require__(9);
649/* unused harmony reexport PopupManager */
650
651
652
653
654var idSeed = 1;
655var transitions = [];
656
657var hookTransition = function (transition) {
658 if (transitions.indexOf(transition) !== -1) return;
659
660 var getVueInstance = function (element) {
661 var instance = element.__vue__;
662 if (!instance) {
663 var textNode = element.previousSibling;
664 if (textNode.__vue__) {
665 instance = textNode.__vue__;
666 }
667 }
668 return instance;
669 };
670
671 __WEBPACK_IMPORTED_MODULE_0_vue___default.a.transition(transition, {
672 afterEnter: function afterEnter(el) {
673 var instance = getVueInstance(el);
674
675 if (instance) {
676 instance.doAfterOpen && instance.doAfterOpen();
677 }
678 },
679 afterLeave: function afterLeave(el) {
680 var instance = getVueInstance(el);
681
682 if (instance) {
683 instance.doAfterClose && instance.doAfterClose();
684 }
685 }
686 });
687};
688
689var scrollBarWidth;
690var getScrollBarWidth = function () {
691 if (__WEBPACK_IMPORTED_MODULE_0_vue___default.a.prototype.$isServer) return;
692 if (scrollBarWidth !== undefined) return scrollBarWidth;
693
694 var outer = document.createElement('div');
695 outer.style.visibility = 'hidden';
696 outer.style.width = '100px';
697 outer.style.position = 'absolute';
698 outer.style.top = '-9999px';
699 document.body.appendChild(outer);
700
701 var widthNoScroll = outer.offsetWidth;
702 outer.style.overflow = 'scroll';
703
704 var inner = document.createElement('div');
705 inner.style.width = '100%';
706 outer.appendChild(inner);
707
708 var widthWithScroll = inner.offsetWidth;
709 outer.parentNode.removeChild(outer);
710
711 return widthNoScroll - widthWithScroll;
712};
713
714var getDOM = function(dom) {
715 if (dom.nodeType === 3) {
716 dom = dom.nextElementSibling || dom.nextSibling;
717 getDOM(dom);
718 }
719 return dom;
720};
721
722/* harmony default export */ exports["a"] = {
723 props: {
724 value: {
725 type: Boolean,
726 default: false
727 },
728 transition: {
729 type: String,
730 default: ''
731 },
732 openDelay: {},
733 closeDelay: {},
734 zIndex: {},
735 modal: {
736 type: Boolean,
737 default: false
738 },
739 modalFade: {
740 type: Boolean,
741 default: true
742 },
743 modalClass: {
744 },
745 lockScroll: {
746 type: Boolean,
747 default: true
748 },
749 closeOnPressEscape: {
750 type: Boolean,
751 default: false
752 },
753 closeOnClickModal: {
754 type: Boolean,
755 default: false
756 }
757 },
758
759 created: function created() {
760 if (this.transition) {
761 hookTransition(this.transition);
762 }
763 },
764
765 beforeMount: function beforeMount() {
766 this._popupId = 'popup-' + idSeed++;
767 __WEBPACK_IMPORTED_MODULE_2_mint_ui_src_utils_popup_popup_manager__["a" /* default */].register(this._popupId, this);
768 },
769
770 beforeDestroy: function beforeDestroy() {
771 __WEBPACK_IMPORTED_MODULE_2_mint_ui_src_utils_popup_popup_manager__["a" /* default */].deregister(this._popupId);
772 __WEBPACK_IMPORTED_MODULE_2_mint_ui_src_utils_popup_popup_manager__["a" /* default */].closeModal(this._popupId);
773 if (this.modal && this.bodyOverflow !== null && this.bodyOverflow !== 'hidden') {
774 document.body.style.overflow = this.bodyOverflow;
775 document.body.style.paddingRight = this.bodyPaddingRight;
776 }
777 this.bodyOverflow = null;
778 this.bodyPaddingRight = null;
779 },
780
781 data: function data() {
782 return {
783 opened: false,
784 bodyOverflow: null,
785 bodyPaddingRight: null,
786 rendered: false
787 };
788 },
789
790 watch: {
791 value: function value(val) {
792 var this$1 = this;
793
794 if (val) {
795 if (this._opening) return;
796 if (!this.rendered) {
797 this.rendered = true;
798 __WEBPACK_IMPORTED_MODULE_0_vue___default.a.nextTick(function () {
799 this$1.open();
800 });
801 } else {
802 this.open();
803 }
804 } else {
805 this.close();
806 }
807 }
808 },
809
810 methods: {
811 open: function open(options) {
812 var this$1 = this;
813
814 if (!this.rendered) {
815 this.rendered = true;
816 this.$emit('input', true);
817 }
818
819 var props = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_mint_ui_src_utils_merge__["a" /* default */])({}, this, options, this.$props);
820
821 if (this._closeTimer) {
822 clearTimeout(this._closeTimer);
823 this._closeTimer = null;
824 }
825 clearTimeout(this._openTimer);
826
827 var openDelay = Number(props.openDelay);
828 if (openDelay > 0) {
829 this._openTimer = setTimeout(function () {
830 this$1._openTimer = null;
831 this$1.doOpen(props);
832 }, openDelay);
833 } else {
834 this.doOpen(props);
835 }
836 },
837
838 doOpen: function doOpen(props) {
839 if (this.$isServer) return;
840 if (this.willOpen && !this.willOpen()) return;
841 if (this.opened) return;
842
843 this._opening = true;
844
845 // 使用 vue-popup 的组件,如果需要和父组件通信显示的状态,应该使用 value,它是一个 prop,
846 // 这样在父组件中用 v-model 即可;否则可以使用 visible,它是一个 data
847 this.visible = true;
848 this.$emit('input', true);
849
850 var dom = getDOM(this.$el);
851
852 var modal = props.modal;
853
854 var zIndex = props.zIndex;
855 if (zIndex) {
856 __WEBPACK_IMPORTED_MODULE_2_mint_ui_src_utils_popup_popup_manager__["a" /* default */].zIndex = zIndex;
857 }
858
859 if (modal) {
860 if (this._closing) {
861 __WEBPACK_IMPORTED_MODULE_2_mint_ui_src_utils_popup_popup_manager__["a" /* default */].closeModal(this._popupId);
862 this._closing = false;
863 }
864 __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);
865 if (props.lockScroll) {
866 if (!this.bodyOverflow) {
867 this.bodyPaddingRight = document.body.style.paddingRight;
868 this.bodyOverflow = document.body.style.overflow;
869 }
870 scrollBarWidth = getScrollBarWidth();
871 var bodyHasOverflow = document.documentElement.clientHeight < document.body.scrollHeight;
872 if (scrollBarWidth > 0 && bodyHasOverflow) {
873 document.body.style.paddingRight = scrollBarWidth + 'px';
874 }
875 document.body.style.overflow = 'hidden';
876 }
877 }
878
879 if (getComputedStyle(dom).position === 'static') {
880 dom.style.position = 'absolute';
881 }
882
883 dom.style.zIndex = __WEBPACK_IMPORTED_MODULE_2_mint_ui_src_utils_popup_popup_manager__["a" /* default */].nextZIndex();
884 this.opened = true;
885
886 this.onOpen && this.onOpen();
887
888 if (!this.transition) {
889 this.doAfterOpen();
890 }
891 },
892
893 doAfterOpen: function doAfterOpen() {
894 this._opening = false;
895 },
896
897 close: function close() {
898 var this$1 = this;
899
900 if (this.willClose && !this.willClose()) return;
901
902 if (this._openTimer !== null) {
903 clearTimeout(this._openTimer);
904 this._openTimer = null;
905 }
906 clearTimeout(this._closeTimer);
907
908 var closeDelay = Number(this.closeDelay);
909
910 if (closeDelay > 0) {
911 this._closeTimer = setTimeout(function () {
912 this$1._closeTimer = null;
913 this$1.doClose();
914 }, closeDelay);
915 } else {
916 this.doClose();
917 }
918 },
919
920 doClose: function doClose() {
921 var this$1 = this;
922
923 this.visible = false;
924 this.$emit('input', false);
925 this._closing = true;
926
927 this.onClose && this.onClose();
928
929 if (this.lockScroll) {
930 setTimeout(function () {
931 if (this$1.modal && this$1.bodyOverflow !== 'hidden') {
932 document.body.style.overflow = this$1.bodyOverflow;
933 document.body.style.paddingRight = this$1.bodyPaddingRight;
934 }
935 this$1.bodyOverflow = null;
936 this$1.bodyPaddingRight = null;
937 }, 200);
938 }
939
940 this.opened = false;
941
942 if (!this.transition) {
943 this.doAfterClose();
944 }
945 },
946
947 doAfterClose: function doAfterClose() {
948 __WEBPACK_IMPORTED_MODULE_2_mint_ui_src_utils_popup_popup_manager__["a" /* default */].closeModal(this._popupId);
949 this._closing = false;
950 }
951 }
952};
953
954
955
956
957/***/ },
958
959/***/ 9:
960/***/ function(module, exports, __webpack_require__) {
961
962"use strict";
963/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(1);
964/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_vue__);
965/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_mint_ui_src_utils_dom__ = __webpack_require__(2);
966
967
968
969var hasModal = false;
970
971var getModal = function() {
972 if (__WEBPACK_IMPORTED_MODULE_0_vue___default.a.prototype.$isServer) return;
973 var modalDom = PopupManager.modalDom;
974 if (modalDom) {
975 hasModal = true;
976 } else {
977 hasModal = false;
978 modalDom = document.createElement('div');
979 PopupManager.modalDom = modalDom;
980
981 modalDom.addEventListener('touchmove', function(event) {
982 event.preventDefault();
983 event.stopPropagation();
984 });
985
986 modalDom.addEventListener('click', function() {
987 PopupManager.doOnModalClick && PopupManager.doOnModalClick();
988 });
989 }
990
991 return modalDom;
992};
993
994var instances = {};
995
996var PopupManager = {
997 zIndex: 2000,
998
999 modalFade: true,
1000
1001 getInstance: function(id) {
1002 return instances[id];
1003 },
1004
1005 register: function(id, instance) {
1006 if (id && instance) {
1007 instances[id] = instance;
1008 }
1009 },
1010
1011 deregister: function(id) {
1012 if (id) {
1013 instances[id] = null;
1014 delete instances[id];
1015 }
1016 },
1017
1018 nextZIndex: function() {
1019 return PopupManager.zIndex++;
1020 },
1021
1022 modalStack: [],
1023
1024 doOnModalClick: function() {
1025 var topItem = PopupManager.modalStack[PopupManager.modalStack.length - 1];
1026 if (!topItem) return;
1027
1028 var instance = PopupManager.getInstance(topItem.id);
1029 if (instance && instance.closeOnClickModal) {
1030 instance.close();
1031 }
1032 },
1033
1034 openModal: function(id, zIndex, dom, modalClass, modalFade) {
1035 if (__WEBPACK_IMPORTED_MODULE_0_vue___default.a.prototype.$isServer) return;
1036 if (!id || zIndex === undefined) return;
1037 this.modalFade = modalFade;
1038
1039 var modalStack = this.modalStack;
1040
1041 for (var i = 0, j = modalStack.length; i < j; i++) {
1042 var item = modalStack[i];
1043 if (item.id === id) {
1044 return;
1045 }
1046 }
1047
1048 var modalDom = getModal();
1049
1050 __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_mint_ui_src_utils_dom__["a" /* addClass */])(modalDom, 'v-modal');
1051 if (this.modalFade && !hasModal) {
1052 __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_mint_ui_src_utils_dom__["a" /* addClass */])(modalDom, 'v-modal-enter');
1053 }
1054 if (modalClass) {
1055 var classArr = modalClass.trim().split(/\s+/);
1056 classArr.forEach(function (item) { return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_mint_ui_src_utils_dom__["a" /* addClass */])(modalDom, item); });
1057 }
1058 setTimeout(function () {
1059 __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_mint_ui_src_utils_dom__["b" /* removeClass */])(modalDom, 'v-modal-enter');
1060 }, 200);
1061
1062 if (dom && dom.parentNode && dom.parentNode.nodeType !== 11) {
1063 dom.parentNode.appendChild(modalDom);
1064 } else {
1065 document.body.appendChild(modalDom);
1066 }
1067
1068 if (zIndex) {
1069 modalDom.style.zIndex = zIndex;
1070 }
1071 modalDom.style.display = '';
1072
1073 this.modalStack.push({ id: id, zIndex: zIndex, modalClass: modalClass });
1074 },
1075
1076 closeModal: function(id) {
1077 var modalStack = this.modalStack;
1078 var modalDom = getModal();
1079
1080 if (modalStack.length > 0) {
1081 var topItem = modalStack[modalStack.length - 1];
1082 if (topItem.id === id) {
1083 if (topItem.modalClass) {
1084 var classArr = topItem.modalClass.trim().split(/\s+/);
1085 classArr.forEach(function (item) { return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_mint_ui_src_utils_dom__["b" /* removeClass */])(modalDom, item); });
1086 }
1087
1088 modalStack.pop();
1089 if (modalStack.length > 0) {
1090 modalDom.style.zIndex = modalStack[modalStack.length - 1].zIndex;
1091 }
1092 } else {
1093 for (var i = modalStack.length - 1; i >= 0; i--) {
1094 if (modalStack[i].id === id) {
1095 modalStack.splice(i, 1);
1096 break;
1097 }
1098 }
1099 }
1100 }
1101
1102 if (modalStack.length === 0) {
1103 if (this.modalFade) {
1104 __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_mint_ui_src_utils_dom__["a" /* addClass */])(modalDom, 'v-modal-leave');
1105 }
1106 setTimeout(function () {
1107 if (modalStack.length === 0) {
1108 if (modalDom.parentNode) modalDom.parentNode.removeChild(modalDom);
1109 modalDom.style.display = 'none';
1110 PopupManager.modalDom = undefined;
1111 }
1112 __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1_mint_ui_src_utils_dom__["b" /* removeClass */])(modalDom, 'v-modal-leave');
1113 }, 200);
1114 }
1115 }
1116};
1117!__WEBPACK_IMPORTED_MODULE_0_vue___default.a.prototype.$isServer && window.addEventListener('keydown', function(event) {
1118 if (event.keyCode === 27) { // ESC
1119 if (PopupManager.modalStack.length > 0) {
1120 var topItem = PopupManager.modalStack[PopupManager.modalStack.length - 1];
1121 if (!topItem) return;
1122 var instance = PopupManager.getInstance(topItem.id);
1123 if (instance.closeOnPressEscape) {
1124 instance.close();
1125 }
1126 }
1127 }
1128});
1129
1130/* harmony default export */ exports["a"] = PopupManager;
1131
1132
1133/***/ }
1134
1135/******/ });
\No newline at end of file