summaryrefslogtreecommitdiffstats
path: root/web/gui/dashboard/static/js/5.29dab1cd.chunk.js.map
blob: 8dd33c5a371ad2e5f4cd392845986d3885599937 (plain)
1
{"version":3,"sources":["../node_modules/bootstrap-slider/dist/bootstrap-slider.js"],"names":["_typeof","Symbol","iterator","obj","constructor","prototype","windowIsDefined","window","define","$","Slider","console","log","warn","slice","Array","noop","logError","message","error","bridget","namespace","PluginClass","option","opts","isPlainObject","this","options","extend","addOptionMethod","fn","args","call","arguments","i","len","length","elem","instance","data","isFunction","charAt","returnValue","apply","undefined","objects","map","_init","bridge","defineBridget","autoRegisterNamespace","ErrorMsgs","input","SliderScale","linear","getValue","value","min","max","toValue","percentage","rawValue","shouldAdjustWithBase","ticks_positions","minv","maxv","minp","maxp","ticks","Math","round","step","toPercentage","logarithmic","offset","exp","createNewSlider","element","_state","enabled","size","inDrag","over","tickIndex","ticksCallbackMap","handleCallbackMap","document","querySelector","HTMLElement","optionTypes","Object","keys","defaultOptions","isMinSet","hasOwnProperty","isMaxSet","optName","val","getDataAttrib","ticksAreValid","isArray","lock_to_ticks","rtl","computedStyle","getComputedStyle","direction","style","dataName","replace","dataValString","getAttribute","JSON","parse","err","orientation","tooltip_position","sliderTrackSelection","sliderTrackLow","sliderTrackHigh","sliderMinHandle","sliderMaxHandle","origWidth","width","updateSlider","parent","parentNode","sliderElem","createElement","className","sliderTrack","setAttribute","appendChild","rangeHighlightElements","rangeHighlightsOpts","rangeHighlights","j","rangeHighlightElement","customClassString","class","push","isLabelledbyArray","labelledby","ticksContainer","tick","ticks_tooltip","tickListenerReference","_addTickListener","enterCallback","addMouseEnter","leaveCallback","addMouseLeave","mouseEnter","mouseLeave","tickLabels","ticks_labels","tickLabelContainer","label","noTickPositionsSpecified","tickLabelsIndex","reversed","innerHTML","createAndAppendTooltipSubElements","tooltipElem","arrow","inner","sliderTooltip","sliderTooltipMin","sliderTooltipMax","insertBefore","display","$element","$sliderElem","eventToCallbackMap","id","touchCapable","DocumentTouch","touchX","touchY","tooltip","tooltipInner","tooltip_min","tooltipInner_min","tooltip_max","tooltipInner_max","scale","_removeClass","forEach","prop","_removeProperty","trackLow","trackSelection","trackHigh","handle1","handle2","handle","_addClass","stylePos","mousePos","sizePos","_setTooltipPosition","range","selection","indexOf","_offset","setValue","handle1Keydown","_keydown","bind","addEventListener","handle2Keydown","mousedown","_mousedown","touchstart","_touchstart","touchmove","_touchmove","resize","_resize","_showTooltip","_alwaysShowTooltip","showTooltip","hideTooltip","_hideTooltip","callbackHandle","enable","disable","precision","tooltip_split","formatter","natural_arrow_keys","ticks_snap_bounds","focus","getElement","triggerSlideEvent","triggerChangeEvent","oldValue","_validateInputValue","applyPrecision","_applyPrecision","_getClosestTickIndex","_setTickIndex","_toPercentage","_layout","newValue","_setDataVal","_trigger","destroy","_removeSliderEventHandlers","removeChild","_cleanUpEventCallbacksMap","removeAttribute","_unbindJQueryEventHandlers","removeData","toggle","isEnabled","on","evt","callback","_bindNonQueryEventHandler","off","_unbindNonQueryEventHandler","attribute","refresh","currentValue","useCurrentValue","relayout","_removeTooltipListener","event","handler","removeEventListener","getElementsByClassName","callbacks","splice","eventNames","eventName","_setToolTipOnMouseOver","tempState","self","formattedTooltipVal","positionPercentages","getPositionPercentages","state","_setText","_copyState","dragged","keyCtrl","reference","index","enter","per","leave","formattedValue","isNaN","_i","startPercent","start","endPercent","end","sp","currentRange","_createHighlightRange","top","height","right","left","styleMargin","styleSize","labelSize","extraMargin","offsetHeight","childNodes","marginBottom","position","offsetWidth","innerTooltipMinText","innerTooltipMaxText","abs","bottom","offset_min","getBoundingClientRect","offset_max","_isHighlightRange","ev","removeProperty","preventDefault","_getPercentage","diff1","diff2","_adjustPercentageForRangeSliders","mousemove","mouseup","_mousemove","_mouseup","_calculateValue","_triggerFocusOnHandle","handleIdx","dir","keyCode","isHorizontal","isVertical","isRTL","isReversed","val1","val2","_pauseEvent","stopPropagation","cancelBubble","changedTouches","_getNumDigitsAfterDecimalPlace","percentageWithAdjustedPrecision","_applyToFixedAndParseFloat","_setValues","comp","_toValue","snapToClosestTick","_snapToClosestTick","parseFloat","Infinity","diff","num","match","toFixedInput","truncatedNum","toFixed","type","distanceToSlide","_validateArray","Error","callbackFnArray","callbackFn","_triggerJQueryEvent","eventData","trigger","text","textContent","innerText","classString","classes","split","newClasses","classTag","regex","RegExp","trim","test","_offsetLeft","_offsetRight","_offsetTop","offsetTop","offsetParent","tagName","scrollTop","_css","elementRef","styleName","all","letter","toUpperCase","tooltips","tooltipPos","oppositeSide","outerHeight","difference","d","slider"],"mappings":"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","file":"static/js/5.29dab1cd.chunk.js","sourcesContent":["/*! =======================================================\n                      VERSION  10.6.2              \n========================================================= */\n\"use strict\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*! =========================================================\n * bootstrap-slider.js\n *\n * Maintainers:\n *\t\tKyle Kemp\n *\t\t\t- Twitter: @seiyria\n *\t\t\t- Github:  seiyria\n *\t\tRohit Kalkur\n *\t\t\t- Twitter: @Rovolutionary\n *\t\t\t- Github:  rovolution\n *\n * =========================================================\n *\n * bootstrap-slider is released under the MIT License\n * Copyright (c) 2019 Kyle Kemp, Rohit Kalkur, and contributors\n *\n * Permission is hereby granted, free of charge, to any person\n * obtaining a copy of this software and associated documentation\n * files (the \"Software\"), to deal in the Software without\n * restriction, including without limitation the rights to use,\n * copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following\n * conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n *\n * ========================================================= */\n\n/**\n * Bridget makes jQuery widgets\n * v1.0.1\n * MIT license\n */\nvar windowIsDefined = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\";\n\n(function (factory) {\n\tif (typeof define === \"function\" && define.amd) {\n\t\tdefine([\"jquery\"], factory);\n\t} else if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n\t\tvar jQuery;\n\t\ttry {\n\t\t\tjQuery = require(\"jquery\");\n\t\t} catch (err) {\n\t\t\tjQuery = null;\n\t\t}\n\t\tmodule.exports = factory(jQuery);\n\t} else if (window) {\n\t\twindow.Slider = factory(window.jQuery);\n\t}\n})(function ($) {\n\t// Constants\n\tvar NAMESPACE_MAIN = 'slider';\n\tvar NAMESPACE_ALTERNATE = 'bootstrapSlider';\n\n\t// Polyfill console methods\n\tif (windowIsDefined && !window.console) {\n\t\twindow.console = {};\n\t}\n\tif (windowIsDefined && !window.console.log) {\n\t\twindow.console.log = function () {};\n\t}\n\tif (windowIsDefined && !window.console.warn) {\n\t\twindow.console.warn = function () {};\n\t}\n\n\t// Reference to Slider constructor\n\tvar Slider;\n\n\t(function ($) {\n\n\t\t'use strict';\n\n\t\t// -------------------------- utils -------------------------- //\n\n\t\tvar slice = Array.prototype.slice;\n\n\t\tfunction noop() {}\n\n\t\t// -------------------------- definition -------------------------- //\n\n\t\tfunction defineBridget($) {\n\n\t\t\t// bail if no jQuery\n\t\t\tif (!$) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// -------------------------- addOptionMethod -------------------------- //\n\n\t\t\t/**\n    * adds option method -> $().plugin('option', {...})\n    * @param {Function} PluginClass - constructor class\n    */\n\t\t\tfunction addOptionMethod(PluginClass) {\n\t\t\t\t// don't overwrite original option method\n\t\t\t\tif (PluginClass.prototype.option) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// option setter\n\t\t\t\tPluginClass.prototype.option = function (opts) {\n\t\t\t\t\t// bail out if not an object\n\t\t\t\t\tif (!$.isPlainObject(opts)) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis.options = $.extend(true, this.options, opts);\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// -------------------------- plugin bridge -------------------------- //\n\n\t\t\t// helper function for logging errors\n\t\t\t// $.error breaks jQuery chaining\n\t\t\tvar logError = typeof console === 'undefined' ? noop : function (message) {\n\t\t\t\tconsole.error(message);\n\t\t\t};\n\n\t\t\t/**\n    * jQuery plugin bridge, access methods like $elem.plugin('method')\n    * @param {String} namespace - plugin name\n    * @param {Function} PluginClass - constructor class\n    */\n\t\t\tfunction bridge(namespace, PluginClass) {\n\t\t\t\t// add to jQuery fn namespace\n\t\t\t\t$.fn[namespace] = function (options) {\n\t\t\t\t\tif (typeof options === 'string') {\n\t\t\t\t\t\t// call plugin method when first argument is a string\n\t\t\t\t\t\t// get arguments for method\n\t\t\t\t\t\tvar args = slice.call(arguments, 1);\n\n\t\t\t\t\t\tfor (var i = 0, len = this.length; i < len; i++) {\n\t\t\t\t\t\t\tvar elem = this[i];\n\t\t\t\t\t\t\tvar instance = $.data(elem, namespace);\n\t\t\t\t\t\t\tif (!instance) {\n\t\t\t\t\t\t\t\tlogError(\"cannot call methods on \" + namespace + \" prior to initialization; \" + \"attempted to call '\" + options + \"'\");\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (!$.isFunction(instance[options]) || options.charAt(0) === '_') {\n\t\t\t\t\t\t\t\tlogError(\"no such method '\" + options + \"' for \" + namespace + \" instance\");\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// trigger method with arguments\n\t\t\t\t\t\t\tvar returnValue = instance[options].apply(instance, args);\n\n\t\t\t\t\t\t\t// break look and return first value if provided\n\t\t\t\t\t\t\tif (returnValue !== undefined && returnValue !== instance) {\n\t\t\t\t\t\t\t\treturn returnValue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// return this if no return value\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar objects = this.map(function () {\n\t\t\t\t\t\t\tvar instance = $.data(this, namespace);\n\t\t\t\t\t\t\tif (instance) {\n\t\t\t\t\t\t\t\t// apply options & init\n\t\t\t\t\t\t\t\tinstance.option(options);\n\t\t\t\t\t\t\t\tinstance._init();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// initialize new instance\n\t\t\t\t\t\t\t\tinstance = new PluginClass(this, options);\n\t\t\t\t\t\t\t\t$.data(this, namespace, instance);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn $(this);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (objects.length === 1) {\n\t\t\t\t\t\t\treturn objects[0];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn objects;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// -------------------------- bridget -------------------------- //\n\n\t\t\t/**\n    * converts a Prototypical class into a proper jQuery plugin\n    *   the class must have a ._init method\n    * @param {String} namespace - plugin name, used in $().pluginName\n    * @param {Function} PluginClass - constructor class\n    */\n\t\t\t$.bridget = function (namespace, PluginClass) {\n\t\t\t\taddOptionMethod(PluginClass);\n\t\t\t\tbridge(namespace, PluginClass);\n\t\t\t};\n\n\t\t\treturn $.bridget;\n\t\t}\n\n\t\t// get jquery from browser global\n\t\tdefineBridget($);\n\t})($);\n\n\t/*************************************************\n \t\t\tBOOTSTRAP-SLIDER SOURCE CODE\n \t**************************************************/\n\n\t(function ($) {\n\t\tvar autoRegisterNamespace = void 0;\n\n\t\tvar ErrorMsgs = {\n\t\t\tformatInvalidInputErrorMsg: function formatInvalidInputErrorMsg(input) {\n\t\t\t\treturn \"Invalid input value '\" + input + \"' passed in\";\n\t\t\t},\n\t\t\tcallingContextNotSliderInstance: \"Calling context element does not have instance of Slider bound to it. Check your code to make sure the JQuery object returned from the call to the slider() initializer is calling the method\"\n\t\t};\n\n\t\tvar SliderScale = {\n\t\t\tlinear: {\n\t\t\t\tgetValue: function getValue(value, options) {\n\t\t\t\t\tif (value < options.min) {\n\t\t\t\t\t\treturn options.min;\n\t\t\t\t\t} else if (value > options.max) {\n\t\t\t\t\t\treturn options.max;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\ttoValue: function toValue(percentage) {\n\t\t\t\t\tvar rawValue = percentage / 100 * (this.options.max - this.options.min);\n\t\t\t\t\tvar shouldAdjustWithBase = true;\n\t\t\t\t\tif (this.options.ticks_positions.length > 0) {\n\t\t\t\t\t\tvar minv,\n\t\t\t\t\t\t    maxv,\n\t\t\t\t\t\t    minp,\n\t\t\t\t\t\t    maxp = 0;\n\t\t\t\t\t\tfor (var i = 1; i < this.options.ticks_positions.length; i++) {\n\t\t\t\t\t\t\tif (percentage <= this.options.ticks_positions[i]) {\n\t\t\t\t\t\t\t\tminv = this.options.ticks[i - 1];\n\t\t\t\t\t\t\t\tminp = this.options.ticks_positions[i - 1];\n\t\t\t\t\t\t\t\tmaxv = this.options.ticks[i];\n\t\t\t\t\t\t\t\tmaxp = this.options.ticks_positions[i];\n\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar partialPercentage = (percentage - minp) / (maxp - minp);\n\t\t\t\t\t\trawValue = minv + partialPercentage * (maxv - minv);\n\t\t\t\t\t\tshouldAdjustWithBase = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar adjustment = shouldAdjustWithBase ? this.options.min : 0;\n\t\t\t\t\tvar value = adjustment + Math.round(rawValue / this.options.step) * this.options.step;\n\t\t\t\t\treturn SliderScale.linear.getValue(value, this.options);\n\t\t\t\t},\n\t\t\t\ttoPercentage: function toPercentage(value) {\n\t\t\t\t\tif (this.options.max === this.options.min) {\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.options.ticks_positions.length > 0) {\n\t\t\t\t\t\tvar minv,\n\t\t\t\t\t\t    maxv,\n\t\t\t\t\t\t    minp,\n\t\t\t\t\t\t    maxp = 0;\n\t\t\t\t\t\tfor (var i = 0; i < this.options.ticks.length; i++) {\n\t\t\t\t\t\t\tif (value <= this.options.ticks[i]) {\n\t\t\t\t\t\t\t\tminv = i > 0 ? this.options.ticks[i - 1] : 0;\n\t\t\t\t\t\t\t\tminp = i > 0 ? this.options.ticks_positions[i - 1] : 0;\n\t\t\t\t\t\t\t\tmaxv = this.options.ticks[i];\n\t\t\t\t\t\t\t\tmaxp = this.options.ticks_positions[i];\n\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (i > 0) {\n\t\t\t\t\t\t\tvar partialPercentage = (value - minv) / (maxv - minv);\n\t\t\t\t\t\t\treturn minp + partialPercentage * (maxp - minp);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn 100 * (value - this.options.min) / (this.options.max - this.options.min);\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tlogarithmic: {\n\t\t\t\t/* Based on http://stackoverflow.com/questions/846221/logarithmic-slider */\n\t\t\t\ttoValue: function toValue(percentage) {\n\t\t\t\t\tvar offset = 1 - this.options.min;\n\t\t\t\t\tvar min = Math.log(this.options.min + offset);\n\t\t\t\t\tvar max = Math.log(this.options.max + offset);\n\t\t\t\t\tvar value = Math.exp(min + (max - min) * percentage / 100) - offset;\n\t\t\t\t\tif (Math.round(value) === max) {\n\t\t\t\t\t\treturn max;\n\t\t\t\t\t}\n\t\t\t\t\tvalue = this.options.min + Math.round((value - this.options.min) / this.options.step) * this.options.step;\n\t\t\t\t\t/* Rounding to the nearest step could exceed the min or\n      * max, so clip to those values. */\n\t\t\t\t\treturn SliderScale.linear.getValue(value, this.options);\n\t\t\t\t},\n\t\t\t\ttoPercentage: function toPercentage(value) {\n\t\t\t\t\tif (this.options.max === this.options.min) {\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar offset = 1 - this.options.min;\n\t\t\t\t\t\tvar max = Math.log(this.options.max + offset);\n\t\t\t\t\t\tvar min = Math.log(this.options.min + offset);\n\t\t\t\t\t\tvar v = Math.log(value + offset);\n\t\t\t\t\t\treturn 100 * (v - min) / (max - min);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/*************************************************\n  \t\t\t\t\t\tCONSTRUCTOR\n  \t**************************************************/\n\t\tSlider = function Slider(element, options) {\n\t\t\tcreateNewSlider.call(this, element, options);\n\t\t\treturn this;\n\t\t};\n\n\t\tfunction createNewSlider(element, options) {\n\n\t\t\t/*\n   \tThe internal state object is used to store data about the current 'state' of slider.\n   \tThis includes values such as the `value`, `enabled`, etc...\n   */\n\t\t\tthis._state = {\n\t\t\t\tvalue: null,\n\t\t\t\tenabled: null,\n\t\t\t\toffset: null,\n\t\t\t\tsize: null,\n\t\t\t\tpercentage: null,\n\t\t\t\tinDrag: false,\n\t\t\t\tover: false,\n\t\t\t\ttickIndex: null\n\t\t\t};\n\n\t\t\t// The objects used to store the reference to the tick methods if ticks_tooltip is on\n\t\t\tthis.ticksCallbackMap = {};\n\t\t\tthis.handleCallbackMap = {};\n\n\t\t\tif (typeof element === \"string\") {\n\t\t\t\tthis.element = document.querySelector(element);\n\t\t\t} else if (element instanceof HTMLElement) {\n\t\t\t\tthis.element = element;\n\t\t\t}\n\n\t\t\t/*************************************************\n   \t\t\t\t\tProcess Options\n   \t**************************************************/\n\t\t\toptions = options ? options : {};\n\t\t\tvar optionTypes = Object.keys(this.defaultOptions);\n\n\t\t\tvar isMinSet = options.hasOwnProperty('min');\n\t\t\tvar isMaxSet = options.hasOwnProperty('max');\n\n\t\t\tfor (var i = 0; i < optionTypes.length; i++) {\n\t\t\t\tvar optName = optionTypes[i];\n\n\t\t\t\t// First check if an option was passed in via the constructor\n\t\t\t\tvar val = options[optName];\n\t\t\t\t// If no data attrib, then check data atrributes\n\t\t\t\tval = typeof val !== 'undefined' ? val : getDataAttrib(this.element, optName);\n\t\t\t\t// Finally, if nothing was specified, use the defaults\n\t\t\t\tval = val !== null ? val : this.defaultOptions[optName];\n\n\t\t\t\t// Set all options on the instance of the Slider\n\t\t\t\tif (!this.options) {\n\t\t\t\t\tthis.options = {};\n\t\t\t\t}\n\t\t\t\tthis.options[optName] = val;\n\t\t\t}\n\n\t\t\tthis.ticksAreValid = Array.isArray(this.options.ticks) && this.options.ticks.length > 0;\n\n\t\t\t// Lock to ticks only when ticks[] is defined and set\n\t\t\tif (!this.ticksAreValid) {\n\t\t\t\tthis.options.lock_to_ticks = false;\n\t\t\t}\n\n\t\t\t// Check options.rtl\n\t\t\tif (this.options.rtl === 'auto') {\n\t\t\t\tvar computedStyle = window.getComputedStyle(this.element);\n\t\t\t\tif (computedStyle != null) {\n\t\t\t\t\tthis.options.rtl = computedStyle.direction === 'rtl';\n\t\t\t\t} else {\n\t\t\t\t\t// Fix for Firefox bug in versions less than 62:\n\t\t\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n\t\t\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=1467722\n\t\t\t\t\tthis.options.rtl = this.element.style.direction === 'rtl';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/*\n   \tValidate `tooltip_position` against 'orientation`\n   \t- if `tooltip_position` is incompatible with orientation, swith it to a default compatible with specified `orientation`\n   \t\t-- default for \"vertical\" -> \"right\", \"left\" if rtl\n   \t\t-- default for \"horizontal\" -> \"top\"\n   */\n\t\t\tif (this.options.orientation === \"vertical\" && (this.options.tooltip_position === \"top\" || this.options.tooltip_position === \"bottom\")) {\n\t\t\t\tif (this.options.rtl) {\n\t\t\t\t\tthis.options.tooltip_position = \"left\";\n\t\t\t\t} else {\n\t\t\t\t\tthis.options.tooltip_position = \"right\";\n\t\t\t\t}\n\t\t\t} else if (this.options.orientation === \"horizontal\" && (this.options.tooltip_position === \"left\" || this.options.tooltip_position === \"right\")) {\n\n\t\t\t\tthis.options.tooltip_position = \"top\";\n\t\t\t}\n\n\t\t\tfunction getDataAttrib(element, optName) {\n\t\t\t\tvar dataName = \"data-slider-\" + optName.replace(/_/g, '-');\n\t\t\t\tvar dataValString = element.getAttribute(dataName);\n\n\t\t\t\ttry {\n\t\t\t\t\treturn JSON.parse(dataValString);\n\t\t\t\t} catch (err) {\n\t\t\t\t\treturn dataValString;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/*************************************************\n   \t\t\t\t\tCreate Markup\n   \t**************************************************/\n\n\t\t\tvar origWidth = this.element.style.width;\n\t\t\tvar updateSlider = false;\n\t\t\tvar parent = this.element.parentNode;\n\t\t\tvar sliderTrackSelection;\n\t\t\tvar sliderTrackLow, sliderTrackHigh;\n\t\t\tvar sliderMinHandle;\n\t\t\tvar sliderMaxHandle;\n\n\t\t\tif (this.sliderElem) {\n\t\t\t\tupdateSlider = true;\n\t\t\t} else {\n\t\t\t\t/* Create elements needed for slider */\n\t\t\t\tthis.sliderElem = document.createElement(\"div\");\n\t\t\t\tthis.sliderElem.className = \"slider\";\n\n\t\t\t\t/* Create slider track elements */\n\t\t\t\tvar sliderTrack = document.createElement(\"div\");\n\t\t\t\tsliderTrack.className = \"slider-track\";\n\n\t\t\t\tsliderTrackLow = document.createElement(\"div\");\n\t\t\t\tsliderTrackLow.className = \"slider-track-low\";\n\n\t\t\t\tsliderTrackSelection = document.createElement(\"div\");\n\t\t\t\tsliderTrackSelection.className = \"slider-selection\";\n\n\t\t\t\tsliderTrackHigh = document.createElement(\"div\");\n\t\t\t\tsliderTrackHigh.className = \"slider-track-high\";\n\n\t\t\t\tsliderMinHandle = document.createElement(\"div\");\n\t\t\t\tsliderMinHandle.className = \"slider-handle min-slider-handle\";\n\t\t\t\tsliderMinHandle.setAttribute('role', 'slider');\n\t\t\t\tsliderMinHandle.setAttribute('aria-valuemin', this.options.min);\n\t\t\t\tsliderMinHandle.setAttribute('aria-valuemax', this.options.max);\n\n\t\t\t\tsliderMaxHandle = document.createElement(\"div\");\n\t\t\t\tsliderMaxHandle.className = \"slider-handle max-slider-handle\";\n\t\t\t\tsliderMaxHandle.setAttribute('role', 'slider');\n\t\t\t\tsliderMaxHandle.setAttribute('aria-valuemin', this.options.min);\n\t\t\t\tsliderMaxHandle.setAttribute('aria-valuemax', this.options.max);\n\n\t\t\t\tsliderTrack.appendChild(sliderTrackLow);\n\t\t\t\tsliderTrack.appendChild(sliderTrackSelection);\n\t\t\t\tsliderTrack.appendChild(sliderTrackHigh);\n\n\t\t\t\t/* Create highlight range elements */\n\t\t\t\tthis.rangeHighlightElements = [];\n\t\t\t\tvar rangeHighlightsOpts = this.options.rangeHighlights;\n\t\t\t\tif (Array.isArray(rangeHighlightsOpts) && rangeHighlightsOpts.length > 0) {\n\t\t\t\t\tfor (var j = 0; j < rangeHighlightsOpts.length; j++) {\n\t\t\t\t\t\tvar rangeHighlightElement = document.createElement(\"div\");\n\t\t\t\t\t\tvar customClassString = rangeHighlightsOpts[j].class || \"\";\n\t\t\t\t\t\trangeHighlightElement.className = \"slider-rangeHighlight slider-selection \" + customClassString;\n\t\t\t\t\t\tthis.rangeHighlightElements.push(rangeHighlightElement);\n\t\t\t\t\t\tsliderTrack.appendChild(rangeHighlightElement);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/* Add aria-labelledby to handle's */\n\t\t\t\tvar isLabelledbyArray = Array.isArray(this.options.labelledby);\n\t\t\t\tif (isLabelledbyArray && this.options.labelledby[0]) {\n\t\t\t\t\tsliderMinHandle.setAttribute('aria-labelledby', this.options.labelledby[0]);\n\t\t\t\t}\n\t\t\t\tif (isLabelledbyArray && this.options.labelledby[1]) {\n\t\t\t\t\tsliderMaxHandle.setAttribute('aria-labelledby', this.options.labelledby[1]);\n\t\t\t\t}\n\t\t\t\tif (!isLabelledbyArray && this.options.labelledby) {\n\t\t\t\t\tsliderMinHandle.setAttribute('aria-labelledby', this.options.labelledby);\n\t\t\t\t\tsliderMaxHandle.setAttribute('aria-labelledby', this.options.labelledby);\n\t\t\t\t}\n\n\t\t\t\t/* Create ticks */\n\t\t\t\tthis.ticks = [];\n\t\t\t\tif (Array.isArray(this.options.ticks) && this.options.ticks.length > 0) {\n\t\t\t\t\tthis.ticksContainer = document.createElement('div');\n\t\t\t\t\tthis.ticksContainer.className = 'slider-tick-container';\n\n\t\t\t\t\tfor (i = 0; i < this.options.ticks.length; i++) {\n\t\t\t\t\t\tvar tick = document.createElement('div');\n\t\t\t\t\t\ttick.className = 'slider-tick';\n\t\t\t\t\t\tif (this.options.ticks_tooltip) {\n\t\t\t\t\t\t\tvar tickListenerReference = this._addTickListener();\n\t\t\t\t\t\t\tvar enterCallback = tickListenerReference.addMouseEnter(this, tick, i);\n\t\t\t\t\t\t\tvar leaveCallback = tickListenerReference.addMouseLeave(this, tick);\n\n\t\t\t\t\t\t\tthis.ticksCallbackMap[i] = {\n\t\t\t\t\t\t\t\tmouseEnter: enterCallback,\n\t\t\t\t\t\t\t\tmouseLeave: leaveCallback\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.ticks.push(tick);\n\t\t\t\t\t\tthis.ticksContainer.appendChild(tick);\n\t\t\t\t\t}\n\n\t\t\t\t\tsliderTrackSelection.className += \" tick-slider-selection\";\n\t\t\t\t}\n\n\t\t\t\tthis.tickLabels = [];\n\t\t\t\tif (Array.isArray(this.options.ticks_labels) && this.options.ticks_labels.length > 0) {\n\t\t\t\t\tthis.tickLabelContainer = document.createElement('div');\n\t\t\t\t\tthis.tickLabelContainer.className = 'slider-tick-label-container';\n\n\t\t\t\t\tfor (i = 0; i < this.options.ticks_labels.length; i++) {\n\t\t\t\t\t\tvar label = document.createElement('div');\n\t\t\t\t\t\tvar noTickPositionsSpecified = this.options.ticks_positions.length === 0;\n\t\t\t\t\t\tvar tickLabelsIndex = this.options.reversed && noTickPositionsSpecified ? this.options.ticks_labels.length - (i + 1) : i;\n\t\t\t\t\t\tlabel.className = 'slider-tick-label';\n\t\t\t\t\t\tlabel.innerHTML = this.options.ticks_labels[tickLabelsIndex];\n\n\t\t\t\t\t\tthis.tickLabels.push(label);\n\t\t\t\t\t\tthis.tickLabelContainer.appendChild(label);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar createAndAppendTooltipSubElements = function createAndAppendTooltipSubElements(tooltipElem) {\n\t\t\t\t\tvar arrow = document.createElement(\"div\");\n\t\t\t\t\tarrow.className = \"tooltip-arrow\";\n\n\t\t\t\t\tvar inner = document.createElement(\"div\");\n\t\t\t\t\tinner.className = \"tooltip-inner\";\n\n\t\t\t\t\ttooltipElem.appendChild(arrow);\n\t\t\t\t\ttooltipElem.appendChild(inner);\n\t\t\t\t};\n\n\t\t\t\t/* Create tooltip elements */\n\t\t\t\tvar sliderTooltip = document.createElement(\"div\");\n\t\t\t\tsliderTooltip.className = \"tooltip tooltip-main\";\n\t\t\t\tsliderTooltip.setAttribute('role', 'presentation');\n\t\t\t\tcreateAndAppendTooltipSubElements(sliderTooltip);\n\n\t\t\t\tvar sliderTooltipMin = document.createElement(\"div\");\n\t\t\t\tsliderTooltipMin.className = \"tooltip tooltip-min\";\n\t\t\t\tsliderTooltipMin.setAttribute('role', 'presentation');\n\t\t\t\tcreateAndAppendTooltipSubElements(sliderTooltipMin);\n\n\t\t\t\tvar sliderTooltipMax = document.createElement(\"div\");\n\t\t\t\tsliderTooltipMax.className = \"tooltip tooltip-max\";\n\t\t\t\tsliderTooltipMax.setAttribute('role', 'presentation');\n\t\t\t\tcreateAndAppendTooltipSubElements(sliderTooltipMax);\n\n\t\t\t\t/* Append components to sliderElem */\n\t\t\t\tthis.sliderElem.appendChild(sliderTrack);\n\t\t\t\tthis.sliderElem.appendChild(sliderTooltip);\n\t\t\t\tthis.sliderElem.appendChild(sliderTooltipMin);\n\t\t\t\tthis.sliderElem.appendChild(sliderTooltipMax);\n\n\t\t\t\tif (this.tickLabelContainer) {\n\t\t\t\t\tthis.sliderElem.appendChild(this.tickLabelContainer);\n\t\t\t\t}\n\t\t\t\tif (this.ticksContainer) {\n\t\t\t\t\tthis.sliderElem.appendChild(this.ticksContainer);\n\t\t\t\t}\n\n\t\t\t\tthis.sliderElem.appendChild(sliderMinHandle);\n\t\t\t\tthis.sliderElem.appendChild(sliderMaxHandle);\n\n\t\t\t\t/* Append slider element to parent container, right before the original <input> element */\n\t\t\t\tparent.insertBefore(this.sliderElem, this.element);\n\n\t\t\t\t/* Hide original <input> element */\n\t\t\t\tthis.element.style.display = \"none\";\n\t\t\t}\n\t\t\t/* If JQuery exists, cache JQ references */\n\t\t\tif ($) {\n\t\t\t\tthis.$element = $(this.element);\n\t\t\t\tthis.$sliderElem = $(this.sliderElem);\n\t\t\t}\n\n\t\t\t/*************************************************\n   \t\t\t\t\t\tSetup\n   \t**************************************************/\n\t\t\tthis.eventToCallbackMap = {};\n\t\t\tthis.sliderElem.id = this.options.id;\n\n\t\t\tthis.touchCapable = 'ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch;\n\n\t\t\tthis.touchX = 0;\n\t\t\tthis.touchY = 0;\n\n\t\t\tthis.tooltip = this.sliderElem.querySelector('.tooltip-main');\n\t\t\tthis.tooltipInner = this.tooltip.querySelector('.tooltip-inner');\n\n\t\t\tthis.tooltip_min = this.sliderElem.querySelector('.tooltip-min');\n\t\t\tthis.tooltipInner_min = this.tooltip_min.querySelector('.tooltip-inner');\n\n\t\t\tthis.tooltip_max = this.sliderElem.querySelector('.tooltip-max');\n\t\t\tthis.tooltipInner_max = this.tooltip_max.querySelector('.tooltip-inner');\n\n\t\t\tif (SliderScale[this.options.scale]) {\n\t\t\t\tthis.options.scale = SliderScale[this.options.scale];\n\t\t\t}\n\n\t\t\tif (updateSlider === true) {\n\t\t\t\t// Reset classes\n\t\t\t\tthis._removeClass(this.sliderElem, 'slider-horizontal');\n\t\t\t\tthis._removeClass(this.sliderElem, 'slider-vertical');\n\t\t\t\tthis._removeClass(this.sliderElem, 'slider-rtl');\n\t\t\t\tthis._removeClass(this.tooltip, 'hide');\n\t\t\t\tthis._removeClass(this.tooltip_min, 'hide');\n\t\t\t\tthis._removeClass(this.tooltip_max, 'hide');\n\n\t\t\t\t// Undo existing inline styles for track\n\t\t\t\t[\"left\", \"right\", \"top\", \"width\", \"height\"].forEach(function (prop) {\n\t\t\t\t\tthis._removeProperty(this.trackLow, prop);\n\t\t\t\t\tthis._removeProperty(this.trackSelection, prop);\n\t\t\t\t\tthis._removeProperty(this.trackHigh, prop);\n\t\t\t\t}, this);\n\n\t\t\t\t// Undo inline styles on handles\n\t\t\t\t[this.handle1, this.handle2].forEach(function (handle) {\n\t\t\t\t\tthis._removeProperty(handle, 'left');\n\t\t\t\t\tthis._removeProperty(handle, 'right');\n\t\t\t\t\tthis._removeProperty(handle, 'top');\n\t\t\t\t}, this);\n\n\t\t\t\t// Undo inline styles and classes on tooltips\n\t\t\t\t[this.tooltip, this.tooltip_min, this.tooltip_max].forEach(function (tooltip) {\n\t\t\t\t\tthis._removeProperty(tooltip, 'left');\n\t\t\t\t\tthis._removeProperty(tooltip, 'right');\n\t\t\t\t\tthis._removeProperty(tooltip, 'top');\n\n\t\t\t\t\tthis._removeClass(tooltip, 'right');\n\t\t\t\t\tthis._removeClass(tooltip, 'left');\n\t\t\t\t\tthis._removeClass(tooltip, 'top');\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\tif (this.options.orientation === 'vertical') {\n\t\t\t\tthis._addClass(this.sliderElem, 'slider-vertical');\n\t\t\t\tthis.stylePos = 'top';\n\t\t\t\tthis.mousePos = 'pageY';\n\t\t\t\tthis.sizePos = 'offsetHeight';\n\t\t\t} else {\n\t\t\t\tthis._addClass(this.sliderElem, 'slider-horizontal');\n\t\t\t\tthis.sliderElem.style.width = origWidth;\n\t\t\t\tthis.options.orientation = 'horizontal';\n\t\t\t\tif (this.options.rtl) {\n\t\t\t\t\tthis.stylePos = 'right';\n\t\t\t\t} else {\n\t\t\t\t\tthis.stylePos = 'left';\n\t\t\t\t}\n\t\t\t\tthis.mousePos = 'clientX';\n\t\t\t\tthis.sizePos = 'offsetWidth';\n\t\t\t}\n\t\t\t// specific rtl class\n\t\t\tif (this.options.rtl) {\n\t\t\t\tthis._addClass(this.sliderElem, 'slider-rtl');\n\t\t\t}\n\t\t\tthis._setTooltipPosition();\n\t\t\t/* In case ticks are specified, overwrite the min and max bounds */\n\t\t\tif (Array.isArray(this.options.ticks) && this.options.ticks.length > 0) {\n\t\t\t\tif (!isMaxSet) {\n\t\t\t\t\tthis.options.max = Math.max.apply(Math, this.options.ticks);\n\t\t\t\t}\n\t\t\t\tif (!isMinSet) {\n\t\t\t\t\tthis.options.min = Math.min.apply(Math, this.options.ticks);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (Array.isArray(this.options.value)) {\n\t\t\t\tthis.options.range = true;\n\t\t\t\tthis._state.value = this.options.value;\n\t\t\t} else if (this.options.range) {\n\t\t\t\t// User wants a range, but value is not an array\n\t\t\t\tthis._state.value = [this.options.value, this.options.max];\n\t\t\t} else {\n\t\t\t\tthis._state.value = this.options.value;\n\t\t\t}\n\n\t\t\tthis.trackLow = sliderTrackLow || this.trackLow;\n\t\t\tthis.trackSelection = sliderTrackSelection || this.trackSelection;\n\t\t\tthis.trackHigh = sliderTrackHigh || this.trackHigh;\n\n\t\t\tif (this.options.selection === 'none') {\n\t\t\t\tthis._addClass(this.trackLow, 'hide');\n\t\t\t\tthis._addClass(this.trackSelection, 'hide');\n\t\t\t\tthis._addClass(this.trackHigh, 'hide');\n\t\t\t} else if (this.options.selection === 'after' || this.options.selection === 'before') {\n\t\t\t\tthis._removeClass(this.trackLow, 'hide');\n\t\t\t\tthis._removeClass(this.trackSelection, 'hide');\n\t\t\t\tthis._removeClass(this.trackHigh, 'hide');\n\t\t\t}\n\n\t\t\tthis.handle1 = sliderMinHandle || this.handle1;\n\t\t\tthis.handle2 = sliderMaxHandle || this.handle2;\n\n\t\t\tif (updateSlider === true) {\n\t\t\t\t// Reset classes\n\t\t\t\tthis._removeClass(this.handle1, 'round triangle');\n\t\t\t\tthis._removeClass(this.handle2, 'round triangle hide');\n\n\t\t\t\tfor (i = 0; i < this.ticks.length; i++) {\n\t\t\t\t\tthis._removeClass(this.ticks[i], 'round triangle hide');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar availableHandleModifiers = ['round', 'triangle', 'custom'];\n\t\t\tvar isValidHandleType = availableHandleModifiers.indexOf(this.options.handle) !== -1;\n\t\t\tif (isValidHandleType) {\n\t\t\t\tthis._addClass(this.handle1, this.options.handle);\n\t\t\t\tthis._addClass(this.handle2, this.options.handle);\n\n\t\t\t\tfor (i = 0; i < this.ticks.length; i++) {\n\t\t\t\t\tthis._addClass(this.ticks[i], this.options.handle);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis._state.offset = this._offset(this.sliderElem);\n\t\t\tthis._state.size = this.sliderElem[this.sizePos];\n\t\t\tthis.setValue(this._state.value);\n\n\t\t\t/******************************************\n   \t\t\t\tBind Event Listeners\n   \t******************************************/\n\n\t\t\t// Bind keyboard handlers\n\t\t\tthis.handle1Keydown = this._keydown.bind(this, 0);\n\t\t\tthis.handle1.addEventListener(\"keydown\", this.handle1Keydown, false);\n\n\t\t\tthis.handle2Keydown = this._keydown.bind(this, 1);\n\t\t\tthis.handle2.addEventListener(\"keydown\", this.handle2Keydown, false);\n\n\t\t\tthis.mousedown = this._mousedown.bind(this);\n\t\t\tthis.touchstart = this._touchstart.bind(this);\n\t\t\tthis.touchmove = this._touchmove.bind(this);\n\n\t\t\tif (this.touchCapable) {\n\t\t\t\tthis.sliderElem.addEventListener(\"touchstart\", this.touchstart, false);\n\t\t\t\tthis.sliderElem.addEventListener(\"touchmove\", this.touchmove, false);\n\t\t\t}\n\n\t\t\tthis.sliderElem.addEventListener(\"mousedown\", this.mousedown, false);\n\n\t\t\t// Bind window handlers\n\t\t\tthis.resize = this._resize.bind(this);\n\t\t\twindow.addEventListener(\"resize\", this.resize, false);\n\n\t\t\t// Bind tooltip-related handlers\n\t\t\tif (this.options.tooltip === 'hide') {\n\t\t\t\tthis._addClass(this.tooltip, 'hide');\n\t\t\t\tthis._addClass(this.tooltip_min, 'hide');\n\t\t\t\tthis._addClass(this.tooltip_max, 'hide');\n\t\t\t} else if (this.options.tooltip === 'always') {\n\t\t\t\tthis._showTooltip();\n\t\t\t\tthis._alwaysShowTooltip = true;\n\t\t\t} else {\n\t\t\t\tthis.showTooltip = this._showTooltip.bind(this);\n\t\t\t\tthis.hideTooltip = this._hideTooltip.bind(this);\n\n\t\t\t\tif (this.options.ticks_tooltip) {\n\t\t\t\t\tvar callbackHandle = this._addTickListener();\n\t\t\t\t\t//create handle1 listeners and store references in map\n\t\t\t\t\tvar mouseEnter = callbackHandle.addMouseEnter(this, this.handle1);\n\t\t\t\t\tvar mouseLeave = callbackHandle.addMouseLeave(this, this.handle1);\n\t\t\t\t\tthis.handleCallbackMap.handle1 = {\n\t\t\t\t\t\tmouseEnter: mouseEnter,\n\t\t\t\t\t\tmouseLeave: mouseLeave\n\t\t\t\t\t};\n\t\t\t\t\t//create handle2 listeners and store references in map\n\t\t\t\t\tmouseEnter = callbackHandle.addMouseEnter(this, this.handle2);\n\t\t\t\t\tmouseLeave = callbackHandle.addMouseLeave(this, this.handle2);\n\t\t\t\t\tthis.handleCallbackMap.handle2 = {\n\t\t\t\t\t\tmouseEnter: mouseEnter,\n\t\t\t\t\t\tmouseLeave: mouseLeave\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tthis.sliderElem.addEventListener(\"mouseenter\", this.showTooltip, false);\n\t\t\t\t\tthis.sliderElem.addEventListener(\"mouseleave\", this.hideTooltip, false);\n\n\t\t\t\t\tif (this.touchCapable) {\n\t\t\t\t\t\tthis.sliderElem.addEventListener(\"touchstart\", this.showTooltip, false);\n\t\t\t\t\t\tthis.sliderElem.addEventListener(\"touchmove\", this.showTooltip, false);\n\t\t\t\t\t\tthis.sliderElem.addEventListener(\"touchend\", this.hideTooltip, false);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.handle1.addEventListener(\"focus\", this.showTooltip, false);\n\t\t\t\tthis.handle1.addEventListener(\"blur\", this.hideTooltip, false);\n\n\t\t\t\tthis.handle2.addEventListener(\"focus\", this.showTooltip, false);\n\t\t\t\tthis.handle2.addEventListener(\"blur\", this.hideTooltip, false);\n\n\t\t\t\tif (this.touchCapable) {\n\t\t\t\t\tthis.handle1.addEventListener(\"touchstart\", this.showTooltip, false);\n\t\t\t\t\tthis.handle1.addEventListener(\"touchmove\", this.showTooltip, false);\n\t\t\t\t\tthis.handle1.addEventListener(\"touchend\", this.hideTooltip, false);\n\n\t\t\t\t\tthis.handle2.addEventListener(\"touchstart\", this.showTooltip, false);\n\t\t\t\t\tthis.handle2.addEventListener(\"touchmove\", this.showTooltip, false);\n\t\t\t\t\tthis.handle2.addEventListener(\"touchend\", this.hideTooltip, false);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.options.enabled) {\n\t\t\t\tthis.enable();\n\t\t\t} else {\n\t\t\t\tthis.disable();\n\t\t\t}\n\t\t}\n\n\t\t/*************************************************\n  \t\t\t\tINSTANCE PROPERTIES/METHODS\n  \t- Any methods bound to the prototype are considered\n  part of the plugin's `public` interface\n  \t**************************************************/\n\t\tSlider.prototype = {\n\t\t\t_init: function _init() {}, // NOTE: Must exist to support bridget\n\n\t\t\tconstructor: Slider,\n\n\t\t\tdefaultOptions: {\n\t\t\t\tid: \"\",\n\t\t\t\tmin: 0,\n\t\t\t\tmax: 10,\n\t\t\t\tstep: 1,\n\t\t\t\tprecision: 0,\n\t\t\t\torientation: 'horizontal',\n\t\t\t\tvalue: 5,\n\t\t\t\trange: false,\n\t\t\t\tselection: 'before',\n\t\t\t\ttooltip: 'show',\n\t\t\t\ttooltip_split: false,\n\t\t\t\tlock_to_ticks: false,\n\t\t\t\thandle: 'round',\n\t\t\t\treversed: false,\n\t\t\t\trtl: 'auto',\n\t\t\t\tenabled: true,\n\t\t\t\tformatter: function formatter(val) {\n\t\t\t\t\tif (Array.isArray(val)) {\n\t\t\t\t\t\treturn val[0] + \" : \" + val[1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn val;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tnatural_arrow_keys: false,\n\t\t\t\tticks: [],\n\t\t\t\tticks_positions: [],\n\t\t\t\tticks_labels: [],\n\t\t\t\tticks_snap_bounds: 0,\n\t\t\t\tticks_tooltip: false,\n\t\t\t\tscale: 'linear',\n\t\t\t\tfocus: false,\n\t\t\t\ttooltip_position: null,\n\t\t\t\tlabelledby: null,\n\t\t\t\trangeHighlights: []\n\t\t\t},\n\n\t\t\tgetElement: function getElement() {\n\t\t\t\treturn this.sliderElem;\n\t\t\t},\n\n\t\t\tgetValue: function getValue() {\n\t\t\t\tif (this.options.range) {\n\t\t\t\t\treturn this._state.value;\n\t\t\t\t} else {\n\t\t\t\t\treturn this._state.value[0];\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tsetValue: function setValue(val, triggerSlideEvent, triggerChangeEvent) {\n\t\t\t\tif (!val) {\n\t\t\t\t\tval = 0;\n\t\t\t\t}\n\t\t\t\tvar oldValue = this.getValue();\n\t\t\t\tthis._state.value = this._validateInputValue(val);\n\t\t\t\tvar applyPrecision = this._applyPrecision.bind(this);\n\n\t\t\t\tif (this.options.range) {\n\t\t\t\t\tthis._state.value[0] = applyPrecision(this._state.value[0]);\n\t\t\t\t\tthis._state.value[1] = applyPrecision(this._state.value[1]);\n\n\t\t\t\t\tif (this.ticksAreValid && this.options.lock_to_ticks) {\n\t\t\t\t\t\tthis._state.value[0] = this.options.ticks[this._getClosestTickIndex(this._state.value[0])];\n\t\t\t\t\t\tthis._state.value[1] = this.options.ticks[this._getClosestTickIndex(this._state.value[1])];\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._state.value[0] = Math.max(this.options.min, Math.min(this.options.max, this._state.value[0]));\n\t\t\t\t\tthis._state.value[1] = Math.max(this.options.min, Math.min(this.options.max, this._state.value[1]));\n\t\t\t\t} else {\n\t\t\t\t\tthis._state.value = applyPrecision(this._state.value);\n\n\t\t\t\t\tif (this.ticksAreValid && this.options.lock_to_ticks) {\n\t\t\t\t\t\tthis._state.value = this.options.ticks[this._getClosestTickIndex(this._state.value)];\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._state.value = [Math.max(this.options.min, Math.min(this.options.max, this._state.value))];\n\t\t\t\t\tthis._addClass(this.handle2, 'hide');\n\t\t\t\t\tif (this.options.selection === 'after') {\n\t\t\t\t\t\tthis._state.value[1] = this.options.max;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._state.value[1] = this.options.min;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Determine which ticks the handle(s) are set at (if applicable)\n\t\t\t\tthis._setTickIndex();\n\n\t\t\t\tif (this.options.max > this.options.min) {\n\t\t\t\t\tthis._state.percentage = [this._toPercentage(this._state.value[0]), this._toPercentage(this._state.value[1]), this.options.step * 100 / (this.options.max - this.options.min)];\n\t\t\t\t} else {\n\t\t\t\t\tthis._state.percentage = [0, 0, 100];\n\t\t\t\t}\n\n\t\t\t\tthis._layout();\n\t\t\t\tvar newValue = this.options.range ? this._state.value : this._state.value[0];\n\n\t\t\t\tthis._setDataVal(newValue);\n\t\t\t\tif (triggerSlideEvent === true) {\n\t\t\t\t\tthis._trigger('slide', newValue);\n\t\t\t\t}\n\n\t\t\t\tvar hasChanged = false;\n\t\t\t\tif (Array.isArray(newValue)) {\n\t\t\t\t\thasChanged = oldValue[0] !== newValue[0] || oldValue[1] !== newValue[1];\n\t\t\t\t} else {\n\t\t\t\t\thasChanged = oldValue !== newValue;\n\t\t\t\t}\n\n\t\t\t\tif (hasChanged && triggerChangeEvent === true) {\n\t\t\t\t\tthis._trigger('change', {\n\t\t\t\t\t\toldValue: oldValue,\n\t\t\t\t\t\tnewValue: newValue\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\tdestroy: function destroy() {\n\t\t\t\t// Remove event handlers on slider elements\n\t\t\t\tthis._removeSliderEventHandlers();\n\n\t\t\t\t// Remove the slider from the DOM\n\t\t\t\tthis.sliderElem.parentNode.removeChild(this.sliderElem);\n\t\t\t\t/* Show original <input> element */\n\t\t\t\tthis.element.style.display = \"\";\n\n\t\t\t\t// Clear out custom event bindings\n\t\t\t\tthis._cleanUpEventCallbacksMap();\n\n\t\t\t\t// Remove data values\n\t\t\t\tthis.element.removeAttribute(\"data\");\n\n\t\t\t\t// Remove JQuery handlers/data\n\t\t\t\tif ($) {\n\t\t\t\t\tthis._unbindJQueryEventHandlers();\n\t\t\t\t\tif (autoRegisterNamespace === NAMESPACE_MAIN) {\n\t\t\t\t\t\tthis.$element.removeData(autoRegisterNamespace);\n\t\t\t\t\t}\n\t\t\t\t\tthis.$element.removeData(NAMESPACE_ALTERNATE);\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tdisable: function disable() {\n\t\t\t\tthis._state.enabled = false;\n\t\t\t\tthis.handle1.removeAttribute(\"tabindex\");\n\t\t\t\tthis.handle2.removeAttribute(\"tabindex\");\n\t\t\t\tthis._addClass(this.sliderElem, 'slider-disabled');\n\t\t\t\tthis._trigger('slideDisabled');\n\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\tenable: function enable() {\n\t\t\t\tthis._state.enabled = true;\n\t\t\t\tthis.handle1.setAttribute(\"tabindex\", 0);\n\t\t\t\tthis.handle2.setAttribute(\"tabindex\", 0);\n\t\t\t\tthis._removeClass(this.sliderElem, 'slider-disabled');\n\t\t\t\tthis._trigger('slideEnabled');\n\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\ttoggle: function toggle() {\n\t\t\t\tif (this._state.enabled) {\n\t\t\t\t\tthis.disable();\n\t\t\t\t} else {\n\t\t\t\t\tthis.enable();\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\tisEnabled: function isEnabled() {\n\t\t\t\treturn this._state.enabled;\n\t\t\t},\n\n\t\t\ton: function on(evt, callback) {\n\t\t\t\tthis._bindNonQueryEventHandler(evt, callback);\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\toff: function off(evt, callback) {\n\t\t\t\tif ($) {\n\t\t\t\t\tthis.$element.off(evt, callback);\n\t\t\t\t\tthis.$sliderElem.off(evt, callback);\n\t\t\t\t} else {\n\t\t\t\t\tthis._unbindNonQueryEventHandler(evt, callback);\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tgetAttribute: function getAttribute(attribute) {\n\t\t\t\tif (attribute) {\n\t\t\t\t\treturn this.options[attribute];\n\t\t\t\t} else {\n\t\t\t\t\treturn this.options;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tsetAttribute: function setAttribute(attribute, value) {\n\t\t\t\tthis.options[attribute] = value;\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\trefresh: function refresh(options) {\n\t\t\t\tvar currentValue = this.getValue();\n\t\t\t\tthis._removeSliderEventHandlers();\n\t\t\t\tcreateNewSlider.call(this, this.element, this.options);\n\t\t\t\t// Don't reset slider's value on refresh if `useCurrentValue` is true\n\t\t\t\tif (options && options.useCurrentValue === true) {\n\t\t\t\t\tthis.setValue(currentValue);\n\t\t\t\t}\n\t\t\t\tif ($) {\n\t\t\t\t\t// Bind new instance of slider to the element\n\t\t\t\t\tif (autoRegisterNamespace === NAMESPACE_MAIN) {\n\t\t\t\t\t\t$.data(this.element, NAMESPACE_MAIN, this);\n\t\t\t\t\t\t$.data(this.element, NAMESPACE_ALTERNATE, this);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$.data(this.element, NAMESPACE_ALTERNATE, this);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\trelayout: function relayout() {\n\t\t\t\tthis._resize();\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t/******************************+\n   \t\t\t\tHELPERS\n   \t- Any method that is not part of the public interface.\n   - Place it underneath this comment block and write its signature like so:\n   \t\t_fnName : function() {...}\n   \t********************************/\n\t\t\t_removeTooltipListener: function _removeTooltipListener(event, handler) {\n\t\t\t\tthis.handle1.removeEventListener(event, handler, false);\n\t\t\t\tthis.handle2.removeEventListener(event, handler, false);\n\t\t\t},\n\t\t\t_removeSliderEventHandlers: function _removeSliderEventHandlers() {\n\t\t\t\t// Remove keydown event listeners\n\t\t\t\tthis.handle1.removeEventListener(\"keydown\", this.handle1Keydown, false);\n\t\t\t\tthis.handle2.removeEventListener(\"keydown\", this.handle2Keydown, false);\n\n\t\t\t\t//remove the listeners from the ticks and handles if they had their own listeners\n\t\t\t\tif (this.options.ticks_tooltip) {\n\t\t\t\t\tvar ticks = this.ticksContainer.getElementsByClassName('slider-tick');\n\t\t\t\t\tfor (var i = 0; i < ticks.length; i++) {\n\t\t\t\t\t\tticks[i].removeEventListener('mouseenter', this.ticksCallbackMap[i].mouseEnter, false);\n\t\t\t\t\t\tticks[i].removeEventListener('mouseleave', this.ticksCallbackMap[i].mouseLeave, false);\n\t\t\t\t\t}\n\t\t\t\t\tif (this.handleCallbackMap.handle1 && this.handleCallbackMap.handle2) {\n\t\t\t\t\t\tthis.handle1.removeEventListener('mouseenter', this.handleCallbackMap.handle1.mouseEnter, false);\n\t\t\t\t\t\tthis.handle2.removeEventListener('mouseenter', this.handleCallbackMap.handle2.mouseEnter, false);\n\t\t\t\t\t\tthis.handle1.removeEventListener('mouseleave', this.handleCallbackMap.handle1.mouseLeave, false);\n\t\t\t\t\t\tthis.handle2.removeEventListener('mouseleave', this.handleCallbackMap.handle2.mouseLeave, false);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.handleCallbackMap = null;\n\t\t\t\tthis.ticksCallbackMap = null;\n\n\t\t\t\tif (this.showTooltip) {\n\t\t\t\t\tthis._removeTooltipListener(\"focus\", this.showTooltip);\n\t\t\t\t}\n\t\t\t\tif (this.hideTooltip) {\n\t\t\t\t\tthis._removeTooltipListener(\"blur\", this.hideTooltip);\n\t\t\t\t}\n\n\t\t\t\t// Remove event listeners from sliderElem\n\t\t\t\tif (this.showTooltip) {\n\t\t\t\t\tthis.sliderElem.removeEventListener(\"mouseenter\", this.showTooltip, false);\n\t\t\t\t}\n\t\t\t\tif (this.hideTooltip) {\n\t\t\t\t\tthis.sliderElem.removeEventListener(\"mouseleave\", this.hideTooltip, false);\n\t\t\t\t}\n\n\t\t\t\tthis.sliderElem.removeEventListener(\"mousedown\", this.mousedown, false);\n\n\t\t\t\tif (this.touchCapable) {\n\t\t\t\t\t// Remove touch event listeners from handles\n\t\t\t\t\tif (this.showTooltip) {\n\t\t\t\t\t\tthis.handle1.removeEventListener(\"touchstart\", this.showTooltip, false);\n\t\t\t\t\t\tthis.handle1.removeEventListener(\"touchmove\", this.showTooltip, false);\n\t\t\t\t\t\tthis.handle2.removeEventListener(\"touchstart\", this.showTooltip, false);\n\t\t\t\t\t\tthis.handle2.removeEventListener(\"touchmove\", this.showTooltip, false);\n\t\t\t\t\t}\n\t\t\t\t\tif (this.hideTooltip) {\n\t\t\t\t\t\tthis.handle1.removeEventListener(\"touchend\", this.hideTooltip, false);\n\t\t\t\t\t\tthis.handle2.removeEventListener(\"touchend\", this.hideTooltip, false);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove event listeners from sliderElem\n\t\t\t\t\tif (this.showTooltip) {\n\t\t\t\t\t\tthis.sliderElem.removeEventListener(\"touchstart\", this.showTooltip, false);\n\t\t\t\t\t\tthis.sliderElem.removeEventListener(\"touchmove\", this.showTooltip, false);\n\t\t\t\t\t}\n\t\t\t\t\tif (this.hideTooltip) {\n\t\t\t\t\t\tthis.sliderElem.removeEventListener(\"touchend\", this.hideTooltip, false);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.sliderElem.removeEventListener(\"touchstart\", this.touchstart, false);\n\t\t\t\t\tthis.sliderElem.removeEventListener(\"touchmove\", this.touchmove, false);\n\t\t\t\t}\n\n\t\t\t\t// Remove window event listener\n\t\t\t\twindow.removeEventListener(\"resize\", this.resize, false);\n\t\t\t},\n\t\t\t_bindNonQueryEventHandler: function _bindNonQueryEventHandler(evt, callback) {\n\t\t\t\tif (this.eventToCallbackMap[evt] === undefined) {\n\t\t\t\t\tthis.eventToCallbackMap[evt] = [];\n\t\t\t\t}\n\t\t\t\tthis.eventToCallbackMap[evt].push(callback);\n\t\t\t},\n\t\t\t_unbindNonQueryEventHandler: function _unbindNonQueryEventHandler(evt, callback) {\n\t\t\t\tvar callbacks = this.eventToCallbackMap[evt];\n\t\t\t\tif (callbacks !== undefined) {\n\t\t\t\t\tfor (var i = 0; i < callbacks.length; i++) {\n\t\t\t\t\t\tif (callbacks[i] === callback) {\n\t\t\t\t\t\t\tcallbacks.splice(i, 1);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t_cleanUpEventCallbacksMap: function _cleanUpEventCallbacksMap() {\n\t\t\t\tvar eventNames = Object.keys(this.eventToCallbackMap);\n\t\t\t\tfor (var i = 0; i < eventNames.length; i++) {\n\t\t\t\t\tvar eventName = eventNames[i];\n\t\t\t\t\tdelete this.eventToCallbackMap[eventName];\n\t\t\t\t}\n\t\t\t},\n\t\t\t_showTooltip: function _showTooltip() {\n\t\t\t\tif (this.options.tooltip_split === false) {\n\t\t\t\t\tthis._addClass(this.tooltip, 'in');\n\t\t\t\t\tthis.tooltip_min.style.display = 'none';\n\t\t\t\t\tthis.tooltip_max.style.display = 'none';\n\t\t\t\t} else {\n\t\t\t\t\tthis._addClass(this.tooltip_min, 'in');\n\t\t\t\t\tthis._addClass(this.tooltip_max, 'in');\n\t\t\t\t\tthis.tooltip.style.display = 'none';\n\t\t\t\t}\n\t\t\t\tthis._state.over = true;\n\t\t\t},\n\t\t\t_hideTooltip: function _hideTooltip() {\n\t\t\t\tif (this._state.inDrag === false && this._alwaysShowTooltip !== true) {\n\t\t\t\t\tthis._removeClass(this.tooltip, 'in');\n\t\t\t\t\tthis._removeClass(this.tooltip_min, 'in');\n\t\t\t\t\tthis._removeClass(this.tooltip_max, 'in');\n\t\t\t\t}\n\t\t\t\tthis._state.over = false;\n\t\t\t},\n\t\t\t_setToolTipOnMouseOver: function _setToolTipOnMouseOver(tempState) {\n\t\t\t\tvar self = this;\n\t\t\t\tvar formattedTooltipVal = this.options.formatter(!tempState ? this._state.value[0] : tempState.value[0]);\n\t\t\t\tvar positionPercentages = !tempState ? getPositionPercentages(this._state, this.options.reversed) : getPositionPercentages(tempState, this.options.reversed);\n\t\t\t\tthis._setText(this.tooltipInner, formattedTooltipVal);\n\n\t\t\t\tthis.tooltip.style[this.stylePos] = positionPercentages[0] + \"%\";\n\n\t\t\t\tfunction getPositionPercentages(state, reversed) {\n\t\t\t\t\tif (reversed) {\n\t\t\t\t\t\treturn [100 - state.percentage[0], self.options.range ? 100 - state.percentage[1] : state.percentage[1]];\n\t\t\t\t\t}\n\t\t\t\t\treturn [state.percentage[0], state.percentage[1]];\n\t\t\t\t}\n\t\t\t},\n\t\t\t_copyState: function _copyState() {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: [this._state.value[0], this._state.value[1]],\n\t\t\t\t\tenabled: this._state.enabled,\n\t\t\t\t\toffset: this._state.offset,\n\t\t\t\t\tsize: this._state.size,\n\t\t\t\t\tpercentage: [this._state.percentage[0], this._state.percentage[1], this._state.percentage[2]],\n\t\t\t\t\tinDrag: this._state.inDrag,\n\t\t\t\t\tover: this._state.over,\n\t\t\t\t\t// deleted or null'd keys\n\t\t\t\t\tdragged: this._state.dragged,\n\t\t\t\t\tkeyCtrl: this._state.keyCtrl\n\t\t\t\t};\n\t\t\t},\n\t\t\t_addTickListener: function _addTickListener() {\n\t\t\t\treturn {\n\t\t\t\t\taddMouseEnter: function addMouseEnter(reference, element, index) {\n\t\t\t\t\t\tvar enter = function enter() {\n\t\t\t\t\t\t\tvar tempState = reference._copyState();\n\t\t\t\t\t\t\t// Which handle is being hovered over?\n\t\t\t\t\t\t\tvar val = element === reference.handle1 ? tempState.value[0] : tempState.value[1];\n\t\t\t\t\t\t\tvar per = void 0;\n\n\t\t\t\t\t\t\t// Setup value and percentage for tick's 'mouseenter'\n\t\t\t\t\t\t\tif (index !== undefined) {\n\t\t\t\t\t\t\t\tval = reference.options.ticks[index];\n\t\t\t\t\t\t\t\tper = reference.options.ticks_positions.length > 0 && reference.options.ticks_positions[index] || reference._toPercentage(reference.options.ticks[index]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tper = reference._toPercentage(val);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\ttempState.value[0] = val;\n\t\t\t\t\t\t\ttempState.percentage[0] = per;\n\t\t\t\t\t\t\treference._setToolTipOnMouseOver(tempState);\n\t\t\t\t\t\t\treference._showTooltip();\n\t\t\t\t\t\t};\n\t\t\t\t\t\telement.addEventListener(\"mouseenter\", enter, false);\n\t\t\t\t\t\treturn enter;\n\t\t\t\t\t},\n\t\t\t\t\taddMouseLeave: function addMouseLeave(reference, element) {\n\t\t\t\t\t\tvar leave = function leave() {\n\t\t\t\t\t\t\treference._hideTooltip();\n\t\t\t\t\t\t};\n\t\t\t\t\t\telement.addEventListener(\"mouseleave\", leave, false);\n\t\t\t\t\t\treturn leave;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\t\t\t_layout: function _layout() {\n\t\t\t\tvar positionPercentages;\n\t\t\t\tvar formattedValue;\n\n\t\t\t\tif (this.options.reversed) {\n\t\t\t\t\tpositionPercentages = [100 - this._state.percentage[0], this.options.range ? 100 - this._state.percentage[1] : this._state.percentage[1]];\n\t\t\t\t} else {\n\t\t\t\t\tpositionPercentages = [this._state.percentage[0], this._state.percentage[1]];\n\t\t\t\t}\n\n\t\t\t\tthis.handle1.style[this.stylePos] = positionPercentages[0] + \"%\";\n\t\t\t\tthis.handle1.setAttribute('aria-valuenow', this._state.value[0]);\n\t\t\t\tformattedValue = this.options.formatter(this._state.value[0]);\n\t\t\t\tif (isNaN(formattedValue)) {\n\t\t\t\t\tthis.handle1.setAttribute('aria-valuetext', formattedValue);\n\t\t\t\t} else {\n\t\t\t\t\tthis.handle1.removeAttribute('aria-valuetext');\n\t\t\t\t}\n\n\t\t\t\tthis.handle2.style[this.stylePos] = positionPercentages[1] + \"%\";\n\t\t\t\tthis.handle2.setAttribute('aria-valuenow', this._state.value[1]);\n\t\t\t\tformattedValue = this.options.formatter(this._state.value[1]);\n\t\t\t\tif (isNaN(formattedValue)) {\n\t\t\t\t\tthis.handle2.setAttribute('aria-valuetext', formattedValue);\n\t\t\t\t} else {\n\t\t\t\t\tthis.handle2.removeAttribute('aria-valuetext');\n\t\t\t\t}\n\n\t\t\t\t/* Position highlight range elements */\n\t\t\t\tif (this.rangeHighlightElements.length > 0 && Array.isArray(this.options.rangeHighlights) && this.options.rangeHighlights.length > 0) {\n\t\t\t\t\tfor (var _i = 0; _i < this.options.rangeHighlights.length; _i++) {\n\t\t\t\t\t\tvar startPercent = this._toPercentage(this.options.rangeHighlights[_i].start);\n\t\t\t\t\t\tvar endPercent = this._toPercentage(this.options.rangeHighlights[_i].end);\n\n\t\t\t\t\t\tif (this.options.reversed) {\n\t\t\t\t\t\t\tvar sp = 100 - endPercent;\n\t\t\t\t\t\t\tendPercent = 100 - startPercent;\n\t\t\t\t\t\t\tstartPercent = sp;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar currentRange = this._createHighlightRange(startPercent, endPercent);\n\n\t\t\t\t\t\tif (currentRange) {\n\t\t\t\t\t\t\tif (this.options.orientation === 'vertical') {\n\t\t\t\t\t\t\t\tthis.rangeHighlightElements[_i].style.top = currentRange.start + \"%\";\n\t\t\t\t\t\t\t\tthis.rangeHighlightElements[_i].style.height = currentRange.size + \"%\";\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (this.options.rtl) {\n\t\t\t\t\t\t\t\t\tthis.rangeHighlightElements[_i].style.right = currentRange.start + \"%\";\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tthis.rangeHighlightElements[_i].style.left = currentRange.start + \"%\";\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.rangeHighlightElements[_i].style.width = currentRange.size + \"%\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.rangeHighlightElements[_i].style.display = \"none\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/* Position ticks and labels */\n\t\t\t\tif (Array.isArray(this.options.ticks) && this.options.ticks.length > 0) {\n\n\t\t\t\t\tvar styleSize = this.options.orientation === 'vertical' ? 'height' : 'width';\n\t\t\t\t\tvar styleMargin;\n\t\t\t\t\tif (this.options.orientation === 'vertical') {\n\t\t\t\t\t\tstyleMargin = 'marginTop';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (this.options.rtl) {\n\t\t\t\t\t\t\tstyleMargin = 'marginRight';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tstyleMargin = 'marginLeft';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tvar labelSize = this._state.size / (this.options.ticks.length - 1);\n\n\t\t\t\t\tif (this.tickLabelContainer) {\n\t\t\t\t\t\tvar extraMargin = 0;\n\t\t\t\t\t\tif (this.options.ticks_positions.length === 0) {\n\t\t\t\t\t\t\tif (this.options.orientation !== 'vertical') {\n\t\t\t\t\t\t\t\tthis.tickLabelContainer.style[styleMargin] = -labelSize / 2 + \"px\";\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\textraMargin = this.tickLabelContainer.offsetHeight;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t/* Chidren are position absolute, calculate height by finding the max offsetHeight of a child */\n\t\t\t\t\t\t\tfor (i = 0; i < this.tickLabelContainer.childNodes.length; i++) {\n\t\t\t\t\t\t\t\tif (this.tickLabelContainer.childNodes[i].offsetHeight > extraMargin) {\n\t\t\t\t\t\t\t\t\textraMargin = this.tickLabelContainer.childNodes[i].offsetHeight;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (this.options.orientation === 'horizontal') {\n\t\t\t\t\t\t\tthis.sliderElem.style.marginBottom = extraMargin + \"px\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfor (var i = 0; i < this.options.ticks.length; i++) {\n\n\t\t\t\t\t\tvar percentage = this.options.ticks_positions[i] || this._toPercentage(this.options.ticks[i]);\n\n\t\t\t\t\t\tif (this.options.reversed) {\n\t\t\t\t\t\t\tpercentage = 100 - percentage;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.ticks[i].style[this.stylePos] = percentage + \"%\";\n\n\t\t\t\t\t\t/* Set class labels to denote whether ticks are in the selection */\n\t\t\t\t\t\tthis._removeClass(this.ticks[i], 'in-selection');\n\t\t\t\t\t\tif (!this.options.range) {\n\t\t\t\t\t\t\tif (this.options.selection === 'after' && percentage >= positionPercentages[0]) {\n\t\t\t\t\t\t\t\tthis._addClass(this.ticks[i], 'in-selection');\n\t\t\t\t\t\t\t} else if (this.options.selection === 'before' && percentage <= positionPercentages[0]) {\n\t\t\t\t\t\t\t\tthis._addClass(this.ticks[i], 'in-selection');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (percentage >= positionPercentages[0] && percentage <= positionPercentages[1]) {\n\t\t\t\t\t\t\tthis._addClass(this.ticks[i], 'in-selection');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (this.tickLabels[i]) {\n\t\t\t\t\t\t\tthis.tickLabels[i].style[styleSize] = labelSize + \"px\";\n\n\t\t\t\t\t\t\tif (this.options.orientation !== 'vertical' && this.options.ticks_positions[i] !== undefined) {\n\t\t\t\t\t\t\t\tthis.tickLabels[i].style.position = 'absolute';\n\t\t\t\t\t\t\t\tthis.tickLabels[i].style[this.stylePos] = percentage + \"%\";\n\t\t\t\t\t\t\t\tthis.tickLabels[i].style[styleMargin] = -labelSize / 2 + 'px';\n\t\t\t\t\t\t\t} else if (this.options.orientation === 'vertical') {\n\t\t\t\t\t\t\t\tif (this.options.rtl) {\n\t\t\t\t\t\t\t\t\tthis.tickLabels[i].style['marginRight'] = this.sliderElem.offsetWidth + \"px\";\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tthis.tickLabels[i].style['marginLeft'] = this.sliderElem.offsetWidth + \"px\";\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tthis.tickLabelContainer.style[styleMargin] = this.sliderElem.offsetWidth / 2 * -1 + 'px';\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t/* Set class labels to indicate tick labels are in the selection or selected */\n\t\t\t\t\t\t\tthis._removeClass(this.tickLabels[i], 'label-in-selection label-is-selection');\n\t\t\t\t\t\t\tif (!this.options.range) {\n\t\t\t\t\t\t\t\tif (this.options.selection === 'after' && percentage >= positionPercentages[0]) {\n\t\t\t\t\t\t\t\t\tthis._addClass(this.tickLabels[i], 'label-in-selection');\n\t\t\t\t\t\t\t\t} else if (this.options.selection === 'before' && percentage <= positionPercentages[0]) {\n\t\t\t\t\t\t\t\t\tthis._addClass(this.tickLabels[i], 'label-in-selection');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (percentage === positionPercentages[0]) {\n\t\t\t\t\t\t\t\t\tthis._addClass(this.tickLabels[i], 'label-is-selection');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (percentage >= positionPercentages[0] && percentage <= positionPercentages[1]) {\n\t\t\t\t\t\t\t\tthis._addClass(this.tickLabels[i], 'label-in-selection');\n\t\t\t\t\t\t\t\tif (percentage === positionPercentages[0] || positionPercentages[1]) {\n\t\t\t\t\t\t\t\t\tthis._addClass(this.tickLabels[i], 'label-is-selection');\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar formattedTooltipVal;\n\n\t\t\t\tif (this.options.range) {\n\t\t\t\t\tformattedTooltipVal = this.options.formatter(this._state.value);\n\t\t\t\t\tthis._setText(this.tooltipInner, formattedTooltipVal);\n\t\t\t\t\tthis.tooltip.style[this.stylePos] = (positionPercentages[1] + positionPercentages[0]) / 2 + \"%\";\n\n\t\t\t\t\tvar innerTooltipMinText = this.options.formatter(this._state.value[0]);\n\t\t\t\t\tthis._setText(this.tooltipInner_min, innerTooltipMinText);\n\n\t\t\t\t\tvar innerTooltipMaxText = this.options.formatter(this._state.value[1]);\n\t\t\t\t\tthis._setText(this.tooltipInner_max, innerTooltipMaxText);\n\n\t\t\t\t\tthis.tooltip_min.style[this.stylePos] = positionPercentages[0] + \"%\";\n\n\t\t\t\t\tthis.tooltip_max.style[this.stylePos] = positionPercentages[1] + \"%\";\n\t\t\t\t} else {\n\t\t\t\t\tformattedTooltipVal = this.options.formatter(this._state.value[0]);\n\t\t\t\t\tthis._setText(this.tooltipInner, formattedTooltipVal);\n\n\t\t\t\t\tthis.tooltip.style[this.stylePos] = positionPercentages[0] + \"%\";\n\t\t\t\t}\n\n\t\t\t\tif (this.options.orientation === 'vertical') {\n\t\t\t\t\tthis.trackLow.style.top = '0';\n\t\t\t\t\tthis.trackLow.style.height = Math.min(positionPercentages[0], positionPercentages[1]) + '%';\n\n\t\t\t\t\tthis.trackSelection.style.top = Math.min(positionPercentages[0], positionPercentages[1]) + '%';\n\t\t\t\t\tthis.trackSelection.style.height = Math.abs(positionPercentages[0] - positionPercentages[1]) + '%';\n\n\t\t\t\t\tthis.trackHigh.style.bottom = '0';\n\t\t\t\t\tthis.trackHigh.style.height = 100 - Math.min(positionPercentages[0], positionPercentages[1]) - Math.abs(positionPercentages[0] - positionPercentages[1]) + '%';\n\t\t\t\t} else {\n\t\t\t\t\tif (this.stylePos === 'right') {\n\t\t\t\t\t\tthis.trackLow.style.right = '0';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.trackLow.style.left = '0';\n\t\t\t\t\t}\n\t\t\t\t\tthis.trackLow.style.width = Math.min(positionPercentages[0], positionPercentages[1]) + '%';\n\n\t\t\t\t\tif (this.stylePos === 'right') {\n\t\t\t\t\t\tthis.trackSelection.style.right = Math.min(positionPercentages[0], positionPercentages[1]) + '%';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.trackSelection.style.left = Math.min(positionPercentages[0], positionPercentages[1]) + '%';\n\t\t\t\t\t}\n\t\t\t\t\tthis.trackSelection.style.width = Math.abs(positionPercentages[0] - positionPercentages[1]) + '%';\n\n\t\t\t\t\tif (this.stylePos === 'right') {\n\t\t\t\t\t\tthis.trackHigh.style.left = '0';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.trackHigh.style.right = '0';\n\t\t\t\t\t}\n\t\t\t\t\tthis.trackHigh.style.width = 100 - Math.min(positionPercentages[0], positionPercentages[1]) - Math.abs(positionPercentages[0] - positionPercentages[1]) + '%';\n\n\t\t\t\t\tvar offset_min = this.tooltip_min.getBoundingClientRect();\n\t\t\t\t\tvar offset_max = this.tooltip_max.getBoundingClientRect();\n\n\t\t\t\t\tif (this.options.tooltip_position === 'bottom') {\n\t\t\t\t\t\tif (offset_min.right > offset_max.left) {\n\t\t\t\t\t\t\tthis._removeClass(this.tooltip_max, 'bottom');\n\t\t\t\t\t\t\tthis._addClass(this.tooltip_max, 'top');\n\t\t\t\t\t\t\tthis.tooltip_max.style.top = '';\n\t\t\t\t\t\t\tthis.tooltip_max.style.bottom = 22 + 'px';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis._removeClass(this.tooltip_max, 'top');\n\t\t\t\t\t\t\tthis._addClass(this.tooltip_max, 'bottom');\n\t\t\t\t\t\t\tthis.tooltip_max.style.top = this.tooltip_min.style.top;\n\t\t\t\t\t\t\tthis.tooltip_max.style.bottom = '';\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (offset_min.right > offset_max.left) {\n\t\t\t\t\t\t\tthis._removeClass(this.tooltip_max, 'top');\n\t\t\t\t\t\t\tthis._addClass(this.tooltip_max, 'bottom');\n\t\t\t\t\t\t\tthis.tooltip_max.style.top = 18 + 'px';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis._removeClass(this.tooltip_max, 'bottom');\n\t\t\t\t\t\t\tthis._addClass(this.tooltip_max, 'top');\n\t\t\t\t\t\t\tthis.tooltip_max.style.top = this.tooltip_min.style.top;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t_createHighlightRange: function _createHighlightRange(start, end) {\n\t\t\t\tif (this._isHighlightRange(start, end)) {\n\t\t\t\t\tif (start > end) {\n\t\t\t\t\t\treturn { 'start': end, 'size': start - end };\n\t\t\t\t\t}\n\t\t\t\t\treturn { 'start': start, 'size': end - start };\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t},\n\t\t\t_isHighlightRange: function _isHighlightRange(start, end) {\n\t\t\t\tif (0 <= start && start <= 100 && 0 <= end && end <= 100) {\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\t_resize: function _resize(ev) {\n\t\t\t\t/*jshint unused:false*/\n\t\t\t\tthis._state.offset = this._offset(this.sliderElem);\n\t\t\t\tthis._state.size = this.sliderElem[this.sizePos];\n\t\t\t\tthis._layout();\n\t\t\t},\n\t\t\t_removeProperty: function _removeProperty(element, prop) {\n\t\t\t\tif (element.style.removeProperty) {\n\t\t\t\t\telement.style.removeProperty(prop);\n\t\t\t\t} else {\n\t\t\t\t\telement.style.removeAttribute(prop);\n\t\t\t\t}\n\t\t\t},\n\t\t\t_mousedown: function _mousedown(ev) {\n\t\t\t\tif (!this._state.enabled) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (ev.preventDefault) {\n\t\t\t\t\tev.preventDefault();\n\t\t\t\t}\n\n\t\t\t\tthis._state.offset = this._offset(this.sliderElem);\n\t\t\t\tthis._state.size = this.sliderElem[this.sizePos];\n\n\t\t\t\tvar percentage = this._getPercentage(ev);\n\n\t\t\t\tif (this.options.range) {\n\t\t\t\t\tvar diff1 = Math.abs(this._state.percentage[0] - percentage);\n\t\t\t\t\tvar diff2 = Math.abs(this._state.percentage[1] - percentage);\n\t\t\t\t\tthis._state.dragged = diff1 < diff2 ? 0 : 1;\n\t\t\t\t\tthis._adjustPercentageForRangeSliders(percentage);\n\t\t\t\t} else {\n\t\t\t\t\tthis._state.dragged = 0;\n\t\t\t\t}\n\n\t\t\t\tthis._state.percentage[this._state.dragged] = percentage;\n\n\t\t\t\tif (this.touchCapable) {\n\t\t\t\t\tdocument.removeEventListener(\"touchmove\", this.mousemove, false);\n\t\t\t\t\tdocument.removeEventListener(\"touchend\", this.mouseup, false);\n\t\t\t\t}\n\n\t\t\t\tif (this.mousemove) {\n\t\t\t\t\tdocument.removeEventListener(\"mousemove\", this.mousemove, false);\n\t\t\t\t}\n\t\t\t\tif (this.mouseup) {\n\t\t\t\t\tdocument.removeEventListener(\"mouseup\", this.mouseup, false);\n\t\t\t\t}\n\n\t\t\t\tthis.mousemove = this._mousemove.bind(this);\n\t\t\t\tthis.mouseup = this._mouseup.bind(this);\n\n\t\t\t\tif (this.touchCapable) {\n\t\t\t\t\t// Touch: Bind touch events:\n\t\t\t\t\tdocument.addEventListener(\"touchmove\", this.mousemove, false);\n\t\t\t\t\tdocument.addEventListener(\"touchend\", this.mouseup, false);\n\t\t\t\t}\n\t\t\t\t// Bind mouse events:\n\t\t\t\tdocument.addEventListener(\"mousemove\", this.mousemove, false);\n\t\t\t\tdocument.addEventListener(\"mouseup\", this.mouseup, false);\n\n\t\t\t\tthis._state.inDrag = true;\n\t\t\t\tvar newValue = this._calculateValue();\n\n\t\t\t\tthis._trigger('slideStart', newValue);\n\n\t\t\t\tthis.setValue(newValue, false, true);\n\n\t\t\t\tev.returnValue = false;\n\n\t\t\t\tif (this.options.focus) {\n\t\t\t\t\tthis._triggerFocusOnHandle(this._state.dragged);\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\t_touchstart: function _touchstart(ev) {\n\t\t\t\tthis._mousedown(ev);\n\t\t\t},\n\t\t\t_triggerFocusOnHandle: function _triggerFocusOnHandle(handleIdx) {\n\t\t\t\tif (handleIdx === 0) {\n\t\t\t\t\tthis.handle1.focus();\n\t\t\t\t}\n\t\t\t\tif (handleIdx === 1) {\n\t\t\t\t\tthis.handle2.focus();\n\t\t\t\t}\n\t\t\t},\n\t\t\t_keydown: function _keydown(handleIdx, ev) {\n\t\t\t\tif (!this._state.enabled) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tvar dir;\n\t\t\t\tswitch (ev.keyCode) {\n\t\t\t\t\tcase 37: // left\n\t\t\t\t\tcase 40:\n\t\t\t\t\t\t// down\n\t\t\t\t\t\tdir = -1;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 39: // right\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\t// up\n\t\t\t\t\t\tdir = 1;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (!dir) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// use natural arrow keys instead of from min to max\n\t\t\t\tif (this.options.natural_arrow_keys) {\n\t\t\t\t\tvar isHorizontal = this.options.orientation === 'horizontal';\n\t\t\t\t\tvar isVertical = this.options.orientation === 'vertical';\n\t\t\t\t\tvar isRTL = this.options.rtl;\n\t\t\t\t\tvar isReversed = this.options.reversed;\n\n\t\t\t\t\tif (isHorizontal) {\n\t\t\t\t\t\tif (isRTL) {\n\t\t\t\t\t\t\tif (!isReversed) {\n\t\t\t\t\t\t\t\tdir = -dir;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (isReversed) {\n\t\t\t\t\t\t\t\tdir = -dir;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (isVertical) {\n\t\t\t\t\t\tif (!isReversed) {\n\t\t\t\t\t\t\tdir = -dir;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar val;\n\t\t\t\tif (this.ticksAreValid && this.options.lock_to_ticks) {\n\t\t\t\t\tvar index = void 0;\n\t\t\t\t\t// Find tick index that handle 1/2 is currently on\n\t\t\t\t\tindex = this.options.ticks.indexOf(this._state.value[handleIdx]);\n\t\t\t\t\tif (index === -1) {\n\t\t\t\t\t\t// Set default to first tick\n\t\t\t\t\t\tindex = 0;\n\t\t\t\t\t\twindow.console.warn('(lock_to_ticks) _keydown: index should not be -1');\n\t\t\t\t\t}\n\t\t\t\t\tindex += dir;\n\t\t\t\t\tindex = Math.max(0, Math.min(this.options.ticks.length - 1, index));\n\t\t\t\t\tval = this.options.ticks[index];\n\t\t\t\t} else {\n\t\t\t\t\tval = this._state.value[handleIdx] + dir * this.options.step;\n\t\t\t\t}\n\t\t\t\tvar percentage = this._toPercentage(val);\n\t\t\t\tthis._state.keyCtrl = handleIdx;\n\t\t\t\tif (this.options.range) {\n\t\t\t\t\tthis._adjustPercentageForRangeSliders(percentage);\n\t\t\t\t\tvar val1 = !this._state.keyCtrl ? val : this._state.value[0];\n\t\t\t\t\tvar val2 = this._state.keyCtrl ? val : this._state.value[1];\n\t\t\t\t\t// Restrict values within limits\n\t\t\t\t\tval = [Math.max(this.options.min, Math.min(this.options.max, val1)), Math.max(this.options.min, Math.min(this.options.max, val2))];\n\t\t\t\t} else {\n\t\t\t\t\tval = Math.max(this.options.min, Math.min(this.options.max, val));\n\t\t\t\t}\n\n\t\t\t\tthis._trigger('slideStart', val);\n\n\t\t\t\tthis.setValue(val, true, true);\n\n\t\t\t\tthis._trigger('slideStop', val);\n\n\t\t\t\tthis._pauseEvent(ev);\n\t\t\t\tdelete this._state.keyCtrl;\n\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t_pauseEvent: function _pauseEvent(ev) {\n\t\t\t\tif (ev.stopPropagation) {\n\t\t\t\t\tev.stopPropagation();\n\t\t\t\t}\n\t\t\t\tif (ev.preventDefault) {\n\t\t\t\t\tev.preventDefault();\n\t\t\t\t}\n\t\t\t\tev.cancelBubble = true;\n\t\t\t\tev.returnValue = false;\n\t\t\t},\n\t\t\t_mousemove: function _mousemove(ev) {\n\t\t\t\tif (!this._state.enabled) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tvar percentage = this._getPercentage(ev);\n\t\t\t\tthis._adjustPercentageForRangeSliders(percentage);\n\t\t\t\tthis._state.percentage[this._state.dragged] = percentage;\n\n\t\t\t\tvar val = this._calculateValue(true);\n\t\t\t\tthis.setValue(val, true, true);\n\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t_touchmove: function _touchmove(ev) {\n\t\t\t\tif (ev.changedTouches === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Prevent page from scrolling and only drag the slider\n\t\t\t\tif (ev.preventDefault) {\n\t\t\t\t\tev.preventDefault();\n\t\t\t\t}\n\t\t\t},\n\t\t\t_adjustPercentageForRangeSliders: function _adjustPercentageForRangeSliders(percentage) {\n\t\t\t\tif (this.options.range) {\n\t\t\t\t\tvar precision = this._getNumDigitsAfterDecimalPlace(percentage);\n\t\t\t\t\tprecision = precision ? precision - 1 : 0;\n\t\t\t\t\tvar percentageWithAdjustedPrecision = this._applyToFixedAndParseFloat(percentage, precision);\n\t\t\t\t\tif (this._state.dragged === 0 && this._applyToFixedAndParseFloat(this._state.percentage[1], precision) < percentageWithAdjustedPrecision) {\n\t\t\t\t\t\tthis._state.percentage[0] = this._state.percentage[1];\n\t\t\t\t\t\tthis._state.dragged = 1;\n\t\t\t\t\t} else if (this._state.dragged === 1 && this._applyToFixedAndParseFloat(this._state.percentage[0], precision) > percentageWithAdjustedPrecision) {\n\t\t\t\t\t\tthis._state.percentage[1] = this._state.percentage[0];\n\t\t\t\t\t\tthis._state.dragged = 0;\n\t\t\t\t\t} else if (this._state.keyCtrl === 0 && this._toPercentage(this._state.value[1]) < percentage) {\n\t\t\t\t\t\tthis._state.percentage[0] = this._state.percentage[1];\n\t\t\t\t\t\tthis._state.keyCtrl = 1;\n\t\t\t\t\t\tthis.handle2.focus();\n\t\t\t\t\t} else if (this._state.keyCtrl === 1 && this._toPercentage(this._state.value[0]) > percentage) {\n\t\t\t\t\t\tthis._state.percentage[1] = this._state.percentage[0];\n\t\t\t\t\t\tthis._state.keyCtrl = 0;\n\t\t\t\t\t\tthis.handle1.focus();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t_mouseup: function _mouseup(ev) {\n\t\t\t\tif (!this._state.enabled) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tvar percentage = this._getPercentage(ev);\n\t\t\t\tthis._adjustPercentageForRangeSliders(percentage);\n\t\t\t\tthis._state.percentage[this._state.dragged] = percentage;\n\n\t\t\t\tif (this.touchCapable) {\n\t\t\t\t\t// Touch: Unbind touch event handlers:\n\t\t\t\t\tdocument.removeEventListener(\"touchmove\", this.mousemove, false);\n\t\t\t\t\tdocument.removeEventListener(\"touchend\", this.mouseup, false);\n\t\t\t\t}\n\t\t\t\t// Unbind mouse event handlers:\n\t\t\t\tdocument.removeEventListener(\"mousemove\", this.mousemove, false);\n\t\t\t\tdocument.removeEventListener(\"mouseup\", this.mouseup, false);\n\n\t\t\t\tthis._state.inDrag = false;\n\t\t\t\tif (this._state.over === false) {\n\t\t\t\t\tthis._hideTooltip();\n\t\t\t\t}\n\t\t\t\tvar val = this._calculateValue(true);\n\n\t\t\t\tthis.setValue(val, false, true);\n\t\t\t\tthis._trigger('slideStop', val);\n\n\t\t\t\t// No longer need 'dragged' after mouse up\n\t\t\t\tthis._state.dragged = null;\n\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\t_setValues: function _setValues(index, val) {\n\t\t\t\tvar comp = 0 === index ? 0 : 100;\n\t\t\t\tif (this._state.percentage[index] !== comp) {\n\t\t\t\t\tval.data[index] = this._toValue(this._state.percentage[index]);\n\t\t\t\t\tval.data[index] = this._applyPrecision(val.data[index]);\n\t\t\t\t}\n\t\t\t},\n\t\t\t_calculateValue: function _calculateValue(snapToClosestTick) {\n\t\t\t\tvar val = {};\n\t\t\t\tif (this.options.range) {\n\t\t\t\t\tval.data = [this.options.min, this.options.max];\n\t\t\t\t\tthis._setValues(0, val);\n\t\t\t\t\tthis._setValues(1, val);\n\t\t\t\t\tif (snapToClosestTick) {\n\t\t\t\t\t\tval.data[0] = this._snapToClosestTick(val.data[0]);\n\t\t\t\t\t\tval.data[1] = this._snapToClosestTick(val.data[1]);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tval.data = this._toValue(this._state.percentage[0]);\n\t\t\t\t\tval.data = parseFloat(val.data);\n\t\t\t\t\tval.data = this._applyPrecision(val.data);\n\t\t\t\t\tif (snapToClosestTick) {\n\t\t\t\t\t\tval.data = this._snapToClosestTick(val.data);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn val.data;\n\t\t\t},\n\t\t\t_snapToClosestTick: function _snapToClosestTick(val) {\n\t\t\t\tvar min = [val, Infinity];\n\t\t\t\tfor (var i = 0; i < this.options.ticks.length; i++) {\n\t\t\t\t\tvar diff = Math.abs(this.options.ticks[i] - val);\n\t\t\t\t\tif (diff <= min[1]) {\n\t\t\t\t\t\tmin = [this.options.ticks[i], diff];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (min[1] <= this.options.ticks_snap_bounds) {\n\t\t\t\t\treturn min[0];\n\t\t\t\t}\n\t\t\t\treturn val;\n\t\t\t},\n\n\t\t\t_applyPrecision: function _applyPrecision(val) {\n\t\t\t\tvar precision = this.options.precision || this._getNumDigitsAfterDecimalPlace(this.options.step);\n\t\t\t\treturn this._applyToFixedAndParseFloat(val, precision);\n\t\t\t},\n\t\t\t_getNumDigitsAfterDecimalPlace: function _getNumDigitsAfterDecimalPlace(num) {\n\t\t\t\tvar match = ('' + num).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n\t\t\t\tif (!match) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t\treturn Math.max(0, (match[1] ? match[1].length : 0) - (match[2] ? +match[2] : 0));\n\t\t\t},\n\t\t\t_applyToFixedAndParseFloat: function _applyToFixedAndParseFloat(num, toFixedInput) {\n\t\t\t\tvar truncatedNum = num.toFixed(toFixedInput);\n\t\t\t\treturn parseFloat(truncatedNum);\n\t\t\t},\n\t\t\t/*\n   \tCredits to Mike Samuel for the following method!\n   \tSource: http://stackoverflow.com/questions/10454518/javascript-how-to-retrieve-the-number-of-decimals-of-a-string-number\n   */\n\t\t\t_getPercentage: function _getPercentage(ev) {\n\t\t\t\tif (this.touchCapable && (ev.type === 'touchstart' || ev.type === 'touchmove' || ev.type === 'touchend')) {\n\t\t\t\t\tev = ev.changedTouches[0];\n\t\t\t\t}\n\n\t\t\t\tvar eventPosition = ev[this.mousePos];\n\t\t\t\tvar sliderOffset = this._state.offset[this.stylePos];\n\t\t\t\tvar distanceToSlide = eventPosition - sliderOffset;\n\t\t\t\tif (this.stylePos === 'right') {\n\t\t\t\t\tdistanceToSlide = -distanceToSlide;\n\t\t\t\t}\n\t\t\t\t// Calculate what percent of the length the slider handle has slid\n\t\t\t\tvar percentage = distanceToSlide / this._state.size * 100;\n\t\t\t\tpercentage = Math.round(percentage / this._state.percentage[2]) * this._state.percentage[2];\n\t\t\t\tif (this.options.reversed) {\n\t\t\t\t\tpercentage = 100 - percentage;\n\t\t\t\t}\n\n\t\t\t\t// Make sure the percent is within the bounds of the slider.\n\t\t\t\t// 0% corresponds to the 'min' value of the slide\n\t\t\t\t// 100% corresponds to the 'max' value of the slide\n\t\t\t\treturn Math.max(0, Math.min(100, percentage));\n\t\t\t},\n\t\t\t_validateInputValue: function _validateInputValue(val) {\n\t\t\t\tif (!isNaN(+val)) {\n\t\t\t\t\treturn +val;\n\t\t\t\t} else if (Array.isArray(val)) {\n\t\t\t\t\tthis._validateArray(val);\n\t\t\t\t\treturn val;\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(ErrorMsgs.formatInvalidInputErrorMsg(val));\n\t\t\t\t}\n\t\t\t},\n\t\t\t_validateArray: function _validateArray(val) {\n\t\t\t\tfor (var i = 0; i < val.length; i++) {\n\t\t\t\t\tvar input = val[i];\n\t\t\t\t\tif (typeof input !== 'number') {\n\t\t\t\t\t\tthrow new Error(ErrorMsgs.formatInvalidInputErrorMsg(input));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t_setDataVal: function _setDataVal(val) {\n\t\t\t\tthis.element.setAttribute('data-value', val);\n\t\t\t\tthis.element.setAttribute('value', val);\n\t\t\t\tthis.element.value = val;\n\t\t\t},\n\t\t\t_trigger: function _trigger(evt, val) {\n\t\t\t\tval = val || val === 0 ? val : undefined;\n\n\t\t\t\tvar callbackFnArray = this.eventToCallbackMap[evt];\n\t\t\t\tif (callbackFnArray && callbackFnArray.length) {\n\t\t\t\t\tfor (var i = 0; i < callbackFnArray.length; i++) {\n\t\t\t\t\t\tvar callbackFn = callbackFnArray[i];\n\t\t\t\t\t\tcallbackFn(val);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/* If JQuery exists, trigger JQuery events */\n\t\t\t\tif ($) {\n\t\t\t\t\tthis._triggerJQueryEvent(evt, val);\n\t\t\t\t}\n\t\t\t},\n\t\t\t_triggerJQueryEvent: function _triggerJQueryEvent(evt, val) {\n\t\t\t\tvar eventData = {\n\t\t\t\t\ttype: evt,\n\t\t\t\t\tvalue: val\n\t\t\t\t};\n\t\t\t\tthis.$element.trigger(eventData);\n\t\t\t\tthis.$sliderElem.trigger(eventData);\n\t\t\t},\n\t\t\t_unbindJQueryEventHandlers: function _unbindJQueryEventHandlers() {\n\t\t\t\tthis.$element.off();\n\t\t\t\tthis.$sliderElem.off();\n\t\t\t},\n\t\t\t_setText: function _setText(element, text) {\n\t\t\t\tif (typeof element.textContent !== \"undefined\") {\n\t\t\t\t\telement.textContent = text;\n\t\t\t\t} else if (typeof element.innerText !== \"undefined\") {\n\t\t\t\t\telement.innerText = text;\n\t\t\t\t}\n\t\t\t},\n\t\t\t_removeClass: function _removeClass(element, classString) {\n\t\t\t\tvar classes = classString.split(\" \");\n\t\t\t\tvar newClasses = element.className;\n\n\t\t\t\tfor (var i = 0; i < classes.length; i++) {\n\t\t\t\t\tvar classTag = classes[i];\n\t\t\t\t\tvar regex = new RegExp(\"(?:\\\\s|^)\" + classTag + \"(?:\\\\s|$)\");\n\t\t\t\t\tnewClasses = newClasses.replace(regex, \" \");\n\t\t\t\t}\n\n\t\t\t\telement.className = newClasses.trim();\n\t\t\t},\n\t\t\t_addClass: function _addClass(element, classString) {\n\t\t\t\tvar classes = classString.split(\" \");\n\t\t\t\tvar newClasses = element.className;\n\n\t\t\t\tfor (var i = 0; i < classes.length; i++) {\n\t\t\t\t\tvar classTag = classes[i];\n\t\t\t\t\tvar regex = new RegExp(\"(?:\\\\s|^)\" + classTag + \"(?:\\\\s|$)\");\n\t\t\t\t\tvar ifClassExists = regex.test(newClasses);\n\n\t\t\t\t\tif (!ifClassExists) {\n\t\t\t\t\t\tnewClasses += \" \" + classTag;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\telement.className = newClasses.trim();\n\t\t\t},\n\t\t\t_offsetLeft: function _offsetLeft(obj) {\n\t\t\t\treturn obj.getBoundingClientRect().left;\n\t\t\t},\n\t\t\t_offsetRight: function _offsetRight(obj) {\n\t\t\t\treturn obj.getBoundingClientRect().right;\n\t\t\t},\n\t\t\t_offsetTop: function _offsetTop(obj) {\n\t\t\t\tvar offsetTop = obj.offsetTop;\n\t\t\t\twhile ((obj = obj.offsetParent) && !isNaN(obj.offsetTop)) {\n\t\t\t\t\toffsetTop += obj.offsetTop;\n\t\t\t\t\tif (obj.tagName !== 'BODY') {\n\t\t\t\t\t\toffsetTop -= obj.scrollTop;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn offsetTop;\n\t\t\t},\n\t\t\t_offset: function _offset(obj) {\n\t\t\t\treturn {\n\t\t\t\t\tleft: this._offsetLeft(obj),\n\t\t\t\t\tright: this._offsetRight(obj),\n\t\t\t\t\ttop: this._offsetTop(obj)\n\t\t\t\t};\n\t\t\t},\n\t\t\t_css: function _css(elementRef, styleName, value) {\n\t\t\t\tif ($) {\n\t\t\t\t\t$.style(elementRef, styleName, value);\n\t\t\t\t} else {\n\t\t\t\t\tvar style = styleName.replace(/^-ms-/, \"ms-\").replace(/-([\\da-z])/gi, function (all, letter) {\n\t\t\t\t\t\treturn letter.toUpperCase();\n\t\t\t\t\t});\n\t\t\t\t\telementRef.style[style] = value;\n\t\t\t\t}\n\t\t\t},\n\t\t\t_toValue: function _toValue(percentage) {\n\t\t\t\treturn this.options.scale.toValue.apply(this, [percentage]);\n\t\t\t},\n\t\t\t_toPercentage: function _toPercentage(value) {\n\t\t\t\treturn this.options.scale.toPercentage.apply(this, [value]);\n\t\t\t},\n\t\t\t_setTooltipPosition: function _setTooltipPosition() {\n\t\t\t\tvar tooltips = [this.tooltip, this.tooltip_min, this.tooltip_max];\n\t\t\t\tif (this.options.orientation === 'vertical') {\n\t\t\t\t\tvar tooltipPos;\n\t\t\t\t\tif (this.options.tooltip_position) {\n\t\t\t\t\t\ttooltipPos = this.options.tooltip_position;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (this.options.rtl) {\n\t\t\t\t\t\t\ttooltipPos = 'left';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttooltipPos = 'right';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tvar oppositeSide = tooltipPos === 'left' ? 'right' : 'left';\n\t\t\t\t\ttooltips.forEach(function (tooltip) {\n\t\t\t\t\t\tthis._addClass(tooltip, tooltipPos);\n\t\t\t\t\t\ttooltip.style[oppositeSide] = '100%';\n\t\t\t\t\t}.bind(this));\n\t\t\t\t} else if (this.options.tooltip_position === 'bottom') {\n\t\t\t\t\ttooltips.forEach(function (tooltip) {\n\t\t\t\t\t\tthis._addClass(tooltip, 'bottom');\n\t\t\t\t\t\ttooltip.style.top = 22 + 'px';\n\t\t\t\t\t}.bind(this));\n\t\t\t\t} else {\n\t\t\t\t\ttooltips.forEach(function (tooltip) {\n\t\t\t\t\t\tthis._addClass(tooltip, 'top');\n\t\t\t\t\t\ttooltip.style.top = -this.tooltip.outerHeight - 14 + 'px';\n\t\t\t\t\t}.bind(this));\n\t\t\t\t}\n\t\t\t},\n\t\t\t_getClosestTickIndex: function _getClosestTickIndex(val) {\n\t\t\t\tvar difference = Math.abs(val - this.options.ticks[0]);\n\t\t\t\tvar index = 0;\n\t\t\t\tfor (var i = 0; i < this.options.ticks.length; ++i) {\n\t\t\t\t\tvar d = Math.abs(val - this.options.ticks[i]);\n\t\t\t\t\tif (d < difference) {\n\t\t\t\t\t\tdifference = d;\n\t\t\t\t\t\tindex = i;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn index;\n\t\t\t},\n\t\t\t/**\n    * Attempts to find the index in `ticks[]` the slider values are set at.\n    * The indexes can be -1 to indicate the slider value is not set at a value in `ticks[]`.\n    */\n\t\t\t_setTickIndex: function _setTickIndex() {\n\t\t\t\tif (this.ticksAreValid) {\n\t\t\t\t\tthis._state.tickIndex = [this.options.ticks.indexOf(this._state.value[0]), this.options.ticks.indexOf(this._state.value[1])];\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/*********************************\n  \t\tAttach to global namespace\n  \t*********************************/\n\t\tif ($ && $.fn) {\n\t\t\tif (!$.fn.slider) {\n\t\t\t\t$.bridget(NAMESPACE_MAIN, Slider);\n\t\t\t\tautoRegisterNamespace = NAMESPACE_MAIN;\n\t\t\t} else {\n\t\t\t\tif (windowIsDefined) {\n\t\t\t\t\twindow.console.warn(\"bootstrap-slider.js - WARNING: $.fn.slider namespace is already bound. Use the $.fn.bootstrapSlider namespace instead.\");\n\t\t\t\t}\n\t\t\t\tautoRegisterNamespace = NAMESPACE_ALTERNATE;\n\t\t\t}\n\t\t\t$.bridget(NAMESPACE_ALTERNATE, Slider);\n\n\t\t\t// Auto-Register data-provide=\"slider\" Elements\n\t\t\t$(function () {\n\t\t\t\t$(\"input[data-provide=slider]\")[autoRegisterNamespace]();\n\t\t\t});\n\t\t}\n\t})($);\n\n\treturn Slider;\n});\n"],"sourceRoot":""}