{"version":3,"file":"js/1986-8db2d434cec78d41f01b.js","mappings":"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","sources":["webpack://mobicheckin-server/./node_modules/bootstrap-slider/dist/bootstrap-slider.js","webpack://mobicheckin-server/./node_modules/lodash/_baseRange.js","webpack://mobicheckin-server/./node_modules/lodash/_baseTrim.js","webpack://mobicheckin-server/./node_modules/lodash/_createRange.js","webpack://mobicheckin-server/./node_modules/lodash/_trimmedEndIndex.js","webpack://mobicheckin-server/./node_modules/lodash/range.js","webpack://mobicheckin-server/./node_modules/lodash/toFinite.js","webpack://mobicheckin-server/./node_modules/lodash/toNumber.js","webpack://mobicheckin-server/./node_modules/lodash/uniq.js","webpack://mobicheckin-server/./node_modules/react-bootstrap-slider/dist/react-bootstrap-slider.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 element */\n\t\t\t\tparent.insertBefore(this.sliderElem, this.element);\n\n\t\t\t\t/* Hide original 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 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","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\", \"react\", \"prop-types\", \"bootstrap-slider\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"react\"), require(\"prop-types\"), require(\"bootstrap-slider\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.react, global.propTypes, global.bootstrapSlider);\n global.reactBootstrapSlider = mod.exports;\n }\n})(typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : this, function (_exports, _react, _propTypes, _bootstrapSlider) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = _exports.ReactBootstrapSlider = void 0;\n _react = _interopRequireDefault(_react);\n _propTypes = _interopRequireDefault(_propTypes);\n _bootstrapSlider = _interopRequireDefault(_bootstrapSlider);\n\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\n function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\n function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\n function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\n function _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\n function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n var ReactBootstrapSlider =\n /*#__PURE__*/\n function (_React$Component) {\n _inherits(ReactBootstrapSlider, _React$Component);\n\n function ReactBootstrapSlider() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, ReactBootstrapSlider);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ReactBootstrapSlider)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"checkAndDoDisabled\", function () {\n var sliderEnable = _this.props.disabled !== \"disabled\";\n\n var currentlyEnabled = _this.mySlider.isEnabled();\n\n if (sliderEnable) {\n if (!currentlyEnabled) {\n _this.mySlider.enable();\n }\n } else {\n if (currentlyEnabled) {\n _this.mySlider.disable();\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateSliderValues\", function () {\n if (typeof _this.props.min !== \"undefined\" && (typeof _this.mySlider.min !== \"undefined\" || typeof _this.mySlider.options.min !== \"undefined\")) {\n _this.mySlider.setAttribute(\"min\", _this.props.min);\n }\n\n if (typeof _this.props.max !== \"undefined\" && (typeof _this.mySlider.max !== \"undefined\" || typeof _this.mySlider.options.max !== \"undefined\")) {\n _this.mySlider.setAttribute(\"max\", _this.props.max);\n }\n\n if (typeof _this.props.step !== \"undefined\" && (typeof _this.mySlider.step !== \"undefined\" || typeof _this.mySlider.options.step !== \"undefined\")) {\n _this.mySlider.setAttribute(\"step\", _this.props.step);\n }\n\n _this.mySlider.setValue(_this.props.value);\n\n _this.checkAndDoDisabled();\n });\n\n return _this;\n }\n\n _createClass(ReactBootstrapSlider, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var that = this;\n\n var sliderAttributes = _objectSpread({}, this.props, {\n tooltip: this.props.tooltip || \"show\"\n }); // console.log(\"sliderAttributes = \" + JSON.stringify(sliderAttributes, null, 4));\n\n\n this.mySlider = new _bootstrapSlider.default(this.node, sliderAttributes); // this.updateSliderValues();\n\n if (this.props.change || this.props.handleChange) {\n var changeEvent = this.props.change || this.props.handleChange;\n this.mySlider.on(\"change\", function (e) {\n var fakeEvent = {\n target: {\n value: e.newValue\n }\n };\n changeEvent(fakeEvent);\n });\n }\n\n if (this.props.slideStop) {\n this.mySlider.on(\"slideStop\", function (e) {\n var fakeEvent = {\n target: {\n value: e\n }\n };\n that.props.slideStop(fakeEvent);\n });\n }\n\n this.checkAndDoDisabled();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateSliderValues();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mySlider.destroy();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n // The slider\"s an input. That\"s all we need. We\"ll do the rest in\n // the componentDidMount() method.\n return _react.default.createElement(\"div\", {\n ref: function ref(node) {\n return _this2.node = node;\n }\n });\n }\n }]);\n\n return ReactBootstrapSlider;\n }(_react.default.Component);\n\n _exports.ReactBootstrapSlider = ReactBootstrapSlider;\n ReactBootstrapSlider.propTypes = {\n min: _propTypes.default.number,\n max: _propTypes.default.number,\n step: _propTypes.default.number,\n value: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.arrayOf(_propTypes.default.number.isRequired).isRequired]).isRequired,\n disabled: _propTypes.default.string,\n tooltip: _propTypes.default.string,\n change: _propTypes.default.func,\n handleChange: _propTypes.default.func,\n slideStop: _propTypes.default.func,\n labelledby: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.arrayOf(_propTypes.default.string)])\n };\n var _default = ReactBootstrapSlider;\n _exports.default = _default;\n});\n"],"names":["_typeof","Symbol","iterator","obj","constructor","prototype","windowIsDefined","window","$","Slider","NAMESPACE_MAIN","NAMESPACE_ALTERNATE","console","log","warn","slice","Array","noop","defineBridget","logError","message","error","bridget","namespace","PluginClass","addOptionMethod","bridge","option","opts","isPlainObject","this","options","extend","fn","args","call","arguments","i","len","length","elem","instance","data","isFunction","charAt","returnValue","apply","undefined","objects","map","_init","autoRegisterNamespace","ErrorMsgs","formatInvalidInputErrorMsg","input","callingContextNotSliderInstance","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","nativeCeil","ceil","nativeMax","module","exports","fromRight","result","trimmedEndIndex","reTrimStart","string","baseRange","isIterateeCall","toFinite","reWhitespace","createRange","toNumber","INFINITY","baseTrim","isObject","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","other","valueOf","isBinary","baseUniq","array","globalThis","_exports","_react","_propTypes","_bootstrapSlider","_interopRequireDefault","__esModule","default","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","target","source","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_classCallCheck","Constructor","TypeError","_defineProperties","props","descriptor","configurable","writable","_createClass","protoProps","staticProps","_possibleConstructorReturn","_assertThisInitialized","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","ReferenceError","_inherits","subClass","superClass","create","_setPrototypeOf","p","ReactBootstrapSlider","_React$Component","_getPrototypeOf2","_this","_len","_key","concat","sliderEnable","disabled","currentlyEnabled","mySlider","checkAndDoDisabled","that","sliderAttributes","node","change","handleChange","changeEvent","e","fakeEvent","slideStop","updateSliderValues","_this2","ref","Component","propTypes","number","oneOfType","arrayOf","isRequired","func","_default"],"sourceRoot":""}