{"version":3,"file":"kendo.switch.min.js","names":["factory","define","amd","$","undefined$1","kendo","ui","NS","Widget","support","CHANGE","switchStyles","DISABLED","ARIA_DISABLED","READONLY","ARIA_READONLY","ARIA_HIDDEN","CHECKED","CLICK","TOUCHEND","DOT","SWITCH_TEMPLATE","SWITCH_TRACK_TEMPLATE","SWITCH_THUMB_TEMPLATE","Switch","window","jQuery","widget","track","thumbWrapper","thumb","checked","checkedLabel","unchecked","uncheckedLabel","disabled","readonly","active","click","pointers","template","extend","init","element","options","that","this","fn","call","_wrapper","_initSettings","_aria","_attachEvents","notify","wrapper","styles","type","wrap","parent","style","cssText","hide","append","messages","addClass","className","removeClass","rounded","trackRounded","_applyCssClasses","_applyRoundedClasses","action","cssProperties","getValidClass","name","propName","value","thumbRounded","find","on","_click","bind","_touchEnd","_keydown","setOptions","_clearCssClasses","text","width","css","enabled","enable","check","_tabindex","attr","id","labelFor","ariaLabel","ariaLabelledBy","length","labelId","guid","events","size","toggleClass","removeAttr","prop","apply","destroy","off","toggle","_check","trigger","e","keyCode","keys","SPACEBAR","preventDefault","_isTouch","event","test","originalEvent","pointerType","which","registerPrefix","registerValues","values","roundedValues","concat","plugin"],"sources":["kendo.switch.js"],"mappings":"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","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.core'], factory) :\n factory();\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\n (function($, undefined$1) {\n var kendo = window.kendo,\n ui = kendo.ui,\n NS = \".kendoSwitch\",\n Widget = ui.Widget,\n support = kendo.support,\n CHANGE = \"change\",\n switchStyles = {\n widget: \"k-switch\",\n track: \"k-switch-track\",\n thumbWrapper: \"k-switch-thumb-wrap\",\n thumb: \"k-switch-thumb\",\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-disabled\",\n readonly: \"k-readonly\",\n active: \"k-active\"\n },\n DISABLED = \"disabled\",\n ARIA_DISABLED = \"aria-disabled\",\n READONLY = \"readonly\",\n ARIA_READONLY = \"aria-readonly\",\n ARIA_CHECKED = \"aria-checked\",\n ARIA_HIDDEN = \"aria-hidden\",\n CHECKED = \"checked\",\n CLICK = support.click + NS,\n TOUCHEND = support.pointers ? \"pointerup\" : \"touchend\",\n KEYDOWN = \"keydown\" + NS,\n LABELIDPART = \"_label\",\n DOT = \".\";\n\n var SWITCH_TEMPLATE = kendo.template('');\n\n var SWITCH_TRACK_TEMPLATE = kendo.template(\"\" +\n \"#=checked#\" +\n \"#=unchecked#\" +\n \"\");\n\n var SWITCH_THUMB_TEMPLATE = kendo.template(\"\" +\n \"\" +\n \"\");\n\n var Switch = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n Widget.fn.init.call(that, element, options);\n\n that._wrapper();\n\n that._initSettings();\n\n that._aria();\n\n that._attachEvents();\n\n kendo.notify(that, kendo.ui);\n },\n\n _wrapper: function() {\n var that = this,\n options = that.options,\n element = that.element[0],\n wrapper = $(SWITCH_TEMPLATE({\n styles: switchStyles\n }));\n\n element.type = \"checkbox\";\n\n that.wrapper = that.element.wrap(wrapper).parent();\n\n that.wrapper[0].style.cssText = that.element[0].style.cssText;\n that.element.hide();\n\n that.wrapper\n .append($(SWITCH_TRACK_TEMPLATE({\n styles: switchStyles,\n checked: options.messages.checked,\n unchecked: options.messages.unchecked\n })))\n .append($(SWITCH_THUMB_TEMPLATE({\n styles: switchStyles\n })))\n .addClass(element.className)\n .removeClass('input-validation-error');\n\n that.options.rounded = that.options.trackRounded;\n that._applyCssClasses();\n that._applyRoundedClasses();\n },\n\n _applyRoundedClasses: function(action) {\n var that = this,\n options = that.options,\n trackRounded = kendo.cssProperties.getValidClass({\n widget: options.name,\n propName: \"rounded\",\n value: options.trackRounded\n }),\n thumbRounded = kendo.cssProperties.getValidClass({\n widget: options.name,\n propName: \"rounded\",\n value: options.thumbRounded\n });\n\n action = action || \"addClass\";\n\n that.wrapper.find(DOT + switchStyles.track)[action](trackRounded);\n that.wrapper.find(DOT + switchStyles.thumb)[action](thumbRounded);\n },\n\n _attachEvents: function() {\n var that = this;\n\n that.wrapper\n .on(CLICK, that._click.bind(that))\n .on(TOUCHEND, that._touchEnd.bind(that))\n .on(KEYDOWN, that._keydown.bind(that));\n },\n\n setOptions: function(options) {\n var that = this,\n messages = options.messages,\n checkedLabel,\n uncheckedLabel;\n\n that._clearCssClasses(options);\n that._applyRoundedClasses(\"removeClass\");\n\n that.options = $.extend(that.options, options);\n\n if (messages && messages.checked !== undefined$1) {\n checkedLabel = that.wrapper.find(DOT + switchStyles.checkedLabel);\n checkedLabel.text(messages.checked);\n }\n\n if (messages && messages.unchecked !== undefined$1) {\n uncheckedLabel = that.wrapper.find(DOT + switchStyles.uncheckedLabel);\n uncheckedLabel.text(messages.unchecked);\n }\n\n if (options.width) {\n that.wrapper.css({\n width: options.width\n });\n }\n\n if (options.enabled !== undefined$1) {\n that.enable(options.enabled);\n }\n\n if (options.readonly !== undefined$1) {\n that.readonly(options.readonly);\n }\n\n that.check(options.checked);\n\n that.options.rounded = that.options.trackRounded;\n that._applyCssClasses();\n that._applyRoundedClasses();\n },\n\n _initSettings: function() {\n var that = this,\n element = that.element[0],\n options = that.options;\n\n if (options.enabled) {\n that._tabindex();\n }\n\n if (options.width) {\n that.wrapper.css({\n width: options.width\n });\n }\n\n if (options.checked === null) {\n options.checked = element.checked;\n }\n\n that.check(options.checked);\n\n options.enabled = options.enabled && !that.element.attr(DISABLED);\n that.enable(options.enabled);\n\n options.readonly = options.readonly || !!that.element.attr(READONLY);\n that.readonly(options.readonly);\n },\n\n _aria: function() {\n var that = this,\n element = that.element,\n wrapper = that.wrapper,\n id = element.attr(\"id\"),\n labelFor = $(\"label[for=\\\"\" + id + \"\\\"]\"),\n ariaLabel = element.attr(\"aria-label\"),\n ariaLabelledBy = element.attr(\"aria-labelledby\");\n\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\n if (!labelId) {\n labelId = (id || kendo.guid()) + LABELIDPART;\n labelFor.attr(\"id\", labelId);\n }\n\n wrapper.attr(\"aria-labelledby\", labelId);\n }\n },\n\n events: [\n CHANGE\n ],\n\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 size: \"medium\",\n rounded: \"full\",\n trackRounded: \"full\",\n thumbRounded: \"full\"\n },\n\n check: function(checked) {\n var that = this,\n element = that.element[0];\n\n if (checked === undefined$1) {\n return element.checked;\n }\n\n if (element.checked !== checked) {\n that.options.checked = element.checked = checked;\n }\n\n that.wrapper\n .attr(ARIA_CHECKED, checked)\n .toggleClass(switchStyles.checked, checked)\n .toggleClass(switchStyles.unchecked, !checked)\n .find(\"[aria-hidden='true']\")\n .removeAttr(ARIA_HIDDEN);\n\n if (checked) {\n that.element\n .attr(CHECKED, CHECKED);\n\n that.wrapper.find(DOT + switchStyles.uncheckedLabel)\n .attr(ARIA_HIDDEN, true);\n } else {\n that.element\n .prop(CHECKED, false);\n\n that.wrapper.find(DOT + switchStyles.checkedLabel)\n .attr(ARIA_HIDDEN, true);\n }\n },\n\n // alias for check, NG support\n value: function(value) {\n if (typeof value === \"string\") {\n value = (value === \"true\");\n } else if (value === null) {\n value = false;\n }\n return this.check.apply(this, [value]);\n },\n\n destroy: function() {\n Widget.fn.destroy.call(this);\n this.wrapper.off(NS);\n },\n\n toggle: function() {\n var that = this;\n\n that.check(!that.element[0].checked);\n },\n\n enable: function(enable) {\n var element = this.element,\n wrapper = this.wrapper;\n\n if (typeof enable == \"undefined\") {\n enable = true;\n }\n\n this.options.enabled = enable;\n\n if (enable) {\n element.prop(DISABLED, false);\n wrapper.removeAttr(ARIA_DISABLED);\n } else {\n element.attr(DISABLED, DISABLED);\n wrapper.attr(ARIA_DISABLED, true);\n }\n\n wrapper.toggleClass(switchStyles.disabled, !enable);\n },\n\n readonly: function(readonly) {\n var that = this,\n element = that.element,\n wrapper = that.wrapper;\n\n if (typeof readonly == \"undefined\") {\n readonly = true;\n }\n\n that.options.readonly = readonly;\n\n if (readonly) {\n element.attr(READONLY, true);\n wrapper.attr(ARIA_READONLY, true);\n } else {\n element.prop(READONLY, false);\n wrapper.removeAttr(ARIA_READONLY);\n }\n\n wrapper.toggleClass(switchStyles.readonly, readonly);\n },\n\n _check: function() {\n var that = this,\n checked = that.element[0].checked = !that.element[0].checked;\n\n that.wrapper.trigger(\"focus\");\n\n if (!that.options.enabled || that.options.readonly ||\n that.trigger(CHANGE, { checked: checked })) {\n that.element[0].checked = !checked;\n return;\n }\n\n that.check(checked);\n },\n\n _keydown: function(e) {\n if (e.keyCode === kendo.keys.SPACEBAR) {\n this._check();\n e.preventDefault();\n }\n },\n\n _isTouch: function(event) {\n return /touch/.test(event.type) || (event.originalEvent && /touch/.test(event.originalEvent.pointerType));\n },\n\n _click: function(e) {\n if (!this._isTouch(e) && e.which === 1) {\n this._check();\n }\n },\n\n _touchEnd: function(e) {\n if (this._isTouch(e)) {\n this._check();\n e.preventDefault();\n }\n }\n\n });\n\n kendo.cssProperties.registerPrefix(\"Switch\", \"k-switch-\");\n\n kendo.cssProperties.registerValues(\"Switch\", [{\n prop: \"rounded\",\n values: kendo.cssProperties.roundedValues.concat([['full', 'full']])\n }]);\n\n ui.plugin(Switch);\n })(window.kendo.jQuery);\n\n}));\n"]}