{"version":3,"file":"kendo.slider.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendoslider","js","this","$","undefined$1","kendo","window","Widget","ui","Draggable","outerWidth","_outerWidth","outerHeight","_outerHeight","extend","format","parse","parseFloat","isArray","Array","math","Math","support","pointers","msPointers","CHANGE","SLIDE","NS","MOUSE_DOWN","TRACK_MOUSE_DOWN","MOUSE_UP","TRACK_MOUSE_UP","MOVE_SELECTION","KEY_DOWN","CLICK","MOUSE_OVER","FOCUS","BLUR","DRAG_HANDLE","TRACK_SELECTOR","TICK_SELECTOR","STATE_SELECTED","STATE_FOCUSED","STATE_DISABLED","DISABLED","TABINDEX","getTouches","ARIA_VALUETEXT","ARIA_VALUENOW","SliderBase","init","element","options","that","fn","call","_isHorizontal","orientation","_isRtl","isRtl","_position","_sizeFn","_outerSize","tooltip","enabled","smallStep","Error","_createHtml","_trackDiv","wrapper","find","_maxSelection","_sliderItemsInit","_reset","_tabindex","rtlDirectionSign","_keyMap","step","setValue","max","min","largeStep","_ariaLabel","notify","events","tickPlacement","_distance","round","_resize","remove","_refresh","enable","sizeBetweenTicks","pixelWidths","_calculateItemsWidth","floor","removeFraction","parent","before","distance","i","result","count","createSliderItems","_setItemsTitle","_calculateSteps","_setItemsLargeTick","first","addClass","last","getSize","dimensions","items","titleNumber","length","attr","item","makeArray","reverse","valueWithoutFraction","_values","html","css","itemsCount","itemWidth","trackDivSize","preciseItemsCount","pixelStep","_roundWidths","pixelWidthsArray","balance","_addAdditionalSize","additionalSize","parseInt","lastItem","val","selection","ceil","splice","pop","_pixelSteps","_getValueFromPosition","mousePosition","draggableArea","position","halfStep","startPoint","abs","_getFormattedValue","drag","tooltipTemplate","selectionStart","selectionEnd","type","template","value","_getDraggableArea","offset","getOffset","left","top","endPoint","inputs","eq","prop","formatValue","wrap","isHorizontal","orientationCssClass","style","cssClasses","tickPlacementCssClass","createWrapper","hide","parents","showButtons","after","createButton","elementValue","minElementValue","maxElementValue","dragHandleCount","is","firstDragHandleTitle","leftDragHandleTitle","dragHandleTitle","rightDragHandleTitle","createTrack","_focus","e","target","_drag","_firstHandleDrag","_activeHandle","_lastHandleDrag","_activeHandleDrag","_updateTooltip","_focusWithMouse","idx","index","setTimeout","focus","_setTooltipTimeout","_blur","removeClass","_removeTooltip","_tooltipTimeout","_clearTooltipTimeout","clearTimeout","tooltipDiv","stop","formId","form","closest","_form","on","_formResetHandler","bind","setOptions","destroy","off","buttonIconName","icon","iconClass","stepValue","replace","cultures","current","numberFormat","precision","power","number","toString","split","calculatePrecision","pow","parseAttr","name","getAttribute","defined","Slider","dragHandle","_selection","Selection","Drag","_refreshAriaAttr","increaseButtonTitle","decreaseButtonTitle","clickHandler","move","disable","touch","location","pageX","pageY","hasClass","_update","dragstart","preventDefault","end","document","documentElement","one","_end","sign","newVal","_nextValueByIndex","_valueIndex","_setValueInRange","mouseDownHandler","which","timeout","timer","setInterval","_clearTimer","currentTarget","_keydown","change","trigger","isNaN","formattedValue","_tooltipDiv","text","clearInterval","keyCode","draggable","moveSelection","selectionValue","sender","owner","_dragstart","dragend","dragcancel","click","prototype","_activeDragHandle","userEvents","cancel","_setZIndex","oldVal","_createTooltip","calloutCssClass","wnd","appendTo","body","tooltipInnerDiv","_scrollOffset","scrollTop","scrollLeft","moveTooltip","slideParams","x","y","constrainValue","values","_disposeAll","noAnimation","fadeOut","dragHandles","sdhOffset","diff","anchorSize","viewport","callout","width","height","_flip","_fit","size","viewPortEnd","output","maxOverflow","plugin","RangeSlider","firstInput","secondInput","console","warn","from","to","handle","dragSelectionStart","dragSelectionEnd","activeHandleDrag","selectionStartValue","selectionEndValue","_value","start","each","selectionStartIndex","selectionEndIndex","selectionPosition","selectionDiv","makeSelection","jQuery"],"sources":["kendo.slider.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.draganddrop.js'), require('kendo.icons.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.draganddrop', 'kendo.icons'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendoslider = global.kendoslider || {}, global.kendoslider.js = factory()));\n})(this, (function () {\n var __meta__ = {\n id: \"slider\",\n name: \"Slider\",\n category: \"web\",\n description: \"The Slider widget provides a rich input for selecting values or ranges of values.\",\n depends: [ \"draganddrop\", \"icons\" ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n Widget = kendo.ui.Widget,\n Draggable = kendo.ui.Draggable,\n outerWidth = kendo._outerWidth,\n outerHeight = kendo._outerHeight,\n extend = $.extend,\n format = kendo.format,\n parse = kendo.parseFloat,\n isArray = Array.isArray,\n math = Math,\n support = kendo.support,\n pointers = support.pointers,\n msPointers = support.msPointers,\n CHANGE = \"change\",\n SLIDE = \"slide\",\n NS = \".slider\",\n MOUSE_DOWN = \"touchstart\" + NS + \" mousedown\" + NS,\n TRACK_MOUSE_DOWN = pointers ? \"pointerdown\" + NS : (msPointers ? \"MSPointerDown\" + NS : MOUSE_DOWN),\n MOUSE_UP = \"touchend\" + NS + \" mouseup\" + NS,\n TRACK_MOUSE_UP = pointers ? \"pointerup\" : (msPointers ? \"MSPointerUp\" + NS : MOUSE_UP),\n MOVE_SELECTION = \"moveSelection\",\n KEY_DOWN = \"keydown\" + NS,\n CLICK = \"click\" + NS,\n MOUSE_OVER = \"mouseover\" + NS,\n FOCUS = \"focus\" + NS,\n BLUR = \"blur\" + NS,\n DRAG_HANDLE = \".k-draghandle\",\n TRACK_SELECTOR = \".k-slider-track\",\n TICK_SELECTOR = \".k-tick\",\n STATE_SELECTED = \"k-selected\",\n STATE_FOCUSED = \"k-focus\",\n STATE_DISABLED = \"k-disabled\",\n DISABLED = \"disabled\",\n UNDEFINED = \"undefined\",\n TABINDEX = \"tabindex\",\n getTouches = kendo.getTouches,\n\n ARIA_VALUETEXT = \"aria-valuetext\",\n ARIA_VALUENOW = \"aria-valuenow\";\n\n var SliderBase = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n Widget.fn.init.call(that, element, options);\n\n options = that.options;\n that._isHorizontal = options.orientation == \"horizontal\";\n that._isRtl = that._isHorizontal && kendo.support.isRtl(element);\n that._position = that._isRtl ? \"right\" : that._isHorizontal ? \"left\" : \"bottom\";\n that._sizeFn = that._isHorizontal ? \"width\" : \"height\";\n that._outerSize = that._isHorizontal ? outerWidth : outerHeight;\n\n options.tooltip.format = options.tooltip.enabled ? options.tooltip.format || \"{0}\" : \"{0}\";\n\n if (options.smallStep <= 0) {\n throw new Error('Kendo UI Slider smallStep must be a positive number.');\n }\n\n that._createHtml();\n that._trackDiv = that.wrapper.find(TRACK_SELECTOR);\n\n that._maxSelection = that._trackDiv[that._sizeFn]();\n\n that._sliderItemsInit();\n\n that._reset();\n\n that._tabindex(that.wrapper.find(DRAG_HANDLE));\n that[options.enabled ? \"enable\" : \"disable\"]();\n\n var rtlDirectionSign = kendo.support.isRtl(that.wrapper) ? -1 : 1;\n\n that._keyMap = {\n 37: step(-1 * rtlDirectionSign * options.smallStep), // left arrow\n 40: step(-options.smallStep), // down arrow\n 39: step(+1 * rtlDirectionSign * options.smallStep), // right arrow\n 38: step(+options.smallStep), // up arrow\n 35: setValue(options.max), // end\n 36: setValue(options.min), // home\n 33: step(+options.largeStep), // page up\n 34: step(-options.largeStep) // page down\n };\n\n that._ariaLabel(that.wrapper.find(DRAG_HANDLE));\n\n kendo.notify(that);\n },\n\n events: [\n CHANGE,\n SLIDE\n ],\n\n options: {\n enabled: true,\n min: 0,\n max: 10,\n smallStep: 1,\n largeStep: 5,\n orientation: \"horizontal\",\n tickPlacement: \"both\",\n tooltip: { enabled: true, format: \"{0}\" }\n },\n\n _distance: function() {\n return round(this.options.max - this.options.min);\n },\n\n _resize: function() {\n this.wrapper.find(\".k-slider-items\").remove();\n\n this._maxSelection = this._trackDiv[this._sizeFn]();\n this._sliderItemsInit();\n this._refresh();\n\n if (this.options.enabled) {\n this.enable(true);\n }\n },\n\n _sliderItemsInit: function() {\n var that = this,\n options = that.options;\n\n // [Backwards compatibilty]: maxSelection is reduced with 2 to compensate new styling and preserve automatic calculation to not show ticks.\n var sizeBetweenTicks = (that._maxSelection - 2) / ((options.max - options.min) / options.smallStep);\n\n var pixelWidths = that._calculateItemsWidth(math.floor(removeFraction(that._distance()) / removeFraction(options.smallStep)));\n\n if (options.tickPlacement != \"none\" && sizeBetweenTicks >= 2) {\n $(this.element).parent().find(\".k-slider-items\").remove();\n that._trackDiv.before(createSliderItems(options, that._distance()));\n that._setItemsTitle();\n }\n\n that._calculateSteps(pixelWidths);\n\n if (options.tickPlacement != \"none\" && sizeBetweenTicks >= 2 &&\n options.largeStep >= options.smallStep) {\n that._setItemsLargeTick();\n that.wrapper.find(TICK_SELECTOR).first().addClass(\"k-first\");\n that.wrapper.find(TICK_SELECTOR).last().addClass(\"k-last\");\n }\n },\n\n getSize: function() {\n return kendo.dimensions(this.wrapper);\n },\n\n _setItemsTitle: function() {\n var that = this,\n options = that.options,\n items = that.wrapper.find(TICK_SELECTOR),\n titleNumber = options.min,\n count = items.length;\n\n for (var i = 0; i <= count; i += 1) {\n $(items[i]).attr(\"title\", format(options.tooltip.format, round(titleNumber)));\n titleNumber += options.smallStep;\n }\n },\n\n _setItemsLargeTick: function() {\n var that = this,\n options = that.options,\n items = that.wrapper.find(TICK_SELECTOR),\n i = 0, item, value;\n\n if (removeFraction(options.largeStep) % removeFraction(options.smallStep) === 0 || that._distance() / options.largeStep >= 3) {\n if (!that._isHorizontal && !that._isRtl) {\n items = $.makeArray(items).reverse();\n }\n\n for (i = 0; i < items.length; i++) {\n item = $(items[i]);\n value = that._values[i];\n var valueWithoutFraction = round(removeFraction(value - this.options.min));\n if (valueWithoutFraction % removeFraction(options.smallStep) === 0 && valueWithoutFraction % removeFraction(options.largeStep) === 0) {\n item.addClass(\"k-tick-large\")\n .html(\"\" + item.attr(\"title\") + \"\");\n\n if (i !== 0 && i !== items.length - 1) {\n item.css(\"line-height\", item[that._sizeFn]() + \"px\");\n }\n }\n }\n }\n },\n\n _calculateItemsWidth: function(itemsCount) {\n var that = this,\n options = that.options,\n trackDivSize = parseFloat(that._trackDiv.css(that._sizeFn)) + 1,\n distance = that._distance(),\n preciseItemsCount = removeFraction(distance) / removeFraction(options.smallStep),\n pixelStep = trackDivSize / removeFraction(distance),\n itemWidth,\n pixelWidths,\n i;\n\n if (preciseItemsCount - itemsCount > 0) {\n trackDivSize -= ((removeFraction(distance) % removeFraction(options.smallStep)) * pixelStep);\n }\n\n itemWidth = trackDivSize / itemsCount;\n pixelWidths = [];\n\n for (i = 0; i < itemsCount - 1; i++) {\n pixelWidths[i] = itemWidth;\n }\n\n pixelWidths[itemsCount - 1] = pixelWidths[itemsCount] = itemWidth / 2;\n return that._roundWidths(pixelWidths);\n },\n\n _roundWidths: function(pixelWidthsArray) {\n var balance = 0,\n count = pixelWidthsArray.length,\n i;\n\n for (i = 0; i < count; i++) {\n balance += (pixelWidthsArray[i] - math.floor(pixelWidthsArray[i]));\n pixelWidthsArray[i] = math.floor(pixelWidthsArray[i]);\n }\n\n balance = math.round(balance);\n\n return this._addAdditionalSize(balance, pixelWidthsArray);\n },\n\n _addAdditionalSize: function(additionalSize, pixelWidthsArray) {\n if (additionalSize === 0) {\n return pixelWidthsArray;\n }\n\n //set step size\n var step = parseFloat(pixelWidthsArray.length - 1) / parseFloat(additionalSize == 1 ? additionalSize : additionalSize - 1),\n i;\n\n for (i = 0; i < additionalSize; i++) {\n pixelWidthsArray[parseInt(math.round(step * i), 10)] += 1;\n }\n\n return pixelWidthsArray;\n },\n\n _calculateSteps: function(pixelWidths) {\n var that = this,\n options = that.options,\n val = options.min,\n selection = 0,\n distance = that._distance(),\n itemsCount = math.ceil(removeFraction(distance) / removeFraction(options.smallStep)),\n i = 1,\n lastItem;\n\n itemsCount += (removeFraction(distance) / removeFraction(options.smallStep)) % 1 === 0 ? 1 : 0;\n pixelWidths.splice(0, 0, pixelWidths[itemsCount - 2] * 2);\n pixelWidths.splice(itemsCount - 1, 1, pixelWidths.pop() * 2);\n\n that._pixelSteps = [selection];\n that._values = [val];\n\n if (itemsCount === 0) {\n return;\n }\n\n while (i < itemsCount) {\n selection += (pixelWidths[i - 1] + pixelWidths[i]) / 2;\n that._pixelSteps[i] = selection;\n val += options.smallStep;\n that._values[i] = round(val);\n\n i++;\n }\n\n lastItem = (removeFraction(distance) % removeFraction(options.smallStep)) === 0 ? itemsCount - 1 : itemsCount;\n\n that._pixelSteps[lastItem] = that._maxSelection;\n that._values[lastItem] = options.max;\n },\n\n _getValueFromPosition: function(mousePosition, draggableArea) {\n var that = this,\n options = that.options,\n step = math.max(options.smallStep * (that._maxSelection / that._distance()), 0),\n position = 0,\n halfStep = (step / 2),\n i;\n\n if (that._isHorizontal) {\n position = mousePosition - draggableArea.startPoint;\n if (that._isRtl) {\n position = that._maxSelection - position;\n }\n } else {\n position = draggableArea.startPoint - mousePosition;\n }\n\n if (that._maxSelection - ((parseInt(that._maxSelection % step, 10) - 3) / 2) < position) {\n return options.max;\n }\n\n for (i = 0; i < that._pixelSteps.length; i++) {\n if (math.abs(that._pixelSteps[i] - position) - 1 <= halfStep) {\n return round(that._values[i]);\n }\n }\n },\n\n _getFormattedValue: function(val, drag) {\n var that = this,\n html = \"\",\n tooltip = that.options.tooltip,\n tooltipTemplate,\n selectionStart,\n selectionEnd;\n\n if (isArray(val)) {\n selectionStart = val[0];\n selectionEnd = val[1];\n } else if (drag && drag.type) {\n selectionStart = drag.selectionStart;\n selectionEnd = drag.selectionEnd;\n }\n\n if (drag) {\n tooltipTemplate = drag.tooltipTemplate;\n }\n\n if (!tooltipTemplate && tooltip.template) {\n tooltipTemplate = kendo.template(tooltip.template);\n }\n\n if (isArray(val) || (drag && drag.type)) {\n\n if (tooltipTemplate) {\n html = tooltipTemplate({\n selectionStart: selectionStart,\n selectionEnd: selectionEnd\n });\n } else {\n selectionStart = format(tooltip.format, selectionStart);\n selectionEnd = format(tooltip.format, selectionEnd);\n html = selectionStart + \" - \" + selectionEnd;\n }\n } else {\n if (drag) {\n drag.val = val;\n }\n\n if (tooltipTemplate) {\n html = tooltipTemplate({\n value: val\n });\n } else {\n html = format(tooltip.format, val);\n }\n }\n return html;\n },\n\n _getDraggableArea: function() {\n var that = this,\n offset = kendo.getOffset(that._trackDiv);\n\n return {\n startPoint: that._isHorizontal ? offset.left : offset.top + that._maxSelection,\n endPoint: that._isHorizontal ? offset.left + that._maxSelection : offset.top\n };\n },\n\n _createHtml: function() {\n var that = this,\n element = that.element,\n options = that.options,\n inputs = element.find(\"input\");\n\n if (inputs.length == 2) {\n inputs.eq(0).prop(\"value\", formatValue(options.selectionStart));\n inputs.eq(1).prop(\"value\", formatValue(options.selectionEnd));\n } else {\n element.prop(\"value\", formatValue(options.value));\n }\n\n that.wrapper = element.wrap(createWrapper(options, element, that._isHorizontal)).hide().parents(\".k-slider\");\n\n if (options.showButtons) {\n that.wrapper.find(\".k-slider-track-wrap\")\n .after(createButton(options, \"increase\", that._isHorizontal, that._isRtl))\n .before(createButton(options, \"decrease\", that._isHorizontal, that._isRtl));\n }\n\n element.before(createTrack(options, element, that._isHorizontal));\n },\n\n _focus: function(e) {\n var that = this,\n target = e.target,\n val = that.value(),\n drag = that._drag;\n\n if (!drag) {\n if (target == that.wrapper.find(DRAG_HANDLE).eq(0)[0]) {\n drag = that._firstHandleDrag;\n that._activeHandle = 0;\n } else {\n drag = that._lastHandleDrag;\n that._activeHandle = 1;\n }\n val = val[that._activeHandle];\n }\n\n $(target).addClass(STATE_FOCUSED + \" \" + STATE_SELECTED);\n\n if (drag) {\n that._activeHandleDrag = drag;\n\n drag.selectionStart = that.options.selectionStart;\n drag.selectionEnd = that.options.selectionEnd;\n\n drag._updateTooltip(val);\n }\n },\n\n _focusWithMouse: function(target) {\n target = $(target);\n\n var that = this,\n idx = target.is(DRAG_HANDLE) ? target.index() : 0;\n\n window.setTimeout(function() {\n that.wrapper.find(DRAG_HANDLE)[idx == 2 ? 1 : 0].focus();\n }, 1);\n\n that._setTooltipTimeout();\n },\n\n _blur: function(e) {\n var that = this,\n drag = that._activeHandleDrag;\n\n $(e.target).removeClass(STATE_FOCUSED + \" \" + STATE_SELECTED);\n\n if (drag) {\n drag._removeTooltip();\n delete that._activeHandleDrag;\n delete that._activeHandle;\n }\n },\n\n _setTooltipTimeout: function() {\n var that = this;\n that._tooltipTimeout = window.setTimeout(function() {\n var drag = that._drag || that._activeHandleDrag;\n if (drag) {\n drag._removeTooltip();\n }\n }, 300);\n },\n\n _clearTooltipTimeout: function() {\n var that = this;\n window.clearTimeout(this._tooltipTimeout);\n var drag = that._drag || that._activeHandleDrag;\n if (drag && drag.tooltipDiv) {\n drag.tooltipDiv.stop(true, false).css(\"opacity\", 1);\n }\n },\n\n _reset: function() {\n var that = this,\n element = that.element,\n formId = element.attr(\"form\"),\n form = formId ? $(\"#\" + formId) : element.closest(\"form\");\n\n if (form[0]) {\n that._form = form.on(\"reset\", that._formResetHandler.bind(that));\n }\n },\n\n min: function(value) {\n if (!value) {\n return this.options.min;\n }\n this.setOptions({ \"min\": value });\n },\n\n max: function(value) {\n if (!value) {\n return this.options.max;\n }\n this.setOptions({ \"max\": value });\n },\n\n setOptions: function(options) {\n Widget.fn.setOptions.call(this, options);\n this._sliderItemsInit();\n this._refresh();\n },\n\n destroy: function() {\n if (this._form) {\n this._form.off(\"reset\", this._formResetHandler);\n }\n Widget.fn.destroy.call(this);\n }\n });\n\n function createWrapper(options, element, isHorizontal) {\n var orientationCssClass = isHorizontal ? \" k-slider-horizontal\" : \" k-slider-vertical\",\n style = options.style ? options.style : element.attr(\"style\"),\n cssClasses = element.attr(\"class\") ? (\" \" + element.attr(\"class\")) : \"\",\n tickPlacementCssClass = \"\";\n\n if (options.tickPlacement == \"bottomRight\") {\n tickPlacementCssClass = \" k-slider-bottomright\";\n } else if (options.tickPlacement == \"topLeft\") {\n tickPlacementCssClass = \" k-slider-topleft\";\n }\n\n style = style ? \" style='\" + style + \"'\" : \"\";\n\n return \"
\";\n }\n\n function createButton(options, type, isHorizontal, isRtl) {\n var buttonIconName = \"\";\n\n if (isHorizontal) {\n if (type === \"increase\") {\n buttonIconName = isRtl ? \"caret-alt-left\" : \"caret-alt-right\";\n } else {\n buttonIconName = isRtl ? \"caret-alt-right\" : \"caret-alt-left\";\n }\n } else {\n if (type == \"increase\") {\n buttonIconName = \"caret-alt-up\";\n } else {\n buttonIconName = \"caret-alt-down\";\n }\n }\n\n return \"\";\n }\n\n function createSliderItems(options, distance) {\n var result = \" \";\n\n return result;\n }\n\n function createTrack(options, element, isHorizontal) {\n var dragHandleCount = element.is(\"input\") ? 1 : 2,\n firstDragHandleTitle = dragHandleCount == 2 ? options.leftDragHandleTitle : options.dragHandleTitle,\n value = options.value,\n min = options.selectionStart,\n max = options.selectionEnd,\n elementValue, minElementValue, maxElementValue;\n\n if (dragHandleCount === 1) {\n elementValue = element.val();\n\n if (elementValue !== null && elementValue !== undefined$1 && elementValue !== 'null') {\n if (value === null || value === undefined$1) {\n value = elementValue;\n }\n }\n } else {\n minElementValue = element.find(\"input\").eq(0).val();\n maxElementValue = element.find(\"input\").eq(1).val();\n\n if (minElementValue !== null && minElementValue !== undefined$1 && minElementValue !== 'null') {\n if (min === null || min === undefined$1) {\n min = minElementValue;\n }\n }\n\n if (maxElementValue !== null && maxElementValue !== undefined$1 && maxElementValue !== 'null') {\n if (max === null || max === undefined$1) {\n max = maxElementValue;\n }\n }\n }\n\n var result = \" \";\n\n return result;\n }\n\n function step(stepValue) {\n return function(value) {\n return value + stepValue;\n };\n }\n\n function setValue(value) {\n return function() {\n return value;\n };\n }\n\n function formatValue(value) {\n return (value + \"\").replace(\".\", kendo.cultures.current.numberFormat[\".\"]);\n }\n\n function calculatePrecision(value) {\n var number = value.toString();\n var precision = 0;\n\n number = number.split(\".\");\n\n if (number[1]) {\n precision = number[1].length;\n }\n\n precision = precision > 10 ? 10 : precision;\n return precision;\n }\n\n function round(value) {\n var precision, power;\n\n value = parseFloat(value, 10);\n precision = calculatePrecision(value);\n power = math.pow(10, precision || 0);\n\n return math.round(value * power) / power;\n }\n\n function parseAttr(element, name) {\n var value = parse(element.getAttribute(name));\n if (value === null) {\n value = undefined$1;\n }\n return value;\n }\n\n function defined(value) {\n return typeof value !== UNDEFINED;\n }\n\n function removeFraction(value) {\n return value * 10000;\n }\n\n var Slider = SliderBase.extend({\n init: function(element, options) {\n var that = this,\n dragHandle;\n\n element.type = \"text\";\n options = extend({}, {\n value: parseAttr(element, \"value\"),\n min: parseAttr(element, \"min\"),\n max: parseAttr(element, \"max\"),\n smallStep: parseAttr(element, \"step\")\n }, options);\n\n element = $(element);\n\n if (options && options.enabled === undefined$1) {\n options.enabled = !element.is(\"[disabled]\");\n }\n\n SliderBase.fn.init.call(that, element, options);\n options = that.options;\n if (!defined(options.value) || options.value === null) {\n options.value = options.min;\n element.prop(\"value\", formatValue(options.min));\n }\n options.value = math.max(math.min(options.value, options.max), options.min);\n\n dragHandle = that.wrapper.find(DRAG_HANDLE);\n\n that._selection = new Slider.Selection(dragHandle, that, options);\n that._drag = new Slider.Drag(dragHandle, \"\", that, options);\n\n that._refreshAriaAttr(options.value);\n },\n\n options: {\n name: \"Slider\",\n showButtons: true,\n increaseButtonTitle: \"Increase\",\n decreaseButtonTitle: \"Decrease\",\n dragHandleTitle: \"drag\",\n tooltip: { format: \"{0:#,#.##}\" },\n value: null\n },\n\n enable: function(enable) {\n var that = this,\n options = that.options,\n clickHandler,\n move;\n\n that.disable();\n if (enable === false) {\n return;\n }\n\n that.wrapper\n .removeClass(STATE_DISABLED);\n\n that.wrapper.find(\"input\").prop(DISABLED, false);\n\n clickHandler = function(e) {\n var touch = getTouches(e)[0];\n\n if (!touch) {\n return;\n }\n\n var mousePosition = that._isHorizontal ? touch.location.pageX : touch.location.pageY,\n draggableArea = that._getDraggableArea(),\n target = $(e.target);\n\n if (target.hasClass(\"k-draghandle\")) {\n target.addClass(STATE_FOCUSED + \" \" + STATE_SELECTED);\n return;\n }\n\n that._update(that._getValueFromPosition(mousePosition, draggableArea));\n\n that._focusWithMouse(e.target);\n\n that._drag.dragstart(e);\n e.preventDefault();\n };\n\n that.wrapper\n .find(TICK_SELECTOR + \", \" + TRACK_SELECTOR)\n .on(TRACK_MOUSE_DOWN, clickHandler)\n .end()\n .on(TRACK_MOUSE_DOWN, function() {\n $(document.documentElement).one(\"selectstart\", kendo.preventDefault);\n })\n .on(TRACK_MOUSE_UP, function() {\n that._drag._end();\n });\n\n that.wrapper\n .find(DRAG_HANDLE)\n .attr(TABINDEX, 0)\n .on(MOUSE_UP, function() {\n that._setTooltipTimeout();\n })\n .on(CLICK, function(e) {\n that._focusWithMouse(e.target);\n e.preventDefault();\n })\n .on(FOCUS, that._focus.bind(that))\n .on(BLUR, that._blur.bind(that));\n\n move = (function(sign) {\n var newVal = that._nextValueByIndex(that._valueIndex + (sign * 1));\n that._setValueInRange(newVal);\n that._drag._updateTooltip(newVal);\n });\n\n if (options.showButtons) {\n var mouseDownHandler = (function(e, sign) {\n this._clearTooltipTimeout();\n if (e.which === 1 || (support.touch && e.which === 0)) {\n move(sign);\n\n this.timeout = setTimeout((function() {\n this.timer = setInterval(function() {\n move(sign);\n }, 60);\n }).bind(this), 200);\n }\n }).bind(that);\n\n that.wrapper.find(\".k-button\")\n .on(MOUSE_UP, (function(e) {\n this._clearTimer();\n that._focusWithMouse(e.target);\n }).bind(that))\n .on(MOUSE_OVER, function(e) {\n $(e.currentTarget).addClass(\"k-hover\");\n })\n .on(\"mouseout\" + NS, (function(e) {\n $(e.currentTarget).removeClass(\"k-hover\");\n this._clearTimer();\n }).bind(that))\n .on(MOUSE_DOWN, (function(e) {\n var sign = $(e.target).closest(\".k-button\").is(\".k-button-increase\") ? 1 : -1;\n mouseDownHandler(e, sign);\n }))\n .on(\"click\", kendo.preventDefault);\n }\n\n that.wrapper\n .find(DRAG_HANDLE)\n .off(KEY_DOWN, false)\n .on(KEY_DOWN, this._keydown.bind(that));\n\n options.enabled = true;\n },\n\n disable: function() {\n var that = this;\n\n that.wrapper\n .addClass(STATE_DISABLED);\n\n $(that.element).prop(DISABLED, DISABLED);\n\n that.wrapper\n .find(\".k-button\")\n .off(MOUSE_DOWN)\n .on(MOUSE_DOWN, function(e) {\n e.preventDefault();\n $(this).addClass(\"k-active\");\n })\n .off(MOUSE_UP)\n .on(MOUSE_UP, function(e) {\n e.preventDefault();\n $(this).removeClass(\"k-active\");\n })\n .off(\"mouseleave\" + NS)\n .on(\"mouseleave\" + NS, kendo.preventDefault)\n .off(MOUSE_OVER)\n .on(MOUSE_OVER, kendo.preventDefault);\n\n that.wrapper\n .find(TICK_SELECTOR + \", \" + TRACK_SELECTOR).off(TRACK_MOUSE_DOWN).off(TRACK_MOUSE_UP);\n\n that.wrapper\n .find(DRAG_HANDLE)\n .attr(TABINDEX, -1)\n .off(MOUSE_UP)\n .off(KEY_DOWN)\n .off(CLICK)\n .off(FOCUS)\n .off(BLUR);\n\n that.options.enabled = false;\n },\n\n _update: function(val) {\n var that = this,\n change = that.value() != val;\n\n that.value(val);\n\n if (change) {\n that.trigger(CHANGE, { value: that.options.value });\n }\n },\n\n value: function(value) {\n var that = this,\n options = that.options;\n\n value = round(value);\n if (isNaN(value)) {\n return options.value;\n }\n\n if (value >= options.min && value <= options.max) {\n if (options.value != value) {\n that.element.prop(\"value\", formatValue(value));\n options.value = value;\n that._refreshAriaAttr(value);\n that._refresh();\n }\n }\n },\n\n _refresh: function() {\n this.trigger(MOVE_SELECTION, { value: this.options.value });\n },\n\n _refreshAriaAttr: function(value) {\n var that = this,\n drag = that._drag,\n formattedValue;\n\n if (drag && drag._tooltipDiv) {\n formattedValue = drag._tooltipDiv.text();\n } else {\n formattedValue = that._getFormattedValue(value, null);\n }\n this.wrapper.find(DRAG_HANDLE).attr(ARIA_VALUENOW, value).attr(ARIA_VALUETEXT, formattedValue);\n },\n\n _clearTimer: function() {\n clearTimeout(this.timeout);\n clearInterval(this.timer);\n },\n\n _keydown: function(e) {\n var that = this;\n\n if (e.keyCode in that._keyMap) {\n that._clearTooltipTimeout();\n that._setValueInRange(that._keyMap[e.keyCode](that.options.value));\n that._drag._updateTooltip(that.value());\n e.preventDefault();\n }\n },\n\n _setValueInRange: function(val) {\n var that = this,\n options = that.options;\n\n val = round(val);\n if (isNaN(val)) {\n that._update(options.min);\n return;\n }\n\n val = math.max(math.min(val, options.max), options.min);\n that._update(val);\n },\n\n _nextValueByIndex: function(index) {\n var count = this._values.length;\n\n return this._values[math.max(0, math.min(index, count - 1))];\n },\n\n _formResetHandler: function() {\n var that = this,\n min = that.options.min;\n\n setTimeout(function() {\n var value = that.element[0].value;\n that.value(value === \"\" || isNaN(value) ? min : value);\n });\n },\n\n destroy: function() {\n var that = this;\n\n SliderBase.fn.destroy.call(that);\n\n that.wrapper.off(NS)\n .find(\".k-button\").off(NS)\n .end()\n .find(DRAG_HANDLE).off(NS)\n .end()\n .find(TICK_SELECTOR + \", \" + TRACK_SELECTOR).off(NS)\n .end();\n\n that._drag.draggable.destroy();\n that._drag._removeTooltip(true);\n }\n });\n\n Slider.Selection = function(dragHandle, that, options) {\n function moveSelection(val) {\n var selectionValue = val - options.min,\n index = that._valueIndex = math.ceil(round(selectionValue / options.smallStep)),\n selection = parseInt(that._pixelSteps[index], 10),\n selectionDiv = that._trackDiv.find(\".k-slider-selection\");\n\n selectionDiv[that._sizeFn](selection);\n dragHandle.css(that._position, selection);\n }\n\n moveSelection(options.value);\n\n that.bind([SLIDE, MOVE_SELECTION], function(e) {\n moveSelection(parseFloat(e.value, 10));\n });\n\n that.bind(CHANGE, function(e) {\n moveSelection(parseFloat(e.sender.value(), 10));\n });\n };\n\n Slider.Drag = function(element, type, owner, options) {\n var that = this;\n that.owner = owner;\n that.options = options;\n that.element = element;\n that.type = type;\n\n that.draggable = new Draggable(element, {\n distance: 0,\n dragstart: that._dragstart.bind(that),\n drag: that.drag.bind(that),\n dragend: that.dragend.bind(that),\n dragcancel: that.dragcancel.bind(that)\n });\n\n element.click(false);\n\n // Disable link dragging\n element.on(\"dragstart\", function(e) {\n e.preventDefault();\n });\n };\n\n Slider.Drag.prototype = {\n dragstart: function(e) {\n // add reference to the last active drag handle.\n this.owner._activeDragHandle = this;\n // HACK to initiate click on the line\n this.draggable.userEvents.cancel();\n this._dragstart(e);\n this.dragend();\n },\n\n _dragstart: function(e) {\n var that = this,\n owner = that.owner,\n options = that.options;\n\n if (!options.enabled) {\n e.preventDefault();\n return;\n }\n\n // add reference to the last active drag handle.\n this.owner._activeDragHandle = this;\n\n owner.element.off(MOUSE_OVER);\n owner.wrapper.find(\".\" + STATE_FOCUSED).removeClass(STATE_FOCUSED + \" \" + STATE_SELECTED);\n that.element.addClass(STATE_FOCUSED + \" \" + STATE_SELECTED);\n $(document.documentElement).css(\"cursor\", \"pointer\");\n\n that.draggableArea = owner._getDraggableArea();\n that.step = math.max(options.smallStep * (owner._maxSelection / owner._distance()), 0);\n\n if (that.type) {\n that.selectionStart = options.selectionStart;\n that.selectionEnd = options.selectionEnd;\n owner._setZIndex(that.type);\n } else {\n that.oldVal = that.val = options.value;\n }\n\n that._removeTooltip(true);\n that._createTooltip();\n },\n\n _createTooltip: function() {\n var that = this,\n owner = that.owner,\n tooltip = that.options.tooltip,\n html = '',\n wnd = $(window),\n tooltipTemplate, calloutCssClass;\n\n if (!tooltip.enabled) {\n return;\n }\n\n if (tooltip.template) {\n tooltipTemplate = that.tooltipTemplate = kendo.template(tooltip.template);\n }\n\n $(\".k-slider-tooltip\").remove(); // if user changes window while tooltip is visible, a second one will be created\n that.tooltipDiv = $(\"\").appendTo(document.body);\n\n html = owner._getFormattedValue(that.val || owner.value(), that);\n\n if (!that.type) {\n calloutCssClass = \"k-callout-\" + (owner._isHorizontal ? 's' : 'e');\n that.tooltipInnerDiv = \"\";\n html += that.tooltipInnerDiv;\n }\n\n that.tooltipDiv.html(html);\n\n that._scrollOffset = {\n top: wnd.scrollTop(),\n left: kendo.scrollLeft(wnd)\n };\n\n that.moveTooltip();\n },\n\n drag: function(e) {\n var that = this,\n owner = that.owner,\n x = e.x.location,\n y = e.y.location,\n startPoint = that.draggableArea.startPoint,\n endPoint = that.draggableArea.endPoint,\n slideParams;\n\n e.preventDefault();\n\n if (owner._isHorizontal) {\n if (owner._isRtl) {\n that.val = that.constrainValue(x, startPoint, endPoint, x < endPoint);\n } else {\n that.val = that.constrainValue(x, startPoint, endPoint, x >= endPoint);\n }\n } else {\n that.val = that.constrainValue(y, endPoint, startPoint, y <= endPoint);\n }\n\n if (that.oldVal != that.val) {\n that.oldVal = that.val;\n\n if (that.type) {\n if (that.type == \"firstHandle\") {\n if (that.val < that.selectionEnd) {\n that.selectionStart = that.val;\n } else {\n that.selectionStart = that.selectionEnd = that.val;\n }\n } else {\n if (that.val > that.selectionStart) {\n that.selectionEnd = that.val;\n } else {\n that.selectionStart = that.selectionEnd = that.val;\n }\n }\n slideParams = {\n values: [that.selectionStart, that.selectionEnd],\n value: [that.selectionStart, that.selectionEnd]\n };\n } else {\n slideParams = { value: that.val };\n }\n\n owner.trigger(SLIDE, slideParams);\n }\n that._updateTooltip(that.val);\n },\n\n _updateTooltip: function(val) {\n var that = this,\n options = that.options,\n tooltip = options.tooltip,\n html = \"\";\n\n if (!tooltip.enabled) {\n return;\n }\n\n if (!that.tooltipDiv) {\n that._createTooltip();\n }\n\n html = that.owner._getFormattedValue(round(val), that);\n\n if (!that.type) {\n html += that.tooltipInnerDiv;\n }\n\n that.tooltipDiv.html(html);\n that.moveTooltip();\n },\n\n dragcancel: function() {\n this.owner._refresh();\n $(document.documentElement).css(\"cursor\", \"\");\n return this._end();\n },\n\n dragend: function() {\n var that = this,\n owner = that.owner;\n\n $(document.documentElement).css(\"cursor\", \"\");\n\n if (that.type) {\n owner._update(that.selectionStart, that.selectionEnd);\n } else {\n owner._update(that.val);\n that.draggable.userEvents._disposeAll();\n }\n\n that.draggable.userEvents.cancel();\n return that._end();\n },\n\n _end: function() {\n var that = this,\n owner = that.owner;\n\n owner._focusWithMouse(that.element);\n\n owner.element.on(MOUSE_OVER);\n\n return false;\n },\n\n _removeTooltip: function(noAnimation) {\n var that = this,\n owner = that.owner;\n\n if (that.tooltipDiv && owner.options.tooltip.enabled && owner.options.enabled) {\n if (noAnimation) {\n that.tooltipDiv.remove();\n that.tooltipDiv = null;\n } else {\n that.tooltipDiv.fadeOut(\"slow\", function() {\n $(this).remove();\n that.tooltipDiv = null;\n });\n }\n }\n },\n\n moveTooltip: function() {\n var that = this,\n owner = that.owner,\n top = 0,\n left = 0,\n element = that.element,\n offset = kendo.getOffset(element),\n margin = 8,\n viewport = $(window),\n callout = that.tooltipDiv.find(\".k-callout\"),\n width = outerWidth(that.tooltipDiv),\n height = outerHeight(that.tooltipDiv),\n dragHandles, sdhOffset, diff, anchorSize;\n\n if (that.type) {\n dragHandles = owner.wrapper.find(DRAG_HANDLE);\n offset = kendo.getOffset(dragHandles.eq(0));\n sdhOffset = kendo.getOffset(dragHandles.eq(1));\n\n if (owner._isHorizontal) {\n top = sdhOffset.top;\n left = offset.left + ((sdhOffset.left - offset.left) / 2);\n } else {\n top = offset.top + ((sdhOffset.top - offset.top) / 2);\n left = sdhOffset.left;\n }\n\n anchorSize = outerWidth(dragHandles.eq(0)) + 2 * margin;\n } else {\n top = offset.top;\n left = offset.left;\n anchorSize = outerWidth(element) + 2 * margin;\n }\n\n if (owner._isHorizontal) {\n left -= parseInt((width - owner._outerSize(element)) / 2, 10);\n top -= height + margin + (callout.length ? callout.height() : 0);\n } else {\n top -= parseInt((height - owner._outerSize(element)) / 2, 10);\n left -= width + margin + (callout.length ? callout.width() : 0);\n }\n\n if (owner._isHorizontal) {\n diff = that._flip(top, height, anchorSize, outerHeight(viewport) + that._scrollOffset.top);\n top += diff;\n left += that._fit(left, width, outerWidth(viewport) + that._scrollOffset.left);\n } else {\n diff = that._flip(left, width, anchorSize, outerWidth(viewport) + that._scrollOffset.left);\n top += that._fit(top, height, outerHeight(viewport) + that._scrollOffset.top);\n left += diff;\n }\n\n if (diff > 0 && callout) {\n callout.removeClass();\n callout.addClass(\"k-callout k-callout-\" + (owner._isHorizontal ? \"n\" : \"w\"));\n }\n\n that.tooltipDiv.css({ top: top, left: left });\n },\n\n _fit: function(position, size, viewPortEnd) {\n var output = 0;\n\n if (position + size > viewPortEnd) {\n output = viewPortEnd - (position + size);\n }\n\n if (position < 0) {\n output = -position;\n }\n\n return output;\n },\n\n _flip: function(offset, size, anchorSize, viewPortEnd) {\n var output = 0;\n\n if (offset + size > viewPortEnd) {\n output += -(anchorSize + size);\n }\n\n if (offset + output < 0) {\n output += anchorSize + size;\n }\n\n return output;\n },\n\n constrainValue: function(position, min, max, maxOverflow) {\n var that = this,\n val = 0;\n\n if (min < position && position < max) {\n val = that.owner._getValueFromPosition(position, that.draggableArea);\n } else {\n if (maxOverflow ) {\n val = that.options.max;\n } else {\n val = that.options.min;\n }\n }\n\n return val;\n }\n\n };\n\n kendo.ui.plugin(Slider);\n\n var RangeSlider = SliderBase.extend({\n init: function(element, options) {\n var that = this,\n inputs = $(element).find(\"input\"),\n firstInput = inputs.eq(0)[0],\n secondInput = inputs.eq(1)[0];\n\n firstInput.type = \"text\";\n secondInput.type = \"text\";\n\n if (options && options.showButtons) {\n if (window.console) {\n window.console.warn(\"showbuttons option is not supported for the range slider, ignoring\");\n }\n\n options.showButtons = false;\n }\n\n options = extend({}, {\n selectionStart: parseAttr(firstInput, \"value\"),\n min: parseAttr(firstInput, \"min\"),\n max: parseAttr(firstInput, \"max\"),\n smallStep: parseAttr(firstInput, \"step\")\n }, {\n selectionEnd: parseAttr(secondInput, \"value\"),\n min: parseAttr(secondInput, \"min\"),\n max: parseAttr(secondInput, \"max\"),\n smallStep: parseAttr(secondInput, \"step\")\n }, options);\n\n if (options && options.enabled === undefined$1) {\n options.enabled = !inputs.is(\"[disabled]\");\n }\n\n SliderBase.fn.init.call(that, element, options);\n options = that.options;\n if (!defined(options.selectionStart) || options.selectionStart === null) {\n options.selectionStart = options.min;\n inputs.eq(0).prop(\"value\", formatValue(options.min));\n }\n\n if (!defined(options.selectionEnd) || options.selectionEnd === null) {\n options.selectionEnd = options.max;\n inputs.eq(1).prop(\"value\", formatValue(options.max));\n }\n\n var dragHandles = that.wrapper.find(DRAG_HANDLE);\n\n this._selection = new RangeSlider.Selection(dragHandles, that, options);\n that._firstHandleDrag = new Slider.Drag(dragHandles.eq(0), \"firstHandle\", that, options);\n that._lastHandleDrag = new Slider.Drag(dragHandles.eq(1), \"lastHandle\" , that, options);\n\n that._refreshAriaAttr(options.selectionStart , options.selectionEnd);\n },\n\n options: {\n name: \"RangeSlider\",\n leftDragHandleTitle: \"drag\",\n rightDragHandleTitle: \"drag\",\n tooltip: { format: \"{0:#,#.##}\" },\n selectionStart: null,\n selectionEnd: null\n },\n\n enable: function(enable) {\n var that = this,\n options = that.options,\n clickHandler;\n\n that.disable();\n if (enable === false) {\n return;\n }\n\n that.wrapper\n .removeClass(STATE_DISABLED);\n\n that.wrapper.find(\"input\").prop(DISABLED, false);\n\n clickHandler = function(e) {\n var touch = getTouches(e)[0];\n\n if (!touch) {\n return;\n }\n\n var mousePosition = that._isHorizontal ? touch.location.pageX : touch.location.pageY,\n draggableArea = that._getDraggableArea(),\n val = that._getValueFromPosition(mousePosition, draggableArea),\n target = $(e.target),\n from, to, drag;\n\n if (target.hasClass(\"k-draghandle\")) {\n that.wrapper.find(\".\" + STATE_FOCUSED).removeClass(STATE_FOCUSED + \" \" + STATE_SELECTED);\n target.addClass(STATE_FOCUSED + \" \" + STATE_SELECTED);\n return;\n }\n\n if (val < options.selectionStart) {\n from = val;\n to = options.selectionEnd;\n drag = that._firstHandleDrag;\n } else if (val > that.selectionEnd) {\n from = options.selectionStart;\n to = val;\n drag = that._lastHandleDrag;\n } else {\n if (val - options.selectionStart <= options.selectionEnd - val) {\n from = val;\n to = options.selectionEnd;\n drag = that._firstHandleDrag;\n } else {\n from = options.selectionStart;\n to = val;\n drag = that._lastHandleDrag;\n }\n }\n\n drag.dragstart(e);\n that._setValueInRange(from, to);\n that._focusWithMouse(drag.element);\n };\n\n that.wrapper\n .find(TICK_SELECTOR + \", \" + TRACK_SELECTOR)\n .on(TRACK_MOUSE_DOWN, clickHandler)\n .end()\n .on(TRACK_MOUSE_DOWN, function() {\n $(document.documentElement).one(\"selectstart\", kendo.preventDefault);\n })\n .on(TRACK_MOUSE_UP, function() {\n if (that._activeDragHandle) {\n that._activeDragHandle._end();\n }\n });\n\n that.wrapper\n .find(DRAG_HANDLE)\n .attr(TABINDEX, 0)\n .on(MOUSE_UP, function() {\n that._setTooltipTimeout();\n })\n .on(CLICK, function(e) {\n that._focusWithMouse(e.target);\n e.preventDefault();\n })\n .on(FOCUS, that._focus.bind(that))\n .on(BLUR, that._blur.bind(that));\n\n that.wrapper.find(DRAG_HANDLE)\n .off(KEY_DOWN, kendo.preventDefault)\n .eq(0).on(KEY_DOWN,\n (function(e) {\n this._keydown(e, \"firstHandle\");\n }).bind(that)\n )\n .end()\n .eq(1).on(KEY_DOWN,\n (function(e) {\n this._keydown(e, \"lastHandle\");\n }).bind(that)\n );\n\n that.options.enabled = true;\n },\n\n disable: function() {\n var that = this;\n\n that.wrapper\n .addClass(STATE_DISABLED);\n\n that.wrapper.find(\"input\").prop(DISABLED, DISABLED);\n\n that.wrapper\n .find(TICK_SELECTOR + \", \" + TRACK_SELECTOR).off(TRACK_MOUSE_DOWN).off(TRACK_MOUSE_UP);\n\n that.wrapper\n .find(DRAG_HANDLE)\n .attr(TABINDEX, -1)\n .off(MOUSE_UP)\n .off(KEY_DOWN)\n .off(CLICK)\n .off(FOCUS)\n .off(BLUR);\n\n that.options.enabled = false;\n },\n\n _keydown: function(e, handle) {\n var that = this,\n selectionStartValue = that.options.selectionStart,\n selectionEndValue = that.options.selectionEnd,\n dragSelectionStart,\n dragSelectionEnd,\n activeHandleDrag;\n\n if (e.keyCode in that._keyMap) {\n\n that._clearTooltipTimeout();\n\n if (handle == \"firstHandle\") {\n activeHandleDrag = that._activeHandleDrag = that._firstHandleDrag;\n selectionStartValue = that._keyMap[e.keyCode](selectionStartValue);\n\n if (selectionStartValue > selectionEndValue) {\n selectionEndValue = selectionStartValue;\n }\n } else {\n activeHandleDrag = that._activeHandleDrag = that._lastHandleDrag;\n selectionEndValue = that._keyMap[e.keyCode](selectionEndValue);\n\n if (selectionStartValue > selectionEndValue) {\n selectionStartValue = selectionEndValue;\n }\n }\n\n that._setValueInRange(round(selectionStartValue), round(selectionEndValue));\n\n dragSelectionStart = Math.max(selectionStartValue, that.options.selectionStart);\n dragSelectionEnd = Math.min(selectionEndValue, that.options.selectionEnd);\n\n activeHandleDrag.selectionEnd = Math.max(dragSelectionEnd, that.options.selectionStart);\n activeHandleDrag.selectionStart = Math.min(dragSelectionStart, that.options.selectionEnd);\n\n activeHandleDrag._updateTooltip(that.value()[that._activeHandle]);\n\n e.preventDefault();\n }\n },\n\n _update: function(selectionStart, selectionEnd) {\n var that = this,\n values = that.value();\n\n var change = values[0] != selectionStart || values[1] != selectionEnd;\n\n that.value([selectionStart, selectionEnd]);\n\n if (change) {\n that.trigger(CHANGE, {\n values: [selectionStart, selectionEnd],\n value: [selectionStart, selectionEnd]\n });\n }\n },\n\n value: function(value) {\n if (value && value.length) {\n return this._value(value[0], value[1]);\n } else {\n return this._value();\n }\n },\n\n _value: function(start, end) {\n var that = this,\n options = that.options,\n selectionStart = options.selectionStart,\n selectionEnd = options.selectionEnd;\n\n if (isNaN(start) && isNaN(end)) {\n return [selectionStart, selectionEnd];\n } else {\n start = round(start);\n end = round(end);\n }\n\n if (start >= options.min && start <= options.max &&\n end >= options.min && end <= options.max && start <= end) {\n if (selectionStart != start || selectionEnd != end) {\n that.element.find(\"input\")\n .eq(0).prop(\"value\", formatValue(start))\n .end()\n .eq(1).prop(\"value\", formatValue(end));\n\n options.selectionStart = start;\n options.selectionEnd = end;\n that._refresh();\n that._refreshAriaAttr(start, end);\n }\n }\n },\n\n values: function(start, end) {\n if (isArray(start)) {\n return this._value(start[0], start[1]);\n } else {\n return this._value(start, end);\n }\n },\n\n _refresh: function() {\n var that = this,\n options = that.options;\n\n that.trigger(MOVE_SELECTION, {\n values: [options.selectionStart, options.selectionEnd],\n value: [options.selectionStart, options.selectionEnd]\n });\n\n if (options.selectionStart == options.max && options.selectionEnd == options.max) {\n that._setZIndex(\"firstHandle\");\n }\n },\n\n _refreshAriaAttr: function(start, end) {\n var that = this,\n dragHandles = that.wrapper.find(DRAG_HANDLE),\n drag = that._activeHandleDrag,\n formattedValue;\n\n formattedValue = that._getFormattedValue([start, end], drag);\n\n dragHandles.eq(0).attr(ARIA_VALUENOW, start);\n dragHandles.eq(1).attr(ARIA_VALUENOW, end);\n dragHandles.attr(ARIA_VALUETEXT, formattedValue);\n },\n\n _setValueInRange: function(selectionStart, selectionEnd) {\n var options = this.options;\n\n selectionStart = math.max(math.min(selectionStart, options.max), options.min);\n\n selectionEnd = math.max(math.min(selectionEnd, options.max), options.min);\n\n if (selectionStart == options.max && selectionEnd == options.max) {\n this._setZIndex(\"firstHandle\");\n }\n\n this._update(math.min(selectionStart, selectionEnd), math.max(selectionStart, selectionEnd));\n },\n\n _setZIndex: function(type) {\n this.wrapper.find(DRAG_HANDLE).each(function(index) {\n $(this).css(\"z-index\", type == \"firstHandle\" ? 1 - index : index);\n });\n },\n\n _formResetHandler: function() {\n var that = this,\n options = that.options;\n\n setTimeout(function() {\n var inputs = that.element.find(\"input\");\n var start = inputs[0].value;\n var end = inputs[1].value;\n that.values(start === \"\" || isNaN(start) ? options.min : start, end === \"\" || isNaN(end) ? options.max : end);\n });\n },\n\n destroy: function() {\n var that = this;\n\n SliderBase.fn.destroy.call(that);\n\n that.wrapper.off(NS)\n .find(TICK_SELECTOR + \", \" + TRACK_SELECTOR).off(NS)\n .end()\n .find(DRAG_HANDLE).off(NS);\n\n that._firstHandleDrag.draggable.destroy();\n that._lastHandleDrag.draggable.destroy();\n }\n });\n\n RangeSlider.Selection = function(dragHandles, that, options) {\n function moveSelection(value) {\n value = value || [];\n var selectionStartValue = value[0] - options.min,\n selectionEndValue = value[1] - options.min,\n selectionStartIndex = math.ceil(round(selectionStartValue / options.smallStep)),\n selectionEndIndex = math.ceil(round(selectionEndValue / options.smallStep)),\n selectionStart = that._pixelSteps[selectionStartIndex],\n selectionEnd = that._pixelSteps[selectionEndIndex];\n\n dragHandles.eq(0).css(that._position, selectionStart)\n .end()\n .eq(1).css(that._position, selectionEnd);\n\n makeSelection(selectionStart, selectionEnd);\n }\n\n function makeSelection(selectionStart, selectionEnd) {\n var selection,\n selectionPosition,\n selectionDiv = that._trackDiv.find(\".k-slider-selection\");\n\n selection = math.abs(selectionStart - selectionEnd);\n\n selectionDiv[that._sizeFn](selection);\n selectionPosition = math.min(selectionStart, selectionEnd);\n selectionDiv.css(that._position, selectionPosition - 1);\n }\n\n moveSelection(that.value());\n\n that.bind([ CHANGE, SLIDE, MOVE_SELECTION ], function(e) {\n moveSelection(e.values);\n });\n };\n\n kendo.ui.plugin(RangeSlider);\n\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}