diff --git a/dist/lib/vue-router-tab.common.js b/dist/lib/vue-router-tab.common.js
index f5f42086..b6b7c504 100644
--- a/dist/lib/vue-router-tab.common.js
+++ b/dist/lib/vue-router-tab.common.js
@@ -87,13 +87,63 @@ module.exports =
/************************************************************************/
/******/ ({
-/***/ "6b67":
+/***/ "3dec":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony default export */ __webpack_exports__["default"] = ({
+ tab: {
+ untitled: 'Untitled'
+ },
+ contextmenu: {
+ refresh: 'Refresh',
+ refreshAll: 'Refresh All',
+ close: 'Close',
+ closeLefts: 'Close to the Left',
+ closeRights: 'Close to the Right',
+ closeOthers: 'Close Others'
+ },
+ msg: {
+ keepLastTab: 'Keep at least 1 tab',
+ i18nProp: 'Method "i18n" is not defined on the instance'
+ }
+});
+
+/***/ }),
+
+/***/ "751c":
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
+/***/ "783a":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony default export */ __webpack_exports__["default"] = ({
+ tab: {
+ untitled: '无标题'
+ },
+ contextmenu: {
+ refresh: '刷新',
+ refreshAll: '刷新全部',
+ close: '关闭',
+ closeLefts: '关闭左侧',
+ closeRights: '关闭右侧',
+ closeOthers: '关闭其他'
+ },
+ msg: {
+ keepLastTab: '至少应保留1个页签',
+ i18nProp: '请提供“i18n”方法以处理国际化内容'
+ }
+});
+
+/***/ }),
+
/***/ "8875":
/***/ (function(module, exports, __webpack_require__) {
@@ -922,32 +972,33 @@ module.exports = __webpack_require__("96cf");
/***/ }),
-/***/ "cec0":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_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_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_routerTab_scss_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("6b67");
-/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_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_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_routerTab_scss_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_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_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_routerTab_scss_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
-/* unused harmony reexport * */
- /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_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_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_routerTab_scss_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a);
-
-/***/ }),
-
-/***/ "ea7e":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_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_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_transition_scss_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f4d0");
-/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_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_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_transition_scss_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_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_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_transition_scss_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
-/* unused harmony reexport * */
- /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_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_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_transition_scss_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a);
+/***/ "b13e":
+/***/ (function(module, exports, __webpack_require__) {
-/***/ }),
+var map = {
+ "./en.js": "3dec",
+ "./zh-CN.js": "783a"
+};
-/***/ "f4d0":
-/***/ (function(module, exports, __webpack_require__) {
-// extracted by mini-css-extract-plugin
+function webpackContext(req) {
+ var id = webpackContextResolve(req);
+ return __webpack_require__(id);
+}
+function webpackContextResolve(req) {
+ if(!__webpack_require__.o(map, req)) {
+ var e = new Error("Cannot find module '" + req + "'");
+ e.code = 'MODULE_NOT_FOUND';
+ throw e;
+ }
+ return map[req];
+}
+webpackContext.keys = function webpackContextKeys() {
+ return Object.keys(map);
+};
+webpackContext.resolve = webpackContextResolve;
+module.exports = webpackContext;
+webpackContext.id = "b13e";
/***/ }),
@@ -986,18 +1037,32 @@ if (typeof window !== 'undefined') {
// 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":"0d070753-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!./lib/RouterTab.vue?vue&type=template&id=4af9cf8f&
-var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"router-tab"},[_c('header',{ref:"header",staticClass:"router-tab__header"},[_c('div',{staticClass:"router-tab__slot-start"},[_vm._t("start")],2),_c('tab-scroll',{ref:"scroll"},[_c('transition-group',_vm._b({staticClass:"router-tab__nav",attrs:{"tag":"ul"}},'transition-group',_vm.tabTrans,false),_vm._l((_vm.items),function(item,index){return _c('tab-item',{key:item.id || item.to,ref:"tab",refInFor:true,attrs:{"data":item,"index":index},nativeOn:{"contextmenu":function($event){$event.preventDefault();return (function (e) { return _vm.showContextmenu(item.id, index, e); })($event)}},scopedSlots:_vm._u([(_vm.$scopedSlots.default)?{key:"default",fn:function(scope){return [_vm._t("default",null,null,scope)]}}:null],null,true)})}),1)],1),_c('div',{staticClass:"router-tab__slot-end"},[_vm._t("end")],2)],1),_c('div',{staticClass:"router-tab__container",class:{ loading: _vm.loading }},[_c('router-alive',{attrs:{"page-class":"router-tab-page","keep-alive":_vm.keepAlive,"reuse":_vm.reuse,"max":_vm.maxAlive,"transition":_vm.pageTrans},on:{"ready":_vm.onAliveReady,"change":_vm.onAliveChange}}),_c('transition-group',_vm._b({staticClass:"router-tab__iframes",attrs:{"tag":"div"}},'transition-group',_vm.pageTrans,false),_vm._l((_vm.iframes),function(url){return _c('iframe',{directives:[{name:"show",rawName:"v-show",value:(url === _vm.currentIframe),expression:"url === currentIframe"}],key:url,staticClass:"router-tab__iframe",attrs:{"src":url,"name":_vm.iframeNamePrefix + url,"frameborder":"0"},on:{"load":function($event){return _vm.iframeLoaded(url)}}})}),0)],1),_c('transition',{attrs:{"name":"router-tab-zoom"}},[(_vm.contextmenu.id)?_c('div',{staticClass:"router-tab__contextmenu",style:(("left: " + (_vm.contextmenu.left) + "px; top: " + (_vm.contextmenu.top) + "px;"))},[_c('a',{staticClass:"router-tab__contextmenu-item",on:{"click":function($event){return _vm.refreshTab(_vm.contextmenu.id)}}},[_vm._v(" "+_vm._s(_vm.lang.contextmenu.refresh)+" ")]),_c('a',{staticClass:"router-tab__contextmenu-item",attrs:{"disabled":_vm.items.length < 2},on:{"click":function($event){_vm.items.length > 1 && _vm.refreshAll()}}},[_vm._v(" "+_vm._s(_vm.lang.contextmenu.refreshAll)+" ")]),_c('a',{staticClass:"router-tab__contextmenu-item",attrs:{"disabled":!_vm.isContextTabCanBeClosed},on:{"click":function($event){_vm.isContextTabCanBeClosed && _vm.closeTab(_vm.contextmenu.id)}}},[_vm._v(" "+_vm._s(_vm.lang.contextmenu.close)+" ")]),_c('a',{staticClass:"router-tab__contextmenu-item",attrs:{"disabled":!_vm.tabsLeft.length},on:{"click":function($event){_vm.tabsLeft.length && _vm.closeMulti(_vm.tabsLeft)}}},[_vm._v(" "+_vm._s(_vm.lang.contextmenu.closeLefts)+" ")]),_c('a',{staticClass:"router-tab__contextmenu-item",attrs:{"disabled":!_vm.tabsRight.length},on:{"click":function($event){_vm.tabsRight.length && _vm.closeMulti(_vm.tabsRight)}}},[_vm._v(" "+_vm._s(_vm.lang.contextmenu.closeRights)+" ")]),_c('a',{staticClass:"router-tab__contextmenu-item",attrs:{"disabled":!_vm.tabsOther.length},on:{"click":function($event){_vm.tabsOther.length && _vm.closeMulti(_vm.tabsOther)}}},[_vm._v(" "+_vm._s(_vm.lang.contextmenu.closeOthers)+" ")])]):_vm._e()])],1)}
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"04e48bad-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!./lib/RouterTab.vue?vue&type=template&id=0774e0e2&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"router-tab"},[_c('header',{ref:"header",staticClass:"router-tab__header"},[_c('div',{staticClass:"router-tab__slot-start"},[_vm._t("start")],2),_c('tab-scroll',{ref:"scroll"},[_c('transition-group',_vm._b({staticClass:"router-tab__nav",attrs:{"tag":"ul"}},'transition-group',_vm.tabTrans,false),_vm._l((_vm.items),function(item,index){return _c('tab-item',{key:item.id || item.to,ref:"tab",refInFor:true,attrs:{"data":item,"index":index},nativeOn:{"contextmenu":function($event){$event.preventDefault();return (function (e) { return _vm.showContextmenu(item.id, index, e); })($event)}},scopedSlots:_vm._u([(_vm.$scopedSlots.default)?{key:"default",fn:function(scope){return [_vm._t("default",null,null,scope)]}}:null],null,true)})}),1)],1),_c('div',{staticClass:"router-tab__slot-end"},[_vm._t("end")],2)],1),_c('div',{staticClass:"router-tab__container",class:{ loading: _vm.loading }},[_c('router-alive',{attrs:{"page-class":"router-tab-page","keep-alive":_vm.keepAlive,"reuse":_vm.reuse,"max":_vm.maxAlive,"transition":_vm.pageTrans},on:{"ready":_vm.onAliveReady,"change":_vm.onAliveChange}}),_c('transition-group',_vm._b({staticClass:"router-tab__iframes",attrs:{"tag":"div"}},'transition-group',_vm.pageTrans,false),_vm._l((_vm.iframes),function(url){return _c('iframe',{directives:[{name:"show",rawName:"v-show",value:(url === _vm.currentIframe),expression:"url === currentIframe"}],key:url,staticClass:"router-tab__iframe",attrs:{"src":url,"name":_vm.iframeNamePrefix + url,"frameborder":"0"},on:{"load":function($event){return _vm.iframeLoaded(url)}}})}),0)],1),_c('transition',{attrs:{"name":"router-tab-zoom"}},[(_vm.contextmenu !== false && _vm.contextData.id)?_c('tab-contextmenu',{attrs:{"data":_vm.contextData,"menu":_vm.contextMenu}}):_vm._e()],1)],1)}
var staticRenderFns = []
-// CONCATENATED MODULE: ./lib/RouterTab.vue?vue&type=template&id=4af9cf8f&
+// CONCATENATED MODULE: ./lib/RouterTab.vue?vue&type=template&id=0774e0e2&
// EXTERNAL MODULE: ./node_modules/@babel/runtime/regenerator/index.js
var regenerator = __webpack_require__("a34a");
var regenerator_default = /*#__PURE__*/__webpack_require__.n(regenerator);
// CONCATENATED MODULE: ./lib/util/index.js
+function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
+
+function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
+
+function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
+
+function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
+
+function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
+
+function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
+
+function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
// 空对象和数组
var emptyObj = Object.create(null);
var emptyArray = []; // 从数组删除项
@@ -1100,15 +1165,63 @@ function util_scrollIntoView(_ref2) {
top: top
});
}
-} // 提取计算属性
+}
+/**
+ * 提取计算属性
+ * @export
+ * @param {String} origin 来源属性
+ * @param {Array|Object} props 需要提取的计算属性
+ * @param {String} context 来源选项为 function 时的入参
+ * @returns {Object}
+ */
-function mapGetters(prop, keys) {
+function mapGetters(origin, props, context) {
var map = {};
- keys.forEach(function (key) {
- map[key] = function () {
- return this[prop][key];
+
+ var each = function each(prop, option) {
+ if (option === null || _typeof(option) !== 'object') {
+ option = {
+ default: option
+ };
+ }
+
+ var _option = option,
+ def = _option.default,
+ alias = _option.alias;
+
+ map[alias || prop] = function () {
+ var val = this[origin][prop];
+
+ if (context && typeof val === 'function') {
+ // 函数返回
+ return val(this[context]);
+ } else if (def !== undefined && val === undefined) {
+ // 默认值
+ if (typeof def === 'function') {
+ return def.bind(this)();
+ }
+
+ return def;
+ }
+
+ return val;
};
- });
+ };
+
+ if (Array.isArray(props)) {
+ props.forEach(function (prop) {
+ return each(prop);
+ });
+ } else {
+ Object.entries(props).forEach(function (_ref3) {
+ var _ref4 = _slicedToArray(_ref3, 2),
+ prop = _ref4[0],
+ def = _ref4[1];
+
+ return each(prop, def);
+ });
+ }
+
return map;
} // 去除路径中的 hash
@@ -1122,25 +1235,13 @@ function getTransOpt(trans) {
} : trans;
}
// CONCATENATED MODULE: ./lib/mixins/contextmenu.js
-
-
-function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
-
-function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
-
-function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
-
-function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
-
-function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
-
// 右键菜单
-/* harmony default export */ var mixins_contextmenu = ({
+/* harmony default export */ var contextmenu = ({
data: function data() {
return {
// 右键菜单
- contextmenu: {
+ contextData: {
id: null,
index: -1,
left: 0,
@@ -1149,44 +1250,13 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
};
},
computed: {
- // 右键页签是否允许关闭
- isContextTabCanBeClosed: function isContextTabCanBeClosed() {
- var items = this.items,
- contextmenu = this.contextmenu;
- var contextTab = items[contextmenu.index];
- return items.length > 1 && contextTab && contextTab.closable !== false;
- },
- // 左侧可关闭的页签
- tabsLeft: function tabsLeft() {
- var items = this.items,
- _this$contextmenu = this.contextmenu,
- id = _this$contextmenu.id,
- index = _this$contextmenu.index;
- return id ? items.slice(0, index).filter(function (_ref) {
- var closable = _ref.closable;
- return closable !== false;
- }) : emptyArray;
- },
- // 左侧可关闭的页签
- tabsRight: function tabsRight() {
- var items = this.items,
- _this$contextmenu2 = this.contextmenu,
- id = _this$contextmenu2.id,
- index = _this$contextmenu2.index;
- return id ? items.slice(index + 1).filter(function (_ref2) {
- var closable = _ref2.closable;
- return closable !== false;
- }) : emptyArray;
- },
- // 其他可关闭的页签
- tabsOther: function tabsOther() {
- var items = this.items,
- id = this.contextmenu.id;
- return id ? items.filter(function (_ref3) {
- var closable = _ref3.closable,
- tid = _ref3.id;
- return closable !== false && id !== tid;
- }) : emptyArray;
+ // 菜单配置
+ contextMenu: function contextMenu() {
+ if (Array.isArray(this.contextmenu)) {
+ return this.contextmenu;
+ }
+
+ return undefined;
}
},
watch: {
@@ -1195,7 +1265,7 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
this.hideContextmenu();
},
// 监听右键菜单显示关闭
- 'contextmenu.id': function contextmenuId(val, old) {
+ 'contextData.id': function contextDataId(val, old) {
var _this = this;
if (!old && val) {
@@ -1215,11 +1285,11 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
// 显示页签右键菜单
showContextmenu: function showContextmenu(id, index, e) {
// 菜单定位
- var _ref4 = e || emptyObj,
- top = _ref4.clientY,
- left = _ref4.clientX;
+ var _ref = e || emptyObj,
+ top = _ref.clientY,
+ left = _ref.clientX;
- Object.assign(this.contextmenu, {
+ Object.assign(this.contextData, {
id: id,
index: index,
top: top,
@@ -1229,130 +1299,34 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
// 关闭页签右键菜单
hideContextmenu: function hideContextmenu() {
this.showContextmenu(null, -1);
- },
- // 关闭多个页签
- closeMulti: function closeMulti(tabs) {
- var _this2 = this;
-
- return _asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
- var items, $router, contextmenu, nextTab, _iterator, _step, id;
-
- return regenerator_default.a.wrap(function _callee$(_context) {
- while (1) {
- switch (_context.prev = _context.next) {
- case 0:
- items = _this2.items, $router = _this2.$router, contextmenu = _this2.contextmenu;
- nextTab = items.find(function (_ref5) {
- var id = _ref5.id;
- return id === contextmenu.id;
- });
- _iterator = _createForOfIteratorHelper(tabs);
- _context.prev = 3;
-
- _iterator.s();
-
- case 5:
- if ((_step = _iterator.n()).done) {
- _context.next = 16;
- break;
- }
-
- id = _step.value.id;
- _context.prev = 7;
- _context.next = 10;
- return _this2.removeTab(id);
-
- case 10:
- _context.next = 14;
- break;
-
- case 12:
- _context.prev = 12;
- _context.t0 = _context["catch"](7);
-
- case 14:
- _context.next = 5;
- break;
-
- case 16:
- _context.next = 21;
- break;
+ }
+ }
+});
+// CONCATENATED MODULE: ./lib/config/lang/index.js
+function lang_slicedToArray(arr, i) { return lang_arrayWithHoles(arr) || lang_iterableToArrayLimit(arr, i) || lang_unsupportedIterableToArray(arr, i) || lang_nonIterableRest(); }
- case 18:
- _context.prev = 18;
- _context.t1 = _context["catch"](3);
+function lang_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
- _iterator.e(_context.t1);
+function lang_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return lang_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return lang_arrayLikeToArray(o, minLen); }
- case 21:
- _context.prev = 21;
+function lang_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
- _iterator.f();
+function lang_iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
- return _context.finish(21);
+function lang_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
- case 24:
- // 当前页签如已关闭,则打开右键选中页签
- if (items.findIndex(function (_ref6) {
- var id = _ref6.id;
- return id === _this2.activeTabId;
- }) === -1) {
- $router.replace(nextTab.to);
- }
+// 引入目录下语言配置
+var context = __webpack_require__("b13e"); // 语言配置
- case 25:
- case "end":
- return _context.stop();
- }
- }
- }, _callee, null, [[3, 18, 21, 24], [7, 12]]);
- }))();
- }
- }
-});
-// CONCATENATED MODULE: ./lib/lang/zh-CN.js
-/* harmony default export */ var zh_CN = ({
- tab: {
- untitled: '无标题'
- },
- contextmenu: {
- refresh: '刷新',
- refreshAll: '刷新所有',
- close: '关闭',
- closeLefts: '关闭左侧',
- closeRights: '关闭右侧',
- closeOthers: '关闭其他'
- },
- msg: {
- keepLastTab: '至少应保留1个页签',
- i18nProp: '请提供“i18n”方法以处理国际化内容'
- }
-});
-// CONCATENATED MODULE: ./lib/lang/en.js
-/* harmony default export */ var en = ({
- tab: {
- untitled: 'Untitled'
- },
- contextmenu: {
- refresh: 'Refresh',
- refreshAll: 'Refresh All',
- close: 'Close',
- closeLefts: 'Close to the Left',
- closeRights: 'Close to the Right',
- closeOthers: 'Close Others'
- },
- msg: {
- keepLastTab: 'Keep at least 1 tab',
- i18nProp: 'Method "i18n" is not defined on the instance'
- }
-});
-// CONCATENATED MODULE: ./lib/lang/index.js
+/* harmony default export */ var config_lang = (context.keys().reduce(function (map, path) {
+ var _$exec = /\.\/(.*).js/g.exec(path),
+ _$exec2 = lang_slicedToArray(_$exec, 2),
+ key = _$exec2[1];
-/* harmony default export */ var lib_lang = ({
- 'zh-CN': zh_CN,
- en: en
-});
+ map[key] = context(path).default;
+ return map;
+}, {}));
// CONCATENATED MODULE: ./lib/util/warn.js
var prefix = '[Vue Router Tab]'; // 错误
@@ -1375,9 +1349,9 @@ var messages = {
}
};
// CONCATENATED MODULE: ./lib/mixins/i18n.js
-function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || i18n_unsupportedIterableToArray(arr) || _nonIterableRest(); }
+function _toArray(arr) { return i18n_arrayWithHoles(arr) || _iterableToArray(arr) || i18n_unsupportedIterableToArray(arr) || i18n_nonIterableRest(); }
-function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
+function i18n_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function i18n_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return i18n_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return i18n_arrayLikeToArray(o, minLen); }
@@ -1385,7 +1359,7 @@ function i18n_arrayLikeToArray(arr, len) { if (len == null || len > arr.length)
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
-function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
+function i18n_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
// 语言配置
@@ -1398,11 +1372,11 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
var lang = this.language;
if (typeof lang === 'string') {
- lang = lib_lang[lang];
+ lang = config_lang[lang];
} // 找不到语言配置,则使用英文
- if (!lang) lang = lib_lang['en'];
+ if (!lang) lang = config_lang['en'];
return lang;
}
},
@@ -1459,7 +1433,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
}
});
// CONCATENATED MODULE: ./lib/mixins/iframe.js
-// iframe 页签
+// Iframe 页签
/* harmony default export */ var iframe = ({
data: function data() {
return {
@@ -1469,7 +1443,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
};
},
methods: {
- // 获取 iframe 页签路由路径
+ // 获取 Iframe 页签路由路径
getIframePath: function getIframePath(src) {
var title = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
var icon = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
@@ -1482,12 +1456,12 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
return path;
},
- // 打开 iframe 页签
+ // 打开 Iframe 页签
openIframe: function openIframe(src, title, icon) {
var path = this.getIframePath(src, title, icon);
this.$router.push(path);
},
- // 关闭 iframe 页签
+ // 关闭 Iframe 页签
closeIframe: function closeIframe(src) {
var path = this.getIframePath(src);
this.close({
@@ -1495,7 +1469,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
match: false
});
},
- // 刷新 iframe 页签
+ // 刷新 Iframe 页签
refreshIframe: function refreshIframe(src) {
var path = this.getIframePath(src);
this.refresh(path, false);
@@ -1520,11 +1494,11 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
// CONCATENATED MODULE: ./lib/mixins/operate.js
-function operate_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
+function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
-function operate_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { operate_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { operate_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
+function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
-function _slicedToArray(arr, i) { return operate_arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || operate_unsupportedIterableToArray(arr, i) || operate_nonIterableRest(); }
+function operate_slicedToArray(arr, i) { return operate_arrayWithHoles(arr) || operate_iterableToArrayLimit(arr, i) || operate_unsupportedIterableToArray(arr, i) || operate_nonIterableRest(); }
function operate_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -1532,11 +1506,11 @@ function operate_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typ
function operate_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
-function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
+function operate_iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function operate_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
-function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+function operate_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { operate_typeof = function _typeof(obj) { return typeof obj; }; } else { operate_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return operate_typeof(obj); }
// 获取关闭参数
@@ -1548,13 +1522,13 @@ function getCloseArgs(args) {
if (!argsLen) {
// close()
return {};
- } else if (arg && _typeof(arg) === 'object' && !arg.name && !arg.fullPath && !arg.params && !arg.query && !arg.hash) {
+ } else if (arg && operate_typeof(arg) === 'object' && !arg.name && !arg.fullPath && !arg.params && !arg.query && !arg.hash) {
// close({id, path, match, force, to, refresh})
return arg;
} else {
// close(path, to)
var _args = args,
- _args2 = _slicedToArray(_args, 2),
+ _args2 = operate_slicedToArray(_args, 2),
path = _args2[0],
to = _args2[1];
@@ -1584,7 +1558,7 @@ function equalPath(path1, path2) {
var _arguments = arguments,
_this = this;
- return operate_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
+ return _asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
var isReplace, refresh, curId, tarId, isSameTab;
return regenerator_default.a.wrap(function _callee$(_context) {
while (1) {
@@ -1628,7 +1602,7 @@ function equalPath(path1, path2) {
var _arguments2 = arguments,
_this2 = this;
- return operate_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee2() {
+ return _asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee2() {
var force, items, idx;
return regenerator_default.a.wrap(function _callee2$(_context2) {
while (1) {
@@ -1654,7 +1628,7 @@ function equalPath(path1, path2) {
}
_context2.next = 8;
- return _this2.pageLeavePromise(id, 'close');
+ return _this2.leavePage(id, 'close');
case 8:
// 承诺关闭后移除页签和缓存
@@ -1674,8 +1648,8 @@ function equalPath(path1, path2) {
/**
* 关闭页签
* 支持以下方式调用:
- * 1. this.$routerTab.close({id, path, match, force, to, refresh})
- * 2. this.$routerTab.close(path, to)
+ * 1. this.$tabs.close({id, path, match, force, to, refresh})
+ * 2. this.$tabs.close(path, to)
* @param {String} id 通过页签 id 关闭
* @param {location} path 通过路由路径关闭页签,如果未配置 id 和 path 则关闭当前页签
* @param {Boolean} [match = true] path 方式关闭时,是否匹配 path 完整路径
@@ -1687,7 +1661,7 @@ function equalPath(path1, path2) {
var _arguments3 = arguments,
_this3 = this;
- return operate_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee3() {
+ return _asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee3() {
var _getCloseArgs, id, path, _getCloseArgs$match, match, _getCloseArgs$force, force, to, _getCloseArgs$refresh, refresh, activeTabId, items, idx, nextTab;
return regenerator_default.a.wrap(function _callee3$(_context3) {
@@ -1763,7 +1737,7 @@ function equalPath(path1, path2) {
var _arguments4 = arguments,
_this4 = this;
- return operate_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee4() {
+ return _asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee4() {
var id, to, force;
return regenerator_default.a.wrap(function _callee4$(_context4) {
while (1) {
@@ -1805,7 +1779,7 @@ function equalPath(path1, path2) {
var _arguments5 = arguments,
_this5 = this;
- return operate_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee5() {
+ return _asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee5() {
var id, force;
return regenerator_default.a.wrap(function _callee5$(_context5) {
while (1) {
@@ -1821,7 +1795,7 @@ function equalPath(path1, path2) {
}
_context5.next = 6;
- return _this5.pageLeavePromise(id, 'refresh');
+ return _this5.leavePage(id, 'refresh');
case 6:
_this5.$alive.refresh(id);
@@ -1851,7 +1825,7 @@ function equalPath(path1, path2) {
var _arguments6 = arguments,
_this6 = this;
- return operate_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee6() {
+ return _asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee6() {
var force, cache, id;
return regenerator_default.a.wrap(function _callee6$(_context6) {
while (1) {
@@ -1876,7 +1850,7 @@ function equalPath(path1, path2) {
}
_context6.next = 9;
- return _this6.pageLeavePromise(id, 'refresh');
+ return _this6.leavePage(id, 'refresh');
case 9:
_this6.$alive.refresh(id);
@@ -1923,61 +1897,30 @@ function equalPath(path1, path2) {
}
});
// CONCATENATED MODULE: ./lib/mixins/pageLeave.js
- // 页面离开
-
-/* harmony default export */ var pageLeave = ({
- created: function created() {
- var $router = this.$router;
- if ($router._RouterTabInit) return; // 初始化路由导航守卫
-
- $router.beforeEach(pageLeave_leaveGuard($router));
- $router._RouterTabInit = true;
- },
- methods: {
- // 页面离开Promise
- pageLeavePromise: function pageLeavePromise(id, type) {
- var _this = this;
-
- return new Promise(function (resolve, reject) {
- var tab = _this.items.find(function (item) {
- return item.id === id;
- }); // 当前页签
- var _ref = _this.$alive.cache[id] || emptyObj,
- vm = _ref.vm; // 缓存数据
+function pageLeave_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
+function pageLeave_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { pageLeave_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { pageLeave_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
- var beforePageLeave = vm && vm.$vnode.componentOptions.Ctor.options.beforePageLeave;
-
- if (typeof beforePageLeave === 'function') {
- // 页签关闭前
- beforePageLeave.bind(vm)(resolve, reject, tab, type);
- } else {
- resolve();
- }
- });
- }
- }
-}); // 路由导航守卫
+ // 路由导航守卫
var pageLeave_leaveGuard = function leaveGuard(router) {
return function (to, from, next) {
- var tab = router.app.$routerTab;
+ var $tabs = router.app.$tabs;
- if (!tab) {
+ if (!$tabs) {
next();
return;
}
- var fromId = tab.activeTabId;
- var toId = tab.getRouteKey(to);
- var $alive = tab.$alive;
+ var toId = $tabs.getRouteKey(to);
+ var $alive = $tabs.$alive;
- var _ref2 = $alive && $alive.cache[toId] || emptyObj,
- alivePath = _ref2.alivePath;
+ var _ref = $alive && $alive.cache[toId] || emptyObj,
+ alivePath = _ref.alivePath;
- var matched = tab.matchRoute(to);
+ var matched = $tabs.matchRoute(to);
var id, type;
if (alivePath && alivePath !== matched.alivePath) {
@@ -1987,42 +1930,86 @@ var pageLeave_leaveGuard = function leaveGuard(router) {
} else if ($alive.basePath !== matched.basePath) {
// 离开页签组件:to 不在当前页签组件路由下
type = 'leave';
- id = fromId;
+ id = $tabs.activeTabId;
}
if (type) {
- tab.pageLeavePromise(id, type).then(function () {
- return next();
- }).catch(function () {
+ $tabs.leavePage(id, type).then(next).catch(function () {
return next(false);
});
} else {
next();
}
};
-};
-// CONCATENATED MODULE: ./lib/mixins/scroll.js
+}; // 页面离开
+/* harmony default export */ var mixins_pageLeave = ({
+ created: function created() {
+ var $router = this.$router;
+ if ($router._RouterTabInit) return; // 初始化路由导航守卫
-function scroll_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
+ $router.beforeEach(pageLeave_leaveGuard($router));
+ $router._RouterTabInit = true;
+ },
+ methods: {
+ // 页面离开 Promise
+ leavePage: function leavePage(id, type) {
+ var _this = this;
-function scroll_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { scroll_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { scroll_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
+ return pageLeave_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
+ var tab, _ref2, vm, pageLeave;
- // 页签滚动
+ return regenerator_default.a.wrap(function _callee$(_context) {
+ while (1) {
+ switch (_context.prev = _context.next) {
+ case 0:
+ tab = _this.items.find(function (item) {
+ return item.id === id;
+ }); // 当前页签
-/* harmony default export */ var mixins_scroll = ({
- watch: {
- activeTabId: {
- handler: function handler() {
- var _this = this;
+ _ref2 = _this.$alive.cache[id] || emptyObj, vm = _ref2.vm; // 缓存数据
- return scroll_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
- return regenerator_default.a.wrap(function _callee$(_context) {
- while (1) {
- switch (_context.prev = _context.next) {
- case 0:
- if (_this.$el) {
- _context.next = 2;
+ pageLeave = vm && vm.$vnode.componentOptions.Ctor.options.beforePageLeave;
+
+ if (!(typeof pageLeave === 'function')) {
+ _context.next = 5;
+ break;
+ }
+
+ return _context.abrupt("return", pageLeave.bind(vm)(tab, type));
+
+ case 5:
+ case "end":
+ return _context.stop();
+ }
+ }
+ }, _callee);
+ }))();
+ }
+ }
+});
+// CONCATENATED MODULE: ./lib/mixins/scroll.js
+
+
+function scroll_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
+
+function scroll_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { scroll_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { scroll_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
+
+ // 页签滚动
+
+/* harmony default export */ var mixins_scroll = ({
+ watch: {
+ activeTabId: {
+ handler: function handler() {
+ var _this = this;
+
+ return scroll_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
+ return regenerator_default.a.wrap(function _callee$(_context) {
+ while (1) {
+ switch (_context.prev = _context.next) {
+ case 0:
+ if (_this.$el) {
+ _context.next = 2;
break;
}
@@ -2126,23 +2113,17 @@ function scroll_asyncToGenerator(fn) { return function () { var self = this, arg
}
}
});
-// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0d070753-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!./lib/components/RouterAlive.vue?vue&type=template&id=ffca4b3e&
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"04e48bad-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!./lib/components/RouterAlive.vue?vue&type=template&id=ffca4b3e&
var RouterAlivevue_type_template_id_ffca4b3e_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"router-alive"},[_c('transition',_vm._b({attrs:{"appear":""},on:{"after-enter":_vm.onTransChange,"after-leave":_vm.onTransChange}},'transition',_vm.pageTrans,false),[_c('keep-alive',{attrs:{"max":_vm.max}},[(_vm.alive && !_vm.onRefresh)?_c('router-view',_vm._g({key:_vm.key,ref:"page",class:_vm.pageClass},_vm.hooks)):_vm._e()],1)],1),_c('transition',_vm._b({attrs:{"appear":""},on:{"after-enter":_vm.onTransChange,"after-leave":_vm.onTransChange}},'transition',_vm.pageTrans,false),[(!_vm.alive && !_vm.onRefresh)?_c('router-view',{key:_vm.key,ref:"page",class:_vm.pageClass}):_vm._e()],1)],1)}
var RouterAlivevue_type_template_id_ffca4b3e_staticRenderFns = []
// CONCATENATED MODULE: ./lib/components/RouterAlive.vue?vue&type=template&id=ffca4b3e&
-// CONCATENATED MODULE: ./lib/util/RouteMatch.js
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
+// CONCATENATED MODULE: ./lib/config/rules.js
// 内置规则
-var rules = {
+/* harmony default export */ var rules = ({
// 地址,params 不一致则独立缓存
path: function path(route) {
return route.path;
@@ -2151,7 +2132,16 @@ var rules = {
fullpath: function fullpath(route) {
return prunePath(route.fullPath);
}
-}; // 解析路由 key
+});
+// CONCATENATED MODULE: ./lib/util/RouteMatch.js
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
+
+
+ // 解析路由 key
function parseRouteKey($route, route, key) {
var defaultKey = route.path;
@@ -2740,16 +2730,16 @@ var component = normalizeComponent(
)
/* harmony default export */ var RouterAlive = (component.exports);
-// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0d070753-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!./lib/components/TabItem.vue?vue&type=template&id=64b9760c&
-var TabItemvue_type_template_id_64b9760c_render = function () {
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"04e48bad-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!./lib/components/TabItem.vue?vue&type=template&id=41fe9c1a&
+var TabItemvue_type_template_id_41fe9c1a_render = function () {
var _obj;
var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-link',{class:( _obj = {
'router-tab__item': true
- }, _obj[_vm.tabClass || ''] = true, _obj['is-active'] = _vm.RouterTab.activeTabId === _vm.id, _obj['is-closable'] = _vm.closable, _obj['is-contextmenu'] = _vm.RouterTab.contextmenu.id === _vm.id, _obj ),attrs:{"tag":"li","to":_vm.to}},[_vm._t("default",[(_vm.icon)?_c('i',{staticClass:"router-tab__item-icon",class:_vm.icon}):_vm._e(),_c('span',{staticClass:"router-tab__item-title",attrs:{"title":_vm.tips}},[_vm._v(_vm._s(_vm.title))]),(_vm.closable)?_c('i',{staticClass:"router-tab__item-close",on:{"click":function($event){$event.preventDefault();$event.stopPropagation();return _vm.close($event)}}}):_vm._e()],null,this)],2)}
-var TabItemvue_type_template_id_64b9760c_staticRenderFns = []
+ }, _obj[_vm.tabClass || ''] = true, _obj['is-active'] = _vm.$tabs.activeTabId === _vm.id, _obj['is-closable'] = _vm.closable, _obj['is-contextmenu'] = _vm.$tabs.contextData.id === _vm.id, _obj ),attrs:{"tag":"li","to":_vm.to}},[_vm._t("default",[(_vm.icon)?_c('i',{staticClass:"router-tab__item-icon",class:_vm.icon}):_vm._e(),_c('span',{staticClass:"router-tab__item-title",attrs:{"title":_vm.tips}},[_vm._v(_vm._s(_vm.title))]),(_vm.closable)?_c('i',{staticClass:"router-tab__item-close",on:{"click":function($event){$event.preventDefault();$event.stopPropagation();return _vm.close($event)}}}):_vm._e()],null,this)],2)}
+var TabItemvue_type_template_id_41fe9c1a_staticRenderFns = []
-// CONCATENATED MODULE: ./lib/components/TabItem.vue?vue&type=template&id=64b9760c&
+// CONCATENATED MODULE: ./lib/components/TabItem.vue?vue&type=template&id=41fe9c1a&
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./lib/components/TabItem.vue?vue&type=script&lang=js&
function TabItemvue_type_script_lang_js_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
@@ -2786,7 +2776,7 @@ function TabItemvue_type_script_lang_js_defineProperty(obj, key, value) { if (ke
/* harmony default export */ var TabItemvue_type_script_lang_js_ = ({
name: 'TabItem',
- inject: ['RouterTab'],
+ inject: ['$tabs'],
props: {
// 页签原始数据,方便 slot 插槽自定义数据
data: {
@@ -2799,11 +2789,11 @@ function TabItemvue_type_script_lang_js_defineProperty(obj, key, value) { if (ke
computed: TabItemvue_type_script_lang_js_objectSpread(TabItemvue_type_script_lang_js_objectSpread({}, mapGetters('data', ['id', 'to', 'icon', 'tabClass', 'target', 'href'])), {}, {
// 国际化
i18nText: function i18nText() {
- return this.RouterTab.i18nText;
+ return this.$tabs.i18nText;
},
// 未命名页签
untitled: function untitled() {
- return this.RouterTab.lang.tab.untitled;
+ return this.$tabs.lang.tab.untitled;
},
// 页签标题
title: function title() {
@@ -2815,16 +2805,16 @@ function TabItemvue_type_script_lang_js_defineProperty(obj, key, value) { if (ke
},
// 是否可关闭
closable: function closable() {
- var _this$RouterTab = this.RouterTab,
- keepLastTab = _this$RouterTab.keepLastTab,
- items = _this$RouterTab.items;
+ var _this$$tabs = this.$tabs,
+ keepLastTab = _this$$tabs.keepLastTab,
+ items = _this$$tabs.items;
return this.data.closable !== false && !(keepLastTab && items.length < 2);
}
}),
methods: {
// 关闭当前页签
close: function close() {
- this.RouterTab.closeTab(this.id);
+ this.$tabs.closeTab(this.id);
}
}
});
@@ -2840,8 +2830,8 @@ function TabItemvue_type_script_lang_js_defineProperty(obj, key, value) { if (ke
var TabItem_component = normalizeComponent(
components_TabItemvue_type_script_lang_js_,
- TabItemvue_type_template_id_64b9760c_render,
- TabItemvue_type_template_id_64b9760c_staticRenderFns,
+ TabItemvue_type_template_id_41fe9c1a_render,
+ TabItemvue_type_template_id_41fe9c1a_staticRenderFns,
false,
null,
null,
@@ -2850,12 +2840,15 @@ var TabItem_component = normalizeComponent(
)
/* harmony default export */ var TabItem = (TabItem_component.exports);
-// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0d070753-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!./lib/components/TabScroll.vue?vue&type=template&id=0741803e&
-var TabScrollvue_type_template_id_0741803e_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"router-tab__scroll",on:{"wheel":function($event){$event.preventDefault();return _vm.onWheel($event)},"mouseenter":_vm.update}},[_c('div',{ref:"container",staticClass:"router-tab__scroll-container",class:{ 'is-mobile': _vm.isMobile },on:{"scroll":_vm.update}},[_vm._t("default")],2),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.hasScroller),expression:"hasScroller"}],ref:"bar",staticClass:"router-tab__scrollbar",class:{ 'is-dragging': _vm.dragData }},[_c('div',{ref:"thumb",staticClass:"router-tab__scrollbar-thumb",style:(("width: " + _vm.thumbWidth + "px; transform: translateX(" + _vm.thumbLeft + "px)")),on:{"mousedown":function($event){$event.preventDefault();return _vm.onDragStart($event)}}})])])}
-var TabScrollvue_type_template_id_0741803e_staticRenderFns = []
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"04e48bad-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!./lib/components/TabScroll.vue?vue&type=template&id=b781fa08&
+var TabScrollvue_type_template_id_b781fa08_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"router-tab__scroll",on:{"wheel":function($event){$event.preventDefault();return _vm.onWheel($event)},"mouseenter":_vm.update}},[_c('div',{ref:"container",staticClass:"router-tab__scroll-container",class:{ 'is-mobile': _vm.isMobile },on:{"scroll":_vm.update}},[_vm._t("default")],2),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.hasScroller),expression:"hasScroller"}],ref:"bar",staticClass:"router-tab__scrollbar",class:{ 'is-dragging': _vm.dragData }},[_c('div',{ref:"thumb",staticClass:"router-tab__scrollbar-thumb",style:({
+ width: (_vm.thumbWidth + "px"),
+ transform: ("translateX(" + _vm.thumbLeft + "px")
+ }),on:{"mousedown":function($event){$event.preventDefault();return _vm.onDragStart($event)}}})])])}
+var TabScrollvue_type_template_id_b781fa08_staticRenderFns = []
-// CONCATENATED MODULE: ./lib/components/TabScroll.vue?vue&type=template&id=0741803e&
+// CONCATENATED MODULE: ./lib/components/TabScroll.vue?vue&type=template&id=b781fa08&
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./lib/components/TabScroll.vue?vue&type=script&lang=js&
//
@@ -2884,6 +2877,9 @@ var TabScrollvue_type_template_id_0741803e_staticRenderFns = []
//
//
//
+//
+//
+//
//
// 滚动条
@@ -3049,8 +3045,8 @@ var TabScrollvue_type_template_id_0741803e_staticRenderFns = []
var TabScroll_component = normalizeComponent(
components_TabScrollvue_type_script_lang_js_,
- TabScrollvue_type_template_id_0741803e_render,
- TabScrollvue_type_template_id_0741803e_staticRenderFns,
+ TabScrollvue_type_template_id_b781fa08_render,
+ TabScrollvue_type_template_id_b781fa08_staticRenderFns,
false,
null,
null,
@@ -3059,6 +3055,400 @@ var TabScroll_component = normalizeComponent(
)
/* harmony default export */ var TabScroll = (TabScroll_component.exports);
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"04e48bad-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!./lib/components/Contextmenu.vue?vue&type=template&id=00944f94&
+var Contextmenuvue_type_template_id_00944f94_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"router-tab__contextmenu",class:{ 'has-icon': _vm.hasIcon },style:({
+ left: ((_vm.data.left) + "px"),
+ top: ((_vm.data.top) + "px")
+ })},_vm._l((_vm.menuList),function(item){return _c('tab-contextmenu-item',{key:item.id,attrs:{"data":item}})}),1)}
+var Contextmenuvue_type_template_id_00944f94_staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./lib/components/Contextmenu.vue?vue&type=template&id=00944f94&
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"04e48bad-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!./lib/components/ContextmenuItem.vue?vue&type=template&id=29d67537&
+var ContextmenuItemvue_type_template_id_29d67537_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.visible)?_c('a',{staticClass:"router-tab__contextmenu-item",class:_vm.menuClass,attrs:{"data-action":_vm.id,"disabled":!_vm.enable,"title":_vm.tips},on:{"click":function($event){_vm.enable && _vm.data.handler(_vm.context)}}},[(_vm.icon)?_c('i',{staticClass:"router-tab__contextmenu-icon",class:_vm.icon}):_vm._e(),_vm._v(" "+_vm._s(_vm.title)+" ")]):_vm._e()}
+var ContextmenuItemvue_type_template_id_29d67537_staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./lib/components/ContextmenuItem.vue?vue&type=template&id=29d67537&
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./lib/components/ContextmenuItem.vue?vue&type=script&lang=js&
+function ContextmenuItemvue_type_script_lang_js_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
+
+function ContextmenuItemvue_type_script_lang_js_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ContextmenuItemvue_type_script_lang_js_ownKeys(Object(source), true).forEach(function (key) { ContextmenuItemvue_type_script_lang_js_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ContextmenuItemvue_type_script_lang_js_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+function ContextmenuItemvue_type_script_lang_js_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+/* harmony default export */ var ContextmenuItemvue_type_script_lang_js_ = ({
+ name: 'ContextmenuItem',
+ inject: ['$tabs'],
+ props: {
+ // 菜单数据
+ data: {
+ type: Object,
+ required: true
+ }
+ },
+ computed: ContextmenuItemvue_type_script_lang_js_objectSpread({
+ // 参数
+ context: function context() {
+ var $tabs = this.$tabs,
+ $menu = this.$parent;
+ var target = $menu.target,
+ data = $menu.data;
+ return {
+ $tabs: $tabs,
+ $menu: $menu,
+ target: target,
+ data: data
+ };
+ }
+ }, mapGetters('data', {
+ id: '',
+ // 菜单标题
+ title: function title() {
+ return this.$tabs.lang.contextmenu[this.id];
+ },
+ icon: '',
+ tips: '',
+ class: {
+ default: '',
+ alias: 'menuClass'
+ },
+ visible: true,
+ // 是否显示
+ enable: true // 是否启用
+
+ }, 'context'))
+});
+// CONCATENATED MODULE: ./lib/components/ContextmenuItem.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_ContextmenuItemvue_type_script_lang_js_ = (ContextmenuItemvue_type_script_lang_js_);
+// CONCATENATED MODULE: ./lib/components/ContextmenuItem.vue
+
+
+
+
+
+/* normalize component */
+
+var ContextmenuItem_component = normalizeComponent(
+ components_ContextmenuItemvue_type_script_lang_js_,
+ ContextmenuItemvue_type_template_id_29d67537_render,
+ ContextmenuItemvue_type_template_id_29d67537_staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var ContextmenuItem = (ContextmenuItem_component.exports);
+// CONCATENATED MODULE: ./lib/config/contextmenu.js
+function contextmenu_slicedToArray(arr, i) { return contextmenu_arrayWithHoles(arr) || contextmenu_iterableToArrayLimit(arr, i) || contextmenu_unsupportedIterableToArray(arr, i) || contextmenu_nonIterableRest(); }
+
+function contextmenu_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
+
+function contextmenu_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return contextmenu_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return contextmenu_arrayLikeToArray(o, minLen); }
+
+function contextmenu_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
+
+function contextmenu_iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
+
+function contextmenu_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
+
+// 菜单数据
+var menuMap = {
+ // 刷新
+ refresh: {
+ handler: function handler(_ref) {
+ var data = _ref.data,
+ $tabs = _ref.$tabs;
+ $tabs.refreshTab(data.id);
+ }
+ },
+ // 刷新全部
+ refreshAll: {
+ handler: function handler(_ref2) {
+ var $tabs = _ref2.$tabs;
+ $tabs.refreshAll();
+ }
+ },
+ // 关闭
+ close: {
+ enable: function enable(_ref3) {
+ var target = _ref3.target;
+ return target.closable;
+ },
+ handler: function handler(_ref4) {
+ var data = _ref4.data,
+ $tabs = _ref4.$tabs;
+ $tabs.closeTab(data.id);
+ }
+ },
+ // 关闭左侧
+ closeLefts: {
+ enable: function enable(_ref5) {
+ var $menu = _ref5.$menu;
+ return $menu.lefts.length;
+ },
+ handler: function handler(_ref6) {
+ var $menu = _ref6.$menu;
+ $menu.closeMulti($menu.lefts);
+ }
+ },
+ // 关闭右侧
+ closeRights: {
+ enable: function enable(_ref7) {
+ var $menu = _ref7.$menu;
+ return $menu.rights.length;
+ },
+ handler: function handler(_ref8) {
+ var $menu = _ref8.$menu;
+ $menu.closeMulti($menu.rights);
+ }
+ },
+ // 关闭其他
+ closeOthers: {
+ enable: function enable(_ref9) {
+ var $menu = _ref9.$menu;
+ return $menu.others.length;
+ },
+ handler: function handler(_ref10) {
+ var $menu = _ref10.$menu;
+ $menu.closeMulti($menu.others);
+ }
+ }
+}; // 遍历填充 id
+
+Object.entries(menuMap).forEach(function (_ref11) {
+ var _ref12 = contextmenu_slicedToArray(_ref11, 2),
+ id = _ref12[0],
+ item = _ref12[1];
+
+ return item.id = id;
+});
+/* harmony default export */ var config_contextmenu = (menuMap); // 默认菜单
+
+var defaultMenu = ['refresh', 'refreshAll', 'close', 'closeLefts', 'closeRights', 'closeOthers'];
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./lib/components/Contextmenu.vue?vue&type=script&lang=js&
+
+
+function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = Contextmenuvue_type_script_lang_js_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
+
+function Contextmenuvue_type_script_lang_js_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return Contextmenuvue_type_script_lang_js_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Contextmenuvue_type_script_lang_js_arrayLikeToArray(o, minLen); }
+
+function Contextmenuvue_type_script_lang_js_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
+
+function Contextmenuvue_type_script_lang_js_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
+
+function Contextmenuvue_type_script_lang_js_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { Contextmenuvue_type_script_lang_js_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { Contextmenuvue_type_script_lang_js_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
+
+function Contextmenuvue_type_script_lang_js_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
+
+function Contextmenuvue_type_script_lang_js_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { Contextmenuvue_type_script_lang_js_ownKeys(Object(source), true).forEach(function (key) { Contextmenuvue_type_script_lang_js_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { Contextmenuvue_type_script_lang_js_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+function Contextmenuvue_type_script_lang_js_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+
+/* harmony default export */ var Contextmenuvue_type_script_lang_js_ = ({
+ name: 'TabContextmenu',
+ inject: ['$tabs'],
+ components: {
+ TabContextmenuItem: ContextmenuItem
+ },
+ props: {
+ // 右键数据
+ data: {
+ type: [Boolean, Object]
+ },
+ // 菜单配置
+ menu: {
+ type: Array,
+ default: function _default() {
+ return defaultMenu;
+ }
+ }
+ },
+ computed: {
+ // 激活菜单的页签
+ target: function target() {
+ return this.$tabs.$refs.tab[this.data.index];
+ },
+ // 菜单选项
+ menuList: function menuList() {
+ return this.menu.map(function (item) {
+ if (typeof item === 'string') {
+ // 内置菜单
+ return config_contextmenu[item];
+ } else if (item && item.id) {
+ // 扩展内置菜单
+ var origin = config_contextmenu[item.id];
+ return origin ? Contextmenuvue_type_script_lang_js_objectSpread(Contextmenuvue_type_script_lang_js_objectSpread({}, origin), item) : item;
+ }
+ }).filter(function (item) {
+ return item;
+ });
+ },
+ // 是否显示图标
+ hasIcon: function hasIcon() {
+ return this.menuList.some(function (item) {
+ return item.icon;
+ });
+ },
+ // 页签
+ tabs: function tabs() {
+ return this.$tabs.$refs.tab;
+ },
+ // 左侧可关闭的页签
+ lefts: function lefts() {
+ return this.tabs.slice(0, this.data.index).filter(function (item) {
+ return item.closable;
+ });
+ },
+ // 左侧可关闭的页签
+ rights: function rights() {
+ return this.tabs.slice(this.data.index + 1).filter(function (item) {
+ return item.closable;
+ });
+ },
+ // 其他可关闭的页签
+ others: function others() {
+ var _this = this;
+
+ return this.tabs.filter(function (item) {
+ return item.closable && _this.data.id !== item.id;
+ });
+ }
+ },
+ methods: {
+ // 关闭多个页签
+ closeMulti: function closeMulti(tabs) {
+ var _this2 = this;
+
+ return Contextmenuvue_type_script_lang_js_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
+ var _iterator, _step, id;
+
+ return regenerator_default.a.wrap(function _callee$(_context) {
+ while (1) {
+ switch (_context.prev = _context.next) {
+ case 0:
+ _iterator = _createForOfIteratorHelper(tabs);
+ _context.prev = 1;
+
+ _iterator.s();
+
+ case 3:
+ if ((_step = _iterator.n()).done) {
+ _context.next = 14;
+ break;
+ }
+
+ id = _step.value.id;
+ _context.prev = 5;
+ _context.next = 8;
+ return _this2.$tabs.removeTab(id);
+
+ case 8:
+ _context.next = 12;
+ break;
+
+ case 10:
+ _context.prev = 10;
+ _context.t0 = _context["catch"](5);
+
+ case 12:
+ _context.next = 3;
+ break;
+
+ case 14:
+ _context.next = 19;
+ break;
+
+ case 16:
+ _context.prev = 16;
+ _context.t1 = _context["catch"](1);
+
+ _iterator.e(_context.t1);
+
+ case 19:
+ _context.prev = 19;
+
+ _iterator.f();
+
+ return _context.finish(19);
+
+ case 22:
+ // 当前页签如已关闭,则打开右键选中页签
+ if (!_this2.$tabs.activeTab) {
+ _this2.$router.replace(_this2.target.to);
+ }
+
+ case 23:
+ case "end":
+ return _context.stop();
+ }
+ }
+ }, _callee, null, [[1, 16, 19, 22], [5, 10]]);
+ }))();
+ }
+ }
+});
+// CONCATENATED MODULE: ./lib/components/Contextmenu.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_Contextmenuvue_type_script_lang_js_ = (Contextmenuvue_type_script_lang_js_);
+// CONCATENATED MODULE: ./lib/components/Contextmenu.vue
+
+
+
+
+
+/* normalize component */
+
+var Contextmenu_component = normalizeComponent(
+ components_Contextmenuvue_type_script_lang_js_,
+ Contextmenuvue_type_template_id_00944f94_render,
+ Contextmenuvue_type_template_id_00944f94_staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var Contextmenu = (Contextmenu_component.exports);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/eslint-loader??ref--13-0!./lib/RouterTab.js?vue&type=script&lang=js&
@@ -3085,20 +3475,22 @@ function RouterTabvue_type_script_lang_js_defineProperty(obj, key, value) { if (
+
// RouterTab 组件
var RouterTab = {
name: 'RouterTab',
- mixins: [mixins_contextmenu, i18n, iframe, operate, pageLeave, mixins_scroll, restore],
+ mixins: [contextmenu, i18n, iframe, operate, mixins_pageLeave, mixins_scroll, restore],
components: {
RouterAlive: RouterAlive,
TabItem: TabItem,
- TabScroll: TabScroll
+ TabScroll: TabScroll,
+ TabContextmenu: Contextmenu
},
// 注入子组件
provide: function provide() {
return {
- RouterTab: this
+ $tabs: this
};
},
props: {
@@ -3138,6 +3530,16 @@ var RouterTab = {
type: [String, Object],
default: 'zh-CN'
},
+
+ /**
+ * 自定义右键菜单
+ * 1. 为 false 时禁用
+ * 2. 为数组时可自定义右键菜单
+ */
+ contextmenu: {
+ type: [Boolean, Array],
+ default: true
+ },
// 默认是否缓存,可通过路由 meta.keepAlive 重置
keepAlive: {
type: Boolean,
@@ -3221,13 +3623,13 @@ var RouterTab = {
},
created: function created() {
// 添加到原型链
- RouterTab.Vue.prototype.$routerTab = this;
+ RouterTab.Vue.prototype.$tabs = this;
},
destroyed: function destroyed() {
var proto = RouterTab.Vue.prototype; // 取消原型挂载
- if (proto.$routerTab === this) {
- proto.$routerTab = null;
+ if (proto.$tabs === this) {
+ proto.$tabs = null;
}
},
methods: {
@@ -3373,20 +3775,12 @@ var RouterTab = {
/* harmony default export */ var RouterTabvue_type_script_lang_js_ = (RouterTab);
// CONCATENATED MODULE: ./lib/RouterTab.js?vue&type=script&lang=js&
/* harmony default export */ var lib_RouterTabvue_type_script_lang_js_ = (RouterTabvue_type_script_lang_js_);
-// EXTERNAL MODULE: ./lib/scss/routerTab.scss?vue&type=style&index=0&lang=scss&
-var routerTabvue_type_style_index_0_lang_scss_ = __webpack_require__("cec0");
-
-// EXTERNAL MODULE: ./lib/scss/transition.scss?vue&type=style&index=1&lang=scss&
-var transitionvue_type_style_index_1_lang_scss_ = __webpack_require__("ea7e");
-
// CONCATENATED MODULE: ./lib/RouterTab.vue
-
-
/* normalize component */
var RouterTab_component = normalizeComponent(
@@ -3401,12 +3795,12 @@ var RouterTab_component = normalizeComponent(
)
/* harmony default export */ var lib_RouterTab = (RouterTab_component.exports);
-// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0d070753-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!./lib/page/Iframe.vue?vue&type=template&id=f9e4f0ec&
-var Iframevue_type_template_id_f9e4f0ec_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"router-tab-iframe-fake"})}
-var Iframevue_type_template_id_f9e4f0ec_staticRenderFns = []
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"04e48bad-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!./lib/page/Iframe.vue?vue&type=template&id=28764eeb&
+var Iframevue_type_template_id_28764eeb_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"router-tab-iframe-fake"})}
+var Iframevue_type_template_id_28764eeb_staticRenderFns = []
-// CONCATENATED MODULE: ./lib/page/Iframe.vue?vue&type=template&id=f9e4f0ec&
+// CONCATENATED MODULE: ./lib/page/Iframe.vue?vue&type=template&id=28764eeb&
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./lib/page/Iframe.vue?vue&type=script&lang=js&
@@ -3419,10 +3813,10 @@ function Iframevue_type_script_lang_js_asyncToGenerator(fn) { return function ()
//
//
//
-// iframe 页签页面
+// Iframe 页签页面
/* harmony default export */ var Iframevue_type_script_lang_js_ = ({
name: 'Iframe',
- inject: ['RouterTab'],
+ inject: ['$tabs'],
props: {
src: String,
title: String,
@@ -3444,24 +3838,24 @@ function Iframevue_type_script_lang_js_asyncToGenerator(fn) { return function ()
var _this = this;
return Iframevue_type_script_lang_js_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
- var url, $tab, iframes;
+ var url, $tabs, iframes;
return regenerator_default.a.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
- url = _this.url, $tab = _this.RouterTab;
- iframes = $tab.iframes;
+ url = _this.url, $tabs = _this.$tabs;
+ iframes = $tabs.iframes;
if (!iframes.includes(url)) {
iframes.push(url);
}
- $tab.currentIframe = url;
+ $tabs.currentIframe = url;
_context.next = 6;
return _this.$nextTick();
case 6:
- _this.RouterTab.iframeMounted(url);
+ _this.$tabs.iframeMounted(url);
case 7:
case "end":
@@ -3472,15 +3866,15 @@ function Iframevue_type_script_lang_js_asyncToGenerator(fn) { return function ()
}))();
},
activated: function activated() {
- this.RouterTab.currentIframe = this.url;
+ this.$tabs.currentIframe = this.url;
},
deactivated: function deactivated() {
- this.RouterTab.currentIframe = null;
+ this.$tabs.currentIframe = null;
},
// 组件销毁后移除 iframe
destroyed: function destroyed() {
var url = this.url;
- var iframes = this.RouterTab.iframes;
+ var iframes = this.$tabs.iframes;
var index = iframes.indexOf(url);
if (index > -1) {
@@ -3500,8 +3894,8 @@ function Iframevue_type_script_lang_js_asyncToGenerator(fn) { return function ()
var Iframe_component = normalizeComponent(
page_Iframevue_type_script_lang_js_,
- Iframevue_type_template_id_f9e4f0ec_render,
- Iframevue_type_template_id_f9e4f0ec_staticRenderFns,
+ Iframevue_type_template_id_28764eeb_render,
+ Iframevue_type_template_id_28764eeb_staticRenderFns,
false,
null,
null,
@@ -3510,7 +3904,7 @@ var Iframe_component = normalizeComponent(
)
/* harmony default export */ var Iframe = (Iframe_component.exports);
-// CONCATENATED MODULE: ./lib/util/routes.js
+// CONCATENATED MODULE: ./lib/config/routes.js
// 注入的路由
/* harmony default export */ var routes = ([{
@@ -3531,37 +3925,81 @@ var Iframe_component = normalizeComponent(
}
}]);
// CONCATENATED MODULE: ./lib/mixins/routerPage.js
-// 路由页面混入
+ // 浏览器窗口关闭或者刷新
+
+var beforeunload = function beforeunload($tabs, tabId, beforePageLeave) {
+ return function (e) {
+ if (!$tabs && $tabs._isDestroyed) return;
+ var tab = $tabs.items.find(function (item) {
+ return item.id === tabId;
+ });
+ var msg = beforePageLeave(tab, 'unload');
+
+ if (msg && typeof msg === 'string') {
+ e.preventDefault();
+ e.returnValue = msg; // 非当前页签则切换
+
+ if ($tabs.activeTabId !== tabId) {
+ $tabs.open(tab.to, false, false);
+ }
+
+ return msg;
+ }
+ };
+}; // 路由页面混入
+
+
/* harmony default export */ var routerPage = ({
- // 创建前记录缓存
- mounted: function mounted() {
+ watch: {
// 监听 routerTab 字段,更新页签信息
- this.$watch('routeTab', function (val) {
- if (!val) return;
- var tab = typeof val === 'string' ? {
- title: val
- } : val;
-
- var _ref = this.$routerTab || {},
- activeTab = _ref.activeTab;
-
- if (tab && activeTab) {
- for (var key in tab) {
- if (!['id', 'to'].includes(key)) {
- this.$set(activeTab, key, tab[key]);
+ routeTab: {
+ handler: function handler(val) {
+ if (!val) return;
+ var tab = typeof val === 'string' ? {
+ title: val
+ } : val;
+
+ var _ref = this.$tabs || emptyObj,
+ activeTab = _ref.activeTab;
+
+ if (tab && activeTab) {
+ for (var key in tab) {
+ if (!['id', 'to'].includes(key)) {
+ this.$set(activeTab, key, tab[key]);
+ }
}
}
- }
- }, {
+ },
deep: true,
immediate: true
- });
+ }
+ },
+ // 创建前记录缓存
+ mounted: function mounted() {
+ var $tabs = this.$tabs;
+
+ var _ref2 = this.$vnode && this.$vnode.componentOptions.Ctor.options || emptyObj,
+ beforePageLeave = _ref2.beforePageLeave; // 页面离开确认
+
+
+ if ($tabs && beforePageLeave) {
+ window.addEventListener('beforeunload', this._beforeunload = beforeunload($tabs, $tabs.activeTabId, beforePageLeave.bind(this)));
+ }
+ },
+ destroyed: function destroyed() {
+ if (this._beforeunload) {
+ window.removeEventListener('beforeunload', this._beforeunload);
+ }
}
});
+// EXTERNAL MODULE: ./lib/scss/routerTab.scss
+var routerTab = __webpack_require__("751c");
+
// CONCATENATED MODULE: ./lib/index.js
+
// 安装
lib_RouterTab.install = function install(Vue) {
diff --git a/dist/lib/vue-router-tab.common.js.map b/dist/lib/vue-router-tab.common.js.map
index 3d40b89a..df2cd3bd 100644
--- a/dist/lib/vue-router-tab.common.js.map
+++ b/dist/lib/vue-router-tab.common.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack://vue-router-tab/webpack/bootstrap","webpack://vue-router-tab/./lib/scss/routerTab.scss?1dc1","webpack://vue-router-tab/./node_modules/@soda/get-current-script/index.js","webpack://vue-router-tab/./node_modules/regenerator-runtime/runtime.js","webpack://vue-router-tab/./node_modules/@babel/runtime/regenerator/index.js","webpack://vue-router-tab/./lib/scss/routerTab.scss?211b","webpack://vue-router-tab/./lib/scss/transition.scss?263f","webpack://vue-router-tab/./lib/scss/transition.scss?02bc","webpack://vue-router-tab/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://vue-router-tab/./lib/RouterTab.vue?237a","webpack://vue-router-tab/./lib/util/index.js","webpack://vue-router-tab/./lib/mixins/contextmenu.js","webpack://vue-router-tab/./lib/lang/zh-CN.js","webpack://vue-router-tab/./lib/lang/en.js","webpack://vue-router-tab/./lib/lang/index.js","webpack://vue-router-tab/./lib/util/warn.js","webpack://vue-router-tab/./lib/mixins/i18n.js","webpack://vue-router-tab/./lib/mixins/iframe.js","webpack://vue-router-tab/./lib/mixins/operate.js","webpack://vue-router-tab/./lib/mixins/pageLeave.js","webpack://vue-router-tab/./lib/mixins/scroll.js","webpack://vue-router-tab/./lib/mixins/restore.js","webpack://vue-router-tab/./lib/components/RouterAlive.vue?0eff","webpack://vue-router-tab/./lib/util/RouteMatch.js","webpack://vue-router-tab/lib/components/RouterAlive.vue","webpack://vue-router-tab/./lib/components/RouterAlive.vue?534a","webpack://vue-router-tab/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://vue-router-tab/./lib/components/RouterAlive.vue","webpack://vue-router-tab/./lib/components/TabItem.vue?82f0","webpack://vue-router-tab/lib/components/TabItem.vue","webpack://vue-router-tab/./lib/components/TabItem.vue?9042","webpack://vue-router-tab/./lib/components/TabItem.vue","webpack://vue-router-tab/./lib/components/TabScroll.vue?d0be","webpack://vue-router-tab/lib/components/TabScroll.vue","webpack://vue-router-tab/./lib/components/TabScroll.vue?c598","webpack://vue-router-tab/./lib/components/TabScroll.vue","webpack://vue-router-tab/./lib/RouterTab.js","webpack://vue-router-tab/./lib/RouterTab.js?7483","webpack://vue-router-tab/./lib/RouterTab.vue","webpack://vue-router-tab/./lib/page/Iframe.vue?0916","webpack://vue-router-tab/lib/page/Iframe.vue","webpack://vue-router-tab/./lib/page/Iframe.vue?e146","webpack://vue-router-tab/./lib/page/Iframe.vue","webpack://vue-router-tab/./lib/util/routes.js","webpack://vue-router-tab/./lib/mixins/routerPage.js","webpack://vue-router-tab/./lib/index.js","webpack://vue-router-tab/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"names":["module","exports","require","emptyObj","Object","create","emptyArray","remove","arr","item","length","index","indexOf","splice","debounce","fn","delay","timeout","context","args","arguments","clearTimeout","setTimeout","call","scrollTo","wrap","left","top","smooth","behavior","scrollLeft","scrollTop","scrollIntoView","el","block","inline","offsetLeft","offsetTop","clientHeight","clientWidth","mapGetters","prop","keys","map","forEach","key","prunePath","path","split","getTransOpt","trans","name","data","contextmenu","id","computed","isContextTabCanBeClosed","items","contextTab","closable","tabsLeft","slice","filter","tabsRight","tabsOther","tid","watch","$route","hideContextmenu","val","old","document","addEventListener","onClick","e","target","$el","querySelector","removeEventListener","methods","showContextmenu","clientY","clientX","assign","closeMulti","tabs","$router","nextTab","find","removeTab","findIndex","activeTabId","replace","to","tab","untitled","refresh","refreshAll","close","closeLefts","closeRights","closeOthers","msg","keepLastTab","i18nProp","zhCN","en","prefix","assert","condition","message","Error","warn","console","messages","renamed","newName","lang","language","langs","i18nText","text","i18nParse","params","hasI18nProp","i18n","_hasI18nPropWarn","res","exec","Array","isArray","iframes","currentIframe","iframeNamePrefix","getIframePath","src","title","icon","basePath","encodeURIComponent","openIframe","push","closeIframe","match","refreshIframe","getIframeEl","url","getElementsByName","iframeMounted","iframe","$emit","iframeLoaded","getCloseArgs","from","argsLen","arg","fullPath","query","hash","equalPath","path1","path2","reg","open","isReplace","curId","tarId","getRouteKey","isSameTab","reload","force","idx","pageLeavePromise","$alive","getIdByPath","defaultPath","closeTab","undefined","refreshTab","cache","reset","clearTabsStore","initTabs","created","_RouterTabInit","beforeEach","leaveGuard","type","Promise","resolve","reject","vm","beforePageLeave","$vnode","componentOptions","Ctor","options","bind","router","next","app","$routerTab","fromId","toId","alivePath","matched","matchRoute","then","catch","handler","$nextTick","adjust","immediate","mounted","window","onResize","destroyed","scroll","$refs","cur","isInView","restoreKey","restore","sessionStorage","saveTabs","restoreWatch","activeTab","setItem","JSON","stringify","removeItem","restoreTabs","getItem","hasStore","parse","presetTabs","rules","route","fullpath","parseRouteKey","defaultKey","rule","toLowerCase","parsePath","RouteMatch","currentRoute","_$route","routeIndex","baseRoute","nest","meta","keepAlive","reuse","RouterTab","mixins","operate","pageLeave","components","RouterAlive","TabItem","TabScroll","provide","props","default","Boolean","String","defaultPage","Function","maxAlive","Number","tabTransition","pageTransition","mode","loading","aliveReady","routerAlive","tabTrans","pageTrans","Vue","prototype","proto","onAliveReady","ids","getRouteTab","onAliveChange","matchIdx","$set","i","includes","matchTab","component","Iframe","$watch","deep","install","installed","mixin","routerPage","use"],"mappings":";;QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;AClFA,uC;;;;;;;ACAA;AACA;AACA;;AAEA;;AAEA;AACA,MAAM,IAA0C;AAChD,IAAI,iCAAO,EAAE,oCAAE,OAAO;AAAA;AAAA;AAAA,oGAAC;AACvB,GAAG,MAAM,EAIN;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;;AAE1D;AACA;AACA,+DAA+D,qBAAqB;AACpF;AACA;;AAEA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;AC9ED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,kBAAkB;AACnD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8CAA8C,QAAQ;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE,KAA0B,oBAAoB,SAAE;AAClD;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxtBAA,MAAM,CAACC,OAAP,GAAiBC,mBAAO,CAAC,MAAD,CAAxB,C;;;;;;;;ACAA;AAAA;AAAA;AAA0Y,CAAgB,+bAAG,EAAC,C;;;;;;;;ACA9Z;AAAA;AAAA;AAA2Y,CAAgB,gcAAG,EAAC,C;;;;;;;ACA/Z,uC;;;;;;;;;;;;;;;;ACAA;;AAEA;AACA;AACA,MAAM,IAAuC;AAC7C,2BAA2B,mBAAO,CAAC,MAA0B;AAC7D;;AAEA;AACA;AACA,wDAAwD,wBAAwB;AAChF;AACA;;AAEA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AWA,KA9CA;AAgDA;AACA,WAjDA,qBAiDA;AAAA;AACA,uBADA,CAGA;;AACA;AACA;AACA;AACA,KAxDA;AA0DA;AACA,UA3DA,oBA2DA;AACA;AAEA;AACA,KA/DA;AAiEA;AACA,YAlEA,oBAkEA,IAlEA,EAkEA;AACA;AACA;AACA,KArEA;AAuEA;AACA,sBAxEA,6BAwEA;AACA;AACA,iCADA;AAEA;AAFA;AAIA,KA7EA;AA+EA;AACA,sBAhFA,6BAgFA;AAAA,UACA,IADA,GACA,UADA,CACA,IADA;AAGA;AACA,KApFA;AAsFA;AACA,wBAvFA,+BAuFA;AACA;AACA;AACA;AACA;AACA;AACA,KA7FA;AA+FA;AACA,wBAhGA,+BAgGA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACA,kBADA;;AAAA;AAAA,oBAGA,YAHA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAKA;AACA;AAAA;AAAA;AAAA;;AAAA,8BACA,UADA;AAAA,sBACA,EADA,SACA,EADA;;AAEA;AACA;AACA;AACA,iBALA;;AANA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA,KA5GA;AA8GA;AACA,iBA/GA,2BA+GA;AACA;AACA;AACA;AACA;AACA,KApHA;AAsHA;AACA,cAvHA,sBAuHA,MAvHA,EAuHA;AACA,gCADA,CAGA;;AACA,UACA,0BACA,wCADA,IAEA,+BAHA,EAIA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAzIA;AApJA,G;;AC1CqU,CAAgB,sHAAG,EAAC,C;;ACAzV;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AA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","file":"vue-router-tab.common.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n","// extracted by mini-css-extract-plugin","// addapted from the document.currentScript polyfill by Adam Miller\n// MIT license\n// source: https://github.com/amiller-gh/currentScript-polyfill\n\n// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = factory();\n } else {\n root.getCurrentScript = factory();\n }\n}(typeof self !== 'undefined' ? self : this, function () {\n function getCurrentScript () {\n var descriptor = Object.getOwnPropertyDescriptor(document, 'currentScript')\n // for chrome\n if (!descriptor && 'currentScript' in document && document.currentScript) {\n return document.currentScript\n }\n\n // for other browsers with native support for currentScript\n if (descriptor && descriptor.get !== getCurrentScript && document.currentScript) {\n return document.currentScript\n }\n \n // IE 8-10 support script readyState\n // IE 11+ & Firefox support stack trace\n try {\n throw new Error();\n }\n catch (err) {\n // Find the second match for the \"at\" string to get file src url from stack.\n var ieStackRegExp = /.*at [^(]*\\((.*):(.+):(.+)\\)$/ig,\n ffStackRegExp = /@([^@]*):(\\d+):(\\d+)\\s*$/ig,\n stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),\n scriptLocation = (stackDetails && stackDetails[1]) || false,\n line = (stackDetails && stackDetails[2]) || false,\n currentLocation = document.location.href.replace(document.location.hash, ''),\n pageSource,\n inlineScriptSourceRegExp,\n inlineScriptSource,\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n \n if (scriptLocation === currentLocation) {\n pageSource = document.documentElement.outerHTML;\n inlineScriptSourceRegExp = new RegExp('(?:[^\\\\n]+?\\\\n){0,' + (line - 2) + '}[^<]*\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RouterAlive.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RouterAlive.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./RouterAlive.vue?vue&type=template&id=ffca4b3e&\"\nimport script from \"./RouterAlive.vue?vue&type=script&lang=js&\"\nexport * from \"./RouterAlive.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-link',{class:( _obj = {\n 'router-tab__item': true\n }, _obj[_vm.tabClass || ''] = true, _obj['is-active'] = _vm.RouterTab.activeTabId === _vm.id, _obj['is-closable'] = _vm.closable, _obj['is-contextmenu'] = _vm.RouterTab.contextmenu.id === _vm.id, _obj ),attrs:{\"tag\":\"li\",\"to\":_vm.to}},[_vm._t(\"default\",[(_vm.icon)?_c('i',{staticClass:\"router-tab__item-icon\",class:_vm.icon}):_vm._e(),_c('span',{staticClass:\"router-tab__item-title\",attrs:{\"title\":_vm.tips}},[_vm._v(_vm._s(_vm.title))]),(_vm.closable)?_c('i',{staticClass:\"router-tab__item-close\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.close($event)}}}):_vm._e()],null,this)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n {{ title }}\r\n \r\n \r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TabItem.vue?vue&type=template&id=64b9760c&\"\nimport script from \"./TabItem.vue?vue&type=script&lang=js&\"\nexport * from \"./TabItem.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"router-tab__scroll\",on:{\"wheel\":function($event){$event.preventDefault();return _vm.onWheel($event)},\"mouseenter\":_vm.update}},[_c('div',{ref:\"container\",staticClass:\"router-tab__scroll-container\",class:{ 'is-mobile': _vm.isMobile },on:{\"scroll\":_vm.update}},[_vm._t(\"default\")],2),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasScroller),expression:\"hasScroller\"}],ref:\"bar\",staticClass:\"router-tab__scrollbar\",class:{ 'is-dragging': _vm.dragData }},[_c('div',{ref:\"thumb\",staticClass:\"router-tab__scrollbar-thumb\",style:((\"width: \" + _vm.thumbWidth + \"px; transform: translateX(\" + _vm.thumbLeft + \"px)\")),on:{\"mousedown\":function($event){$event.preventDefault();return _vm.onDragStart($event)}}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabScroll.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabScroll.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TabScroll.vue?vue&type=template&id=0741803e&\"\nimport script from \"./TabScroll.vue?vue&type=script&lang=js&\"\nexport * from \"./TabScroll.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// 方法\r\nimport { emptyObj, prunePath, getTransOpt } from './util'\r\n\r\n// 功能模块混入\r\nimport contextmenu from './mixins/contextmenu'\r\nimport i18n from './mixins/i18n'\r\nimport iframe from './mixins/iframe'\r\nimport operate from './mixins/operate'\r\nimport pageLeave from './mixins/pageLeave'\r\nimport scroll from './mixins/scroll'\r\nimport restore from './mixins/restore'\r\n\r\n// 子组件\r\nimport RouterAlive from './components/RouterAlive.vue'\r\nimport TabItem from './components/TabItem.vue'\r\nimport TabScroll from './components/TabScroll.vue'\r\n\r\n// RouterTab 组件\r\nconst RouterTab = {\r\n name: 'RouterTab',\r\n mixins: [contextmenu, i18n, iframe, operate, pageLeave, scroll, restore],\r\n components: { RouterAlive, TabItem, TabScroll },\r\n\r\n // 注入子组件\r\n provide() {\r\n return { RouterTab: this }\r\n },\r\n\r\n props: {\r\n // 初始页签数据\r\n tabs: {\r\n type: Array,\r\n default: () => []\r\n },\r\n\r\n // 页面刷新后是否恢复页签\r\n restore: {\r\n type: [Boolean, String],\r\n default: false\r\n },\r\n\r\n // 是否监听 restoreKey 变化自动还原页签\r\n restoreWatch: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n // 是否保留最后一个页签不被关闭\r\n keepLastTab: {\r\n type: Boolean,\r\n default: true\r\n },\r\n\r\n // 默认页面\r\n defaultPage: [String, Object],\r\n\r\n // 页签国际化配置 i18n (key, [args])\r\n i18n: Function,\r\n\r\n /**\r\n * 组件语言\r\n * - 为字符串时,可以设置为内置的语言 'zh-CN' (默认) 和 'en'\r\n * - 为对象时,可设置自定义的语言\r\n */\r\n language: {\r\n type: [String, Object],\r\n default: 'zh-CN'\r\n },\r\n\r\n // 默认是否缓存,可通过路由 meta.keepAlive 重置\r\n keepAlive: {\r\n type: Boolean,\r\n default: true\r\n },\r\n\r\n // 最大缓存数,0 则不限制\r\n maxAlive: {\r\n type: Number,\r\n default: 0\r\n },\r\n\r\n // 是否复用路由组件,可通过路由 meta.reuse 重置\r\n reuse: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n // 页签过渡效果\r\n tabTransition: {\r\n type: [String, Object],\r\n default: 'router-tab-zoom'\r\n },\r\n\r\n // 页面过渡效果\r\n pageTransition: {\r\n type: [String, Object],\r\n default: () => ({\r\n name: 'router-tab-swap',\r\n mode: 'out-in'\r\n })\r\n }\r\n },\r\n\r\n data() {\r\n return {\r\n items: [], // 页签项\r\n loading: false, // 路由页面 loading\r\n aliveReady: false // RouterAlive 初始化\r\n }\r\n },\r\n\r\n computed: {\r\n // routerAlive\r\n $alive() {\r\n return this.aliveReady ? this.$refs.routerAlive : null\r\n },\r\n\r\n // 当前激活的页签 id\r\n activeTabId() {\r\n return this.$alive ? this.$alive.key : null\r\n },\r\n\r\n // 当前激活的页签\r\n activeTab() {\r\n return this.items.find(item => item.id === this.activeTabId)\r\n },\r\n\r\n // 根路径\r\n basePath() {\r\n return this.$alive ? this.$alive.basePath : '/'\r\n },\r\n\r\n // 默认路径\r\n defaultPath() {\r\n return this.defaultPage || this.basePath || '/'\r\n },\r\n\r\n // 页签过渡\r\n tabTrans() {\r\n return getTransOpt(this.tabTransition)\r\n },\r\n\r\n // 页面过渡\r\n pageTrans() {\r\n return getTransOpt(this.pageTransition)\r\n }\r\n },\r\n\r\n watch: {\r\n // 路由切换更新激活的页签\r\n $route() {\r\n this.loading = false\r\n }\r\n },\r\n\r\n created() {\r\n // 添加到原型链\r\n RouterTab.Vue.prototype.$routerTab = this\r\n },\r\n\r\n destroyed() {\r\n const proto = RouterTab.Vue.prototype\r\n // 取消原型挂载\r\n if (proto.$routerTab === this) {\r\n proto.$routerTab = null\r\n }\r\n },\r\n\r\n methods: {\r\n // RouterAlive 组件就绪\r\n onAliveReady($alive) {\r\n // 获取 keepAlive 组件实例\r\n this.$refs.routerAlive = $alive\r\n this.aliveReady = true\r\n this.initTabs()\r\n },\r\n\r\n // 初始页签数据\r\n initTabs() {\r\n if (this.restoreTabs()) return\r\n\r\n this.presetTabs()\r\n },\r\n\r\n // 预设页签\r\n presetTabs(tabs = this.tabs) {\r\n let ids = {}\r\n\r\n this.items = tabs\r\n .map(item => {\r\n item = typeof item === 'string' ? { to: item } : item || emptyObj\r\n\r\n const matched = item.to && this.matchRoute(item.to)\r\n\r\n if (matched) {\r\n const tab = this.getRouteTab(matched)\r\n const id = tab.id\r\n\r\n // 根据 id 去重\r\n if (!ids[id]) {\r\n // id 不允许更改\r\n delete item.id\r\n\r\n // 初始 tab 数据\r\n return (ids[id] = Object.assign(tab, item))\r\n }\r\n }\r\n })\r\n .filter(item => !!item)\r\n },\r\n\r\n // RouterAlive 缓存更新时同步更改页签\r\n onAliveChange(type, matched) {\r\n const { items } = this\r\n const matchIdx = items.findIndex(({ id }) => id === matched.key)\r\n const item = this.getRouteTab(matched)\r\n\r\n // 页签已存在\r\n if (matchIdx > -1) {\r\n if (\r\n type === 'create' || // 创建缓存\r\n (type === 'update' && items[matchIdx].to !== matched.$route.fullPath) // 更新缓存且地址更改\r\n ) {\r\n // 替换原页签\r\n this.$set(items, matchIdx, item)\r\n }\r\n } else {\r\n // 新增页签\r\n items.push(item)\r\n }\r\n },\r\n\r\n // 从 route 中获取 tab 配置\r\n getRouteTab({ key, $route, meta }) {\r\n const tab = { ...meta }\r\n\r\n // 支持根据路由函数返回的页签属性\r\n const props = ['title', 'tips', 'icon', 'closable']\r\n\r\n for (let i in tab) {\r\n if (props.includes(i)) {\r\n const val = tab[i]\r\n if (typeof val === 'function') {\r\n tab[i] = val($route)\r\n }\r\n }\r\n }\r\n\r\n return Object.assign(tab, {\r\n id: key,\r\n to: $route.fullPath\r\n })\r\n },\r\n\r\n // 重载路由视图\r\n async reload() {\r\n this.$alive.reload()\r\n },\r\n\r\n // 匹配路由信息\r\n matchRoute($route) {\r\n return this.$alive.matchRoute($route)\r\n },\r\n\r\n // 获取路由缓存 key\r\n getRouteKey(route = this.$route) {\r\n return this.matchRoute(route).key\r\n },\r\n\r\n // 从路由地址匹配页签 id\r\n getIdByPath(path, match = true) {\r\n if (!path) return\r\n\r\n const matched = this.matchRoute(path)\r\n const { key } = matched\r\n\r\n if (match) {\r\n // 路由地址精确匹配页签\r\n const matchTab = this.items.find(\r\n ({ to }) => prunePath(to) === prunePath(matched.$route.fullPath)\r\n )\r\n\r\n if (matchTab) {\r\n return key\r\n }\r\n }\r\n\r\n return key\r\n }\r\n }\r\n}\r\n\r\nexport default RouterTab\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/eslint-loader/index.js??ref--13-0!./RouterTab.js?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/eslint-loader/index.js??ref--13-0!./RouterTab.js?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RouterTab.vue?vue&type=template&id=4af9cf8f&\"\nimport script from \"./RouterTab.js?vue&type=script&lang=js&\"\nexport * from \"./RouterTab.js?vue&type=script&lang=js&\"\nimport style0 from \"./scss/routerTab.scss?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./scss/transition.scss?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"router-tab-iframe-fake\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Iframe.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Iframe.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Iframe.vue?vue&type=template&id=f9e4f0ec&\"\nimport script from \"./Iframe.vue?vue&type=script&lang=js&\"\nexport * from \"./Iframe.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Iframe from '../page/Iframe.vue'\r\n\r\n// 注入的路由\r\nexport default [\r\n {\r\n // iframe 路由\r\n path: 'iframe/:src/:title?/:icon?',\r\n component: Iframe,\r\n props: true,\r\n meta: {\r\n key: route => `iframe-${route.params.src}`,\r\n title: route => route.params.title,\r\n icon: route => route.params.icon\r\n }\r\n }\r\n]\r\n","// 路由页面混入\r\nexport default {\r\n // 创建前记录缓存\r\n mounted() {\r\n // 监听 routerTab 字段,更新页签信息\r\n this.$watch(\r\n 'routeTab',\r\n function(val) {\r\n if (!val) return\r\n\r\n const tab = typeof val === 'string' ? { title: val } : val\r\n const { activeTab } = this.$routerTab || {}\r\n\r\n if (tab && activeTab) {\r\n for (const key in tab) {\r\n if (!['id', 'to'].includes(key)) {\r\n this.$set(activeTab, key, tab[key])\r\n }\r\n }\r\n }\r\n },\r\n {\r\n deep: true,\r\n immediate: true\r\n }\r\n )\r\n }\r\n}\r\n","import RouterTab from './RouterTab.vue'\r\nimport RouterAlive from './components/RouterAlive.vue'\r\nimport RouterTabRoutes from './util/routes'\r\nimport routerPage from './mixins/routerPage'\r\n\r\n// 安装\r\nRouterTab.install = function install(Vue) {\r\n if (install.installed) return\r\n\r\n RouterTab.Vue = Vue\r\n install.installed = true\r\n\r\n Vue.component(RouterTab.name, RouterTab)\r\n Vue.mixin(routerPage)\r\n}\r\n\r\n// 如果浏览器环境且拥有全局Vue,则自动安装组件\r\nif (typeof window !== 'undefined' && window.Vue) {\r\n window.Vue.use(RouterTab)\r\n}\r\n\r\nexport default RouterTab\r\n\r\n// 导出\r\nexport { RouterAlive, RouterTabRoutes }\r\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack://vue-router-tab/webpack/bootstrap","webpack://vue-router-tab/./lib/config/lang/en.js","webpack://vue-router-tab/./lib/scss/routerTab.scss?bfeb","webpack://vue-router-tab/./lib/config/lang/zh-CN.js","webpack://vue-router-tab/./node_modules/@soda/get-current-script/index.js","webpack://vue-router-tab/./node_modules/regenerator-runtime/runtime.js","webpack://vue-router-tab/./node_modules/@babel/runtime/regenerator/index.js","webpack://vue-router-tab/index).)*\\.js$","webpack://vue-router-tab/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://vue-router-tab/./lib/RouterTab.vue?b44c","webpack://vue-router-tab/./lib/util/index.js","webpack://vue-router-tab/./lib/mixins/contextmenu.js","webpack://vue-router-tab/./lib/config/lang/index.js","webpack://vue-router-tab/./lib/util/warn.js","webpack://vue-router-tab/./lib/mixins/i18n.js","webpack://vue-router-tab/./lib/mixins/iframe.js","webpack://vue-router-tab/./lib/mixins/operate.js","webpack://vue-router-tab/./lib/mixins/pageLeave.js","webpack://vue-router-tab/./lib/mixins/scroll.js","webpack://vue-router-tab/./lib/mixins/restore.js","webpack://vue-router-tab/./lib/components/RouterAlive.vue?10ce","webpack://vue-router-tab/./lib/config/rules.js","webpack://vue-router-tab/./lib/util/RouteMatch.js","webpack://vue-router-tab/lib/components/RouterAlive.vue","webpack://vue-router-tab/./lib/components/RouterAlive.vue?534a","webpack://vue-router-tab/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://vue-router-tab/./lib/components/RouterAlive.vue","webpack://vue-router-tab/./lib/components/TabItem.vue?8a16","webpack://vue-router-tab/lib/components/TabItem.vue","webpack://vue-router-tab/./lib/components/TabItem.vue?9042","webpack://vue-router-tab/./lib/components/TabItem.vue","webpack://vue-router-tab/./lib/components/TabScroll.vue?2a80","webpack://vue-router-tab/lib/components/TabScroll.vue","webpack://vue-router-tab/./lib/components/TabScroll.vue?c598","webpack://vue-router-tab/./lib/components/TabScroll.vue","webpack://vue-router-tab/./lib/components/Contextmenu.vue?b5dc","webpack://vue-router-tab/./lib/components/ContextmenuItem.vue?16a3","webpack://vue-router-tab/lib/components/ContextmenuItem.vue","webpack://vue-router-tab/./lib/components/ContextmenuItem.vue?b70f","webpack://vue-router-tab/./lib/components/ContextmenuItem.vue","webpack://vue-router-tab/./lib/config/contextmenu.js","webpack://vue-router-tab/lib/components/Contextmenu.vue","webpack://vue-router-tab/./lib/components/Contextmenu.vue?1c4f","webpack://vue-router-tab/./lib/components/Contextmenu.vue","webpack://vue-router-tab/./lib/RouterTab.js","webpack://vue-router-tab/./lib/RouterTab.js?7483","webpack://vue-router-tab/./lib/RouterTab.vue","webpack://vue-router-tab/./lib/page/Iframe.vue?faca","webpack://vue-router-tab/lib/page/Iframe.vue","webpack://vue-router-tab/./lib/page/Iframe.vue?e146","webpack://vue-router-tab/./lib/page/Iframe.vue","webpack://vue-router-tab/./lib/config/routes.js","webpack://vue-router-tab/./lib/mixins/routerPage.js","webpack://vue-router-tab/./lib/index.js","webpack://vue-router-tab/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"names":["tab","untitled","contextmenu","refresh","refreshAll","close","closeLefts","closeRights","closeOthers","msg","keepLastTab","i18nProp","module","exports","require","emptyObj","Object","create","emptyArray","remove","arr","item","length","index","indexOf","splice","debounce","fn","delay","timeout","context","args","arguments","clearTimeout","setTimeout","call","scrollTo","wrap","left","top","smooth","behavior","scrollLeft","scrollTop","scrollIntoView","el","block","inline","offsetLeft","offsetTop","clientHeight","clientWidth","mapGetters","origin","props","map","each","prop","option","default","def","alias","val","undefined","bind","Array","isArray","forEach","entries","prunePath","path","split","getTransOpt","trans","name","data","contextData","id","computed","contextMenu","watch","$route","hideContextmenu","old","document","addEventListener","onClick","e","target","$el","querySelector","removeEventListener","methods","showContextmenu","clientY","clientX","assign","keys","reduce","exec","key","prefix","assert","condition","message","Error","warn","console","messages","renamed","newName","lang","language","langs","i18nText","text","i18nParse","params","hasI18nProp","i18n","_hasI18nPropWarn","res","iframes","currentIframe","iframeNamePrefix","getIframePath","src","title","icon","basePath","replace","encodeURIComponent","openIframe","$router","push","closeIframe","match","refreshIframe","getIframeEl","url","getElementsByName","iframeMounted","iframe","$emit","iframeLoaded","getCloseArgs","from","argsLen","arg","fullPath","query","hash","to","equalPath","path1","path2","reg","open","isReplace","curId","activeTabId","tarId","getRouteKey","isSameTab","reload","removeTab","force","items","idx","findIndex","leavePage","$alive","getIdByPath","nextTab","defaultPath","closeTab","refreshTab","cache","reset","clearTabsStore","initTabs","leaveGuard","router","next","$tabs","app","toId","alivePath","matched","matchRoute","type","then","catch","created","_RouterTabInit","beforeEach","find","vm","pageLeave","$vnode","componentOptions","Ctor","options","beforePageLeave","handler","$nextTick","adjust","immediate","mounted","window","onResize","destroyed","scroll","$refs","cur","isInView","restoreKey","restore","sessionStorage","saveTabs","restoreWatch","activeTab","setItem","JSON","stringify","removeItem","restoreTabs","tabs","getItem","hasStore","parse","presetTabs","route","fullpath","parseRouteKey","defaultKey","rule","rules","toLowerCase","parsePath","RouteMatch","currentRoute","_$route","routeIndex","baseRoute","nest","meta","keepAlive","reuse","menuMap","enable","closable","$menu","lefts","closeMulti","rights","others","defaultMenu","RouterTab","mixins","operate","components","RouterAlive","TabItem","TabScroll","TabContextmenu","provide","Boolean","String","defaultPage","Function","maxAlive","Number","tabTransition","pageTransition","mode","loading","aliveReady","routerAlive","tabTrans","pageTrans","Vue","prototype","proto","onAliveReady","ids","getRouteTab","filter","onAliveChange","matchIdx","$set","i","includes","matchTab","component","Iframe","beforeunload","tabId","_isDestroyed","preventDefault","returnValue","routeTab","deep","_beforeunload","install","installed","mixin","routerPage","use"],"mappings":";;QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;AClFA;AAAe;AACbA,KAAG,EAAE;AACHC,YAAQ,EAAE;AADP,GADQ;AAIbC,aAAW,EAAE;AACXC,WAAO,EAAE,SADE;AAEXC,cAAU,EAAE,aAFD;AAGXC,SAAK,EAAE,OAHI;AAIXC,cAAU,EAAE,mBAJD;AAKXC,eAAW,EAAE,oBALF;AAMXC,eAAW,EAAE;AANF,GAJA;AAYbC,KAAG,EAAE;AACHC,eAAW,EAAE,qBADV;AAEHC,YAAQ,EAAE;AAFP;AAZQ,CAAf,E;;;;;;;ACAA,uC;;;;;;;;ACAA;AAAe;AACbX,KAAG,EAAE;AACHC,YAAQ,EAAE;AADP,GADQ;AAIbC,aAAW,EAAE;AACXC,WAAO,EAAE,IADE;AAEXC,cAAU,EAAE,MAFD;AAGXC,SAAK,EAAE,IAHI;AAIXC,cAAU,EAAE,MAJD;AAKXC,eAAW,EAAE,MALF;AAMXC,eAAW,EAAE;AANF,GAJA;AAYbC,KAAG,EAAE;AACHC,eAAW,EAAE,WADV;AAEHC,YAAQ,EAAE;AAFP;AAZQ,CAAf,E;;;;;;;ACAA;AACA;AACA;;AAEA;;AAEA;AACA,MAAM,IAA0C;AAChD,IAAI,iCAAO,EAAE,oCAAE,OAAO;AAAA;AAAA;AAAA,oGAAC;AACvB,GAAG,MAAM,EAIN;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;;AAE1D;AACA;AACA,+DAA+D,qBAAqB;AACpF;AACA;;AAEA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;AC9ED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,kBAAkB;AACnD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8CAA8C,QAAQ;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;A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AAA;AAAA;;AACA;AACA;AACA;AAEA;;AACA;;AAEA;AACA;AACA,OAVA;AAWA,KA9CA;AAgDA;AACA,WAjDA,qBAiDA;AAAA;AACA,uBADA,CAGA;;AACA;AACA;AACA;AACA,KAxDA;AA0DA;AACA,UA3DA,oBA2DA;AACA;AAEA;AACA,KA/DA;AAiEA;AACA,YAlEA,oBAkEA,IAlEA,EAkEA;AACA;AACA;AACA,KArEA;AAuEA;AACA,sBAxEA,6BAwEA;AACA;AACA,iCADA;AAEA;AAFA;AAIA,KA7EA;AA+EA;AACA,sBAhFA,6BAgFA;AAAA,UACA,IADA,GACA,UADA,CACA,IADA;AAGA;AACA,KApFA;AAsFA;AACA,wBAvFA,+BAuFA;AACA;AACA;AACA;AACA;AACA;AACA,KA7FA;AA+FA;AACA,wBAhGA,+BAgGA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACA,kBADA;;AAAA;AAAA,oBAGA,YAHA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAKA;AACA;AAAA;AAAA;AAAA;;AAAA,8BACA,UADA;AAAA,sBACA,EADA,SACA,EADA;;AAEA;AACA;AACA;AACA,iBALA;;AANA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA,KA5GA;AA8GA;AACA,iBA/GA,2BA+GA;AACA;AACA;AACA;AACA;AACA,KApHA;AAsHA;AACA,cAvHA,sBAuHA,MAvHA,EAuHA;AACA,gCADA,CAGA;;AACA,UACA,0BACA,wCADA,IAEA,+BAHA,EAIA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAzIA;AApJA,G;;AC1CqU,CAAgB,sHAAG,EAAC,C;;ACAzV;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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","file":"vue-router-tab.common.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n","export default {\r\n tab: {\r\n untitled: 'Untitled'\r\n },\r\n contextmenu: {\r\n refresh: 'Refresh',\r\n refreshAll: 'Refresh All',\r\n close: 'Close',\r\n closeLefts: 'Close to the Left',\r\n closeRights: 'Close to the Right',\r\n closeOthers: 'Close Others'\r\n },\r\n msg: {\r\n keepLastTab: 'Keep at least 1 tab',\r\n i18nProp: 'Method \"i18n\" is not defined on the instance'\r\n }\r\n}\r\n","// extracted by mini-css-extract-plugin","export default {\r\n tab: {\r\n untitled: '无标题'\r\n },\r\n contextmenu: {\r\n refresh: '刷新',\r\n refreshAll: '刷新全部',\r\n close: '关闭',\r\n closeLefts: '关闭左侧',\r\n closeRights: '关闭右侧',\r\n closeOthers: '关闭其他'\r\n },\r\n msg: {\r\n keepLastTab: '至少应保留1个页签',\r\n i18nProp: '请提供“i18n”方法以处理国际化内容'\r\n }\r\n}\r\n","// addapted from the document.currentScript polyfill by Adam Miller\n// MIT license\n// source: https://github.com/amiller-gh/currentScript-polyfill\n\n// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = factory();\n } else {\n root.getCurrentScript = factory();\n }\n}(typeof self !== 'undefined' ? self : this, function () {\n function getCurrentScript () {\n var descriptor = Object.getOwnPropertyDescriptor(document, 'currentScript')\n // for chrome\n if (!descriptor && 'currentScript' in document && document.currentScript) {\n return document.currentScript\n }\n\n // for other browsers with native support for currentScript\n if (descriptor && descriptor.get !== getCurrentScript && document.currentScript) {\n return document.currentScript\n }\n \n // IE 8-10 support script readyState\n // IE 11+ & Firefox support stack trace\n try {\n throw new Error();\n }\n catch (err) {\n // Find the second match for the \"at\" string to get file src url from stack.\n var ieStackRegExp = /.*at [^(]*\\((.*):(.+):(.+)\\)$/ig,\n ffStackRegExp = /@([^@]*):(\\d+):(\\d+)\\s*$/ig,\n stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),\n scriptLocation = (stackDetails && stackDetails[1]) || false,\n line = (stackDetails && stackDetails[2]) || false,\n currentLocation = document.location.href.replace(document.location.hash, ''),\n pageSource,\n inlineScriptSourceRegExp,\n inlineScriptSource,\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n \n if (scriptLocation === currentLocation) {\n pageSource = document.documentElement.outerHTML;\n inlineScriptSourceRegExp = new RegExp('(?:[^\\\\n]+?\\\\n){0,' + (line - 2) + '}[^<]*\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RouterAlive.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RouterAlive.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./RouterAlive.vue?vue&type=template&id=ffca4b3e&\"\nimport script from \"./RouterAlive.vue?vue&type=script&lang=js&\"\nexport * from \"./RouterAlive.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-link',{class:( _obj = {\n 'router-tab__item': true\n }, _obj[_vm.tabClass || ''] = true, _obj['is-active'] = _vm.$tabs.activeTabId === _vm.id, _obj['is-closable'] = _vm.closable, _obj['is-contextmenu'] = _vm.$tabs.contextData.id === _vm.id, _obj ),attrs:{\"tag\":\"li\",\"to\":_vm.to}},[_vm._t(\"default\",[(_vm.icon)?_c('i',{staticClass:\"router-tab__item-icon\",class:_vm.icon}):_vm._e(),_c('span',{staticClass:\"router-tab__item-title\",attrs:{\"title\":_vm.tips}},[_vm._v(_vm._s(_vm.title))]),(_vm.closable)?_c('i',{staticClass:\"router-tab__item-close\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.close($event)}}}):_vm._e()],null,this)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n {{ title }}\r\n \r\n \r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TabItem.vue?vue&type=template&id=41fe9c1a&\"\nimport script from \"./TabItem.vue?vue&type=script&lang=js&\"\nexport * from \"./TabItem.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"router-tab__scroll\",on:{\"wheel\":function($event){$event.preventDefault();return _vm.onWheel($event)},\"mouseenter\":_vm.update}},[_c('div',{ref:\"container\",staticClass:\"router-tab__scroll-container\",class:{ 'is-mobile': _vm.isMobile },on:{\"scroll\":_vm.update}},[_vm._t(\"default\")],2),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasScroller),expression:\"hasScroller\"}],ref:\"bar\",staticClass:\"router-tab__scrollbar\",class:{ 'is-dragging': _vm.dragData }},[_c('div',{ref:\"thumb\",staticClass:\"router-tab__scrollbar-thumb\",style:({\n width: (_vm.thumbWidth + \"px\"),\n transform: (\"translateX(\" + _vm.thumbLeft + \"px\")\n }),on:{\"mousedown\":function($event){$event.preventDefault();return _vm.onDragStart($event)}}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabScroll.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabScroll.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TabScroll.vue?vue&type=template&id=b781fa08&\"\nimport script from \"./TabScroll.vue?vue&type=script&lang=js&\"\nexport * from \"./TabScroll.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"router-tab__contextmenu\",class:{ 'has-icon': _vm.hasIcon },style:({\n left: ((_vm.data.left) + \"px\"),\n top: ((_vm.data.top) + \"px\")\n })},_vm._l((_vm.menuList),function(item){return _c('tab-contextmenu-item',{key:item.id,attrs:{\"data\":item}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.visible)?_c('a',{staticClass:\"router-tab__contextmenu-item\",class:_vm.menuClass,attrs:{\"data-action\":_vm.id,\"disabled\":!_vm.enable,\"title\":_vm.tips},on:{\"click\":function($event){_vm.enable && _vm.data.handler(_vm.context)}}},[(_vm.icon)?_c('i',{staticClass:\"router-tab__contextmenu-icon\",class:_vm.icon}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.title)+\" \")]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContextmenuItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContextmenuItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ContextmenuItem.vue?vue&type=template&id=29d67537&\"\nimport script from \"./ContextmenuItem.vue?vue&type=script&lang=js&\"\nexport * from \"./ContextmenuItem.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// 菜单数据\r\nconst menuMap = {\r\n // 刷新\r\n refresh: {\r\n handler({ data, $tabs }) {\r\n $tabs.refreshTab(data.id)\r\n }\r\n },\r\n\r\n // 刷新全部\r\n refreshAll: {\r\n handler({ $tabs }) {\r\n $tabs.refreshAll()\r\n }\r\n },\r\n\r\n // 关闭\r\n close: {\r\n enable({ target }) {\r\n return target.closable\r\n },\r\n handler({ data, $tabs }) {\r\n $tabs.closeTab(data.id)\r\n }\r\n },\r\n\r\n // 关闭左侧\r\n closeLefts: {\r\n enable({ $menu }) {\r\n return $menu.lefts.length\r\n },\r\n handler({ $menu }) {\r\n $menu.closeMulti($menu.lefts)\r\n }\r\n },\r\n\r\n // 关闭右侧\r\n closeRights: {\r\n enable({ $menu }) {\r\n return $menu.rights.length\r\n },\r\n handler({ $menu }) {\r\n $menu.closeMulti($menu.rights)\r\n }\r\n },\r\n\r\n // 关闭其他\r\n closeOthers: {\r\n enable({ $menu }) {\r\n return $menu.others.length\r\n },\r\n handler({ $menu }) {\r\n $menu.closeMulti($menu.others)\r\n }\r\n }\r\n}\r\n\r\n// 遍历填充 id\r\nObject.entries(menuMap).forEach(([id, item]) => (item.id = id))\r\n\r\nexport default menuMap\r\n\r\n// 默认菜单\r\nexport const defaultMenu = [\r\n 'refresh',\r\n 'refreshAll',\r\n 'close',\r\n 'closeLefts',\r\n 'closeRights',\r\n 'closeOthers'\r\n]\r\n","\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Contextmenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Contextmenu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Contextmenu.vue?vue&type=template&id=00944f94&\"\nimport script from \"./Contextmenu.vue?vue&type=script&lang=js&\"\nexport * from \"./Contextmenu.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// 方法\r\nimport { emptyObj, prunePath, getTransOpt } from './util'\r\n\r\n// 功能模块混入\r\nimport contextmenu from './mixins/contextmenu'\r\nimport i18n from './mixins/i18n'\r\nimport iframe from './mixins/iframe'\r\nimport operate from './mixins/operate'\r\nimport pageLeave from './mixins/pageLeave'\r\nimport scroll from './mixins/scroll'\r\nimport restore from './mixins/restore'\r\n\r\n// 子组件\r\nimport RouterAlive from './components/RouterAlive.vue'\r\nimport TabItem from './components/TabItem.vue'\r\nimport TabScroll from './components/TabScroll.vue'\r\nimport TabContextmenu from './components/Contextmenu.vue'\r\n\r\n// RouterTab 组件\r\nconst RouterTab = {\r\n name: 'RouterTab',\r\n mixins: [contextmenu, i18n, iframe, operate, pageLeave, scroll, restore],\r\n components: { RouterAlive, TabItem, TabScroll, TabContextmenu },\r\n\r\n // 注入子组件\r\n provide() {\r\n return { $tabs: this }\r\n },\r\n\r\n props: {\r\n // 初始页签数据\r\n tabs: {\r\n type: Array,\r\n default: () => []\r\n },\r\n\r\n // 页面刷新后是否恢复页签\r\n restore: {\r\n type: [Boolean, String],\r\n default: false\r\n },\r\n\r\n // 是否监听 restoreKey 变化自动还原页签\r\n restoreWatch: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n // 是否保留最后一个页签不被关闭\r\n keepLastTab: {\r\n type: Boolean,\r\n default: true\r\n },\r\n\r\n // 默认页面\r\n defaultPage: [String, Object],\r\n\r\n // 页签国际化配置 i18n (key, [args])\r\n i18n: Function,\r\n\r\n /**\r\n * 组件语言\r\n * - 为字符串时,可以设置为内置的语言 'zh-CN' (默认) 和 'en'\r\n * - 为对象时,可设置自定义的语言\r\n */\r\n language: {\r\n type: [String, Object],\r\n default: 'zh-CN'\r\n },\r\n\r\n /**\r\n * 自定义右键菜单\r\n * 1. 为 false 时禁用\r\n * 2. 为数组时可自定义右键菜单\r\n */\r\n contextmenu: {\r\n type: [Boolean, Array],\r\n default: true\r\n },\r\n\r\n // 默认是否缓存,可通过路由 meta.keepAlive 重置\r\n keepAlive: {\r\n type: Boolean,\r\n default: true\r\n },\r\n\r\n // 最大缓存数,0 则不限制\r\n maxAlive: {\r\n type: Number,\r\n default: 0\r\n },\r\n\r\n // 是否复用路由组件,可通过路由 meta.reuse 重置\r\n reuse: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n // 页签过渡效果\r\n tabTransition: {\r\n type: [String, Object],\r\n default: 'router-tab-zoom'\r\n },\r\n\r\n // 页面过渡效果\r\n pageTransition: {\r\n type: [String, Object],\r\n default: () => ({\r\n name: 'router-tab-swap',\r\n mode: 'out-in'\r\n })\r\n }\r\n },\r\n\r\n data() {\r\n return {\r\n items: [], // 页签项\r\n loading: false, // 路由页面 loading\r\n aliveReady: false // RouterAlive 初始化\r\n }\r\n },\r\n\r\n computed: {\r\n // routerAlive\r\n $alive() {\r\n return this.aliveReady ? this.$refs.routerAlive : null\r\n },\r\n\r\n // 当前激活的页签 id\r\n activeTabId() {\r\n return this.$alive ? this.$alive.key : null\r\n },\r\n\r\n // 当前激活的页签\r\n activeTab() {\r\n return this.items.find(item => item.id === this.activeTabId)\r\n },\r\n\r\n // 根路径\r\n basePath() {\r\n return this.$alive ? this.$alive.basePath : '/'\r\n },\r\n\r\n // 默认路径\r\n defaultPath() {\r\n return this.defaultPage || this.basePath || '/'\r\n },\r\n\r\n // 页签过渡\r\n tabTrans() {\r\n return getTransOpt(this.tabTransition)\r\n },\r\n\r\n // 页面过渡\r\n pageTrans() {\r\n return getTransOpt(this.pageTransition)\r\n }\r\n },\r\n\r\n watch: {\r\n // 路由切换更新激活的页签\r\n $route() {\r\n this.loading = false\r\n }\r\n },\r\n\r\n created() {\r\n // 添加到原型链\r\n RouterTab.Vue.prototype.$tabs = this\r\n },\r\n\r\n destroyed() {\r\n const proto = RouterTab.Vue.prototype\r\n // 取消原型挂载\r\n if (proto.$tabs === this) {\r\n proto.$tabs = null\r\n }\r\n },\r\n\r\n methods: {\r\n // RouterAlive 组件就绪\r\n onAliveReady($alive) {\r\n // 获取 keepAlive 组件实例\r\n this.$refs.routerAlive = $alive\r\n this.aliveReady = true\r\n this.initTabs()\r\n },\r\n\r\n // 初始页签数据\r\n initTabs() {\r\n if (this.restoreTabs()) return\r\n\r\n this.presetTabs()\r\n },\r\n\r\n // 预设页签\r\n presetTabs(tabs = this.tabs) {\r\n let ids = {}\r\n\r\n this.items = tabs\r\n .map(item => {\r\n item = typeof item === 'string' ? { to: item } : item || emptyObj\r\n\r\n const matched = item.to && this.matchRoute(item.to)\r\n\r\n if (matched) {\r\n const tab = this.getRouteTab(matched)\r\n const id = tab.id\r\n\r\n // 根据 id 去重\r\n if (!ids[id]) {\r\n // id 不允许更改\r\n delete item.id\r\n\r\n // 初始 tab 数据\r\n return (ids[id] = Object.assign(tab, item))\r\n }\r\n }\r\n })\r\n .filter(item => !!item)\r\n },\r\n\r\n // RouterAlive 缓存更新时同步更改页签\r\n onAliveChange(type, matched) {\r\n const { items } = this\r\n const matchIdx = items.findIndex(({ id }) => id === matched.key)\r\n const item = this.getRouteTab(matched)\r\n\r\n // 页签已存在\r\n if (matchIdx > -1) {\r\n if (\r\n type === 'create' || // 创建缓存\r\n (type === 'update' && items[matchIdx].to !== matched.$route.fullPath) // 更新缓存且地址更改\r\n ) {\r\n // 替换原页签\r\n this.$set(items, matchIdx, item)\r\n }\r\n } else {\r\n // 新增页签\r\n items.push(item)\r\n }\r\n },\r\n\r\n // 从 route 中获取 tab 配置\r\n getRouteTab({ key, $route, meta }) {\r\n const tab = { ...meta }\r\n\r\n // 支持根据路由函数返回的页签属性\r\n const props = ['title', 'tips', 'icon', 'closable']\r\n\r\n for (let i in tab) {\r\n if (props.includes(i)) {\r\n const val = tab[i]\r\n if (typeof val === 'function') {\r\n tab[i] = val($route)\r\n }\r\n }\r\n }\r\n\r\n return Object.assign(tab, {\r\n id: key,\r\n to: $route.fullPath\r\n })\r\n },\r\n\r\n // 重载路由视图\r\n async reload() {\r\n this.$alive.reload()\r\n },\r\n\r\n // 匹配路由信息\r\n matchRoute($route) {\r\n return this.$alive.matchRoute($route)\r\n },\r\n\r\n // 获取路由缓存 key\r\n getRouteKey(route = this.$route) {\r\n return this.matchRoute(route).key\r\n },\r\n\r\n // 从路由地址匹配页签 id\r\n getIdByPath(path, match = true) {\r\n if (!path) return\r\n\r\n const matched = this.matchRoute(path)\r\n const { key } = matched\r\n\r\n if (match) {\r\n // 路由地址精确匹配页签\r\n const matchTab = this.items.find(\r\n ({ to }) => prunePath(to) === prunePath(matched.$route.fullPath)\r\n )\r\n\r\n if (matchTab) {\r\n return key\r\n }\r\n }\r\n\r\n return key\r\n }\r\n }\r\n}\r\n\r\nexport default RouterTab\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/eslint-loader/index.js??ref--13-0!./RouterTab.js?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/eslint-loader/index.js??ref--13-0!./RouterTab.js?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RouterTab.vue?vue&type=template&id=0774e0e2&\"\nimport script from \"./RouterTab.js?vue&type=script&lang=js&\"\nexport * from \"./RouterTab.js?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"router-tab-iframe-fake\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Iframe.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Iframe.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Iframe.vue?vue&type=template&id=28764eeb&\"\nimport script from \"./Iframe.vue?vue&type=script&lang=js&\"\nexport * from \"./Iframe.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Iframe from '../page/Iframe.vue'\r\n\r\n// 注入的路由\r\nexport default [\r\n {\r\n // iframe 路由\r\n path: 'iframe/:src/:title?/:icon?',\r\n component: Iframe,\r\n props: true,\r\n meta: {\r\n key: route => `iframe-${route.params.src}`,\r\n title: route => route.params.title,\r\n icon: route => route.params.icon\r\n }\r\n }\r\n]\r\n","import { emptyObj } from '../util'\r\n\r\n// 浏览器窗口关闭或者刷新\r\nconst beforeunload = ($tabs, tabId, beforePageLeave) => e => {\r\n if (!$tabs && $tabs._isDestroyed) return\r\n\r\n const tab = $tabs.items.find(item => item.id === tabId)\r\n const msg = beforePageLeave(tab, 'unload')\r\n\r\n if (msg && typeof msg === 'string') {\r\n e.preventDefault()\r\n e.returnValue = msg\r\n\r\n // 非当前页签则切换\r\n if ($tabs.activeTabId !== tabId) {\r\n $tabs.open(tab.to, false, false)\r\n }\r\n\r\n return msg\r\n }\r\n}\r\n\r\n// 路由页面混入\r\nexport default {\r\n watch: {\r\n // 监听 routerTab 字段,更新页签信息\r\n routeTab: {\r\n handler(val) {\r\n if (!val) return\r\n\r\n const tab = typeof val === 'string' ? { title: val } : val\r\n const { activeTab } = this.$tabs || emptyObj\r\n\r\n if (tab && activeTab) {\r\n for (const key in tab) {\r\n if (!['id', 'to'].includes(key)) {\r\n this.$set(activeTab, key, tab[key])\r\n }\r\n }\r\n }\r\n },\r\n deep: true,\r\n immediate: true\r\n }\r\n },\r\n\r\n // 创建前记录缓存\r\n mounted() {\r\n const { $tabs } = this\r\n const { beforePageLeave } =\r\n (this.$vnode && this.$vnode.componentOptions.Ctor.options) || emptyObj\r\n\r\n // 页面离开确认\r\n if ($tabs && beforePageLeave) {\r\n window.addEventListener(\r\n 'beforeunload',\r\n (this._beforeunload = beforeunload(\r\n $tabs,\r\n $tabs.activeTabId,\r\n beforePageLeave.bind(this)\r\n ))\r\n )\r\n }\r\n },\r\n\r\n destroyed() {\r\n if (this._beforeunload) {\r\n window.removeEventListener('beforeunload', this._beforeunload)\r\n }\r\n }\r\n}\r\n","import RouterTab from './RouterTab.vue'\r\nimport RouterAlive from './components/RouterAlive.vue'\r\nimport RouterTabRoutes from './config/routes'\r\nimport routerPage from './mixins/routerPage'\r\nimport './scss/routerTab.scss'\r\n\r\n// 安装\r\nRouterTab.install = function install(Vue) {\r\n if (install.installed) return\r\n\r\n RouterTab.Vue = Vue\r\n install.installed = true\r\n\r\n Vue.component(RouterTab.name, RouterTab)\r\n Vue.mixin(routerPage)\r\n}\r\n\r\n// 如果浏览器环境且拥有全局Vue,则自动安装组件\r\nif (typeof window !== 'undefined' && window.Vue) {\r\n window.Vue.use(RouterTab)\r\n}\r\n\r\nexport default RouterTab\r\n\r\n// 导出\r\nexport { RouterAlive, RouterTabRoutes }\r\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/dist/lib/vue-router-tab.css b/dist/lib/vue-router-tab.css
index 344ca5c6..32a5b74a 100644
--- a/dist/lib/vue-router-tab.css
+++ b/dist/lib/vue-router-tab.css
@@ -1 +1 @@
-.router-tab{display:flex;flex-direction:column;min-height:300px}.router-tab__header{display:flex;flex:none;height:40px;position:relative;z-index:9;box-sizing:border-box;border-bottom:1px solid #eaecef;transition:all .2s ease-in-out}.router-tab__scroll{position:relative;flex:1 1 0px;height:40px;overflow:hidden}.router-tab__scroll-container{width:100%;height:100%;overflow:hidden}.router-tab__scroll-container.is-mobile{overflow-y:hidden;overflow-x:auto}.router-tab__scrollbar{position:absolute;left:0;right:0;bottom:0;height:4px;border-radius:4px;opacity:0;background-color:rgba(0,0,0,.1);transition:opacity .3s ease-in-out}.router-tab__scroll:hover .router-tab__scrollbar,.router-tab__scrollbar.is-dragging{opacity:1}.router-tab__scrollbar-thumb{position:absolute;top:0;left:0;height:100%;background-color:rgba(0,0,0,.1);border-radius:4px;transition:background-color .3s ease-in-out}.router-tab__scrollbar-thumb:hover,.router-tab__scrollbar.is-dragging .router-tab__scrollbar-thumb{background-color:rgba(66,185,131,.8)}.router-tab__nav{position:relative;display:inline-flex;flex-wrap:nowrap;list-style:none;margin:0;padding:0;height:100%}.router-tab__item{display:flex;align-items:center;flex:none;position:relative;padding:0 20px;color:#4d4d4d;font-size:14px;border:1px solid #eaecef;border-left:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:all .3s ease-in-out;transform-origin:left bottom}.router-tab__item:first-child{border-left:1px solid #eaecef}.router-tab__item.is-contextmenu{color:#000}.router-tab__item.is-active,.router-tab__item:hover{color:#42b983}.router-tab__item.is-active.is-closable,.router-tab__item:hover.is-closable{padding:0 11.5px}.router-tab__item.is-active .router-tab__item-close,.router-tab__item:hover .router-tab__item-close{margin-left:4px;width:13px}.router-tab__item.is-active .router-tab__item-close:after,.router-tab__item.is-active .router-tab__item-close:before,.router-tab__item:hover .router-tab__item-close:after,.router-tab__item:hover .router-tab__item-close:before{border-color:#42b983}.router-tab__item.is-active{border-bottom-color:#fff}.router-tab__item-title{max-width:100px;min-width:30px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.router-tab__item-icon{margin-right:5px;font-size:16px}.router-tab__item-close{position:relative;display:block;margin-left:0;width:0;height:13px;border-radius:50%;cursor:pointer;overflow:hidden;transition:all .3s ease-in-out}.router-tab__item-close:after,.router-tab__item-close:before{position:absolute;top:6px;left:50%;margin-left:-4px;display:block;content:"";width:8px;height:1px;background-color:#4d4d4d;transition:background-color .2s ease-in-out}.router-tab__item-close:before{transform:rotate(-45deg)}.router-tab__item-close:after{transform:rotate(45deg)}.router-tab__item-close:hover{background-color:#a6a6a6}.router-tab__item-close:hover:after,.router-tab__item-close:hover:before{background-color:#fff}.router-tab__container{position:relative;flex:1;overflow-x:hidden;overflow-y:auto;background:#fff;transition:all .4s ease-in-out}.router-tab__container>.router-alive{height:100%}.router-tab__iframe{position:absolute;top:0;left:0;width:100%;height:100%}.router-tab__contextmenu{position:fixed;z-index:999;padding:8px 0;min-width:120px;font-size:14px;border:1px solid #eaecef;background:#fff;box-shadow:1px 1px 4px 0 rgba(0,0,0,.1);transition:all .3s ease-in;transform-origin:left top}.router-tab__contextmenu-item{display:block;padding:5px 20px;line-height:1.5;color:#4d4d4d;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:all .2s ease-in-out}.router-tab__contextmenu-item:active,.router-tab__contextmenu-item:hover{color:#42b983}.router-tab__contextmenu-item[disabled]{color:#aaa;background:none;pointer-events:none;cursor:default}.router-tab-zoom-enter-active,.router-tab-zoom-leave-active{transition:all .4s}.router-tab-zoom-enter,.router-tab-zoom-leave-to{transform:scale(0);opacity:0}.router-tab-swap-enter-active,.router-tab-swap-leave-active{transition:all .5s}.router-tab-swap-enter,.router-tab-swap-leave-to{opacity:0}.router-tab-swap-enter{transform:translateX(-30px)}.router-tab-swap-leave-to{transform:translateX(30px)}
\ No newline at end of file
+.router-tab-zoom-enter-active,.router-tab-zoom-leave-active{transition:all .4s}.router-tab-zoom-enter,.router-tab-zoom-leave-to{transform:scale(0);opacity:0}.router-tab-swap-enter-active,.router-tab-swap-leave-active{transition:all .5s}.router-tab-swap-enter,.router-tab-swap-leave-to{opacity:0}.router-tab-swap-enter{transform:translateX(-30px)}.router-tab-swap-leave-to{transform:translateX(30px)}.router-tab{display:flex;flex-direction:column;min-height:300px}.router-tab__header{display:flex;flex:none;height:40px;position:relative;z-index:9;box-sizing:border-box;border-bottom:1px solid #eaecef;transition:all .2s ease-in-out}.router-tab__scroll{position:relative;flex:1 1 0px;height:40px;overflow:hidden}.router-tab__scroll-container{width:100%;height:100%;overflow:hidden}.router-tab__scroll-container.is-mobile{overflow-y:hidden;overflow-x:auto}.router-tab__scrollbar{position:absolute;left:0;right:0;bottom:0;height:4px;border-radius:4px;opacity:0;background-color:rgba(0,0,0,.1);transition:opacity .3s ease-in-out}.router-tab__scroll:hover .router-tab__scrollbar,.router-tab__scrollbar.is-dragging{opacity:1}.router-tab__scrollbar-thumb{position:absolute;top:0;left:0;height:100%;background-color:rgba(0,0,0,.1);border-radius:4px;transition:background-color .3s ease-in-out}.router-tab__scrollbar-thumb:hover,.router-tab__scrollbar.is-dragging .router-tab__scrollbar-thumb{background-color:rgba(66,185,131,.8)}.router-tab__nav{position:relative;display:inline-flex;flex-wrap:nowrap;list-style:none;margin:0;padding:0;height:100%}.router-tab__item{display:flex;align-items:center;flex:none;position:relative;padding:0 20px;color:#4d4d4d;font-size:14px;border:1px solid #eaecef;border-left:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:all .3s ease-in-out;transform-origin:left bottom}.router-tab__item:first-child{border-left:1px solid #eaecef}.router-tab__item.is-contextmenu{color:#000}.router-tab__item.is-active,.router-tab__item:hover{color:#42b983}.router-tab__item.is-active.is-closable,.router-tab__item:hover.is-closable{padding:0 11.5px}.router-tab__item.is-active .router-tab__item-close,.router-tab__item:hover .router-tab__item-close{margin-left:4px;width:13px}.router-tab__item.is-active .router-tab__item-close:after,.router-tab__item.is-active .router-tab__item-close:before,.router-tab__item:hover .router-tab__item-close:after,.router-tab__item:hover .router-tab__item-close:before{border-color:#42b983}.router-tab__item.is-active{border-bottom-color:#fff}.router-tab__item-title{max-width:100px;min-width:30px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.router-tab__item-icon{margin-right:5px;font-size:16px}.router-tab__item-close{position:relative;display:block;margin-left:0;width:0;height:13px;border-radius:50%;cursor:pointer;overflow:hidden;transition:all .3s ease-in-out}.router-tab__item-close:after,.router-tab__item-close:before{position:absolute;top:6px;left:50%;margin-left:-4px;display:block;content:"";width:8px;height:1px;background-color:#4d4d4d;transition:background-color .2s ease-in-out}.router-tab__item-close:before{transform:rotate(-45deg)}.router-tab__item-close:after{transform:rotate(45deg)}.router-tab__item-close:hover{background-color:#a6a6a6}.router-tab__item-close:hover:after,.router-tab__item-close:hover:before{background-color:#fff}.router-tab__container{position:relative;flex:1;overflow-x:hidden;overflow-y:auto;background:#fff;transition:all .4s ease-in-out}.router-tab__container>.router-alive{height:100%}.router-tab__iframe{position:absolute;top:0;left:0;width:100%;height:100%}.router-tab__contextmenu{position:fixed;z-index:999;padding:8px 0;min-width:120px;font-size:14px;border:1px solid #eaecef;background:#fff;box-shadow:1px 1px 4px 0 rgba(0,0,0,.1);transition:all .3s ease-in;transform-origin:left top}.router-tab__contextmenu-item{position:relative;display:block;padding:0 20px;line-height:30px;color:#4d4d4d;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:all .2s ease-in-out}.router-tab__contextmenu-item:active,.router-tab__contextmenu-item:hover{color:#42b983}.router-tab__contextmenu-item[disabled]{color:#aaa;background:none;pointer-events:none;cursor:default}.has-icon .router-tab__contextmenu-item{padding-left:30px}.router-tab__contextmenu-icon{display:none;position:absolute;top:0;left:8px;line-height:30px}.has-icon .router-tab__contextmenu-icon{display:block}
\ No newline at end of file
diff --git a/dist/lib/vue-router-tab.umd.js b/dist/lib/vue-router-tab.umd.js
index ac428b52..95a45539 100644
--- a/dist/lib/vue-router-tab.umd.js
+++ b/dist/lib/vue-router-tab.umd.js
@@ -96,13 +96,63 @@ return /******/ (function(modules) { // webpackBootstrap
/************************************************************************/
/******/ ({
-/***/ "6b67":
+/***/ "3dec":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony default export */ __webpack_exports__["default"] = ({
+ tab: {
+ untitled: 'Untitled'
+ },
+ contextmenu: {
+ refresh: 'Refresh',
+ refreshAll: 'Refresh All',
+ close: 'Close',
+ closeLefts: 'Close to the Left',
+ closeRights: 'Close to the Right',
+ closeOthers: 'Close Others'
+ },
+ msg: {
+ keepLastTab: 'Keep at least 1 tab',
+ i18nProp: 'Method "i18n" is not defined on the instance'
+ }
+});
+
+/***/ }),
+
+/***/ "751c":
/***/ (function(module, exports, __webpack_require__) {
// extracted by mini-css-extract-plugin
/***/ }),
+/***/ "783a":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony default export */ __webpack_exports__["default"] = ({
+ tab: {
+ untitled: '无标题'
+ },
+ contextmenu: {
+ refresh: '刷新',
+ refreshAll: '刷新全部',
+ close: '关闭',
+ closeLefts: '关闭左侧',
+ closeRights: '关闭右侧',
+ closeOthers: '关闭其他'
+ },
+ msg: {
+ keepLastTab: '至少应保留1个页签',
+ i18nProp: '请提供“i18n”方法以处理国际化内容'
+ }
+});
+
+/***/ }),
+
/***/ "8875":
/***/ (function(module, exports, __webpack_require__) {
@@ -931,32 +981,33 @@ module.exports = __webpack_require__("96cf");
/***/ }),
-/***/ "cec0":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_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_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_routerTab_scss_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("6b67");
-/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_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_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_routerTab_scss_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_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_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_routerTab_scss_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
-/* unused harmony reexport * */
- /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_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_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_routerTab_scss_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a);
-
-/***/ }),
-
-/***/ "ea7e":
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_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_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_transition_scss_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f4d0");
-/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_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_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_transition_scss_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_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_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_transition_scss_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
-/* unused harmony reexport * */
- /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_mini_css_extract_plugin_dist_loader_js_ref_8_oneOf_1_0_node_modules_css_loader_dist_cjs_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_sass_loader_dist_cjs_js_ref_8_oneOf_1_3_transition_scss_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_0___default.a);
+/***/ "b13e":
+/***/ (function(module, exports, __webpack_require__) {
-/***/ }),
+var map = {
+ "./en.js": "3dec",
+ "./zh-CN.js": "783a"
+};
-/***/ "f4d0":
-/***/ (function(module, exports, __webpack_require__) {
-// extracted by mini-css-extract-plugin
+function webpackContext(req) {
+ var id = webpackContextResolve(req);
+ return __webpack_require__(id);
+}
+function webpackContextResolve(req) {
+ if(!__webpack_require__.o(map, req)) {
+ var e = new Error("Cannot find module '" + req + "'");
+ e.code = 'MODULE_NOT_FOUND';
+ throw e;
+ }
+ return map[req];
+}
+webpackContext.keys = function webpackContextKeys() {
+ return Object.keys(map);
+};
+webpackContext.resolve = webpackContextResolve;
+module.exports = webpackContext;
+webpackContext.id = "b13e";
/***/ }),
@@ -995,18 +1046,32 @@ if (typeof window !== 'undefined') {
// 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":"0d070753-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!./lib/RouterTab.vue?vue&type=template&id=4af9cf8f&
-var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"router-tab"},[_c('header',{ref:"header",staticClass:"router-tab__header"},[_c('div',{staticClass:"router-tab__slot-start"},[_vm._t("start")],2),_c('tab-scroll',{ref:"scroll"},[_c('transition-group',_vm._b({staticClass:"router-tab__nav",attrs:{"tag":"ul"}},'transition-group',_vm.tabTrans,false),_vm._l((_vm.items),function(item,index){return _c('tab-item',{key:item.id || item.to,ref:"tab",refInFor:true,attrs:{"data":item,"index":index},nativeOn:{"contextmenu":function($event){$event.preventDefault();return (function (e) { return _vm.showContextmenu(item.id, index, e); })($event)}},scopedSlots:_vm._u([(_vm.$scopedSlots.default)?{key:"default",fn:function(scope){return [_vm._t("default",null,null,scope)]}}:null],null,true)})}),1)],1),_c('div',{staticClass:"router-tab__slot-end"},[_vm._t("end")],2)],1),_c('div',{staticClass:"router-tab__container",class:{ loading: _vm.loading }},[_c('router-alive',{attrs:{"page-class":"router-tab-page","keep-alive":_vm.keepAlive,"reuse":_vm.reuse,"max":_vm.maxAlive,"transition":_vm.pageTrans},on:{"ready":_vm.onAliveReady,"change":_vm.onAliveChange}}),_c('transition-group',_vm._b({staticClass:"router-tab__iframes",attrs:{"tag":"div"}},'transition-group',_vm.pageTrans,false),_vm._l((_vm.iframes),function(url){return _c('iframe',{directives:[{name:"show",rawName:"v-show",value:(url === _vm.currentIframe),expression:"url === currentIframe"}],key:url,staticClass:"router-tab__iframe",attrs:{"src":url,"name":_vm.iframeNamePrefix + url,"frameborder":"0"},on:{"load":function($event){return _vm.iframeLoaded(url)}}})}),0)],1),_c('transition',{attrs:{"name":"router-tab-zoom"}},[(_vm.contextmenu.id)?_c('div',{staticClass:"router-tab__contextmenu",style:(("left: " + (_vm.contextmenu.left) + "px; top: " + (_vm.contextmenu.top) + "px;"))},[_c('a',{staticClass:"router-tab__contextmenu-item",on:{"click":function($event){return _vm.refreshTab(_vm.contextmenu.id)}}},[_vm._v(" "+_vm._s(_vm.lang.contextmenu.refresh)+" ")]),_c('a',{staticClass:"router-tab__contextmenu-item",attrs:{"disabled":_vm.items.length < 2},on:{"click":function($event){_vm.items.length > 1 && _vm.refreshAll()}}},[_vm._v(" "+_vm._s(_vm.lang.contextmenu.refreshAll)+" ")]),_c('a',{staticClass:"router-tab__contextmenu-item",attrs:{"disabled":!_vm.isContextTabCanBeClosed},on:{"click":function($event){_vm.isContextTabCanBeClosed && _vm.closeTab(_vm.contextmenu.id)}}},[_vm._v(" "+_vm._s(_vm.lang.contextmenu.close)+" ")]),_c('a',{staticClass:"router-tab__contextmenu-item",attrs:{"disabled":!_vm.tabsLeft.length},on:{"click":function($event){_vm.tabsLeft.length && _vm.closeMulti(_vm.tabsLeft)}}},[_vm._v(" "+_vm._s(_vm.lang.contextmenu.closeLefts)+" ")]),_c('a',{staticClass:"router-tab__contextmenu-item",attrs:{"disabled":!_vm.tabsRight.length},on:{"click":function($event){_vm.tabsRight.length && _vm.closeMulti(_vm.tabsRight)}}},[_vm._v(" "+_vm._s(_vm.lang.contextmenu.closeRights)+" ")]),_c('a',{staticClass:"router-tab__contextmenu-item",attrs:{"disabled":!_vm.tabsOther.length},on:{"click":function($event){_vm.tabsOther.length && _vm.closeMulti(_vm.tabsOther)}}},[_vm._v(" "+_vm._s(_vm.lang.contextmenu.closeOthers)+" ")])]):_vm._e()])],1)}
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"04e48bad-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!./lib/RouterTab.vue?vue&type=template&id=0774e0e2&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"router-tab"},[_c('header',{ref:"header",staticClass:"router-tab__header"},[_c('div',{staticClass:"router-tab__slot-start"},[_vm._t("start")],2),_c('tab-scroll',{ref:"scroll"},[_c('transition-group',_vm._b({staticClass:"router-tab__nav",attrs:{"tag":"ul"}},'transition-group',_vm.tabTrans,false),_vm._l((_vm.items),function(item,index){return _c('tab-item',{key:item.id || item.to,ref:"tab",refInFor:true,attrs:{"data":item,"index":index},nativeOn:{"contextmenu":function($event){$event.preventDefault();return (function (e) { return _vm.showContextmenu(item.id, index, e); })($event)}},scopedSlots:_vm._u([(_vm.$scopedSlots.default)?{key:"default",fn:function(scope){return [_vm._t("default",null,null,scope)]}}:null],null,true)})}),1)],1),_c('div',{staticClass:"router-tab__slot-end"},[_vm._t("end")],2)],1),_c('div',{staticClass:"router-tab__container",class:{ loading: _vm.loading }},[_c('router-alive',{attrs:{"page-class":"router-tab-page","keep-alive":_vm.keepAlive,"reuse":_vm.reuse,"max":_vm.maxAlive,"transition":_vm.pageTrans},on:{"ready":_vm.onAliveReady,"change":_vm.onAliveChange}}),_c('transition-group',_vm._b({staticClass:"router-tab__iframes",attrs:{"tag":"div"}},'transition-group',_vm.pageTrans,false),_vm._l((_vm.iframes),function(url){return _c('iframe',{directives:[{name:"show",rawName:"v-show",value:(url === _vm.currentIframe),expression:"url === currentIframe"}],key:url,staticClass:"router-tab__iframe",attrs:{"src":url,"name":_vm.iframeNamePrefix + url,"frameborder":"0"},on:{"load":function($event){return _vm.iframeLoaded(url)}}})}),0)],1),_c('transition',{attrs:{"name":"router-tab-zoom"}},[(_vm.contextmenu !== false && _vm.contextData.id)?_c('tab-contextmenu',{attrs:{"data":_vm.contextData,"menu":_vm.contextMenu}}):_vm._e()],1)],1)}
var staticRenderFns = []
-// CONCATENATED MODULE: ./lib/RouterTab.vue?vue&type=template&id=4af9cf8f&
+// CONCATENATED MODULE: ./lib/RouterTab.vue?vue&type=template&id=0774e0e2&
// EXTERNAL MODULE: ./node_modules/@babel/runtime/regenerator/index.js
var regenerator = __webpack_require__("a34a");
var regenerator_default = /*#__PURE__*/__webpack_require__.n(regenerator);
// CONCATENATED MODULE: ./lib/util/index.js
+function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
+
+function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
+
+function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
+
+function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
+
+function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
+
+function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
+
+function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
// 空对象和数组
var emptyObj = Object.create(null);
var emptyArray = []; // 从数组删除项
@@ -1109,15 +1174,63 @@ function util_scrollIntoView(_ref2) {
top: top
});
}
-} // 提取计算属性
+}
+/**
+ * 提取计算属性
+ * @export
+ * @param {String} origin 来源属性
+ * @param {Array|Object} props 需要提取的计算属性
+ * @param {String} context 来源选项为 function 时的入参
+ * @returns {Object}
+ */
-function mapGetters(prop, keys) {
+function mapGetters(origin, props, context) {
var map = {};
- keys.forEach(function (key) {
- map[key] = function () {
- return this[prop][key];
+
+ var each = function each(prop, option) {
+ if (option === null || _typeof(option) !== 'object') {
+ option = {
+ default: option
+ };
+ }
+
+ var _option = option,
+ def = _option.default,
+ alias = _option.alias;
+
+ map[alias || prop] = function () {
+ var val = this[origin][prop];
+
+ if (context && typeof val === 'function') {
+ // 函数返回
+ return val(this[context]);
+ } else if (def !== undefined && val === undefined) {
+ // 默认值
+ if (typeof def === 'function') {
+ return def.bind(this)();
+ }
+
+ return def;
+ }
+
+ return val;
};
- });
+ };
+
+ if (Array.isArray(props)) {
+ props.forEach(function (prop) {
+ return each(prop);
+ });
+ } else {
+ Object.entries(props).forEach(function (_ref3) {
+ var _ref4 = _slicedToArray(_ref3, 2),
+ prop = _ref4[0],
+ def = _ref4[1];
+
+ return each(prop, def);
+ });
+ }
+
return map;
} // 去除路径中的 hash
@@ -1131,25 +1244,13 @@ function getTransOpt(trans) {
} : trans;
}
// CONCATENATED MODULE: ./lib/mixins/contextmenu.js
-
-
-function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
-
-function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
-
-function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
-
-function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
-
-function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
-
// 右键菜单
-/* harmony default export */ var mixins_contextmenu = ({
+/* harmony default export */ var contextmenu = ({
data: function data() {
return {
// 右键菜单
- contextmenu: {
+ contextData: {
id: null,
index: -1,
left: 0,
@@ -1158,44 +1259,13 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
};
},
computed: {
- // 右键页签是否允许关闭
- isContextTabCanBeClosed: function isContextTabCanBeClosed() {
- var items = this.items,
- contextmenu = this.contextmenu;
- var contextTab = items[contextmenu.index];
- return items.length > 1 && contextTab && contextTab.closable !== false;
- },
- // 左侧可关闭的页签
- tabsLeft: function tabsLeft() {
- var items = this.items,
- _this$contextmenu = this.contextmenu,
- id = _this$contextmenu.id,
- index = _this$contextmenu.index;
- return id ? items.slice(0, index).filter(function (_ref) {
- var closable = _ref.closable;
- return closable !== false;
- }) : emptyArray;
- },
- // 左侧可关闭的页签
- tabsRight: function tabsRight() {
- var items = this.items,
- _this$contextmenu2 = this.contextmenu,
- id = _this$contextmenu2.id,
- index = _this$contextmenu2.index;
- return id ? items.slice(index + 1).filter(function (_ref2) {
- var closable = _ref2.closable;
- return closable !== false;
- }) : emptyArray;
- },
- // 其他可关闭的页签
- tabsOther: function tabsOther() {
- var items = this.items,
- id = this.contextmenu.id;
- return id ? items.filter(function (_ref3) {
- var closable = _ref3.closable,
- tid = _ref3.id;
- return closable !== false && id !== tid;
- }) : emptyArray;
+ // 菜单配置
+ contextMenu: function contextMenu() {
+ if (Array.isArray(this.contextmenu)) {
+ return this.contextmenu;
+ }
+
+ return undefined;
}
},
watch: {
@@ -1204,7 +1274,7 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
this.hideContextmenu();
},
// 监听右键菜单显示关闭
- 'contextmenu.id': function contextmenuId(val, old) {
+ 'contextData.id': function contextDataId(val, old) {
var _this = this;
if (!old && val) {
@@ -1224,11 +1294,11 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
// 显示页签右键菜单
showContextmenu: function showContextmenu(id, index, e) {
// 菜单定位
- var _ref4 = e || emptyObj,
- top = _ref4.clientY,
- left = _ref4.clientX;
+ var _ref = e || emptyObj,
+ top = _ref.clientY,
+ left = _ref.clientX;
- Object.assign(this.contextmenu, {
+ Object.assign(this.contextData, {
id: id,
index: index,
top: top,
@@ -1238,130 +1308,34 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
// 关闭页签右键菜单
hideContextmenu: function hideContextmenu() {
this.showContextmenu(null, -1);
- },
- // 关闭多个页签
- closeMulti: function closeMulti(tabs) {
- var _this2 = this;
-
- return _asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
- var items, $router, contextmenu, nextTab, _iterator, _step, id;
-
- return regenerator_default.a.wrap(function _callee$(_context) {
- while (1) {
- switch (_context.prev = _context.next) {
- case 0:
- items = _this2.items, $router = _this2.$router, contextmenu = _this2.contextmenu;
- nextTab = items.find(function (_ref5) {
- var id = _ref5.id;
- return id === contextmenu.id;
- });
- _iterator = _createForOfIteratorHelper(tabs);
- _context.prev = 3;
-
- _iterator.s();
-
- case 5:
- if ((_step = _iterator.n()).done) {
- _context.next = 16;
- break;
- }
-
- id = _step.value.id;
- _context.prev = 7;
- _context.next = 10;
- return _this2.removeTab(id);
-
- case 10:
- _context.next = 14;
- break;
-
- case 12:
- _context.prev = 12;
- _context.t0 = _context["catch"](7);
-
- case 14:
- _context.next = 5;
- break;
-
- case 16:
- _context.next = 21;
- break;
+ }
+ }
+});
+// CONCATENATED MODULE: ./lib/config/lang/index.js
+function lang_slicedToArray(arr, i) { return lang_arrayWithHoles(arr) || lang_iterableToArrayLimit(arr, i) || lang_unsupportedIterableToArray(arr, i) || lang_nonIterableRest(); }
- case 18:
- _context.prev = 18;
- _context.t1 = _context["catch"](3);
+function lang_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
- _iterator.e(_context.t1);
+function lang_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return lang_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return lang_arrayLikeToArray(o, minLen); }
- case 21:
- _context.prev = 21;
+function lang_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
- _iterator.f();
+function lang_iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
- return _context.finish(21);
+function lang_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
- case 24:
- // 当前页签如已关闭,则打开右键选中页签
- if (items.findIndex(function (_ref6) {
- var id = _ref6.id;
- return id === _this2.activeTabId;
- }) === -1) {
- $router.replace(nextTab.to);
- }
+// 引入目录下语言配置
+var context = __webpack_require__("b13e"); // 语言配置
- case 25:
- case "end":
- return _context.stop();
- }
- }
- }, _callee, null, [[3, 18, 21, 24], [7, 12]]);
- }))();
- }
- }
-});
-// CONCATENATED MODULE: ./lib/lang/zh-CN.js
-/* harmony default export */ var zh_CN = ({
- tab: {
- untitled: '无标题'
- },
- contextmenu: {
- refresh: '刷新',
- refreshAll: '刷新所有',
- close: '关闭',
- closeLefts: '关闭左侧',
- closeRights: '关闭右侧',
- closeOthers: '关闭其他'
- },
- msg: {
- keepLastTab: '至少应保留1个页签',
- i18nProp: '请提供“i18n”方法以处理国际化内容'
- }
-});
-// CONCATENATED MODULE: ./lib/lang/en.js
-/* harmony default export */ var en = ({
- tab: {
- untitled: 'Untitled'
- },
- contextmenu: {
- refresh: 'Refresh',
- refreshAll: 'Refresh All',
- close: 'Close',
- closeLefts: 'Close to the Left',
- closeRights: 'Close to the Right',
- closeOthers: 'Close Others'
- },
- msg: {
- keepLastTab: 'Keep at least 1 tab',
- i18nProp: 'Method "i18n" is not defined on the instance'
- }
-});
-// CONCATENATED MODULE: ./lib/lang/index.js
+/* harmony default export */ var config_lang = (context.keys().reduce(function (map, path) {
+ var _$exec = /\.\/(.*).js/g.exec(path),
+ _$exec2 = lang_slicedToArray(_$exec, 2),
+ key = _$exec2[1];
-/* harmony default export */ var lib_lang = ({
- 'zh-CN': zh_CN,
- en: en
-});
+ map[key] = context(path).default;
+ return map;
+}, {}));
// CONCATENATED MODULE: ./lib/util/warn.js
var prefix = '[Vue Router Tab]'; // 错误
@@ -1384,9 +1358,9 @@ var messages = {
}
};
// CONCATENATED MODULE: ./lib/mixins/i18n.js
-function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || i18n_unsupportedIterableToArray(arr) || _nonIterableRest(); }
+function _toArray(arr) { return i18n_arrayWithHoles(arr) || _iterableToArray(arr) || i18n_unsupportedIterableToArray(arr) || i18n_nonIterableRest(); }
-function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
+function i18n_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function i18n_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return i18n_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return i18n_arrayLikeToArray(o, minLen); }
@@ -1394,7 +1368,7 @@ function i18n_arrayLikeToArray(arr, len) { if (len == null || len > arr.length)
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
-function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
+function i18n_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
// 语言配置
@@ -1407,11 +1381,11 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
var lang = this.language;
if (typeof lang === 'string') {
- lang = lib_lang[lang];
+ lang = config_lang[lang];
} // 找不到语言配置,则使用英文
- if (!lang) lang = lib_lang['en'];
+ if (!lang) lang = config_lang['en'];
return lang;
}
},
@@ -1468,7 +1442,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
}
});
// CONCATENATED MODULE: ./lib/mixins/iframe.js
-// iframe 页签
+// Iframe 页签
/* harmony default export */ var iframe = ({
data: function data() {
return {
@@ -1478,7 +1452,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
};
},
methods: {
- // 获取 iframe 页签路由路径
+ // 获取 Iframe 页签路由路径
getIframePath: function getIframePath(src) {
var title = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
var icon = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
@@ -1491,12 +1465,12 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
return path;
},
- // 打开 iframe 页签
+ // 打开 Iframe 页签
openIframe: function openIframe(src, title, icon) {
var path = this.getIframePath(src, title, icon);
this.$router.push(path);
},
- // 关闭 iframe 页签
+ // 关闭 Iframe 页签
closeIframe: function closeIframe(src) {
var path = this.getIframePath(src);
this.close({
@@ -1504,7 +1478,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
match: false
});
},
- // 刷新 iframe 页签
+ // 刷新 Iframe 页签
refreshIframe: function refreshIframe(src) {
var path = this.getIframePath(src);
this.refresh(path, false);
@@ -1529,11 +1503,11 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
// CONCATENATED MODULE: ./lib/mixins/operate.js
-function operate_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
+function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
-function operate_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { operate_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { operate_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
+function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
-function _slicedToArray(arr, i) { return operate_arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || operate_unsupportedIterableToArray(arr, i) || operate_nonIterableRest(); }
+function operate_slicedToArray(arr, i) { return operate_arrayWithHoles(arr) || operate_iterableToArrayLimit(arr, i) || operate_unsupportedIterableToArray(arr, i) || operate_nonIterableRest(); }
function operate_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -1541,11 +1515,11 @@ function operate_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typ
function operate_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
-function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
+function operate_iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function operate_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
-function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+function operate_typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { operate_typeof = function _typeof(obj) { return typeof obj; }; } else { operate_typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return operate_typeof(obj); }
// 获取关闭参数
@@ -1557,13 +1531,13 @@ function getCloseArgs(args) {
if (!argsLen) {
// close()
return {};
- } else if (arg && _typeof(arg) === 'object' && !arg.name && !arg.fullPath && !arg.params && !arg.query && !arg.hash) {
+ } else if (arg && operate_typeof(arg) === 'object' && !arg.name && !arg.fullPath && !arg.params && !arg.query && !arg.hash) {
// close({id, path, match, force, to, refresh})
return arg;
} else {
// close(path, to)
var _args = args,
- _args2 = _slicedToArray(_args, 2),
+ _args2 = operate_slicedToArray(_args, 2),
path = _args2[0],
to = _args2[1];
@@ -1593,7 +1567,7 @@ function equalPath(path1, path2) {
var _arguments = arguments,
_this = this;
- return operate_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
+ return _asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
var isReplace, refresh, curId, tarId, isSameTab;
return regenerator_default.a.wrap(function _callee$(_context) {
while (1) {
@@ -1637,7 +1611,7 @@ function equalPath(path1, path2) {
var _arguments2 = arguments,
_this2 = this;
- return operate_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee2() {
+ return _asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee2() {
var force, items, idx;
return regenerator_default.a.wrap(function _callee2$(_context2) {
while (1) {
@@ -1663,7 +1637,7 @@ function equalPath(path1, path2) {
}
_context2.next = 8;
- return _this2.pageLeavePromise(id, 'close');
+ return _this2.leavePage(id, 'close');
case 8:
// 承诺关闭后移除页签和缓存
@@ -1683,8 +1657,8 @@ function equalPath(path1, path2) {
/**
* 关闭页签
* 支持以下方式调用:
- * 1. this.$routerTab.close({id, path, match, force, to, refresh})
- * 2. this.$routerTab.close(path, to)
+ * 1. this.$tabs.close({id, path, match, force, to, refresh})
+ * 2. this.$tabs.close(path, to)
* @param {String} id 通过页签 id 关闭
* @param {location} path 通过路由路径关闭页签,如果未配置 id 和 path 则关闭当前页签
* @param {Boolean} [match = true] path 方式关闭时,是否匹配 path 完整路径
@@ -1696,7 +1670,7 @@ function equalPath(path1, path2) {
var _arguments3 = arguments,
_this3 = this;
- return operate_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee3() {
+ return _asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee3() {
var _getCloseArgs, id, path, _getCloseArgs$match, match, _getCloseArgs$force, force, to, _getCloseArgs$refresh, refresh, activeTabId, items, idx, nextTab;
return regenerator_default.a.wrap(function _callee3$(_context3) {
@@ -1772,7 +1746,7 @@ function equalPath(path1, path2) {
var _arguments4 = arguments,
_this4 = this;
- return operate_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee4() {
+ return _asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee4() {
var id, to, force;
return regenerator_default.a.wrap(function _callee4$(_context4) {
while (1) {
@@ -1814,7 +1788,7 @@ function equalPath(path1, path2) {
var _arguments5 = arguments,
_this5 = this;
- return operate_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee5() {
+ return _asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee5() {
var id, force;
return regenerator_default.a.wrap(function _callee5$(_context5) {
while (1) {
@@ -1830,7 +1804,7 @@ function equalPath(path1, path2) {
}
_context5.next = 6;
- return _this5.pageLeavePromise(id, 'refresh');
+ return _this5.leavePage(id, 'refresh');
case 6:
_this5.$alive.refresh(id);
@@ -1860,7 +1834,7 @@ function equalPath(path1, path2) {
var _arguments6 = arguments,
_this6 = this;
- return operate_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee6() {
+ return _asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee6() {
var force, cache, id;
return regenerator_default.a.wrap(function _callee6$(_context6) {
while (1) {
@@ -1885,7 +1859,7 @@ function equalPath(path1, path2) {
}
_context6.next = 9;
- return _this6.pageLeavePromise(id, 'refresh');
+ return _this6.leavePage(id, 'refresh');
case 9:
_this6.$alive.refresh(id);
@@ -1932,61 +1906,30 @@ function equalPath(path1, path2) {
}
});
// CONCATENATED MODULE: ./lib/mixins/pageLeave.js
- // 页面离开
-
-/* harmony default export */ var pageLeave = ({
- created: function created() {
- var $router = this.$router;
- if ($router._RouterTabInit) return; // 初始化路由导航守卫
-
- $router.beforeEach(pageLeave_leaveGuard($router));
- $router._RouterTabInit = true;
- },
- methods: {
- // 页面离开Promise
- pageLeavePromise: function pageLeavePromise(id, type) {
- var _this = this;
-
- return new Promise(function (resolve, reject) {
- var tab = _this.items.find(function (item) {
- return item.id === id;
- }); // 当前页签
- var _ref = _this.$alive.cache[id] || emptyObj,
- vm = _ref.vm; // 缓存数据
+function pageLeave_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
+function pageLeave_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { pageLeave_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { pageLeave_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
- var beforePageLeave = vm && vm.$vnode.componentOptions.Ctor.options.beforePageLeave;
-
- if (typeof beforePageLeave === 'function') {
- // 页签关闭前
- beforePageLeave.bind(vm)(resolve, reject, tab, type);
- } else {
- resolve();
- }
- });
- }
- }
-}); // 路由导航守卫
+ // 路由导航守卫
var pageLeave_leaveGuard = function leaveGuard(router) {
return function (to, from, next) {
- var tab = router.app.$routerTab;
+ var $tabs = router.app.$tabs;
- if (!tab) {
+ if (!$tabs) {
next();
return;
}
- var fromId = tab.activeTabId;
- var toId = tab.getRouteKey(to);
- var $alive = tab.$alive;
+ var toId = $tabs.getRouteKey(to);
+ var $alive = $tabs.$alive;
- var _ref2 = $alive && $alive.cache[toId] || emptyObj,
- alivePath = _ref2.alivePath;
+ var _ref = $alive && $alive.cache[toId] || emptyObj,
+ alivePath = _ref.alivePath;
- var matched = tab.matchRoute(to);
+ var matched = $tabs.matchRoute(to);
var id, type;
if (alivePath && alivePath !== matched.alivePath) {
@@ -1996,42 +1939,86 @@ var pageLeave_leaveGuard = function leaveGuard(router) {
} else if ($alive.basePath !== matched.basePath) {
// 离开页签组件:to 不在当前页签组件路由下
type = 'leave';
- id = fromId;
+ id = $tabs.activeTabId;
}
if (type) {
- tab.pageLeavePromise(id, type).then(function () {
- return next();
- }).catch(function () {
+ $tabs.leavePage(id, type).then(next).catch(function () {
return next(false);
});
} else {
next();
}
};
-};
-// CONCATENATED MODULE: ./lib/mixins/scroll.js
+}; // 页面离开
+/* harmony default export */ var mixins_pageLeave = ({
+ created: function created() {
+ var $router = this.$router;
+ if ($router._RouterTabInit) return; // 初始化路由导航守卫
-function scroll_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
+ $router.beforeEach(pageLeave_leaveGuard($router));
+ $router._RouterTabInit = true;
+ },
+ methods: {
+ // 页面离开 Promise
+ leavePage: function leavePage(id, type) {
+ var _this = this;
-function scroll_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { scroll_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { scroll_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
+ return pageLeave_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
+ var tab, _ref2, vm, pageLeave;
- // 页签滚动
+ return regenerator_default.a.wrap(function _callee$(_context) {
+ while (1) {
+ switch (_context.prev = _context.next) {
+ case 0:
+ tab = _this.items.find(function (item) {
+ return item.id === id;
+ }); // 当前页签
-/* harmony default export */ var mixins_scroll = ({
- watch: {
- activeTabId: {
- handler: function handler() {
- var _this = this;
+ _ref2 = _this.$alive.cache[id] || emptyObj, vm = _ref2.vm; // 缓存数据
- return scroll_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
- return regenerator_default.a.wrap(function _callee$(_context) {
- while (1) {
- switch (_context.prev = _context.next) {
- case 0:
- if (_this.$el) {
- _context.next = 2;
+ pageLeave = vm && vm.$vnode.componentOptions.Ctor.options.beforePageLeave;
+
+ if (!(typeof pageLeave === 'function')) {
+ _context.next = 5;
+ break;
+ }
+
+ return _context.abrupt("return", pageLeave.bind(vm)(tab, type));
+
+ case 5:
+ case "end":
+ return _context.stop();
+ }
+ }
+ }, _callee);
+ }))();
+ }
+ }
+});
+// CONCATENATED MODULE: ./lib/mixins/scroll.js
+
+
+function scroll_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
+
+function scroll_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { scroll_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { scroll_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
+
+ // 页签滚动
+
+/* harmony default export */ var mixins_scroll = ({
+ watch: {
+ activeTabId: {
+ handler: function handler() {
+ var _this = this;
+
+ return scroll_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
+ return regenerator_default.a.wrap(function _callee$(_context) {
+ while (1) {
+ switch (_context.prev = _context.next) {
+ case 0:
+ if (_this.$el) {
+ _context.next = 2;
break;
}
@@ -2135,23 +2122,17 @@ function scroll_asyncToGenerator(fn) { return function () { var self = this, arg
}
}
});
-// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0d070753-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!./lib/components/RouterAlive.vue?vue&type=template&id=ffca4b3e&
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"04e48bad-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!./lib/components/RouterAlive.vue?vue&type=template&id=ffca4b3e&
var RouterAlivevue_type_template_id_ffca4b3e_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"router-alive"},[_c('transition',_vm._b({attrs:{"appear":""},on:{"after-enter":_vm.onTransChange,"after-leave":_vm.onTransChange}},'transition',_vm.pageTrans,false),[_c('keep-alive',{attrs:{"max":_vm.max}},[(_vm.alive && !_vm.onRefresh)?_c('router-view',_vm._g({key:_vm.key,ref:"page",class:_vm.pageClass},_vm.hooks)):_vm._e()],1)],1),_c('transition',_vm._b({attrs:{"appear":""},on:{"after-enter":_vm.onTransChange,"after-leave":_vm.onTransChange}},'transition',_vm.pageTrans,false),[(!_vm.alive && !_vm.onRefresh)?_c('router-view',{key:_vm.key,ref:"page",class:_vm.pageClass}):_vm._e()],1)],1)}
var RouterAlivevue_type_template_id_ffca4b3e_staticRenderFns = []
// CONCATENATED MODULE: ./lib/components/RouterAlive.vue?vue&type=template&id=ffca4b3e&
-// CONCATENATED MODULE: ./lib/util/RouteMatch.js
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
-
-function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
-
+// CONCATENATED MODULE: ./lib/config/rules.js
// 内置规则
-var rules = {
+/* harmony default export */ var rules = ({
// 地址,params 不一致则独立缓存
path: function path(route) {
return route.path;
@@ -2160,7 +2141,16 @@ var rules = {
fullpath: function fullpath(route) {
return prunePath(route.fullPath);
}
-}; // 解析路由 key
+});
+// CONCATENATED MODULE: ./lib/util/RouteMatch.js
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
+
+function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
+
+
+ // 解析路由 key
function parseRouteKey($route, route, key) {
var defaultKey = route.path;
@@ -2749,16 +2739,16 @@ var component = normalizeComponent(
)
/* harmony default export */ var RouterAlive = (component.exports);
-// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0d070753-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!./lib/components/TabItem.vue?vue&type=template&id=64b9760c&
-var TabItemvue_type_template_id_64b9760c_render = function () {
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"04e48bad-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!./lib/components/TabItem.vue?vue&type=template&id=41fe9c1a&
+var TabItemvue_type_template_id_41fe9c1a_render = function () {
var _obj;
var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-link',{class:( _obj = {
'router-tab__item': true
- }, _obj[_vm.tabClass || ''] = true, _obj['is-active'] = _vm.RouterTab.activeTabId === _vm.id, _obj['is-closable'] = _vm.closable, _obj['is-contextmenu'] = _vm.RouterTab.contextmenu.id === _vm.id, _obj ),attrs:{"tag":"li","to":_vm.to}},[_vm._t("default",[(_vm.icon)?_c('i',{staticClass:"router-tab__item-icon",class:_vm.icon}):_vm._e(),_c('span',{staticClass:"router-tab__item-title",attrs:{"title":_vm.tips}},[_vm._v(_vm._s(_vm.title))]),(_vm.closable)?_c('i',{staticClass:"router-tab__item-close",on:{"click":function($event){$event.preventDefault();$event.stopPropagation();return _vm.close($event)}}}):_vm._e()],null,this)],2)}
-var TabItemvue_type_template_id_64b9760c_staticRenderFns = []
+ }, _obj[_vm.tabClass || ''] = true, _obj['is-active'] = _vm.$tabs.activeTabId === _vm.id, _obj['is-closable'] = _vm.closable, _obj['is-contextmenu'] = _vm.$tabs.contextData.id === _vm.id, _obj ),attrs:{"tag":"li","to":_vm.to}},[_vm._t("default",[(_vm.icon)?_c('i',{staticClass:"router-tab__item-icon",class:_vm.icon}):_vm._e(),_c('span',{staticClass:"router-tab__item-title",attrs:{"title":_vm.tips}},[_vm._v(_vm._s(_vm.title))]),(_vm.closable)?_c('i',{staticClass:"router-tab__item-close",on:{"click":function($event){$event.preventDefault();$event.stopPropagation();return _vm.close($event)}}}):_vm._e()],null,this)],2)}
+var TabItemvue_type_template_id_41fe9c1a_staticRenderFns = []
-// CONCATENATED MODULE: ./lib/components/TabItem.vue?vue&type=template&id=64b9760c&
+// CONCATENATED MODULE: ./lib/components/TabItem.vue?vue&type=template&id=41fe9c1a&
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./lib/components/TabItem.vue?vue&type=script&lang=js&
function TabItemvue_type_script_lang_js_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
@@ -2795,7 +2785,7 @@ function TabItemvue_type_script_lang_js_defineProperty(obj, key, value) { if (ke
/* harmony default export */ var TabItemvue_type_script_lang_js_ = ({
name: 'TabItem',
- inject: ['RouterTab'],
+ inject: ['$tabs'],
props: {
// 页签原始数据,方便 slot 插槽自定义数据
data: {
@@ -2808,11 +2798,11 @@ function TabItemvue_type_script_lang_js_defineProperty(obj, key, value) { if (ke
computed: TabItemvue_type_script_lang_js_objectSpread(TabItemvue_type_script_lang_js_objectSpread({}, mapGetters('data', ['id', 'to', 'icon', 'tabClass', 'target', 'href'])), {}, {
// 国际化
i18nText: function i18nText() {
- return this.RouterTab.i18nText;
+ return this.$tabs.i18nText;
},
// 未命名页签
untitled: function untitled() {
- return this.RouterTab.lang.tab.untitled;
+ return this.$tabs.lang.tab.untitled;
},
// 页签标题
title: function title() {
@@ -2824,16 +2814,16 @@ function TabItemvue_type_script_lang_js_defineProperty(obj, key, value) { if (ke
},
// 是否可关闭
closable: function closable() {
- var _this$RouterTab = this.RouterTab,
- keepLastTab = _this$RouterTab.keepLastTab,
- items = _this$RouterTab.items;
+ var _this$$tabs = this.$tabs,
+ keepLastTab = _this$$tabs.keepLastTab,
+ items = _this$$tabs.items;
return this.data.closable !== false && !(keepLastTab && items.length < 2);
}
}),
methods: {
// 关闭当前页签
close: function close() {
- this.RouterTab.closeTab(this.id);
+ this.$tabs.closeTab(this.id);
}
}
});
@@ -2849,8 +2839,8 @@ function TabItemvue_type_script_lang_js_defineProperty(obj, key, value) { if (ke
var TabItem_component = normalizeComponent(
components_TabItemvue_type_script_lang_js_,
- TabItemvue_type_template_id_64b9760c_render,
- TabItemvue_type_template_id_64b9760c_staticRenderFns,
+ TabItemvue_type_template_id_41fe9c1a_render,
+ TabItemvue_type_template_id_41fe9c1a_staticRenderFns,
false,
null,
null,
@@ -2859,12 +2849,15 @@ var TabItem_component = normalizeComponent(
)
/* harmony default export */ var TabItem = (TabItem_component.exports);
-// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0d070753-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!./lib/components/TabScroll.vue?vue&type=template&id=0741803e&
-var TabScrollvue_type_template_id_0741803e_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"router-tab__scroll",on:{"wheel":function($event){$event.preventDefault();return _vm.onWheel($event)},"mouseenter":_vm.update}},[_c('div',{ref:"container",staticClass:"router-tab__scroll-container",class:{ 'is-mobile': _vm.isMobile },on:{"scroll":_vm.update}},[_vm._t("default")],2),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.hasScroller),expression:"hasScroller"}],ref:"bar",staticClass:"router-tab__scrollbar",class:{ 'is-dragging': _vm.dragData }},[_c('div',{ref:"thumb",staticClass:"router-tab__scrollbar-thumb",style:(("width: " + _vm.thumbWidth + "px; transform: translateX(" + _vm.thumbLeft + "px)")),on:{"mousedown":function($event){$event.preventDefault();return _vm.onDragStart($event)}}})])])}
-var TabScrollvue_type_template_id_0741803e_staticRenderFns = []
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"04e48bad-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!./lib/components/TabScroll.vue?vue&type=template&id=b781fa08&
+var TabScrollvue_type_template_id_b781fa08_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"router-tab__scroll",on:{"wheel":function($event){$event.preventDefault();return _vm.onWheel($event)},"mouseenter":_vm.update}},[_c('div',{ref:"container",staticClass:"router-tab__scroll-container",class:{ 'is-mobile': _vm.isMobile },on:{"scroll":_vm.update}},[_vm._t("default")],2),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.hasScroller),expression:"hasScroller"}],ref:"bar",staticClass:"router-tab__scrollbar",class:{ 'is-dragging': _vm.dragData }},[_c('div',{ref:"thumb",staticClass:"router-tab__scrollbar-thumb",style:({
+ width: (_vm.thumbWidth + "px"),
+ transform: ("translateX(" + _vm.thumbLeft + "px")
+ }),on:{"mousedown":function($event){$event.preventDefault();return _vm.onDragStart($event)}}})])])}
+var TabScrollvue_type_template_id_b781fa08_staticRenderFns = []
-// CONCATENATED MODULE: ./lib/components/TabScroll.vue?vue&type=template&id=0741803e&
+// CONCATENATED MODULE: ./lib/components/TabScroll.vue?vue&type=template&id=b781fa08&
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./lib/components/TabScroll.vue?vue&type=script&lang=js&
//
@@ -2893,6 +2886,9 @@ var TabScrollvue_type_template_id_0741803e_staticRenderFns = []
//
//
//
+//
+//
+//
//
// 滚动条
@@ -3058,8 +3054,8 @@ var TabScrollvue_type_template_id_0741803e_staticRenderFns = []
var TabScroll_component = normalizeComponent(
components_TabScrollvue_type_script_lang_js_,
- TabScrollvue_type_template_id_0741803e_render,
- TabScrollvue_type_template_id_0741803e_staticRenderFns,
+ TabScrollvue_type_template_id_b781fa08_render,
+ TabScrollvue_type_template_id_b781fa08_staticRenderFns,
false,
null,
null,
@@ -3068,6 +3064,400 @@ var TabScroll_component = normalizeComponent(
)
/* harmony default export */ var TabScroll = (TabScroll_component.exports);
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"04e48bad-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!./lib/components/Contextmenu.vue?vue&type=template&id=00944f94&
+var Contextmenuvue_type_template_id_00944f94_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"router-tab__contextmenu",class:{ 'has-icon': _vm.hasIcon },style:({
+ left: ((_vm.data.left) + "px"),
+ top: ((_vm.data.top) + "px")
+ })},_vm._l((_vm.menuList),function(item){return _c('tab-contextmenu-item',{key:item.id,attrs:{"data":item}})}),1)}
+var Contextmenuvue_type_template_id_00944f94_staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./lib/components/Contextmenu.vue?vue&type=template&id=00944f94&
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"04e48bad-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!./lib/components/ContextmenuItem.vue?vue&type=template&id=29d67537&
+var ContextmenuItemvue_type_template_id_29d67537_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.visible)?_c('a',{staticClass:"router-tab__contextmenu-item",class:_vm.menuClass,attrs:{"data-action":_vm.id,"disabled":!_vm.enable,"title":_vm.tips},on:{"click":function($event){_vm.enable && _vm.data.handler(_vm.context)}}},[(_vm.icon)?_c('i',{staticClass:"router-tab__contextmenu-icon",class:_vm.icon}):_vm._e(),_vm._v(" "+_vm._s(_vm.title)+" ")]):_vm._e()}
+var ContextmenuItemvue_type_template_id_29d67537_staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./lib/components/ContextmenuItem.vue?vue&type=template&id=29d67537&
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./lib/components/ContextmenuItem.vue?vue&type=script&lang=js&
+function ContextmenuItemvue_type_script_lang_js_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
+
+function ContextmenuItemvue_type_script_lang_js_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ContextmenuItemvue_type_script_lang_js_ownKeys(Object(source), true).forEach(function (key) { ContextmenuItemvue_type_script_lang_js_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ContextmenuItemvue_type_script_lang_js_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+function ContextmenuItemvue_type_script_lang_js_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+/* harmony default export */ var ContextmenuItemvue_type_script_lang_js_ = ({
+ name: 'ContextmenuItem',
+ inject: ['$tabs'],
+ props: {
+ // 菜单数据
+ data: {
+ type: Object,
+ required: true
+ }
+ },
+ computed: ContextmenuItemvue_type_script_lang_js_objectSpread({
+ // 参数
+ context: function context() {
+ var $tabs = this.$tabs,
+ $menu = this.$parent;
+ var target = $menu.target,
+ data = $menu.data;
+ return {
+ $tabs: $tabs,
+ $menu: $menu,
+ target: target,
+ data: data
+ };
+ }
+ }, mapGetters('data', {
+ id: '',
+ // 菜单标题
+ title: function title() {
+ return this.$tabs.lang.contextmenu[this.id];
+ },
+ icon: '',
+ tips: '',
+ class: {
+ default: '',
+ alias: 'menuClass'
+ },
+ visible: true,
+ // 是否显示
+ enable: true // 是否启用
+
+ }, 'context'))
+});
+// CONCATENATED MODULE: ./lib/components/ContextmenuItem.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_ContextmenuItemvue_type_script_lang_js_ = (ContextmenuItemvue_type_script_lang_js_);
+// CONCATENATED MODULE: ./lib/components/ContextmenuItem.vue
+
+
+
+
+
+/* normalize component */
+
+var ContextmenuItem_component = normalizeComponent(
+ components_ContextmenuItemvue_type_script_lang_js_,
+ ContextmenuItemvue_type_template_id_29d67537_render,
+ ContextmenuItemvue_type_template_id_29d67537_staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var ContextmenuItem = (ContextmenuItem_component.exports);
+// CONCATENATED MODULE: ./lib/config/contextmenu.js
+function contextmenu_slicedToArray(arr, i) { return contextmenu_arrayWithHoles(arr) || contextmenu_iterableToArrayLimit(arr, i) || contextmenu_unsupportedIterableToArray(arr, i) || contextmenu_nonIterableRest(); }
+
+function contextmenu_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
+
+function contextmenu_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return contextmenu_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return contextmenu_arrayLikeToArray(o, minLen); }
+
+function contextmenu_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
+
+function contextmenu_iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
+
+function contextmenu_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
+
+// 菜单数据
+var menuMap = {
+ // 刷新
+ refresh: {
+ handler: function handler(_ref) {
+ var data = _ref.data,
+ $tabs = _ref.$tabs;
+ $tabs.refreshTab(data.id);
+ }
+ },
+ // 刷新全部
+ refreshAll: {
+ handler: function handler(_ref2) {
+ var $tabs = _ref2.$tabs;
+ $tabs.refreshAll();
+ }
+ },
+ // 关闭
+ close: {
+ enable: function enable(_ref3) {
+ var target = _ref3.target;
+ return target.closable;
+ },
+ handler: function handler(_ref4) {
+ var data = _ref4.data,
+ $tabs = _ref4.$tabs;
+ $tabs.closeTab(data.id);
+ }
+ },
+ // 关闭左侧
+ closeLefts: {
+ enable: function enable(_ref5) {
+ var $menu = _ref5.$menu;
+ return $menu.lefts.length;
+ },
+ handler: function handler(_ref6) {
+ var $menu = _ref6.$menu;
+ $menu.closeMulti($menu.lefts);
+ }
+ },
+ // 关闭右侧
+ closeRights: {
+ enable: function enable(_ref7) {
+ var $menu = _ref7.$menu;
+ return $menu.rights.length;
+ },
+ handler: function handler(_ref8) {
+ var $menu = _ref8.$menu;
+ $menu.closeMulti($menu.rights);
+ }
+ },
+ // 关闭其他
+ closeOthers: {
+ enable: function enable(_ref9) {
+ var $menu = _ref9.$menu;
+ return $menu.others.length;
+ },
+ handler: function handler(_ref10) {
+ var $menu = _ref10.$menu;
+ $menu.closeMulti($menu.others);
+ }
+ }
+}; // 遍历填充 id
+
+Object.entries(menuMap).forEach(function (_ref11) {
+ var _ref12 = contextmenu_slicedToArray(_ref11, 2),
+ id = _ref12[0],
+ item = _ref12[1];
+
+ return item.id = id;
+});
+/* harmony default export */ var config_contextmenu = (menuMap); // 默认菜单
+
+var defaultMenu = ['refresh', 'refreshAll', 'close', 'closeLefts', 'closeRights', 'closeOthers'];
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./lib/components/Contextmenu.vue?vue&type=script&lang=js&
+
+
+function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = Contextmenuvue_type_script_lang_js_unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
+
+function Contextmenuvue_type_script_lang_js_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return Contextmenuvue_type_script_lang_js_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Contextmenuvue_type_script_lang_js_arrayLikeToArray(o, minLen); }
+
+function Contextmenuvue_type_script_lang_js_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
+
+function Contextmenuvue_type_script_lang_js_asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
+
+function Contextmenuvue_type_script_lang_js_asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { Contextmenuvue_type_script_lang_js_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { Contextmenuvue_type_script_lang_js_asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
+
+function Contextmenuvue_type_script_lang_js_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
+
+function Contextmenuvue_type_script_lang_js_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { Contextmenuvue_type_script_lang_js_ownKeys(Object(source), true).forEach(function (key) { Contextmenuvue_type_script_lang_js_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { Contextmenuvue_type_script_lang_js_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+function Contextmenuvue_type_script_lang_js_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+
+/* harmony default export */ var Contextmenuvue_type_script_lang_js_ = ({
+ name: 'TabContextmenu',
+ inject: ['$tabs'],
+ components: {
+ TabContextmenuItem: ContextmenuItem
+ },
+ props: {
+ // 右键数据
+ data: {
+ type: [Boolean, Object]
+ },
+ // 菜单配置
+ menu: {
+ type: Array,
+ default: function _default() {
+ return defaultMenu;
+ }
+ }
+ },
+ computed: {
+ // 激活菜单的页签
+ target: function target() {
+ return this.$tabs.$refs.tab[this.data.index];
+ },
+ // 菜单选项
+ menuList: function menuList() {
+ return this.menu.map(function (item) {
+ if (typeof item === 'string') {
+ // 内置菜单
+ return config_contextmenu[item];
+ } else if (item && item.id) {
+ // 扩展内置菜单
+ var origin = config_contextmenu[item.id];
+ return origin ? Contextmenuvue_type_script_lang_js_objectSpread(Contextmenuvue_type_script_lang_js_objectSpread({}, origin), item) : item;
+ }
+ }).filter(function (item) {
+ return item;
+ });
+ },
+ // 是否显示图标
+ hasIcon: function hasIcon() {
+ return this.menuList.some(function (item) {
+ return item.icon;
+ });
+ },
+ // 页签
+ tabs: function tabs() {
+ return this.$tabs.$refs.tab;
+ },
+ // 左侧可关闭的页签
+ lefts: function lefts() {
+ return this.tabs.slice(0, this.data.index).filter(function (item) {
+ return item.closable;
+ });
+ },
+ // 左侧可关闭的页签
+ rights: function rights() {
+ return this.tabs.slice(this.data.index + 1).filter(function (item) {
+ return item.closable;
+ });
+ },
+ // 其他可关闭的页签
+ others: function others() {
+ var _this = this;
+
+ return this.tabs.filter(function (item) {
+ return item.closable && _this.data.id !== item.id;
+ });
+ }
+ },
+ methods: {
+ // 关闭多个页签
+ closeMulti: function closeMulti(tabs) {
+ var _this2 = this;
+
+ return Contextmenuvue_type_script_lang_js_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
+ var _iterator, _step, id;
+
+ return regenerator_default.a.wrap(function _callee$(_context) {
+ while (1) {
+ switch (_context.prev = _context.next) {
+ case 0:
+ _iterator = _createForOfIteratorHelper(tabs);
+ _context.prev = 1;
+
+ _iterator.s();
+
+ case 3:
+ if ((_step = _iterator.n()).done) {
+ _context.next = 14;
+ break;
+ }
+
+ id = _step.value.id;
+ _context.prev = 5;
+ _context.next = 8;
+ return _this2.$tabs.removeTab(id);
+
+ case 8:
+ _context.next = 12;
+ break;
+
+ case 10:
+ _context.prev = 10;
+ _context.t0 = _context["catch"](5);
+
+ case 12:
+ _context.next = 3;
+ break;
+
+ case 14:
+ _context.next = 19;
+ break;
+
+ case 16:
+ _context.prev = 16;
+ _context.t1 = _context["catch"](1);
+
+ _iterator.e(_context.t1);
+
+ case 19:
+ _context.prev = 19;
+
+ _iterator.f();
+
+ return _context.finish(19);
+
+ case 22:
+ // 当前页签如已关闭,则打开右键选中页签
+ if (!_this2.$tabs.activeTab) {
+ _this2.$router.replace(_this2.target.to);
+ }
+
+ case 23:
+ case "end":
+ return _context.stop();
+ }
+ }
+ }, _callee, null, [[1, 16, 19, 22], [5, 10]]);
+ }))();
+ }
+ }
+});
+// CONCATENATED MODULE: ./lib/components/Contextmenu.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_Contextmenuvue_type_script_lang_js_ = (Contextmenuvue_type_script_lang_js_);
+// CONCATENATED MODULE: ./lib/components/Contextmenu.vue
+
+
+
+
+
+/* normalize component */
+
+var Contextmenu_component = normalizeComponent(
+ components_Contextmenuvue_type_script_lang_js_,
+ Contextmenuvue_type_template_id_00944f94_render,
+ Contextmenuvue_type_template_id_00944f94_staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var Contextmenu = (Contextmenu_component.exports);
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/eslint-loader??ref--13-0!./lib/RouterTab.js?vue&type=script&lang=js&
@@ -3094,20 +3484,22 @@ function RouterTabvue_type_script_lang_js_defineProperty(obj, key, value) { if (
+
// RouterTab 组件
var RouterTab = {
name: 'RouterTab',
- mixins: [mixins_contextmenu, i18n, iframe, operate, pageLeave, mixins_scroll, restore],
+ mixins: [contextmenu, i18n, iframe, operate, mixins_pageLeave, mixins_scroll, restore],
components: {
RouterAlive: RouterAlive,
TabItem: TabItem,
- TabScroll: TabScroll
+ TabScroll: TabScroll,
+ TabContextmenu: Contextmenu
},
// 注入子组件
provide: function provide() {
return {
- RouterTab: this
+ $tabs: this
};
},
props: {
@@ -3147,6 +3539,16 @@ var RouterTab = {
type: [String, Object],
default: 'zh-CN'
},
+
+ /**
+ * 自定义右键菜单
+ * 1. 为 false 时禁用
+ * 2. 为数组时可自定义右键菜单
+ */
+ contextmenu: {
+ type: [Boolean, Array],
+ default: true
+ },
// 默认是否缓存,可通过路由 meta.keepAlive 重置
keepAlive: {
type: Boolean,
@@ -3230,13 +3632,13 @@ var RouterTab = {
},
created: function created() {
// 添加到原型链
- RouterTab.Vue.prototype.$routerTab = this;
+ RouterTab.Vue.prototype.$tabs = this;
},
destroyed: function destroyed() {
var proto = RouterTab.Vue.prototype; // 取消原型挂载
- if (proto.$routerTab === this) {
- proto.$routerTab = null;
+ if (proto.$tabs === this) {
+ proto.$tabs = null;
}
},
methods: {
@@ -3382,20 +3784,12 @@ var RouterTab = {
/* harmony default export */ var RouterTabvue_type_script_lang_js_ = (RouterTab);
// CONCATENATED MODULE: ./lib/RouterTab.js?vue&type=script&lang=js&
/* harmony default export */ var lib_RouterTabvue_type_script_lang_js_ = (RouterTabvue_type_script_lang_js_);
-// EXTERNAL MODULE: ./lib/scss/routerTab.scss?vue&type=style&index=0&lang=scss&
-var routerTabvue_type_style_index_0_lang_scss_ = __webpack_require__("cec0");
-
-// EXTERNAL MODULE: ./lib/scss/transition.scss?vue&type=style&index=1&lang=scss&
-var transitionvue_type_style_index_1_lang_scss_ = __webpack_require__("ea7e");
-
// CONCATENATED MODULE: ./lib/RouterTab.vue
-
-
/* normalize component */
var RouterTab_component = normalizeComponent(
@@ -3410,12 +3804,12 @@ var RouterTab_component = normalizeComponent(
)
/* harmony default export */ var lib_RouterTab = (RouterTab_component.exports);
-// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"0d070753-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!./lib/page/Iframe.vue?vue&type=template&id=f9e4f0ec&
-var Iframevue_type_template_id_f9e4f0ec_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"router-tab-iframe-fake"})}
-var Iframevue_type_template_id_f9e4f0ec_staticRenderFns = []
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"04e48bad-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!./lib/page/Iframe.vue?vue&type=template&id=28764eeb&
+var Iframevue_type_template_id_28764eeb_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"router-tab-iframe-fake"})}
+var Iframevue_type_template_id_28764eeb_staticRenderFns = []
-// CONCATENATED MODULE: ./lib/page/Iframe.vue?vue&type=template&id=f9e4f0ec&
+// CONCATENATED MODULE: ./lib/page/Iframe.vue?vue&type=template&id=28764eeb&
// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./lib/page/Iframe.vue?vue&type=script&lang=js&
@@ -3428,10 +3822,10 @@ function Iframevue_type_script_lang_js_asyncToGenerator(fn) { return function ()
//
//
//
-// iframe 页签页面
+// Iframe 页签页面
/* harmony default export */ var Iframevue_type_script_lang_js_ = ({
name: 'Iframe',
- inject: ['RouterTab'],
+ inject: ['$tabs'],
props: {
src: String,
title: String,
@@ -3453,24 +3847,24 @@ function Iframevue_type_script_lang_js_asyncToGenerator(fn) { return function ()
var _this = this;
return Iframevue_type_script_lang_js_asyncToGenerator( /*#__PURE__*/regenerator_default.a.mark(function _callee() {
- var url, $tab, iframes;
+ var url, $tabs, iframes;
return regenerator_default.a.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
- url = _this.url, $tab = _this.RouterTab;
- iframes = $tab.iframes;
+ url = _this.url, $tabs = _this.$tabs;
+ iframes = $tabs.iframes;
if (!iframes.includes(url)) {
iframes.push(url);
}
- $tab.currentIframe = url;
+ $tabs.currentIframe = url;
_context.next = 6;
return _this.$nextTick();
case 6:
- _this.RouterTab.iframeMounted(url);
+ _this.$tabs.iframeMounted(url);
case 7:
case "end":
@@ -3481,15 +3875,15 @@ function Iframevue_type_script_lang_js_asyncToGenerator(fn) { return function ()
}))();
},
activated: function activated() {
- this.RouterTab.currentIframe = this.url;
+ this.$tabs.currentIframe = this.url;
},
deactivated: function deactivated() {
- this.RouterTab.currentIframe = null;
+ this.$tabs.currentIframe = null;
},
// 组件销毁后移除 iframe
destroyed: function destroyed() {
var url = this.url;
- var iframes = this.RouterTab.iframes;
+ var iframes = this.$tabs.iframes;
var index = iframes.indexOf(url);
if (index > -1) {
@@ -3509,8 +3903,8 @@ function Iframevue_type_script_lang_js_asyncToGenerator(fn) { return function ()
var Iframe_component = normalizeComponent(
page_Iframevue_type_script_lang_js_,
- Iframevue_type_template_id_f9e4f0ec_render,
- Iframevue_type_template_id_f9e4f0ec_staticRenderFns,
+ Iframevue_type_template_id_28764eeb_render,
+ Iframevue_type_template_id_28764eeb_staticRenderFns,
false,
null,
null,
@@ -3519,7 +3913,7 @@ var Iframe_component = normalizeComponent(
)
/* harmony default export */ var Iframe = (Iframe_component.exports);
-// CONCATENATED MODULE: ./lib/util/routes.js
+// CONCATENATED MODULE: ./lib/config/routes.js
// 注入的路由
/* harmony default export */ var routes = ([{
@@ -3540,37 +3934,81 @@ var Iframe_component = normalizeComponent(
}
}]);
// CONCATENATED MODULE: ./lib/mixins/routerPage.js
-// 路由页面混入
+ // 浏览器窗口关闭或者刷新
+
+var beforeunload = function beforeunload($tabs, tabId, beforePageLeave) {
+ return function (e) {
+ if (!$tabs && $tabs._isDestroyed) return;
+ var tab = $tabs.items.find(function (item) {
+ return item.id === tabId;
+ });
+ var msg = beforePageLeave(tab, 'unload');
+
+ if (msg && typeof msg === 'string') {
+ e.preventDefault();
+ e.returnValue = msg; // 非当前页签则切换
+
+ if ($tabs.activeTabId !== tabId) {
+ $tabs.open(tab.to, false, false);
+ }
+
+ return msg;
+ }
+ };
+}; // 路由页面混入
+
+
/* harmony default export */ var routerPage = ({
- // 创建前记录缓存
- mounted: function mounted() {
+ watch: {
// 监听 routerTab 字段,更新页签信息
- this.$watch('routeTab', function (val) {
- if (!val) return;
- var tab = typeof val === 'string' ? {
- title: val
- } : val;
-
- var _ref = this.$routerTab || {},
- activeTab = _ref.activeTab;
-
- if (tab && activeTab) {
- for (var key in tab) {
- if (!['id', 'to'].includes(key)) {
- this.$set(activeTab, key, tab[key]);
+ routeTab: {
+ handler: function handler(val) {
+ if (!val) return;
+ var tab = typeof val === 'string' ? {
+ title: val
+ } : val;
+
+ var _ref = this.$tabs || emptyObj,
+ activeTab = _ref.activeTab;
+
+ if (tab && activeTab) {
+ for (var key in tab) {
+ if (!['id', 'to'].includes(key)) {
+ this.$set(activeTab, key, tab[key]);
+ }
}
}
- }
- }, {
+ },
deep: true,
immediate: true
- });
+ }
+ },
+ // 创建前记录缓存
+ mounted: function mounted() {
+ var $tabs = this.$tabs;
+
+ var _ref2 = this.$vnode && this.$vnode.componentOptions.Ctor.options || emptyObj,
+ beforePageLeave = _ref2.beforePageLeave; // 页面离开确认
+
+
+ if ($tabs && beforePageLeave) {
+ window.addEventListener('beforeunload', this._beforeunload = beforeunload($tabs, $tabs.activeTabId, beforePageLeave.bind(this)));
+ }
+ },
+ destroyed: function destroyed() {
+ if (this._beforeunload) {
+ window.removeEventListener('beforeunload', this._beforeunload);
+ }
}
});
+// EXTERNAL MODULE: ./lib/scss/routerTab.scss
+var routerTab = __webpack_require__("751c");
+
// CONCATENATED MODULE: ./lib/index.js
+
// 安装
lib_RouterTab.install = function install(Vue) {
diff --git a/dist/lib/vue-router-tab.umd.js.map b/dist/lib/vue-router-tab.umd.js.map
index 89faba4e..f4966d7c 100644
--- a/dist/lib/vue-router-tab.umd.js.map
+++ b/dist/lib/vue-router-tab.umd.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack://vue-router-tab/webpack/universalModuleDefinition","webpack://vue-router-tab/webpack/bootstrap","webpack://vue-router-tab/./lib/scss/routerTab.scss?1dc1","webpack://vue-router-tab/./node_modules/@soda/get-current-script/index.js","webpack://vue-router-tab/./node_modules/regenerator-runtime/runtime.js","webpack://vue-router-tab/./node_modules/@babel/runtime/regenerator/index.js","webpack://vue-router-tab/./lib/scss/routerTab.scss?211b","webpack://vue-router-tab/./lib/scss/transition.scss?263f","webpack://vue-router-tab/./lib/scss/transition.scss?02bc","webpack://vue-router-tab/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://vue-router-tab/./lib/RouterTab.vue?237a","webpack://vue-router-tab/./lib/util/index.js","webpack://vue-router-tab/./lib/mixins/contextmenu.js","webpack://vue-router-tab/./lib/lang/zh-CN.js","webpack://vue-router-tab/./lib/lang/en.js","webpack://vue-router-tab/./lib/lang/index.js","webpack://vue-router-tab/./lib/util/warn.js","webpack://vue-router-tab/./lib/mixins/i18n.js","webpack://vue-router-tab/./lib/mixins/iframe.js","webpack://vue-router-tab/./lib/mixins/operate.js","webpack://vue-router-tab/./lib/mixins/pageLeave.js","webpack://vue-router-tab/./lib/mixins/scroll.js","webpack://vue-router-tab/./lib/mixins/restore.js","webpack://vue-router-tab/./lib/components/RouterAlive.vue?0eff","webpack://vue-router-tab/./lib/util/RouteMatch.js","webpack://vue-router-tab/lib/components/RouterAlive.vue","webpack://vue-router-tab/./lib/components/RouterAlive.vue?534a","webpack://vue-router-tab/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://vue-router-tab/./lib/components/RouterAlive.vue","webpack://vue-router-tab/./lib/components/TabItem.vue?82f0","webpack://vue-router-tab/lib/components/TabItem.vue","webpack://vue-router-tab/./lib/components/TabItem.vue?9042","webpack://vue-router-tab/./lib/components/TabItem.vue","webpack://vue-router-tab/./lib/components/TabScroll.vue?d0be","webpack://vue-router-tab/lib/components/TabScroll.vue","webpack://vue-router-tab/./lib/components/TabScroll.vue?c598","webpack://vue-router-tab/./lib/components/TabScroll.vue","webpack://vue-router-tab/./lib/RouterTab.js","webpack://vue-router-tab/./lib/RouterTab.js?7483","webpack://vue-router-tab/./lib/RouterTab.vue","webpack://vue-router-tab/./lib/page/Iframe.vue?0916","webpack://vue-router-tab/lib/page/Iframe.vue","webpack://vue-router-tab/./lib/page/Iframe.vue?e146","webpack://vue-router-tab/./lib/page/Iframe.vue","webpack://vue-router-tab/./lib/util/routes.js","webpack://vue-router-tab/./lib/mixins/routerPage.js","webpack://vue-router-tab/./lib/index.js","webpack://vue-router-tab/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"names":["module","exports","require","emptyObj","Object","create","emptyArray","remove","arr","item","length","index","indexOf","splice","debounce","fn","delay","timeout","context","args","arguments","clearTimeout","setTimeout","call","scrollTo","wrap","left","top","smooth","behavior","scrollLeft","scrollTop","scrollIntoView","el","block","inline","offsetLeft","offsetTop","clientHeight","clientWidth","mapGetters","prop","keys","map","forEach","key","prunePath","path","split","getTransOpt","trans","name","data","contextmenu","id","computed","isContextTabCanBeClosed","items","contextTab","closable","tabsLeft","slice","filter","tabsRight","tabsOther","tid","watch","$route","hideContextmenu","val","old","document","addEventListener","onClick","e","target","$el","querySelector","removeEventListener","methods","showContextmenu","clientY","clientX","assign","closeMulti","tabs","$router","nextTab","find","removeTab","findIndex","activeTabId","replace","to","tab","untitled","refresh","refreshAll","close","closeLefts","closeRights","closeOthers","msg","keepLastTab","i18nProp","zhCN","en","prefix","assert","condition","message","Error","warn","console","messages","renamed","newName","lang","language","langs","i18nText","text","i18nParse","params","hasI18nProp","i18n","_hasI18nPropWarn","res","exec","Array","isArray","iframes","currentIframe","iframeNamePrefix","getIframePath","src","title","icon","basePath","encodeURIComponent","openIframe","push","closeIframe","match","refreshIframe","getIframeEl","url","getElementsByName","iframeMounted","iframe","$emit","iframeLoaded","getCloseArgs","from","argsLen","arg","fullPath","query","hash","equalPath","path1","path2","reg","open","isReplace","curId","tarId","getRouteKey","isSameTab","reload","force","idx","pageLeavePromise","$alive","getIdByPath","defaultPath","closeTab","undefined","refreshTab","cache","reset","clearTabsStore","initTabs","created","_RouterTabInit","beforeEach","leaveGuard","type","Promise","resolve","reject","vm","beforePageLeave","$vnode","componentOptions","Ctor","options","bind","router","next","app","$routerTab","fromId","toId","alivePath","matched","matchRoute","then","catch","handler","$nextTick","adjust","immediate","mounted","window","onResize","destroyed","scroll","$refs","cur","isInView","restoreKey","restore","sessionStorage","saveTabs","restoreWatch","activeTab","setItem","JSON","stringify","removeItem","restoreTabs","getItem","hasStore","parse","presetTabs","rules","route","fullpath","parseRouteKey","defaultKey","rule","toLowerCase","parsePath","RouteMatch","currentRoute","_$route","routeIndex","baseRoute","nest","meta","keepAlive","reuse","RouterTab","mixins","operate","pageLeave","components","RouterAlive","TabItem","TabScroll","provide","props","default","Boolean","String","defaultPage","Function","maxAlive","Number","tabTransition","pageTransition","mode","loading","aliveReady","routerAlive","tabTrans","pageTrans","Vue","prototype","proto","onAliveReady","ids","getRouteTab","onAliveChange","matchIdx","$set","i","includes","matchTab","component","Iframe","$watch","deep","install","installed","mixin","routerPage","use"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;AClFA,uC;;;;;;;ACAA;AACA;AACA;;AAEA;;AAEA;AACA,MAAM,IAA0C;AAChD,IAAI,iCAAO,EAAE,oCAAE,OAAO;AAAA;AAAA;AAAA,oGAAC;AACvB,GAAG,MAAM,EAIN;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;;AAE1D;AACA;AACA,+DAA+D,qBAAqB;AACpF;AACA;;AAEA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;AC9ED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,kBAAkB;AACnD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8CAA8C,QAAQ;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE,KAA0B,oBAAoB,SAAE;AAClD;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACxtBAA,MAAM,CAACC,OAAP,GAAiBC,mBAAO,CAAC,MAAD,CAAxB,C;;;;;;;;ACAA;AAAA;AAAA;AAA0Y,CAAgB,+bAAG,EAAC,C;;;;;;;;ACA9Z;AAAA;AAAA;AAA2Y,CAAgB,gcAAG,EAAC,C;;;;;;;ACA/Z,uC;;;;;;;;;;;;;;;;ACAA;;AAEA;AACA;AACA,MAAM,IAAuC;AAC7C,2BAA2B,mBAAO,CAA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;AAAA;AAAA;;AACA;AACA;AACA;AAEA;;AACA;;AAEA;AACA;AACA,OAVA;AAWA,KA9CA;AAgDA;AACA,WAjDA,qBAiDA;AAAA;AACA,uBADA,CAGA;;AACA;AACA;AACA;AACA,KAxDA;AA0DA;AACA,UA3DA,oBA2DA;AACA;AAEA;AACA,KA/DA;AAiEA;AACA,YAlEA,oBAkEA,IAlEA,EAkEA;AACA;AACA;AACA,KArEA;AAuEA;AACA,sBAxEA,6BAwEA;AACA;AACA,iCADA;AAEA;AAFA;AAIA,KA7EA;AA+EA;AACA,sBAhFA,6BAgFA;AAAA,UACA,IADA,GACA,UADA,CACA,IADA;AAGA;AACA,KApFA;AAsFA;AACA,wBAvFA,+BAuFA;AACA;AACA;AACA;AACA;AACA;AACA,KA7FA;AA+FA;AACA,wBAhGA,+BAgGA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACA,kBADA;;AAAA;AAAA,oBAGA,YAHA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAKA;AACA;AAAA;AAAA;AAAA;;AAAA,8BACA,UADA;AAAA,sBACA,EADA,SACA,EADA;;AAEA;AACA;AACA;AACA,iBALA;;AANA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA,KA5GA;AA8GA;AACA,iBA/GA,2BA+GA;AACA;AACA;AACA;AACA;AACA,KApHA;AAsHA;AACA,cAvHA,sBAuHA,MAvHA,EAuHA;AACA,gCADA,CAGA;;AACA,UACA,0BACA,wCADA,IAEA,+BAHA,EAIA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAzIA;AApJA,G;;AC1CqU,CAAgB,sHAAG,EAAC,C;;ACAzV;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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","file":"vue-router-tab.umd.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vue-router-tab\"] = factory();\n\telse\n\t\troot[\"vue-router-tab\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n","// extracted by mini-css-extract-plugin","// addapted from the document.currentScript polyfill by Adam Miller\n// MIT license\n// source: https://github.com/amiller-gh/currentScript-polyfill\n\n// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = factory();\n } else {\n root.getCurrentScript = factory();\n }\n}(typeof self !== 'undefined' ? self : this, function () {\n function getCurrentScript () {\n var descriptor = Object.getOwnPropertyDescriptor(document, 'currentScript')\n // for chrome\n if (!descriptor && 'currentScript' in document && document.currentScript) {\n return document.currentScript\n }\n\n // for other browsers with native support for currentScript\n if (descriptor && descriptor.get !== getCurrentScript && document.currentScript) {\n return document.currentScript\n }\n \n // IE 8-10 support script readyState\n // IE 11+ & Firefox support stack trace\n try {\n throw new Error();\n }\n catch (err) {\n // Find the second match for the \"at\" string to get file src url from stack.\n var ieStackRegExp = /.*at [^(]*\\((.*):(.+):(.+)\\)$/ig,\n ffStackRegExp = /@([^@]*):(\\d+):(\\d+)\\s*$/ig,\n stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),\n scriptLocation = (stackDetails && stackDetails[1]) || false,\n line = (stackDetails && stackDetails[2]) || false,\n currentLocation = document.location.href.replace(document.location.hash, ''),\n pageSource,\n inlineScriptSourceRegExp,\n inlineScriptSource,\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n \n if (scriptLocation === currentLocation) {\n pageSource = document.documentElement.outerHTML;\n inlineScriptSourceRegExp = new RegExp('(?:[^\\\\n]+?\\\\n){0,' + (line - 2) + '}[^<]*\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RouterAlive.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RouterAlive.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./RouterAlive.vue?vue&type=template&id=ffca4b3e&\"\nimport script from \"./RouterAlive.vue?vue&type=script&lang=js&\"\nexport * from \"./RouterAlive.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-link',{class:( _obj = {\n 'router-tab__item': true\n }, _obj[_vm.tabClass || ''] = true, _obj['is-active'] = _vm.RouterTab.activeTabId === _vm.id, _obj['is-closable'] = _vm.closable, _obj['is-contextmenu'] = _vm.RouterTab.contextmenu.id === _vm.id, _obj ),attrs:{\"tag\":\"li\",\"to\":_vm.to}},[_vm._t(\"default\",[(_vm.icon)?_c('i',{staticClass:\"router-tab__item-icon\",class:_vm.icon}):_vm._e(),_c('span',{staticClass:\"router-tab__item-title\",attrs:{\"title\":_vm.tips}},[_vm._v(_vm._s(_vm.title))]),(_vm.closable)?_c('i',{staticClass:\"router-tab__item-close\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.close($event)}}}):_vm._e()],null,this)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n {{ title }}\r\n \r\n \r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TabItem.vue?vue&type=template&id=64b9760c&\"\nimport script from \"./TabItem.vue?vue&type=script&lang=js&\"\nexport * from \"./TabItem.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"router-tab__scroll\",on:{\"wheel\":function($event){$event.preventDefault();return _vm.onWheel($event)},\"mouseenter\":_vm.update}},[_c('div',{ref:\"container\",staticClass:\"router-tab__scroll-container\",class:{ 'is-mobile': _vm.isMobile },on:{\"scroll\":_vm.update}},[_vm._t(\"default\")],2),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasScroller),expression:\"hasScroller\"}],ref:\"bar\",staticClass:\"router-tab__scrollbar\",class:{ 'is-dragging': _vm.dragData }},[_c('div',{ref:\"thumb\",staticClass:\"router-tab__scrollbar-thumb\",style:((\"width: \" + _vm.thumbWidth + \"px; transform: translateX(\" + _vm.thumbLeft + \"px)\")),on:{\"mousedown\":function($event){$event.preventDefault();return _vm.onDragStart($event)}}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabScroll.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabScroll.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TabScroll.vue?vue&type=template&id=0741803e&\"\nimport script from \"./TabScroll.vue?vue&type=script&lang=js&\"\nexport * from \"./TabScroll.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// 方法\r\nimport { emptyObj, prunePath, getTransOpt } from './util'\r\n\r\n// 功能模块混入\r\nimport contextmenu from './mixins/contextmenu'\r\nimport i18n from './mixins/i18n'\r\nimport iframe from './mixins/iframe'\r\nimport operate from './mixins/operate'\r\nimport pageLeave from './mixins/pageLeave'\r\nimport scroll from './mixins/scroll'\r\nimport restore from './mixins/restore'\r\n\r\n// 子组件\r\nimport RouterAlive from './components/RouterAlive.vue'\r\nimport TabItem from './components/TabItem.vue'\r\nimport TabScroll from './components/TabScroll.vue'\r\n\r\n// RouterTab 组件\r\nconst RouterTab = {\r\n name: 'RouterTab',\r\n mixins: [contextmenu, i18n, iframe, operate, pageLeave, scroll, restore],\r\n components: { RouterAlive, TabItem, TabScroll },\r\n\r\n // 注入子组件\r\n provide() {\r\n return { RouterTab: this }\r\n },\r\n\r\n props: {\r\n // 初始页签数据\r\n tabs: {\r\n type: Array,\r\n default: () => []\r\n },\r\n\r\n // 页面刷新后是否恢复页签\r\n restore: {\r\n type: [Boolean, String],\r\n default: false\r\n },\r\n\r\n // 是否监听 restoreKey 变化自动还原页签\r\n restoreWatch: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n // 是否保留最后一个页签不被关闭\r\n keepLastTab: {\r\n type: Boolean,\r\n default: true\r\n },\r\n\r\n // 默认页面\r\n defaultPage: [String, Object],\r\n\r\n // 页签国际化配置 i18n (key, [args])\r\n i18n: Function,\r\n\r\n /**\r\n * 组件语言\r\n * - 为字符串时,可以设置为内置的语言 'zh-CN' (默认) 和 'en'\r\n * - 为对象时,可设置自定义的语言\r\n */\r\n language: {\r\n type: [String, Object],\r\n default: 'zh-CN'\r\n },\r\n\r\n // 默认是否缓存,可通过路由 meta.keepAlive 重置\r\n keepAlive: {\r\n type: Boolean,\r\n default: true\r\n },\r\n\r\n // 最大缓存数,0 则不限制\r\n maxAlive: {\r\n type: Number,\r\n default: 0\r\n },\r\n\r\n // 是否复用路由组件,可通过路由 meta.reuse 重置\r\n reuse: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n // 页签过渡效果\r\n tabTransition: {\r\n type: [String, Object],\r\n default: 'router-tab-zoom'\r\n },\r\n\r\n // 页面过渡效果\r\n pageTransition: {\r\n type: [String, Object],\r\n default: () => ({\r\n name: 'router-tab-swap',\r\n mode: 'out-in'\r\n })\r\n }\r\n },\r\n\r\n data() {\r\n return {\r\n items: [], // 页签项\r\n loading: false, // 路由页面 loading\r\n aliveReady: false // RouterAlive 初始化\r\n }\r\n },\r\n\r\n computed: {\r\n // routerAlive\r\n $alive() {\r\n return this.aliveReady ? this.$refs.routerAlive : null\r\n },\r\n\r\n // 当前激活的页签 id\r\n activeTabId() {\r\n return this.$alive ? this.$alive.key : null\r\n },\r\n\r\n // 当前激活的页签\r\n activeTab() {\r\n return this.items.find(item => item.id === this.activeTabId)\r\n },\r\n\r\n // 根路径\r\n basePath() {\r\n return this.$alive ? this.$alive.basePath : '/'\r\n },\r\n\r\n // 默认路径\r\n defaultPath() {\r\n return this.defaultPage || this.basePath || '/'\r\n },\r\n\r\n // 页签过渡\r\n tabTrans() {\r\n return getTransOpt(this.tabTransition)\r\n },\r\n\r\n // 页面过渡\r\n pageTrans() {\r\n return getTransOpt(this.pageTransition)\r\n }\r\n },\r\n\r\n watch: {\r\n // 路由切换更新激活的页签\r\n $route() {\r\n this.loading = false\r\n }\r\n },\r\n\r\n created() {\r\n // 添加到原型链\r\n RouterTab.Vue.prototype.$routerTab = this\r\n },\r\n\r\n destroyed() {\r\n const proto = RouterTab.Vue.prototype\r\n // 取消原型挂载\r\n if (proto.$routerTab === this) {\r\n proto.$routerTab = null\r\n }\r\n },\r\n\r\n methods: {\r\n // RouterAlive 组件就绪\r\n onAliveReady($alive) {\r\n // 获取 keepAlive 组件实例\r\n this.$refs.routerAlive = $alive\r\n this.aliveReady = true\r\n this.initTabs()\r\n },\r\n\r\n // 初始页签数据\r\n initTabs() {\r\n if (this.restoreTabs()) return\r\n\r\n this.presetTabs()\r\n },\r\n\r\n // 预设页签\r\n presetTabs(tabs = this.tabs) {\r\n let ids = {}\r\n\r\n this.items = tabs\r\n .map(item => {\r\n item = typeof item === 'string' ? { to: item } : item || emptyObj\r\n\r\n const matched = item.to && this.matchRoute(item.to)\r\n\r\n if (matched) {\r\n const tab = this.getRouteTab(matched)\r\n const id = tab.id\r\n\r\n // 根据 id 去重\r\n if (!ids[id]) {\r\n // id 不允许更改\r\n delete item.id\r\n\r\n // 初始 tab 数据\r\n return (ids[id] = Object.assign(tab, item))\r\n }\r\n }\r\n })\r\n .filter(item => !!item)\r\n },\r\n\r\n // RouterAlive 缓存更新时同步更改页签\r\n onAliveChange(type, matched) {\r\n const { items } = this\r\n const matchIdx = items.findIndex(({ id }) => id === matched.key)\r\n const item = this.getRouteTab(matched)\r\n\r\n // 页签已存在\r\n if (matchIdx > -1) {\r\n if (\r\n type === 'create' || // 创建缓存\r\n (type === 'update' && items[matchIdx].to !== matched.$route.fullPath) // 更新缓存且地址更改\r\n ) {\r\n // 替换原页签\r\n this.$set(items, matchIdx, item)\r\n }\r\n } else {\r\n // 新增页签\r\n items.push(item)\r\n }\r\n },\r\n\r\n // 从 route 中获取 tab 配置\r\n getRouteTab({ key, $route, meta }) {\r\n const tab = { ...meta }\r\n\r\n // 支持根据路由函数返回的页签属性\r\n const props = ['title', 'tips', 'icon', 'closable']\r\n\r\n for (let i in tab) {\r\n if (props.includes(i)) {\r\n const val = tab[i]\r\n if (typeof val === 'function') {\r\n tab[i] = val($route)\r\n }\r\n }\r\n }\r\n\r\n return Object.assign(tab, {\r\n id: key,\r\n to: $route.fullPath\r\n })\r\n },\r\n\r\n // 重载路由视图\r\n async reload() {\r\n this.$alive.reload()\r\n },\r\n\r\n // 匹配路由信息\r\n matchRoute($route) {\r\n return this.$alive.matchRoute($route)\r\n },\r\n\r\n // 获取路由缓存 key\r\n getRouteKey(route = this.$route) {\r\n return this.matchRoute(route).key\r\n },\r\n\r\n // 从路由地址匹配页签 id\r\n getIdByPath(path, match = true) {\r\n if (!path) return\r\n\r\n const matched = this.matchRoute(path)\r\n const { key } = matched\r\n\r\n if (match) {\r\n // 路由地址精确匹配页签\r\n const matchTab = this.items.find(\r\n ({ to }) => prunePath(to) === prunePath(matched.$route.fullPath)\r\n )\r\n\r\n if (matchTab) {\r\n return key\r\n }\r\n }\r\n\r\n return key\r\n }\r\n }\r\n}\r\n\r\nexport default RouterTab\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/eslint-loader/index.js??ref--13-0!./RouterTab.js?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/eslint-loader/index.js??ref--13-0!./RouterTab.js?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RouterTab.vue?vue&type=template&id=4af9cf8f&\"\nimport script from \"./RouterTab.js?vue&type=script&lang=js&\"\nexport * from \"./RouterTab.js?vue&type=script&lang=js&\"\nimport style0 from \"./scss/routerTab.scss?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./scss/transition.scss?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"router-tab-iframe-fake\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Iframe.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Iframe.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Iframe.vue?vue&type=template&id=f9e4f0ec&\"\nimport script from \"./Iframe.vue?vue&type=script&lang=js&\"\nexport * from \"./Iframe.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Iframe from '../page/Iframe.vue'\r\n\r\n// 注入的路由\r\nexport default [\r\n {\r\n // iframe 路由\r\n path: 'iframe/:src/:title?/:icon?',\r\n component: Iframe,\r\n props: true,\r\n meta: {\r\n key: route => `iframe-${route.params.src}`,\r\n title: route => route.params.title,\r\n icon: route => route.params.icon\r\n }\r\n }\r\n]\r\n","// 路由页面混入\r\nexport default {\r\n // 创建前记录缓存\r\n mounted() {\r\n // 监听 routerTab 字段,更新页签信息\r\n this.$watch(\r\n 'routeTab',\r\n function(val) {\r\n if (!val) return\r\n\r\n const tab = typeof val === 'string' ? { title: val } : val\r\n const { activeTab } = this.$routerTab || {}\r\n\r\n if (tab && activeTab) {\r\n for (const key in tab) {\r\n if (!['id', 'to'].includes(key)) {\r\n this.$set(activeTab, key, tab[key])\r\n }\r\n }\r\n }\r\n },\r\n {\r\n deep: true,\r\n immediate: true\r\n }\r\n )\r\n }\r\n}\r\n","import RouterTab from './RouterTab.vue'\r\nimport RouterAlive from './components/RouterAlive.vue'\r\nimport RouterTabRoutes from './util/routes'\r\nimport routerPage from './mixins/routerPage'\r\n\r\n// 安装\r\nRouterTab.install = function install(Vue) {\r\n if (install.installed) return\r\n\r\n RouterTab.Vue = Vue\r\n install.installed = true\r\n\r\n Vue.component(RouterTab.name, RouterTab)\r\n Vue.mixin(routerPage)\r\n}\r\n\r\n// 如果浏览器环境且拥有全局Vue,则自动安装组件\r\nif (typeof window !== 'undefined' && window.Vue) {\r\n window.Vue.use(RouterTab)\r\n}\r\n\r\nexport default RouterTab\r\n\r\n// 导出\r\nexport { RouterAlive, RouterTabRoutes }\r\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack://vue-router-tab/webpack/universalModuleDefinition","webpack://vue-router-tab/webpack/bootstrap","webpack://vue-router-tab/./lib/config/lang/en.js","webpack://vue-router-tab/./lib/scss/routerTab.scss?bfeb","webpack://vue-router-tab/./lib/config/lang/zh-CN.js","webpack://vue-router-tab/./node_modules/@soda/get-current-script/index.js","webpack://vue-router-tab/./node_modules/regenerator-runtime/runtime.js","webpack://vue-router-tab/./node_modules/@babel/runtime/regenerator/index.js","webpack://vue-router-tab/index).)*\\.js$","webpack://vue-router-tab/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://vue-router-tab/./lib/RouterTab.vue?b44c","webpack://vue-router-tab/./lib/util/index.js","webpack://vue-router-tab/./lib/mixins/contextmenu.js","webpack://vue-router-tab/./lib/config/lang/index.js","webpack://vue-router-tab/./lib/util/warn.js","webpack://vue-router-tab/./lib/mixins/i18n.js","webpack://vue-router-tab/./lib/mixins/iframe.js","webpack://vue-router-tab/./lib/mixins/operate.js","webpack://vue-router-tab/./lib/mixins/pageLeave.js","webpack://vue-router-tab/./lib/mixins/scroll.js","webpack://vue-router-tab/./lib/mixins/restore.js","webpack://vue-router-tab/./lib/components/RouterAlive.vue?10ce","webpack://vue-router-tab/./lib/config/rules.js","webpack://vue-router-tab/./lib/util/RouteMatch.js","webpack://vue-router-tab/lib/components/RouterAlive.vue","webpack://vue-router-tab/./lib/components/RouterAlive.vue?534a","webpack://vue-router-tab/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://vue-router-tab/./lib/components/RouterAlive.vue","webpack://vue-router-tab/./lib/components/TabItem.vue?8a16","webpack://vue-router-tab/lib/components/TabItem.vue","webpack://vue-router-tab/./lib/components/TabItem.vue?9042","webpack://vue-router-tab/./lib/components/TabItem.vue","webpack://vue-router-tab/./lib/components/TabScroll.vue?2a80","webpack://vue-router-tab/lib/components/TabScroll.vue","webpack://vue-router-tab/./lib/components/TabScroll.vue?c598","webpack://vue-router-tab/./lib/components/TabScroll.vue","webpack://vue-router-tab/./lib/components/Contextmenu.vue?b5dc","webpack://vue-router-tab/./lib/components/ContextmenuItem.vue?16a3","webpack://vue-router-tab/lib/components/ContextmenuItem.vue","webpack://vue-router-tab/./lib/components/ContextmenuItem.vue?b70f","webpack://vue-router-tab/./lib/components/ContextmenuItem.vue","webpack://vue-router-tab/./lib/config/contextmenu.js","webpack://vue-router-tab/lib/components/Contextmenu.vue","webpack://vue-router-tab/./lib/components/Contextmenu.vue?1c4f","webpack://vue-router-tab/./lib/components/Contextmenu.vue","webpack://vue-router-tab/./lib/RouterTab.js","webpack://vue-router-tab/./lib/RouterTab.js?7483","webpack://vue-router-tab/./lib/RouterTab.vue","webpack://vue-router-tab/./lib/page/Iframe.vue?faca","webpack://vue-router-tab/lib/page/Iframe.vue","webpack://vue-router-tab/./lib/page/Iframe.vue?e146","webpack://vue-router-tab/./lib/page/Iframe.vue","webpack://vue-router-tab/./lib/config/routes.js","webpack://vue-router-tab/./lib/mixins/routerPage.js","webpack://vue-router-tab/./lib/index.js","webpack://vue-router-tab/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"names":["tab","untitled","contextmenu","refresh","refreshAll","close","closeLefts","closeRights","closeOthers","msg","keepLastTab","i18nProp","module","exports","require","emptyObj","Object","create","emptyArray","remove","arr","item","length","index","indexOf","splice","debounce","fn","delay","timeout","context","args","arguments","clearTimeout","setTimeout","call","scrollTo","wrap","left","top","smooth","behavior","scrollLeft","scrollTop","scrollIntoView","el","block","inline","offsetLeft","offsetTop","clientHeight","clientWidth","mapGetters","origin","props","map","each","prop","option","default","def","alias","val","undefined","bind","Array","isArray","forEach","entries","prunePath","path","split","getTransOpt","trans","name","data","contextData","id","computed","contextMenu","watch","$route","hideContextmenu","old","document","addEventListener","onClick","e","target","$el","querySelector","removeEventListener","methods","showContextmenu","clientY","clientX","assign","keys","reduce","exec","key","prefix","assert","condition","message","Error","warn","console","messages","renamed","newName","lang","language","langs","i18nText","text","i18nParse","params","hasI18nProp","i18n","_hasI18nPropWarn","res","iframes","currentIframe","iframeNamePrefix","getIframePath","src","title","icon","basePath","replace","encodeURIComponent","openIframe","$router","push","closeIframe","match","refreshIframe","getIframeEl","url","getElementsByName","iframeMounted","iframe","$emit","iframeLoaded","getCloseArgs","from","argsLen","arg","fullPath","query","hash","to","equalPath","path1","path2","reg","open","isReplace","curId","activeTabId","tarId","getRouteKey","isSameTab","reload","removeTab","force","items","idx","findIndex","leavePage","$alive","getIdByPath","nextTab","defaultPath","closeTab","refreshTab","cache","reset","clearTabsStore","initTabs","leaveGuard","router","next","$tabs","app","toId","alivePath","matched","matchRoute","type","then","catch","created","_RouterTabInit","beforeEach","find","vm","pageLeave","$vnode","componentOptions","Ctor","options","beforePageLeave","handler","$nextTick","adjust","immediate","mounted","window","onResize","destroyed","scroll","$refs","cur","isInView","restoreKey","restore","sessionStorage","saveTabs","restoreWatch","activeTab","setItem","JSON","stringify","removeItem","restoreTabs","tabs","getItem","hasStore","parse","presetTabs","route","fullpath","parseRouteKey","defaultKey","rule","rules","toLowerCase","parsePath","RouteMatch","currentRoute","_$route","routeIndex","baseRoute","nest","meta","keepAlive","reuse","menuMap","enable","closable","$menu","lefts","closeMulti","rights","others","defaultMenu","RouterTab","mixins","operate","components","RouterAlive","TabItem","TabScroll","TabContextmenu","provide","Boolean","String","defaultPage","Function","maxAlive","Number","tabTransition","pageTransition","mode","loading","aliveReady","routerAlive","tabTrans","pageTrans","Vue","prototype","proto","onAliveReady","ids","getRouteTab","filter","onAliveChange","matchIdx","$set","i","includes","matchTab","component","Iframe","beforeunload","tabId","_isDestroyed","preventDefault","returnValue","routeTab","deep","_beforeunload","install","installed","mixin","routerPage","use"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;AClFA;AAAe;AACbA,KAAG,EAAE;AACHC,YAAQ,EAAE;AADP,GADQ;AAIbC,aAAW,EAAE;AACXC,WAAO,EAAE,SADE;AAEXC,cAAU,EAAE,aAFD;AAGXC,SAAK,EAAE,OAHI;AAIXC,cAAU,EAAE,mBAJD;AAKXC,eAAW,EAAE,oBALF;AAMXC,eAAW,EAAE;AANF,GAJA;AAYbC,KAAG,EAAE;AACHC,eAAW,EAAE,qBADV;AAEHC,YAAQ,EAAE;AAFP;AAZQ,CAAf,E;;;;;;;ACAA,uC;;;;;;;;ACAA;AAAe;AACbX,KAAG,EAAE;AACHC,YAAQ,EAAE;AADP,GADQ;AAIbC,aAAW,EAAE;AACXC,WAAO,EAAE,IADE;AAEXC,cAAU,EAAE,MAFD;AAGXC,SAAK,EAAE,IAHI;AAIXC,cAAU,EAAE,MAJD;AAKXC,eAAW,EAAE,MALF;AAMXC,eAAW,EAAE;AANF,GAJA;AAYbC,KAAG,EAAE;AACHC,eAAW,EAAE,WADV;AAEHC,YAAQ,EAAE;AAFP;AAZQ,CAAf,E;;;;;;;ACAA;AACA;AACA;;AAEA;;AAEA;AACA,MAAM,IAA0C;AAChD,IAAI,iCAAO,EAAE,oCAAE,OAAO;AAAA;AAAA;AAAA,oGAAC;AACvB,GAAG,MAAM,EAIN;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;;AAE1D;AACA;AACA,+DAA+D,qBAAqB;AACpF;AACA;;AAEA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;AC9ED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,kBAAkB;AACnD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8CAA8C,QAAQ;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AAC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,IANA,EAQA;;AACA;AACA;AACA;AACA;AACA,OAbA,CAeA;;;AACA;AAAA;AAAA;AAAA;;AACA;AACA;AACA;AAEA;;AACA;;AAEA;AACA;AACA,OAVA;AAWA,KA9CA;AAgDA;AACA,WAjDA,qBAiDA;AAAA;AACA,uBADA,CAGA;;AACA;AACA;AACA;AACA,KAxDA;AA0DA;AACA,UA3DA,oBA2DA;AACA;AAEA;AACA,KA/DA;AAiEA;AACA,YAlEA,oBAkEA,IAlEA,EAkEA;AACA;AACA;AACA,KArEA;AAuEA;AACA,sBAxEA,6BAwEA;AACA;AACA,iCADA;AAEA;AAFA;AAIA,KA7EA;AA+EA;AACA,sBAhFA,6BAgFA;AAAA,UACA,IADA,GACA,UADA,CACA,IADA;AAGA;AACA,KApFA;AAsFA;AACA,wBAvFA,+BAuFA;AACA;AACA;AACA;AACA;AACA;AACA,KA7FA;AA+FA;AACA,wBAhGA,+BAgGA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACA,kBADA;;AAAA;AAAA,oBAGA,YAHA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAKA;AACA;AAAA;AAAA;AAAA;;AAAA,8BACA,UADA;AAAA,sBACA,EADA,SACA,EADA;;AAEA;AACA;AACA;AACA,iBALA;;AANA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA,KA5GA;AA8GA;AACA,iBA/GA,2BA+GA;AACA;AACA;AACA;AACA;AACA,KApHA;AAsHA;AACA,cAvHA,sBAuHA,MAvHA,EAuHA;AACA,gCADA,CAGA;;AACA,UACA,0BACA,wCADA,IAEA,+BAHA,EAIA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AAzIA;AApJA,G;;AC1CqU,CAAgB,sHAAG,EAAC,C;;ACAzV;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA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","file":"vue-router-tab.umd.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vue-router-tab\"] = factory();\n\telse\n\t\troot[\"vue-router-tab\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n","export default {\r\n tab: {\r\n untitled: 'Untitled'\r\n },\r\n contextmenu: {\r\n refresh: 'Refresh',\r\n refreshAll: 'Refresh All',\r\n close: 'Close',\r\n closeLefts: 'Close to the Left',\r\n closeRights: 'Close to the Right',\r\n closeOthers: 'Close Others'\r\n },\r\n msg: {\r\n keepLastTab: 'Keep at least 1 tab',\r\n i18nProp: 'Method \"i18n\" is not defined on the instance'\r\n }\r\n}\r\n","// extracted by mini-css-extract-plugin","export default {\r\n tab: {\r\n untitled: '无标题'\r\n },\r\n contextmenu: {\r\n refresh: '刷新',\r\n refreshAll: '刷新全部',\r\n close: '关闭',\r\n closeLefts: '关闭左侧',\r\n closeRights: '关闭右侧',\r\n closeOthers: '关闭其他'\r\n },\r\n msg: {\r\n keepLastTab: '至少应保留1个页签',\r\n i18nProp: '请提供“i18n”方法以处理国际化内容'\r\n }\r\n}\r\n","// addapted from the document.currentScript polyfill by Adam Miller\n// MIT license\n// source: https://github.com/amiller-gh/currentScript-polyfill\n\n// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = factory();\n } else {\n root.getCurrentScript = factory();\n }\n}(typeof self !== 'undefined' ? self : this, function () {\n function getCurrentScript () {\n var descriptor = Object.getOwnPropertyDescriptor(document, 'currentScript')\n // for chrome\n if (!descriptor && 'currentScript' in document && document.currentScript) {\n return document.currentScript\n }\n\n // for other browsers with native support for currentScript\n if (descriptor && descriptor.get !== getCurrentScript && document.currentScript) {\n return document.currentScript\n }\n \n // IE 8-10 support script readyState\n // IE 11+ & Firefox support stack trace\n try {\n throw new Error();\n }\n catch (err) {\n // Find the second match for the \"at\" string to get file src url from stack.\n var ieStackRegExp = /.*at [^(]*\\((.*):(.+):(.+)\\)$/ig,\n ffStackRegExp = /@([^@]*):(\\d+):(\\d+)\\s*$/ig,\n stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),\n scriptLocation = (stackDetails && stackDetails[1]) || false,\n line = (stackDetails && stackDetails[2]) || false,\n currentLocation = document.location.href.replace(document.location.hash, ''),\n pageSource,\n inlineScriptSourceRegExp,\n inlineScriptSource,\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n \n if (scriptLocation === currentLocation) {\n pageSource = document.documentElement.outerHTML;\n inlineScriptSourceRegExp = new RegExp('(?:[^\\\\n]+?\\\\n){0,' + (line - 2) + '}[^<]*\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RouterAlive.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RouterAlive.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./RouterAlive.vue?vue&type=template&id=ffca4b3e&\"\nimport script from \"./RouterAlive.vue?vue&type=script&lang=js&\"\nexport * from \"./RouterAlive.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-link',{class:( _obj = {\n 'router-tab__item': true\n }, _obj[_vm.tabClass || ''] = true, _obj['is-active'] = _vm.$tabs.activeTabId === _vm.id, _obj['is-closable'] = _vm.closable, _obj['is-contextmenu'] = _vm.$tabs.contextData.id === _vm.id, _obj ),attrs:{\"tag\":\"li\",\"to\":_vm.to}},[_vm._t(\"default\",[(_vm.icon)?_c('i',{staticClass:\"router-tab__item-icon\",class:_vm.icon}):_vm._e(),_c('span',{staticClass:\"router-tab__item-title\",attrs:{\"title\":_vm.tips}},[_vm._v(_vm._s(_vm.title))]),(_vm.closable)?_c('i',{staticClass:\"router-tab__item-close\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.close($event)}}}):_vm._e()],null,this)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n {{ title }}\r\n \r\n \r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TabItem.vue?vue&type=template&id=41fe9c1a&\"\nimport script from \"./TabItem.vue?vue&type=script&lang=js&\"\nexport * from \"./TabItem.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"router-tab__scroll\",on:{\"wheel\":function($event){$event.preventDefault();return _vm.onWheel($event)},\"mouseenter\":_vm.update}},[_c('div',{ref:\"container\",staticClass:\"router-tab__scroll-container\",class:{ 'is-mobile': _vm.isMobile },on:{\"scroll\":_vm.update}},[_vm._t(\"default\")],2),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasScroller),expression:\"hasScroller\"}],ref:\"bar\",staticClass:\"router-tab__scrollbar\",class:{ 'is-dragging': _vm.dragData }},[_c('div',{ref:\"thumb\",staticClass:\"router-tab__scrollbar-thumb\",style:({\n width: (_vm.thumbWidth + \"px\"),\n transform: (\"translateX(\" + _vm.thumbLeft + \"px\")\n }),on:{\"mousedown\":function($event){$event.preventDefault();return _vm.onDragStart($event)}}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabScroll.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabScroll.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TabScroll.vue?vue&type=template&id=b781fa08&\"\nimport script from \"./TabScroll.vue?vue&type=script&lang=js&\"\nexport * from \"./TabScroll.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"router-tab__contextmenu\",class:{ 'has-icon': _vm.hasIcon },style:({\n left: ((_vm.data.left) + \"px\"),\n top: ((_vm.data.top) + \"px\")\n })},_vm._l((_vm.menuList),function(item){return _c('tab-contextmenu-item',{key:item.id,attrs:{\"data\":item}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.visible)?_c('a',{staticClass:\"router-tab__contextmenu-item\",class:_vm.menuClass,attrs:{\"data-action\":_vm.id,\"disabled\":!_vm.enable,\"title\":_vm.tips},on:{\"click\":function($event){_vm.enable && _vm.data.handler(_vm.context)}}},[(_vm.icon)?_c('i',{staticClass:\"router-tab__contextmenu-icon\",class:_vm.icon}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.title)+\" \")]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContextmenuItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContextmenuItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ContextmenuItem.vue?vue&type=template&id=29d67537&\"\nimport script from \"./ContextmenuItem.vue?vue&type=script&lang=js&\"\nexport * from \"./ContextmenuItem.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// 菜单数据\r\nconst menuMap = {\r\n // 刷新\r\n refresh: {\r\n handler({ data, $tabs }) {\r\n $tabs.refreshTab(data.id)\r\n }\r\n },\r\n\r\n // 刷新全部\r\n refreshAll: {\r\n handler({ $tabs }) {\r\n $tabs.refreshAll()\r\n }\r\n },\r\n\r\n // 关闭\r\n close: {\r\n enable({ target }) {\r\n return target.closable\r\n },\r\n handler({ data, $tabs }) {\r\n $tabs.closeTab(data.id)\r\n }\r\n },\r\n\r\n // 关闭左侧\r\n closeLefts: {\r\n enable({ $menu }) {\r\n return $menu.lefts.length\r\n },\r\n handler({ $menu }) {\r\n $menu.closeMulti($menu.lefts)\r\n }\r\n },\r\n\r\n // 关闭右侧\r\n closeRights: {\r\n enable({ $menu }) {\r\n return $menu.rights.length\r\n },\r\n handler({ $menu }) {\r\n $menu.closeMulti($menu.rights)\r\n }\r\n },\r\n\r\n // 关闭其他\r\n closeOthers: {\r\n enable({ $menu }) {\r\n return $menu.others.length\r\n },\r\n handler({ $menu }) {\r\n $menu.closeMulti($menu.others)\r\n }\r\n }\r\n}\r\n\r\n// 遍历填充 id\r\nObject.entries(menuMap).forEach(([id, item]) => (item.id = id))\r\n\r\nexport default menuMap\r\n\r\n// 默认菜单\r\nexport const defaultMenu = [\r\n 'refresh',\r\n 'refreshAll',\r\n 'close',\r\n 'closeLefts',\r\n 'closeRights',\r\n 'closeOthers'\r\n]\r\n","\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Contextmenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Contextmenu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Contextmenu.vue?vue&type=template&id=00944f94&\"\nimport script from \"./Contextmenu.vue?vue&type=script&lang=js&\"\nexport * from \"./Contextmenu.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// 方法\r\nimport { emptyObj, prunePath, getTransOpt } from './util'\r\n\r\n// 功能模块混入\r\nimport contextmenu from './mixins/contextmenu'\r\nimport i18n from './mixins/i18n'\r\nimport iframe from './mixins/iframe'\r\nimport operate from './mixins/operate'\r\nimport pageLeave from './mixins/pageLeave'\r\nimport scroll from './mixins/scroll'\r\nimport restore from './mixins/restore'\r\n\r\n// 子组件\r\nimport RouterAlive from './components/RouterAlive.vue'\r\nimport TabItem from './components/TabItem.vue'\r\nimport TabScroll from './components/TabScroll.vue'\r\nimport TabContextmenu from './components/Contextmenu.vue'\r\n\r\n// RouterTab 组件\r\nconst RouterTab = {\r\n name: 'RouterTab',\r\n mixins: [contextmenu, i18n, iframe, operate, pageLeave, scroll, restore],\r\n components: { RouterAlive, TabItem, TabScroll, TabContextmenu },\r\n\r\n // 注入子组件\r\n provide() {\r\n return { $tabs: this }\r\n },\r\n\r\n props: {\r\n // 初始页签数据\r\n tabs: {\r\n type: Array,\r\n default: () => []\r\n },\r\n\r\n // 页面刷新后是否恢复页签\r\n restore: {\r\n type: [Boolean, String],\r\n default: false\r\n },\r\n\r\n // 是否监听 restoreKey 变化自动还原页签\r\n restoreWatch: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n // 是否保留最后一个页签不被关闭\r\n keepLastTab: {\r\n type: Boolean,\r\n default: true\r\n },\r\n\r\n // 默认页面\r\n defaultPage: [String, Object],\r\n\r\n // 页签国际化配置 i18n (key, [args])\r\n i18n: Function,\r\n\r\n /**\r\n * 组件语言\r\n * - 为字符串时,可以设置为内置的语言 'zh-CN' (默认) 和 'en'\r\n * - 为对象时,可设置自定义的语言\r\n */\r\n language: {\r\n type: [String, Object],\r\n default: 'zh-CN'\r\n },\r\n\r\n /**\r\n * 自定义右键菜单\r\n * 1. 为 false 时禁用\r\n * 2. 为数组时可自定义右键菜单\r\n */\r\n contextmenu: {\r\n type: [Boolean, Array],\r\n default: true\r\n },\r\n\r\n // 默认是否缓存,可通过路由 meta.keepAlive 重置\r\n keepAlive: {\r\n type: Boolean,\r\n default: true\r\n },\r\n\r\n // 最大缓存数,0 则不限制\r\n maxAlive: {\r\n type: Number,\r\n default: 0\r\n },\r\n\r\n // 是否复用路由组件,可通过路由 meta.reuse 重置\r\n reuse: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n // 页签过渡效果\r\n tabTransition: {\r\n type: [String, Object],\r\n default: 'router-tab-zoom'\r\n },\r\n\r\n // 页面过渡效果\r\n pageTransition: {\r\n type: [String, Object],\r\n default: () => ({\r\n name: 'router-tab-swap',\r\n mode: 'out-in'\r\n })\r\n }\r\n },\r\n\r\n data() {\r\n return {\r\n items: [], // 页签项\r\n loading: false, // 路由页面 loading\r\n aliveReady: false // RouterAlive 初始化\r\n }\r\n },\r\n\r\n computed: {\r\n // routerAlive\r\n $alive() {\r\n return this.aliveReady ? this.$refs.routerAlive : null\r\n },\r\n\r\n // 当前激活的页签 id\r\n activeTabId() {\r\n return this.$alive ? this.$alive.key : null\r\n },\r\n\r\n // 当前激活的页签\r\n activeTab() {\r\n return this.items.find(item => item.id === this.activeTabId)\r\n },\r\n\r\n // 根路径\r\n basePath() {\r\n return this.$alive ? this.$alive.basePath : '/'\r\n },\r\n\r\n // 默认路径\r\n defaultPath() {\r\n return this.defaultPage || this.basePath || '/'\r\n },\r\n\r\n // 页签过渡\r\n tabTrans() {\r\n return getTransOpt(this.tabTransition)\r\n },\r\n\r\n // 页面过渡\r\n pageTrans() {\r\n return getTransOpt(this.pageTransition)\r\n }\r\n },\r\n\r\n watch: {\r\n // 路由切换更新激活的页签\r\n $route() {\r\n this.loading = false\r\n }\r\n },\r\n\r\n created() {\r\n // 添加到原型链\r\n RouterTab.Vue.prototype.$tabs = this\r\n },\r\n\r\n destroyed() {\r\n const proto = RouterTab.Vue.prototype\r\n // 取消原型挂载\r\n if (proto.$tabs === this) {\r\n proto.$tabs = null\r\n }\r\n },\r\n\r\n methods: {\r\n // RouterAlive 组件就绪\r\n onAliveReady($alive) {\r\n // 获取 keepAlive 组件实例\r\n this.$refs.routerAlive = $alive\r\n this.aliveReady = true\r\n this.initTabs()\r\n },\r\n\r\n // 初始页签数据\r\n initTabs() {\r\n if (this.restoreTabs()) return\r\n\r\n this.presetTabs()\r\n },\r\n\r\n // 预设页签\r\n presetTabs(tabs = this.tabs) {\r\n let ids = {}\r\n\r\n this.items = tabs\r\n .map(item => {\r\n item = typeof item === 'string' ? { to: item } : item || emptyObj\r\n\r\n const matched = item.to && this.matchRoute(item.to)\r\n\r\n if (matched) {\r\n const tab = this.getRouteTab(matched)\r\n const id = tab.id\r\n\r\n // 根据 id 去重\r\n if (!ids[id]) {\r\n // id 不允许更改\r\n delete item.id\r\n\r\n // 初始 tab 数据\r\n return (ids[id] = Object.assign(tab, item))\r\n }\r\n }\r\n })\r\n .filter(item => !!item)\r\n },\r\n\r\n // RouterAlive 缓存更新时同步更改页签\r\n onAliveChange(type, matched) {\r\n const { items } = this\r\n const matchIdx = items.findIndex(({ id }) => id === matched.key)\r\n const item = this.getRouteTab(matched)\r\n\r\n // 页签已存在\r\n if (matchIdx > -1) {\r\n if (\r\n type === 'create' || // 创建缓存\r\n (type === 'update' && items[matchIdx].to !== matched.$route.fullPath) // 更新缓存且地址更改\r\n ) {\r\n // 替换原页签\r\n this.$set(items, matchIdx, item)\r\n }\r\n } else {\r\n // 新增页签\r\n items.push(item)\r\n }\r\n },\r\n\r\n // 从 route 中获取 tab 配置\r\n getRouteTab({ key, $route, meta }) {\r\n const tab = { ...meta }\r\n\r\n // 支持根据路由函数返回的页签属性\r\n const props = ['title', 'tips', 'icon', 'closable']\r\n\r\n for (let i in tab) {\r\n if (props.includes(i)) {\r\n const val = tab[i]\r\n if (typeof val === 'function') {\r\n tab[i] = val($route)\r\n }\r\n }\r\n }\r\n\r\n return Object.assign(tab, {\r\n id: key,\r\n to: $route.fullPath\r\n })\r\n },\r\n\r\n // 重载路由视图\r\n async reload() {\r\n this.$alive.reload()\r\n },\r\n\r\n // 匹配路由信息\r\n matchRoute($route) {\r\n return this.$alive.matchRoute($route)\r\n },\r\n\r\n // 获取路由缓存 key\r\n getRouteKey(route = this.$route) {\r\n return this.matchRoute(route).key\r\n },\r\n\r\n // 从路由地址匹配页签 id\r\n getIdByPath(path, match = true) {\r\n if (!path) return\r\n\r\n const matched = this.matchRoute(path)\r\n const { key } = matched\r\n\r\n if (match) {\r\n // 路由地址精确匹配页签\r\n const matchTab = this.items.find(\r\n ({ to }) => prunePath(to) === prunePath(matched.$route.fullPath)\r\n )\r\n\r\n if (matchTab) {\r\n return key\r\n }\r\n }\r\n\r\n return key\r\n }\r\n }\r\n}\r\n\r\nexport default RouterTab\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/eslint-loader/index.js??ref--13-0!./RouterTab.js?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/eslint-loader/index.js??ref--13-0!./RouterTab.js?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RouterTab.vue?vue&type=template&id=0774e0e2&\"\nimport script from \"./RouterTab.js?vue&type=script&lang=js&\"\nexport * from \"./RouterTab.js?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"router-tab-iframe-fake\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Iframe.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Iframe.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Iframe.vue?vue&type=template&id=28764eeb&\"\nimport script from \"./Iframe.vue?vue&type=script&lang=js&\"\nexport * from \"./Iframe.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Iframe from '../page/Iframe.vue'\r\n\r\n// 注入的路由\r\nexport default [\r\n {\r\n // iframe 路由\r\n path: 'iframe/:src/:title?/:icon?',\r\n component: Iframe,\r\n props: true,\r\n meta: {\r\n key: route => `iframe-${route.params.src}`,\r\n title: route => route.params.title,\r\n icon: route => route.params.icon\r\n }\r\n }\r\n]\r\n","import { emptyObj } from '../util'\r\n\r\n// 浏览器窗口关闭或者刷新\r\nconst beforeunload = ($tabs, tabId, beforePageLeave) => e => {\r\n if (!$tabs && $tabs._isDestroyed) return\r\n\r\n const tab = $tabs.items.find(item => item.id === tabId)\r\n const msg = beforePageLeave(tab, 'unload')\r\n\r\n if (msg && typeof msg === 'string') {\r\n e.preventDefault()\r\n e.returnValue = msg\r\n\r\n // 非当前页签则切换\r\n if ($tabs.activeTabId !== tabId) {\r\n $tabs.open(tab.to, false, false)\r\n }\r\n\r\n return msg\r\n }\r\n}\r\n\r\n// 路由页面混入\r\nexport default {\r\n watch: {\r\n // 监听 routerTab 字段,更新页签信息\r\n routeTab: {\r\n handler(val) {\r\n if (!val) return\r\n\r\n const tab = typeof val === 'string' ? { title: val } : val\r\n const { activeTab } = this.$tabs || emptyObj\r\n\r\n if (tab && activeTab) {\r\n for (const key in tab) {\r\n if (!['id', 'to'].includes(key)) {\r\n this.$set(activeTab, key, tab[key])\r\n }\r\n }\r\n }\r\n },\r\n deep: true,\r\n immediate: true\r\n }\r\n },\r\n\r\n // 创建前记录缓存\r\n mounted() {\r\n const { $tabs } = this\r\n const { beforePageLeave } =\r\n (this.$vnode && this.$vnode.componentOptions.Ctor.options) || emptyObj\r\n\r\n // 页面离开确认\r\n if ($tabs && beforePageLeave) {\r\n window.addEventListener(\r\n 'beforeunload',\r\n (this._beforeunload = beforeunload(\r\n $tabs,\r\n $tabs.activeTabId,\r\n beforePageLeave.bind(this)\r\n ))\r\n )\r\n }\r\n },\r\n\r\n destroyed() {\r\n if (this._beforeunload) {\r\n window.removeEventListener('beforeunload', this._beforeunload)\r\n }\r\n }\r\n}\r\n","import RouterTab from './RouterTab.vue'\r\nimport RouterAlive from './components/RouterAlive.vue'\r\nimport RouterTabRoutes from './config/routes'\r\nimport routerPage from './mixins/routerPage'\r\nimport './scss/routerTab.scss'\r\n\r\n// 安装\r\nRouterTab.install = function install(Vue) {\r\n if (install.installed) return\r\n\r\n RouterTab.Vue = Vue\r\n install.installed = true\r\n\r\n Vue.component(RouterTab.name, RouterTab)\r\n Vue.mixin(routerPage)\r\n}\r\n\r\n// 如果浏览器环境且拥有全局Vue,则自动安装组件\r\nif (typeof window !== 'undefined' && window.Vue) {\r\n window.Vue.use(RouterTab)\r\n}\r\n\r\nexport default RouterTab\r\n\r\n// 导出\r\nexport { RouterAlive, RouterTabRoutes }\r\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/dist/lib/vue-router-tab.umd.min.js b/dist/lib/vue-router-tab.umd.min.js
index 11ab62c2..6b973b35 100644
--- a/dist/lib/vue-router-tab.umd.min.js
+++ b/dist/lib/vue-router-tab.umd.min.js
@@ -1,2 +1,2 @@
-(function(t,e){"object"===typeof exports&&"object"===typeof module?module.exports=e():"function"===typeof define&&define.amd?define([],e):"object"===typeof exports?exports["vue-router-tab"]=e():t["vue-router-tab"]=e()})("undefined"!==typeof self?self:this,(function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"===typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s="fb15")}({"6b67":function(t,e,r){},8875:function(t,e,r){var n,i,o;(function(r,a){i=[],n=a,o="function"===typeof n?n.apply(e,i):n,void 0===o||(t.exports=o)})("undefined"!==typeof self&&self,(function(){function t(){var e=Object.getOwnPropertyDescriptor(document,"currentScript");if(!e&&"currentScript"in document&&document.currentScript)return document.currentScript;if(e&&e.get!==t&&document.currentScript)return document.currentScript;try{throw new Error}catch(d){var r,n,i,o=/.*at [^(]*\((.*):(.+):(.+)\)$/gi,a=/@([^@]*):(\d+):(\d+)\s*$/gi,s=o.exec(d.stack)||a.exec(d.stack),u=s&&s[1]||!1,c=s&&s[2]||!1,l=document.location.href.replace(document.location.hash,""),f=document.getElementsByTagName("script");u===l&&(r=document.documentElement.outerHTML,n=new RegExp("(?:[^\\n]+?\\n){0,"+(c-2)+"}[^<]*\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RouterAlive.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RouterAlive.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./RouterAlive.vue?vue&type=template&id=ffca4b3e&\"\nimport script from \"./RouterAlive.vue?vue&type=script&lang=js&\"\nexport * from \"./RouterAlive.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-link',{class:( _obj = {\n 'router-tab__item': true\n }, _obj[_vm.tabClass || ''] = true, _obj['is-active'] = _vm.RouterTab.activeTabId === _vm.id, _obj['is-closable'] = _vm.closable, _obj['is-contextmenu'] = _vm.RouterTab.contextmenu.id === _vm.id, _obj ),attrs:{\"tag\":\"li\",\"to\":_vm.to}},[_vm._t(\"default\",[(_vm.icon)?_c('i',{staticClass:\"router-tab__item-icon\",class:_vm.icon}):_vm._e(),_c('span',{staticClass:\"router-tab__item-title\",attrs:{\"title\":_vm.tips}},[_vm._v(_vm._s(_vm.title))]),(_vm.closable)?_c('i',{staticClass:\"router-tab__item-close\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.close($event)}}}):_vm._e()],null,this)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n {{ title }}\r\n \r\n \r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TabItem.vue?vue&type=template&id=64b9760c&\"\nimport script from \"./TabItem.vue?vue&type=script&lang=js&\"\nexport * from \"./TabItem.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"router-tab__scroll\",on:{\"wheel\":function($event){$event.preventDefault();return _vm.onWheel($event)},\"mouseenter\":_vm.update}},[_c('div',{ref:\"container\",staticClass:\"router-tab__scroll-container\",class:{ 'is-mobile': _vm.isMobile },on:{\"scroll\":_vm.update}},[_vm._t(\"default\")],2),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasScroller),expression:\"hasScroller\"}],ref:\"bar\",staticClass:\"router-tab__scrollbar\",class:{ 'is-dragging': _vm.dragData }},[_c('div',{ref:\"thumb\",staticClass:\"router-tab__scrollbar-thumb\",style:((\"width: \" + _vm.thumbWidth + \"px; transform: translateX(\" + _vm.thumbLeft + \"px)\")),on:{\"mousedown\":function($event){$event.preventDefault();return _vm.onDragStart($event)}}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabScroll.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabScroll.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TabScroll.vue?vue&type=template&id=0741803e&\"\nimport script from \"./TabScroll.vue?vue&type=script&lang=js&\"\nexport * from \"./TabScroll.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// 方法\r\nimport { emptyObj, prunePath, getTransOpt } from './util'\r\n\r\n// 功能模块混入\r\nimport contextmenu from './mixins/contextmenu'\r\nimport i18n from './mixins/i18n'\r\nimport iframe from './mixins/iframe'\r\nimport operate from './mixins/operate'\r\nimport pageLeave from './mixins/pageLeave'\r\nimport scroll from './mixins/scroll'\r\nimport restore from './mixins/restore'\r\n\r\n// 子组件\r\nimport RouterAlive from './components/RouterAlive.vue'\r\nimport TabItem from './components/TabItem.vue'\r\nimport TabScroll from './components/TabScroll.vue'\r\n\r\n// RouterTab 组件\r\nconst RouterTab = {\r\n name: 'RouterTab',\r\n mixins: [contextmenu, i18n, iframe, operate, pageLeave, scroll, restore],\r\n components: { RouterAlive, TabItem, TabScroll },\r\n\r\n // 注入子组件\r\n provide() {\r\n return { RouterTab: this }\r\n },\r\n\r\n props: {\r\n // 初始页签数据\r\n tabs: {\r\n type: Array,\r\n default: () => []\r\n },\r\n\r\n // 页面刷新后是否恢复页签\r\n restore: {\r\n type: [Boolean, String],\r\n default: false\r\n },\r\n\r\n // 是否监听 restoreKey 变化自动还原页签\r\n restoreWatch: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n // 是否保留最后一个页签不被关闭\r\n keepLastTab: {\r\n type: Boolean,\r\n default: true\r\n },\r\n\r\n // 默认页面\r\n defaultPage: [String, Object],\r\n\r\n // 页签国际化配置 i18n (key, [args])\r\n i18n: Function,\r\n\r\n /**\r\n * 组件语言\r\n * - 为字符串时,可以设置为内置的语言 'zh-CN' (默认) 和 'en'\r\n * - 为对象时,可设置自定义的语言\r\n */\r\n language: {\r\n type: [String, Object],\r\n default: 'zh-CN'\r\n },\r\n\r\n // 默认是否缓存,可通过路由 meta.keepAlive 重置\r\n keepAlive: {\r\n type: Boolean,\r\n default: true\r\n },\r\n\r\n // 最大缓存数,0 则不限制\r\n maxAlive: {\r\n type: Number,\r\n default: 0\r\n },\r\n\r\n // 是否复用路由组件,可通过路由 meta.reuse 重置\r\n reuse: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n // 页签过渡效果\r\n tabTransition: {\r\n type: [String, Object],\r\n default: 'router-tab-zoom'\r\n },\r\n\r\n // 页面过渡效果\r\n pageTransition: {\r\n type: [String, Object],\r\n default: () => ({\r\n name: 'router-tab-swap',\r\n mode: 'out-in'\r\n })\r\n }\r\n },\r\n\r\n data() {\r\n return {\r\n items: [], // 页签项\r\n loading: false, // 路由页面 loading\r\n aliveReady: false // RouterAlive 初始化\r\n }\r\n },\r\n\r\n computed: {\r\n // routerAlive\r\n $alive() {\r\n return this.aliveReady ? this.$refs.routerAlive : null\r\n },\r\n\r\n // 当前激活的页签 id\r\n activeTabId() {\r\n return this.$alive ? this.$alive.key : null\r\n },\r\n\r\n // 当前激活的页签\r\n activeTab() {\r\n return this.items.find(item => item.id === this.activeTabId)\r\n },\r\n\r\n // 根路径\r\n basePath() {\r\n return this.$alive ? this.$alive.basePath : '/'\r\n },\r\n\r\n // 默认路径\r\n defaultPath() {\r\n return this.defaultPage || this.basePath || '/'\r\n },\r\n\r\n // 页签过渡\r\n tabTrans() {\r\n return getTransOpt(this.tabTransition)\r\n },\r\n\r\n // 页面过渡\r\n pageTrans() {\r\n return getTransOpt(this.pageTransition)\r\n }\r\n },\r\n\r\n watch: {\r\n // 路由切换更新激活的页签\r\n $route() {\r\n this.loading = false\r\n }\r\n },\r\n\r\n created() {\r\n // 添加到原型链\r\n RouterTab.Vue.prototype.$routerTab = this\r\n },\r\n\r\n destroyed() {\r\n const proto = RouterTab.Vue.prototype\r\n // 取消原型挂载\r\n if (proto.$routerTab === this) {\r\n proto.$routerTab = null\r\n }\r\n },\r\n\r\n methods: {\r\n // RouterAlive 组件就绪\r\n onAliveReady($alive) {\r\n // 获取 keepAlive 组件实例\r\n this.$refs.routerAlive = $alive\r\n this.aliveReady = true\r\n this.initTabs()\r\n },\r\n\r\n // 初始页签数据\r\n initTabs() {\r\n if (this.restoreTabs()) return\r\n\r\n this.presetTabs()\r\n },\r\n\r\n // 预设页签\r\n presetTabs(tabs = this.tabs) {\r\n let ids = {}\r\n\r\n this.items = tabs\r\n .map(item => {\r\n item = typeof item === 'string' ? { to: item } : item || emptyObj\r\n\r\n const matched = item.to && this.matchRoute(item.to)\r\n\r\n if (matched) {\r\n const tab = this.getRouteTab(matched)\r\n const id = tab.id\r\n\r\n // 根据 id 去重\r\n if (!ids[id]) {\r\n // id 不允许更改\r\n delete item.id\r\n\r\n // 初始 tab 数据\r\n return (ids[id] = Object.assign(tab, item))\r\n }\r\n }\r\n })\r\n .filter(item => !!item)\r\n },\r\n\r\n // RouterAlive 缓存更新时同步更改页签\r\n onAliveChange(type, matched) {\r\n const { items } = this\r\n const matchIdx = items.findIndex(({ id }) => id === matched.key)\r\n const item = this.getRouteTab(matched)\r\n\r\n // 页签已存在\r\n if (matchIdx > -1) {\r\n if (\r\n type === 'create' || // 创建缓存\r\n (type === 'update' && items[matchIdx].to !== matched.$route.fullPath) // 更新缓存且地址更改\r\n ) {\r\n // 替换原页签\r\n this.$set(items, matchIdx, item)\r\n }\r\n } else {\r\n // 新增页签\r\n items.push(item)\r\n }\r\n },\r\n\r\n // 从 route 中获取 tab 配置\r\n getRouteTab({ key, $route, meta }) {\r\n const tab = { ...meta }\r\n\r\n // 支持根据路由函数返回的页签属性\r\n const props = ['title', 'tips', 'icon', 'closable']\r\n\r\n for (let i in tab) {\r\n if (props.includes(i)) {\r\n const val = tab[i]\r\n if (typeof val === 'function') {\r\n tab[i] = val($route)\r\n }\r\n }\r\n }\r\n\r\n return Object.assign(tab, {\r\n id: key,\r\n to: $route.fullPath\r\n })\r\n },\r\n\r\n // 重载路由视图\r\n async reload() {\r\n this.$alive.reload()\r\n },\r\n\r\n // 匹配路由信息\r\n matchRoute($route) {\r\n return this.$alive.matchRoute($route)\r\n },\r\n\r\n // 获取路由缓存 key\r\n getRouteKey(route = this.$route) {\r\n return this.matchRoute(route).key\r\n },\r\n\r\n // 从路由地址匹配页签 id\r\n getIdByPath(path, match = true) {\r\n if (!path) return\r\n\r\n const matched = this.matchRoute(path)\r\n const { key } = matched\r\n\r\n if (match) {\r\n // 路由地址精确匹配页签\r\n const matchTab = this.items.find(\r\n ({ to }) => prunePath(to) === prunePath(matched.$route.fullPath)\r\n )\r\n\r\n if (matchTab) {\r\n return key\r\n }\r\n }\r\n\r\n return key\r\n }\r\n }\r\n}\r\n\r\nexport default RouterTab\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/eslint-loader/index.js??ref--13-0!./RouterTab.js?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/eslint-loader/index.js??ref--13-0!./RouterTab.js?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RouterTab.vue?vue&type=template&id=4af9cf8f&\"\nimport script from \"./RouterTab.js?vue&type=script&lang=js&\"\nexport * from \"./RouterTab.js?vue&type=script&lang=js&\"\nimport style0 from \"./scss/routerTab.scss?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./scss/transition.scss?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"router-tab-iframe-fake\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Iframe.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Iframe.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Iframe.vue?vue&type=template&id=f9e4f0ec&\"\nimport script from \"./Iframe.vue?vue&type=script&lang=js&\"\nexport * from \"./Iframe.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Iframe from '../page/Iframe.vue'\r\n\r\n// 注入的路由\r\nexport default [\r\n {\r\n // iframe 路由\r\n path: 'iframe/:src/:title?/:icon?',\r\n component: Iframe,\r\n props: true,\r\n meta: {\r\n key: route => `iframe-${route.params.src}`,\r\n title: route => route.params.title,\r\n icon: route => route.params.icon\r\n }\r\n }\r\n]\r\n","// 路由页面混入\r\nexport default {\r\n // 创建前记录缓存\r\n mounted() {\r\n // 监听 routerTab 字段,更新页签信息\r\n this.$watch(\r\n 'routeTab',\r\n function(val) {\r\n if (!val) return\r\n\r\n const tab = typeof val === 'string' ? { title: val } : val\r\n const { activeTab } = this.$routerTab || {}\r\n\r\n if (tab && activeTab) {\r\n for (const key in tab) {\r\n if (!['id', 'to'].includes(key)) {\r\n this.$set(activeTab, key, tab[key])\r\n }\r\n }\r\n }\r\n },\r\n {\r\n deep: true,\r\n immediate: true\r\n }\r\n )\r\n }\r\n}\r\n","import RouterTab from './RouterTab.vue'\r\nimport RouterAlive from './components/RouterAlive.vue'\r\nimport RouterTabRoutes from './util/routes'\r\nimport routerPage from './mixins/routerPage'\r\n\r\n// 安装\r\nRouterTab.install = function install(Vue) {\r\n if (install.installed) return\r\n\r\n RouterTab.Vue = Vue\r\n install.installed = true\r\n\r\n Vue.component(RouterTab.name, RouterTab)\r\n Vue.mixin(routerPage)\r\n}\r\n\r\n// 如果浏览器环境且拥有全局Vue,则自动安装组件\r\nif (typeof window !== 'undefined' && window.Vue) {\r\n window.Vue.use(RouterTab)\r\n}\r\n\r\nexport default RouterTab\r\n\r\n// 导出\r\nexport { RouterAlive, RouterTabRoutes }\r\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack://vue-router-tab/webpack/universalModuleDefinition","webpack://vue-router-tab/webpack/bootstrap","webpack://vue-router-tab/./lib/config/lang/en.js","webpack://vue-router-tab/./lib/config/lang/zh-CN.js","webpack://vue-router-tab/./node_modules/@soda/get-current-script/index.js","webpack://vue-router-tab/./node_modules/regenerator-runtime/runtime.js","webpack://vue-router-tab/./node_modules/@babel/runtime/regenerator/index.js","webpack://vue-router-tab/index).)*\\.js$","webpack://vue-router-tab/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://vue-router-tab/./lib/RouterTab.vue?b44c","webpack://vue-router-tab/./lib/util/index.js","webpack://vue-router-tab/./lib/mixins/contextmenu.js","webpack://vue-router-tab/./lib/config/lang/index.js","webpack://vue-router-tab/./lib/util/warn.js","webpack://vue-router-tab/./lib/mixins/i18n.js","webpack://vue-router-tab/./lib/mixins/iframe.js","webpack://vue-router-tab/./lib/mixins/operate.js","webpack://vue-router-tab/./lib/mixins/pageLeave.js","webpack://vue-router-tab/./lib/mixins/scroll.js","webpack://vue-router-tab/./lib/mixins/restore.js","webpack://vue-router-tab/./lib/components/RouterAlive.vue?10ce","webpack://vue-router-tab/./lib/config/rules.js","webpack://vue-router-tab/./lib/util/RouteMatch.js","webpack://vue-router-tab/lib/components/RouterAlive.vue","webpack://vue-router-tab/./lib/components/RouterAlive.vue?534a","webpack://vue-router-tab/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://vue-router-tab/./lib/components/RouterAlive.vue","webpack://vue-router-tab/./lib/components/TabItem.vue?8a16","webpack://vue-router-tab/lib/components/TabItem.vue","webpack://vue-router-tab/./lib/components/TabItem.vue?9042","webpack://vue-router-tab/./lib/components/TabItem.vue","webpack://vue-router-tab/./lib/components/TabScroll.vue?2a80","webpack://vue-router-tab/lib/components/TabScroll.vue","webpack://vue-router-tab/./lib/components/TabScroll.vue?c598","webpack://vue-router-tab/./lib/components/TabScroll.vue","webpack://vue-router-tab/./lib/components/Contextmenu.vue?b5dc","webpack://vue-router-tab/./lib/components/ContextmenuItem.vue?16a3","webpack://vue-router-tab/lib/components/ContextmenuItem.vue","webpack://vue-router-tab/./lib/components/ContextmenuItem.vue?b70f","webpack://vue-router-tab/./lib/components/ContextmenuItem.vue","webpack://vue-router-tab/./lib/config/contextmenu.js","webpack://vue-router-tab/lib/components/Contextmenu.vue","webpack://vue-router-tab/./lib/components/Contextmenu.vue?1c4f","webpack://vue-router-tab/./lib/components/Contextmenu.vue","webpack://vue-router-tab/./lib/RouterTab.js","webpack://vue-router-tab/./lib/RouterTab.js?7483","webpack://vue-router-tab/./lib/RouterTab.vue","webpack://vue-router-tab/./lib/page/Iframe.vue?faca","webpack://vue-router-tab/lib/page/Iframe.vue","webpack://vue-router-tab/./lib/page/Iframe.vue?e146","webpack://vue-router-tab/./lib/page/Iframe.vue","webpack://vue-router-tab/./lib/config/routes.js","webpack://vue-router-tab/./lib/mixins/routerPage.js","webpack://vue-router-tab/./lib/index.js","webpack://vue-router-tab/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"names":["root","factory","exports","module","define","amd","self","this","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","tab","untitled","contextmenu","refresh","refreshAll","close","closeLefts","closeRights","closeOthers","msg","keepLastTab","i18nProp","getCurrentScript","descriptor","getOwnPropertyDescriptor","document","currentScript","Error","err","pageSource","inlineScriptSourceRegExp","inlineScriptSource","ieStackRegExp","ffStackRegExp","stackDetails","exec","stack","scriptLocation","line","currentLocation","location","href","replace","hash","scripts","getElementsByTagName","documentElement","outerHTML","RegExp","trim","length","readyState","src","innerHTML","runtime","undefined","Op","hasOwn","$Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","obj","arg","type","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","state","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","constructor","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","require","map","webpackContext","req","id","webpackContextResolve","e","code","window","match","render","_vm","_h","$createElement","_c","_self","staticClass","ref","_t","_b","attrs","tabTrans","_l","item","index","to","refInFor","nativeOn","$event","preventDefault","showContextmenu","scopedSlots","_u","$scopedSlots","scope","class","loading","keepAlive","reuse","maxAlive","pageTrans","on","onAliveReady","onAliveChange","url","directives","rawName","currentIframe","expression","iframeNamePrefix","iframeLoaded","contextData","contextMenu","_e","staticRenderFns","emptyObj","remove","arr","indexOf","splice","debounce","delay","timeout","args","arguments","clearTimeout","setTimeout","scrollTo","left","top","smooth","behavior","scrollLeft","scrollTop","scrollIntoView","el","block","inline","offsetLeft","offsetTop","clientHeight","clientWidth","mapGetters","origin","props","each","prop","option","default","def","alias","val","Array","isArray","entries","prunePath","path","split","getTransOpt","trans","data","computed","watch","$route","hideContextmenu","old","addEventListener","onClick","target","$el","querySelector","removeEventListener","methods","clientY","clientX","assign","reduce","prefix","warn","condition","message","console","lang","language","langs","i18nText","text","i18nParse","params","hasI18nProp","i18n","_hasI18nPropWarn","res","iframes","getIframePath","title","icon","basePath","encodeURIComponent","openIframe","$router","closeIframe","refreshIframe","getIframeEl","getElementsByName","iframeMounted","iframe","$emit","getCloseArgs","from","argsLen","fullPath","query","equalPath","path1","path2","reg","open","isReplace","curId","activeTabId","tarId","getRouteKey","isSameTab","reload","removeTab","force","items","idx","findIndex","leavePage","$alive","getIdByPath","nextTab","defaultPath","closeTab","refreshTab","cache","clearTabsStore","initTabs","leaveGuard","router","$tabs","app","toId","alivePath","matched","matchRoute","catch","created","_RouterTabInit","beforeEach","find","vm","pageLeave","$vnode","componentOptions","Ctor","options","beforePageLeave","handler","$nextTick","adjust","immediate","mounted","onResize","destroyed","scroll","$refs","cur","isInView","restoreKey","restore","sessionStorage","saveTabs","restoreWatch","activeTab","setItem","JSON","stringify","removeItem","restoreTabs","tabs","getItem","hasStore","parse","presetTabs","onTransChange","max","alive","onRefresh","_g","pageClass","hooks","route","fullpath","parseRouteKey","defaultKey","rule","rules","toLowerCase","parsePath","RouteMatch","currentRoute","_$route","routeIndex","baseRoute","nest","meta","provide","RouterAlive","Boolean","Number","String","transition","routeMatch","getRouteIndex","events","hook","cacheAlivePath","reusable","cacheVM","cacheFullPath","oldKey","nestForceUpdate","_forceReload","cacheItem","_vnode","children","child","componentInstance","_match","depth","routerView","routerViewDepth","$parent","$destroy","pageHook","page","$forceUpdate","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","_compiled","functional","_scopeId","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","component","_obj","tabClass","closable","tips","_v","_s","stopPropagation","inject","required","onWheel","update","isMobile","dragData","style","width","thumbWidth","transform","thumbLeft","onDragStart","space","scrollData","scrollWidth","hasScroller","test","navigator","userAgent","enable","lastWheel","now","startPageX","pageX","startScrollLeft","container","startThumbLeft","onDragMove","onDragEnd","maxThumbLeft","hasIcon","menuClass","menuMap","$menu","lefts","closeMulti","rights","others","defaultMenu","components","menu","menuList","some","filter","RouterTab","mixins","operate","TabItem","TabScroll","TabContextmenu","defaultPage","tabTransition","pageTransition","aliveReady","routerAlive","Vue","proto","ids","getRouteTab","matchIdx","$set","includes","matchTab","activated","deactivated","Iframe","beforeunload","tabId","_isDestroyed","returnValue","routeTab","deep","_beforeunload","install","installed","mixin","routerPage","use"],"mappings":"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","file":"vue-router-tab.umd.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vue-router-tab\"] = factory();\n\telse\n\t\troot[\"vue-router-tab\"] = factory();\n})((typeof self !== 'undefined' ? self : this), function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n","export default {\r\n tab: {\r\n untitled: 'Untitled'\r\n },\r\n contextmenu: {\r\n refresh: 'Refresh',\r\n refreshAll: 'Refresh All',\r\n close: 'Close',\r\n closeLefts: 'Close to the Left',\r\n closeRights: 'Close to the Right',\r\n closeOthers: 'Close Others'\r\n },\r\n msg: {\r\n keepLastTab: 'Keep at least 1 tab',\r\n i18nProp: 'Method \"i18n\" is not defined on the instance'\r\n }\r\n}\r\n","export default {\r\n tab: {\r\n untitled: '无标题'\r\n },\r\n contextmenu: {\r\n refresh: '刷新',\r\n refreshAll: '刷新全部',\r\n close: '关闭',\r\n closeLefts: '关闭左侧',\r\n closeRights: '关闭右侧',\r\n closeOthers: '关闭其他'\r\n },\r\n msg: {\r\n keepLastTab: '至少应保留1个页签',\r\n i18nProp: '请提供“i18n”方法以处理国际化内容'\r\n }\r\n}\r\n","// addapted from the document.currentScript polyfill by Adam Miller\n// MIT license\n// source: https://github.com/amiller-gh/currentScript-polyfill\n\n// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = factory();\n } else {\n root.getCurrentScript = factory();\n }\n}(typeof self !== 'undefined' ? self : this, function () {\n function getCurrentScript () {\n var descriptor = Object.getOwnPropertyDescriptor(document, 'currentScript')\n // for chrome\n if (!descriptor && 'currentScript' in document && document.currentScript) {\n return document.currentScript\n }\n\n // for other browsers with native support for currentScript\n if (descriptor && descriptor.get !== getCurrentScript && document.currentScript) {\n return document.currentScript\n }\n \n // IE 8-10 support script readyState\n // IE 11+ & Firefox support stack trace\n try {\n throw new Error();\n }\n catch (err) {\n // Find the second match for the \"at\" string to get file src url from stack.\n var ieStackRegExp = /.*at [^(]*\\((.*):(.+):(.+)\\)$/ig,\n ffStackRegExp = /@([^@]*):(\\d+):(\\d+)\\s*$/ig,\n stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),\n scriptLocation = (stackDetails && stackDetails[1]) || false,\n line = (stackDetails && stackDetails[2]) || false,\n currentLocation = document.location.href.replace(document.location.hash, ''),\n pageSource,\n inlineScriptSourceRegExp,\n inlineScriptSource,\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n \n if (scriptLocation === currentLocation) {\n pageSource = document.documentElement.outerHTML;\n inlineScriptSourceRegExp = new RegExp('(?:[^\\\\n]+?\\\\n){0,' + (line - 2) + '}[^<]*\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RouterAlive.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RouterAlive.vue?vue&type=script&lang=js&\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./RouterAlive.vue?vue&type=template&id=ffca4b3e&\"\nimport script from \"./RouterAlive.vue?vue&type=script&lang=js&\"\nexport * from \"./RouterAlive.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-link',{class:( _obj = {\n 'router-tab__item': true\n }, _obj[_vm.tabClass || ''] = true, _obj['is-active'] = _vm.$tabs.activeTabId === _vm.id, _obj['is-closable'] = _vm.closable, _obj['is-contextmenu'] = _vm.$tabs.contextData.id === _vm.id, _obj ),attrs:{\"tag\":\"li\",\"to\":_vm.to}},[_vm._t(\"default\",[(_vm.icon)?_c('i',{staticClass:\"router-tab__item-icon\",class:_vm.icon}):_vm._e(),_c('span',{staticClass:\"router-tab__item-title\",attrs:{\"title\":_vm.tips}},[_vm._v(_vm._s(_vm.title))]),(_vm.closable)?_c('i',{staticClass:\"router-tab__item-close\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.close($event)}}}):_vm._e()],null,this)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n \r\n {{ title }}\r\n \r\n \r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TabItem.vue?vue&type=template&id=41fe9c1a&\"\nimport script from \"./TabItem.vue?vue&type=script&lang=js&\"\nexport * from \"./TabItem.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"router-tab__scroll\",on:{\"wheel\":function($event){$event.preventDefault();return _vm.onWheel($event)},\"mouseenter\":_vm.update}},[_c('div',{ref:\"container\",staticClass:\"router-tab__scroll-container\",class:{ 'is-mobile': _vm.isMobile },on:{\"scroll\":_vm.update}},[_vm._t(\"default\")],2),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasScroller),expression:\"hasScroller\"}],ref:\"bar\",staticClass:\"router-tab__scrollbar\",class:{ 'is-dragging': _vm.dragData }},[_c('div',{ref:\"thumb\",staticClass:\"router-tab__scrollbar-thumb\",style:({\n width: (_vm.thumbWidth + \"px\"),\n transform: (\"translateX(\" + _vm.thumbLeft + \"px\")\n }),on:{\"mousedown\":function($event){$event.preventDefault();return _vm.onDragStart($event)}}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabScroll.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TabScroll.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TabScroll.vue?vue&type=template&id=b781fa08&\"\nimport script from \"./TabScroll.vue?vue&type=script&lang=js&\"\nexport * from \"./TabScroll.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"router-tab__contextmenu\",class:{ 'has-icon': _vm.hasIcon },style:({\n left: ((_vm.data.left) + \"px\"),\n top: ((_vm.data.top) + \"px\")\n })},_vm._l((_vm.menuList),function(item){return _c('tab-contextmenu-item',{key:item.id,attrs:{\"data\":item}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.visible)?_c('a',{staticClass:\"router-tab__contextmenu-item\",class:_vm.menuClass,attrs:{\"data-action\":_vm.id,\"disabled\":!_vm.enable,\"title\":_vm.tips},on:{\"click\":function($event){_vm.enable && _vm.data.handler(_vm.context)}}},[(_vm.icon)?_c('i',{staticClass:\"router-tab__contextmenu-icon\",class:_vm.icon}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.title)+\" \")]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContextmenuItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContextmenuItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ContextmenuItem.vue?vue&type=template&id=29d67537&\"\nimport script from \"./ContextmenuItem.vue?vue&type=script&lang=js&\"\nexport * from \"./ContextmenuItem.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// 菜单数据\r\nconst menuMap = {\r\n // 刷新\r\n refresh: {\r\n handler({ data, $tabs }) {\r\n $tabs.refreshTab(data.id)\r\n }\r\n },\r\n\r\n // 刷新全部\r\n refreshAll: {\r\n handler({ $tabs }) {\r\n $tabs.refreshAll()\r\n }\r\n },\r\n\r\n // 关闭\r\n close: {\r\n enable({ target }) {\r\n return target.closable\r\n },\r\n handler({ data, $tabs }) {\r\n $tabs.closeTab(data.id)\r\n }\r\n },\r\n\r\n // 关闭左侧\r\n closeLefts: {\r\n enable({ $menu }) {\r\n return $menu.lefts.length\r\n },\r\n handler({ $menu }) {\r\n $menu.closeMulti($menu.lefts)\r\n }\r\n },\r\n\r\n // 关闭右侧\r\n closeRights: {\r\n enable({ $menu }) {\r\n return $menu.rights.length\r\n },\r\n handler({ $menu }) {\r\n $menu.closeMulti($menu.rights)\r\n }\r\n },\r\n\r\n // 关闭其他\r\n closeOthers: {\r\n enable({ $menu }) {\r\n return $menu.others.length\r\n },\r\n handler({ $menu }) {\r\n $menu.closeMulti($menu.others)\r\n }\r\n }\r\n}\r\n\r\n// 遍历填充 id\r\nObject.entries(menuMap).forEach(([id, item]) => (item.id = id))\r\n\r\nexport default menuMap\r\n\r\n// 默认菜单\r\nexport const defaultMenu = [\r\n 'refresh',\r\n 'refreshAll',\r\n 'close',\r\n 'closeLefts',\r\n 'closeRights',\r\n 'closeOthers'\r\n]\r\n","\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Contextmenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Contextmenu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Contextmenu.vue?vue&type=template&id=00944f94&\"\nimport script from \"./Contextmenu.vue?vue&type=script&lang=js&\"\nexport * from \"./Contextmenu.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// 方法\r\nimport { emptyObj, prunePath, getTransOpt } from './util'\r\n\r\n// 功能模块混入\r\nimport contextmenu from './mixins/contextmenu'\r\nimport i18n from './mixins/i18n'\r\nimport iframe from './mixins/iframe'\r\nimport operate from './mixins/operate'\r\nimport pageLeave from './mixins/pageLeave'\r\nimport scroll from './mixins/scroll'\r\nimport restore from './mixins/restore'\r\n\r\n// 子组件\r\nimport RouterAlive from './components/RouterAlive.vue'\r\nimport TabItem from './components/TabItem.vue'\r\nimport TabScroll from './components/TabScroll.vue'\r\nimport TabContextmenu from './components/Contextmenu.vue'\r\n\r\n// RouterTab 组件\r\nconst RouterTab = {\r\n name: 'RouterTab',\r\n mixins: [contextmenu, i18n, iframe, operate, pageLeave, scroll, restore],\r\n components: { RouterAlive, TabItem, TabScroll, TabContextmenu },\r\n\r\n // 注入子组件\r\n provide() {\r\n return { $tabs: this }\r\n },\r\n\r\n props: {\r\n // 初始页签数据\r\n tabs: {\r\n type: Array,\r\n default: () => []\r\n },\r\n\r\n // 页面刷新后是否恢复页签\r\n restore: {\r\n type: [Boolean, String],\r\n default: false\r\n },\r\n\r\n // 是否监听 restoreKey 变化自动还原页签\r\n restoreWatch: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n // 是否保留最后一个页签不被关闭\r\n keepLastTab: {\r\n type: Boolean,\r\n default: true\r\n },\r\n\r\n // 默认页面\r\n defaultPage: [String, Object],\r\n\r\n // 页签国际化配置 i18n (key, [args])\r\n i18n: Function,\r\n\r\n /**\r\n * 组件语言\r\n * - 为字符串时,可以设置为内置的语言 'zh-CN' (默认) 和 'en'\r\n * - 为对象时,可设置自定义的语言\r\n */\r\n language: {\r\n type: [String, Object],\r\n default: 'zh-CN'\r\n },\r\n\r\n /**\r\n * 自定义右键菜单\r\n * 1. 为 false 时禁用\r\n * 2. 为数组时可自定义右键菜单\r\n */\r\n contextmenu: {\r\n type: [Boolean, Array],\r\n default: true\r\n },\r\n\r\n // 默认是否缓存,可通过路由 meta.keepAlive 重置\r\n keepAlive: {\r\n type: Boolean,\r\n default: true\r\n },\r\n\r\n // 最大缓存数,0 则不限制\r\n maxAlive: {\r\n type: Number,\r\n default: 0\r\n },\r\n\r\n // 是否复用路由组件,可通过路由 meta.reuse 重置\r\n reuse: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n // 页签过渡效果\r\n tabTransition: {\r\n type: [String, Object],\r\n default: 'router-tab-zoom'\r\n },\r\n\r\n // 页面过渡效果\r\n pageTransition: {\r\n type: [String, Object],\r\n default: () => ({\r\n name: 'router-tab-swap',\r\n mode: 'out-in'\r\n })\r\n }\r\n },\r\n\r\n data() {\r\n return {\r\n items: [], // 页签项\r\n loading: false, // 路由页面 loading\r\n aliveReady: false // RouterAlive 初始化\r\n }\r\n },\r\n\r\n computed: {\r\n // routerAlive\r\n $alive() {\r\n return this.aliveReady ? this.$refs.routerAlive : null\r\n },\r\n\r\n // 当前激活的页签 id\r\n activeTabId() {\r\n return this.$alive ? this.$alive.key : null\r\n },\r\n\r\n // 当前激活的页签\r\n activeTab() {\r\n return this.items.find(item => item.id === this.activeTabId)\r\n },\r\n\r\n // 根路径\r\n basePath() {\r\n return this.$alive ? this.$alive.basePath : '/'\r\n },\r\n\r\n // 默认路径\r\n defaultPath() {\r\n return this.defaultPage || this.basePath || '/'\r\n },\r\n\r\n // 页签过渡\r\n tabTrans() {\r\n return getTransOpt(this.tabTransition)\r\n },\r\n\r\n // 页面过渡\r\n pageTrans() {\r\n return getTransOpt(this.pageTransition)\r\n }\r\n },\r\n\r\n watch: {\r\n // 路由切换更新激活的页签\r\n $route() {\r\n this.loading = false\r\n }\r\n },\r\n\r\n created() {\r\n // 添加到原型链\r\n RouterTab.Vue.prototype.$tabs = this\r\n },\r\n\r\n destroyed() {\r\n const proto = RouterTab.Vue.prototype\r\n // 取消原型挂载\r\n if (proto.$tabs === this) {\r\n proto.$tabs = null\r\n }\r\n },\r\n\r\n methods: {\r\n // RouterAlive 组件就绪\r\n onAliveReady($alive) {\r\n // 获取 keepAlive 组件实例\r\n this.$refs.routerAlive = $alive\r\n this.aliveReady = true\r\n this.initTabs()\r\n },\r\n\r\n // 初始页签数据\r\n initTabs() {\r\n if (this.restoreTabs()) return\r\n\r\n this.presetTabs()\r\n },\r\n\r\n // 预设页签\r\n presetTabs(tabs = this.tabs) {\r\n let ids = {}\r\n\r\n this.items = tabs\r\n .map(item => {\r\n item = typeof item === 'string' ? { to: item } : item || emptyObj\r\n\r\n const matched = item.to && this.matchRoute(item.to)\r\n\r\n if (matched) {\r\n const tab = this.getRouteTab(matched)\r\n const id = tab.id\r\n\r\n // 根据 id 去重\r\n if (!ids[id]) {\r\n // id 不允许更改\r\n delete item.id\r\n\r\n // 初始 tab 数据\r\n return (ids[id] = Object.assign(tab, item))\r\n }\r\n }\r\n })\r\n .filter(item => !!item)\r\n },\r\n\r\n // RouterAlive 缓存更新时同步更改页签\r\n onAliveChange(type, matched) {\r\n const { items } = this\r\n const matchIdx = items.findIndex(({ id }) => id === matched.key)\r\n const item = this.getRouteTab(matched)\r\n\r\n // 页签已存在\r\n if (matchIdx > -1) {\r\n if (\r\n type === 'create' || // 创建缓存\r\n (type === 'update' && items[matchIdx].to !== matched.$route.fullPath) // 更新缓存且地址更改\r\n ) {\r\n // 替换原页签\r\n this.$set(items, matchIdx, item)\r\n }\r\n } else {\r\n // 新增页签\r\n items.push(item)\r\n }\r\n },\r\n\r\n // 从 route 中获取 tab 配置\r\n getRouteTab({ key, $route, meta }) {\r\n const tab = { ...meta }\r\n\r\n // 支持根据路由函数返回的页签属性\r\n const props = ['title', 'tips', 'icon', 'closable']\r\n\r\n for (let i in tab) {\r\n if (props.includes(i)) {\r\n const val = tab[i]\r\n if (typeof val === 'function') {\r\n tab[i] = val($route)\r\n }\r\n }\r\n }\r\n\r\n return Object.assign(tab, {\r\n id: key,\r\n to: $route.fullPath\r\n })\r\n },\r\n\r\n // 重载路由视图\r\n async reload() {\r\n this.$alive.reload()\r\n },\r\n\r\n // 匹配路由信息\r\n matchRoute($route) {\r\n return this.$alive.matchRoute($route)\r\n },\r\n\r\n // 获取路由缓存 key\r\n getRouteKey(route = this.$route) {\r\n return this.matchRoute(route).key\r\n },\r\n\r\n // 从路由地址匹配页签 id\r\n getIdByPath(path, match = true) {\r\n if (!path) return\r\n\r\n const matched = this.matchRoute(path)\r\n const { key } = matched\r\n\r\n if (match) {\r\n // 路由地址精确匹配页签\r\n const matchTab = this.items.find(\r\n ({ to }) => prunePath(to) === prunePath(matched.$route.fullPath)\r\n )\r\n\r\n if (matchTab) {\r\n return key\r\n }\r\n }\r\n\r\n return key\r\n }\r\n }\r\n}\r\n\r\nexport default RouterTab\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/eslint-loader/index.js??ref--13-0!./RouterTab.js?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/eslint-loader/index.js??ref--13-0!./RouterTab.js?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RouterTab.vue?vue&type=template&id=0774e0e2&\"\nimport script from \"./RouterTab.js?vue&type=script&lang=js&\"\nexport * from \"./RouterTab.js?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"router-tab-iframe-fake\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Iframe.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Iframe.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Iframe.vue?vue&type=template&id=28764eeb&\"\nimport script from \"./Iframe.vue?vue&type=script&lang=js&\"\nexport * from \"./Iframe.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Iframe from '../page/Iframe.vue'\r\n\r\n// 注入的路由\r\nexport default [\r\n {\r\n // iframe 路由\r\n path: 'iframe/:src/:title?/:icon?',\r\n component: Iframe,\r\n props: true,\r\n meta: {\r\n key: route => `iframe-${route.params.src}`,\r\n title: route => route.params.title,\r\n icon: route => route.params.icon\r\n }\r\n }\r\n]\r\n","import { emptyObj } from '../util'\r\n\r\n// 浏览器窗口关闭或者刷新\r\nconst beforeunload = ($tabs, tabId, beforePageLeave) => e => {\r\n if (!$tabs && $tabs._isDestroyed) return\r\n\r\n const tab = $tabs.items.find(item => item.id === tabId)\r\n const msg = beforePageLeave(tab, 'unload')\r\n\r\n if (msg && typeof msg === 'string') {\r\n e.preventDefault()\r\n e.returnValue = msg\r\n\r\n // 非当前页签则切换\r\n if ($tabs.activeTabId !== tabId) {\r\n $tabs.open(tab.to, false, false)\r\n }\r\n\r\n return msg\r\n }\r\n}\r\n\r\n// 路由页面混入\r\nexport default {\r\n watch: {\r\n // 监听 routerTab 字段,更新页签信息\r\n routeTab: {\r\n handler(val) {\r\n if (!val) return\r\n\r\n const tab = typeof val === 'string' ? { title: val } : val\r\n const { activeTab } = this.$tabs || emptyObj\r\n\r\n if (tab && activeTab) {\r\n for (const key in tab) {\r\n if (!['id', 'to'].includes(key)) {\r\n this.$set(activeTab, key, tab[key])\r\n }\r\n }\r\n }\r\n },\r\n deep: true,\r\n immediate: true\r\n }\r\n },\r\n\r\n // 创建前记录缓存\r\n mounted() {\r\n const { $tabs } = this\r\n const { beforePageLeave } =\r\n (this.$vnode && this.$vnode.componentOptions.Ctor.options) || emptyObj\r\n\r\n // 页面离开确认\r\n if ($tabs && beforePageLeave) {\r\n window.addEventListener(\r\n 'beforeunload',\r\n (this._beforeunload = beforeunload(\r\n $tabs,\r\n $tabs.activeTabId,\r\n beforePageLeave.bind(this)\r\n ))\r\n )\r\n }\r\n },\r\n\r\n destroyed() {\r\n if (this._beforeunload) {\r\n window.removeEventListener('beforeunload', this._beforeunload)\r\n }\r\n }\r\n}\r\n","import RouterTab from './RouterTab.vue'\r\nimport RouterAlive from './components/RouterAlive.vue'\r\nimport RouterTabRoutes from './config/routes'\r\nimport routerPage from './mixins/routerPage'\r\nimport './scss/routerTab.scss'\r\n\r\n// 安装\r\nRouterTab.install = function install(Vue) {\r\n if (install.installed) return\r\n\r\n RouterTab.Vue = Vue\r\n install.installed = true\r\n\r\n Vue.component(RouterTab.name, RouterTab)\r\n Vue.mixin(routerPage)\r\n}\r\n\r\n// 如果浏览器环境且拥有全局Vue,则自动安装组件\r\nif (typeof window !== 'undefined' && window.Vue) {\r\n window.Vue.use(RouterTab)\r\n}\r\n\r\nexport default RouterTab\r\n\r\n// 导出\r\nexport { RouterAlive, RouterTabRoutes }\r\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/docs/guide/changelog.md b/docs/guide/changelog.md
index aaf50689..73b5d393 100644
--- a/docs/guide/changelog.md
+++ b/docs/guide/changelog.md
@@ -1,5 +1,21 @@
# Changelog
+## [1.1.0](https://github.com/bhuh12/vue-router-tab/compare/v1.0.2...v1.1.0) (2020-07-30)
+
+### Code Refactoring
+
+- Global `$routerTab` is changed to `$tabs` ([6edc214](https://github.com/bhuh12/vue-router-tab/commit/6edc214a21b83fe2f23627bcdfb0318ba4c10ed1))
+
+### Features
+
+- **contextmenu:** Custom contextmenu support ([d475ebe](https://github.com/bhuh12/vue-router-tab/commit/d475ebeeade5ee95cda9a3b3636031a8963ac4c2))
+- **beforePageLeave** Support browser `beforeunload` event ([5d57e60](https://github.com/bhuh12/vue-router-tab/commit/5d57e60e50017a913fd3b7c3950f7c4160c40492))
+
+### BREAKING CHANGES
+
+- Global access to the RouterTab component `this.$routerTab` has been deprecated and changed to `this.$tabs`
+- `beforePageLeave` deprecate the parameters `resolve`, `reject`, return a promise to allow or prevent the tab page from leaving
+
## [1.0.0](https://github.com/bhuh12/vue-router-tab/compare/v1.0.0-alpha.5...v1.0.0) (2020-06-28)
### Code Refactoring
diff --git a/docs/zh/guide/changelog.md b/docs/zh/guide/changelog.md
index d683e7c5..ec7ba6fa 100644
--- a/docs/zh/guide/changelog.md
+++ b/docs/zh/guide/changelog.md
@@ -1,5 +1,21 @@
# 更新日志
+## [1.1.0](https://github.com/bhuh12/vue-router-tab/compare/v1.0.2...v1.1.0) (2020-07-30)
+
+### Code Refactoring
+
+- 全局 `$routerTab` 修改为 `$tabs` ([6edc214](https://github.com/bhuh12/vue-router-tab/commit/6edc214a21b83fe2f23627bcdfb0318ba4c10ed1))
+
+### Features
+
+- **contextmenu:** 支持自定义右键菜单配置 ([d475ebe](https://github.com/bhuh12/vue-router-tab/commit/d475ebeeade5ee95cda9a3b3636031a8963ac4c2))
+- **beforePageLeave** 支持浏览器 `beforeunload` 事件 ([5d57e60](https://github.com/bhuh12/vue-router-tab/commit/5d57e60e50017a913fd3b7c3950f7c4160c40492))
+
+### BREAKING CHANGES
+
+- 全局访问 RouterTab 组件弃用 `this.$routerTab`,修改为 `this.$tabs`
+- `beforePageLeave` 弃用参数 resolve, reject,返回 promise 来允许或者阻止页签页面的离开
+
## [1.0.2](https://github.com/bhuh12/vue-router-tab/compare/v1.0.1...v1.0.2) (2020-07-07)
### Performance Improvements
diff --git a/package.json b/package.json
index 92e9ace5..ac086647 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "vue-router-tab",
- "version": "1.0.2",
+ "version": "1.1.0",
"description": "Vue.js tab components, based on Vue Router",
"keywords": [
"vue",