UNPKG

129 kBSource Map (JSON)View Raw
1{"version":3,"sources":["webpack://vue-slider-component/webpack/universalModuleDefinition","webpack://vue-slider-component/webpack/bootstrap","webpack://vue-slider-component/./node_modules/@vue/babel-helper-vue-jsx-merge-props/dist/helper.js","webpack://vue-slider-component/./node_modules/vue-class-component/dist/vue-class-component.common.js","webpack://vue-slider-component/./node_modules/@soda/get-current-script/index.js","webpack://vue-slider-component/external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\",\"amd\":\"vue\"}","webpack://vue-slider-component/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://vue-slider-component/./node_modules/tslib/tslib.es6.js","webpack://vue-slider-component/./node_modules/vue-property-decorator/lib/vue-property-decorator.js","webpack://vue-slider-component/./lib/vue-slider-dot.tsx","webpack://vue-slider-component/./lib/vue-slider-mark.tsx","webpack://vue-slider-component/./lib/utils/index.ts","webpack://vue-slider-component/./lib/utils/control.ts","webpack://vue-slider-component/./lib/utils/decimal.ts","webpack://vue-slider-component/./lib/utils/state.ts","webpack://vue-slider-component/./lib/vue-slider.tsx","webpack://vue-slider-component/./lib/index.ts","webpack://vue-slider-component/./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js"],"names":["root","factory","exports","module","require","define","amd","self","this","__WEBPACK_EXTERNAL_MODULE__8bbf__","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_extends","assign","a","b","arguments","length","apply","normalMerge","toArrayMerge","functionalMerge","mergeJsxProps","reduce","indexOf","Array","e","concat","f","g","h","mergeFn","_interopDefault","ex","Vue","reflectionIsSupported","Reflect","defineMetadata","getOwnMetadataKeys","copyReflectionMetadata","to","from","forwardMetadata","getOwnPropertyNames","forEach","propertyKey","metaKeys","metaKey","metadata","getOwnMetadata","fakeArray","__proto__","hasProto","createDecorator","target","index","Ctor","constructor","__decorators__","undefined","push","options","mixins","Ctors","_i","extend","isPrimitive","type","collectDataFromConstructor","vm","Component","originalInit","_init","_this","keys","$options","props","charAt","set","configurable","data","plainData","$internalHooks","componentFactory","_componentTag","proto","descriptor","getOwnPropertyDescriptor","methods","_a","computed","decorators","fn","superProto","getPrototypeOf","Super","Extended","forwardStaticMembers","Original","extendedDescriptor","superDescriptor","registerHooks","default","getCurrentScript","document","currentScript","Error","err","pageSource","inlineScriptSourceRegExp","inlineScriptSource","ieStackRegExp","ffStackRegExp","stackDetails","exec","stack","scriptLocation","line","currentLocation","location","href","replace","hash","scripts","getElementsByTagName","documentElement","outerHTML","RegExp","trim","readyState","src","innerHTML","window","match","__decorate","desc","decorate","Model","event","componentOptions","k","model","prop","Prop","Watch","path","deep","_b","immediate","handler","watch","isArray","VueSliderDot","disabled","$emit","dotClasses","tooltipValue","toString","dragStart","$slots","dot","handleClasses","dotStyle","tooltip","tooltipClasses","tooltipInnerClasses","tooltipStyle","focus","tooltipPlacement","showTooltip","tooltipFormatter","String","validator","val","required","Function","Boolean","KEY_CODE","VueSlideMark","stopPropagation","mark","pos","marksClasses","step","stepClasses","stepStyle","style","active","stepActiveStyle","activeStyle","hideLabel","label","labelClasses","labelStyle","labelActiveStyle","labelClickHandle","getSize","getOffset","elem","doc","body","rect","getBoundingClientRect","offset","y","top","pageYOffset","scrollTop","clientTop","x","left","pageXOffset","scrollLeft","clientLeft","getPos","isReverse","zoom","targetTouches","posObj","pageX","pageY","offsetWidth","offsetHeight","getKeyboardHandleFunc","params","hook","result","keyCode","UP","direction","RIGHT","DOWN","LEFT","END","max","HOME","min","PAGE_UP","PAGE_DOWN","ERROR_TYPE","Decimal","num","num2","operator","num1","len1","getDecimalLen","len2","base","getExponent","safeRoundUp","decimal","strArr","split","Math","pow","exponent","round","ERROR_MSG","VALUE","INTERVAL","MIN","MAX","ORDER","dotsPos","dotsValue","cacheRangeDir","interval","order","marks","included","process","adsorb","dotOptions","onError","minRange","maxRange","enableCross","fixed","emitError","setValue","setDotsValue","sort","getIndexByValue","syncPos","syncDotsPos","list","map","dotPos","getValueByPos","parsePos","dir","markList","curDir","abs","v","parseValue","arr","filter","getDotOption","minus","divide","toNumber","total","multiply","plus","getValidPos","changePos","changePosArr","getFixedChangePosArr","getLimitRangeChangePosArr","setDotsPos","curPos","originPos","lastPos","inRange","_","changeDots","newChangePos","isLimitRange","rangeIndex","isMinRange","isForward","next","inLimitRange","pos2","pos1","diff","minRangeDir","maxRangeDir","nextPos","isPos","changeDot","range","valuePosRange","gap","getValueByIndex","processArray","some","start","end","values","defaultValue","option","getMarkByValue","isActiveByPos","getValues","item","floor","getRangeDir","getDotRange","State","states","state","has","delete","add","SliderState","None","Drag","Focus","DEFAULT_SLIDER_SIZE","VueSlider","scale","focusDotIndex","control","isNotSync","syncValueByPos","initControl","bindEvent","unbindEvent","addEventListener","dragMove","passive","dragEnd","blurHandle","keydownHandle","removeEventListener","isHorizontal","$refs","rail","sliderData","sliderMarks","$watch","every","isDiff","value1","value2","message","silent","console","error","dragOnClick","setScale","getPosByEvent","getRecentDot","dots","setDotPos","lazy","preventDefault","isCrossDot","canSort","curIndex","dragRange","dotVm","$el","setTimeout","useKeyboard","container","contains","clickable","setValueByPos","indexes","dotsIndex","isInclude","handleFunc","keydownHook","newIndex","defaultSlot","isDefault","scopedSlot","$scopedSlots","containerClasses","containerStyles","clickHandle","dragStartOnProcess","$attrs","railStyle","renderSlot","tailSize","mainDirection","disabledStyle","focusStyle","tooltipDisabledStyle","tooltipFocusStyle","sliderTooltipFormatter","tooltipDirections","dotAttrs","dotBaseStyle","animateTime","blur","getValue","height","width","dotSize","dotWidth","dotHeight","containerWidth","containerHeight","padding","contained","sizeStyleKey","processStyle","transform","duration","isObjectArrayData","obj","dataValue","isObjectData","dataLabel","tooltipText","prevDot","nextDot","Infinity","Number","components","VueSliderMark"],"mappings":"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","file":"vue-slider-component.umd.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"vue\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vue-slider-component\"] = factory(require(\"vue\"));\n\telse\n\t\troot[\"vue-slider-component\"] = factory(root[\"Vue\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__8bbf__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n","\"use strict\";function _extends(){return _extends=Object.assign||function(a){for(var b,c=1;c<arguments.length;c++)for(var d in b=arguments[c],b)Object.prototype.hasOwnProperty.call(b,d)&&(a[d]=b[d]);return a},_extends.apply(this,arguments)}var normalMerge=[\"attrs\",\"props\",\"domProps\"],toArrayMerge=[\"class\",\"style\",\"directives\"],functionalMerge=[\"on\",\"nativeOn\"],mergeJsxProps=function(a){return a.reduce(function(c,a){for(var b in a)if(!c[b])c[b]=a[b];else if(-1!==normalMerge.indexOf(b))c[b]=_extends({},c[b],a[b]);else if(-1!==toArrayMerge.indexOf(b)){var d=c[b]instanceof Array?c[b]:[c[b]],e=a[b]instanceof Array?a[b]:[a[b]];c[b]=d.concat(e)}else if(-1!==functionalMerge.indexOf(b)){for(var f in a[b])if(c[b][f]){var g=c[b][f]instanceof Array?c[b][f]:[c[b][f]],h=a[b][f]instanceof Array?a[b][f]:[a[b][f]];c[b][f]=g.concat(h)}else c[b][f]=a[b][f];}else if(\"hook\"==b)for(var i in a[b])c[b][i]=c[b][i]?mergeFn(c[b][i],a[b][i]):a[b][i];else c[b]=a[b];return c},{})},mergeFn=function(a,b){return function(){a&&a.apply(this,arguments),b&&b.apply(this,arguments)}};module.exports=mergeJsxProps;\n","/**\n * vue-class-component v7.0.1\n * (c) 2015-present Evan You\n * @license MIT\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Vue = _interopDefault(require('vue'));\n\n// The rational behind the verbose Reflect-feature check below is the fact that there are polyfills\n// which add an implementation for Reflect.defineMetadata but not for Reflect.getOwnMetadataKeys.\n// Without this check consumers will encounter hard to track down runtime errors.\nvar reflectionIsSupported = typeof Reflect !== 'undefined' && Reflect.defineMetadata && Reflect.getOwnMetadataKeys;\nfunction copyReflectionMetadata(to, from) {\n forwardMetadata(to, from);\n Object.getOwnPropertyNames(from.prototype).forEach(function (key) {\n forwardMetadata(to.prototype, from.prototype, key);\n });\n Object.getOwnPropertyNames(from).forEach(function (key) {\n forwardMetadata(to, from, key);\n });\n}\nfunction forwardMetadata(to, from, propertyKey) {\n var metaKeys = propertyKey\n ? Reflect.getOwnMetadataKeys(from, propertyKey)\n : Reflect.getOwnMetadataKeys(from);\n metaKeys.forEach(function (metaKey) {\n var metadata = propertyKey\n ? Reflect.getOwnMetadata(metaKey, from, propertyKey)\n : Reflect.getOwnMetadata(metaKey, from);\n if (propertyKey) {\n Reflect.defineMetadata(metaKey, metadata, to, propertyKey);\n }\n else {\n Reflect.defineMetadata(metaKey, metadata, to);\n }\n });\n}\n\nvar fakeArray = { __proto__: [] };\nvar hasProto = fakeArray instanceof Array;\nfunction createDecorator(factory) {\n return function (target, key, index) {\n var Ctor = typeof target === 'function'\n ? target\n : target.constructor;\n if (!Ctor.__decorators__) {\n Ctor.__decorators__ = [];\n }\n if (typeof index !== 'number') {\n index = undefined;\n }\n Ctor.__decorators__.push(function (options) { return factory(options, key, index); });\n };\n}\nfunction mixins() {\n var Ctors = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Ctors[_i] = arguments[_i];\n }\n return Vue.extend({ mixins: Ctors });\n}\nfunction isPrimitive(value) {\n var type = typeof value;\n return value == null || (type !== 'object' && type !== 'function');\n}\nfunction warn(message) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-class-component] ' + message);\n }\n}\n\nfunction collectDataFromConstructor(vm, Component) {\n // override _init to prevent to init as Vue instance\n var originalInit = Component.prototype._init;\n Component.prototype._init = function () {\n var _this = this;\n // proxy to actual vm\n var keys = Object.getOwnPropertyNames(vm);\n // 2.2.0 compat (props are no longer exposed as self properties)\n if (vm.$options.props) {\n for (var key in vm.$options.props) {\n if (!vm.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n }\n keys.forEach(function (key) {\n if (key.charAt(0) !== '_') {\n Object.defineProperty(_this, key, {\n get: function () { return vm[key]; },\n set: function (value) { vm[key] = value; },\n configurable: true\n });\n }\n });\n };\n // should be acquired class property values\n var data = new Component();\n // restore original _init to avoid memory leak (#209)\n Component.prototype._init = originalInit;\n // create plain data object\n var plainData = {};\n Object.keys(data).forEach(function (key) {\n if (data[key] !== undefined) {\n plainData[key] = data[key];\n }\n });\n if (process.env.NODE_ENV !== 'production') {\n if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) {\n warn('Component class must inherit Vue or its descendant class ' +\n 'when class property is used.');\n }\n }\n return plainData;\n}\n\nvar $internalHooks = [\n 'data',\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeDestroy',\n 'destroyed',\n 'beforeUpdate',\n 'updated',\n 'activated',\n 'deactivated',\n 'render',\n 'errorCaptured',\n 'serverPrefetch' // 2.6\n];\nfunction componentFactory(Component, options) {\n if (options === void 0) { options = {}; }\n options.name = options.name || Component._componentTag || Component.name;\n // prototype props.\n var proto = Component.prototype;\n Object.getOwnPropertyNames(proto).forEach(function (key) {\n if (key === 'constructor') {\n return;\n }\n // hooks\n if ($internalHooks.indexOf(key) > -1) {\n options[key] = proto[key];\n return;\n }\n var descriptor = Object.getOwnPropertyDescriptor(proto, key);\n if (descriptor.value !== void 0) {\n // methods\n if (typeof descriptor.value === 'function') {\n (options.methods || (options.methods = {}))[key] = descriptor.value;\n }\n else {\n // typescript decorated data\n (options.mixins || (options.mixins = [])).push({\n data: function () {\n var _a;\n return _a = {}, _a[key] = descriptor.value, _a;\n }\n });\n }\n }\n else if (descriptor.get || descriptor.set) {\n // computed properties\n (options.computed || (options.computed = {}))[key] = {\n get: descriptor.get,\n set: descriptor.set\n };\n }\n });\n (options.mixins || (options.mixins = [])).push({\n data: function () {\n return collectDataFromConstructor(this, Component);\n }\n });\n // decorate options\n var decorators = Component.__decorators__;\n if (decorators) {\n decorators.forEach(function (fn) { return fn(options); });\n delete Component.__decorators__;\n }\n // find super\n var superProto = Object.getPrototypeOf(Component.prototype);\n var Super = superProto instanceof Vue\n ? superProto.constructor\n : Vue;\n var Extended = Super.extend(options);\n forwardStaticMembers(Extended, Component, Super);\n if (reflectionIsSupported) {\n copyReflectionMetadata(Extended, Component);\n }\n return Extended;\n}\nvar reservedPropertyNames = [\n // Unique id\n 'cid',\n // Super Vue constructor\n 'super',\n // Component options that will be used by the component\n 'options',\n 'superOptions',\n 'extendOptions',\n 'sealedOptions',\n // Private assets\n 'component',\n 'directive',\n 'filter'\n];\nfunction forwardStaticMembers(Extended, Original, Super) {\n // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable\n Object.getOwnPropertyNames(Original).forEach(function (key) {\n // `prototype` should not be overwritten\n if (key === 'prototype') {\n return;\n }\n // Some browsers does not allow reconfigure built-in properties\n var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);\n if (extendedDescriptor && !extendedDescriptor.configurable) {\n return;\n }\n var descriptor = Object.getOwnPropertyDescriptor(Original, key);\n // If the user agent does not support `__proto__` or its family (IE <= 10),\n // the sub class properties may be inherited properties from the super class in TypeScript.\n // We need to exclude such properties to prevent to overwrite\n // the component options object which stored on the extended constructor (See #192).\n // If the value is a referenced value (object or function),\n // we can check equality of them and exclude it if they have the same reference.\n // If it is a primitive value, it will be forwarded for safety.\n if (!hasProto) {\n // Only `cid` is explicitly exluded from property forwarding\n // because we cannot detect whether it is a inherited property or not\n // on the no `__proto__` environment even though the property is reserved.\n if (key === 'cid') {\n return;\n }\n var superDescriptor = Object.getOwnPropertyDescriptor(Super, key);\n if (!isPrimitive(descriptor.value) &&\n superDescriptor &&\n superDescriptor.value === descriptor.value) {\n return;\n }\n }\n // Warn if the users manually declare reserved properties\n if (process.env.NODE_ENV !== 'production' &&\n reservedPropertyNames.indexOf(key) >= 0) {\n warn(\"Static property name '\" + key + \"' declared on class '\" + Original.name + \"' \" +\n 'conflicts with reserved property name of Vue internal. ' +\n 'It may cause unexpected behavior of the component. Consider renaming the property.');\n }\n Object.defineProperty(Extended, key, descriptor);\n });\n}\n\nfunction Component(options) {\n if (typeof options === 'function') {\n return componentFactory(options);\n }\n return function (Component) {\n return componentFactory(Component, options);\n };\n}\nComponent.registerHooks = function registerHooks(keys) {\n $internalHooks.push.apply($internalHooks, keys);\n};\n\nexports.default = Component;\nexports.createDecorator = createDecorator;\nexports.mixins = mixins;\n","// addapted from the document.currentScript polyfill by Adam Miller\n// MIT license\n// source: https://github.com/amiller-gh/currentScript-polyfill\n\n// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505\n\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = factory();\n } else {\n root.getCurrentScript = factory();\n }\n}(typeof self !== 'undefined' ? self : this, function () {\n function getCurrentScript () {\n var descriptor = Object.getOwnPropertyDescriptor(document, 'currentScript')\n // for chrome\n if (!descriptor && 'currentScript' in document && document.currentScript) {\n return document.currentScript\n }\n\n // for other browsers with native support for currentScript\n if (descriptor && descriptor.get !== getCurrentScript && document.currentScript) {\n return document.currentScript\n }\n \n // IE 8-10 support script readyState\n // IE 11+ & Firefox support stack trace\n try {\n throw new Error();\n }\n catch (err) {\n // Find the second match for the \"at\" string to get file src url from stack.\n var ieStackRegExp = /.*at [^(]*\\((.*):(.+):(.+)\\)$/ig,\n ffStackRegExp = /@([^@]*):(\\d+):(\\d+)\\s*$/ig,\n stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),\n scriptLocation = (stackDetails && stackDetails[1]) || false,\n line = (stackDetails && stackDetails[2]) || false,\n currentLocation = document.location.href.replace(document.location.hash, ''),\n pageSource,\n inlineScriptSourceRegExp,\n inlineScriptSource,\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n \n if (scriptLocation === currentLocation) {\n pageSource = document.documentElement.outerHTML;\n inlineScriptSourceRegExp = new RegExp('(?:[^\\\\n]+?\\\\n){0,' + (line - 2) + '}[^<]*<script>([\\\\d\\\\D]*?)<\\\\/script>[\\\\d\\\\D]*', 'i');\n inlineScriptSource = pageSource.replace(inlineScriptSourceRegExp, '$1').trim();\n }\n \n for (var i = 0; i < scripts.length; i++) {\n // If ready state is interactive, return the script tag\n if (scripts[i].readyState === 'interactive') {\n return scripts[i];\n }\n \n // If src matches, return the script tag\n if (scripts[i].src === scriptLocation) {\n return scripts[i];\n }\n \n // If inline source matches, return the script tag\n if (\n scriptLocation === currentLocation &&\n scripts[i].innerHTML &&\n scripts[i].innerHTML.trim() === inlineScriptSource\n ) {\n return scripts[i];\n }\n }\n \n // If no match, return null\n return null;\n }\n };\n\n return getCurrentScript\n}));\n","module.exports = __WEBPACK_EXTERNAL_MODULE__8bbf__;","// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/** vue-property-decorator verson 8.0.0 MIT LICENSE copyright 2018 kaorun343 */\n'use strict';\nimport Vue from 'vue';\nimport Component, { createDecorator, mixins } from 'vue-class-component';\nexport { Component, Vue, mixins as Mixins };\n/**\n * decorator of an inject\n * @param from key\n * @return PropertyDecorator\n */\nexport function Inject(options) {\n return createDecorator(function (componentOptions, key) {\n if (typeof componentOptions.inject === 'undefined') {\n componentOptions.inject = {};\n }\n if (!Array.isArray(componentOptions.inject)) {\n componentOptions.inject[key] = options || key;\n }\n });\n}\n/**\n * decorator of a provide\n * @param key key\n * @return PropertyDecorator | void\n */\nexport function Provide(key) {\n return createDecorator(function (componentOptions, k) {\n var provide = componentOptions.provide;\n if (typeof provide !== 'function' || !provide.managed) {\n var original_1 = componentOptions.provide;\n provide = componentOptions.provide = function () {\n var rv = Object.create((typeof original_1 === 'function' ? original_1.call(this) : original_1) || null);\n for (var i in provide.managed)\n rv[provide.managed[i]] = this[i];\n return rv;\n };\n provide.managed = {};\n }\n provide.managed[k] = key || k;\n });\n}\n/**\n * decorator of model\n * @param event event name\n * @param options options\n * @return PropertyDecorator\n */\nexport function Model(event, options) {\n if (options === void 0) { options = {}; }\n return createDecorator(function (componentOptions, k) {\n (componentOptions.props || (componentOptions.props = {}))[k] = options;\n componentOptions.model = { prop: k, event: event || k };\n });\n}\n/**\n * decorator of a prop\n * @param options the options for the prop\n * @return PropertyDecorator | void\n */\nexport function Prop(options) {\n if (options === void 0) { options = {}; }\n return createDecorator(function (componentOptions, k) {\n (componentOptions.props || (componentOptions.props = {}))[k] = options;\n });\n}\n/**\n * decorator of a watch function\n * @param path the path or the expression to observe\n * @param WatchOption\n * @return MethodDecorator\n */\nexport function Watch(path, options) {\n if (options === void 0) { options = {}; }\n var _a = options.deep, deep = _a === void 0 ? false : _a, _b = options.immediate, immediate = _b === void 0 ? false : _b;\n return createDecorator(function (componentOptions, handler) {\n if (typeof componentOptions.watch !== 'object') {\n componentOptions.watch = Object.create(null);\n }\n var watch = componentOptions.watch;\n if (typeof watch[path] === 'object' && !Array.isArray(watch[path])) {\n watch[path] = [watch[path]];\n }\n else if (typeof watch[path] === 'undefined') {\n watch[path] = [];\n }\n watch[path].push({ handler: handler, deep: deep, immediate: immediate });\n });\n}\n// Code copied from Vue/src/shared/util.js\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = function (str) { return str.replace(hyphenateRE, '-$1').toLowerCase(); };\n/**\n * decorator of an event-emitter function\n * @param event The name of the event\n * @return MethodDecorator\n */\nexport function Emit(event) {\n return function (_target, key, descriptor) {\n key = hyphenate(key);\n var original = descriptor.value;\n descriptor.value = function emitter() {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var emit = function (returnValue) {\n if (returnValue !== undefined)\n args.unshift(returnValue);\n _this.$emit.apply(_this, [event || key].concat(args));\n };\n var returnValue = original.apply(this, args);\n if (isPromise(returnValue)) {\n returnValue.then(function (returnValue) {\n emit(returnValue);\n });\n }\n else {\n emit(returnValue);\n }\n };\n };\n}\nfunction isPromise(obj) {\n return obj instanceof Promise || (obj && typeof obj.then === 'function');\n}\n","import { Component, Prop, Vue } from 'vue-property-decorator'\nimport { Value, Styles, Position, TooltipProp, TooltipFormatter } from './typings'\n\nimport './styles/dot.scss'\n\n@Component({ name: 'VueSliderDot' })\nexport default class VueSliderDot extends Vue {\n $refs!: {\n dot: HTMLDivElement\n }\n\n @Prop({ default: 0 })\n value!: Value\n\n @Prop() tooltip!: TooltipProp\n\n @Prop() dotStyle?: Styles\n\n @Prop() tooltipStyle?: Styles\n\n @Prop({\n type: String,\n validator: (val: string) => ['top', 'right', 'bottom', 'left'].indexOf(val) > -1,\n required: true,\n })\n tooltipPlacement!: Position\n\n @Prop({ type: [String, Function] })\n tooltipFormatter?: TooltipFormatter\n\n @Prop({ type: Boolean, default: false })\n focus!: boolean\n\n @Prop({ default: false })\n disabled!: boolean\n\n get dotClasses() {\n return [\n 'vue-slider-dot',\n {\n 'vue-slider-dot-hover': this.tooltip === 'hover' || this.tooltip === 'active',\n 'vue-slider-dot-disabled': this.disabled,\n 'vue-slider-dot-focus': this.focus,\n },\n ]\n }\n\n get handleClasses() {\n return [\n 'vue-slider-dot-handle',\n {\n 'vue-slider-dot-handle-disabled': this.disabled,\n 'vue-slider-dot-handle-focus': this.focus,\n },\n ]\n }\n\n get tooltipClasses() {\n return [\n 'vue-slider-dot-tooltip',\n [`vue-slider-dot-tooltip-${this.tooltipPlacement}`],\n {\n 'vue-slider-dot-tooltip-show': this.showTooltip,\n },\n ]\n }\n\n get tooltipInnerClasses() {\n return [\n 'vue-slider-dot-tooltip-inner',\n [`vue-slider-dot-tooltip-inner-${this.tooltipPlacement}`],\n {\n 'vue-slider-dot-tooltip-inner-disabled': this.disabled,\n 'vue-slider-dot-tooltip-inner-focus': this.focus,\n },\n ]\n }\n\n get showTooltip(): boolean {\n switch (this.tooltip) {\n case 'always':\n return true\n case 'none':\n return false\n case 'focus':\n case 'active':\n return !!this.focus\n default:\n return false\n }\n }\n\n get tooltipValue(): Value {\n if (this.tooltipFormatter) {\n return typeof this.tooltipFormatter === 'string'\n ? this.tooltipFormatter.replace(/\\{value\\}/, String(this.value))\n : this.tooltipFormatter(this.value)\n } else {\n return this.value\n }\n }\n\n dragStart(e: MouseEvent | TouchEvent) {\n if (this.disabled) {\n return false\n }\n\n this.$emit('drag-start')\n }\n\n render() {\n return (\n <div\n ref=\"dot\"\n class={this.dotClasses}\n aria-valuetext={typeof this.tooltipValue === 'number' ? this.tooltipValue.toString() : this.tooltipValue}\n onMousedown={this.dragStart}\n onTouchstart={this.dragStart}\n >\n {this.$slots.dot || <div class={this.handleClasses} style={this.dotStyle} />}\n {this.tooltip !== 'none' ? (\n <div class={this.tooltipClasses}>\n {this.$slots.tooltip || (\n <div class={this.tooltipInnerClasses} style={this.tooltipStyle}>\n <span class={'vue-slider-dot-tooltip-text'}>{this.tooltipValue}</span>\n </div>\n )}\n </div>\n ) : null}\n </div>\n )\n }\n}\n","import { Component, Prop, Vue } from 'vue-property-decorator'\nimport { Mark, Styles } from './typings'\n\nimport './styles/mark.scss'\n\n@Component({ name: 'VueSlideMark' })\nexport default class VueSlideMark extends Vue {\n @Prop({ required: true })\n mark!: Mark\n\n @Prop(Boolean) hideLabel?: boolean\n\n @Prop() stepStyle?: Styles\n\n @Prop() stepActiveStyle?: Styles\n\n @Prop() labelStyle?: Styles\n\n @Prop() labelActiveStyle?: Styles\n\n get marksClasses() {\n return [\n 'vue-slider-mark',\n {\n 'vue-slider-mark-active': this.mark.active,\n },\n ]\n }\n\n get stepClasses() {\n return [\n 'vue-slider-mark-step',\n {\n 'vue-slider-mark-step-active': this.mark.active,\n },\n ]\n }\n\n get labelClasses() {\n return [\n 'vue-slider-mark-label',\n {\n 'vue-slider-mark-label-active': this.mark.active,\n },\n ]\n }\n\n labelClickHandle(e: MouseEvent | TouchEvent) {\n e.stopPropagation()\n this.$emit('pressLabel', this.mark.pos)\n }\n\n render() {\n const mark = this.mark\n return (\n <div class={this.marksClasses}>\n {this.$slots.step || (\n <div\n class={this.stepClasses}\n style={[\n this.stepStyle || {},\n mark.style || {},\n mark.active ? this.stepActiveStyle || {} : {},\n mark.active ? mark.activeStyle || {} : {},\n ]}\n />\n )}\n {!this.hideLabel\n ? this.$slots.label || (\n <div\n class={this.labelClasses}\n style={[\n this.labelStyle || {},\n mark.labelStyle || {},\n mark.active ? this.labelActiveStyle || {} : {},\n mark.active ? mark.labelActiveStyle || {} : {},\n ]}\n onClick={this.labelClickHandle}\n >\n {mark.label}\n </div>\n )\n : null}\n </div>\n )\n }\n}\n","import { Direction } from '../typings'\n\ninterface IPosObject {\n x: number\n y: number\n}\n\nexport const getSize = (value: number | string): string => {\n return typeof value === 'number' ? `${value}px` : value\n}\n\n/** Get the distance of the element from the top/left of the page */\nexport const getOffset = (elem: HTMLDivElement): IPosObject => {\n const doc = document.documentElement as HTMLElement\n const body = document.body as HTMLElement\n const rect = elem.getBoundingClientRect()\n const offset: IPosObject = {\n y: rect.top + (window.pageYOffset || doc.scrollTop) - (doc.clientTop || body.clientTop || 0),\n x:\n rect.left + (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || body.clientLeft || 0),\n }\n return offset\n}\n\n/**\n * Get the position of the mouse/finger in the element\n * @param e Trigger event\n * @param elem Container element\n * @param isReverse From the right/bottom\n */\nexport const getPos = (\n e: MouseEvent | TouchEvent,\n elem: HTMLDivElement,\n isReverse: boolean,\n zoom: number = 1,\n): IPosObject => {\n const event = 'targetTouches' in e ? e.targetTouches[0] : e\n const offset = getOffset(elem)\n const posObj = {\n x: event.pageX - offset.x,\n y: event.pageY - offset.y,\n }\n return {\n x: isReverse ? elem.offsetWidth * zoom - posObj.x : posObj.x,\n y: isReverse ? elem.offsetHeight * zoom - posObj.y : posObj.y,\n }\n}\n\nconst enum KEY_CODE {\n PAGE_UP = 33,\n PAGE_DOWN,\n END,\n HOME,\n LEFT,\n UP,\n RIGHT,\n DOWN,\n}\nexport type HandleFunction = (index: number) => number\nexport const getKeyboardHandleFunc = (\n e: KeyboardEvent,\n params: {\n direction: Direction\n max: number\n min: number\n hook: (e: KeyboardEvent) => HandleFunction | boolean\n },\n): HandleFunction | null => {\n if (params.hook) {\n const result = params.hook(e)\n if (typeof result === 'function') return result\n if (!result) return null\n }\n switch (e.keyCode) {\n case KEY_CODE.UP:\n return i => (params.direction === 'ttb' ? i - 1 : i + 1)\n case KEY_CODE.RIGHT:\n return i => (params.direction === 'rtl' ? i - 1 : i + 1)\n case KEY_CODE.DOWN:\n return i => (params.direction === 'ttb' ? i + 1 : i - 1)\n case KEY_CODE.LEFT:\n return i => (params.direction === 'rtl' ? i + 1 : i - 1)\n\n case KEY_CODE.END:\n return () => params.max\n case KEY_CODE.HOME:\n return () => params.min\n\n case KEY_CODE.PAGE_UP:\n return i => i + 10\n case KEY_CODE.PAGE_DOWN:\n return i => i - 10\n\n default:\n return null\n }\n}\n","import Decimal from './decimal'\nimport {\n Value,\n Mark,\n MarkOption,\n Marks,\n MarksProp,\n ProcessProp,\n ProcessOption,\n MarksFunction,\n DotOption,\n} from '../typings'\n\n// The distance each slider changes\ntype DotsPosChangeArray = number[]\n\nexport const enum ERROR_TYPE {\n VALUE = 1,\n INTERVAL,\n MIN,\n MAX,\n ORDER,\n}\n\ntype ERROR_MESSAGE = { [key in ERROR_TYPE]: string }\nexport const ERROR_MSG: ERROR_MESSAGE = {\n [ERROR_TYPE.VALUE]: 'The type of the \"value\" is illegal',\n [ERROR_TYPE.INTERVAL]:\n 'The prop \"interval\" is invalid, \"(max - min)\" must be divisible by \"interval\"',\n [ERROR_TYPE.MIN]: 'The \"value\" must be greater than or equal to the \"min\".',\n [ERROR_TYPE.MAX]: 'The \"value\" must be less than or equal to the \"max\".',\n [ERROR_TYPE.ORDER]:\n 'When \"order\" is false, the parameters \"minRange\", \"maxRange\", \"fixed\", \"enabled\" are invalid.',\n}\n\n/**\n * Slider logic control center\n *\n * @export\n * @class Control\n */\nexport default class Control {\n dotsPos: number[] = [] // The position of each slider\n dotsValue: Value[] = [] // The value of each slider\n\n data?: Value[]\n enableCross: boolean\n fixed: boolean\n max: number\n min: number\n interval: number\n minRange: number\n maxRange: number\n order: boolean\n marks?: MarksProp\n included?: boolean\n process?: ProcessProp\n adsorb?: boolean\n dotOptions?: DotOption | DotOption[]\n onError?: (type: ERROR_TYPE, message: string) => void\n\n constructor(options: {\n value: Value | Value[]\n data?: Value[]\n enableCross: boolean\n fixed: boolean\n max: number\n min: number\n interval: number\n order: boolean\n minRange?: number\n maxRange?: number\n marks?: MarksProp\n included?: boolean\n process?: ProcessProp\n adsorb?: boolean\n dotOptions?: DotOption | DotOption[]\n onError?: (type: ERROR_TYPE, message: string) => void\n }) {\n this.data = options.data\n this.max = options.max\n this.min = options.min\n this.interval = options.interval\n this.order = options.order\n this.marks = options.marks\n this.included = options.included\n this.process = options.process\n this.adsorb = options.adsorb\n this.dotOptions = options.dotOptions\n this.onError = options.onError\n if (this.order) {\n this.minRange = options.minRange || 0\n this.maxRange = options.maxRange || 0\n this.enableCross = options.enableCross\n this.fixed = options.fixed\n } else {\n if (options.minRange || options.maxRange || !options.enableCross || options.fixed) {\n this.emitError(ERROR_TYPE.ORDER)\n }\n this.minRange = 0\n this.maxRange = 0\n this.enableCross = true\n this.fixed = false\n }\n this.setValue(options.value)\n }\n\n setValue(value: Value | Value[]) {\n this.setDotsValue(\n Array.isArray(value)\n ? this.order\n ? [...value].sort((a, b) => this.getIndexByValue(a) - this.getIndexByValue(b))\n : [...value]\n : [value],\n true,\n )\n }\n\n setDotsValue(value: Value[], syncPos?: boolean) {\n this.dotsValue = value\n if (syncPos) {\n this.syncDotsPos()\n }\n }\n\n // Set the slider position\n setDotsPos(dotsPos: number[]) {\n const list = this.order ? [...dotsPos].sort((a, b) => a - b) : dotsPos\n this.dotsPos = list\n this.setDotsValue(\n list.map(dotPos => this.getValueByPos(dotPos)),\n this.adsorb,\n )\n }\n\n // Get value by position\n getValueByPos(pos: number): Value {\n let value = this.parsePos(pos)\n // When included is true, the return value is the value of the nearest mark\n if (this.included) {\n let dir = 100\n this.markList.forEach(mark => {\n const curDir = Math.abs(mark.pos - pos)\n if (curDir < dir) {\n dir = curDir\n value = mark.value\n }\n })\n }\n return value\n }\n\n // Sync slider position\n syncDotsPos() {\n this.dotsPos = this.dotsValue.map(v => this.parseValue(v))\n }\n\n /**\n * Get all the marks\n *\n * @readonly\n * @type {Mark[]}\n * @memberof Control\n */\n get markList(): Mark[] {\n if (!this.marks) {\n return []\n }\n\n const getMarkByValue = (value: Value, mark?: MarkOption): Mark => {\n const pos = this.parseValue(value)\n return {\n pos,\n value,\n label: value,\n active: this.isActiveByPos(pos),\n ...mark,\n }\n }\n\n if (this.marks === true) {\n return this.getValues().map(value => getMarkByValue(value))\n } else if (Object.prototype.toString.call(this.marks) === '[object Object]') {\n return Object.keys(this.marks)\n .sort((a, b) => +a - +b)\n .map(value => {\n const item = (this.marks as Marks)[value]\n return getMarkByValue(value, typeof item !== 'string' ? item : { label: item })\n })\n } else if (Array.isArray(this.marks)) {\n return this.marks.map(value => getMarkByValue(value))\n } else if (typeof this.marks === 'function') {\n return this.getValues()\n .map(value => ({ value, result: (this.marks as MarksFunction)(value) }))\n .filter(({ result }) => !!result)\n .map(({ value, result }) => getMarkByValue(value, result as Mark))\n } else {\n return []\n }\n }\n\n /**\n * Get the most recent slider index by position\n *\n * @param {number} pos\n * @returns {number}\n * @memberof Control\n */\n getRecentDot(pos: number): number {\n const arr = this.dotsPos\n .filter((dotPos, index) => !(this.getDotOption(index) && this.getDotOption(index)!.disabled))\n .map(dotPos => Math.abs(dotPos - pos))\n return arr.indexOf(Math.min(...arr))\n }\n\n /**\n * Get index by value\n *\n * @param {Value} value\n * @returns {number}\n * @memberof Control\n */\n getIndexByValue(value: Value): number {\n if (this.data) {\n return this.data.indexOf(value)\n }\n return new Decimal(+value).minus(this.min).divide(this.interval).toNumber()\n }\n\n /**\n * Get value by index\n *\n * @param {index} number\n * @returns {Value}\n * @memberof Control\n */\n getValueByIndex(index: number): Value {\n if (index < 0) {\n index = 0\n } else if (index > this.total) {\n index = this.total\n }\n return this.data\n ? this.data[index]\n : new Decimal(index).multiply(this.interval).plus(this.min).toNumber()\n }\n\n /**\n * Set the position of a single slider\n *\n * @param {number} pos\n * @param {number} index\n */\n setDotPos(pos: number, index: number) {\n pos = this.getValidPos(pos, index).pos\n const changePos = pos - this.dotsPos[index]\n\n if (!changePos) {\n return\n }\n\n let changePosArr: DotsPosChangeArray = new Array(this.dotsPos.length)\n if (this.fixed) {\n changePosArr = this.getFixedChangePosArr(changePos, index)\n } else if (this.minRange || this.maxRange) {\n changePosArr = this.getLimitRangeChangePosArr(pos, changePos, index)\n } else {\n changePosArr[index] = changePos\n }\n\n this.setDotsPos(this.dotsPos.map((curPos, i) => curPos + (changePosArr[i] || 0)))\n }\n\n /**\n * In fixed mode, get the position of all slider changes\n *\n * @param {number} changePos Change distance of a single slider\n * @param {number} index slider index\n * @returns {DotsPosChangeArray}\n * @memberof Control\n */\n private getFixedChangePosArr(changePos: number, index: number): DotsPosChangeArray {\n this.dotsPos.forEach((originPos, i) => {\n if (i !== index) {\n const { pos: lastPos, inRange } = this.getValidPos(originPos + changePos, i)\n if (!inRange) {\n changePos =\n Math.min(Math.abs(lastPos - originPos), Math.abs(changePos)) * (changePos < 0 ? -1 : 1)\n }\n }\n })\n return this.dotsPos.map(_ => changePos)\n }\n\n /**\n * In minRange/maxRange mode, get the position of all slider changes\n *\n * @param {number} pos position of a single slider\n * @param {number} changePos Change distance of a single slider\n * @param {number} index slider index\n * @returns {DotsPosChangeArray}\n * @memberof Control\n */\n private getLimitRangeChangePosArr(\n pos: number,\n changePos: number,\n index: number,\n ): DotsPosChangeArray {\n const changeDots = [{ index, changePos }]\n const newChangePos = changePos\n ;[this.minRange, this.maxRange].forEach((isLimitRange?: number, rangeIndex?: number) => {\n if (!isLimitRange) {\n return false\n }\n const isMinRange = rangeIndex === 0\n const isForward = changePos > 0\n let next = 0\n if (isMinRange) {\n next = isForward ? 1 : -1\n } else {\n next = isForward ? -1 : 1\n }\n\n // Determine if the two positions are within the legal interval\n const inLimitRange = (pos2: number, pos1: number): boolean => {\n const diff = Math.abs(pos2 - pos1)\n return isMinRange ? diff < this.minRangeDir : diff > this.maxRangeDir\n }\n\n let i = index + next\n let nextPos = this.dotsPos[i]\n let curPos = pos\n while (this.isPos(nextPos) && inLimitRange(nextPos, curPos)) {\n const { pos: lastPos } = this.getValidPos(nextPos + newChangePos, i)\n changeDots.push({\n index: i,\n changePos: lastPos - nextPos,\n })\n i = i + next\n curPos = lastPos\n nextPos = this.dotsPos[i]\n }\n })\n\n return this.dotsPos.map((_, i) => {\n const changeDot = changeDots.filter(dot => dot.index === i)\n return changeDot.length ? changeDot[0].changePos : 0\n })\n }\n\n private isPos(pos: any): boolean {\n return typeof pos === 'number'\n }\n\n /**\n * Get a valid position by pos\n *\n * @param {number} pos\n * @param {number} index\n * @returns {{ pos: number, inRange: boolean }}\n */\n getValidPos(pos: number, index: number): { pos: number; inRange: boolean } {\n const range = this.valuePosRange[index]\n let inRange = true\n if (pos < range[0]) {\n pos = range[0]\n inRange = false\n } else if (pos > range[1]) {\n pos = range[1]\n inRange = false\n }\n return {\n pos,\n inRange,\n }\n }\n\n /**\n * Calculate the position of the slider by value\n *\n * @param {Value} val\n * @returns {number}\n */\n parseValue(val: Value): number {\n if (this.data) {\n val = this.data.indexOf(val)\n } else if (typeof val === 'number' || typeof val === 'string') {\n val = +val\n if (val < this.min) {\n this.emitError(ERROR_TYPE.MIN)\n return 0\n }\n if (val > this.max) {\n this.emitError(ERROR_TYPE.MAX)\n return 0\n }\n if (typeof val !== 'number' || val !== val) {\n this.emitError(ERROR_TYPE.VALUE)\n return 0\n }\n val = new Decimal(val).minus(this.min).divide(this.interval).toNumber()\n }\n\n const pos = new Decimal(val).multiply(this.gap).toNumber()\n return pos < 0 ? 0 : pos > 100 ? 100 : pos\n }\n\n /**\n * Calculate the value by position\n *\n * @param {number} pos\n * @returns {Value}\n * @memberof Control\n */\n parsePos(pos: number): Value {\n const index = Math.round(pos / this.gap)\n return this.getValueByIndex(index)\n }\n\n /**\n * Determine if the location is active\n *\n * @param {number} pos\n * @returns {boolean}\n * @memberof Control\n */\n isActiveByPos(pos: number): boolean {\n return this.processArray.some(([start, end]) => pos >= start && pos <= end)\n }\n\n /**\n * Get each value\n *\n * @returns {Value[]}\n * @memberof Control\n */\n getValues(): Value[] {\n if (this.data) {\n return this.data\n } else {\n const values: Value[] = []\n for (let i = 0; i <= this.total; i++) {\n values.push(new Decimal(i).multiply(this.interval).plus(this.min).toNumber())\n }\n return values\n }\n }\n\n /**\n * Calculate the distance of the range\n * @param range number\n */\n getRangeDir(range: number): number {\n return range\n ? new Decimal(range)\n .divide(\n new Decimal(this.data ? this.data.length - 1 : this.max)\n .minus(this.data ? 0 : this.min)\n .toNumber(),\n )\n .multiply(100)\n .toNumber()\n : 100\n }\n\n private emitError(type: ERROR_TYPE) {\n if (this.onError) {\n this.onError(type, ERROR_MSG[type])\n }\n }\n\n get processArray(): ProcessOption {\n if (this.process) {\n if (typeof this.process === 'function') {\n return this.process(this.dotsPos)\n } else if (this.dotsPos.length === 1) {\n return [[0, this.dotsPos[0]]]\n } else if (this.dotsPos.length > 1) {\n return [[Math.min(...this.dotsPos), Math.max(...this.dotsPos)]]\n }\n }\n\n return []\n }\n\n /**\n * The total number of values\n *\n * @type {number}\n * @memberof Control\n */\n get total(): number {\n let total = 0\n if (this.data) {\n total = this.data.length - 1\n } else {\n total = new Decimal(this.max).minus(this.min).divide(this.interval).toNumber()\n }\n if (total - Math.floor(total) !== 0) {\n this.emitError(ERROR_TYPE.INTERVAL)\n return 0\n }\n return total\n }\n\n // Distance between each value\n get gap(): number {\n return 100 / this.total\n }\n\n private cacheRangeDir: { [key: string]: number } = {}\n\n // The minimum distance between the two sliders\n get minRangeDir(): number {\n if (this.cacheRangeDir[this.minRange]) {\n return this.cacheRangeDir[this.minRange]\n }\n return (this.cacheRangeDir[this.minRange] = this.getRangeDir(this.minRange))\n }\n\n // Maximum distance between the two sliders\n get maxRangeDir(): number {\n if (this.cacheRangeDir[this.maxRange]) return this.cacheRangeDir[this.maxRange]\n return (this.cacheRangeDir[this.maxRange] = this.getRangeDir(this.maxRange))\n }\n\n private getDotOption(index: number): DotOption | undefined {\n return Array.isArray(this.dotOptions) ? this.dotOptions[index] : this.dotOptions\n }\n\n private getDotRange(index: number, key: 'min' | 'max', defaultValue: number): number {\n if (!this.dotOptions) {\n return defaultValue\n }\n\n const option = this.getDotOption(index)\n return option && option[key] !== void 0 ? this.parseValue(option[key] as Value) : defaultValue\n }\n\n /**\n * Sliding range of each slider\n *\n * @type {Array<[number, number]>}\n * @memberof Control\n */\n get valuePosRange(): Array<[number, number]> {\n const dotsPos = this.dotsPos\n const valuePosRange: Array<[number, number]> = []\n\n dotsPos.forEach((pos, i) => {\n valuePosRange.push([\n Math.max(\n this.minRange ? this.minRangeDir * i : 0,\n !this.enableCross ? dotsPos[i - 1] || 0 : 0,\n this.getDotRange(i, 'min', 0),\n ),\n Math.min(\n this.minRange ? 100 - this.minRangeDir * (dotsPos.length - 1 - i) : 100,\n !this.enableCross ? dotsPos[i + 1] || 100 : 100,\n this.getDotRange(i, 'max', 100),\n ),\n ])\n })\n\n return valuePosRange\n }\n\n get dotsIndex(): number[] {\n return this.dotsValue.map(val => this.getIndexByValue(val))\n }\n}\n","type Operator = '+' | '-' | '*' | '/' | '%'\n\n/**\n * For any precise floating point calculation\n *\n * @export\n * @class Decimal\n */\nexport default class Decimal {\n num: number\n\n constructor(num: number) {\n this.num = num\n }\n\n decimal(num2: number, operator: Operator): this {\n const num1 = this.num\n const len1 = this.getDecimalLen(num1)\n const len2 = this.getDecimalLen(num2)\n let base = 0\n switch (operator) {\n case '+':\n base = this.getExponent(len1, len2)\n this.num = (this.safeRoundUp(num1, base) + this.safeRoundUp(num2, base)) / base\n break\n case '-':\n base = this.getExponent(len1, len2)\n this.num = (this.safeRoundUp(num1, base) - this.safeRoundUp(num2, base)) / base\n break\n case '*':\n this.num =\n this.safeRoundUp(\n this.safeRoundUp(num1, this.getExponent(len1)),\n this.safeRoundUp(num2, this.getExponent(len2)),\n ) / this.getExponent(len1 + len2)\n break\n case '/':\n base = this.getExponent(len1, len2)\n this.num = this.safeRoundUp(num1, base) / this.safeRoundUp(num2, base)\n break\n case '%':\n base = this.getExponent(len1, len2)\n this.num = (this.safeRoundUp(num1, base) % this.safeRoundUp(num2, base)) / base\n break\n }\n return this\n }\n\n plus(num2: number) {\n return this.decimal(num2, '+')\n }\n\n minus(num2: number) {\n return this.decimal(num2, '-')\n }\n\n multiply(num2: number) {\n return this.decimal(num2, '*')\n }\n\n divide(num2: number) {\n return this.decimal(num2, '/')\n }\n\n remainder(num2: number) {\n return this.decimal(num2, '%')\n }\n\n toNumber(): number {\n return this.num\n }\n\n private getDecimalLen(num: number): number {\n const strArr = `${num}`.split('e')\n return (`${strArr[0]}`.split('.')[1] || '').length - (strArr[1] ? +strArr[1] : 0)\n }\n\n private getExponent(num1: number, num2?: number): number {\n return Math.pow(10, num2 !== void 0 ? Math.max(num1, num2) : num1)\n }\n\n // fix: 9999999.99995 * 100000 = 999999999994.9999\n private safeRoundUp(num: number, exponent: number): number {\n return Math.round(num * exponent)\n }\n}\n","export interface StateMap {\n [key: string]: number\n}\n\nexport default class State {\n map: StateMap\n states: number = 0\n\n constructor(map: StateMap) {\n this.map = map\n }\n\n add(state: number) {\n this.states |= state\n }\n\n delete(state: number) {\n this.states &= ~state\n }\n\n toggle(state: number) {\n if (this.has(state)) {\n this.delete(state)\n } else {\n this.add(state)\n }\n }\n\n has(state: number): boolean {\n return !!(this.states & state)\n }\n}\n","import { Component, Model, Prop, Watch, Vue } from 'vue-property-decorator'\nimport {\n Value,\n DataObject,\n Mark,\n Marks,\n MarksProp,\n Styles,\n DotOption,\n DotStyle,\n Dot,\n Direction,\n Position,\n ProcessProp,\n Process,\n TooltipProp,\n TooltipFormatter,\n} from './typings'\nimport VueSliderDot from './vue-slider-dot'\nimport VueSliderMark from './vue-slider-mark'\n\nimport { getSize, getPos, getKeyboardHandleFunc, HandleFunction } from './utils'\nimport Decimal from './utils/decimal'\nimport Control, { ERROR_TYPE } from './utils/control'\nimport State, { StateMap } from './utils/state'\n\nimport './styles/slider.scss'\n\nexport const SliderState: StateMap = {\n None: 0,\n Drag: 1 << 1,\n Focus: 1 << 2,\n}\n\nconst DEFAULT_SLIDER_SIZE = 4\n\n@Component({\n name: 'VueSlider',\n data() {\n return {\n control: null,\n }\n },\n components: {\n VueSliderDot,\n VueSliderMark,\n },\n})\nexport default class VueSlider extends Vue {\n control!: Control\n states: State = new State(SliderState)\n // The width of the component is divided into one hundred, the width of each one.\n scale: number = 1\n // Currently dragged slider index\n focusDotIndex: number = 0\n\n $refs!: {\n container: HTMLDivElement\n rail: HTMLDivElement\n }\n\n $el!: HTMLDivElement\n\n @Model('change', { default: 0 })\n value!: Value | Value[]\n\n @Prop({ type: Boolean, default: false })\n silent!: boolean\n\n @Prop({\n default: 'ltr',\n validator: dir => ['ltr', 'rtl', 'ttb', 'btt'].indexOf(dir) > -1,\n })\n direction!: Direction\n\n @Prop({ type: [Number, String] }) width?: number | string\n\n @Prop({ type: [Number, String] }) height?: number | string\n\n // The size of the slider, optional [width, height] | size\n @Prop({ default: 14 })\n dotSize!: [number, number] | number\n\n // whether or not the slider should be fully contained within its containing element\n @Prop({ default: false })\n contained!: boolean\n\n @Prop({ type: Number, default: 0 })\n min!: number\n\n @Prop({ type: Number, default: 100 })\n max!: number\n\n @Prop({ type: Number, default: 1 })\n interval!: number\n\n @Prop({ type: Boolean, default: false })\n disabled!: boolean\n\n @Prop({ type: Boolean, default: true })\n clickable!: boolean\n\n @Prop({ type: Boolean, default: false })\n dragOnClick!: boolean\n\n // The duration of the slider slide, Unit second\n @Prop({ type: Number, default: 0.5 })\n duration!: number\n\n @Prop({ type: [Object, Array] }) data?: Value[] | object[] | DataObject\n\n @Prop({ type: String, default: 'value' }) dataValue!: string\n\n @Prop({ type: String, default: 'label' }) dataLabel!: string\n\n @Prop({ type: Boolean, default: false })\n lazy!: boolean\n\n @Prop({\n type: String,\n validator: val => ['none', 'always', 'focus', 'hover', 'active'].indexOf(val) > -1,\n default: 'active',\n })\n tooltip!: TooltipProp\n\n @Prop({\n type: [String, Array],\n validator: data =>\n (Array.isArray(data) ? data : [data]).every(\n val => ['top', 'right', 'bottom', 'left'].indexOf(val) > -1,\n ),\n })\n tooltipPlacement?: Position | Position[]\n\n @Prop({ type: [String, Array, Function] })\n tooltipFormatter?: TooltipFormatter | TooltipFormatter[]\n\n // Keyboard control\n @Prop({ type: Boolean, default: true })\n useKeyboard?: boolean\n\n // Keyboard controlled hook function\n @Prop(Function)\n keydownHook!: (e: KeyboardEvent) => HandleFunction | boolean\n\n // Whether to allow sliders to cross, only in range mode\n @Prop({ type: Boolean, default: true })\n enableCross!: boolean\n\n // Whether to fix the slider interval, only in range mode\n @Prop({ type: Boolean, default: false })\n fixed!: boolean\n\n // Whether to sort values, only in range mode\n // When order is false, the parameters [minRange, maxRange, fixed, enableCross] are invalid\n // e.g. When order = false, [50, 30] will not be automatically sorted into [30, 50]\n @Prop({ type: Boolean, default: true })\n order!: boolean\n\n // Minimum distance between sliders, only in range mode\n @Prop(Number) minRange?: number\n\n // Maximum distance between sliders, only in range mode\n @Prop(Number) maxRange?: number\n\n @Prop({ type: [Boolean, Object, Array, Function], default: false })\n marks?: MarksProp\n\n @Prop({ type: [Boolean, Function], default: true })\n process?: ProcessProp\n\n @Prop({ type: [Number] })\n zoom?: number\n\n // If the value is true , mark will be an independent value\n @Prop(Boolean) included?: boolean\n\n // If the value is true , dot will automatically adsorb to the nearest value\n @Prop(Boolean) adsorb?: boolean\n\n @Prop(Boolean) hideLabel?: boolean\n\n @Prop() dotOptions?: DotOption | DotOption[]\n\n @Prop() dotAttrs?: object\n\n @Prop() railStyle?: Styles\n\n @Prop() processStyle?: Styles\n\n @Prop() dotStyle?: Styles\n\n @Prop() tooltipStyle?: Styles\n\n @Prop() stepStyle?: Styles\n\n @Prop() stepActiveStyle?: Styles\n\n @Prop() labelStyle?: Styles\n\n @Prop() labelActiveStyle?: Styles\n\n get tailSize() {\n return getSize((this.isHorizontal ? this.height : this.width) || DEFAULT_SLIDER_SIZE)\n }\n\n get containerClasses() {\n return [\n 'vue-slider',\n [`vue-slider-${this.direction}`],\n {\n 'vue-slider-disabled': this.disabled,\n },\n ]\n }\n\n get containerStyles() {\n const [dotWidth, dotHeight] = Array.isArray(this.dotSize)\n ? this.dotSize\n : [this.dotSize, this.dotSize]\n const containerWidth = this.width\n ? getSize(this.width)\n : this.isHorizontal\n ? 'auto'\n : getSize(DEFAULT_SLIDER_SIZE)\n const containerHeight = this.height\n ? getSize(this.height)\n : this.isHorizontal\n ? getSize(DEFAULT_SLIDER_SIZE)\n : 'auto'\n return {\n padding: this.contained\n ? `${dotHeight / 2}px ${dotWidth / 2}px`\n : this.isHorizontal\n ? `${dotHeight / 2}px 0`\n : `0 ${dotWidth / 2}px`,\n width: containerWidth,\n height: containerHeight,\n }\n }\n\n get processArray(): Process[] {\n return this.control.processArray.map(([start, end, style], index) => {\n if (start > end) {\n /* tslint:disable:semicolon */\n ;[start, end] = [end, start]\n }\n const sizeStyleKey = this.isHorizontal ? 'width' : 'height'\n return {\n start,\n end,\n index,\n style: {\n [this.isHorizontal ? 'height' : 'width']: '100%',\n [this.isHorizontal ? 'top' : 'left']: 0,\n [this.mainDirection]: `${start}%`,\n [sizeStyleKey]: `${end - start}%`,\n transitionProperty: `${sizeStyleKey},${this.mainDirection}`,\n transitionDuration: `${this.animateTime}s`,\n ...this.processStyle,\n ...style,\n },\n }\n })\n }\n\n get dotBaseStyle() {\n const [dotWidth, dotHeight] = Array.isArray(this.dotSize)\n ? this.dotSize\n : [this.dotSize, this.dotSize]\n let dotPos: { [key: string]: string }\n if (this.isHorizontal) {\n dotPos = {\n transform: `translate(${this.isReverse ? '50%' : '-50%'}, -50%)`,\n '-WebkitTransform': `translate(${this.isReverse ? '50%' : '-50%'}, -50%)`,\n top: '50%',\n [this.direction === 'ltr' ? 'left' : 'right']: '0',\n }\n } else {\n dotPos = {\n transform: `translate(-50%, ${this.isReverse ? '50%' : '-50%'})`,\n '-WebkitTransform': `translate(-50%, ${this.isReverse ? '50%' : '-50%'})`,\n left: '50%',\n [this.direction === 'btt' ? 'bottom' : 'top']: '0',\n }\n }\n return {\n width: `${dotWidth}px`,\n height: `${dotHeight}px`,\n ...dotPos,\n }\n }\n\n get mainDirection(): string {\n switch (this.direction) {\n case 'ltr':\n return 'left'\n case 'rtl':\n return 'right'\n case 'btt':\n return 'bottom'\n case 'ttb':\n return 'top'\n }\n }\n\n get isHorizontal(): boolean {\n return this.direction === 'ltr' || this.direction === 'rtl'\n }\n\n get isReverse(): boolean {\n return this.direction === 'rtl' || this.direction === 'btt'\n }\n\n get tooltipDirections(): Position[] {\n const dir = this.tooltipPlacement || (this.isHorizontal ? 'top' : 'left')\n if (Array.isArray(dir)) {\n return dir\n } else {\n return this.dots.map(() => dir)\n }\n }\n\n get dots(): Dot[] {\n return this.control.dotsPos.map((pos, index) => ({\n pos,\n index,\n value: this.control.dotsValue[index],\n focus: this.states.has(SliderState.Focus) && this.focusDotIndex === index,\n disabled: this.disabled,\n style: this.dotStyle,\n ...((Array.isArray(this.dotOptions) ? this.dotOptions[index] : this.dotOptions) || {}),\n }))\n }\n\n get animateTime(): number {\n if (this.states.has(SliderState.Drag)) {\n return 0\n }\n return this.duration\n }\n\n get canSort(): boolean {\n return this.order && !this.minRange && !this.maxRange && !this.fixed && this.enableCross\n }\n\n isObjectData(data?: Value[] | object[] | DataObject): data is DataObject {\n return !!data && Object.prototype.toString.call(data) === '[object Object]'\n }\n\n isObjectArrayData(data?: Value[] | object[] | DataObject): data is object[] {\n return !!data && Array.isArray(data) && data.length > 0 && typeof data[0] === 'object'\n }\n\n get sliderData(): undefined | Value[] {\n if (this.isObjectArrayData(this.data)) {\n return (this.data as any[]).map(obj => obj[this.dataValue])\n } else if (this.isObjectData(this.data)) {\n return Object.keys(this.data)\n } else {\n return this.data as Value[]\n }\n }\n\n get sliderMarks(): undefined | MarksProp {\n if (this.marks) {\n return this.marks\n } else if (this.isObjectArrayData(this.data)) {\n return val => {\n const mark = { label: val }\n ;(this.data as any[]).some(obj => {\n if (obj[this.dataValue] === val) {\n mark.label = obj[this.dataLabel]\n return true\n }\n return false\n })\n return mark\n }\n } else if (this.isObjectData(this.data)) {\n return this.data\n }\n }\n\n get sliderTooltipFormatter(): undefined | TooltipFormatter | TooltipFormatter[] {\n if (this.tooltipFormatter) {\n return this.tooltipFormatter\n } else if (this.isObjectArrayData(this.data)) {\n return val => {\n let tooltipText = '' + val\n ;(this.data as any[]).some(obj => {\n if (obj[this.dataValue] === val) {\n tooltipText = obj[this.dataLabel]\n return true\n }\n return false\n })\n return tooltipText\n }\n } else if (this.isObjectData(this.data)) {\n const data = this.data\n return val => data[val]\n }\n }\n\n @Watch('value')\n onValueChanged() {\n if (this.control && !this.states.has(SliderState.Drag) && this.isNotSync) {\n this.control.setValue(this.value)\n this.syncValueByPos()\n }\n }\n\n created() {\n this.initControl()\n }\n\n mounted() {\n this.bindEvent()\n }\n\n beforeDestroy() {\n this.unbindEvent()\n }\n\n bindEvent() {\n document.addEventListener('touchmove', this.dragMove, { passive: false })\n document.addEventListener('touchend', this.dragEnd, { passive: false })\n document.addEventListener('mousedown', this.blurHandle)\n document.addEventListener('mousemove', this.dragMove, { passive: false })\n document.addEventListener('mouseup', this.dragEnd)\n document.addEventListener('mouseleave', this.dragEnd)\n document.addEventListener('keydown', this.keydownHandle)\n }\n\n unbindEvent() {\n document.removeEventListener('touchmove', this.dragMove)\n document.removeEventListener('touchend', this.dragEnd)\n document.removeEventListener('mousedown', this.blurHandle)\n document.removeEventListener('mousemove', this.dragMove)\n document.removeEventListener('mouseup', this.dragEnd)\n document.removeEventListener('mouseleave', this.dragEnd)\n document.removeEventListener('keydown', this.keydownHandle)\n }\n\n setScale() {\n const decimal = new Decimal(\n Math.floor(this.isHorizontal ? this.$refs.rail.offsetWidth : this.$refs.rail.offsetHeight),\n )\n if (this.zoom !== void 0) {\n decimal.multiply(this.zoom)\n }\n decimal.divide(100)\n this.scale = decimal.toNumber()\n }\n\n initControl() {\n this.control = new Control({\n value: this.value,\n data: this.sliderData,\n enableCross: this.enableCross,\n fixed: this.fixed,\n max: this.max,\n min: this.min,\n interval: this.interval,\n minRange: this.minRange,\n maxRange: this.maxRange,\n order: this.order,\n marks: this.sliderMarks,\n included: this.included,\n process: this.process,\n adsorb: this.adsorb,\n dotOptions: this.dotOptions,\n onError: this.emitError,\n })\n this.syncValueByPos()\n ;[\n 'data',\n 'enableCross',\n 'fixed',\n 'max',\n 'min',\n 'interval',\n 'minRange',\n 'maxRange',\n 'order',\n 'marks',\n 'process',\n 'adsorb',\n 'included',\n 'dotOptions',\n ].forEach(name => {\n this.$watch(name, (val: any) => {\n if (\n name === 'data' &&\n Array.isArray(this.control.data) &&\n Array.isArray(val) &&\n this.control.data.length === val.length &&\n val.every((item, index) => item === (this.control.data as Value[])[index])\n ) {\n return false\n }\n switch (name) {\n case 'data':\n case 'dataLabel':\n case 'dataValue':\n this.control.data = this.sliderData\n break\n case 'mark':\n this.control.marks = this.sliderMarks\n break\n default:\n ;(this.control as any)[name] = val\n }\n if (['data', 'max', 'min', 'interval'].indexOf(name) > -1) {\n this.control.syncDotsPos()\n }\n })\n })\n }\n\n private syncValueByPos() {\n const values = this.control.dotsValue\n if (this.isDiff(values, Array.isArray(this.value) ? this.value : [this.value])) {\n this.$emit('change', values.length === 1 ? values[0] : [...values], this.focusDotIndex)\n }\n }\n\n // Slider value and component internal value are inconsistent\n private get isNotSync() {\n const values = this.control.dotsValue\n return Array.isArray(this.value)\n ? this.value.length !== values.length ||\n this.value.some((val, index) => val !== values[index])\n : this.value !== values[0]\n }\n\n private isDiff(value1: Value[], value2: Value[]) {\n return value1.length !== value2.length || value1.some((val, index) => val !== value2[index])\n }\n\n private emitError(type: ERROR_TYPE, message: string) {\n if (!this.silent) {\n console.error(`[VueSlider error]: ${message}`)\n }\n this.$emit('error', type, message)\n }\n\n /**\n * Get the drag range of the slider\n *\n * @private\n * @param {number} index slider index\n * @returns {[number, number]} range [start, end]\n * @memberof VueSlider\n */\n private get dragRange(): [number, number] {\n const prevDot = this.dots[this.focusDotIndex - 1]\n const nextDot = this.dots[this.focusDotIndex + 1]\n return [prevDot ? prevDot.pos : -Infinity, nextDot ? nextDot.pos : Infinity]\n }\n\n private dragStartOnProcess(e: MouseEvent | TouchEvent) {\n if (this.dragOnClick) {\n this.setScale()\n const pos = this.getPosByEvent(e)\n const index = this.control.getRecentDot(pos)\n if (this.dots[index].disabled) {\n return\n }\n this.dragStart(index)\n this.control.setDotPos(pos, this.focusDotIndex)\n if (!this.lazy) {\n this.syncValueByPos()\n }\n }\n }\n\n private dragStart(index: number) {\n this.focusDotIndex = index\n this.setScale()\n this.states.add(SliderState.Drag)\n this.states.add(SliderState.Focus)\n this.$emit('drag-start', this.focusDotIndex)\n }\n\n private dragMove(e: MouseEvent | TouchEvent) {\n if (!this.states.has(SliderState.Drag)) {\n return false\n }\n e.preventDefault()\n const pos = this.getPosByEvent(e)\n this.isCrossDot(pos)\n this.control.setDotPos(pos, this.focusDotIndex)\n if (!this.lazy) {\n this.syncValueByPos()\n }\n const value = this.control.dotsValue\n this.$emit('dragging', value.length === 1 ? value[0] : [...value], this.focusDotIndex)\n }\n\n // If the component is sorted, then when the slider crosses, toggle the currently selected slider index\n private isCrossDot(pos: number) {\n if (this.canSort) {\n const curIndex = this.focusDotIndex\n let curPos = pos\n if (curPos > this.dragRange[1]) {\n curPos = this.dragRange[1]\n this.focusDotIndex++\n } else if (curPos < this.dragRange[0]) {\n curPos = this.dragRange[0]\n this.focusDotIndex--\n }\n if (curIndex !== this.focusDotIndex) {\n const dotVm = (this.$refs as any)[`dot-${this.focusDotIndex}`]\n if (dotVm && dotVm.$el) {\n dotVm.$el.focus()\n }\n this.control.setDotPos(curPos, curIndex)\n }\n }\n }\n\n private dragEnd(e: MouseEvent | TouchEvent) {\n if (!this.states.has(SliderState.Drag)) {\n return false\n }\n\n setTimeout(() => {\n if (this.lazy) {\n this.syncValueByPos()\n }\n if (this.included && this.isNotSync) {\n this.control.setValue(this.value)\n } else {\n // Sync slider position\n this.control.syncDotsPos()\n }\n this.states.delete(SliderState.Drag)\n // If useKeyboard is true, keep focus status after dragging\n if (!this.useKeyboard || 'targetTouches' in e) {\n this.states.delete(SliderState.Focus)\n }\n this.$emit('drag-end', this.focusDotIndex)\n })\n }\n\n private blurHandle(e: MouseEvent) {\n if (\n !this.states.has(SliderState.Focus) ||\n !this.$refs.container ||\n this.$refs.container.contains(e.target as Node)\n ) {\n return false\n }\n this.states.delete(SliderState.Focus)\n }\n\n private clickHandle(e: MouseEvent | TouchEvent) {\n if (!this.clickable || this.disabled) {\n return false\n }\n if (this.states.has(SliderState.Drag)) {\n return\n }\n this.setScale()\n const pos = this.getPosByEvent(e)\n this.setValueByPos(pos)\n }\n\n focus(index: number = 0) {\n this.states.add(SliderState.Focus)\n this.focusDotIndex = index\n }\n\n blur() {\n this.states.delete(SliderState.Focus)\n }\n\n getValue() {\n const values = this.control.dotsValue\n return values.length === 1 ? values[0] : values\n }\n\n getIndex() {\n const indexes = this.control.dotsIndex\n return indexes.length === 1 ? indexes[0] : indexes\n }\n\n setValue(value: Value | Value[]) {\n this.control.setValue(Array.isArray(value) ? [...value] : [value])\n this.syncValueByPos()\n }\n\n setIndex(index: number | number[]) {\n const value = Array.isArray(index)\n ? index.map(n => this.control.getValueByIndex(n))\n : this.control.getValueByIndex(index)\n this.setValue(value)\n }\n\n setValueByPos(pos: number) {\n const index = this.control.getRecentDot(pos)\n if (this.disabled || this.dots[index].disabled) {\n return false\n }\n this.focusDotIndex = index\n this.control.setDotPos(pos, index)\n this.syncValueByPos()\n\n if (this.useKeyboard) {\n this.states.add(SliderState.Focus)\n }\n\n setTimeout(() => {\n if (this.included && this.isNotSync) {\n this.control.setValue(this.value)\n } else {\n this.control.syncDotsPos()\n }\n })\n }\n\n keydownHandle(e: KeyboardEvent) {\n if (!this.useKeyboard || !this.states.has(SliderState.Focus)) {\n return false\n }\n\n const isInclude = this.included && this.marks\n const handleFunc = getKeyboardHandleFunc(e, {\n direction: this.direction,\n max: isInclude ? this.control.markList.length - 1 : this.control.total,\n min: 0,\n hook: this.keydownHook,\n })\n\n if (handleFunc) {\n e.preventDefault()\n let newIndex = -1\n let pos = 0\n if (isInclude) {\n this.control.markList.some((mark, index) => {\n if (mark.value === this.control.dotsValue[this.focusDotIndex]) {\n newIndex = handleFunc(index)\n return true\n }\n return false\n })\n if (newIndex < 0) {\n newIndex = 0\n } else if (newIndex > this.control.markList.length - 1) {\n newIndex = this.control.markList.length - 1\n }\n pos = this.control.markList[newIndex].pos\n } else {\n newIndex = handleFunc(\n this.control.getIndexByValue(this.control.dotsValue[this.focusDotIndex]),\n )\n pos = this.control.parseValue(this.control.getValueByIndex(newIndex))\n }\n this.isCrossDot(pos)\n this.control.setDotPos(pos, this.focusDotIndex)\n this.syncValueByPos()\n }\n }\n\n private getPosByEvent(e: MouseEvent | TouchEvent): number {\n return (\n getPos(e, this.$refs.rail, this.isReverse, this.zoom)[this.isHorizontal ? 'x' : 'y'] /\n this.scale\n )\n }\n\n private renderSlot<T>(name: string, data: T, defaultSlot: any, isDefault?: boolean): any {\n const scopedSlot = this.$scopedSlots[name]\n return scopedSlot ? (\n isDefault ? (\n scopedSlot(data)\n ) : (\n <template slot={name}>{scopedSlot(data)}</template>\n )\n ) : (\n defaultSlot\n )\n }\n\n render() {\n return (\n <div\n ref=\"container\"\n class={this.containerClasses}\n style={this.containerStyles}\n onClick={this.clickHandle}\n onTouchstart={this.dragStartOnProcess}\n onMousedown={this.dragStartOnProcess}\n {...this.$attrs}\n >\n {/* rail */}\n <div ref=\"rail\" class=\"vue-slider-rail\" style={this.railStyle}>\n {this.processArray.map((item, index) =>\n this.renderSlot<Process>(\n 'process',\n item,\n <div class=\"vue-slider-process\" key={`process-${index}`} style={item.style} />,\n true,\n ),\n )}\n {/* mark */}\n {this.sliderMarks ? (\n <div class=\"vue-slider-marks\">\n {this.control.markList.map((mark, index) =>\n this.renderSlot<Mark>(\n 'mark',\n mark,\n <vue-slider-mark\n key={`mark-${index}`}\n mark={mark}\n hideLabel={this.hideLabel}\n style={{\n [this.isHorizontal ? 'height' : 'width']: '100%',\n [this.isHorizontal ? 'width' : 'height']: this.tailSize,\n [this.mainDirection]: `${mark.pos}%`,\n }}\n stepStyle={this.stepStyle}\n stepActiveStyle={this.stepActiveStyle}\n labelStyle={this.labelStyle}\n labelActiveStyle={this.labelActiveStyle}\n onPressLabel={(pos: number) => this.clickable && this.setValueByPos(pos)}\n >\n {this.renderSlot<Mark>('step', mark, null)}\n {this.renderSlot<Mark>('label', mark, null)}\n </vue-slider-mark>,\n true,\n ),\n )}\n </div>\n ) : null}\n {/* dot */}\n {this.dots.map((dot, index) => (\n <vue-slider-dot\n ref={`dot-${index}`}\n key={`dot-${index}`}\n value={dot.value}\n disabled={dot.disabled}\n focus={dot.focus}\n dot-style={[\n dot.style,\n dot.disabled ? dot.disabledStyle : null,\n dot.focus ? dot.focusStyle : null,\n ]}\n tooltip={dot.tooltip || this.tooltip}\n tooltip-style={[\n this.tooltipStyle,\n dot.tooltipStyle,\n dot.disabled ? dot.tooltipDisabledStyle : null,\n dot.focus ? dot.tooltipFocusStyle : null,\n ]}\n tooltip-formatter={\n Array.isArray(this.sliderTooltipFormatter)\n ? this.sliderTooltipFormatter[index]\n : this.sliderTooltipFormatter\n }\n tooltip-placement={this.tooltipDirections[index]}\n style={[\n this.dotBaseStyle,\n {\n [this.mainDirection]: `${dot.pos}%`,\n transition: `${this.mainDirection} ${this.animateTime}s`,\n },\n ]}\n onDrag-start={() => this.dragStart(index)}\n role=\"slider\"\n aria-valuenow={dot.value}\n aria-valuemin={this.min}\n aria-valuemax={this.max}\n aria-orientation={this.isHorizontal ? 'horizontal' : 'vertical'}\n tabindex=\"0\"\n nativeOnFocus={() => !dot.disabled && this.focus(index)}\n nativeOnBlur={() => this.blur()}\n {...{ attrs: this.dotAttrs }}\n >\n {this.renderSlot<Dot>('dot', dot, null)}\n {this.renderSlot<Dot>('tooltip', dot, null)}\n </vue-slider-dot>\n ))}\n {this.renderSlot<any>('default', { value: this.getValue() }, null, true)}\n </div>\n </div>\n )\n }\n}\n","/* tslint:disable:import-spacing */\nimport VueSlider from './vue-slider'\nimport VueSliderMark from './vue-slider-mark'\nimport VueSliderDot from './vue-slider-dot'\nimport { ERROR_TYPE } from './utils/control'\n;(VueSlider as any).VueSliderMark = VueSliderMark\n;(VueSlider as any).VueSliderDot = VueSliderDot\n\nexport default VueSlider\nexport { ERROR_TYPE, VueSliderMark, VueSliderDot }\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n"],"sourceRoot":""}
\No newline at end of file