// ==UserScript==
// @name CSGO饰品2D/3D对比
// @namespace https://github.com/qianjiachun
// @version 2021.08.14.01
// @description 使用图像处理技术对CSGO饰品网站上的皮肤进行对比,可以快速分辨出饰品细微的差异,不用再手动来回切换对比了
// @author 小淳
// @match *://buff.163.com/goods*
// @match *://buff.163.com/market/csgo_inspect/3d?compare=true*
// @match *://spect.fp.ps.netease.com/*
// @match *://buff.163.com/compare3d*
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_deleteValue
// @grant GM_listValues
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/notice.js
// @require https://lib.baomitu.com/vue/3.0.11/vue.global.prod.js
// @require https://cdn.jsdelivr.net/npm/[email protected]/dist/comparison-slider.min.js
// @require https://cdn.jsdelivr.net/npm/[email protected]/src/canvas-compare.min.js
// @require https://cdn.jsdelivr.net/npm/@vueform/[email protected]/dist/slider.global.min.js
// ==/UserScript==
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "/dist/";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 28);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports) {
module.exports = Vue;
/***/ }),
/* 1 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var isOldIE = function isOldIE() {
var memo;
return function memorize() {
if (typeof memo === 'undefined') {
// Test for IE <= 9 as proposed by Browserhacks
// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
// Tests for existence of standard globals is to allow style-loader
// to operate correctly into non-standard environments
// @see https://github.com/webpack-contrib/style-loader/issues/177
memo = Boolean(window && document && document.all && !window.atob);
}
return memo;
};
}();
var getTarget = function getTarget() {
var memo = {};
return function memorize(target) {
if (typeof memo[target] === 'undefined') {
var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself
if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
try {
// This will throw an exception if access to iframe is blocked
// due to cross-origin restrictions
styleTarget = styleTarget.contentDocument.head;
} catch (e) {
// istanbul ignore next
styleTarget = null;
}
}
memo[target] = styleTarget;
}
return memo[target];
};
}();
var stylesInDom = [];
function getIndexByIdentifier(identifier) {
var result = -1;
for (var i = 0; i < stylesInDom.length; i++) {
if (stylesInDom[i].identifier === identifier) {
result = i;
break;
}
}
return result;
}
function modulesToDom(list, options) {
var idCountMap = {};
var identifiers = [];
for (var i = 0; i < list.length; i++) {
var item = list[i];
var id = options.base ? item[0] + options.base : item[0];
var count = idCountMap[id] || 0;
var identifier = "".concat(id, " ").concat(count);
idCountMap[id] = count + 1;
var index = getIndexByIdentifier(identifier);
var obj = {
css: item[1],
media: item[2],
sourceMap: item[3]
};
if (index !== -1) {
stylesInDom[index].references++;
stylesInDom[index].updater(obj);
} else {
stylesInDom.push({
identifier: identifier,
updater: addStyle(obj, options),
references: 1
});
}
identifiers.push(identifier);
}
return identifiers;
}
function insertStyleElement(options) {
var style = document.createElement('style');
var attributes = options.attributes || {};
if (typeof attributes.nonce === 'undefined') {
var nonce = true ? __webpack_require__.nc : undefined;
if (nonce) {
attributes.nonce = nonce;
}
}
Object.keys(attributes).forEach(function (key) {
style.setAttribute(key, attributes[key]);
});
if (typeof options.insert === 'function') {
options.insert(style);
} else {
var target = getTarget(options.insert || 'head');
if (!target) {
throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
}
target.appendChild(style);
}
return style;
}
function removeStyleElement(style) {
// istanbul ignore if
if (style.parentNode === null) {
return false;
}
style.parentNode.removeChild(style);
}
/* istanbul ignore next */
var replaceText = function replaceText() {
var textStore = [];
return function replace(index, replacement) {
textStore[index] = replacement;
return textStore.filter(Boolean).join('\n');
};
}();
function applyToSingletonTag(style, index, remove, obj) {
var css = remove ? '' : obj.media ? "@media ".concat(obj.media, " {").concat(obj.css, "}") : obj.css; // For old IE
/* istanbul ignore if */
if (style.styleSheet) {
style.styleSheet.cssText = replaceText(index, css);
} else {
var cssNode = document.createTextNode(css);
var childNodes = style.childNodes;
if (childNodes[index]) {
style.removeChild(childNodes[index]);
}
if (childNodes.length) {
style.insertBefore(cssNode, childNodes[index]);
} else {
style.appendChild(cssNode);
}
}
}
function applyToTag(style, options, obj) {
var css = obj.css;
var media = obj.media;
var sourceMap = obj.sourceMap;
if (media) {
style.setAttribute('media', media);
} else {
style.removeAttribute('media');
}
if (sourceMap && btoa) {
css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
} // For old IE
/* istanbul ignore if */
if (style.styleSheet) {
style.styleSheet.cssText = css;
} else {
while (style.firstChild) {
style.removeChild(style.firstChild);
}
style.appendChild(document.createTextNode(css));
}
}
var singleton = null;
var singletonCounter = 0;
function addStyle(obj, options) {
var style;
var update;
var remove;
if (options.singleton) {
var styleIndex = singletonCounter++;
style = singleton || (singleton = insertStyleElement(options));
update = applyToSingletonTag.bind(null, style, styleIndex, false);
remove = applyToSingletonTag.bind(null, style, styleIndex, true);
} else {
style = insertStyleElement(options);
update = applyToTag.bind(null, style, options);
remove = function remove() {
removeStyleElement(style);
};
}
update(obj);
return function updateStyle(newObj) {
if (newObj) {
if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {
return;
}
update(obj = newObj);
} else {
remove();
}
};
}
module.exports = function (list, options) {
options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
// tags it will allow on a page
if (!options.singleton && typeof options.singleton !== 'boolean') {
options.singleton = isOldIE();
}
list = list || [];
var lastIdentifiers = modulesToDom(list, options);
return function update(newList) {
newList = newList || [];
if (Object.prototype.toString.call(newList) !== '[object Array]') {
return;
}
for (var i = 0; i < lastIdentifiers.length; i++) {
var identifier = lastIdentifiers[i];
var index = getIndexByIdentifier(identifier);
stylesInDom[index].references--;
}
var newLastIdentifiers = modulesToDom(newList, options);
for (var _i = 0; _i < lastIdentifiers.length; _i++) {
var _identifier = lastIdentifiers[_i];
var _index = getIndexByIdentifier(_identifier);
if (stylesInDom[_index].references === 0) {
stylesInDom[_index].updater();
stylesInDom.splice(_index, 1);
}
}
lastIdentifiers = newLastIdentifiers;
};
};
/***/ }),
/* 2 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
// css base code, injected by the css-loader
// eslint-disable-next-line func-names
module.exports = function (useSourceMap) {
var list = []; // return the list of modules as css string
list.toString = function toString() {
return this.map(function (item) {
var content = cssWithMappingToString(item, useSourceMap);
if (item[2]) {
return "@media ".concat(item[2], " {").concat(content, "}");
}
return content;
}).join('');
}; // import a list of modules into the list
// eslint-disable-next-line func-names
list.i = function (modules, mediaQuery, dedupe) {
if (typeof modules === 'string') {
// eslint-disable-next-line no-param-reassign
modules = [[null, modules, '']];
}
var alreadyImportedModules = {};
if (dedupe) {
for (var i = 0; i < this.length; i++) {
// eslint-disable-next-line prefer-destructuring
var id = this[i][0];
if (id != null) {
alreadyImportedModules[id] = true;
}
}
}
for (var _i = 0; _i < modules.length; _i++) {
var item = [].concat(modules[_i]);
if (dedupe && alreadyImportedModules[item[0]]) {
// eslint-disable-next-line no-continue
continue;
}
if (mediaQuery) {
if (!item[2]) {
item[2] = mediaQuery;
} else {
item[2] = "".concat(mediaQuery, " and ").concat(item[2]);
}
}
list.push(item);
}
};
return list;
};
function cssWithMappingToString(item, useSourceMap) {
var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring
var cssMapping = item[3];
if (!cssMapping) {
return content;
}
if (useSourceMap && typeof btoa === 'function') {
var sourceMapping = toComment(cssMapping);
var sourceURLs = cssMapping.sources.map(function (source) {
return "/*# sourceURL=".concat(cssMapping.sourceRoot || '').concat(source, " */");
});
return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
}
return [content].join('\n');
} // Adapted from convert-source-map (MIT)
function toComment(sourceMap) {
// eslint-disable-next-line no-undef
var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64);
return "/*# ".concat(data, " */");
}
/***/ }),
/* 3 */
/***/ (function(module, exports, __webpack_require__) {
var api = __webpack_require__(1);
var content = __webpack_require__(13);
content = content.__esModule ? content.default : content;
if (typeof content === 'string') {
content = [[module.i, content, '']];
}
var options = {};
options.insert = "head";
options.singleton = false;
var update = api(content, options);
module.exports = content.locals || {};
/***/ }),
/* 4 */
/***/ (function(module, exports, __webpack_require__) {
var api = __webpack_require__(1);
var content = __webpack_require__(15);
content = content.__esModule ? content.default : content;
if (typeof content === 'string') {
content = [[module.i, content, '']];
}
var options = {};
options.insert = "head";
options.singleton = false;
var update = api(content, options);
module.exports = content.locals || {};
/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {
var api = __webpack_require__(1);
var content = __webpack_require__(23);
content = content.__esModule ? content.default : content;
if (typeof content === 'string') {
content = [[module.i, content, '']];
}
var options = {};
options.insert = "head";
options.singleton = false;
var update = api(content, options);
module.exports = content.locals || {};
/***/ }),
/* 6 */
/***/ (function(module, exports, __webpack_require__) {
var api = __webpack_require__(1);
var content = __webpack_require__(25);
content = content.__esModule ? content.default : content;
if (typeof content === 'string') {
content = [[module.i, content, '']];
}
var options = {};
options.insert = "head";
options.singleton = false;
var update = api(content, options);
module.exports = content.locals || {};
/***/ }),
/* 7 */
/***/ (function(module, exports, __webpack_require__) {
var api = __webpack_require__(1);
var content = __webpack_require__(27);
content = content.__esModule ? content.default : content;
if (typeof content === 'string') {
content = [[module.i, content, '']];
}
var options = {};
options.insert = "head";
options.singleton = false;
var update = api(content, options);
module.exports = content.locals || {};
/***/ }),
/* 8 */
/***/ (function(module, exports, __webpack_require__) {
var api = __webpack_require__(1);
var content = __webpack_require__(9);
content = content.__esModule ? content.default : content;
if (typeof content === 'string') {
content = [[module.i, content, '']];
}
var options = {};
options.insert = "head";
options.singleton = false;
var update = api(content, options);
module.exports = content.locals || {};
/***/ }),
/* 9 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".noticejs-top{top:0;width:100%!important}.noticejs-top .item{border-radius:0!important;margin:0!important}.noticejs-topRight{top:10px;right:10px}.noticejs-topLeft{top:10px;left:10px}.noticejs-topCenter{top:10px;left:50%;transform:translate(-50%)}.noticejs-middleLeft,.noticejs-middleRight{right:10px;top:50%;transform:translateY(-50%)}.noticejs-middleLeft{left:10px}.noticejs-middleCenter{top:50%;left:50%;transform:translate(-50%,-50%)}.noticejs-bottom{bottom:0;width:100%!important}.noticejs-bottom .item{border-radius:0!important;margin:0!important}.noticejs-bottomRight{bottom:10px;right:10px}.noticejs-bottomLeft{bottom:10px;left:10px}.noticejs-bottomCenter{bottom:10px;left:50%;transform:translate(-50%)}.noticejs{font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.noticejs .item{margin:0 0 10px;border-radius:3px;overflow:hidden}.noticejs .item .close{float:right;font-size:18px;font-weight:700;line-height:1;color:#fff;text-shadow:0 1px 0 #fff;opacity:1;margin-right:7px}.noticejs .item .close:hover{opacity:.5;color:#000}.noticejs .item a{color:#fff;border-bottom:1px dashed #fff}.noticejs .item a,.noticejs .item a:hover{text-decoration:none}.noticejs .success{background-color:#64ce83}.noticejs .success .noticejs-heading{background-color:#3da95c;color:#fff;padding:10px}.noticejs .success .noticejs-body{color:#fff;padding:10px}.noticejs .success .noticejs-body:hover{visibility:visible!important}.noticejs .success .noticejs-content{visibility:visible}.noticejs .info{background-color:#3ea2ff}.noticejs .info .noticejs-heading{background-color:#067cea;color:#fff;padding:10px}.noticejs .info .noticejs-body{color:#fff;padding:10px}.noticejs .info .noticejs-body:hover{visibility:visible!important}.noticejs .info .noticejs-content{visibility:visible}.noticejs .warning{background-color:#ff7f48}.noticejs .warning .noticejs-heading{background-color:#f44e06;color:#fff;padding:10px}.noticejs .warning .noticejs-body{color:#fff;padding:10px}.noticejs .warning .noticejs-body:hover{visibility:visible!important}.noticejs .warning .noticejs-content{visibility:visible}.noticejs .error{background-color:#e74c3c}.noticejs .error .noticejs-heading{background-color:#ba2c1d;color:#fff;padding:10px}.noticejs .error .noticejs-body{color:#fff;padding:10px}.noticejs .error .noticejs-body:hover{visibility:visible!important}.noticejs .error .noticejs-content{visibility:visible}.noticejs .progressbar{width:100%}.noticejs .progressbar .bar{width:1%;height:30px;background-color:#4caf50}.noticejs .success .noticejs-progressbar{width:100%;background-color:#64ce83;margin-top:-1px}.noticejs .success .noticejs-progressbar .noticejs-bar{width:100%;height:5px;background:#3da95c}.noticejs .info .noticejs-progressbar{width:100%;background-color:#3ea2ff;margin-top:-1px}.noticejs .info .noticejs-progressbar .noticejs-bar{width:100%;height:5px;background:#067cea}.noticejs .warning .noticejs-progressbar{width:100%;background-color:#ff7f48;margin-top:-1px}.noticejs .warning .noticejs-progressbar .noticejs-bar{width:100%;height:5px;background:#f44e06}.noticejs .error .noticejs-progressbar{width:100%;background-color:#e74c3c;margin-top:-1px}.noticejs .error .noticejs-progressbar .noticejs-bar{width:100%;height:5px;background:#ba2c1d}@keyframes noticejs-fadeOut{0%{opacity:1}to{opacity:0}}.noticejs-fadeOut{animation-name:noticejs-fadeOut}@keyframes noticejs-modal-in{to{opacity:.3}}@keyframes noticejs-modal-out{to{opacity:0}}.noticejs-rtl .noticejs-heading{direction:rtl}.noticejs-rtl .close{float:left!important;margin-left:7px;margin-right:0!important}.noticejs-rtl .noticejs-content{direction:rtl}.noticejs{position:fixed;z-index:10050;width:320px}.noticejs ::-webkit-scrollbar{width:8px}.noticejs ::-webkit-scrollbar-button{width:8px;height:5px}.noticejs ::-webkit-scrollbar-track{border-radius:10px}.noticejs ::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.5);border-radius:10px}.noticejs ::-webkit-scrollbar-thumb:hover{background:#fff}.noticejs-modal{position:fixed;width:100%;height:100%;background-color:#000;z-index:10000;opacity:.3;left:0;top:0}.noticejs-modal-open{opacity:0;animation:noticejs-modal-in .3s ease-out}.noticejs-modal-close{animation:noticejs-modal-out .3s ease-out;animation-fill-mode:forwards}", ""]);
// Exports
module.exports = exports;
/***/ }),
/* 10 */
/***/ (function(module, exports, __webpack_require__) {
var api = __webpack_require__(1);
var content = __webpack_require__(11);
content = content.__esModule ? content.default : content;
if (typeof content === 'string') {
content = [[module.i, content, '']];
}
var options = {};
options.insert = "head";
options.singleton = false;
var update = api(content, options);
module.exports = content.locals || {};
/***/ }),
/* 11 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".el-button {\r\n display: inline-block;\r\n line-height: 1;\r\n white-space: nowrap;\r\n cursor: pointer;\r\n background: #fff;\r\n border: 1px solid #dcdfe6;\r\n color: #606266;\r\n -webkit-appearance: none;\r\n text-align: center;\r\n box-sizing: border-box;\r\n outline: none;\r\n margin: 0;\r\n transition: .1s;\r\n font-weight: 500;\r\n -moz-user-select: none;\r\n -webkit-user-select: none;\r\n -ms-user-select: none;\r\n padding: 12px 20px;\r\n font-size: 14px;\r\n border-radius: 4px;\r\n}\r\n\r\n.el-button--primary {\r\n color: #fff;\r\n background-color: #409eff;\r\n border-color: #409eff;\r\n}\r\n\r\n.el-button--primary:hover {\r\n background: #66b1ff;\r\n border-color: #66b1ff;\r\n color: #fff;\r\n}\r\n\r\n.el-button.is-disabled, .el-button.is-disabled:focus, .el-button.is-disabled:hover {\r\n color: #c0c4cc;\r\n cursor: not-allowed;\r\n background-image: none;\r\n background-color: #fff;\r\n border-color: #ebeef5;\r\n}\r\n\r\n.el-button--success {\r\n color: #fff;\r\n background-color: #67c23a;\r\n border-color: #67c23a;\r\n}\r\n.el-button--success:hover {\r\n background: #85ce61;\r\n border-color: #85ce61;\r\n color: #fff;\r\n}\r\n\r\n.el-button--danger {\r\n color: #fff;\r\n background-color: #f56c6c;\r\n border-color: #f56c6c;\r\n}\r\n\r\n.el-button--danger:hover {\r\n background: #f78989;\r\n border-color: #f78989;\r\n color: #fff;\r\n}\r\n\r\n.el-button--warning {\r\n color: #fff;\r\n background-color: #e6a23c;\r\n border-color: #e6a23c;\r\n}\r\n\r\n.el-button--warning:focus, .el-button--warning:hover {\r\n background: #ebb563;\r\n border-color: #ebb563;\r\n color: #fff;\r\n}", ""]);
// Exports
module.exports = exports;
/***/ }),
/* 12 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_dist_stylePostLoader_js_node_modules_vue_loader_dist_index_js_ref_8_0_SkinInfo_vue_vue_type_style_index_0_id_c03073cc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3);
/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_dist_stylePostLoader_js_node_modules_vue_loader_dist_index_js_ref_8_0_SkinInfo_vue_vue_type_style_index_0_id_c03073cc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_dist_stylePostLoader_js_node_modules_vue_loader_dist_index_js_ref_8_0_SkinInfo_vue_vue_type_style_index_0_id_c03073cc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */
/***/ }),
/* 13 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, "\n.imgWrap[data-v-c03073cc] {\r\n text-align: center;\r\n background: url(https://buff.163.com/static/images/item_bg.png);\r\n background-size: cover;\r\n width: 88px;\r\n height: 66px;\n}\n.imgWrap img[data-v-c03073cc] {\r\n width: 66px;\r\n height: 66px;\r\n max-width: 88px;\n}\n.imgWrap .view-btn[data-v-c03073cc] {\r\n display: block;\r\n width: 48px;\r\n position: relative;\r\n top: -22px;\r\n left: 2px;\r\n color: white !important;\n}\n.infoWrap[data-v-c03073cc] {\r\n margin-left: 15px;\r\n display: flex;\r\n flex-direction: column;\r\n text-align: left;\r\n justify-content: flex-end;\n}\r\n", ""]);
// Exports
module.exports = exports;
/***/ }),
/* 14 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_dist_stylePostLoader_js_node_modules_vue_loader_dist_index_js_ref_8_0_CompareList_vue_vue_type_style_index_0_id_8a9384f8_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);
/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_dist_stylePostLoader_js_node_modules_vue_loader_dist_index_js_ref_8_0_CompareList_vue_vue_type_style_index_0_id_8a9384f8_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_dist_stylePostLoader_js_node_modules_vue_loader_dist_index_js_ref_8_0_CompareList_vue_vue_type_style_index_0_id_8a9384f8_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */
/***/ }),
/* 15 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, "\n.compare__table[data-v-8a9384f8] {\r\n width: 100%;\r\n margin-bottom: 1rem;\r\n color: rgb(29,30,35);\r\n border-collapse: collapse;\r\n border-spacing: 0;\r\n text-align: center;\n}\n.compare__table th[data-v-8a9384f8], .compare__table td[data-v-8a9384f8]{\r\n border: 1px solid #dee2e6;\r\n padding: .75rem;\n}\n.compare__table thead th[data-v-8a9384f8]{\r\n color: #fff;\r\n background-color: #343a40;\r\n border-color: #454d55;\n}\n.compare__table tbody[data-v-8a9384f8] {\r\n display: block;\r\n height: 400px;\r\n overflow-y: scroll;\r\n overflow-x: hidden;\n}\n.compare__table thead[data-v-8a9384f8],\r\n.compare__table tbody tr[data-v-8a9384f8] {\r\n display: table;\r\n width: 100%;\r\n table-layout: fixed;\n}\n.compare__table thead[data-v-8a9384f8] {\r\n width: calc( 100% - 4px)\n}\n.compare__table tbody tr[data-v-8a9384f8]:hover {\r\n background: rgb(245,245,245);\n}\n.list-footer[data-v-8a9384f8]{\r\n text-align: right;\n}\r\n", ""]);
// Exports
module.exports = exports;
/***/ }),
/* 16 */
/***/ (function(module, exports, __webpack_require__) {
var api = __webpack_require__(1);
var content = __webpack_require__(17);
content = content.__esModule ? content.default : content;
if (typeof content === 'string') {
content = [[module.i, content, '']];
}
var options = {};
options.insert = "head";
options.singleton = false;
var update = api(content, options);
module.exports = content.locals || {};
/***/ }),
/* 17 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".compare__wrap {\r\n position: absolute;\r\n z-index: 1015;\r\n}\r\n\r\n.compare__mask {\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.6);\r\n}\r\n\r\n.compare__dialog {\r\n padding: 10px;\r\n width: 800px;\r\n height: 500px;\r\n background-color: white;\r\n position: fixed;\r\n left: 0;\r\n right: 0;\r\n top: 250px;\r\n margin: auto;\r\n box-shadow: 0px 0px 10px 0px #888888;\r\n border-radius: 10px;\r\n}", ""]);
// Exports
module.exports = exports;
/***/ }),
/* 18 */
/***/ (function(module, exports, __webpack_require__) {
var api = __webpack_require__(1);
var content = __webpack_require__(19);
content = content.__esModule ? content.default : content;
if (typeof content === 'string') {
content = [[module.i, content, '']];
}
var options = {};
options.insert = "head";
options.singleton = false;
var update = api(content, options);
module.exports = content.locals || {};
/***/ }),
/* 19 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, "* {\r\n padding: 0;\r\n margin: 0;\r\n}\r\n\r\n.compare3d__iframe {\r\n width: 100%;\r\n height: 100vh;\r\n border: 0px solid white;\r\n}\r\n\r\n.compare3d__tips {\r\n position: fixed;\r\n color: rgba(255, 255, 255, 0.6);\r\n font-size: 14px;\r\n top: 70px;\r\n left: 10px;\r\n cursor: default;\r\n user-select: none;\r\n}\r\n\r\n.compare3d__watermark {\r\n position: fixed;\r\n right: 10px;\r\n top: 70px;\r\n color: rgba(255, 255, 255, 0.6);\r\n z-index: 1;\r\n cursor: pointer;\r\n font-size: 24px;\r\n user-select: none;\r\n}", ""]);
// Exports
module.exports = exports;
/***/ }),
/* 20 */
/***/ (function(module, exports, __webpack_require__) {
var api = __webpack_require__(1);
var content = __webpack_require__(21);
content = content.__esModule ? content.default : content;
if (typeof content === 'string') {
content = [[module.i, content, '']];
}
var options = {};
options.insert = "head";
options.singleton = false;
var update = api(content, options);
module.exports = content.locals || {};
/***/ }),
/* 21 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, "* {\r\n padding: 0;\r\n margin: 0;\r\n}\r\n\r\n.pdl-10 {\r\n padding-left: 10px;\r\n}\r\n\r\n.pdl-20 {\r\n padding-left: 20px;\r\n}\r\n\r\n.wrap {\r\n display: flex;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n.compare2d__watermark {\r\n position: fixed;\r\n right: 10px;\r\n top: 10px;\r\n color: rgba(255, 255, 255, 0.6);\r\n z-index: 1;\r\n cursor: pointer;\r\n font-size: 24px;\r\n user-select: none;\r\n}\r\n\r\n.skin1-info {\r\n position: fixed;\r\n left: 260px;\r\n bottom: 10px;\r\n color: rgba(255, 255, 255, 0.5);\r\n z-index: 1;\r\n cursor: pointer;\r\n font-size: 16px;\r\n}\r\n\r\n.skin2-info {\r\n position: fixed;\r\n right: 10px;\r\n bottom: 10px;\r\n color: rgba(255, 255, 255, 0.5);\r\n z-index: 1;\r\n cursor: pointer;\r\n font-size: 16px;\r\n}\r\n\r\n.menu {\r\n background-color: rgb(29,30,35);\r\n cursor: default;\r\n height: 100%;\r\n flex: 0 0 250px;\r\n color: rgba(255, 255, 255, 0.7);\r\n font-size: 16px;\r\n font-family: \"微软雅黑\";\r\n user-select:none;\r\n}\r\n\r\n.view {\r\n width: 100%;\r\n height: 100%;\r\n flex: 1;\r\n}\r\n\r\n.menu__title {\r\n text-align: center;\r\n font-size: 30px;\r\n font-weight: 600;\r\n margin-top: 15px;\r\n margin-bottom: 30px;\r\n color: #f6ca9d;\r\n}\r\n\r\n.sub__view {\r\n margin-bottom: 30px;\r\n}\r\n\r\n.view__title {\r\n font-size: 26px;\r\n font-weight: 600;\r\n margin-bottom: 10px;\r\n color: rgba(255, 255, 255, 0.9);\r\n}\r\n\r\n.view__item {\r\n cursor: pointer;\r\n height: 56px;\r\n line-height: 56px;\r\n}\r\n\r\n.view__item:hover {\r\n background-color: rgb(23,24,28);\r\n}\r\n\r\n.is-active {\r\n background-color: rgb(23,24,28);\r\n color: white;\r\n}\r\n\r\n.texture__title {\r\n font-size: 26px;\r\n font-weight: 600;\r\n margin-bottom: 10px;\r\n color: rgba(255, 255, 255, 0.9);\r\n}\r\n\r\n.texture__item {\r\n cursor: pointer;\r\n height: 56px;\r\n line-height: 56px;\r\n}\r\n\r\n.texture__item:hover {\r\n background-color: rgb(23,24,28);\r\n}", ""]);
// Exports
module.exports = exports;
/***/ }),
/* 22 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_dist_stylePostLoader_js_node_modules_vue_loader_dist_index_js_ref_8_0_Compare_vue_vue_type_style_index_0_id_cc8794de_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);
/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_dist_stylePostLoader_js_node_modules_vue_loader_dist_index_js_ref_8_0_Compare_vue_vue_type_style_index_0_id_cc8794de_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_dist_stylePostLoader_js_node_modules_vue_loader_dist_index_js_ref_8_0_Compare_vue_vue_type_style_index_0_id_cc8794de_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */
/***/ }),
/* 23 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, "\n.panel[data-v-cc8794de] {\r\n width: 250px;\r\n height: 45px;\r\n background-color: rgba(255, 255, 255, 0.2);\r\n position: fixed;\r\n left: 0;\r\n bottom: 0;\r\n z-index: 1;\r\n padding: 10px;\r\n box-sizing: border-box;\r\n color: rgba(255,255,255,0.7);\n}\n.panel__slider[data-v-cc8794de] {\r\n display: inline-block;\r\n width: 160px;\n}\n.panel__option[data-v-cc8794de] {\r\n margin-bottom: 10px;\n}\n.panel__option[data-v-cc8794de]:last-child {\r\n margin-bottom: 0px;\n}\r\n", ""]);
// Exports
module.exports = exports;
/***/ }),
/* 24 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _style_loader_dist_cjs_js_css_loader_dist_cjs_js_vue_loader_dist_stylePostLoader_js_default_css_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6);
/* harmony import */ var _style_loader_dist_cjs_js_css_loader_dist_cjs_js_vue_loader_dist_stylePostLoader_js_default_css_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_cjs_js_css_loader_dist_cjs_js_vue_loader_dist_stylePostLoader_js_default_css_vue_type_style_index_0_lang_css__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */
/***/ }),
/* 25 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, ".slider-target,.slider-target *{-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;touch-action:none;-ms-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box}.slider-target{position:relative}.slider-base,.slider-connects{width:100%;height:100%;position:relative;z-index:1}.slider-connects{overflow:hidden;z-index:0}.slider-connect,.slider-origin{will-change:transform;position:absolute;z-index:1;top:0;right:0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;-webkit-transform-style:preserve-3d;transform-origin:0 0;transform-style:flat}.slider-connect{height:100%;width:100%}.slider-origin{height:10%;width:10%}.slider-txt-dir-rtl.slider-horizontal .slider-origin{left:0;right:auto}.slider-vertical .slider-origin{width:0}.slider-horizontal .slider-origin{height:0}.slider-handle{-webkit-backface-visibility:hidden;backface-visibility:hidden;position:absolute}.slider-touch-area{height:100%;width:100%}.slider-state-tap .slider-connect,.slider-state-tap .slider-origin{transition:transform .3s}.slider-state-drag *{cursor:inherit!important}.slider-horizontal{height:6px}.slider-horizontal .slider-handle{width:16px;height:16px;top:-6px;right:-8px}.slider-vertical{width:6px;height:300px}.slider-vertical .slider-handle{width:16px;height:16px;top:-8px;right:-6px}.slider-txt-dir-rtl.slider-horizontal .slider-handle{left:-8px;right:auto}.slider-base{background-color:#d4e0e7}.slider-base,.slider-connects{border-radius:3px}.slider-connect{background:#41b883;cursor:pointer}.slider-draggable{cursor:ew-resize}.slider-vertical .slider-draggable{cursor:ns-resize}.slider-handle{width:16px;height:16px;border-radius:50%;background:#fff;border:0;right:-8px;box-shadow:.5px .5px 2px 1px rgba(0,0,0,.32);cursor:-webkit-grab;cursor:grab}.slider-handle:focus{outline:none}.slider-active{box-shadow:.5px .5px 2px 1px rgba(0,0,0,.42);cursor:-webkit-grabbing;cursor:grabbing}[disabled] .slider-connect{background:#b8b8b8}[disabled].slider-handle,[disabled] .slider-handle,[disabled].slider-target{cursor:not-allowed}[disabled] .slider-tooltip{background:#b8b8b8;border-color:#b8b8b8}.slider-tooltip{position:absolute;display:block;font-size:14px;font-weight:500;white-space:nowrap;padding:2px 5px;min-width:20px;text-align:center;color:#fff;border-radius:5px;border:1px solid #41b883;background:#41b883}.slider-horizontal .slider-tooltip{transform:translate(-50%);left:50%;bottom:24px}.slider-horizontal .slider-tooltip:before{content:\"\";position:absolute;bottom:-10px;left:50%;width:0;height:0;border:5px solid transparent;border-top-color:inherit;transform:translate(-50%)}.slider-vertical .slider-tooltip{transform:translateY(-50%);top:50%;right:24px}.slider-vertical .slider-tooltip:before{content:\"\";position:absolute;right:-10px;top:50%;width:0;height:0;border:5px solid transparent;border-left-color:inherit;transform:translateY(-50%)}.slider-horizontal .slider-origin>.slider-tooltip{transform:translate(50%);left:auto;bottom:14px}.slider-vertical .slider-origin>.slider-tooltip{transform:translateY(-18px);top:auto;right:18px}.slider-pips,.slider-pips *{box-sizing:border-box}.slider-pips{position:absolute;color:#999}.slider-value{position:absolute;white-space:nowrap;text-align:center}.slider-value-sub{color:#ccc;font-size:10px}.slider-marker{position:absolute;background:#ccc}.slider-marker-large,.slider-marker-sub{background:#aaa}.slider-pips-horizontal{padding:10px 0;height:80px;top:100%;left:0;width:100%}.slider-value-horizontal{transform:translate(-50%,50%)}.slider-rtl .slider-value-horizontal{transform:translate(50%,50%)}.slider-marker-horizontal.slider-marker{margin-left:-1px;width:2px;height:5px}.slider-marker-horizontal.slider-marker-sub{height:10px}.slider-marker-horizontal.slider-marker-large{height:15px}.slider-pips-vertical{padding:0 10px;height:100%;top:0;left:100%}.slider-value-vertical{transform:translateY(-50%);padding-left:25px}.slider-rtl .slider-value-vertical{transform:translateY(50%)}.slider-marker-vertical.slider-marker{width:5px;height:2px;margin-top:-1px}.slider-marker-vertical.slider-marker-sub{width:10px}.slider-marker-vertical.slider-marker-large{width:15px}", ""]);
// Exports
module.exports = exports;
/***/ }),
/* 26 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_dist_stylePostLoader_js_node_modules_vue_loader_dist_index_js_ref_8_0_Diff_vue_vue_type_style_index_1_id_990cae7c_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7);
/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_dist_stylePostLoader_js_node_modules_vue_loader_dist_index_js_ref_8_0_Diff_vue_vue_type_style_index_1_id_990cae7c_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_dist_stylePostLoader_js_node_modules_vue_loader_dist_index_js_ref_8_0_Diff_vue_vue_type_style_index_1_id_990cae7c_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__);
/* unused harmony reexport * */
/***/ }),
/* 27 */
/***/ (function(module, exports, __webpack_require__) {
// Imports
var ___CSS_LOADER_API_IMPORT___ = __webpack_require__(2);
exports = ___CSS_LOADER_API_IMPORT___(false);
// Module
exports.push([module.i, "\n.panel[data-v-990cae7c] {\r\n width: 250px;\r\n height: 110px;\r\n background-color: rgba(255, 255, 255, 0.2);\r\n position: fixed;\r\n left: 0;\r\n bottom: 0;\r\n z-index: 1;\r\n padding: 10px;\r\n box-sizing: border-box;\r\n color: rgba(255,255,255,0.7);\n}\n.panel__slider[data-v-990cae7c] {\r\n display: inline-block;\r\n width: 160px;\n}\n.panel__option[data-v-990cae7c] {\r\n margin-bottom: 10px;\n}\n.panel__option[data-v-990cae7c]:last-child {\r\n margin-bottom: 0px;\n}\r\n", ""]);
// Exports
module.exports = exports;
/***/ }),
/* 28 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// CONCATENATED MODULE: ./src/pages/buff/packages/AddButton/apis/index.js
function getAssetIdInfo(assetid) {
return fetch('https://buff.163.com/market/csgo_inspect/3d?assetid=' + assetid,{
method: 'GET',
mode: 'no-cors',
// cache: 'default',
// credentials: 'include',
})
}
// EXTERNAL MODULE: ./src/utils/Notice/Notice.css
var Notice = __webpack_require__(8);
// CONCATENATED MODULE: ./src/utils/index.js
// 公共
function getStrMiddle(str, before, after) {
// 取中间文本
let m = str.match(new RegExp(before + '(.*?)' + after));
return m ? m[1] : false;
}
function showMessage(msg, type) {
// type: success[green] error[red] warning[orange] info[blue]
new NoticeJs({
text: msg,
type: type,
position: 'bottomRight',
}).show();
}
function getBase64(imgUrl, callback) {
window.URL = window.URL || window.webkitURL;
var xhr = new XMLHttpRequest();
xhr.open("get", imgUrl, true);
xhr.responseType = "blob";
xhr.onload = function () {
if (this.status == 200) {
var blob = this.response;
let oFileReader = new FileReader();
oFileReader.onloadend = function (e) {
let base64 = e.target.result;
callback(base64);
};
oFileReader.readAsDataURL(blob);
}
}
xhr.send();
}
// 模拟鼠标按住拖动
function createMouseEvent(eventName, ofsx, ofsy) {
let evt = document.createEvent('MouseEvents');
evt = new MouseEvent(eventName, {
clientX: ofsx,
clientY: ofsy,
bubbles: true
})
evt.isMessage = true;
return evt
};
function setMouseMove(dom, x, y) {
dom.dispatchEvent(createMouseEvent("mousedown"));
dom.dispatchEvent(createMouseEvent("mousemove", x, y));
dom.dispatchEvent(createMouseEvent("mouseup"));
}
// 获取URL参数
function getQueryString(name) {
let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
let r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
}
// CONCATENATED MODULE: ./src/utils/DomHook/DomHook.js
class DomHook {
constructor(selector, isSubtree, callback) {
this.selector = selector;
this.isSubtree = isSubtree;
let targetNode = document.querySelector(this.selector);
if (targetNode == null) {
return;
}
let observer = new MutationObserver(function(mutations) {
callback(mutations);
});
this.observer = observer;
this.observer.observe(targetNode, { attributes: true, childList: true, subtree: this.isSubtree });
}
closeHook() {
this.observer.disconnect();
}
}
// CONCATENATED MODULE: ./src/utils/DomHook/index.js
// CONCATENATED MODULE: ./src/pages/buff/packages/AddButton/index.js
let skinImg // 皮肤图片地址
let skinName // 皮肤名字
const LIST_MAX = 50 // 对比列表最多存放数
function init() {
initDom();
initFunc();
let hook = new DomHook(".detail-tab-cont", false, (m => {
for (let i = 0; i < m[0].addedNodes.length; i++) {
let item = m[0].addedNodes[i];
if (item.id == "market-selling-list") {
initDom();
initFunc();
break;
}
}
}))
}
function initDom() {
skinImg = getSkinImg();
skinName = getSkinName();
let domList = document.getElementsByClassName("ctag btn_3d");
for (let i = 0; i < domList.length; i++) {
let parentDom = domList[i].parentNode;
let trDom = domList[i].parentNode.parentNode.parentNode.parentNode;
let assetid = domList[i].getAttribute("data-assetid");
let inspectUrl = trDom.getElementsByClassName("csgo_inspect_img_btn")[0].getAttribute("data-inspecturl");
if (!trDom.getElementsByClassName("btn-buy-order")[0]) {
// 有自己上架的饰品
continue;
}
let price = trDom.getElementsByClassName("btn-buy-order")[0].getAttribute("data-price");
let shopDom = trDom.getElementsByClassName("j_shoptip_handler")[0];
let shopHref = shopDom.href;
let shopImg = shopDom.getElementsByClassName("user-thum")[0].src;
let shopName = shopDom.innerText;
if (assetid) {
let dom = document.createElement("a");
dom.className = "ctag compare-btn";
dom.setAttribute("assetid", assetid);
dom.setAttribute("inspecturl", inspectUrl);
dom.setAttribute("price", price);
dom.setAttribute("shop_href", shopHref);
dom.setAttribute("shop_img", shopImg);
dom.setAttribute("shop_name", shopName);
dom.innerHTML = `<b><i class="icon"><svg t="1621435629962" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10682" width="16" height="16"><path d="M896 452.48l-211.2-122.88a32 32 0 0 0-16-4.48 32.64 32.64 0 0 0-16 4.48l-53.76 30.72v-60.16a32 32 0 0 0-16-27.52l-211.2-122.88a31.36 31.36 0 0 0-16-4.48 32 32 0 0 0-16 4.48L128 272a32 32 0 0 0-16 27.52V544a32 32 0 0 0 16 27.52l211.2 122.88a32 32 0 0 0 16 4.48 32.64 32.64 0 0 0 16-4.48l21.76-12.16V608l-37.76 21.76-179.84-104.32V320l180.48-105.6L535.68 320V526.08l-46.08 26.88v-55.04l14.08-8.32V416l-64 35.84a32 32 0 0 0-16 27.52V723.84a32 32 0 0 0 16 27.52l211.84 122.88a32 32 0 0 0 32 0l212.48-121.6a32 32 0 0 0 16-27.52V480a32 32 0 0 0-16-27.52z m-48.64 256l-179.84 103.68L488.32 704V626.56l94.08-54.4a32 32 0 0 0 16-27.52V434.56l69.76-40.32 179.84 104.32z" fill="#040c32" p-id="10683"></path></svg></i></b>加入对比`;
parentDom.appendChild(dom);
}
}
}
function initFunc() {
let domList = document.getElementsByClassName("compare-btn");
for (let i = 0; i < domList.length; i++) {
domList[i].addEventListener("click", () => {
let assetid = domList[i].getAttribute("assetid");
let inspectUrl = domList[i].getAttribute("inspecturl");
let price = domList[i].getAttribute("price");
let shopHref = domList[i].getAttribute("shop_href");
let shopImg = domList[i].getAttribute("shop_img");
let shopName = domList[i].getAttribute("shop_name");
onClickAddButton({
assetid: assetid,
inspectUrl: inspectUrl,
price: price,
shopHref: shopHref,
shopImg: shopImg,
shopName: shopName
});
})
}
}
function onClickAddButton(info) {
// GM_deleteValue("CompareList");
// return
getAssetIdInfo(info.assetid).then(res => {
return res.text();
}).then(ret => {
if (ret.indexOf("not found") !== -1 || ret.indexOf("不支持3D") !== -1) {
showMessage("解析该饰品失败", "error");
return;
}
let doc = (new DOMParser()).parseFromString(ret, 'text/html');
let scripts = doc.scripts;
let data = JSON.parse(getStrMiddle(scripts[scripts.length - 1].innerHTML, "var data = ", ";"));
if (!data) {
showMessage("解析失败 原因:未登录(不可用)", "error");
return;
}
let obj = getSkinData(data);
obj.assetid = info.assetid;
obj.price = info.price;
obj.inspectUrl = info.inspectUrl;
obj.shopHref = info.shopHref;
obj.shopImg = info.shopImg;
obj.shopName = info.shopName;
if (obj) {
if (saveData2CompareList(obj)) {
showMessage("加入对比列表成功", "success");
} else {
showMessage("该饰品已存在于对比列表", "error");
}
} else {
showMessage("加入对比列表失败", "error");
}
}).catch(err => {
console.log(err);
})
}
function getSkinData(data) {
// 构造对比列表里的饰品对象信息
let ret = data;
if (data) {
let i = 1;
let textureList = [];
while (`texture_${i}` in data.texture_url) {
if (i > 1000) {
// 熔断
break;
}
textureList.push({id: `texture_${i}`, url: data.texture_url[`texture_${i}`]});
i++;
}
ret.textures = textureList;
ret.name = skinName;
ret.img_url = skinImg;
ret.update_time = new Date().getTime();
}
return ret;
}
function getSkinImg() {
let ret = "";
let parent = document.getElementsByClassName("t_Center");
if (parent) {
let imgDom = parent[0].getElementsByTagName("img");
if (imgDom) {
ret = imgDom[0].src;
}
}
return ret;
}
function getSkinName() {
let ret = "";
let parent = document.getElementsByClassName("cru-goods");
for (let i = 0; i < parent.length; i++) {
let item = parent[i];
ret += item.innerText;
}
return ret;
}
function saveData2CompareList(data) {
let value = GM_getValue("CompareList") || "[]";
let compareList = JSON.parse(value);
let isExist = false;
for (let i = 0; i < compareList.length; i++) {
if (data.assetid == compareList[i].assetid) {
isExist = true;
break;
}
}
if (isExist) {
return false;
}
if (compareList.length > LIST_MAX) {
compareList.pop(); // 删除最后一个
}
compareList.unshift(data); // 插入到第一个
let text = JSON.stringify(compareList);
GM_setValue("CompareList", text);
return true;
}
/* harmony default export */ var AddButton = ({
init
});
// EXTERNAL MODULE: external "Vue"
var external_Vue_ = __webpack_require__(0);
// CONCATENATED MODULE: ./node_modules/vue-loader/dist/templateLoader.js??ref--5!./node_modules/vue-loader/dist??ref--8-0!./src/pages/buff/packages/CompareList/views/CompareList.vue?vue&type=template&id=8a9384f8&scoped=true
const _withId = /*#__PURE__*/Object(external_Vue_["withScopeId"])("data-v-8a9384f8")
Object(external_Vue_["pushScopeId"])("data-v-8a9384f8")
const _hoisted_1 = { class: "compare__table" }
const _hoisted_2 = /*#__PURE__*/Object(external_Vue_["createVNode"])("thead", null, [
/*#__PURE__*/Object(external_Vue_["createVNode"])("tr", null, [
/*#__PURE__*/Object(external_Vue_["createVNode"])("th", { width: "7%" }),
/*#__PURE__*/Object(external_Vue_["createVNode"])("th", null, "饰品"),
/*#__PURE__*/Object(external_Vue_["createVNode"])("th", { width: "25%" }, "卖家"),
/*#__PURE__*/Object(external_Vue_["createVNode"])("th", { width: "15%" }, "检视")
])
], -1 /* HOISTED */)
const _hoisted_3 = { width: "7%" }
const _hoisted_4 = {
width: "25%",
style: {"text-align":"left"}
}
const _hoisted_5 = { width: "15%" }
const _hoisted_6 = /*#__PURE__*/Object(external_Vue_["createVNode"])("b", null, [
/*#__PURE__*/Object(external_Vue_["createVNode"])("i", { class: "icon icon_3d" })
], -1 /* HOISTED */)
const _hoisted_7 = /*#__PURE__*/Object(external_Vue_["createTextVNode"])("3D检视")
const _hoisted_8 = /*#__PURE__*/Object(external_Vue_["createVNode"])("b", null, [
/*#__PURE__*/Object(external_Vue_["createVNode"])("i", { class: "icon icon_game" })
], -1 /* HOISTED */)
const _hoisted_9 = /*#__PURE__*/Object(external_Vue_["createTextVNode"])("社区服检视")
const _hoisted_10 = { class: "list-footer" }
const _hoisted_11 = /*#__PURE__*/Object(external_Vue_["createVNode"])("span", null, "全部删除", -1 /* HOISTED */)
const _hoisted_12 = /*#__PURE__*/Object(external_Vue_["createVNode"])("span", null, "删除选中", -1 /* HOISTED */)
const _hoisted_13 = /*#__PURE__*/Object(external_Vue_["createVNode"])("span", null, "2D对比", -1 /* HOISTED */)
const _hoisted_14 = /*#__PURE__*/Object(external_Vue_["createVNode"])("span", null, "3D对比", -1 /* HOISTED */)
Object(external_Vue_["popScopeId"])()
const render = /*#__PURE__*/_withId((_ctx, _cache, $props, $setup, $data, $options) => {
const _component_skin_info = Object(external_Vue_["resolveComponent"])("skin-info")
return (Object(external_Vue_["openBlock"])(), Object(external_Vue_["createBlock"])("div", null, [
Object(external_Vue_["createVNode"])("table", _hoisted_1, [
_hoisted_2,
Object(external_Vue_["createVNode"])("tbody", null, [
(Object(external_Vue_["openBlock"])(true), Object(external_Vue_["createBlock"])(external_Vue_["Fragment"], null, Object(external_Vue_["renderList"])(_ctx.compareList, (item, index) => {
return (Object(external_Vue_["openBlock"])(), Object(external_Vue_["createBlock"])("tr", {
key: item.assetid
}, [
Object(external_Vue_["createVNode"])("td", _hoisted_3, [
Object(external_Vue_["withDirectives"])(Object(external_Vue_["createVNode"])("input", {
type: "checkbox",
id: item.assetid,
value: item.assetid,
"onUpdate:modelValue": _cache[1] || (_cache[1] = $event => (_ctx.checkedList = $event))
}, null, 8 /* PROPS */, ["id", "value"]), [
[external_Vue_["vModelCheckbox"], _ctx.checkedList]
])
]),
Object(external_Vue_["createVNode"])("td", null, [
Object(external_Vue_["createVNode"])(_component_skin_info, {
assetid: item.assetid,
imgUrl: item.img_url,
viewUrl: item.inspectUrl,
skinName: item.name,
skinSeed: item.asset_info.paintseed,
skinWear: item.asset_info.paintwear
}, null, 8 /* PROPS */, ["assetid", "imgUrl", "viewUrl", "skinName", "skinSeed", "skinWear"])
]),
Object(external_Vue_["createVNode"])("td", _hoisted_4, [
Object(external_Vue_["createVNode"])("a", {
href: item.shopHref,
class: "j_shoptip_handler",
target: "_blank"
}, [
Object(external_Vue_["createVNode"])("img", {
src: item.shopImg,
width: "30",
height: "30",
class: "user-thum"
}, null, 8 /* PROPS */, ["src"]),
Object(external_Vue_["createTextVNode"])(" " + Object(external_Vue_["toDisplayString"])(item.shopName), 1 /* TEXT */)
], 8 /* PROPS */, ["href"])
]),
Object(external_Vue_["createVNode"])("td", _hoisted_5, [
Object(external_Vue_["createVNode"])("a", {
class: "ctag btn_3d",
"data-assetid": item.assetid
}, [
_hoisted_6,
_hoisted_7
], 8 /* PROPS */, ["data-assetid"]),
Object(external_Vue_["createVNode"])("a", {
class: "ctag btn_game_cms",
"data-assetid": item.assetid,
target: "_blank"
}, [
_hoisted_8,
_hoisted_9
], 8 /* PROPS */, ["data-assetid"])
])
]))
}), 128 /* KEYED_FRAGMENT */))
])
]),
Object(external_Vue_["createVNode"])("div", _hoisted_10, [
Object(external_Vue_["createVNode"])("button", {
onClick: _cache[2] || (_cache[2] = (...args) => (_ctx.onClickClear && _ctx.onClickClear(...args))),
type: "button",
class: "el-button el-button--danger",
style: {"margin-right":"10px","width":"100px"}
}, [
_hoisted_11
]),
Object(external_Vue_["createVNode"])("button", {
onClick: _cache[3] || (_cache[3] = (...args) => (_ctx.onClickDelete && _ctx.onClickDelete(...args))),
type: "button",
class: "el-button el-button--warning",
style: {"margin-right":"10px","width":"100px"}
}, [
_hoisted_12
]),
Object(external_Vue_["createVNode"])("button", {
onClick: _cache[4] || (_cache[4] = (...args) => (_ctx.onClickCompare2d && _ctx.onClickCompare2d(...args))),
type: "button",
class: "el-button el-button--primary compare2d-btn",
style: {"margin-right":"10px","width":"100px"}
}, [
_hoisted_13
]),
Object(external_Vue_["createVNode"])("button", {
onClick: _cache[5] || (_cache[5] = (...args) => (_ctx.onClickCompare3d && _ctx.onClickCompare3d(...args))),
type: "button",
class: "el-button el-button--success compare3d-btn",
style: {"width":"100px"}
}, [
_hoisted_14
])
])
]))
})
// CONCATENATED MODULE: ./src/pages/buff/packages/CompareList/views/CompareList.vue?vue&type=template&id=8a9384f8&scoped=true
// EXTERNAL MODULE: ./src/global/styles/index.css
var styles = __webpack_require__(10);
// CONCATENATED MODULE: ./node_modules/vue-loader/dist/templateLoader.js??ref--5!./node_modules/vue-loader/dist??ref--8-0!./src/pages/buff/packages/CompareList/components/SkinInfo.vue?vue&type=template&id=c03073cc&scoped=true
const SkinInfovue_type_template_id_c03073cc_scoped_true_withId = /*#__PURE__*/Object(external_Vue_["withScopeId"])("data-v-c03073cc")
Object(external_Vue_["pushScopeId"])("data-v-c03073cc")
const SkinInfovue_type_template_id_c03073cc_scoped_true_hoisted_1 = { style: {"display":"flex"} }
const SkinInfovue_type_template_id_c03073cc_scoped_true_hoisted_2 = { class: "imgWrap" }
const SkinInfovue_type_template_id_c03073cc_scoped_true_hoisted_3 = { class: "infoWrap" }
const SkinInfovue_type_template_id_c03073cc_scoped_true_hoisted_4 = { style: {"font-weight":"600"} }
const SkinInfovue_type_template_id_c03073cc_scoped_true_hoisted_5 = { style: {"font-size":"12px","color":"#959595"} }
const SkinInfovue_type_template_id_c03073cc_scoped_true_hoisted_6 = { style: {"font-size":"12px","color":"#959595"} }
const SkinInfovue_type_template_id_c03073cc_scoped_true_hoisted_7 = { class: "wear" }
const SkinInfovue_type_template_id_c03073cc_scoped_true_hoisted_8 = { class: "wear-pointer" }
const SkinInfovue_type_template_id_c03073cc_scoped_true_hoisted_9 = /*#__PURE__*/Object(external_Vue_["createStaticVNode"])("<div class=\"progress\" style=\"margin-bottom:5px;\" data-v-c03073cc><div class=\"progress-bar progress-bar-fn\" style=\"width:7%;\" title=\"崭新出厂\" data-v-c03073cc></div><div class=\"progress-bar progress-bar-success\" style=\"width:8%;\" title=\"略有磨损\" data-v-c03073cc></div><div class=\"progress-bar progress-bar-warning\" style=\"width:23%;\" title=\"久经沙场\" data-v-c03073cc></div><div class=\"progress-bar progress-bar-danger\" style=\"width:7%;\" title=\"破损不堪\" data-v-c03073cc></div><div class=\"progress-bar progress-bar-bs\" style=\"width:55%;\" title=\"战痕累累\" data-v-c03073cc></div></div>", 1)
Object(external_Vue_["popScopeId"])()
const SkinInfovue_type_template_id_c03073cc_scoped_true_render = /*#__PURE__*/SkinInfovue_type_template_id_c03073cc_scoped_true_withId((_ctx, _cache, $props, $setup, $data, $options) => {
return (Object(external_Vue_["openBlock"])(), Object(external_Vue_["createBlock"])("div", SkinInfovue_type_template_id_c03073cc_scoped_true_hoisted_1, [
Object(external_Vue_["createVNode"])("div", SkinInfovue_type_template_id_c03073cc_scoped_true_hoisted_2, [
Object(external_Vue_["createVNode"])("img", { src: _ctx.imgUrl }, null, 8 /* PROPS */, ["src"]),
Object(external_Vue_["createVNode"])("a", {
href: "javascript:;",
class: "shalow-btn shalow-btn-green csgo-inspect-view view-btn",
"data-assetid": _ctx.assetid,
"data-inspecturl": _ctx.viewUrl,
"data-inspectversion": "10",
"data-inspectsize": "2560x3538",
"data-contextid": "2"
}, "检视图", 8 /* PROPS */, ["data-assetid", "data-inspecturl"])
]),
Object(external_Vue_["createVNode"])("div", SkinInfovue_type_template_id_c03073cc_scoped_true_hoisted_3, [
Object(external_Vue_["createVNode"])("div", SkinInfovue_type_template_id_c03073cc_scoped_true_hoisted_4, Object(external_Vue_["toDisplayString"])(_ctx.skinName), 1 /* TEXT */),
Object(external_Vue_["createVNode"])("div", SkinInfovue_type_template_id_c03073cc_scoped_true_hoisted_5, "模板:" + Object(external_Vue_["toDisplayString"])(_ctx.skinSeed), 1 /* TEXT */),
Object(external_Vue_["createVNode"])("div", SkinInfovue_type_template_id_c03073cc_scoped_true_hoisted_6, "磨损:" + Object(external_Vue_["toDisplayString"])(_ctx.skinWear), 1 /* TEXT */),
Object(external_Vue_["createVNode"])("div", SkinInfovue_type_template_id_c03073cc_scoped_true_hoisted_7, [
Object(external_Vue_["createVNode"])("div", SkinInfovue_type_template_id_c03073cc_scoped_true_hoisted_8, [
Object(external_Vue_["createVNode"])("div", {
class: "wear-pointer-icon",
style: `left: ${Number(_ctx.skinWear*100)}%`
}, null, 4 /* STYLE */)
]),
SkinInfovue_type_template_id_c03073cc_scoped_true_hoisted_9
])
])
]))
})
// CONCATENATED MODULE: ./src/pages/buff/packages/CompareList/components/SkinInfo.vue?vue&type=template&id=c03073cc&scoped=true
// CONCATENATED MODULE: ./node_modules/vue-loader/dist??ref--8-0!./src/pages/buff/packages/CompareList/components/SkinInfo.vue?vue&type=script&lang=js
/* harmony default export */ var SkinInfovue_type_script_lang_js = (Object(external_Vue_["defineComponent"])({
props: [
"imgUrl", // 图片地址
"viewUrl", // 检视地址
"skinName", // 皮肤名
"skinWear", // 皮肤磨损
"skinSeed", // 皮肤模板
"assetid", // 皮肤id
],
setup(props, ctx) {
return {
};
},
}));
// CONCATENATED MODULE: ./src/pages/buff/packages/CompareList/components/SkinInfo.vue?vue&type=script&lang=js
// EXTERNAL MODULE: ./src/pages/buff/packages/CompareList/components/SkinInfo.vue?vue&type=style&index=0&id=c03073cc&scoped=true&lang=css
var SkinInfovue_type_style_index_0_id_c03073cc_scoped_true_lang_css = __webpack_require__(12);
// CONCATENATED MODULE: ./src/pages/buff/packages/CompareList/components/SkinInfo.vue
SkinInfovue_type_script_lang_js.render = SkinInfovue_type_template_id_c03073cc_scoped_true_render
SkinInfovue_type_script_lang_js.__scopeId = "data-v-c03073cc"
/* harmony default export */ var SkinInfo = (SkinInfovue_type_script_lang_js);
// CONCATENATED MODULE: ./node_modules/vue-loader/dist??ref--8-0!./src/pages/buff/packages/CompareList/views/CompareList.vue?vue&type=script&lang=js
/* harmony default export */ var CompareListvue_type_script_lang_js = (Object(external_Vue_["defineComponent"])({
components: {
SkinInfo: SkinInfo
},
setup(props, ctx) {
let compareList = Object(external_Vue_["ref"])([]);
let checkedList = Object(external_Vue_["ref"])([]);
const updateCompareList = () => {
compareList.value = JSON.parse(GM_getValue("CompareList") || "[]") || [];
}
const onClickDelete = () => {
for (let i = 0; i < checkedList.value.length; i++) {
let item = checkedList.value[i];
let index = getIndexByAssetId(item);
// 删除元素
compareList.value.splice(index, 1);
}
checkedList.value.length = 0;
// 处理完后保存数据
GM_setValue("CompareList", JSON.stringify(compareList.value));
// 刷新列表
updateCompareList();
}
const onClickClear = () => {
if (confirm("是否全部删除?")) {
GM_setValue("CompareList", "[]");
updateCompareList();
showMessage("全部删除成功", "success");
}
}
const getIndexByAssetId = (assetid) => {
let ret = -1;
for (let i = 0; i < compareList.value.length; i++) {
let item = compareList.value[i];
if (item.assetid == assetid) {
ret = i;
break;
}
}
return ret;
}
const onClickCompare2d = () => {
if (checkedList.value.length == 2) {
// 判断是不是同类饰品
let compare2dData = [];
let textureNum = 0;
let isSame = true;
for (let i = 0; i < checkedList.value.length; i++) {
let item = checkedList.value[i];
let index = getIndexByAssetId(item);
if (i == 0) {
textureNum = compareList.value[index].textures.length;
} else if (compareList.value[index].textures.length !== textureNum) {
isSame = false;
break;
}
compare2dData.push(compareList.value[index]);
}
if (isSame) {
GM_setValue("CompareList_2D", JSON.stringify(compare2dData));
window.open("https://spect.fp.ps.netease.com/compare2d");
} else {
showMessage("【2D对比】请选择同类型的饰品", "error");
}
} else {
showMessage("【2D对比】请选择2项", "error");
}
}
const onClickCompare3d = () => {
if (checkedList.value.length > 9) {
showMessage("【3D对比】最多选择9项", "error");
return;
}
let compare3dData = [];
for (let i = 0; i < checkedList.value.length; i++) {
let item = checkedList.value[i];
let index = getIndexByAssetId(item);
compare3dData.push(compareList.value[index]);
}
GM_setValue("CompareList_3D", JSON.stringify(compare3dData));
window.open("https://buff.163.com/compare3d");
}
Object(external_Vue_["onMounted"])(() => {
updateCompareList();
})
return {
compareList,
checkedList,
onClickDelete, onClickCompare2d, onClickCompare3d, onClickClear
}
},
}));
// CONCATENATED MODULE: ./src/pages/buff/packages/CompareList/views/CompareList.vue?vue&type=script&lang=js
// EXTERNAL MODULE: ./src/pages/buff/packages/CompareList/views/CompareList.vue?vue&type=style&index=0&id=8a9384f8&scoped=true&lang=css
var CompareListvue_type_style_index_0_id_8a9384f8_scoped_true_lang_css = __webpack_require__(14);
// CONCATENATED MODULE: ./src/pages/buff/packages/CompareList/views/CompareList.vue
CompareListvue_type_script_lang_js.render = render
CompareListvue_type_script_lang_js.__scopeId = "data-v-8a9384f8"
/* harmony default export */ var CompareList = (CompareListvue_type_script_lang_js);
// CONCATENATED MODULE: ./src/pages/buff/packages/CompareList/views/index.js
// EXTERNAL MODULE: ./src/pages/buff/packages/CompareList/styles/index.css
var CompareList_styles = __webpack_require__(16);
// CONCATENATED MODULE: ./src/pages/buff/packages/CompareList/index.js
function CompareList_init() {
CompareList_initDom();
CompareList_initFunc();
// createApp(CompareList).mount("#j_mybackpack");
}
function CompareList_initDom() {
let a = document.createElement("li");
a.className = "j_drop-handler";
a.id = "comparelist"
a.innerHTML = `<a href="javascript: void(0);"><strong>对比列表</strong></a> <i class="icon icon_new" style="display: none;"></i>`
let b = document.querySelector(".nav > ul");
b.appendChild(a);
}
function CompareList_initFunc() {
let body = document.body;
document.getElementById("comparelist").addEventListener("click", () => {
onClickCloseCompareList();
let a = document.createElement("div");
a.className = "compare__wrap";
a.style.width = `${body.offsetWidth}px`;
a.style.height = `${body.offsetHeight}px`;
a.innerHTML = `
<div class="compare__dialog" id="compare__app">
</div>
<div class="compare__mask"></div>
`
body.insertBefore(a, body.childNodes[0]);
document.getElementsByClassName("compare__mask")[0].addEventListener("click", () => {
onClickCloseCompareList();
});
let app = Object(external_Vue_["createApp"])(CompareList);
app.mount("#compare__app");
// createApp(CompareList).mount("#compare__app");
// createApp(CompareList).mount("#compare__app");
// console.log(JSON.parse(GM_getValue("CompareList") || "[]"))
});
}
function onClickCloseCompareList() {
let lastDom = document.getElementsByClassName("compare__wrap")[0];
if (lastDom) {
lastDom.remove();
}
}
/* harmony default export */ var packages_CompareList = ({
init: CompareList_init
});
// EXTERNAL MODULE: ./src/pages/buff/packages/Compare3D/styles/index.css
var Compare3D_styles = __webpack_require__(18);
// CONCATENATED MODULE: ./src/pages/buff/packages/Compare3D/index.js
// 1. 收集所有的模型iframe
// 2. 给每个iframe设置拖拽事件
// 3. 将事件传给父页面
// 4. 父页面将事件传递给其他的子页面
function Compare3D_init() {
clearDefaultHtml();
Compare3D_initDom();
initMessage(handleMessage);
Compare3D_initFunc();
}
function clearDefaultHtml() {
document.title = "CSGO饰品对比 - 3D";
document.body.innerHTML = "";
document.body.style.background = "";
document.querySelectorAll("link").forEach(item => item.remove())
}
function getModelLinks() {
let ret = [];
let data = JSON.parse(GM_getValue("CompareList_3D") || "[]") || [];
for (let i = 0; i < data.length; i++) {
let item = data[i];
ret.push("https://buff.163.com/market/csgo_inspect/3d?compare=true&assetid=" + item.assetid);
}
return ret;
}
function Compare3D_initDom() {
let links = getModelLinks();
let html = `
<div class="compare3d__tips">
<span>使用说明:</span>
<br/>
<span>1. 尽量以直线轨迹拖动,请勿按住来回拖动否则会不同步</span>
<br/>
<span>2. 按键盘1~9键可以快速切换模型</span>
<br/>
<span>3. 按回车键可让所有模型归位</span>
<br/>
<span>4. 请勿在F12下操作,否则会不同步</span>
<br/>
<span>5. 模型加载需要时间,请全部加载完再操作</span>
</div>
<div class="compare3d__watermark">
<span>--By 小淳</span>
</div>
`;
for (let i = 0; i < links.length; i++) {
// id用于锚点跳转
html += `<iframe id="model${i+1}" class="compare3d__iframe" src="${links[i]}&index=${i+1}"></iframe>`
}
let a = document.createElement("div");
a.className = "compare3d__wrap";
a.innerHTML = html;
document.body.appendChild(a);
}
function Compare3D_initFunc() {
// 父页面锚点快捷键实现
document.addEventListener("keydown", e => {
location.href = "https://buff.163.com/compare3d#model" + e.key;
})
document.getElementsByClassName("compare3d__watermark")[0].addEventListener("click", (e) => {
e.stopPropagation();
window.open("https://github.com/qianjiachun/csgo-skin-compare");
})
document.getElementsByClassName("compare3d__tips")[0].onclick = (e) => {
e.stopPropagation();
}
}
function initMessage(callback) {
window.addEventListener("message", (e) => {
callback(e.data);
})
}
function handleMessage(msg) {
let models = document.getElementsByClassName("compare3d__iframe");
switch (msg.cmd) {
case "keydown":
// iframe按下键盘,用于锚点跳转
if (msg.value == "Enter") {
// 重置
for (let i = 0; i < models.length; i++) {
postMessage(models[i].contentWindow, {
cmd: "reset",
value: 0
});
}
} else if (!isNaN(msg.value)) {
location.href = "https://buff.163.com/compare3d#model" + msg.value;
}
break;
case "rotate":
// 得到旋转信息,旋转其他的model
for (let i = 0; i < models.length; i++) {
if (Number(msg.index) !== i+1) {
// 排除自己
postMessage(models[i].contentWindow, {
cmd: "rotate",
value: msg.value
});
}
}
break;
default:
break;
}
}
function postMessage(dom, msg) {
dom.postMessage(msg);
}
/* harmony default export */ var Compare3D = ({
init: Compare3D_init
});
// CONCATENATED MODULE: ./src/pages/buff/packages/Inspect3D/index.js
// 每个iframe的子页面
let Inspect3D_index;
let isMouseDown = false;
let mouseDownInfo = {};
let mouseMoveInfo = {};
function Inspect3D_init() {
Inspect3D_index = getQueryString("index");
Inspect3D_initMessage(Inspect3D_handleMessage);
Inspect3D_initFunc();
}
function Inspect3D_initMessage(callback) {
window.addEventListener("message", e => {
callback(e.data);
})
}
function Inspect3D_handleMessage(msg) {
let dom = document.querySelector("canvas");
switch (msg.cmd) {
case "rotate":
setMouseMove(dom, msg.value.x, msg.value.y);
break;
case "reset":
buffManager.resetScene();
break;
default:
break;
}
}
function Inspect3D_initFunc() {
let dom = document.querySelector("canvas");
// 锚点切换
window.addEventListener("keydown", e => {
Inspect3D_postMessage({
cmd: "keydown",
value: e.key
})
})
// 鼠标拖拽
dom.addEventListener("mousedown", (e) => {
if (e.isMessage) {
return;
}
isMouseDown = true;
mouseDownInfo = {
x: e.pageX,
y: e.pageY
}
})
dom.addEventListener("mousemove", (e) => {
if (e.isMessage) {
return;
}
if (isMouseDown) {
mouseMoveInfo = {
x: e.pageX - mouseDownInfo.x,
y: e.pageY - mouseDownInfo.y
}
}
})
document.body.addEventListener("mouseup", (e) => {
if (e.isMessage) {
return;
}
console.log(mouseMoveInfo)
isMouseDown = false;
Inspect3D_postMessage({
cmd: "rotate",
index: Inspect3D_index,
value: mouseMoveInfo
});
})
document.getElementById("pc").onclick = (e) => {
// 阻止操作面板影响
e.stopPropagation();
}
}
function Inspect3D_postMessage(msg) {
window.parent.postMessage(msg);
}
/* harmony default export */ var Inspect3D = ({
init: Inspect3D_init
});
// CONCATENATED MODULE: ./src/pages/buff/packages/index.js
function initPkg() {
if (location.href.indexOf("goods") !== -1) {
let timer = setInterval(() => {
if (document.getElementsByClassName("t_Left")) {
initMarket();
clearInterval(timer);
}
}, 300);
} else if (location.href.indexOf("compare3d") !== -1) {
initCompare3D();
} else if (location.href.indexOf("market/csgo_inspect/3d") !== -1) {
initInspect3D();
}
}
function initMarket() {
AddButton.init();
packages_CompareList.init();
}
function initCompare3D() {
Compare3D.init();
}
function initInspect3D() {
Inspect3D.init();
}
// CONCATENATED MODULE: ./src/pages/buff/index.js
function beforeInit() {
}
function buff_init() {
beforeInit();
initPkg();
}
/* harmony default export */ var buff = ({
init: buff_init
});
// EXTERNAL MODULE: ./src/pages/spect/packages/Compare2D/styles/index.css
var Compare2D_styles = __webpack_require__(20);
// CONCATENATED MODULE: ./node_modules/vue-loader/dist/templateLoader.js??ref--5!./node_modules/vue-loader/dist??ref--8-0!./src/pages/spect/packages/Compare2D/views/Compare.vue?vue&type=template&id=cc8794de&scoped=true
const Comparevue_type_template_id_cc8794de_scoped_true_withId = /*#__PURE__*/Object(external_Vue_["withScopeId"])("data-v-cc8794de")
Object(external_Vue_["pushScopeId"])("data-v-cc8794de")
const Comparevue_type_template_id_cc8794de_scoped_true_hoisted_1 = { class: "panel" }
const Comparevue_type_template_id_cc8794de_scoped_true_hoisted_2 = { class: "panel__option" }
const Comparevue_type_template_id_cc8794de_scoped_true_hoisted_3 = /*#__PURE__*/Object(external_Vue_["createVNode"])("span", null, "明亮度:", -1 /* HOISTED */)
Object(external_Vue_["popScopeId"])()
const Comparevue_type_template_id_cc8794de_scoped_true_render = /*#__PURE__*/Comparevue_type_template_id_cc8794de_scoped_true_withId((_ctx, _cache, $props, $setup, $data, $options) => {
const _component_Slider = Object(external_Vue_["resolveComponent"])("Slider")
return (Object(external_Vue_["openBlock"])(), Object(external_Vue_["createBlock"])("div", {
class: "ComparisonSlider",
style: _ctx.styleWrap
}, [
Object(external_Vue_["createVNode"])("div", Comparevue_type_template_id_cc8794de_scoped_true_hoisted_1, [
Object(external_Vue_["createVNode"])("div", Comparevue_type_template_id_cc8794de_scoped_true_hoisted_2, [
Comparevue_type_template_id_cc8794de_scoped_true_hoisted_3,
Object(external_Vue_["createVNode"])(_component_Slider, {
class: "panel__slider",
modelValue: _ctx.brightnessValue,
"onUpdate:modelValue": _cache[1] || (_cache[1] = $event => (_ctx.brightnessValue = $event)),
tooltips: false,
max: 20,
step: -1,
onUpdate: _ctx.onUpdateSliderBrightness
}, null, 8 /* PROPS */, ["modelValue", "onUpdate"])
])
]),
Object(external_Vue_["createVNode"])("div", {
class: "ComparisonSlider__Before",
style: _ctx.styleBefore,
ref: "before"
}, null, 4 /* STYLE */),
Object(external_Vue_["createVNode"])("div", {
class: "ComparisonSlider__After",
style: _ctx.styleAfter,
ref: "after"
}, null, 4 /* STYLE */)
], 4 /* STYLE */))
})
// CONCATENATED MODULE: ./src/pages/spect/packages/Compare2D/views/Compare.vue?vue&type=template&id=cc8794de&scoped=true
// CONCATENATED MODULE: ./node_modules/@vueform/slider/dist/slider.js
function slider_l(t){return-1!==[null,void 0,!1].indexOf(t)}function slider_c(t){var e={exports:{}};return t(e,e.exports),e.exports}function slider_f(t){return(slider_f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var slider_p=slider_c((function(t,e){t.exports=function(){var t=["decimals","thousand","mark","prefix","suffix","encoder","decoder","negativeBefore","negative","edit","undo"];function e(t){return t.split("").reverse().join("")}function r(t,e){return t.substring(0,e.length)===e}function n(t,e){return t.slice(-1*e.length)===e}function i(t,e,r){if((t[e]||t[r])&&t[e]===t[r])throw new Error(e)}function o(t){return"number"==typeof t&&isFinite(t)}function a(t,e){return t=t.toString().split("e"),(+((t=(t=Math.round(+(t[0]+"e"+(t[1]?+t[1]+e:e)))).toString().split("e"))[0]+"e"+(t[1]?+t[1]-e:-e))).toFixed(e)}function s(t,r,n,i,s,u,l,c,f,p,d,h){var m,v,g,b=h,y="",x="";return u&&(h=u(h)),!!o(h)&&(!1!==t&&0===parseFloat(h.toFixed(t))&&(h=0),h<0&&(m=!0,h=Math.abs(h)),!1!==t&&(h=a(h,t)),-1!==(h=h.toString()).indexOf(".")?(g=(v=h.split("."))[0],n&&(y=n+v[1])):g=h,r&&(g=e(g).match(/.{1,3}/g),g=e(g.join(e(r)))),m&&c&&(x+=c),i&&(x+=i),m&&f&&(x+=f),x+=g,x+=y,s&&(x+=s),p&&(x=p(x,b)),x)}function u(t,e,i,a,s,u,l,c,f,p,d,h){var m,v="";return d&&(h=d(h)),!(!h||"string"!=typeof h)&&(c&&r(h,c)&&(h=h.replace(c,""),m=!0),a&&r(h,a)&&(h=h.replace(a,"")),f&&r(h,f)&&(h=h.replace(f,""),m=!0),s&&n(h,s)&&(h=h.slice(0,-1*s.length)),e&&(h=h.split(e).join("")),i&&(h=h.replace(i,".")),m&&(v+="-"),""!==(v=(v+=h).replace(/[^0-9\.\-.]/g,""))&&(v=Number(v),l&&(v=l(v)),!!o(v)&&v))}function l(e){var r,n,o,a={};for(void 0===e.suffix&&(e.suffix=e.postfix),r=0;r<t.length;r+=1)if(void 0===(o=e[n=t[r]]))"negative"!==n||a.negativeBefore?"mark"===n&&"."!==a.thousand?a[n]=".":a[n]=!1:a[n]="-";else if("decimals"===n){if(!(o>=0&&o<8))throw new Error(n);a[n]=o}else if("encoder"===n||"decoder"===n||"edit"===n||"undo"===n){if("function"!=typeof o)throw new Error(n);a[n]=o}else{if("string"!=typeof o)throw new Error(n);a[n]=o}return i(a,"mark","thousand"),i(a,"prefix","negative"),i(a,"prefix","negativeBefore"),a}function c(e,r,n){var i,o=[];for(i=0;i<t.length;i+=1)o.push(e[t[i]]);return o.push(n),r.apply("",o)}function p(t){if(!(this instanceof p))return new p(t);"object"===slider_f(t)&&(t=l(t),this.to=function(e){return c(t,s,e)},this.from=function(e){return c(t,u,e)})}return p}()}));function slider_d(t){return(slider_d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var h=slider_c((function(t,e){t.exports=function(){var t="14.6.3";function e(t){return"object"===slider_d(t)&&"function"==typeof t.to&&"function"==typeof t.from}function r(t){t.parentElement.removeChild(t)}function n(t){return null!=t}function i(t){t.preventDefault()}function o(t){return t.filter((function(t){return!this[t]&&(this[t]=!0)}),{})}function a(t,e){return Math.round(t/e)*e}function s(t,e){var r=t.getBoundingClientRect(),n=t.ownerDocument,i=n.documentElement,o=g(n);return/webkit.*Chrome.*Mobile/i.test(navigator.userAgent)&&(o.x=0),e?r.top+o.y-i.clientTop:r.left+o.x-i.clientLeft}function u(t){return"number"==typeof t&&!isNaN(t)&&isFinite(t)}function l(t,e,r){r>0&&(h(t,e),setTimeout((function(){m(t,e)}),r))}function c(t){return Math.max(Math.min(t,100),0)}function f(t){return Array.isArray(t)?t:[t]}function p(t){var e=(t=String(t)).split(".");return e.length>1?e[1].length:0}function h(t,e){t.classList&&!/\s/.test(e)?t.classList.add(e):t.className+=" "+e}function m(t,e){t.classList&&!/\s/.test(e)?t.classList.remove(e):t.className=t.className.replace(new RegExp("(^|\\b)"+e.split(" ").join("|")+"(\\b|$)","gi")," ")}function v(t,e){return t.classList?t.classList.contains(e):new RegExp("\\b"+e+"\\b").test(t.className)}function g(t){var e=void 0!==window.pageXOffset,r="CSS1Compat"===(t.compatMode||"");return{x:e?window.pageXOffset:r?t.documentElement.scrollLeft:t.body.scrollLeft,y:e?window.pageYOffset:r?t.documentElement.scrollTop:t.body.scrollTop}}function b(){return window.navigator.pointerEnabled?{start:"pointerdown",move:"pointermove",end:"pointerup"}:window.navigator.msPointerEnabled?{start:"MSPointerDown",move:"MSPointerMove",end:"MSPointerUp"}:{start:"mousedown touchstart",move:"mousemove touchmove",end:"mouseup touchend"}}function y(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("test",null,e)}catch(t){}return t}function x(){return window.CSS&&CSS.supports&&CSS.supports("touch-action","none")}function S(t,e){return 100/(e-t)}function w(t,e,r){return 100*e/(t[r+1]-t[r])}function E(t,e){return w(t,t[0]<0?e+Math.abs(t[0]):e-t[0],0)}function C(t,e){return e*(t[1]-t[0])/100+t[0]}function N(t,e){for(var r=1;t>=e[r];)r+=1;return r}function P(t,e,r){if(r>=t.slice(-1)[0])return 100;var n=N(r,t),i=t[n-1],o=t[n],a=e[n-1],s=e[n];return a+E([i,o],r)/S(a,s)}function A(t,e,r){if(r>=100)return t.slice(-1)[0];var n=N(r,e),i=t[n-1],o=t[n],a=e[n-1];return C([i,o],(r-a)*S(a,e[n]))}function k(t,e,r,n){if(100===n)return n;var i=N(n,t),o=t[i-1],s=t[i];return r?n-o>(s-o)/2?s:o:e[i-1]?t[i-1]+a(n-t[i-1],e[i-1]):n}function U(e,r,n){var i;if("number"==typeof r&&(r=[r]),!Array.isArray(r))throw new Error("noUiSlider ("+t+"): 'range' contains invalid value.");if(!u(i="min"===e?0:"max"===e?100:parseFloat(e))||!u(r[0]))throw new Error("noUiSlider ("+t+"): 'range' value isn't numeric.");n.xPct.push(i),n.xVal.push(r[0]),i?n.xSteps.push(!isNaN(r[1])&&r[1]):isNaN(r[1])||(n.xSteps[0]=r[1]),n.xHighestCompleteStep.push(0)}function V(t,e,r){if(e)if(r.xVal[t]!==r.xVal[t+1]){r.xSteps[t]=w([r.xVal[t],r.xVal[t+1]],e,0)/S(r.xPct[t],r.xPct[t+1]);var n=(r.xVal[t+1]-r.xVal[t])/r.xNumSteps[t],i=Math.ceil(Number(n.toFixed(3))-1),o=r.xVal[t]+r.xNumSteps[t]*i;r.xHighestCompleteStep[t]=o}else r.xSteps[t]=r.xHighestCompleteStep[t]=r.xVal[t]}function M(t,e,r){var n;this.xPct=[],this.xVal=[],this.xSteps=[r||!1],this.xNumSteps=[!1],this.xHighestCompleteStep=[],this.snap=e;var i=[];for(n in t)t.hasOwnProperty(n)&&i.push([t[n],n]);for(i.length&&"object"===slider_d(i[0][0])?i.sort((function(t,e){return t[0][0]-e[0][0]})):i.sort((function(t,e){return t[0]-e[0]})),n=0;n<i.length;n++)U(i[n][1],i[n][0],this);for(this.xNumSteps=this.xSteps.slice(0),n=0;n<this.xNumSteps.length;n++)V(n,this.xNumSteps[n],this)}M.prototype.getDistance=function(e){var r,n=[];for(r=0;r<this.xNumSteps.length-1;r++){var i=this.xNumSteps[r];if(i&&e/i%1!=0)throw new Error("noUiSlider ("+t+"): 'limit', 'margin' and 'padding' of "+this.xPct[r]+"% range must be divisible by step.");n[r]=w(this.xVal,e,r)}return n},M.prototype.getAbsoluteDistance=function(t,e,r){var n,i=0;if(t<this.xPct[this.xPct.length-1])for(;t>this.xPct[i+1];)i++;else t===this.xPct[this.xPct.length-1]&&(i=this.xPct.length-2);r||t!==this.xPct[i+1]||i++;var o=1,a=e[i],s=0,u=0,l=0,c=0;for(n=r?(t-this.xPct[i])/(this.xPct[i+1]-this.xPct[i]):(this.xPct[i+1]-t)/(this.xPct[i+1]-this.xPct[i]);a>0;)s=this.xPct[i+1+c]-this.xPct[i+c],e[i+c]*o+100-100*n>100?(u=s*n,o=(a-100*n)/e[i+c],n=1):(u=e[i+c]*s/100*o,o=0),r?(l-=u,this.xPct.length+c>=1&&c--):(l+=u,this.xPct.length-c>=1&&c++),a=e[i+c]*o;return t+l},M.prototype.toStepping=function(t){return t=P(this.xVal,this.xPct,t)},M.prototype.fromStepping=function(t){return A(this.xVal,this.xPct,t)},M.prototype.getStep=function(t){return t=k(this.xPct,this.xSteps,this.snap,t)},M.prototype.getDefaultStep=function(t,e,r){var n=N(t,this.xPct);return(100===t||e&&t===this.xPct[n-1])&&(n=Math.max(n-1,1)),(this.xVal[n]-this.xVal[n-1])/r},M.prototype.getNearbySteps=function(t){var e=N(t,this.xPct);return{stepBefore:{startValue:this.xVal[e-2],step:this.xNumSteps[e-2],highestStep:this.xHighestCompleteStep[e-2]},thisStep:{startValue:this.xVal[e-1],step:this.xNumSteps[e-1],highestStep:this.xHighestCompleteStep[e-1]},stepAfter:{startValue:this.xVal[e],step:this.xNumSteps[e],highestStep:this.xHighestCompleteStep[e]}}},M.prototype.countStepDecimals=function(){var t=this.xNumSteps.map(p);return Math.max.apply(null,t)},M.prototype.convert=function(t){return this.getStep(this.toStepping(t))};var D={to:function(t){return void 0!==t&&t.toFixed(2)},from:Number},O={target:"target",base:"base",origin:"origin",handle:"handle",handleLower:"handle-lower",handleUpper:"handle-upper",touchArea:"touch-area",horizontal:"horizontal",vertical:"vertical",background:"background",connect:"connect",connects:"connects",ltr:"ltr",rtl:"rtl",textDirectionLtr:"txt-dir-ltr",textDirectionRtl:"txt-dir-rtl",draggable:"draggable",drag:"state-drag",tap:"state-tap",active:"active",tooltip:"tooltip",pips:"pips",pipsHorizontal:"pips-horizontal",pipsVertical:"pips-vertical",marker:"marker",markerHorizontal:"marker-horizontal",markerVertical:"marker-vertical",markerNormal:"marker-normal",markerLarge:"marker-large",markerSub:"marker-sub",value:"value",valueHorizontal:"value-horizontal",valueVertical:"value-vertical",valueNormal:"value-normal",valueLarge:"value-large",valueSub:"value-sub"},F={tooltips:".__tooltips",aria:".__aria"};function L(r){if(e(r))return!0;throw new Error("noUiSlider ("+t+"): 'format' requires 'to' and 'from' methods.")}function j(e,r){if(!u(r))throw new Error("noUiSlider ("+t+"): 'step' is not numeric.");e.singleStep=r}function z(e,r){if(!u(r))throw new Error("noUiSlider ("+t+"): 'keyboardPageMultiplier' is not numeric.");e.keyboardPageMultiplier=r}function H(e,r){if(!u(r))throw new Error("noUiSlider ("+t+"): 'keyboardDefaultStep' is not numeric.");e.keyboardDefaultStep=r}function q(e,r){if("object"!==slider_d(r)||Array.isArray(r))throw new Error("noUiSlider ("+t+"): 'range' is not an object.");if(void 0===r.min||void 0===r.max)throw new Error("noUiSlider ("+t+"): Missing 'min' or 'max' in 'range'.");if(r.min===r.max)throw new Error("noUiSlider ("+t+"): 'range' 'min' and 'max' cannot be equal.");e.spectrum=new M(r,e.snap,e.singleStep)}function R(e,r){if(r=f(r),!Array.isArray(r)||!r.length)throw new Error("noUiSlider ("+t+"): 'start' option is incorrect.");e.handles=r.length,e.start=r}function T(e,r){if(e.snap=r,"boolean"!=typeof r)throw new Error("noUiSlider ("+t+"): 'snap' option must be a boolean.")}function B(e,r){if(e.animate=r,"boolean"!=typeof r)throw new Error("noUiSlider ("+t+"): 'animate' option must be a boolean.")}function _(e,r){if(e.animationDuration=r,"number"!=typeof r)throw new Error("noUiSlider ("+t+"): 'animationDuration' option must be a number.")}function X(e,r){var n,i=[!1];if("lower"===r?r=[!0,!1]:"upper"===r&&(r=[!1,!0]),!0===r||!1===r){for(n=1;n<e.handles;n++)i.push(r);i.push(!1)}else{if(!Array.isArray(r)||!r.length||r.length!==e.handles+1)throw new Error("noUiSlider ("+t+"): 'connect' option doesn't match handle count.");i=r}e.connect=i}function Y(e,r){switch(r){case"horizontal":e.ort=0;break;case"vertical":e.ort=1;break;default:throw new Error("noUiSlider ("+t+"): 'orientation' option is invalid.")}}function I(e,r){if(!u(r))throw new Error("noUiSlider ("+t+"): 'margin' option must be numeric.");0!==r&&(e.margin=e.spectrum.getDistance(r))}function $(e,r){if(!u(r))throw new Error("noUiSlider ("+t+"): 'limit' option must be numeric.");if(e.limit=e.spectrum.getDistance(r),!e.limit||e.handles<2)throw new Error("noUiSlider ("+t+"): 'limit' option is only supported on linear sliders with 2 or more handles.")}function W(e,r){var n;if(!u(r)&&!Array.isArray(r))throw new Error("noUiSlider ("+t+"): 'padding' option must be numeric or array of exactly 2 numbers.");if(Array.isArray(r)&&2!==r.length&&!u(r[0])&&!u(r[1]))throw new Error("noUiSlider ("+t+"): 'padding' option must be numeric or array of exactly 2 numbers.");if(0!==r){for(Array.isArray(r)||(r=[r,r]),e.padding=[e.spectrum.getDistance(r[0]),e.spectrum.getDistance(r[1])],n=0;n<e.spectrum.xNumSteps.length-1;n++)if(e.padding[0][n]<0||e.padding[1][n]<0)throw new Error("noUiSlider ("+t+"): 'padding' option must be a positive number(s).");var i=r[0]+r[1],o=e.spectrum.xVal[0];if(i/(e.spectrum.xVal[e.spectrum.xVal.length-1]-o)>1)throw new Error("noUiSlider ("+t+"): 'padding' option must not exceed 100% of the range.")}}function G(e,r){switch(r){case"ltr":e.dir=0;break;case"rtl":e.dir=1;break;default:throw new Error("noUiSlider ("+t+"): 'direction' option was not recognized.")}}function J(e,r){if("string"!=typeof r)throw new Error("noUiSlider ("+t+"): 'behaviour' must be a string containing options.");var n=r.indexOf("tap")>=0,i=r.indexOf("drag")>=0,o=r.indexOf("fixed")>=0,a=r.indexOf("snap")>=0,s=r.indexOf("hover")>=0,u=r.indexOf("unconstrained")>=0;if(o){if(2!==e.handles)throw new Error("noUiSlider ("+t+"): 'fixed' behaviour must be used with 2 handles");I(e,e.start[1]-e.start[0])}if(u&&(e.margin||e.limit))throw new Error("noUiSlider ("+t+"): 'unconstrained' behaviour cannot be used with margin or limit");e.events={tap:n||a,drag:i,fixed:o,snap:a,hover:s,unconstrained:u}}function K(e,r){if(!1!==r)if(!0===r){e.tooltips=[];for(var n=0;n<e.handles;n++)e.tooltips.push(!0)}else{if(e.tooltips=f(r),e.tooltips.length!==e.handles)throw new Error("noUiSlider ("+t+"): must pass a formatter for all handles.");e.tooltips.forEach((function(e){if("boolean"!=typeof e&&("object"!==slider_d(e)||"function"!=typeof e.to))throw new Error("noUiSlider ("+t+"): 'tooltips' must be passed a formatter or 'false'.")}))}}function Q(t,e){t.ariaFormat=e,L(e)}function Z(t,e){t.format=e,L(e)}function tt(e,r){if(e.keyboardSupport=r,"boolean"!=typeof r)throw new Error("noUiSlider ("+t+"): 'keyboardSupport' option must be a boolean.")}function et(t,e){t.documentElement=e}function rt(e,r){if("string"!=typeof r&&!1!==r)throw new Error("noUiSlider ("+t+"): 'cssPrefix' must be a string or `false`.");e.cssPrefix=r}function nt(e,r){if("object"!==slider_d(r))throw new Error("noUiSlider ("+t+"): 'cssClasses' must be an object.");if("string"==typeof e.cssPrefix)for(var n in e.cssClasses={},r)r.hasOwnProperty(n)&&(e.cssClasses[n]=e.cssPrefix+r[n]);else e.cssClasses=r}function it(e){var r={margin:0,limit:0,padding:0,animate:!0,animationDuration:300,ariaFormat:D,format:D},i={step:{r:!1,t:j},keyboardPageMultiplier:{r:!1,t:z},keyboardDefaultStep:{r:!1,t:H},start:{r:!0,t:R},connect:{r:!0,t:X},direction:{r:!0,t:G},snap:{r:!1,t:T},animate:{r:!1,t:B},animationDuration:{r:!1,t:_},range:{r:!0,t:q},orientation:{r:!1,t:Y},margin:{r:!1,t:I},limit:{r:!1,t:$},padding:{r:!1,t:W},behaviour:{r:!0,t:J},ariaFormat:{r:!1,t:Q},format:{r:!1,t:Z},tooltips:{r:!1,t:K},keyboardSupport:{r:!0,t:tt},documentElement:{r:!1,t:et},cssPrefix:{r:!0,t:rt},cssClasses:{r:!0,t:nt}},o={connect:!1,direction:"ltr",behaviour:"tap",orientation:"horizontal",keyboardSupport:!0,cssPrefix:"noUi-",cssClasses:O,keyboardPageMultiplier:5,keyboardDefaultStep:10};e.format&&!e.ariaFormat&&(e.ariaFormat=e.format),Object.keys(i).forEach((function(a){if(!n(e[a])&&void 0===o[a]){if(i[a].r)throw new Error("noUiSlider ("+t+"): '"+a+"' is required.");return!0}i[a].t(r,n(e[a])?e[a]:o[a])})),r.pips=e.pips;var a=document.createElement("div"),s=void 0!==a.style.msTransform,u=void 0!==a.style.transform;r.transformRule=u?"transform":s?"msTransform":"webkitTransform";var l=[["left","top"],["right","bottom"]];return r.style=l[r.dir][r.ort],r}function ot(e,n,a){var u,p,d,S,w,E,C=b(),N=x()&&y(),P=e,A=n.spectrum,k=[],U=[],V=[],M=0,D={},O=e.ownerDocument,L=n.documentElement||O.documentElement,j=O.body,z=-1,H=0,q=1,R=2,T="rtl"===O.dir||1===n.ort?0:100;function B(t,e){var r=O.createElement("div");return e&&h(r,e),t.appendChild(r),r}function _(t,e){var r=B(t,n.cssClasses.origin),i=B(r,n.cssClasses.handle);return B(i,n.cssClasses.touchArea),i.setAttribute("data-handle",e),n.keyboardSupport&&(i.setAttribute("tabindex","0"),i.addEventListener("keydown",(function(t){return vt(t,e)}))),i.setAttribute("role","slider"),i.setAttribute("aria-orientation",n.ort?"vertical":"horizontal"),0===e?h(i,n.cssClasses.handleLower):e===n.handles-1&&h(i,n.cssClasses.handleUpper),r}function X(t,e){return!!e&&B(t,n.cssClasses.connect)}function Y(t,e){var r=B(e,n.cssClasses.connects);p=[],(d=[]).push(X(r,t[0]));for(var i=0;i<n.handles;i++)p.push(_(e,i)),V[i]=i,d.push(X(r,t[i+1]))}function I(t){return h(t,n.cssClasses.target),0===n.dir?h(t,n.cssClasses.ltr):h(t,n.cssClasses.rtl),0===n.ort?h(t,n.cssClasses.horizontal):h(t,n.cssClasses.vertical),h(t,"rtl"===getComputedStyle(t).direction?n.cssClasses.textDirectionRtl:n.cssClasses.textDirectionLtr),B(t,n.cssClasses.base)}function $(t,e){return!!n.tooltips[e]&&B(t.firstChild,n.cssClasses.tooltip)}function W(){return P.hasAttribute("disabled")}function G(t){return p[t].hasAttribute("disabled")}function J(){w&&(xt("update"+F.tooltips),w.forEach((function(t){t&&r(t)})),w=null)}function K(){J(),w=p.map($),bt("update"+F.tooltips,(function(t,e,r){if(w[e]){var i=t[e];!0!==n.tooltips[e]&&(i=n.tooltips[e].to(r[e])),w[e].innerHTML=i}}))}function Q(){xt("update"+F.aria),bt("update"+F.aria,(function(t,e,r,i,o){V.forEach((function(t){var e=p[t],i=wt(U,t,0,!0,!0,!0),a=wt(U,t,100,!0,!0,!0),s=o[t],u=n.ariaFormat.to(r[t]);i=A.fromStepping(i).toFixed(1),a=A.fromStepping(a).toFixed(1),s=A.fromStepping(s).toFixed(1),e.children[0].setAttribute("aria-valuemin",i),e.children[0].setAttribute("aria-valuemax",a),e.children[0].setAttribute("aria-valuenow",s),e.children[0].setAttribute("aria-valuetext",u)}))}))}function Z(e,r,n){if("range"===e||"steps"===e)return A.xVal;if("count"===e){if(r<2)throw new Error("noUiSlider ("+t+"): 'values' (>= 2) required for mode 'count'.");var i=r-1,o=100/i;for(r=[];i--;)r[i]=i*o;r.push(100),e="positions"}return"positions"===e?r.map((function(t){return A.fromStepping(n?A.getStep(t):t)})):"values"===e?n?r.map((function(t){return A.fromStepping(A.getStep(A.toStepping(t)))})):r:void 0}function tt(t,e,r){function n(t,e){return(t+e).toFixed(7)/1}var i={},a=A.xVal[0],s=A.xVal[A.xVal.length-1],u=!1,l=!1,c=0;return(r=o(r.slice().sort((function(t,e){return t-e}))))[0]!==a&&(r.unshift(a),u=!0),r[r.length-1]!==s&&(r.push(s),l=!0),r.forEach((function(o,a){var s,f,p,d,h,m,v,g,b,y,x=o,S=r[a+1],w="steps"===e;if(w&&(s=A.xNumSteps[a]),s||(s=S-x),!1!==x)for(void 0===S&&(S=x),s=Math.max(s,1e-7),f=x;f<=S;f=n(f,s)){for(g=(h=(d=A.toStepping(f))-c)/t,y=h/(b=Math.round(g)),p=1;p<=b;p+=1)i[(m=c+p*y).toFixed(5)]=[A.fromStepping(m),0];v=r.indexOf(f)>-1?q:w?R:H,!a&&u&&f!==S&&(v=0),f===S&&l||(i[d.toFixed(5)]=[f,v]),c=d}})),i}function et(t,e,r){var i=O.createElement("div"),o=[];o[H]=n.cssClasses.valueNormal,o[q]=n.cssClasses.valueLarge,o[R]=n.cssClasses.valueSub;var a=[];a[H]=n.cssClasses.markerNormal,a[q]=n.cssClasses.markerLarge,a[R]=n.cssClasses.markerSub;var s=[n.cssClasses.valueHorizontal,n.cssClasses.valueVertical],u=[n.cssClasses.markerHorizontal,n.cssClasses.markerVertical];function l(t,e){var r=e===n.cssClasses.value,i=r?o:a;return e+" "+(r?s:u)[n.ort]+" "+i[t]}function c(t,o,a){if((a=e?e(o,a):a)!==z){var s=B(i,!1);s.className=l(a,n.cssClasses.marker),s.style[n.style]=t+"%",a>H&&((s=B(i,!1)).className=l(a,n.cssClasses.value),s.setAttribute("data-value",o),s.style[n.style]=t+"%",s.innerHTML=r.to(o))}}return h(i,n.cssClasses.pips),h(i,0===n.ort?n.cssClasses.pipsHorizontal:n.cssClasses.pipsVertical),Object.keys(t).forEach((function(e){c(e,t[e][0],t[e][1])})),i}function rt(){S&&(r(S),S=null)}function nt(t){rt();var e=t.mode,r=t.density||1,n=t.filter||!1,i=tt(r,e,Z(e,t.values||!1,t.stepped||!1)),o=t.format||{to:Math.round};return S=P.appendChild(et(i,n,o))}function ot(){var t=u.getBoundingClientRect(),e="offset"+["Width","Height"][n.ort];return 0===n.ort?t.width||u[e]:t.height||u[e]}function at(t,e,r,i){var o=function(o){return!!(o=st(o,i.pageOffset,i.target||e))&&!(W()&&!i.doNotReject)&&!(v(P,n.cssClasses.tap)&&!i.doNotReject)&&!(t===C.start&&void 0!==o.buttons&&o.buttons>1)&&(!i.hover||!o.buttons)&&(N||o.preventDefault(),o.calcPoint=o.points[n.ort],void r(o,i))},a=[];return t.split(" ").forEach((function(t){e.addEventListener(t,o,!!N&&{passive:!0}),a.push([t,o])})),a}function st(t,e,r){var n,i,o=0===t.type.indexOf("touch"),a=0===t.type.indexOf("mouse"),s=0===t.type.indexOf("pointer");if(0===t.type.indexOf("MSPointer")&&(s=!0),"mousedown"===t.type&&!t.buttons&&!t.touches)return!1;if(o){var u=function(t){return t.target===r||r.contains(t.target)||t.target.shadowRoot&&t.target.shadowRoot.contains(r)};if("touchstart"===t.type){var l=Array.prototype.filter.call(t.touches,u);if(l.length>1)return!1;n=l[0].pageX,i=l[0].pageY}else{var c=Array.prototype.find.call(t.changedTouches,u);if(!c)return!1;n=c.pageX,i=c.pageY}}return e=e||g(O),(a||s)&&(n=t.clientX+e.x,i=t.clientY+e.y),t.pageOffset=e,t.points=[n,i],t.cursor=a||s,t}function ut(t){var e=100*(t-s(u,n.ort))/ot();return e=c(e),n.dir?100-e:e}function lt(t){var e=100,r=!1;return p.forEach((function(n,i){if(!G(i)){var o=U[i],a=Math.abs(o-t);(a<e||a<=e&&t>o||100===a&&100===e)&&(r=i,e=a)}})),r}function ct(t,e){"mouseout"===t.type&&"HTML"===t.target.nodeName&&null===t.relatedTarget&&pt(t,e)}function ft(t,e){if(-1===navigator.appVersion.indexOf("MSIE 9")&&0===t.buttons&&0!==e.buttonsProperty)return pt(t,e);var r=(n.dir?-1:1)*(t.calcPoint-e.startCalcPoint);Ct(r>0,100*r/e.baseSize,e.locations,e.handleNumbers)}function pt(t,e){e.handle&&(m(e.handle,n.cssClasses.active),M-=1),e.listeners.forEach((function(t){L.removeEventListener(t[0],t[1])})),0===M&&(m(P,n.cssClasses.drag),At(),t.cursor&&(j.style.cursor="",j.removeEventListener("selectstart",i))),e.handleNumbers.forEach((function(t){St("change",t),St("set",t),St("end",t)}))}function dt(t,e){if(e.handleNumbers.some(G))return!1;var r;1===e.handleNumbers.length&&(r=p[e.handleNumbers[0]].children[0],M+=1,h(r,n.cssClasses.active)),t.stopPropagation();var o=[],a=at(C.move,L,ft,{target:t.target,handle:r,listeners:o,startCalcPoint:t.calcPoint,baseSize:ot(),pageOffset:t.pageOffset,handleNumbers:e.handleNumbers,buttonsProperty:t.buttons,locations:U.slice()}),s=at(C.end,L,pt,{target:t.target,handle:r,listeners:o,doNotReject:!0,handleNumbers:e.handleNumbers}),u=at("mouseout",L,ct,{target:t.target,handle:r,listeners:o,doNotReject:!0,handleNumbers:e.handleNumbers});o.push.apply(o,a.concat(s,u)),t.cursor&&(j.style.cursor=getComputedStyle(t.target).cursor,p.length>1&&h(P,n.cssClasses.drag),j.addEventListener("selectstart",i,!1)),e.handleNumbers.forEach((function(t){St("start",t)}))}function ht(t){t.stopPropagation();var e=ut(t.calcPoint),r=lt(e);if(!1===r)return!1;n.events.snap||l(P,n.cssClasses.tap,n.animationDuration),kt(r,e,!0,!0),At(),St("slide",r,!0),St("update",r,!0),St("change",r,!0),St("set",r,!0),n.events.snap&&dt(t,{handleNumbers:[r]})}function mt(t){var e=ut(t.calcPoint),r=A.getStep(e),n=A.fromStepping(r);Object.keys(D).forEach((function(t){"hover"===t.split(".")[0]&&D[t].forEach((function(t){t.call(E,n)}))}))}function vt(t,e){if(W()||G(e))return!1;var r=["Left","Right"],i=["Down","Up"],o=["PageDown","PageUp"],a=["Home","End"];n.dir&&!n.ort?r.reverse():n.ort&&!n.dir&&(i.reverse(),o.reverse());var s,u=t.key.replace("Arrow",""),l=u===o[0],c=u===o[1],f=u===i[0]||u===r[0]||l,p=u===i[1]||u===r[1]||c,d=u===a[0],h=u===a[1];if(!(f||p||d||h))return!0;if(t.preventDefault(),p||f){var m=n.keyboardPageMultiplier,v=f?0:1,g=jt(e)[v];if(null===g)return!1;!1===g&&(g=A.getDefaultStep(U[e],f,n.keyboardDefaultStep)),(c||l)&&(g*=m),g=Math.max(g,1e-7),g*=f?-1:1,s=k[e]+g}else s=h?n.spectrum.xVal[n.spectrum.xVal.length-1]:n.spectrum.xVal[0];return kt(e,A.toStepping(s),!0,!0),St("slide",e),St("update",e),St("change",e),St("set",e),!1}function gt(t){t.fixed||p.forEach((function(t,e){at(C.start,t.children[0],dt,{handleNumbers:[e]})})),t.tap&&at(C.start,u,ht,{}),t.hover&&at(C.move,u,mt,{hover:!0}),t.drag&&d.forEach((function(e,r){if(!1!==e&&0!==r&&r!==d.length-1){var i=p[r-1],o=p[r],a=[e];h(e,n.cssClasses.draggable),t.fixed&&(a.push(i.children[0]),a.push(o.children[0])),a.forEach((function(t){at(C.start,t,dt,{handles:[i,o],handleNumbers:[r-1,r]})}))}}))}function bt(t,e){D[t]=D[t]||[],D[t].push(e),"update"===t.split(".")[0]&&p.forEach((function(t,e){St("update",e)}))}function yt(t){return t===F.aria||t===F.tooltips}function xt(t){var e=t&&t.split(".")[0],r=e?t.substring(e.length):t;Object.keys(D).forEach((function(t){var n=t.split(".")[0],i=t.substring(n.length);e&&e!==n||r&&r!==i||yt(i)&&r!==i||delete D[t]}))}function St(t,e,r){Object.keys(D).forEach((function(i){var o=i.split(".")[0];t===o&&D[i].forEach((function(t){t.call(E,k.map(n.format.to),e,k.slice(),r||!1,U.slice(),E)}))}))}function wt(t,e,r,i,o,a){var s;return p.length>1&&!n.events.unconstrained&&(i&&e>0&&(s=A.getAbsoluteDistance(t[e-1],n.margin,0),r=Math.max(r,s)),o&&e<p.length-1&&(s=A.getAbsoluteDistance(t[e+1],n.margin,1),r=Math.min(r,s))),p.length>1&&n.limit&&(i&&e>0&&(s=A.getAbsoluteDistance(t[e-1],n.limit,0),r=Math.min(r,s)),o&&e<p.length-1&&(s=A.getAbsoluteDistance(t[e+1],n.limit,1),r=Math.max(r,s))),n.padding&&(0===e&&(s=A.getAbsoluteDistance(0,n.padding[0],0),r=Math.max(r,s)),e===p.length-1&&(s=A.getAbsoluteDistance(100,n.padding[1],1),r=Math.min(r,s))),!((r=c(r=A.getStep(r)))===t[e]&&!a)&&r}function Et(t,e){var r=n.ort;return(r?e:t)+", "+(r?t:e)}function Ct(t,e,r,n){var i=r.slice(),o=[!t,t],a=[t,!t];n=n.slice(),t&&n.reverse(),n.length>1?n.forEach((function(t,r){var n=wt(i,t,i[t]+e,o[r],a[r],!1);!1===n?e=0:(e=n-i[t],i[t]=n)})):o=a=[!0];var s=!1;n.forEach((function(t,n){s=kt(t,r[t]+e,o[n],a[n])||s})),s&&n.forEach((function(t){St("update",t),St("slide",t)}))}function Nt(t,e){return n.dir?100-t-e:t}function Pt(t,e){U[t]=e,k[t]=A.fromStepping(e);var r="translate("+Et(10*(Nt(e,0)-T)+"%","0")+")";p[t].style[n.transformRule]=r,Ut(t),Ut(t+1)}function At(){V.forEach((function(t){var e=U[t]>50?-1:1,r=3+(p.length+e*t);p[t].style.zIndex=r}))}function kt(t,e,r,n,i){return i||(e=wt(U,t,e,r,n,!1)),!1!==e&&(Pt(t,e),!0)}function Ut(t){if(d[t]){var e=0,r=100;0!==t&&(e=U[t-1]),t!==d.length-1&&(r=U[t]);var i=r-e,o="translate("+Et(Nt(e,i)+"%","0")+")",a="scale("+Et(i/100,"1")+")";d[t].style[n.transformRule]=o+" "+a}}function Vt(t,e){return null===t||!1===t||void 0===t?U[e]:("number"==typeof t&&(t=String(t)),t=n.format.from(t),!1===(t=A.toStepping(t))||isNaN(t)?U[e]:t)}function Mt(t,e,r){var i=f(t),o=void 0===U[0];e=void 0===e||!!e,n.animate&&!o&&l(P,n.cssClasses.tap,n.animationDuration),V.forEach((function(t){kt(t,Vt(i[t],t),!0,!1,r)}));for(var a=1===V.length?0:1;a<V.length;++a)V.forEach((function(t){kt(t,U[t],!0,!0,r)}));At(),V.forEach((function(t){St("update",t),null!==i[t]&&e&&St("set",t)}))}function Dt(t){Mt(n.start,t)}function Ot(e,r,n,i){if(!((e=Number(e))>=0&&e<V.length))throw new Error("noUiSlider ("+t+"): invalid handle number, got: "+e);kt(e,Vt(r,e),!0,!0,i),St("update",e),n&&St("set",e)}function Ft(){var t=k.map(n.format.to);return 1===t.length?t[0]:t}function Lt(){for(var t in xt(F.aria),xt(F.tooltips),n.cssClasses)n.cssClasses.hasOwnProperty(t)&&m(P,n.cssClasses[t]);for(;P.firstChild;)P.removeChild(P.firstChild);delete P.noUiSlider}function jt(t){var e=U[t],r=A.getNearbySteps(e),i=k[t],o=r.thisStep.step,a=null;if(n.snap)return[i-r.stepBefore.startValue||null,r.stepAfter.startValue-i||null];!1!==o&&i+o>r.stepAfter.startValue&&(o=r.stepAfter.startValue-i),a=i>r.thisStep.startValue?r.thisStep.step:!1!==r.stepBefore.step&&i-r.stepBefore.highestStep,100===e?o=null:0===e&&(a=null);var s=A.countStepDecimals();return null!==o&&!1!==o&&(o=Number(o.toFixed(s))),null!==a&&!1!==a&&(a=Number(a.toFixed(s))),[a,o]}function zt(){return V.map(jt)}function Ht(t,e){var r=Ft(),i=["margin","limit","padding","range","animate","snap","step","format","pips","tooltips"];i.forEach((function(e){void 0!==t[e]&&(a[e]=t[e])}));var o=it(a);i.forEach((function(e){void 0!==t[e]&&(n[e]=o[e])})),A=o.spectrum,n.margin=o.margin,n.limit=o.limit,n.padding=o.padding,n.pips?nt(n.pips):rt(),n.tooltips?K():J(),U=[],Mt(t.start||r,e)}function qt(){u=I(P),Y(n.connect,u),gt(n.events),Mt(n.start),n.pips&&nt(n.pips),n.tooltips&&K(),Q()}return qt(),E={destroy:Lt,steps:zt,on:bt,off:xt,get:Ft,set:Mt,setHandle:Ot,reset:Dt,__moveHandles:function(t,e,r){Ct(t,e,U,r)},options:a,updateOptions:Ht,target:P,removePips:rt,removeTooltips:J,getTooltips:function(){return w},getOrigins:function(){return p},pips:nt}}function at(e,r){if(!e||!e.nodeName)throw new Error("noUiSlider ("+t+"): create requires a single element, got: "+e);if(e.noUiSlider)throw new Error("noUiSlider ("+t+"): Slider was already initialized.");var n=ot(e,it(r),r);return e.noUiSlider=n,n}return{__spectrum:M,version:t,cssClasses:O,create:at}}()}));var slider_m={name:"Slider",emits:["input","update:modelValue","update","change"],props:{...{value:{validator:function(t){return t=>"number"==typeof t||t instanceof Array||null==t||!1===t},required:!1},modelValue:{validator:function(t){return t=>"number"==typeof t||t instanceof Array||null==t||!1===t},required:!1}},id:{type:[String,Number],required:!1,default:"slider"},disabled:{type:Boolean,required:!1,default:!1},min:{type:Number,required:!1,default:0},max:{type:Number,required:!1,default:100},step:{type:Number,required:!1,default:1},orientation:{type:String,required:!1,default:"horizontal"},direction:{type:String,required:!1,default:"ltr"},tooltips:{type:Boolean,required:!1,default:!0},options:{type:Object,required:!1,default:()=>({})},merge:{type:Number,required:!1,default:-1},height:{type:String,required:!1,default:"300px"},format:{type:[Object,Function,Boolean],required:!1,default:null}},setup(a,s){const u=function(r,n,i){var o=Object(external_Vue_["toRefs"])(r),a=o.value,s=o.modelValue,u=void 0!==n.expose?s:a,c=Object(external_Vue_["ref"])(u.value);if(slider_l(u.value))throw new Error("Slider v-model must be a Number or Array");if(Array.isArray(u.value)&&0==u.value.length)throw new Error("Slider v-model must not be an empty array");return{value:u,initialValue:c}}(a,s),c=function(e,n,i){var o=Object(external_Vue_["toRefs"])(e),a=o.orientation,s=o.height;return{style:Object(external_Vue_["computed"])((function(){return"vertical"==a.value?{height:s.value}:[]}))}}(a),f=function(e,n,i){var o=Object(external_Vue_["toRefs"])(e),a=o.format,s=o.step,u=i.value,l=Object(external_Vue_["computed"])((function(){return a&&a.value?"function"==typeof a.value?{to:a.value}:slider_p(Object.assign({},a.value)):slider_p({decimals:s.value>=0?0:2})}));return{tooltipsFormat:Object(external_Vue_["computed"])((function(){return Array.isArray(u.value)?u.value.map((function(t){return l.value})):l.value})),tooltipsMerge:function(t,e,r){var n="rtl"===getComputedStyle(t).direction,i="rtl"===t.noUiSlider.options.direction,o="vertical"===t.noUiSlider.options.orientation,a=t.noUiSlider.getTooltips(),s=t.noUiSlider.getOrigins();a.forEach((function(t,e){t&&s[e].appendChild(t)})),t.noUiSlider.on("update",(function(t,s,u,c,f){var p=[[]],d=[[]],h=[[]],m=0;a[0]&&(p[0][0]=0,d[0][0]=f[0],h[0][0]=l.value.to(parseFloat(t[0])));for(var v=1;v<f.length;v++)(!a[v]||f[v]-f[v-1]>e)&&(p[++m]=[],h[m]=[],d[m]=[]),a[v]&&(p[m].push(v),h[m].push(l.value.to(parseFloat(t[v]))),d[m].push(f[v]));p.forEach((function(t,e){for(var s=t.length,u=0;u<s;u++){var l=t[u];if(u===s-1){var c=0;d[e].forEach((function(t){c+=1e3-10*t}));var f=o?"bottom":"right",p=i?0:s-1,m=1e3-10*d[e][p];c=(n&&!o?100:0)+c/s-m,a[l].innerHTML=h[e].join(r),a[l].style.display="block",a[l].style[f]=c+"%"}else a[l].style.display="none"}}))}))}}}(a,0,{value:u.value}),d=function(a,s,u){var c=Object(external_Vue_["toRefs"])(a),f=c.options,p=c.orientation,d=c.direction,m=c.tooltips,v=c.step,g=c.min,b=c.max,y=c.merge,x=c.format,S=c.id,w=c.disabled,E=u.value,C=u.initialValue,N=u.tooltipsFormat,P=u.tooltipsMerge,A=u.style,k=Object(external_Vue_["ref"])(null),U=Object(external_Vue_["ref"])(null),V=Object(external_Vue_["ref"])(!1),M=Object(external_Vue_["computed"])((function(){var t={cssPrefix:"slider-",orientation:p.value,direction:d.value,tooltips:!!m.value&&N.value,connect:"lower",start:slider_l(E.value)?g.value:E.value,range:{min:g.value,max:b.value}};return v.value>0&&(t.step=v.value),Array.isArray(E.value)&&(t.connect=!0),t})),D=Object(external_Vue_["computed"])((function(){var t={id:S.value,style:A.value};return w.value&&(t.disabled=!0),t})),O=Object(external_Vue_["computed"])((function(){return Array.isArray(E.value)})),F=function(){var t=U.value.get();return Array.isArray(t)?t.map((function(t){return parseFloat(t)})):parseFloat(t)},L=function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];U.value.set(t,e)},j=function(t){s.emit("input",t),s.emit("update:modelValue",t),s.emit("update",t)},z=function(){U.value=h.create(k.value,Object.assign({},M.value,f.value)),m.value&&O.value&&y.value>=0&&P(k.value,y.value," - "),U.value.on("set",(function(t){s.emit("change",F())})),U.value.on("update",(function(t){V.value&&j(F())})),V.value=!0},H=function(){U.value.off(),U.value.destroy(),U.value=null},q=function(){V.value=!1,H(),z()};return Object(external_Vue_["onMounted"])(z),Object(external_Vue_["onUnmounted"])(H),Object(external_Vue_["watch"])(O,q,{immediate:!1}),Object(external_Vue_["watch"])(g,q,{immediate:!1}),Object(external_Vue_["watch"])(b,q,{immediate:!1}),Object(external_Vue_["watch"])(v,q,{immediate:!1}),Object(external_Vue_["watch"])(p,q,{immediate:!1}),Object(external_Vue_["watch"])(d,q,{immediate:!1}),Object(external_Vue_["watch"])(m,q,{immediate:!1}),Object(external_Vue_["watch"])(x,q,{immediate:!1,deep:!0}),Object(external_Vue_["watch"])(y,q,{immediate:!1}),Object(external_Vue_["watch"])(f,q,{immediate:!1,deep:!0}),Object(external_Vue_["watch"])(E,(function(t){var e,r,n;slider_l(t)?L(g.value,!1):(O.value&&(e=t,r=F(),n=r.slice().sort(),e.length!==r.length||!e.slice().sort().every((function(t,e){return t===n[e]})))||!O.value&&t!=F())&&L(t,!1)}),{deep:!0}),{slider:k,slider$:U,isRange:O,sliderProps:D,init:z,destroy:H,refresh:q,update:L,reset:function(){j(C.value)}}}(a,s,{value:u.value,initialValue:u.initialValue,tooltipsFormat:f.tooltipsFormat,tooltipsMerge:f.tooltipsMerge,style:c.style});return{...c,...f,...d}}};slider_m.render=function(t,e,r,n,i,o){return Object(external_Vue_["openBlock"])(),Object(external_Vue_["createBlock"])("div",Object(external_Vue_["mergeProps"])(t.sliderProps,{ref:"slider"}),null,16)},slider_m.__file="src/Slider.vue";/* harmony default export */ var slider = (slider_m);
// CONCATENATED MODULE: ./node_modules/vue-loader/dist??ref--8-0!./src/pages/spect/packages/Compare2D/views/Compare.vue?vue&type=script&lang=js
/* harmony default export */ var Comparevue_type_script_lang_js = (Object(external_Vue_["defineComponent"])({
components: {
Slider: slider
},
setup(props, ctx) {
let brightnessValue = Object(external_Vue_["ref"])(1);
let {proxy} = Object(external_Vue_["getCurrentInstance"])();
let img1 = proxy.img1;
let img2 = proxy.img2;
let styleBefore = Object(external_Vue_["ref"])("");
let styleAfter = Object(external_Vue_["ref"])("");
let styleWrap = Object(external_Vue_["ref"])("");
let before = Object(external_Vue_["ref"])(null);
let after = Object(external_Vue_["ref"])(null);
const onUpdateSliderBrightness = (v) => {
before.value.style.filter = `brightness(${v})`;
after.value.style.filter = `brightness(${v})`;
}
Object(external_Vue_["onMounted"])(() => {
let img = new Image();
img.src = img1
img.onload = () => {
let ratio = img.height / img.width;
let width = document.getElementById("app").clientWidth;
let height = width * ratio;
document.getElementsByClassName("menu")[0].style.height = height;
styleWrap.value = `width:${width};height:${height};`
styleBefore.value = `background-image: url(${img1})`;
styleAfter.value = `background-image: url(${img2})`;
Object(external_Vue_["nextTick"])(() => {
const comparisonSlider = new ComparisonSlider();
})
}
})
return {
before,after,
onUpdateSliderBrightness,
styleBefore,
styleAfter,
styleWrap,
brightnessValue
};
},
}));
// CONCATENATED MODULE: ./src/pages/spect/packages/Compare2D/views/Compare.vue?vue&type=script&lang=js
// EXTERNAL MODULE: ./src/pages/spect/packages/Compare2D/views/Compare.vue?vue&type=style&index=0&id=cc8794de&scoped=true&lang=css
var Comparevue_type_style_index_0_id_cc8794de_scoped_true_lang_css = __webpack_require__(22);
// CONCATENATED MODULE: ./src/pages/spect/packages/Compare2D/views/Compare.vue
Comparevue_type_script_lang_js.render = Comparevue_type_template_id_cc8794de_scoped_true_render
Comparevue_type_script_lang_js.__scopeId = "data-v-cc8794de"
/* harmony default export */ var Compare = (Comparevue_type_script_lang_js);
// CONCATENATED MODULE: ./node_modules/vue-loader/dist/templateLoader.js??ref--5!./node_modules/vue-loader/dist??ref--8-0!./src/pages/spect/packages/Compare2D/views/Diff.vue?vue&type=template&id=990cae7c&scoped=true
const Diffvue_type_template_id_990cae7c_scoped_true_withId = /*#__PURE__*/Object(external_Vue_["withScopeId"])("data-v-990cae7c")
Object(external_Vue_["pushScopeId"])("data-v-990cae7c")
const Diffvue_type_template_id_990cae7c_scoped_true_hoisted_1 = { class: "panel" }
const Diffvue_type_template_id_990cae7c_scoped_true_hoisted_2 = { class: "panel__option" }
const Diffvue_type_template_id_990cae7c_scoped_true_hoisted_3 = /*#__PURE__*/Object(external_Vue_["createVNode"])("span", null, "明亮度:", -1 /* HOISTED */)
const Diffvue_type_template_id_990cae7c_scoped_true_hoisted_4 = { class: "panel__option" }
const Diffvue_type_template_id_990cae7c_scoped_true_hoisted_5 = /*#__PURE__*/Object(external_Vue_["createVNode"])("span", null, "分辨率:", -1 /* HOISTED */)
const Diffvue_type_template_id_990cae7c_scoped_true_hoisted_6 = { class: "panel__option" }
const Diffvue_type_template_id_990cae7c_scoped_true_hoisted_7 = /*#__PURE__*/Object(external_Vue_["createVNode"])("span", { style: {"margin-right":"16px"} }, "阈值:", -1 /* HOISTED */)
const Diffvue_type_template_id_990cae7c_scoped_true_hoisted_8 = {
style: {"filter":"brightness(10)"},
ref: "canvas1"
}
Object(external_Vue_["popScopeId"])()
const Diffvue_type_template_id_990cae7c_scoped_true_render = /*#__PURE__*/Diffvue_type_template_id_990cae7c_scoped_true_withId((_ctx, _cache, $props, $setup, $data, $options) => {
const _component_Slider = Object(external_Vue_["resolveComponent"])("Slider")
return (Object(external_Vue_["openBlock"])(), Object(external_Vue_["createBlock"])("div", null, [
Object(external_Vue_["createVNode"])("div", Diffvue_type_template_id_990cae7c_scoped_true_hoisted_1, [
Object(external_Vue_["createVNode"])("div", Diffvue_type_template_id_990cae7c_scoped_true_hoisted_2, [
Diffvue_type_template_id_990cae7c_scoped_true_hoisted_3,
Object(external_Vue_["createVNode"])(_component_Slider, {
class: "panel__slider",
modelValue: _ctx.brightnessValue,
"onUpdate:modelValue": _cache[1] || (_cache[1] = $event => (_ctx.brightnessValue = $event)),
tooltips: false,
max: 20,
step: -1,
onUpdate: _ctx.onUpdateSliderBrightness
}, null, 8 /* PROPS */, ["modelValue", "onUpdate"])
]),
Object(external_Vue_["createVNode"])("div", Diffvue_type_template_id_990cae7c_scoped_true_hoisted_4, [
Diffvue_type_template_id_990cae7c_scoped_true_hoisted_5,
Object(external_Vue_["createVNode"])(_component_Slider, {
class: "panel__slider",
modelValue: _ctx.resolutionValue,
"onUpdate:modelValue": _cache[2] || (_cache[2] = $event => (_ctx.resolutionValue = $event)),
tooltips: false,
max: 1,
step: -1,
onChange: _ctx.onUpdateSliderResolution
}, null, 8 /* PROPS */, ["modelValue", "onChange"])
]),
Object(external_Vue_["createVNode"])("div", Diffvue_type_template_id_990cae7c_scoped_true_hoisted_6, [
Diffvue_type_template_id_990cae7c_scoped_true_hoisted_7,
Object(external_Vue_["createVNode"])(_component_Slider, {
class: "panel__slider",
modelValue: _ctx.thresholdValue,
"onUpdate:modelValue": _cache[3] || (_cache[3] = $event => (_ctx.thresholdValue = $event)),
tooltips: false,
max: 70,
onChange: _ctx.onUpdateSliderThreshold
}, null, 8 /* PROPS */, ["modelValue", "onChange"])
])
]),
Object(external_Vue_["createVNode"])("div", Diffvue_type_template_id_990cae7c_scoped_true_hoisted_8, null, 512 /* NEED_PATCH */)
]))
})
// CONCATENATED MODULE: ./src/pages/spect/packages/Compare2D/views/Diff.vue?vue&type=template&id=990cae7c&scoped=true
// CONCATENATED MODULE: ./node_modules/vue-loader/dist??ref--8-0!./src/pages/spect/packages/Compare2D/views/Diff.vue?vue&type=script&lang=js
/* harmony default export */ var Diffvue_type_script_lang_js = (Object(external_Vue_["defineComponent"])({
components: {
Slider: slider
},
setup(props, ctx) {
let brightnessValue = Object(external_Vue_["ref"])(10);
let resolutionValue = Object(external_Vue_["ref"])(1);
let thresholdValue = Object(external_Vue_["ref"])(0);
let {proxy} = Object(external_Vue_["getCurrentInstance"])();
let img1Url = proxy.img1;
let img2Url = proxy.img2;
let img1 = Object(external_Vue_["ref"])(null);
let img2 = Object(external_Vue_["ref"])(null);
let canvas1 = Object(external_Vue_["ref"])(null);
let imgDom = null;
let ratio = 0;
let params = Object(external_Vue_["ref"])({
baseImageUrl: "",
targetImageUrl: "",
resolution: 1, // 0.01..1, optional, defaults to 1
threshold: 0, // 0..255, optional, defaults to 0
isNormalized: false // Boolean, optional, defaults to false
})
const onUpdateSliderBrightness = (v) => {
canvas1.value.style.filter = `brightness(${v})`;
}
const onUpdateSliderResolution = (v) => {
let obj = params.value;
obj.resolution = v;
updateDiffImg(obj);
}
const onUpdateSliderThreshold = (v) => {
let obj = params.value;
obj.threshold = v;
updateDiffImg(obj);
}
const updateDiffImg = (option) => {
showMessage("图片加载中...", "info");
params.value = option;
const promiseCompare = canvasCompare(params.value);
promiseCompare.then(function (result) {
// Do things with result
if (imgDom) {
canvas1.value.removeChild(imgDom);
}
imgDom = result.producePreview();
imgDom.width = document.getElementById("app").clientWidth;
imgDom.height = imgDom.width * ratio;
canvas1.value.appendChild(imgDom);
});
}
const renderDiffImg = () => {
let img = new Image();
img.src = img1.value;
img.onload = () => {
ratio = img.height / img.width;
document.getElementsByClassName("menu")[0].style.height = document.getElementById("app").clientWidth * ratio;
Object(external_Vue_["nextTick"])(() => {
updateDiffImg(params.value);
})
}
}
Object(external_Vue_["onMounted"])(() => {
// return
let img1Finished = false;
let img2Finished = false;
getBase64(img1Url, (base64) => {
img1.value = base64;
params.value.baseImageUrl = img1.value;
img1Finished = true;
if (img2Finished) {
renderDiffImg();
}
})
getBase64(img2Url, (base64) => {
img2.value = base64;
params.value.targetImageUrl = img2.value;
img2Finished = true;
if (img1Finished) {
renderDiffImg();
}
})
})
return {
canvas1,
brightnessValue,resolutionValue,thresholdValue,
onUpdateSliderBrightness,onUpdateSliderResolution,onUpdateSliderThreshold
};
},
}));
// CONCATENATED MODULE: ./src/pages/spect/packages/Compare2D/views/Diff.vue?vue&type=script&lang=js
// EXTERNAL MODULE: ./node_modules/@vueform/slider/themes/default.css?vue&type=style&index=0&lang=css
var defaultvue_type_style_index_0_lang_css = __webpack_require__(24);
// EXTERNAL MODULE: ./src/pages/spect/packages/Compare2D/views/Diff.vue?vue&type=style&index=1&id=990cae7c&scoped=true&lang=css
var Diffvue_type_style_index_1_id_990cae7c_scoped_true_lang_css = __webpack_require__(26);
// CONCATENATED MODULE: ./src/pages/spect/packages/Compare2D/views/Diff.vue
Diffvue_type_script_lang_js.render = Diffvue_type_template_id_990cae7c_scoped_true_render
Diffvue_type_script_lang_js.__scopeId = "data-v-990cae7c"
/* harmony default export */ var Diff = (Diffvue_type_script_lang_js);
// CONCATENATED MODULE: ./src/pages/spect/packages/Compare2D/views/index.js
// CONCATENATED MODULE: ./src/pages/spect/packages/Compare2D/index.js
let Compare2D_compareList = JSON.parse(GM_getValue("CompareList_2D") || "[]") || [];
let Compare2D_app;
function Compare2D_init() {
Compare2D_initDom();
initDom_Menu();
Compare2D_initFunc();
}
function Compare2D_initDom() {
let a = document.createElement("div");
a.className = "wrap";
a.innerHTML = `
<div class="compare2d__watermark">
<span>--By 小淳</span>
</div>
<div class="skin1-info">
<span>${Compare2D_compareList[0].name}</span>
<br/>
<span>模板:${Compare2D_compareList[0].asset_info.paintseed}</span>
<br/>
<span>磨损:${Compare2D_compareList[0].asset_info.paintwear}</span>
</div>
<div class="skin2-info">
<span>${Compare2D_compareList[1].name}</span>
<br/>
<span>模板:${Compare2D_compareList[1].asset_info.paintseed}</span>
<br/>
<span>磨损:${Compare2D_compareList[1].asset_info.paintwear}</span>
</div>
<div class="menu">
<div class="menu__title">饰品2D对比</div>
<div class="menu__sub">
<div class="sub__view">
<div class="view__title pdl-10">检视图</div>
<div class="view__content">
<div class="view__item pdl-20" id="view__compare">【检视图】对比</div>
<div class="view__item pdl-20" id="view__diff">【检视图】差异</div>
</div>
</div>
<div class="sub__texture">
<div class="texture__title pdl-10">纹理图</div>
<div class="texture__content">
</div>
</div>
</div>
</div>
<div class="view" id="app">
</div>
`
let b = document.body;
b.appendChild(a);
}
function initDom_Menu() {
let html_texture = ""; // 纹理图html
let dom = document.getElementsByClassName("texture__content")[0];
for (let i = 0; i < Compare2D_compareList[0].textures.length; i++) {
// 纹理图
html_texture += `
<div class="texture__item pdl-20 texture__compare" id="texture__compare${i}">【纹理图${i+1}】对比</div>
<div class="texture__item pdl-20 texture__diff" id="texture__diff${i}">【纹理图${i+1}】差异</div>
`
}
dom.innerHTML = html_texture;
}
function Compare2D_initFunc() {
let views = document.getElementsByClassName("view__item");
let textures = document.getElementsByClassName("texture__item");
// active事件
for (let i = 0; i < views.length; i++) {
views[i].addEventListener("click", () => {
for (let j = 0; j < views.length; j++) {
views[j].className = views[j].className.replace(" is-active", "");
}
for (let j = 0; j < textures.length; j++) {
textures[j].className = textures[j].className.replace(" is-active", "");
}
views[i].className += " is-active";
})
}
for (let i = 0; i < textures.length; i++) {
textures[i].addEventListener("click", () => {
for (let j = 0; j < views.length; j++) {
views[j].className = views[j].className.replace(" is-active", "");
}
for (let j = 0; j < textures.length; j++) {
textures[j].className = textures[j].className.replace(" is-active", "");
}
textures[i].className += " is-active";
})
}
// 业务事件
document.getElementById("view__compare").addEventListener("click", () => {
// 检视图对比
if (Compare2D_app) Compare2D_app.unmount();
let img1 = Compare2D_compareList[0].inspectUrl;
let img2 = Compare2D_compareList[1].inspectUrl;
Compare2D_app = Object(external_Vue_["createApp"])(Compare);
Compare2D_app.config.globalProperties.img1 = img1;
Compare2D_app.config.globalProperties.img2 = img2;
Compare2D_app.mount("#app");
})
document.getElementById("view__diff").addEventListener("click", () => {
// 检视图差异
if (Compare2D_app) Compare2D_app.unmount();
let img1 = Compare2D_compareList[0].inspectUrl;
let img2 = Compare2D_compareList[1].inspectUrl;
Compare2D_app = Object(external_Vue_["createApp"])(Diff);
Compare2D_app.config.globalProperties.img1 = img1;
Compare2D_app.config.globalProperties.img2 = img2;
Compare2D_app.mount("#app");
})
let texture_compare = document.getElementsByClassName("texture__compare");
let texture_diff = document.getElementsByClassName("texture__diff");
for (let i = 0; i < texture_compare.length; i++) {
let item = texture_compare[i];
item.addEventListener("click", () => {
// 纹理图对比
if (Compare2D_app) Compare2D_app.unmount();
let img1 = Compare2D_compareList[0].textures[i].url;
let img2 = Compare2D_compareList[1].textures[i].url;
Compare2D_app = Object(external_Vue_["createApp"])(Compare);
Compare2D_app.config.globalProperties.img1 = img1;
Compare2D_app.config.globalProperties.img2 = img2;
Compare2D_app.mount("#app");
})
}
for (let i = 0; i < texture_diff.length; i++) {
let item = texture_diff[i];
item.addEventListener("click", () => {
// 纹理图差异
if (Compare2D_app) Compare2D_app.unmount();
let img1 = Compare2D_compareList[0].textures[i].url;
let img2 = Compare2D_compareList[1].textures[i].url;
Compare2D_app = Object(external_Vue_["createApp"])(Diff);
Compare2D_app.config.globalProperties.img1 = img1;
Compare2D_app.config.globalProperties.img2 = img2;
Compare2D_app.mount("#app");
})
}
document.getElementsByClassName("compare2d__watermark")[0].addEventListener("click", () => {
window.open("https://github.com/qianjiachun/csgo-skin-compare");
})
}
/* harmony default export */ var Compare2D = ({
init: Compare2D_init
});
// CONCATENATED MODULE: ./src/pages/spect/packages/index.js
function packages_initPkg() {
Compare2D.init();
}
// CONCATENATED MODULE: ./src/pages/spect/index.js
function spect_beforeInit() {
// 清除页面默认数据
document.title = "CSGO饰品对比 - 2D";
document.body.innerHTML = "";
}
function spect_init() {
spect_beforeInit();
packages_initPkg();
}
/* harmony default export */ var spect = ({
init: spect_init
});
// CONCATENATED MODULE: ./src/pages/index.js
// import www from "./www"
/* harmony default export */ var pages = ({
// www
buff: buff,
spect: spect
});
// CONCATENATED MODULE: ./src/router.js
function initRouter() {
// 根据需求判断location对象的值,来选择使用哪个page
if (location.href.indexOf("buff") !== -1) {
pages.buff.init();
}
if (location.href.indexOf("spect") !== -1) {
if (location.href.indexOf("compare2d") !== -1) {
pages.spect.init();
}
}
}
// CONCATENATED MODULE: ./src/main.js
initRouter();
/***/ })
/******/ ]);
//# sourceMappingURL=main.js.map