Greasy Fork

CSGO饰品2D/3D对比

使用图像处理技术对CSGO饰品网站上的皮肤进行对比,可以快速分辨出饰品细微的差异,不用再手动来回切换对比了

当前为 2021-08-13 提交的版本,查看 最新版本

// ==UserScript==
// @name         CSGO饰品2D/3D对比
// @namespace    https://github.com/qianjiachun
// @version      2021.07.28.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
// ==/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