{"version":3,"sources":["kendo.mobile.switch.js"],"names":["f","define","$","undefined","limitValue","value","minLimit","maxLimit","Math","max","min","kendo","window","ui","mobile","outerWidth","_outerWidth","Widget","support","CHANGE","SWITCHON","SWITCHOFF","MARGINLEFT","ACTIVE_STATE","DISABLED_STATE","DISABLED","TRANSFORMSTYLE","transitions","css","proxy","SWITCH_MARKUP","Switch","extend","init","element","options","checked","that","this","fn","call","wrapper","format","onLabel","offLabel","handle","find","background","insertBefore","prepend","_drag","origin","parseInt","constrain","snapPoint","type","_animateBackground","check","enable","attr","refresh","notify","handleWidth","width","data","events","name","_position","toggleClass","apply","arguments","destroy","userEvents","toggle","removeAttr","_resize","_move","e","preventDefault","position","x","delta","_start","capture","addClass","cancel","_stop","removeClass","_toggle","distance","duration","application","os","wp","kendoStop","kendoAnimate","effects","offset","reset","reverse","axis","complete","trigger","UserEvents","fastTap","tap","start","move","end","plugin","jQuery","amd","a1","a2","a3"],"mappings":"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","file":"kendo.mobile.switch.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('kendo.mobile.switch', [\n 'kendo.fx',\n 'kendo.userevents'\n ], f);\n}(function () {\n var __meta__ = {\n id: 'mobile.switch',\n name: 'Switch',\n category: 'mobile',\n description: 'The mobile Switch widget is used to display two exclusive choices.',\n depends: [\n 'fx',\n 'userevents'\n ]\n };\n (function ($, undefined) {\n var kendo = window.kendo, ui = kendo.mobile.ui, outerWidth = kendo._outerWidth, Widget = ui.Widget, support = kendo.support, CHANGE = 'change', SWITCHON = 'km-switch-on', SWITCHOFF = 'km-switch-off', MARGINLEFT = 'margin-left', ACTIVE_STATE = 'km-state-active', DISABLED_STATE = 'km-state-disabled', DISABLED = 'disabled', TRANSFORMSTYLE = support.transitions.css + 'transform', proxy = $.proxy;\n function limitValue(value, minLimit, maxLimit) {\n return Math.max(minLimit, Math.min(maxLimit, value));\n }\n var SWITCH_MARKUP = ' {0} {1} ';\n var Switch = Widget.extend({\n init: function (element, options) {\n var that = this, checked;\n Widget.fn.init.call(that, element, options);\n options = that.options;\n that.wrapper = $(kendo.format(SWITCH_MARKUP, options.onLabel, options.offLabel));\n that.handle = that.wrapper.find('.km-switch-handle');\n that.background = that.wrapper.find('.km-switch-background');\n that.wrapper.insertBefore(that.element).prepend(that.element);\n that._drag();\n that.origin = parseInt(that.background.css(MARGINLEFT), 10);\n that.constrain = 0;\n that.snapPoint = 0;\n element = that.element[0];\n element.type = 'checkbox';\n that._animateBackground = true;\n checked = that.options.checked;\n if (checked === null) {\n checked = element.checked;\n }\n that.check(checked);\n that.options.enable = that.options.enable && !that.element.attr(DISABLED);\n that.enable(that.options.enable);\n that.refresh();\n kendo.notify(that, kendo.mobile.ui);\n },\n refresh: function () {\n var that = this, handleWidth = outerWidth(that.handle, true);\n that.width = that.wrapper.width();\n that.constrain = that.width - handleWidth;\n that.snapPoint = that.constrain / 2;\n if (typeof that.origin != 'number') {\n that.origin = parseInt(that.background.css(MARGINLEFT), 10);\n }\n that.background.data('origin', that.origin);\n that.check(that.element[0].checked);\n },\n events: [CHANGE],\n options: {\n name: 'Switch',\n onLabel: 'on',\n offLabel: 'off',\n checked: null,\n enable: true\n },\n check: function (check) {\n var that = this, element = that.element[0];\n if (check === undefined) {\n return element.checked;\n }\n that._position(check ? that.constrain : 0);\n element.checked = check;\n that.wrapper.toggleClass(SWITCHON, check).toggleClass(SWITCHOFF, !check);\n },\n value: function () {\n return this.check.apply(this, arguments);\n },\n destroy: function () {\n Widget.fn.destroy.call(this);\n this.userEvents.destroy();\n },\n toggle: function () {\n var that = this;\n that.check(!that.element[0].checked);\n },\n enable: function (enable) {\n var element = this.element, wrapper = this.wrapper;\n if (typeof enable == 'undefined') {\n enable = true;\n }\n this.options.enable = enable;\n if (enable) {\n element.removeAttr(DISABLED);\n } else {\n element.attr(DISABLED, DISABLED);\n }\n wrapper.toggleClass(DISABLED_STATE, !enable);\n },\n _resize: function () {\n this.refresh();\n },\n _move: function (e) {\n var that = this;\n e.preventDefault();\n that._position(limitValue(that.position + e.x.delta, 0, that.width - outerWidth(that.handle, true)));\n },\n _position: function (position) {\n var that = this;\n that.position = position;\n that.handle.css(TRANSFORMSTYLE, 'translatex(' + position + 'px)');\n if (that._animateBackground) {\n that.background.css(MARGINLEFT, that.origin + position);\n }\n },\n _start: function () {\n if (!this.options.enable) {\n this.userEvents.cancel();\n } else {\n this.userEvents.capture();\n this.handle.addClass(ACTIVE_STATE);\n }\n },\n _stop: function () {\n var that = this;\n that.handle.removeClass(ACTIVE_STATE);\n that._toggle(that.position > that.snapPoint);\n },\n _toggle: function (checked) {\n var that = this, handle = that.handle, element = that.element[0], value = element.checked, duration = kendo.mobile.application && kendo.mobile.application.os.wp ? 100 : 200, distance;\n that.wrapper.toggleClass(SWITCHON, checked).toggleClass(SWITCHOFF, !checked);\n that.position = distance = checked * that.constrain;\n if (that._animateBackground) {\n that.background.kendoStop(true, true).kendoAnimate({\n effects: 'slideMargin',\n offset: distance,\n reset: true,\n reverse: !checked,\n axis: 'left',\n duration: duration\n });\n }\n handle.kendoStop(true, true).kendoAnimate({\n effects: 'slideTo',\n duration: duration,\n offset: distance + 'px,0',\n reset: true,\n complete: function () {\n if (value !== checked) {\n element.checked = checked;\n that.trigger(CHANGE, { checked: checked });\n }\n }\n });\n },\n _drag: function () {\n var that = this;\n that.userEvents = new kendo.UserEvents(that.wrapper, {\n fastTap: true,\n tap: function () {\n if (that.options.enable) {\n that._toggle(!that.element[0].checked);\n }\n },\n start: proxy(that._start, that),\n move: proxy(that._move, that),\n end: proxy(that._stop, that)\n });\n }\n });\n ui.plugin(Switch);\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"],"sourceRoot":"/source/"}