Files
education/frontend/node_modules/.cache/babel-loader/dfc930642a591a1776e3a23e5a163b73.json
T

1 line
50 KiB
JSON

{"remainingRequest":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\babel-loader\\lib\\index.js!C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\layout\\components\\TagsView\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\layout\\components\\TagsView\\index.vue","mtime":1787567993823},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\babel.config.js","mtime":1787567871334},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\babel-loader\\lib\\index.js","mtime":1787309793142},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js","mtime":1787309793790}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:InVzZSBzdHJpY3QiOwoKdmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKCJDOi9Vc2Vycy9BZG1pbi9EZXNrdG9wL2VkdWNhdGlvbi9mcm9udGVuZC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHQuanMiKS5kZWZhdWx0OwpPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgIl9fZXNNb2R1bGUiLCB7CiAgdmFsdWU6IHRydWUKfSk7CmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDsKdmFyIF9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZSgiQzovVXNlcnMvQWRtaW4vRGVza3RvcC9lZHVjYXRpb24vZnJvbnRlbmQvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlci5qcyIpKTsKdmFyIF90b0NvbnN1bWFibGVBcnJheTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoIkM6L1VzZXJzL0FkbWluL0Rlc2t0b3AvZWR1Y2F0aW9uL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3RvQ29uc3VtYWJsZUFycmF5LmpzIikpOwp2YXIgX29iamVjdFNwcmVhZDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoIkM6L1VzZXJzL0FkbWluL0Rlc2t0b3AvZWR1Y2F0aW9uL2Zyb250ZW5kL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL29iamVjdFNwcmVhZDIuanMiKSk7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5jb25jYXQuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmZpbmQuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNsaWNlLmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYy5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnJlcGxhY2UuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5saW5rLmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lc25leHQuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5maW5kLmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lc25leHQuaXRlcmF0b3IuZm9yLWVhY2guanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5zb21lLmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoLmpzIik7CnZhciBfU2Nyb2xsUGFuZSA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZSgiLi9TY3JvbGxQYW5lIikpOwp2YXIgX3BhdGggPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoInBhdGgiKSk7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCnZhciBfZGVmYXVsdCA9IGV4cG9ydHMuZGVmYXVsdCA9IHsKICBjb21wb25lbnRzOiB7CiAgICBTY3JvbGxQYW5lOiBfU2Nyb2xsUGFuZS5kZWZhdWx0CiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgdmlzaWJsZTogZmFsc2UsCiAgICAgIHRvcDogMCwKICAgICAgbGVmdDogMCwKICAgICAgc2VsZWN0ZWRUYWc6IHt9LAogICAgICBhZmZpeFRhZ3M6IFtdLAogICAgICBjYW5TY3JvbGxMZWZ0OiBmYWxzZSwKICAgICAgY2FuU2Nyb2xsUmlnaHQ6IGZhbHNlLAogICAgICBpc0Z1bGxzY3JlZW46IGZhbHNlLAogICAgICBoaWRkZW5FbGVtZW50czogW10KICAgIH07CiAgfSwKICBjb21wdXRlZDogewogICAgdmlzaXRlZFZpZXdzOiBmdW5jdGlvbiB2aXNpdGVkVmlld3MoKSB7CiAgICAgIHJldHVybiB0aGlzLiRzdG9yZS5zdGF0ZS50YWdzVmlldy52aXNpdGVkVmlld3M7CiAgICB9LAogICAgcm91dGVzOiBmdW5jdGlvbiByb3V0ZXMoKSB7CiAgICAgIHJldHVybiB0aGlzLiRzdG9yZS5zdGF0ZS5wZXJtaXNzaW9uLnJvdXRlczsKICAgIH0sCiAgICBzZWxlY3RlZERyb3Bkb3duVGFnOiBmdW5jdGlvbiBzZWxlY3RlZERyb3Bkb3duVGFnKCkgewogICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICByZXR1cm4gdGhpcy52aXNpdGVkVmlld3MuZmluZChmdW5jdGlvbiAodikgewogICAgICAgIHJldHVybiBfdGhpcy5pc0FjdGl2ZSh2KTsKICAgICAgfSkgfHwge307CiAgICB9CiAgfSwKICB3YXRjaDogewogICAgJHJvdXRlOiBmdW5jdGlvbiAkcm91dGUoKSB7CiAgICAgIHRoaXMuYWRkVGFncygpOwogICAgICB0aGlzLm1vdmVUb0N1cnJlbnRUYWcoKTsKICAgIH0sCiAgICB2aXNpYmxlOiBmdW5jdGlvbiB2aXNpYmxlKHZhbHVlKSB7CiAgICAgIGlmICh2YWx1ZSkgewogICAgICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmNsb3NlTWVudSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuY2xvc2VNZW51KTsKICAgICAgfQogICAgfSwKICAgIHZpc2l0ZWRWaWV3czogZnVuY3Rpb24gdmlzaXRlZFZpZXdzKCkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKICAgICAgdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzMi51cGRhdGVBcnJvd1N0YXRlKCk7CiAgICAgIH0pOwogICAgfQogIH0sCiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCgpIHsKICAgIHRoaXMuaW5pdFRhZ3MoKTsKICAgIHRoaXMuYWRkVGFncygpOwogICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMudXBkYXRlQXJyb3dTdGF0ZSk7CiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuaGFuZGxlS2V5RG93bik7CiAgfSwKICBiZWZvcmVEZXN0cm95OiBmdW5jdGlvbiBiZWZvcmVEZXN0cm95KCkgewogICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMudXBkYXRlQXJyb3dTdGF0ZSk7CiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuaGFuZGxlS2V5RG93bik7CiAgfSwKICBtZXRob2RzOiB7CiAgICBoYW5kbGVLZXlEb3duOiBmdW5jdGlvbiBoYW5kbGVLZXlEb3duKGV2ZW50KSB7CiAgICAgIC8vIOW9k+aMieS4i0VzY+mUruS4lOWkhOS6juWFqOWxj+eKtuaAgeaXtu+8jOmAgOWHuuWFqOWxjwogICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJyAmJiB0aGlzLmlzRnVsbHNjcmVlbikgewogICAgICAgIHRoaXMudG9nZ2xlRnVsbHNjcmVlbigpOwogICAgICB9CiAgICB9LAogICAgaXNBY3RpdmU6IGZ1bmN0aW9uIGlzQWN0aXZlKHJvdXRlKSB7CiAgICAgIHJldHVybiByb3V0ZS5wYXRoID09PSB0aGlzLiRyb3V0ZS5wYXRoOwogICAgfSwKICAgIHRhZ0FjdGl2ZVN0eWxlOiBmdW5jdGlvbiB0YWdBY3RpdmVTdHlsZSh0YWcpIHsKICAgICAgaWYgKCF0aGlzLmlzQWN0aXZlKHRhZykpIHJldHVybiB7fTsKICAgICAgcmV0dXJuIHsKICAgICAgICAiYmFja2dyb3VuZC1jb2xvciI6ICIjZThmM2VmIiwKICAgICAgICAiYm9yZGVyLWNvbG9yIjogIiMwYjZiNTUiCiAgICAgIH07CiAgICB9LAogICAgaXNBZmZpeDogZnVuY3Rpb24gaXNBZmZpeCh0YWcpIHsKICAgICAgcmV0dXJuIHRhZyAmJiB0YWcubWV0YSAmJiB0YWcubWV0YS5hZmZpeDsKICAgIH0sCiAgICBpc0ZpcnN0VmlldzogZnVuY3Rpb24gaXNGaXJzdFZpZXcoKSB7CiAgICAgIHRyeSB7CiAgICAgICAgdmFyIHRhZyA9IHRoaXMuc2VsZWN0ZWRUYWcgJiYgdGhpcy5zZWxlY3RlZFRhZy5mdWxsUGF0aCA/IHRoaXMuc2VsZWN0ZWRUYWcgOiB0aGlzLnNlbGVjdGVkRHJvcGRvd25UYWc7CiAgICAgICAgcmV0dXJuIHRhZy5mdWxsUGF0aCA9PT0gJy9pbmRleCcgfHwgdGFnLmZ1bGxQYXRoID09PSB0aGlzLnZpc2l0ZWRWaWV3c1sxXS5mdWxsUGF0aDsKICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICB9LAogICAgaXNMYXN0VmlldzogZnVuY3Rpb24gaXNMYXN0VmlldygpIHsKICAgICAgdHJ5IHsKICAgICAgICB2YXIgdGFnID0gdGhpcy5zZWxlY3RlZFRhZyAmJiB0aGlzLnNlbGVjdGVkVGFnLmZ1bGxQYXRoID8gdGhpcy5zZWxlY3RlZFRhZyA6IHRoaXMuc2VsZWN0ZWREcm9wZG93blRhZzsKICAgICAgICByZXR1cm4gdGFnLmZ1bGxQYXRoID09PSB0aGlzLnZpc2l0ZWRWaWV3c1t0aGlzLnZpc2l0ZWRWaWV3cy5sZW5ndGggLSAxXS5mdWxsUGF0aDsKICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICB9LAogICAgZmlsdGVyQWZmaXhUYWdzOiBmdW5jdGlvbiBmaWx0ZXJBZmZpeFRhZ3Mocm91dGVzKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICB2YXIgYmFzZVBhdGggPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6ICcvJzsKICAgICAgdmFyIHRhZ3MgPSBbXTsKICAgICAgcm91dGVzLmZvckVhY2goZnVuY3Rpb24gKHJvdXRlKSB7CiAgICAgICAgaWYgKHJvdXRlLm1ldGEgJiYgcm91dGUubWV0YS5hZmZpeCkgewogICAgICAgICAgdmFyIHRhZ1BhdGggPSBfcGF0aC5kZWZhdWx0LnJlc29sdmUoYmFzZVBhdGgsIHJvdXRlLnBhdGgpOwogICAgICAgICAgdGFncy5wdXNoKHsKICAgICAgICAgICAgZnVsbFBhdGg6IHRhZ1BhdGgsCiAgICAgICAgICAgIHBhdGg6IHRhZ1BhdGgsCiAgICAgICAgICAgIG5hbWU6IHJvdXRlLm5hbWUsCiAgICAgICAgICAgIG1ldGE6ICgwLCBfb2JqZWN0U3ByZWFkMi5kZWZhdWx0KSh7fSwgcm91dGUubWV0YSkKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBpZiAocm91dGUuY2hpbGRyZW4pIHsKICAgICAgICAgIHZhciB0ZW1wVGFncyA9IF90aGlzMy5maWx0ZXJBZmZpeFRhZ3Mocm91dGUuY2hpbGRyZW4sIHJvdXRlLnBhdGgpOwogICAgICAgICAgaWYgKHRlbXBUYWdzLmxlbmd0aCA+PSAxKSB7CiAgICAgICAgICAgIHRhZ3MgPSBbXS5jb25jYXQoKDAsIF90b0NvbnN1bWFibGVBcnJheTIuZGVmYXVsdCkodGFncyksICgwLCBfdG9Db25zdW1hYmxlQXJyYXkyLmRlZmF1bHQpKHRlbXBUYWdzKSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KTsKICAgICAgcmV0dXJuIHRhZ3M7CiAgICB9LAogICAgaW5pdFRhZ3M6IGZ1bmN0aW9uIGluaXRUYWdzKCkgewogICAgICB2YXIgYWZmaXhUYWdzID0gdGhpcy5hZmZpeFRhZ3MgPSB0aGlzLmZpbHRlckFmZml4VGFncyh0aGlzLnJvdXRlcyk7CiAgICAgIHZhciBfaXRlcmF0b3IgPSAoMCwgX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIyLmRlZmF1bHQpKGFmZml4VGFncyksCiAgICAgICAgX3N0ZXA7CiAgICAgIHRyeSB7CiAgICAgICAgZm9yIChfaXRlcmF0b3IucygpOyAhKF9zdGVwID0gX2l0ZXJhdG9yLm4oKSkuZG9uZTspIHsKICAgICAgICAgIHZhciB0YWcgPSBfc3RlcC52YWx1ZTsKICAgICAgICAgIGlmICh0YWcubmFtZSkgewogICAgICAgICAgICB0aGlzLiRzdG9yZS5kaXNwYXRjaCgndGFnc1ZpZXcvYWRkQWZmaXhWaWV3JywgdGFnKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgIF9pdGVyYXRvci5lKGVycik7CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgX2l0ZXJhdG9yLmYoKTsKICAgICAgfQogICAgfSwKICAgIGFkZFRhZ3M6IGZ1bmN0aW9uIGFkZFRhZ3MoKSB7CiAgICAgIHZhciBuYW1lID0gdGhpcy4kcm91dGUubmFtZTsKICAgICAgaWYgKG5hbWUpIHsKICAgICAgICB0aGlzLiRzdG9yZS5kaXNwYXRjaCgndGFnc1ZpZXcvYWRkVmlldycsIHRoaXMuJHJvdXRlKTsKICAgICAgfQogICAgfSwKICAgIG1vdmVUb0N1cnJlbnRUYWc6IGZ1bmN0aW9uIG1vdmVUb0N1cnJlbnRUYWcoKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICB2YXIgdGFncyA9IHRoaXMuJHJlZnMudGFnOwogICAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIF9pdGVyYXRvcjIgPSAoMCwgX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIyLmRlZmF1bHQpKHRhZ3MpLAogICAgICAgICAgX3N0ZXAyOwogICAgICAgIHRyeSB7CiAgICAgICAgICBmb3IgKF9pdGVyYXRvcjIucygpOyAhKF9zdGVwMiA9IF9pdGVyYXRvcjIubigpKS5kb25lOykgewogICAgICAgICAgICB2YXIgdGFnID0gX3N0ZXAyLnZhbHVlOwogICAgICAgICAgICBpZiAodGFnLnRvLnBhdGggPT09IF90aGlzNC4kcm91dGUucGF0aCkgewogICAgICAgICAgICAgIF90aGlzNC4kcmVmcy5zY3JvbGxQYW5lLm1vdmVUb1RhcmdldCh0YWcpOwogICAgICAgICAgICAgIGlmICh0YWcudG8uZnVsbFBhdGggIT09IF90aGlzNC4kcm91dGUuZnVsbFBhdGgpIHsKICAgICAgICAgICAgICAgIF90aGlzNC4kc3RvcmUuZGlzcGF0Y2goJ3RhZ3NWaWV3L3VwZGF0ZVZpc2l0ZWRWaWV3JywgX3RoaXM0LiRyb3V0ZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICBfaXRlcmF0b3IyLmUoZXJyKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgX2l0ZXJhdG9yMi5mKCk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICBzY3JvbGxMZWZ0OiBmdW5jdGlvbiBzY3JvbGxMZWZ0KCkgewogICAgICBpZiAoIXRoaXMuY2FuU2Nyb2xsTGVmdCkgcmV0dXJuOwogICAgICB0aGlzLiRyZWZzLnNjcm9sbFBhbmUuc2Nyb2xsVG9TdGFydCgpOwogICAgfSwKICAgIHNjcm9sbFJpZ2h0OiBmdW5jdGlvbiBzY3JvbGxSaWdodCgpIHsKICAgICAgaWYgKCF0aGlzLmNhblNjcm9sbFJpZ2h0KSByZXR1cm47CiAgICAgIHRoaXMuJHJlZnMuc2Nyb2xsUGFuZS5zY3JvbGxUb0VuZCgpOwogICAgfSwKICAgIHVwZGF0ZUFycm93U3RhdGU6IGZ1bmN0aW9uIHVwZGF0ZUFycm93U3RhdGUoKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwogICAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgaWYgKF90aGlzNS4kcmVmcy5zY3JvbGxQYW5lKSB7CiAgICAgICAgICB2YXIgc3RhdGUgPSBfdGhpczUuJHJlZnMuc2Nyb2xsUGFuZS5nZXRTY3JvbGxTdGF0ZSgpOwogICAgICAgICAgX3RoaXM1LmNhblNjcm9sbExlZnQgPSBzdGF0ZS5jYW5MZWZ0OwogICAgICAgICAgX3RoaXM1LmNhblNjcm9sbFJpZ2h0ID0gc3RhdGUuY2FuUmlnaHQ7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICB0b2dnbGVGdWxsc2NyZWVuOiBmdW5jdGlvbiB0b2dnbGVGdWxsc2NyZWVuKCkgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKICAgICAgdmFyIG1haW5Db250YWluZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubWFpbi1jb250YWluZXInKTsKICAgICAgdmFyIG5hdmJhciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5uYXZiYXInKTsKICAgICAgdmFyIHNpZGViYXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2lkZWJhci1jb250YWluZXInKTsKICAgICAgaWYgKCFtYWluQ29udGFpbmVyKSByZXR1cm47CiAgICAgIGlmICghdGhpcy5pc0Z1bGxzY3JlZW4pIHsKICAgICAgICBtYWluQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoJ2Z1bGxzY3JlZW4tbW9kZScpOwogICAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJzsKICAgICAgICB2YXIgZWxlbWVudHNUb0hpZGUgPSBbewogICAgICAgICAgZWw6IG5hdmJhciwKICAgICAgICAgIG9yaWdpbmFsRGlzcGxheTogbmF2YmFyICYmIG5hdmJhci5zdHlsZS5kaXNwbGF5IHx8ICcnCiAgICAgICAgfSwgewogICAgICAgICAgZWw6IHNpZGViYXIsCiAgICAgICAgICBvcmlnaW5hbERpc3BsYXk6IHNpZGViYXIgJiYgc2lkZWJhci5zdHlsZS5kaXNwbGF5IHx8ICcnCiAgICAgICAgfV07CiAgICAgICAgZWxlbWVudHNUb0hpZGUuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgaWYgKGl0ZW0uZWwgJiYgaXRlbS5lbC5zdHlsZS5kaXNwbGF5ICE9PSAnbm9uZScpIHsKICAgICAgICAgICAgaXRlbS5vcmlnaW5hbERpc3BsYXkgPSBpdGVtLmVsLnN0eWxlLmRpc3BsYXk7CiAgICAgICAgICAgIGl0ZW0uZWwuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgICAgX3RoaXM2LmhpZGRlbkVsZW1lbnRzLnB1c2goaXRlbSk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5pc0Z1bGxzY3JlZW4gPSB0cnVlOwogICAgICB9IGVsc2UgewogICAgICAgIG1haW5Db250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgnZnVsbHNjcmVlbi1tb2RlJyk7CiAgICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICcnOwogICAgICAgIHRoaXMuaGlkZGVuRWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgaWYgKGl0ZW0uZWwpIHsKICAgICAgICAgICAgaXRlbS5lbC5zdHlsZS5kaXNwbGF5ID0gaXRlbS5vcmlnaW5hbERpc3BsYXk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5oaWRkZW5FbGVtZW50cyA9IFtdOwogICAgICAgIHZhciBidG4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcudGFncy1hY3Rpb24tYnRuJyk7CiAgICAgICAgaWYgKGJ0bikgYnRuLmJsdXIoKTsKICAgICAgICB0aGlzLmlzRnVsbHNjcmVlbiA9IGZhbHNlOwogICAgICB9CiAgICB9LAogICAgaGFuZGxlRHJvcGRvd25Db21tYW5kOiBmdW5jdGlvbiBoYW5kbGVEcm9wZG93bkNvbW1hbmQoY29tbWFuZCkgewogICAgICB2YXIgdGFnID0gdGhpcy5zZWxlY3RlZERyb3Bkb3duVGFnOwogICAgICB0aGlzLnNlbGVjdGVkVGFnID0gdGFnOwogICAgICBzd2l0Y2ggKGNvbW1hbmQpIHsKICAgICAgICBjYXNlICdyZWZyZXNoJzoKICAgICAgICAgIHRoaXMucmVmcmVzaFNlbGVjdGVkVGFnKHRhZyk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdmdWxsc2NyZWVuJzoKICAgICAgICAgIHRoaXMudG9nZ2xlRnVsbHNjcmVlbigpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnY2xvc2UnOgogICAgICAgICAgdGhpcy5jbG9zZVNlbGVjdGVkVGFnKHRhZyk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdjbG9zZU90aGVycyc6CiAgICAgICAgICB0aGlzLmNsb3NlT3RoZXJzVGFncygpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnY2xvc2VMZWZ0JzoKICAgICAgICAgIHRoaXMuY2xvc2VMZWZ0VGFncygpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnY2xvc2VSaWdodCc6CiAgICAgICAgICB0aGlzLmNsb3NlUmlnaHRUYWdzKCk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdjbG9zZUFsbCc6CiAgICAgICAgICB0aGlzLmNsb3NlQWxsVGFncyh0YWcpOwogICAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0sCiAgICByZWZyZXNoU2VsZWN0ZWRUYWc6IGZ1bmN0aW9uIHJlZnJlc2hTZWxlY3RlZFRhZyh2aWV3KSB7CiAgICAgIHRoaXMuJHRhYi5yZWZyZXNoUGFnZSh2aWV3KTsKICAgICAgaWYgKHRoaXMuJHJvdXRlLm1ldGEubGluaykgewogICAgICAgIHRoaXMuJHN0b3JlLmRpc3BhdGNoKCd0YWdzVmlldy9kZWxJZnJhbWVWaWV3JywgdGhpcy4kcm91dGUpOwogICAgICB9CiAgICB9LAogICAgY2xvc2VTZWxlY3RlZFRhZzogZnVuY3Rpb24gY2xvc2VTZWxlY3RlZFRhZyh2aWV3KSB7CiAgICAgIHZhciBfdGhpczcgPSB0aGlzOwogICAgICB0aGlzLiR0YWIuY2xvc2VQYWdlKHZpZXcpLnRoZW4oZnVuY3Rpb24gKF9yZWYpIHsKICAgICAgICB2YXIgdmlzaXRlZFZpZXdzID0gX3JlZi52aXNpdGVkVmlld3M7CiAgICAgICAgaWYgKF90aGlzNy5pc0FjdGl2ZSh2aWV3KSkgewogICAgICAgICAgX3RoaXM3LnRvTGFzdFZpZXcodmlzaXRlZFZpZXdzLCB2aWV3KTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIGNsb3NlUmlnaHRUYWdzOiBmdW5jdGlvbiBjbG9zZVJpZ2h0VGFncygpIHsKICAgICAgdmFyIF90aGlzOCA9IHRoaXM7CiAgICAgIHRoaXMuJHRhYi5jbG9zZVJpZ2h0UGFnZSh0aGlzLnNlbGVjdGVkVGFnKS50aGVuKGZ1bmN0aW9uICh2aXNpdGVkVmlld3MpIHsKICAgICAgICBpZiAoIXZpc2l0ZWRWaWV3cy5maW5kKGZ1bmN0aW9uIChpKSB7CiAgICAgICAgICByZXR1cm4gaS5mdWxsUGF0aCA9PT0gX3RoaXM4LiRyb3V0ZS5mdWxsUGF0aDsKICAgICAgICB9KSkgewogICAgICAgICAgX3RoaXM4LnRvTGFzdFZpZXcodmlzaXRlZFZpZXdzKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIGNsb3NlTGVmdFRhZ3M6IGZ1bmN0aW9uIGNsb3NlTGVmdFRhZ3MoKSB7CiAgICAgIHZhciBfdGhpczkgPSB0aGlzOwogICAgICB0aGlzLiR0YWIuY2xvc2VMZWZ0UGFnZSh0aGlzLnNlbGVjdGVkVGFnKS50aGVuKGZ1bmN0aW9uICh2aXNpdGVkVmlld3MpIHsKICAgICAgICBpZiAoIXZpc2l0ZWRWaWV3cy5maW5kKGZ1bmN0aW9uIChpKSB7CiAgICAgICAgICByZXR1cm4gaS5mdWxsUGF0aCA9PT0gX3RoaXM5LiRyb3V0ZS5mdWxsUGF0aDsKICAgICAgICB9KSkgewogICAgICAgICAgX3RoaXM5LnRvTGFzdFZpZXcodmlzaXRlZFZpZXdzKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIGNsb3NlT3RoZXJzVGFnczogZnVuY3Rpb24gY2xvc2VPdGhlcnNUYWdzKCkgewogICAgICB2YXIgX3RoaXMwID0gdGhpczsKICAgICAgdGhpcy4kcm91dGVyLnB1c2godGhpcy5zZWxlY3RlZFRhZy5mdWxsUGF0aCkuY2F0Y2goZnVuY3Rpb24gKCkge30pOwogICAgICB0aGlzLiR0YWIuY2xvc2VPdGhlclBhZ2UodGhpcy5zZWxlY3RlZFRhZykudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXMwLm1vdmVUb0N1cnJlbnRUYWcoKTsKICAgICAgfSk7CiAgICB9LAogICAgY2xvc2VBbGxUYWdzOiBmdW5jdGlvbiBjbG9zZUFsbFRhZ3ModmlldykgewogICAgICB2YXIgX3RoaXMxID0gdGhpczsKICAgICAgdGhpcy4kdGFiLmNsb3NlQWxsUGFnZSgpLnRoZW4oZnVuY3Rpb24gKF9yZWYyKSB7CiAgICAgICAgdmFyIHZpc2l0ZWRWaWV3cyA9IF9yZWYyLnZpc2l0ZWRWaWV3czsKICAgICAgICBpZiAoX3RoaXMxLmFmZml4VGFncy5zb21lKGZ1bmN0aW9uICh0YWcpIHsKICAgICAgICAgIHJldHVybiB0YWcucGF0aCA9PT0gX3RoaXMxLiRyb3V0ZS5wYXRoOwogICAgICAgIH0pKSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIF90aGlzMS50b0xhc3RWaWV3KHZpc2l0ZWRWaWV3cywgdmlldyk7CiAgICAgIH0pOwogICAgfSwKICAgIHRvTGFzdFZpZXc6IGZ1bmN0aW9uIHRvTGFzdFZpZXcodmlzaXRlZFZpZXdzLCB2aWV3KSB7CiAgICAgIHZhciBsYXRlc3RWaWV3ID0gdmlzaXRlZFZpZXdzLnNsaWNlKC0xKVswXTsKICAgICAgaWYgKGxhdGVzdFZpZXcpIHsKICAgICAgICB0aGlzLiRyb3V0ZXIucHVzaChsYXRlc3RWaWV3LmZ1bGxQYXRoKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAodmlldyAmJiB2aWV3Lm5hbWUgPT09ICdEYXNoYm9hcmQnKSB7CiAgICAgICAgICB0aGlzLiRyb3V0ZXIucmVwbGFjZSh7CiAgICAgICAgICAgIHBhdGg6ICcvcmVkaXJlY3QnICsgdmlldy5mdWxsUGF0aAogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuJHJvdXRlci5wdXNoKCcvJyk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgb3Blbk1lbnU6IGZ1bmN0aW9uIG9wZW5NZW51KHRhZywgZSkgewogICAgICB0aGlzLmxlZnQgPSBlLmNsaWVudFg7CiAgICAgIHRoaXMudG9wID0gZS5jbGllbnRZOwogICAgICB0aGlzLnZpc2libGUgPSB0cnVlOwogICAgICB0aGlzLnNlbGVjdGVkVGFnID0gdGFnOwogICAgfSwKICAgIGNsb3NlTWVudTogZnVuY3Rpb24gY2xvc2VNZW51KCkgewogICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTsKICAgIH0sCiAgICBoYW5kbGVTY3JvbGw6IGZ1bmN0aW9uIGhhbmRsZVNjcm9sbCgpIHsKICAgICAgdGhpcy5jbG9zZU1lbnUoKTsKICAgICAgdGhpcy51cGRhdGVBcnJvd1N0YXRlKCk7CiAgICB9CiAgfQp9Ow=="},{"version":3,"names":["_ScrollPane","_interopRequireDefault","require","_path","components","ScrollPane","data","visible","top","left","selectedTag","affixTags","canScrollLeft","canScrollRight","isFullscreen","hiddenElements","computed","visitedViews","$store","state","tagsView","routes","permission","selectedDropdownTag","_this","find","v","isActive","watch","$route","addTags","moveToCurrentTag","value","document","body","addEventListener","closeMenu","removeEventListener","_this2","$nextTick","updateArrowState","mounted","initTags","window","handleKeyDown","beforeDestroy","methods","event","key","toggleFullscreen","route","path","tagActiveStyle","tag","isAffix","meta","affix","isFirstView","fullPath","err","isLastView","length","filterAffixTags","_this3","basePath","arguments","undefined","tags","forEach","tagPath","resolve","push","name","_objectSpread2","default","children","tempTags","concat","_toConsumableArray2","_iterator","_createForOfIteratorHelper2","_step","s","n","done","dispatch","e","f","_this4","$refs","_iterator2","_step2","to","scrollPane","moveToTarget","scrollLeft","scrollToStart","scrollRight","scrollToEnd","_this5","getScrollState","canLeft","canRight","_this6","mainContainer","querySelector","navbar","sidebar","classList","add","style","overflow","elementsToHide","el","originalDisplay","display","item","remove","btn","blur","handleDropdownCommand","command","refreshSelectedTag","closeSelectedTag","closeOthersTags","closeLeftTags","closeRightTags","closeAllTags","view","$tab","refreshPage","link","_this7","closePage","then","_ref","toLastView","_this8","closeRightPage","i","_this9","closeLeftPage","_this0","$router","catch","closeOtherPage","_this1","closeAllPage","_ref2","some","latestView","slice","replace","openMenu","clientX","clientY","handleScroll"],"sources":["src/layout/components/TagsView/index.vue"],"sourcesContent":["<template>\r\n <div id=\"tags-view-container\" class=\"tags-view-container\">\r\n <!-- 左切换箭头 -->\r\n <span class=\"tags-nav-btn tags-nav-btn--left\" :class=\"{ disabled: !canScrollLeft }\" @click=\"scrollLeft\">\r\n <i class=\"el-icon-arrow-left\" />\r\n </span>\r\n\r\n <!-- 标签滚动区 -->\r\n <scroll-pane ref=\"scrollPane\" class=\"tags-view-wrapper\" @scroll=\"handleScroll\" @updateArrows=\"updateArrowState\">\r\n <router-link\r\n v-for=\"tag in visitedViews\"\r\n ref=\"tag\"\r\n :key=\"tag.path\"\r\n :class=\"{ 'active': isActive(tag) }\"\r\n :to=\"{ path: tag.path, query: tag.query, fullPath: tag.fullPath }\"\r\n tag=\"span\"\r\n class=\"tags-view-item\"\r\n :style=\"tagActiveStyle(tag)\"\r\n @click.middle.native=\"!isAffix(tag) ? closeSelectedTag(tag) : ''\"\r\n @contextmenu.prevent.native=\"openMenu(tag, $event)\"\r\n >\r\n {{ tag.title }}\r\n <span v-if=\"!isAffix(tag)\" class=\"el-icon-close\" @click.prevent.stop=\"closeSelectedTag(tag)\" />\r\n </router-link>\r\n </scroll-pane>\r\n\r\n <!-- 右切换箭头 -->\r\n <span class=\"tags-nav-btn tags-nav-btn--right\" :class=\"{ disabled: !canScrollRight }\" @click=\"scrollRight\">\r\n <i class=\"el-icon-arrow-right\" />\r\n </span>\r\n\r\n <!-- 下拉操作菜单 -->\r\n <el-dropdown class=\"tags-action-dropdown\" trigger=\"click\" placement=\"bottom-end\" @command=\"handleDropdownCommand\">\r\n <span class=\"tags-action-btn\">\r\n <i class=\"el-icon-arrow-down\" />\r\n </span>\r\n <el-dropdown-menu slot=\"dropdown\" class=\"tags-dropdown-menu\">\r\n <el-dropdown-item v-if=\"!isAffix(selectedDropdownTag)\" command=\"close\" icon=\"el-icon-close\">关闭当前</el-dropdown-item>\r\n <el-dropdown-item command=\"closeOthers\" icon=\"el-icon-circle-close\">关闭其他</el-dropdown-item>\r\n <el-dropdown-item command=\"closeLeft\" :disabled=\"isFirstView()\" icon=\"el-icon-back\">关闭左侧</el-dropdown-item>\r\n <el-dropdown-item command=\"closeRight\" :disabled=\"isLastView()\" icon=\"el-icon-right\">关闭右侧</el-dropdown-item>\r\n <el-dropdown-item command=\"closeAll\" icon=\"el-icon-circle-close\">全部关闭</el-dropdown-item>\r\n <el-dropdown-item command=\"fullscreen\" divided>\r\n <template v-if=\"!isFullscreen\"><i class=\"el-icon-full-screen\"></i>全屏显示</template>\r\n <template v-else><i class=\"el-icon-close\"></i>退出全屏</template>\r\n </el-dropdown-item>\r\n </el-dropdown-menu>\r\n </el-dropdown>\r\n\r\n <!-- 刷新按钮 -->\r\n <span class=\"tags-action-btn tags-refresh-btn\" title=\"刷新页面\" @click=\"refreshSelectedTag(selectedDropdownTag)\">\r\n <i class=\"el-icon-refresh-right\" /> 刷新\r\n </span>\r\n\r\n <!-- 右键上下文菜单 -->\r\n <ul v-show=\"visible\" :style=\"{ left: left + 'px', top: top + 'px' }\" class=\"contextmenu\">\r\n <li @click=\"refreshSelectedTag(selectedTag)\"><i class=\"el-icon-refresh-right\"></i> 刷新页面</li>\r\n <li v-if=\"!isAffix(selectedTag)\" @click=\"closeSelectedTag(selectedTag)\"><i class=\"el-icon-close\"></i> 关闭当前</li>\r\n <li @click=\"closeOthersTags\"><i class=\"el-icon-circle-close\"></i> 关闭其他</li>\r\n <li v-if=\"!isFirstView()\" @click=\"closeLeftTags\"><i class=\"el-icon-back\"></i> 关闭左侧</li>\r\n <li v-if=\"!isLastView()\" @click=\"closeRightTags\"><i class=\"el-icon-right\"></i> 关闭右侧</li>\r\n <li @click=\"closeAllTags(selectedTag)\"><i class=\"el-icon-circle-close\"></i> 全部关闭</li>\r\n </ul>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport ScrollPane from './ScrollPane'\r\nimport path from 'path'\r\n\r\nexport default {\r\n components: { ScrollPane },\r\n data() {\r\n return {\r\n visible: false,\r\n top: 0,\r\n left: 0,\r\n selectedTag: {},\r\n affixTags: [],\r\n canScrollLeft: false,\r\n canScrollRight: false,\r\n isFullscreen: false,\r\n hiddenElements: []\r\n }\r\n },\r\n computed: {\r\n visitedViews() {\r\n return this.$store.state.tagsView.visitedViews\r\n },\r\n routes() {\r\n return this.$store.state.permission.routes\r\n },\r\n selectedDropdownTag() {\r\n return this.visitedViews.find(v => this.isActive(v)) || {}\r\n }\r\n },\r\n watch: {\r\n $route() {\r\n this.addTags()\r\n this.moveToCurrentTag()\r\n },\r\n visible(value) {\r\n if (value) {\r\n document.body.addEventListener('click', this.closeMenu)\r\n } else {\r\n document.body.removeEventListener('click', this.closeMenu)\r\n }\r\n },\r\n visitedViews() {\r\n this.$nextTick(() => {\r\n this.updateArrowState()\r\n })\r\n }\r\n },\r\n mounted() {\r\n this.initTags()\r\n this.addTags()\r\n window.addEventListener('resize', this.updateArrowState)\r\n window.addEventListener('keydown', this.handleKeyDown)\r\n },\r\n beforeDestroy() {\r\n window.removeEventListener('resize', this.updateArrowState)\r\n window.removeEventListener('keydown', this.handleKeyDown)\r\n },\r\n methods: {\r\n handleKeyDown(event) {\r\n // 当按下Esc键且处于全屏状态时,退出全屏\r\n if (event.key === 'Escape' && this.isFullscreen) {\r\n this.toggleFullscreen()\r\n }\r\n },\r\n isActive(route) {\r\n return route.path === this.$route.path\r\n },\r\n tagActiveStyle(tag) {\r\n if (!this.isActive(tag)) return {}\r\n return {\r\n \"background-color\": \"#e8f3ef\",\r\n \"border-color\": \"#0b6b55\"\r\n }\r\n },\r\n isAffix(tag) {\r\n return tag && tag.meta && tag.meta.affix\r\n },\r\n isFirstView() {\r\n try {\r\n const tag = this.selectedTag && this.selectedTag.fullPath ? this.selectedTag : this.selectedDropdownTag\r\n return tag.fullPath === '/index' || tag.fullPath === this.visitedViews[1].fullPath\r\n } catch (err) {\r\n return false\r\n }\r\n },\r\n isLastView() {\r\n try {\r\n const tag = this.selectedTag && this.selectedTag.fullPath ? this.selectedTag : this.selectedDropdownTag\r\n return tag.fullPath === this.visitedViews[this.visitedViews.length - 1].fullPath\r\n } catch (err) {\r\n return false\r\n }\r\n },\r\n filterAffixTags(routes, basePath = '/') {\r\n let tags = []\r\n routes.forEach(route => {\r\n if (route.meta && route.meta.affix) {\r\n const tagPath = path.resolve(basePath, route.path)\r\n tags.push({\r\n fullPath: tagPath,\r\n path: tagPath,\r\n name: route.name,\r\n meta: { ...route.meta }\r\n })\r\n }\r\n if (route.children) {\r\n const tempTags = this.filterAffixTags(route.children, route.path)\r\n if (tempTags.length >= 1) {\r\n tags = [...tags, ...tempTags]\r\n }\r\n }\r\n })\r\n return tags\r\n },\r\n initTags() {\r\n const affixTags = this.affixTags = this.filterAffixTags(this.routes)\r\n for (const tag of affixTags) {\r\n if (tag.name) {\r\n this.$store.dispatch('tagsView/addAffixView', tag)\r\n }\r\n }\r\n },\r\n addTags() {\r\n const { name } = this.$route\r\n if (name) {\r\n this.$store.dispatch('tagsView/addView', this.$route)\r\n }\r\n },\r\n moveToCurrentTag() {\r\n const tags = this.$refs.tag\r\n this.$nextTick(() => {\r\n for (const tag of tags) {\r\n if (tag.to.path === this.$route.path) {\r\n this.$refs.scrollPane.moveToTarget(tag)\r\n if (tag.to.fullPath !== this.$route.fullPath) {\r\n this.$store.dispatch('tagsView/updateVisitedView', this.$route)\r\n }\r\n break\r\n }\r\n }\r\n })\r\n },\r\n scrollLeft() {\r\n if (!this.canScrollLeft) return\r\n this.$refs.scrollPane.scrollToStart()\r\n },\r\n scrollRight() {\r\n if (!this.canScrollRight) return\r\n this.$refs.scrollPane.scrollToEnd()\r\n },\r\n updateArrowState() {\r\n this.$nextTick(() => {\r\n if (this.$refs.scrollPane) {\r\n const state = this.$refs.scrollPane.getScrollState()\r\n this.canScrollLeft = state.canLeft\r\n this.canScrollRight = state.canRight\r\n }\r\n })\r\n },\r\n toggleFullscreen() {\r\n const mainContainer = document.querySelector('.main-container')\r\n const navbar = document.querySelector('.navbar')\r\n const sidebar = document.querySelector('.sidebar-container')\r\n if (!mainContainer) return\r\n\r\n if (!this.isFullscreen) {\r\n mainContainer.classList.add('fullscreen-mode')\r\n document.body.style.overflow = 'hidden'\r\n const elementsToHide = [\r\n { el: navbar, originalDisplay: (navbar && navbar.style.display) || '' }, \r\n { el: sidebar, originalDisplay: (sidebar && sidebar.style.display) || '' }\r\n ]\r\n elementsToHide.forEach(item => {\r\n if (item.el && item.el.style.display !== 'none') {\r\n item.originalDisplay = item.el.style.display\r\n item.el.style.display = 'none'\r\n this.hiddenElements.push(item)\r\n }\r\n })\r\n this.isFullscreen = true\r\n } else {\r\n mainContainer.classList.remove('fullscreen-mode')\r\n document.body.style.overflow = ''\r\n this.hiddenElements.forEach(item => {\r\n if (item.el) {\r\n item.el.style.display = item.originalDisplay\r\n }\r\n })\r\n this.hiddenElements = []\r\n const btn = document.querySelector('.tags-action-btn')\r\n if (btn) btn.blur()\r\n this.isFullscreen = false\r\n }\r\n },\r\n handleDropdownCommand(command) {\r\n const tag = this.selectedDropdownTag\r\n this.selectedTag = tag\r\n switch (command) {\r\n case 'refresh':\r\n this.refreshSelectedTag(tag)\r\n break\r\n case 'fullscreen':\r\n this.toggleFullscreen()\r\n break\r\n case 'close':\r\n this.closeSelectedTag(tag)\r\n break\r\n case 'closeOthers':\r\n this.closeOthersTags()\r\n break\r\n case 'closeLeft':\r\n this.closeLeftTags()\r\n break\r\n case 'closeRight':\r\n this.closeRightTags()\r\n break\r\n case 'closeAll':\r\n this.closeAllTags(tag)\r\n break\r\n }\r\n },\r\n refreshSelectedTag(view) {\r\n this.$tab.refreshPage(view)\r\n if (this.$route.meta.link) {\r\n this.$store.dispatch('tagsView/delIframeView', this.$route)\r\n }\r\n },\r\n closeSelectedTag(view) {\r\n this.$tab.closePage(view).then(({ visitedViews }) => {\r\n if (this.isActive(view)) {\r\n this.toLastView(visitedViews, view)\r\n }\r\n })\r\n },\r\n closeRightTags() {\r\n this.$tab.closeRightPage(this.selectedTag).then(visitedViews => {\r\n if (!visitedViews.find(i => i.fullPath === this.$route.fullPath)) {\r\n this.toLastView(visitedViews)\r\n }\r\n })\r\n },\r\n closeLeftTags() {\r\n this.$tab.closeLeftPage(this.selectedTag).then(visitedViews => {\r\n if (!visitedViews.find(i => i.fullPath === this.$route.fullPath)) {\r\n this.toLastView(visitedViews)\r\n }\r\n })\r\n },\r\n closeOthersTags() {\r\n this.$router.push(this.selectedTag.fullPath).catch(() => {})\r\n this.$tab.closeOtherPage(this.selectedTag).then(() => {\r\n this.moveToCurrentTag()\r\n })\r\n },\r\n closeAllTags(view) {\r\n this.$tab.closeAllPage().then(({ visitedViews }) => {\r\n if (this.affixTags.some(tag => tag.path === this.$route.path)) {\r\n return\r\n }\r\n this.toLastView(visitedViews, view)\r\n })\r\n },\r\n toLastView(visitedViews, view) {\r\n const latestView = visitedViews.slice(-1)[0]\r\n if (latestView) {\r\n this.$router.push(latestView.fullPath)\r\n } else {\r\n if (view && view.name === 'Dashboard') {\r\n this.$router.replace({ path: '/redirect' + view.fullPath })\r\n } else {\r\n this.$router.push('/')\r\n }\r\n }\r\n },\r\n openMenu(tag, e) {\r\n this.left = e.clientX\r\n this.top = e.clientY\r\n this.visible = true\r\n this.selectedTag = tag\r\n },\r\n closeMenu() {\r\n this.visible = false\r\n },\r\n handleScroll() {\r\n this.closeMenu()\r\n this.updateArrowState()\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n$tags-bar-height: 34px;\r\n\r\n.tags-view-container {\r\n height: $tags-bar-height;\r\n width: 100%;\r\n background: #fff;\r\n border-bottom: 1px solid #dce6e2;\r\n box-shadow: 0 1px 2px rgba(19, 45, 37, 0.04);\r\n display: flex;\r\n align-items: center;\r\n overflow: hidden;\r\n\r\n $btn-width: 28px;\r\n $btn-color: #71717a;\r\n $btn-hover-bg: #f0f2f5;\r\n $btn-hover-color: #303133;\r\n $btn-disabled-color: #c0c4cc;\r\n $divider: 1px solid #d8dce5;\r\n\r\n .tags-nav-btn {\r\n flex-shrink: 0;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: $btn-width;\r\n height: $tags-bar-height;\r\n cursor: pointer;\r\n color: $btn-color;\r\n font-size: 13px;\r\n user-select: none;\r\n transition: background 0.15s, color 0.15s;\r\n\r\n &:hover:not(.disabled) {\r\n background: $btn-hover-bg;\r\n color: $btn-hover-color;\r\n }\r\n\r\n &.disabled {\r\n color: $btn-disabled-color;\r\n cursor: not-allowed;\r\n }\r\n\r\n &--left { border-right: $divider; }\r\n &--right { border-left: $divider; }\r\n }\r\n\r\n .tags-view-wrapper {\r\n flex: 1;\r\n min-width: 0;\r\n height: 100%;\r\n\r\n .tags-view-item {\r\n display: inline-block;\r\n position: relative;\r\n cursor: pointer;\r\n height: 26px;\r\n line-height: 26px;\r\n border: 1px solid #dce6e2;\r\n color: #52645f;\r\n background: #fff;\r\n padding: 0 8px;\r\n font-size: 12px;\r\n margin-left: 5px;\r\n border-radius: 5px;\r\n transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease;\r\n\r\n &:hover {\r\n color: #0b6b55;\r\n background: #f3f8f6;\r\n border-color: #b6cec5;\r\n }\r\n\r\n &:first-of-type { margin-left: 6px; }\r\n &:last-of-type { margin-right: 15px; }\r\n }\r\n }\r\n &:not(.tags-view-container--chrome) .tags-view-wrapper .tags-view-item.active {\r\n background-color: #e8f3ef;\r\n color: #085442;\r\n border-color: #0b6b55;\r\n font-weight: 600;\r\n &::before {\r\n content: '';\r\n background: #c69b3c;\r\n display: inline-block;\r\n width: 3px;\r\n height: 12px;\r\n border-radius: 2px;\r\n position: relative;\r\n margin-right: 2px;\r\n }\r\n }\r\n\r\n &:not(.tags-view-container--chrome) .tags-view-wrapper .tags-view-item.active.has-icon::before {\r\n content: none !important;\r\n }\r\n\r\n .tags-action-dropdown {\r\n flex-shrink: 0;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .tags-action-btn {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: $btn-width;\r\n height: $tags-bar-height;\r\n cursor: pointer;\r\n color: $btn-color;\r\n font-size: 13px;\r\n border-left: $divider;\r\n user-select: none;\r\n transition: background 0.15s, color 0.15s;\r\n\r\n &:hover {\r\n background: $btn-hover-bg;\r\n color: $btn-hover-color;\r\n }\r\n }\r\n\r\n .tags-refresh-btn {\r\n width: 60px;\r\n }\r\n\r\n .contextmenu {\r\n margin: 0;\r\n background: #fff;\r\n z-index: 3000;\r\n position: fixed;\r\n list-style-type: none;\r\n padding: 5px 0;\r\n border-radius: 4px;\r\n font-size: 12px;\r\n font-weight: 400;\r\n color: #333;\r\n box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, .3);\r\n\r\n li {\r\n margin: 0;\r\n padding: 7px 16px;\r\n cursor: pointer;\r\n &:hover {\r\n background: #eee;\r\n }\r\n }\r\n }\r\n &.tags-view-container--chrome {\r\n --chrome-strip-bg: #ffffff;\r\n --chrome-strip-border: #e4e7ed;\r\n --chrome-tab-text: #606266;\r\n\r\n overflow: visible;\r\n background: var(--chrome-strip-bg);\r\n border-bottom: 1px solid var(--chrome-strip-border);\r\n align-items: flex-end;\r\n\r\n .tags-nav-btn {\r\n align-self: stretch;\r\n height: auto;\r\n min-height: $tags-bar-height;\r\n border-color: var(--chrome-strip-border);\r\n }\r\n\r\n .tags-action-btn {\r\n border-color: var(--chrome-strip-border);\r\n }\r\n\r\n .tags-view-wrapper {\r\n .tags-view-item {\r\n display: inline-flex !important;\r\n align-items: center;\r\n justify-content: center;\r\n position: relative;\r\n z-index: 1;\r\n height: 30px;\r\n min-height: 30px;\r\n margin: 0 0 -1px;\r\n padding: 0 12px;\r\n font-size: 13px;\r\n font-weight: 400;\r\n line-height: 1.2;\r\n border: none !important;\r\n border-radius: 0;\r\n background: transparent !important;\r\n color: var(--chrome-tab-text) !important;\r\n padding-top: 0 !important;\r\n box-shadow: none !important;\r\n transition: background 0.12s ease, color 0.12s ease, border-radius 0.12s ease;\r\n\r\n &::before,\r\n &::after {\r\n content: '' !important;\r\n display: block !important;\r\n position: absolute;\r\n bottom: 0;\r\n width: var(--chrome-wing-r);\r\n height: var(--chrome-wing-r);\r\n margin: 0 !important;\r\n pointer-events: none;\r\n background: transparent !important;\r\n border-radius: 0 !important;\r\n transition: box-shadow 0.12s ease;\r\n }\r\n\r\n &::before {\r\n left: calc(-1 * var(--chrome-wing-r));\r\n border-bottom-right-radius: var(--chrome-wing-r) !important;\r\n box-shadow: none;\r\n }\r\n\r\n &::after {\r\n right: calc(-1 * var(--chrome-wing-r));\r\n border-bottom-left-radius: var(--chrome-wing-r) !important;\r\n box-shadow: none;\r\n }\r\n\r\n &:first-of-type { margin-left: 6px; }\r\n &:last-of-type { margin-right: 10px; }\r\n\r\n &:not(.active) + .tags-view-item:not(.active) {\r\n border-left: 1px solid #e4e7ed;\r\n padding-left: 11px;\r\n }\r\n\r\n &:hover:not(.active) {\r\n background: #f5f7fa !important;\r\n border-radius: 6px 6px 0 0;\r\n color: #303133 !important;\r\n z-index: 2;\r\n }\r\n\r\n &.active {\r\n height: 33px;\r\n min-height: 33px;\r\n padding: 0 14px;\r\n z-index: 3;\r\n color: var(--chrome-tab-text-active) !important;\r\n font-weight: 500;\r\n background: var(--chrome-tab-active-bg) !important;\r\n border: none !important;\r\n border-bottom: 2px solid var(--chrome-tab-active-bg) !important;\r\n border-radius: var(--chrome-wing-r) var(--chrome-wing-r) 0 0;\r\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);\r\n\r\n &::before {\r\n box-shadow: calc(var(--chrome-wing-r) * 0.5) calc(var(--chrome-wing-r) * 0.5) 0 calc(var(--chrome-wing-r) * 0.5) var(--chrome-tab-active-bg);\r\n }\r\n\r\n &::after {\r\n box-shadow: calc(var(--chrome-wing-r) * -0.5) calc(var(--chrome-wing-r) * 0.5) 0 calc(var(--chrome-wing-r) * 0.5) var(--chrome-tab-active-bg);\r\n }\r\n }\r\n .el-icon-close {\r\n margin-left: 3px;\r\n &:before {\r\n vertical-align: -2px;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n</style>\r\n\r\n<style lang=\"scss\">\r\n.tags-view-wrapper {\r\n .el-scrollbar {\r\n height: 100%;\r\n overflow: hidden;\r\n }\r\n\r\n .el-scrollbar__wrap {\r\n height: 34px !important;\r\n display: flex;\r\n align-items: center;\r\n overflow-x: auto;\r\n overflow-y: hidden;\r\n \r\n &::-webkit-scrollbar {\r\n width: 0;\r\n height: 0;\r\n }\r\n \r\n .tags-view-container:hover & {\r\n &::-webkit-scrollbar {\r\n width: 6px;\r\n height: 6px;\r\n }\r\n \r\n &::-webkit-scrollbar-track {\r\n background: transparent;\r\n }\r\n \r\n &::-webkit-scrollbar-thumb {\r\n background-color: rgba(0, 0, 0, 0.2);\r\n border-radius: 3px;\r\n transition: background-color 0.2s;\r\n \r\n &:hover {\r\n background-color: rgba(0, 0, 0, 0.4);\r\n }\r\n }\r\n }\r\n \r\n scrollbar-width: none;\r\n -ms-overflow-style: none;\r\n }\r\n\r\n .el-scrollbar__bar {\r\n opacity: 0;\r\n transition: opacity 0.3s;\r\n z-index: 10;\r\n\r\n .tags-view-container:hover & {\r\n opacity: 1;\r\n }\r\n }\r\n\r\n .tags-view-container--chrome & {\r\n .el-scrollbar {\r\n position: relative;\r\n }\r\n\r\n .el-scrollbar__wrap {\r\n &::-webkit-scrollbar {\r\n width: 0 !important;\r\n height: 0 !important;\r\n }\r\n scrollbar-width: none;\r\n -ms-overflow-style: none;\r\n }\r\n\r\n .el-scrollbar__bar.is-horizontal {\r\n z-index: 20;\r\n height: 6px !important;\r\n }\r\n }\r\n\r\n .tags-view-item {\r\n .el-icon-close {\r\n width: 16px;\r\n height: 16px;\r\n vertical-align: 2px;\r\n border-radius: 50%;\r\n text-align: center;\r\n transition: all .3s cubic-bezier(.645, .045, .355, 1);\r\n transform-origin: 100% 50%;\r\n &:before {\r\n transform: scale(.6);\r\n display: inline-block;\r\n vertical-align: -3px;\r\n }\r\n &:hover {\r\n background-color: #b4bccc;\r\n color: #fff;\r\n }\r\n }\r\n }\r\n}\r\n\r\n/* 页签全屏模式样式 */\r\n.main-container.fullscreen-mode {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100vw;\r\n height: 100vh;\r\n overflow: hidden;\r\n margin-left: 0 !important;\r\n transition: none !important;\r\n}\r\n\r\n.main-container.fullscreen-mode .fixed-header {\r\n display: block !important;\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n width: 100% !important;\r\n z-index: 1000;\r\n transition: none !important;\r\n}\r\n\r\n.main-container.fullscreen-mode .fixed-header .navbar {\r\n display: none !important;\r\n}\r\n\r\n.main-container.fullscreen-mode .app-main {\r\n position: fixed;\r\n top: 34px;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n margin: 0 !important;\r\n padding: 0 !important;\r\n height: calc(100vh - 34px) !important;\r\n min-height: calc(100vh - 34px) !important;\r\n overflow: auto;\r\n}\r\n</style>\r\n"],"mappings":"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","ignoreList":[]}]}