{"version":3,"sources":["kendo.switch.js"],"names":["f","define","$","undefined","kendo","window","ui","NS","Widget","support","CHANGE","switchStyles","widget","container","handle","checked","checkedLabel","unchecked","uncheckedLabel","disabled","readonly","active","DISABLED","ARIA_DISABLED","READONLY","ARIA_READONLY","ARIA_CHECKED","CHECKED","CLICK","click","TOUCHEND","pointers","KEYDOWN","LABELIDPART","proxy","SWITCH_TEMPLATE","template","SWITCH_CONTAINER_TEMPLATE","Switch","extend","init","element","options","that","this","fn","call","_wrapper","_initSettings","_aria","_attachEvents","notify","wrapper","styles","type","wrap","parent","style","cssText","append","messages","addClass","className","removeClass","on","_click","_touchEnd","_keydown","setOptions","find","text","width","css","enabled","enable","check","_tabindex","attr","labelId","id","labelFor","ariaLabel","ariaLabelledBy","length","guid","events","name","toggleClass","removeAttr","value","apply","destroy","off","toggle","_check","focus","trigger","e","keyCode","keys","SPACEBAR","preventDefault","_isTouch","event","test","originalEvent","pointerType","which","plugin","jQuery","amd","a1","a2","a3"],"mappings":"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","file":"kendo.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.switch', ['kendo.core'], f);\n}(function () {\n var __meta__ = {\n id: 'switch',\n name: 'Switch',\n category: 'web',\n description: 'The Switch widget is used to display two exclusive choices.',\n depends: ['core']\n };\n (function ($, undefined) {\n var kendo = window.kendo, ui = kendo.ui, NS = '.kendoSwitch', Widget = ui.Widget, support = kendo.support, CHANGE = 'change', switchStyles = {\n widget: 'k-switch k-widget',\n container: 'k-switch-container',\n handle: 'k-switch-handle',\n checked: 'k-switch-on',\n checkedLabel: 'k-switch-label-on',\n unchecked: 'k-switch-off',\n uncheckedLabel: 'k-switch-label-off',\n disabled: 'k-state-disabled',\n readonly: 'k-state-readonly',\n active: 'k-state-active'\n }, DISABLED = 'disabled', ARIA_DISABLED = 'aria-disabled', READONLY = 'readonly', ARIA_READONLY = 'aria-readonly', ARIA_CHECKED = 'aria-checked', CHECKED = 'checked', CLICK = support.click + NS, TOUCHEND = support.pointers ? 'pointerup' : 'touchend', KEYDOWN = 'keydown' + NS, LABELIDPART = '_label', proxy = $.proxy;\n var SWITCH_TEMPLATE = kendo.template('');\n var SWITCH_CONTAINER_TEMPLATE = kendo.template('' + '#=checked#' + '#=unchecked#' + '' + '');\n var Switch = Widget.extend({\n init: function (element, options) {\n var that = this;\n Widget.fn.init.call(that, element, options);\n that._wrapper();\n that._initSettings();\n that._aria();\n that._attachEvents();\n kendo.notify(that, kendo.ui);\n },\n _wrapper: function () {\n var that = this, options = that.options, element = that.element[0], wrapper = $(SWITCH_TEMPLATE({ styles: switchStyles }));\n element.type = 'checkbox';\n that.wrapper = that.element.wrap(wrapper).parent();\n that.wrapper[0].style.cssText = that.element[0].style.cssText;\n that.wrapper.append($(SWITCH_CONTAINER_TEMPLATE({\n styles: switchStyles,\n checked: options.messages.checked,\n unchecked: options.messages.unchecked\n }))).addClass(element.className).removeClass('input-validation-error');\n },\n _attachEvents: function () {\n var that = this;\n that.wrapper.on(CLICK, proxy(that._click, that)).on(TOUCHEND, proxy(that._touchEnd, that)).on(KEYDOWN, proxy(that._keydown, that));\n },\n setOptions: function (options) {\n var that = this, messages = options.messages, checkedLabel, uncheckedLabel;\n that.options = $.extend(that.options, options);\n if (messages && messages.checked !== undefined) {\n checkedLabel = that.wrapper.find('.' + switchStyles.checkedLabel);\n checkedLabel.text(messages.checked);\n }\n if (messages && messages.unchecked !== undefined) {\n uncheckedLabel = that.wrapper.find('.' + switchStyles.uncheckedLabel);\n uncheckedLabel.text(messages.unchecked);\n }\n if (options.width) {\n that.wrapper.css({ width: options.width });\n }\n if (options.enabled !== undefined) {\n that.enable(options.enabled);\n }\n if (options.readonly !== undefined) {\n that.readonly(options.readonly);\n }\n that.check(options.checked);\n },\n _initSettings: function () {\n var that = this, element = that.element[0], options = that.options;\n if (options.enabled) {\n that._tabindex();\n }\n if (options.width) {\n that.wrapper.css({ width: options.width });\n }\n if (options.checked === null) {\n options.checked = element.checked;\n }\n that.check(options.checked);\n options.enabled = options.enabled && !that.element.attr(DISABLED);\n that.enable(options.enabled);\n options.readonly = options.readonly || !!that.element.attr(READONLY);\n that.readonly(options.readonly);\n },\n _aria: function () {\n var that = this, element = that.element, wrapper = that.wrapper, id = element.attr('id'), labelFor = $('label[for=\"' + id + '\"]'), ariaLabel = element.attr('aria-label'), ariaLabelledBy = element.attr('aria-labelledby');\n if (ariaLabel) {\n wrapper.attr('aria-label', ariaLabel);\n } else if (ariaLabelledBy) {\n wrapper.attr('aria-labelledby', ariaLabelledBy);\n } else if (labelFor.length) {\n var labelId = labelFor.attr('id');\n if (!labelId) {\n labelId = (id || kendo.guid()) + LABELIDPART;\n labelFor.attr('id', labelId);\n }\n wrapper.attr('aria-labelledby', labelId);\n }\n },\n events: [CHANGE],\n options: {\n name: 'Switch',\n messages: {\n checked: 'On',\n unchecked: 'Off'\n },\n width: null,\n checked: null,\n enabled: true,\n readonly: false\n },\n check: function (checked) {\n var that = this, element = that.element[0];\n if (checked === undefined) {\n return element.checked;\n }\n if (element.checked !== checked) {\n that.options.checked = element.checked = checked;\n }\n that.wrapper.attr(ARIA_CHECKED, checked).toggleClass(switchStyles.checked, checked).toggleClass(switchStyles.unchecked, !checked);\n if (checked) {\n that.element.attr(CHECKED, CHECKED);\n } else {\n that.element.removeAttr(CHECKED);\n }\n },\n value: function (value) {\n if (typeof value === 'string') {\n value = value === 'true';\n }\n return this.check.apply(this, [value]);\n },\n destroy: function () {\n Widget.fn.destroy.call(this);\n this.wrapper.off(NS);\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.enabled = enable;\n if (enable) {\n element.removeAttr(DISABLED);\n wrapper.removeAttr(ARIA_DISABLED);\n } else {\n element.attr(DISABLED, DISABLED);\n wrapper.attr(ARIA_DISABLED, true);\n }\n wrapper.toggleClass(switchStyles.disabled, !enable);\n },\n readonly: function (readonly) {\n var that = this, element = that.element, wrapper = that.wrapper;\n if (typeof readonly == 'undefined') {\n readonly = true;\n }\n that.options.readonly = readonly;\n if (readonly) {\n element.attr(READONLY, true);\n wrapper.attr(ARIA_READONLY, true);\n } else {\n element.removeAttr(READONLY);\n wrapper.removeAttr(ARIA_READONLY);\n }\n wrapper.toggleClass(switchStyles.readonly, readonly);\n },\n _check: function () {\n var that = this, checked = that.element[0].checked = !that.element[0].checked;\n that.wrapper.focus();\n if (!that.options.enabled || that.options.readonly || that.trigger(CHANGE, { checked: checked })) {\n that.element[0].checked = !checked;\n return;\n }\n that.check(checked);\n },\n _keydown: function (e) {\n if (e.keyCode === kendo.keys.SPACEBAR) {\n this._check();\n e.preventDefault();\n }\n },\n _isTouch: function (event) {\n return /touch/.test(event.type) || event.originalEvent && /touch/.test(event.originalEvent.pointerType);\n },\n _click: function (e) {\n if (!this._isTouch(e) && e.which === 1) {\n this._check();\n }\n },\n _touchEnd: function (e) {\n if (this._isTouch(e)) {\n this._check();\n e.preventDefault();\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}));"]}