UNPKG

yk-smart-ui-test

Version:

A Component Library for Vue.js.

1,373 lines (1,168 loc) 41.2 kB
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; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // 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 = "/dist/"; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 108); /******/ }) /************************************************************************/ /******/ ({ /***/ 0: /***/ (function(module, exports) { module.exports = require("vue"); /***/ }), /***/ 1: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return on; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return off; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return once; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return hasClass; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addClass; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return removeClass; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getStyle; }); /* unused harmony export setStyle */ /* unused harmony export isScroll */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getScrollContainer; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return isInContainer; }); /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /* istanbul ignore next */ var isServer = vue__WEBPACK_IMPORTED_MODULE_0___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 trim(string) { return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, ''); }; /* istanbul ignore next */ var camelCase = function camelCase(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 once(el, event, fn) { var listener = function listener() { 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.setAttribute('class', 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.setAttribute('class', 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 === 'undefined' ? 'undefined' : _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; } } }; var isScroll = function isScroll(el, vertical) { if (isServer) return; var determinedDirection = vertical !== null && vertical !== undefined; var overflow = determinedDirection ? vertical ? getStyle(el, 'overflow-y') : getStyle(el, 'overflow-x') : getStyle(el, 'overflow'); return overflow.match(/(scroll|auto|overlay)/); }; var getScrollContainer = function getScrollContainer(el, vertical) { if (isServer) return; var parent = el; while (parent) { if ([window, document, document.documentElement].includes(parent)) { return window; } if (isScroll(parent, vertical)) { return parent; } parent = parent.parentNode; } return parent; }; var isInContainer = function isInContainer(el, container) { if (isServer || !el || !container) return false; var elRect = el.getBoundingClientRect(); var containerRect = void 0; if ([window, document, document.documentElement, null, undefined].includes(container)) { containerRect = { top: 0, right: window.innerWidth, bottom: window.innerHeight, left: 0 }; } else { containerRect = container.getBoundingClientRect(); } return elRect.top < containerRect.bottom && elRect.bottom > containerRect.top && elRect.right > containerRect.left && elRect.left < containerRect.right; }; /***/ }), /***/ 108: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXTERNAL MODULE: external "vue" var external_vue_ = __webpack_require__(0); var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_); // CONCATENATED MODULE: ./node_modules/_vue-loader@15.9.8@vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/_vue-loader@15.9.8@vue-loader/lib??vue-loader-options!./packages/loading/src/loading.vue?vue&type=template&id=eee0a7ac& var render = function () { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( "transition", { attrs: { name: "el-loading-fade" }, on: { "after-leave": _vm.handleAfterLeave }, }, [ _c( "div", { directives: [ { name: "show", rawName: "v-show", value: _vm.visible, expression: "visible", }, ], staticClass: "yk-loading-mask", class: [_vm.customClass, { "is-fullscreen": _vm.fullscreen }], style: { backgroundColor: _vm.background || "" }, }, [ _c("div", { staticClass: "yk-loading-spinner" }, [ !_vm.spinner ? _c( "svg", { staticClass: "circular", attrs: { viewBox: "25 25 50 50" }, }, [ _c("circle", { staticClass: "path", attrs: { cx: "50", cy: "50", r: "20", fill: "none" }, }), ] ) : _c("i", { class: _vm.spinner }), _vm.text ? _c("p", { staticClass: "yk-loading-text" }, [ _vm._v(_vm._s(_vm.text)), ]) : _vm._e(), ]), ] ), ] ) } var staticRenderFns = [] render._withStripped = true // CONCATENATED MODULE: ./packages/loading/src/loading.vue?vue&type=template&id=eee0a7ac& // CONCATENATED MODULE: ./node_modules/_babel-loader@7.1.5@babel-loader/lib!./node_modules/_vue-loader@15.9.8@vue-loader/lib??vue-loader-options!./packages/loading/src/loading.vue?vue&type=script&lang=js& // // // // // // // // // // // // // // // // // // /* harmony default export */ var loadingvue_type_script_lang_js_ = ({ data: function data() { return { text: null, spinner: null, background: null, fullscreen: true, visible: false, customClass: '' }; }, methods: { handleAfterLeave: function handleAfterLeave() { this.$emit('after-leave'); }, setText: function setText(text) { this.text = text; } } }); // CONCATENATED MODULE: ./packages/loading/src/loading.vue?vue&type=script&lang=js& /* harmony default export */ var src_loadingvue_type_script_lang_js_ = (loadingvue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/_vue-loader@15.9.8@vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(2); // CONCATENATED MODULE: ./packages/loading/src/loading.vue /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( src_loadingvue_type_script_lang_js_, render, staticRenderFns, false, null, null, null ) /* hot reload */ if (false) { var api; } component.options.__file = "packages/loading/src/loading.vue" /* harmony default export */ var loading = (component.exports); // EXTERNAL MODULE: ./src/utils/dom.js var dom = __webpack_require__(1); // EXTERNAL MODULE: ./src/utils/popup/index.js + 1 modules var popup = __webpack_require__(9); // CONCATENATED MODULE: ./src/utils/after-leave.js /** * Bind after-leave event for vue instance. Make sure after-leave is called in any browsers. * * @param {Vue} instance Vue instance. * @param {Function} callback callback of after-leave event * @param {Number} speed the speed of transition, default value is 300ms * @param {Boolean} once weather bind after-leave once. default value is false. */ /* harmony default export */ var after_leave = (function (instance, callback) { var speed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300; var once = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; if (!instance || !callback) throw new Error('instance & callback is required'); var called = false; var afterLeaveCallback = function afterLeaveCallback() { if (called) return; called = true; if (callback) { callback.apply(null, arguments); } }; if (once) { instance.$once('after-leave', afterLeaveCallback); } else { instance.$on('after-leave', afterLeaveCallback); } setTimeout(function () { afterLeaveCallback(); }, speed + 100); });; // CONCATENATED MODULE: ./packages/loading/src/directive.js var Mask = external_vue_default.a.extend(loading); var loadingDirective = {}; loadingDirective.install = function (Vue) { if (Vue.prototype.$isServer) return; var toggleLoading = function toggleLoading(el, binding) { if (binding.value) { Vue.nextTick(function () { if (binding.modifiers.fullscreen) { el.originalPosition = Object(dom["c" /* getStyle */])(document.body, 'position'); el.originalOverflow = Object(dom["c" /* getStyle */])(document.body, 'overflow'); el.maskStyle.zIndex = popup["a" /* PopupManager */].nextZIndex(); Object(dom["a" /* addClass */])(el.mask, 'is-fullscreen'); insertDom(document.body, el, binding); } else { Object(dom["i" /* removeClass */])(el.mask, 'is-fullscreen'); if (binding.modifiers.body) { el.originalPosition = Object(dom["c" /* getStyle */])(document.body, 'position'); ['top', 'left'].forEach(function (property) { var scroll = property === 'top' ? 'scrollTop' : 'scrollLeft'; el.maskStyle[property] = el.getBoundingClientRect()[property] + document.body[scroll] + document.documentElement[scroll] - parseInt(Object(dom["c" /* getStyle */])(document.body, 'margin-' + property), 10) + 'px'; }); ['height', 'width'].forEach(function (property) { el.maskStyle[property] = el.getBoundingClientRect()[property] + 'px'; }); insertDom(document.body, el, binding); } else { el.originalPosition = Object(dom["c" /* getStyle */])(el, 'position'); insertDom(el, el, binding); } } }); } else { after_leave(el.instance, function (_) { if (!el.instance.hiding) return; el.domVisible = false; var target = binding.modifiers.fullscreen || binding.modifiers.body ? document.body : el; Object(dom["i" /* removeClass */])(target, 'yk-loading-parent--relative'); Object(dom["i" /* removeClass */])(target, 'yk-loading-parent--hidden'); el.instance.hiding = false; }, 300, true); el.instance.visible = false; el.instance.hiding = true; } }; var insertDom = function insertDom(parent, el, binding) { if (!el.domVisible && Object(dom["c" /* getStyle */])(el, 'display') !== 'none' && Object(dom["c" /* getStyle */])(el, 'visibility') !== 'hidden') { Object.keys(el.maskStyle).forEach(function (property) { el.mask.style[property] = el.maskStyle[property]; }); if (el.originalPosition !== 'absolute' && el.originalPosition !== 'fixed') { Object(dom["a" /* addClass */])(parent, 'yk-loading-parent--relative'); } if (binding.modifiers.fullscreen && binding.modifiers.lock) { Object(dom["a" /* addClass */])(parent, 'yk-loading-parent--hidden'); } el.domVisible = true; parent.appendChild(el.mask); Vue.nextTick(function () { if (el.instance.hiding) { el.instance.$emit('after-leave'); } else { el.instance.visible = true; } }); el.domInserted = true; } else if (el.domVisible && el.instance.hiding === true) { el.instance.visible = true; el.instance.hiding = false; } }; Vue.directive('loading', { bind: function bind(el, binding, vnode) { var textExr = el.getAttribute('yk-loading-text'); var spinnerExr = el.getAttribute('yk-loading-spinner'); var backgroundExr = el.getAttribute('yk-loading-background'); var customClassExr = el.getAttribute('yk-loading-custom-class'); var vm = vnode.context; var mask = new Mask({ el: document.createElement('div'), data: { text: vm && vm[textExr] || textExr, spinner: vm && vm[spinnerExr] || spinnerExr, background: vm && vm[backgroundExr] || backgroundExr, customClass: vm && vm[customClassExr] || customClassExr, fullscreen: !!binding.modifiers.fullscreen } }); el.instance = mask; el.mask = mask.$el; el.maskStyle = {}; binding.value && toggleLoading(el, binding); }, update: function update(el, binding) { el.instance.setText(el.getAttribute('yk-loading-text')); if (binding.oldValue !== binding.value) { toggleLoading(el, binding); } }, unbind: function unbind(el, binding) { if (el.domInserted) { el.mask && el.mask.parentNode && el.mask.parentNode.removeChild(el.mask); toggleLoading(el, { value: false, modifiers: binding.modifiers }); } el.instance && el.instance.$destroy(); } }); }; /* harmony default export */ var directive = (loadingDirective); // EXTERNAL MODULE: ./src/utils/merge.js var merge = __webpack_require__(7); // CONCATENATED MODULE: ./packages/loading/src/index.js var LoadingConstructor = external_vue_default.a.extend(loading); var defaults = { text: null, fullscreen: true, body: false, lock: false, customClass: '' }; var fullscreenLoading = void 0; LoadingConstructor.prototype.originalPosition = ''; LoadingConstructor.prototype.originalOverflow = ''; LoadingConstructor.prototype.close = function () { var _this = this; if (this.fullscreen) { fullscreenLoading = undefined; } after_leave(this, function (_) { var target = _this.fullscreen || _this.body ? document.body : _this.target; Object(dom["i" /* removeClass */])(target, 'el-loading-parent--relative'); Object(dom["i" /* removeClass */])(target, 'el-loading-parent--hidden'); if (_this.$el && _this.$el.parentNode) { _this.$el.parentNode.removeChild(_this.$el); } _this.$destroy(); }, 300); this.visible = false; }; var src_addStyle = function addStyle(options, parent, instance) { var maskStyle = {}; if (options.fullscreen) { instance.originalPosition = Object(dom["c" /* getStyle */])(document.body, 'position'); instance.originalOverflow = Object(dom["c" /* getStyle */])(document.body, 'overflow'); maskStyle.zIndex = popup["a" /* PopupManager */].nextZIndex(); } else if (options.body) { instance.originalPosition = Object(dom["c" /* getStyle */])(document.body, 'position'); ['top', 'left'].forEach(function (property) { var scroll = property === 'top' ? 'scrollTop' : 'scrollLeft'; maskStyle[property] = options.target.getBoundingClientRect()[property] + document.body[scroll] + document.documentElement[scroll] + 'px'; }); ['height', 'width'].forEach(function (property) { maskStyle[property] = options.target.getBoundingClientRect()[property] + 'px'; }); } else { instance.originalPosition = Object(dom["c" /* getStyle */])(parent, 'position'); } Object.keys(maskStyle).forEach(function (property) { instance.$el.style[property] = maskStyle[property]; }); }; var src_Loading = function Loading() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; if (external_vue_default.a.prototype.$isServer) return; options = Object(merge["a" /* default */])({}, defaults, options); if (typeof options.target === 'string') { options.target = document.querySelector(options.target); } options.target = options.target || document.body; if (options.target !== document.body) { options.fullscreen = false; } else { options.body = true; } if (options.fullscreen && fullscreenLoading) { return fullscreenLoading; } var parent = options.body ? document.body : options.target; var instance = new LoadingConstructor({ el: document.createElement('div'), data: options }); src_addStyle(options, parent, instance); if (instance.originalPosition !== 'absolute' && instance.originalPosition !== 'fixed') { Object(dom["a" /* addClass */])(parent, 'el-loading-parent--relative'); } if (options.fullscreen && options.lock) { Object(dom["a" /* addClass */])(parent, 'el-loading-parent--hidden'); } parent.appendChild(instance.$el); external_vue_default.a.nextTick(function () { instance.visible = true; }); if (options.fullscreen) { fullscreenLoading = instance; } return instance; }; /* harmony default export */ var src = (src_Loading); // CONCATENATED MODULE: ./packages/loading/index.js /* harmony default export */ var packages_loading = __webpack_exports__["default"] = ({ install: function install(Vue) { Vue.use(directive); Vue.prototype.$loading = src; }, directive: directive, service: src }); /***/ }), /***/ 2: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; }); /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent ( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, /* server only */ shadowMode /* vue-cli only */ ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + 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 = shadowMode ? function () { injectStyles.call( this, (options.functional ? this.parent : this).$root.$options.shadowRoot ) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functional component in vue file var originalRender = options.render options.render = function renderWithStyleInjection (h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } /***/ }), /***/ 7: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony default export */ __webpack_exports__["a"] = (function (target) { for (var i = 1, j = arguments.length; i < j; i++) { var source = arguments[i] || {}; for (var prop in source) { if (source.hasOwnProperty(prop)) { var value = source[prop]; if (value !== undefined) { target[prop] = value; } } } } return target; });; /***/ }), /***/ 8: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__); var scrollBarWidth = void 0; /* harmony default export */ __webpack_exports__["a"] = (function () { if (vue__WEBPACK_IMPORTED_MODULE_0___default.a.prototype.$isServer) return 0; if (scrollBarWidth !== undefined) return scrollBarWidth; var outer = document.createElement('div'); outer.className = 'el-scrollbar__wrap'; 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); scrollBarWidth = widthNoScroll - widthWithScroll; return scrollBarWidth; });; /***/ }), /***/ 9: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ popup_manager; }); // EXTERNAL MODULE: external "vue" var external_vue_ = __webpack_require__(0); var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_); // EXTERNAL MODULE: ./src/utils/merge.js var merge = __webpack_require__(7); // EXTERNAL MODULE: ./src/utils/dom.js var utils_dom = __webpack_require__(1); // CONCATENATED MODULE: ./src/utils/popup/popup-manager.js var hasModal = false; var hasInitZIndex = false; var popup_manager_zIndex = void 0; var popup_manager_getModal = function getModal() { if (external_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 = { modalFade: true, getInstance: function getInstance(id) { return instances[id]; }, register: function register(id, instance) { if (id && instance) { instances[id] = instance; } }, deregister: function deregister(id) { if (id) { instances[id] = null; delete instances[id]; } }, nextZIndex: function nextZIndex() { return PopupManager.zIndex++; }, modalStack: [], doOnModalClick: function doOnModalClick() { 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 openModal(id, zIndex, dom, modalClass, modalFade) { if (external_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 = popup_manager_getModal(); Object(utils_dom["a" /* addClass */])(modalDom, 'v-modal'); if (this.modalFade && !hasModal) { Object(utils_dom["a" /* addClass */])(modalDom, 'v-modal-enter'); } if (modalClass) { var classArr = modalClass.trim().split(/\s+/); classArr.forEach(function (item) { return Object(utils_dom["a" /* addClass */])(modalDom, item); }); } setTimeout(function () { Object(utils_dom["i" /* 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.tabIndex = 0; modalDom.style.display = ''; this.modalStack.push({ id: id, zIndex: zIndex, modalClass: modalClass }); }, closeModal: function closeModal(id) { var modalStack = this.modalStack; var modalDom = popup_manager_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 Object(utils_dom["i" /* 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) { Object(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; } Object(utils_dom["i" /* removeClass */])(modalDom, 'v-modal-leave'); }, 200); } } }; Object.defineProperty(PopupManager, 'zIndex', { configurable: true, get: function get() { if (!hasInitZIndex) { popup_manager_zIndex = popup_manager_zIndex || 3000; hasInitZIndex = true; } return popup_manager_zIndex; }, set: function set(value) { popup_manager_zIndex = value; } }); var popup_manager_getTopPopup = function getTopPopup() { if (external_vue_default.a.prototype.$isServer) return; if (PopupManager.modalStack.length > 0) { var topPopup = PopupManager.modalStack[PopupManager.modalStack.length - 1]; if (!topPopup) return; var instance = PopupManager.getInstance(topPopup.id); return instance; } }; if (!external_vue_default.a.prototype.$isServer) { // handle `esc` key when the popup is shown window.addEventListener('keydown', function (event) { if (event.keyCode === 27) { var topPopup = popup_manager_getTopPopup(); if (topPopup && topPopup.closeOnPressEscape) { topPopup.handleClose ? topPopup.handleClose() : topPopup.handleAction ? topPopup.handleAction('cancel') : topPopup.close(); } } }); } /* harmony default export */ var popup_manager = (PopupManager); // EXTERNAL MODULE: ./src/utils/scrollbar-width.js var scrollbar_width = __webpack_require__(8); // CONCATENATED MODULE: ./src/utils/popup/index.js var idSeed = 1; var scrollBarWidth = void 0; /* harmony default export */ var popup = __webpack_exports__["b"] = ({ props: { visible: { type: Boolean, default: false }, openDelay: {}, closeDelay: {}, zIndex: {}, modal: { type: Boolean, default: false }, modalFade: { type: Boolean, default: true }, modalClass: {}, modalAppendToBody: { type: Boolean, default: false }, lockScroll: { type: Boolean, default: true }, closeOnPressEscape: { type: Boolean, default: false }, closeOnClickModal: { type: Boolean, default: false } }, beforeMount: function beforeMount() { this._popupId = 'popup-' + idSeed++; popup_manager.register(this._popupId, this); }, beforeDestroy: function beforeDestroy() { popup_manager.deregister(this._popupId); popup_manager.closeModal(this._popupId); this.restoreBodyStyle(); }, data: function data() { return { opened: false, bodyPaddingRight: null, computedBodyPaddingRight: 0, withoutHiddenClass: true, rendered: false }; }, watch: { visible: function visible(val) { var _this = this; if (val) { if (this._opening) return; if (!this.rendered) { this.rendered = true; external_vue_default.a.nextTick(function () { _this.open(); }); } else { this.open(); } } else { this.close(); } } }, methods: { open: function open(options) { var _this2 = this; if (!this.rendered) { this.rendered = true; } var props = Object(merge["a" /* default */])({}, this.$props || this, options); if (this._closeTimer) { clearTimeout(this._closeTimer); this._closeTimer = null; } clearTimeout(this._openTimer); var openDelay = Number(props.openDelay); if (openDelay > 0) { this._openTimer = setTimeout(function () { _this2._openTimer = null; _this2.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; var dom = this.$el; var modal = props.modal; var zIndex = props.zIndex; if (zIndex) { popup_manager.zIndex = zIndex; } if (modal) { if (this._closing) { popup_manager.closeModal(this._popupId); this._closing = false; } popup_manager.openModal(this._popupId, popup_manager.nextZIndex(), this.modalAppendToBody ? undefined : dom, props.modalClass, props.modalFade); if (props.lockScroll) { this.withoutHiddenClass = !Object(utils_dom["d" /* hasClass */])(document.body, 'el-popup-parent--hidden'); if (this.withoutHiddenClass) { this.bodyPaddingRight = document.body.style.paddingRight; this.computedBodyPaddingRight = parseInt(Object(utils_dom["c" /* getStyle */])(document.body, 'paddingRight'), 10); } scrollBarWidth = Object(scrollbar_width["a" /* default */])(); var bodyHasOverflow = document.documentElement.clientHeight < document.body.scrollHeight; var bodyOverflowY = Object(utils_dom["c" /* getStyle */])(document.body, 'overflowY'); if (scrollBarWidth > 0 && (bodyHasOverflow || bodyOverflowY === 'scroll') && this.withoutHiddenClass) { document.body.style.paddingRight = this.computedBodyPaddingRight + scrollBarWidth + 'px'; } Object(utils_dom["a" /* addClass */])(document.body, 'el-popup-parent--hidden'); } } if (getComputedStyle(dom).position === 'static') { dom.style.position = 'absolute'; } dom.style.zIndex = popup_manager.nextZIndex(); this.opened = true; this.onOpen && this.onOpen(); this.doAfterOpen(); }, doAfterOpen: function doAfterOpen() { this._opening = false; }, close: function close() { var _this3 = 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 () { _this3._closeTimer = null; _this3.doClose(); }, closeDelay); } else { this.doClose(); } }, doClose: function doClose() { this._closing = true; this.onClose && this.onClose(); if (this.lockScroll) { setTimeout(this.restoreBodyStyle, 200); } this.opened = false; this.doAfterClose(); }, doAfterClose: function doAfterClose() { popup_manager.closeModal(this._popupId); this._closing = false; }, restoreBodyStyle: function restoreBodyStyle() { if (this.modal && this.withoutHiddenClass) { document.body.style.paddingRight = this.bodyPaddingRight; Object(utils_dom["i" /* removeClass */])(document.body, 'el-popup-parent--hidden'); } this.withoutHiddenClass = true; } } }); /***/ }) /******/ });