{"version":3,"sources":["kendo.mobile.switch.js"],"names":["f","define","$","undefined","limitValue","value","minLimit","maxLimit","Math","max","min","kendo","window","ui","mobile","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","outerWidth","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, 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 = that.handle.outerWidth(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 - that.handle.outerWidth(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/"}