text: (function webpackUniversalModuleDefinition(root, factory) {
  	if(typeof exports === 'object' && typeof module === 'object')
  		module.exports = factory();
  	else if(typeof define === 'function' && define.amd)
  		define([], factory);
  	else if(typeof exports === 'object')
  		exports["vue-drawer"] = factory();
  	else
  		root["vue-drawer"] = factory();
  })((typeof self !== 'undefined' ? self : this), function() {
  return /******/ (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 = "";
  /******/
  /******/
  /******/ 	// Load entry module and return exports
  /******/ 	return __webpack_require__(__webpack_require__.s = "fb15");
  /******/ })
  /************************************************************************/
  /******/ ({
  
  /***/ "2350":
  /***/ (function(module, exports) {
  
  /*
  	MIT License http://www.opensource.org/licenses/mit-license.php
  	Author Tobias Koppers @sokra
  */
  // css base code, injected by the css-loader
  module.exports = function(useSourceMap) {
  	var list = [];
  
  	// return the list of modules as css string
  	list.toString = function toString() {
  		return this.map(function (item) {
  			var content = cssWithMappingToString(item, useSourceMap);
  			if(item[2]) {
  				return "@media " + item[2] + "{" + content + "}";
  			} else {
  				return content;
  			}
  		}).join("");
  	};
  
  	// import a list of modules into the list
  	list.i = function(modules, mediaQuery) {
  		if(typeof modules === "string")
  			modules = [[null, modules, ""]];
  		var alreadyImportedModules = {};
  		for(var i = 0; i < this.length; i++) {
  			var id = this[i][0];
  			if(typeof id === "number")
  				alreadyImportedModules[id] = true;
  		}
  		for(i = 0; i < modules.length; i++) {
  			var item = modules[i];
  			// skip already imported module
  			// this implementation is not 100% perfect for weird media query combinations
  			//  when a module is imported multiple times with different media queries.
  			//  I hope this will never occur (Hey this way we have smaller bundles)
  			if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
  				if(mediaQuery && !item[2]) {
  					item[2] = mediaQuery;
  				} else if(mediaQuery) {
  					item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
  				}
  				list.push(item);
  			}
  		}
  	};
  	return list;
  };
  
  function cssWithMappingToString(item, useSourceMap) {
  	var content = item[1] || '';
  	var cssMapping = item[3];
  	if (!cssMapping) {
  		return content;
  	}
  
  	if (useSourceMap && typeof btoa === 'function') {
  		var sourceMapping = toComment(cssMapping);
  		var sourceURLs = cssMapping.sources.map(function (source) {
  			return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'
  		});
  
  		return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
  	}
  
  	return [content].join('\n');
  }
  
  // Adapted from convert-source-map (MIT)
  function toComment(sourceMap) {
  	// eslint-disable-next-line no-undef
  	var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
  	var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;
  
  	return '/*# ' + data + ' */';
  }
  
  
  /***/ }),
  
  /***/ "2da5":
  /***/ (function(module, exports, __webpack_require__) {
  
  exports = module.exports = __webpack_require__("2350")(false);
  // imports
  
  
  // module
  exports.push([module.i, ".close[data-v-41fe3714]{position:relative;width:40px;height:40px;border-radius:50%;background-color:#fff}.close[data-v-41fe3714]:after,.close[data-v-41fe3714]:before{content:\"\";position:absolute;height:18px;width:1px;background-color:rgba(0,0,0,.45);top:19px;left:50%;margin-left:-1px;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-transition:all .2s ease-in;transition:all .2s ease-in}.close[data-v-41fe3714]:before{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.vue-drawer[data-v-41fe3714]{position:fixed;top:0;left:0;width:0;height:100%}.vue-drawer .mask[data-v-41fe3714]{position:fixed;top:0;left:0;width:100%;height:0;background-color:rgba(0,0,0,.65);opacity:0;filter:alpha(opacity=50);-webkit-transition:opacity .3s linear,height 0s ease .3s;transition:opacity .3s linear,height 0s ease .3s}.vue-drawer .drawer-content-wrapper[data-v-41fe3714]{position:fixed;width:256px;-webkit-transition:-webkit-transform .3s cubic-bezier(.7,.3,.1,1);transition:-webkit-transform .3s cubic-bezier(.7,.3,.1,1);transition:transform .3s cubic-bezier(.7,.3,.1,1);transition:transform .3s cubic-bezier(.7,.3,.1,1),-webkit-transform .3s cubic-bezier(.7,.3,.1,1)}.vue-drawer .drawer-content-wrapper .drawer-content[data-v-41fe3714]{position:relative;z-index:1;background-color:#fff;background-clip:padding-box;height:100%}.vue-drawer .drawer-content-wrapper .drawer-content .drawer-header[data-v-41fe3714]{position:relative;padding:16px 24px;color:rgba(0,0,0,.65);background:#fff;border-bottom:1px solid #e8e8e8;border-radius:4px 4px 0 0}.vue-drawer .drawer-content-wrapper .drawer-content .drawer-close[data-v-41fe3714]{position:absolute;top:0;right:0;z-index:10;display:block;width:56px;height:56px;padding:0;background:transparent;border:0;outline:0;cursor:pointer;-webkit-transition:color .3s;transition:color .3s;text-rendering:auto}.vue-drawer .drawer-content-wrapper .drawer-content .drawer-close[data-v-41fe3714]:hover:after,.vue-drawer .drawer-content-wrapper .drawer-content .drawer-close[data-v-41fe3714]:hover:before{background-color:rgba(0,0,0,.75)}.vue-drawer .drawer-content-wrapper .drawer-content .drawer-title[data-v-41fe3714]{margin:0;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;line-height:22px}.vue-drawer .drawer-content-wrapper .drawer-content .drawer-body[data-v-41fe3714]{position:relative}.vue-drawer.vue-drawer-left .drawer-content-wrapper[data-v-41fe3714]{left:0;height:100%}.vue-drawer.vue-drawer-right .drawer-content-wrapper[data-v-41fe3714]{right:0;height:100%}.vue-drawer.vue-drawer-top .drawer-content-wrapper[data-v-41fe3714]{top:0;width:100%}.vue-drawer.vue-drawer-bottom .drawer-content-wrapper[data-v-41fe3714]{bottom:0;width:100%}.vue-drawer.vue-drawer-open[data-v-41fe3714]{display:block;width:100%}.vue-drawer.vue-drawer-open .mask[data-v-41fe3714]{height:100%;opacity:.3;-webkit-transition:none;transition:none;-webkit-animation:fadeIn-data-v-41fe3714 .3s cubic-bezier(.7,.3,.1,1);animation:fadeIn-data-v-41fe3714 .3s cubic-bezier(.7,.3,.1,1)}.vue-drawer.vue-drawer-open .drawer-content-wrapper[data-v-41fe3714]{-webkit-box-shadow:-2px 0 8px rgba(0,0,0,.15);box-shadow:-2px 0 8px rgba(0,0,0,.15)}@-webkit-keyframes fadeIn-data-v-41fe3714{0%{opacity:0}to{opacity:.3}}@keyframes fadeIn-data-v-41fe3714{0%{opacity:0}to{opacity:.3}}", ""]);
  
  // exports
  
  
  /***/ }),
  
  /***/ "499e":
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  
  // CONCATENATED MODULE: ./node_modules/vue-style-loader/lib/listToStyles.js
  /**
   * Translates the list format produced by css-loader into something
   * easier to manipulate.
   */
  function listToStyles (parentId, list) {
    var styles = []
    var newStyles = {}
    for (var i = 0; i < list.length; i++) {
      var item = list[i]
      var id = item[0]
      var css = item[1]
      var media = item[2]
      var sourceMap = item[3]
      var part = {
        id: parentId + ':' + i,
        css: css,
        media: media,
        sourceMap: sourceMap
      }
      if (!newStyles[id]) {
        styles.push(newStyles[id] = { id: id, parts: [part] })
      } else {
        newStyles[id].parts.push(part)
      }
    }
    return styles
  }
  
  // CONCATENATED MODULE: ./node_modules/vue-style-loader/lib/addStylesClient.js
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return addStylesClient; });
  /*
    MIT License http://www.opensource.org/licenses/mit-license.php
    Author Tobias Koppers @sokra
    Modified by Evan You @yyx990803
  */
  
  
  
  var hasDocument = typeof document !== 'undefined'
  
  if (typeof DEBUG !== 'undefined' && DEBUG) {
    if (!hasDocument) {
      throw new Error(
      'vue-style-loader cannot be used in a non-browser environment. ' +
      "Use { target: 'node' } in your Webpack config to indicate a server-rendering environment."
    ) }
  }
  
  /*
  type StyleObject = {
    id: number;
    parts: Array<StyleObjectPart>
  }
  
  type StyleObjectPart = {
    css: string;
    media: string;
    sourceMap: ?string
  }
  */
  
  var stylesInDom = {/*
    [id: number]: {
      id: number,
      refs: number,
      parts: Array<(obj?: StyleObjectPart) => void>
    }
  */}
  
  var head = hasDocument && (document.head || document.getElementsByTagName('head')[0])
  var singletonElement = null
  var singletonCounter = 0
  var isProduction = false
  var noop = function () {}
  var options = null
  var ssrIdKey = 'data-vue-ssr-id'
  
  // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
  // tags it will allow on a page
  var isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\b/.test(navigator.userAgent.toLowerCase())
  
  function addStylesClient (parentId, list, _isProduction, _options) {
    isProduction = _isProduction
  
    options = _options || {}
  
    var styles = listToStyles(parentId, list)
    addStylesToDom(styles)
  
    return function update (newList) {
      var mayRemove = []
      for (var i = 0; i < styles.length; i++) {
        var item = styles[i]
        var domStyle = stylesInDom[item.id]
        domStyle.refs--
        mayRemove.push(domStyle)
      }
      if (newList) {
        styles = listToStyles(parentId, newList)
        addStylesToDom(styles)
      } else {
        styles = []
      }
      for (var i = 0; i < mayRemove.length; i++) {
        var domStyle = mayRemove[i]
        if (domStyle.refs === 0) {
          for (var j = 0; j < domStyle.parts.length; j++) {
            domStyle.parts[j]()
          }
          delete stylesInDom[domStyle.id]
        }
      }
    }
  }
  
  function addStylesToDom (styles /* Array<StyleObject> */) {
    for (var i = 0; i < styles.length; i++) {
      var item = styles[i]
      var domStyle = stylesInDom[item.id]
      if (domStyle) {
        domStyle.refs++
        for (var j = 0; j < domStyle.parts.length; j++) {
          domStyle.parts[j](item.parts[j])
        }
        for (; j < item.parts.length; j++) {
          domStyle.parts.push(addStyle(item.parts[j]))
        }
        if (domStyle.parts.length > item.parts.length) {
          domStyle.parts.length = item.parts.length
        }
      } else {
        var parts = []
        for (var j = 0; j < item.parts.length; j++) {
          parts.push(addStyle(item.parts[j]))
        }
        stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }
      }
    }
  }
  
  function createStyleElement () {
    var styleElement = document.createElement('style')
    styleElement.type = 'text/css'
    head.appendChild(styleElement)
    return styleElement
  }
  
  function addStyle (obj /* StyleObjectPart */) {
    var update, remove
    var styleElement = document.querySelector('style[' + ssrIdKey + '~="' + obj.id + '"]')
  
    if (styleElement) {
      if (isProduction) {
        // has SSR styles and in production mode.
        // simply do nothing.
        return noop
      } else {
        // has SSR styles but in dev mode.
        // for some reason Chrome can't handle source map in server-rendered
        // style tags - source maps in <style> only works if the style tag is
        // created and inserted dynamically. So we remove the server rendered
        // styles and inject new ones.
        styleElement.parentNode.removeChild(styleElement)
      }
    }
  
    if (isOldIE) {
      // use singleton mode for IE9.
      var styleIndex = singletonCounter++
      styleElement = singletonElement || (singletonElement = createStyleElement())
      update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)
      remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)
    } else {
      // use multi-style-tag mode in all other cases
      styleElement = createStyleElement()
      update = applyToTag.bind(null, styleElement)
      remove = function () {
        styleElement.parentNode.removeChild(styleElement)
      }
    }
  
    update(obj)
  
    return function updateStyle (newObj /* StyleObjectPart */) {
      if (newObj) {
        if (newObj.css === obj.css &&
            newObj.media === obj.media &&
            newObj.sourceMap === obj.sourceMap) {
          return
        }
        update(obj = newObj)
      } else {
        remove()
      }
    }
  }
  
  var replaceText = (function () {
    var textStore = []
  
    return function (index, replacement) {
      textStore[index] = replacement
      return textStore.filter(Boolean).join('\n')
    }
  })()
  
  function applyToSingletonTag (styleElement, index, remove, obj) {
    var css = remove ? '' : obj.css
  
    if (styleElement.styleSheet) {
      styleElement.styleSheet.cssText = replaceText(index, css)
    } else {
      var cssNode = document.createTextNode(css)
      var childNodes = styleElement.childNodes
      if (childNodes[index]) styleElement.removeChild(childNodes[index])
      if (childNodes.length) {
        styleElement.insertBefore(cssNode, childNodes[index])
      } else {
        styleElement.appendChild(cssNode)
      }
    }
  }
  
  function applyToTag (styleElement, obj) {
    var css = obj.css
    var media = obj.media
    var sourceMap = obj.sourceMap
  
    if (media) {
      styleElement.setAttribute('media', media)
    }
    if (options.ssrId) {
      styleElement.setAttribute(ssrIdKey, obj.id)
    }
  
    if (sourceMap) {
      // https://developer.chrome.com/devtools/docs/javascript-debugging
      // this makes source maps inside style tags work properly in Chrome
      css += '\n/*# sourceURL=' + sourceMap.sources[0] + ' */'
      // http://stackoverflow.com/a/26603875
      css += '\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'
    }
  
    if (styleElement.styleSheet) {
      styleElement.styleSheet.cssText = css
    } else {
      while (styleElement.firstChild) {
        styleElement.removeChild(styleElement.firstChild)
      }
      styleElement.appendChild(document.createTextNode(css))
    }
  }
  
  
  /***/ }),
  
  /***/ "4b7b":
  /***/ (function(module, exports, __webpack_require__) {
  
  // style-loader: Adds some css to the DOM by adding a <style> tag
  
  // load the styles
  var content = __webpack_require__("2da5");
  if(typeof content === 'string') content = [[module.i, content, '']];
  if(content.locals) module.exports = content.locals;
  // add the styles to the DOM
  var add = __webpack_require__("499e").default
  var update = add("8fdafed2", content, true, {"sourceMap":false,"shadowMode":false});
  
  /***/ }),
  
  /***/ "9a31":
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  /* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_index_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_lib_loader_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_drawer_vue_vue_type_style_index_0_id_41fe3714_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("4b7b");
  /* harmony import */ var _node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_index_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_lib_loader_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_drawer_vue_vue_type_style_index_0_id_41fe3714_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_index_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_lib_loader_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_drawer_vue_vue_type_style_index_0_id_41fe3714_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);
  /* unused harmony reexport * */
   /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_style_loader_index_js_ref_8_oneOf_1_0_node_modules_css_loader_index_js_ref_8_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_2_node_modules_postcss_loader_src_index_js_ref_8_oneOf_1_3_node_modules_sass_loader_lib_loader_js_ref_8_oneOf_1_4_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_loader_lib_index_js_vue_loader_options_drawer_vue_vue_type_style_index_0_id_41fe3714_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default.a); 
  
  /***/ }),
  
  /***/ "f6fd":
  /***/ (function(module, exports) {
  
  // document.currentScript polyfill by Adam Miller
  
  // MIT license
  
  (function(document){
    var currentScript = "currentScript",
        scripts = document.getElementsByTagName('script'); // Live NodeList collection
  
    // If browser needs currentScript polyfill, add get currentScript() to the document object
    if (!(currentScript in document)) {
      Object.defineProperty(document, currentScript, {
        get: function(){
  
          // IE 6-10 supports script readyState
          // IE 10+ support stack trace
          try { throw new Error(); }
          catch (err) {
  
            // Find the second match for the "at" string to get file src url from stack.
            // Specifically works with the format of stack traces in IE.
            var i, res = ((/.*at [^\(]*\((.*):.+:.+\)$/ig).exec(err.stack) || [false])[1];
  
            // For all scripts on the page, if src matches or if ready state is interactive, return the script tag
            for(i in scripts){
              if(scripts[i].src == res || scripts[i].readyState == "interactive"){
                return scripts[i];
              }
            }
  
            // If no match, return null
            return null;
          }
        }
      });
    }
  })(document);
  
  
  /***/ }),
  
  /***/ "fb15":
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
  
  "use strict";
  __webpack_require__.r(__webpack_exports__);
  
  // CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js
  // This file is imported into lib/wc client bundles.
  
  if (typeof window !== 'undefined') {
    if (true) {
      __webpack_require__("f6fd")
    }
  
    var i
    if ((i = window.document.currentScript) && (i = i.src.match(/(.+\/)[^/]+\.js(\?.*)?$/))) {
      __webpack_require__.p = i[1] // eslint-disable-line
    }
  }
  
  // Indicate to webpack that this file can be concatenated
  /* harmony default export */ var setPublicPath = (null);
  
  // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"4dd6eb71-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/drawer/src/drawer.vue?vue&type=template&id=41fe3714&scoped=true&
  var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.rendered)?_c('div',{class:[
      'vue-drawer',
      ("vue-drawer-" + _vm.placement),
      _vm.visible && 'vue-drawer-open',
      _vm.className
    ],style:(_vm.containerStyle)},[_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.mask),expression:"mask"}],staticClass:"mask",style:(_vm.maskStyle),on:{"click":_vm.handleMaskClick}}),_c('div',{staticClass:"drawer-content-wrapper",style:({
        width: _vm.widthStyle,
        height: _vm.heightStyle,
        transform: _vm.translateDirection
      })},[_c('div',{staticClass:"drawer-content"},[_vm._t("title",[(_vm.showHeader)?_c('div',{staticClass:"drawer-header"},[_vm._t("header",[_c('div',{staticClass:"drawer-title"},[_vm._v(_vm._s(_vm.title))])]),(_vm.showClose)?_c('button',{staticClass:"drawer-close close",on:{"click":_vm.handleClose}}):_vm._e()],2):_vm._e()]),_c('div',{staticClass:"drawer-body",style:(_vm.bodyStyle)},[_vm._t("default")],2)],2)])]):_vm._e()}
  var staticRenderFns = []
  
  
  // CONCATENATED MODULE: ./packages/drawer/src/drawer.vue?vue&type=template&id=41fe3714&scoped=true&
  
  // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./packages/drawer/src/drawer.vue?vue&type=script&lang=js&
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  //
  
  /* harmony default export */ var drawervue_type_script_lang_js_ = ({
    name: "vue-drawer",
    props: {
      showClose: {
        type: Boolean,
        default: true
      },
      showHeader: {
        type: Boolean,
        default: true
      },
      maskCloseable: {
        type: Boolean,
        default: true
      },
      mask: {
        type: Boolean,
        default: true
      },
      maskStyle: {
        type: Object,
        default: function() {
          return {};
        }
      },
      wrapStyle: {
        type: Object,
        default: function() {
          return {};
        }
      },
      bodyStyle: {
        type: Object,
        default: function() {
          return {};
        }
      },
      title: {
        type: String,
        default: ""
      },
      visible: {
        type: Boolean,
        default: false
      },
      width: {
        type: [String, Number],
        default: 256
      },
      height: {
        type: [String, Number],
        default: 256
      },
      className: {
        type: String,
        default: ""
      },
      zIndex: {
        type: Number,
        default: 1000
      },
      placement: {
        type: String,
        default: "right"
      },
      opened: Function,
      beforeClose: Function,
      afterVisibleChange: Function,
      closeOnPressEscape: {
        type: Boolean,
        default: false
      }
    },
    data() {
      return {
        closed: false,
        rendered: false,
        firstEnter: false,
        transitionEndFlag: true,
        translateDirection: "translateX(100%)"
      };
    },
    watch: {
      visible(val) {
        if (val) {
          this.handleEsc(this.handleClose);
          this.closed = false;
          this.transitionEndFlag = true;
          this.$emit("open");
          if (this.rendered) {
            this.translateDirection = this.updateTransition(this.visible);
            return;
          }
          document.body.appendChild(this.$el);
          this.rendered = true;
          setTimeout(() => {
            this.transitionEnd();
            this.translateDirection = this.updateTransition(this.visible);
          }, 200);
        } else {
          // 关闭的回调
          this.transitionEndFlag = true;
          if (!this.closed) this.$emit("close");
          this.translateDirection = this.updateTransition(this.visible);
        }
      }
    },
    computed: {
      widthStyle: function() {
        if (this.placement === "left" || this.placement === "right") {
          if (Number(this.width) >= 0) {
            return this.width + "px";
          }
          return this.width;
        }
        return "100%";
      },
      heightStyle: function() {
        if (this.placement === "top" || this.placement === "bottom") {
          if (Number(this.height) >= 0) {
            return this.height + "px";
          }
          return this.height;
        }
        return "100%";
      },
      containerStyle: function() {
        const style = {};
        for (let i in this.wrapStyle) {
          style[i] = this.wrapStyle[i];
        }
        style.zIndex = this.zIndex;
        return style;
      }
    },
    methods: {
      updateTransition(value) {
        const direction = {
          left: value ? "translateX(0)" : "translateX(-100%)",
          right: value ? "translateX(0)" : "translateX(100%)",
          top: value ? "translateY(0)" : "translateY(-100%)",
          bottom: value ? "translateY(0)" : "translateY(100%)"
        };
        return direction[this.placement];
      },
      handleMaskClick() {
        if (!this.maskCloseable) return;
        this.handleClose();
      },
      handleClose() {
        if (typeof this.beforeClose === "function") {
          this.beforeClose(this.hide);
        } else {
          this.hide();
        }
      },
      hide(cancel) {
        if (cancel !== false) {
          this.$emit("update:visible", false);
          this.$emit("close");
          this.closed = true;
        }
      },
      afterEnter() {
        this.$emit("opened");
      },
      afterLeave() {
        this.$emit("closed");
      },
      // 监听动画
      transitionEnd() {
        if (this.firstEnter) return;
        this.firstEnter = true;
        let transitionEndEvent = "transitionend";
        if (
          window.ontransitionend === undefined &&
          window.onwebkittransitionend !== undefined
        ) {
          transitionEndEvent = "webkitTransitionEnd";
        }
        this.$el.addEventListener(
          transitionEndEvent,
          () => {
            if (!this.transitionEndFlag) return;
            this.transitionEndFlag = false;
            if (this.visible) {
              this.afterEnter();
            } else {
              this.afterLeave();
            }
          },
          false
        );
      },
      handleEsc(value) {
        if (this.closeOnPressEscape) {
          if (window.vueDrawer) {
            window.vueDrawer.push(value);
            return;
          }
          window.vueDrawer = [value];
          window.addEventListener("keydown", event => {
            if (event.keyCode === 27) {
              const handler = window.vueDrawer.pop();
              handler && handler();
            }
          });
        }
      },
      init(visible, rendered) {
        if (visible) {
          this.handleEsc(this.handleClose);
          this.$emit("open");
          if (!rendered) {
            document.body.appendChild(this.$el);
            setTimeout(() => {
              this.transitionEnd();
              this.translateDirection = this.updateTransition(this.visible);
            }, 200);
            return true;
          }
          return false;
        }
        return false;
      }
    },
    mounted() {
      this.rendered = this.init(this.visible, this.rendered);
    },
    destroyed() {
      if (this.$el && this.$el.parentNode) {
        this.$el.parentNode.removeChild(this.$el);
        this.$el.removeEventListener("transitionend", () => {});
      }
    }
  });
  
  // CONCATENATED MODULE: ./packages/drawer/src/drawer.vue?vue&type=script&lang=js&
   /* harmony default export */ var src_drawervue_type_script_lang_js_ = (drawervue_type_script_lang_js_); 
  // EXTERNAL MODULE: ./packages/drawer/src/drawer.vue?vue&type=style&index=0&id=41fe3714&lang=scss&scoped=true&
  var drawervue_type_style_index_0_id_41fe3714_lang_scss_scoped_true_ = __webpack_require__("9a31");
  
  // CONCATENATED MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
  /* 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, 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 functioal 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
    }
  }
  
  // CONCATENATED MODULE: ./packages/drawer/src/drawer.vue
  
  
  
  
  
  
  /* normalize component */
  
  var component = normalizeComponent(
    src_drawervue_type_script_lang_js_,
    render,
    staticRenderFns,
    false,
    null,
    "41fe3714",
    null
    
  )
  
  /* harmony default export */ var drawer = (component.exports);
  // CONCATENATED MODULE: ./packages/drawer/index.js
  
  
  // 为组件提供 install 安装方法，供按需引入
  drawer.install = function(Vue) {
    Vue.component(drawer.name, drawer);
  };
  
  // 默认导出组件
  /* harmony default export */ var packages_drawer = (drawer);
  
  // CONCATENATED MODULE: ./packages/index.js
  // 导入颜色选择器组件
  
  
  // 存储组件列表
  const components = [packages_drawer];
  
  const install = function(Vue) {
    if (install.installed) return;
    components.map(component => Vue.component(component.name, component));
  };
  
  if (typeof window !== "undefined" && window.Vue) {
    install(window.Vue);
  }
  
  /* harmony default export */ var packages_0 = ({
    install,
    Drawer: packages_drawer
  });
  
  // CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js
  
  
  /* harmony default export */ var entry_lib = __webpack_exports__["default"] = (packages_0);
  
  
  
  /***/ })
  
  /******/ });
  });
  //# sourceMappingURL=vue-drawer.umd.js.map