@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
1 lines • 5.78 kB
JavaScript
module.exports=function(n){var a={};function s(e){if(a[e])return a[e].exports;var t=a[e]={exports:{},id:e,loaded:!1};return n[e].call(t.exports,t,t.exports,s),t.loaded=!0,t.exports}return s.m=n,s.c=a,s.p="",s(0)}({0:function(e,t,n){e.exports=n(1480)},3:function(e,t){e.exports=function(){throw Error("define cannot be used indirect")}},1051:function(e,t){e.exports=require("./kendo.core")},1480:function(e,t,n){var a;n(3),n=[n(1051)],void 0===(t="function"==typeof(a=function(){var t={id:"switch",name:"Switch",category:"web",description:"The Switch widget is used to display two exclusive choices.",depends:["core"]},d=window.kendo.jQuery,i=void 0,l=window.kendo,n=l.ui,e=".kendoSwitch",a=n.Widget,h=l.support,u="change",r={widget:"k-switch",track:"k-switch-track",thumbWrapper:"k-switch-thumb-wrap",thumb:"k-switch-thumb",checked:"k-switch-on",checkedLabel:"k-switch-label-on",unchecked:"k-switch-off",uncheckedLabel:"k-switch-label-off",disabled:"k-disabled",readonly:"k-readonly",active:"k-active"},s="disabled",f="aria-disabled",c="readonly",k="aria-readonly",w="aria-checked",o="aria-hidden",y="checked",b=h.click+e,m=h.pointers?"pointerup":"touchend",v="keydown"+e,g="_label",p=".",_=l.template('<span class="#=styles.widget#" role="switch"></span>'),C=l.template("<span class='#=styles.track#'>"+"<span class='#=styles.checkedLabel#'>#=checked#</span>"+"<span class='#=styles.uncheckedLabel#'>#=unchecked#</span>"+"</span>"),x=l.template("<span class='#=styles.thumbWrapper#'>"+"<span class='#=styles.thumb#'></span>"+"</span>"),R=a.extend({init:function(e,t){var n=this;a.fn.init.call(n,e,t);n._wrapper();n._initSettings();n._aria();n._attachEvents();l.notify(n,l.ui)},_wrapper:function(){var e=this,t=e.options,n=e.element[0],a=d(_({styles:r}));n.type="checkbox";e.wrapper=e.element.wrap(a).parent();e.wrapper[0].style.cssText=e.element[0].style.cssText;e.element.hide();e.wrapper.append(d(C({styles:r,checked:t.messages.checked,unchecked:t.messages.unchecked}))).append(d(x({styles:r}))).addClass(n.className).removeClass("input-validation-error");e.options.rounded=e.options.trackRounded;e._applyCssClasses();e._applyRoundedClasses()},_applyRoundedClasses:function(e){var t=this,n=t.options,a=l.cssProperties.getValidClass({widget:n.name,propName:"rounded",value:n.trackRounded}),s=l.cssProperties.getValidClass({widget:n.name,propName:"rounded",value:n.thumbRounded});e=e||"addClass";t.wrapper.find(p+r.track)[e](a);t.wrapper.find(p+r.thumb)[e](s)},_attachEvents:function(){var e=this;e.wrapper.on(b,e._click.bind(e)).on(m,e._touchEnd.bind(e)).on(v,e._keydown.bind(e))},setOptions:function(e){var t=this,n=e.messages,a,s;t._clearCssClasses(e);t._applyRoundedClasses("removeClass");t.options=d.extend(t.options,e);if(n&&n.checked!==i){a=t.wrapper.find(p+r.checkedLabel);a.text(n.checked)}if(n&&n.unchecked!==i){s=t.wrapper.find(p+r.uncheckedLabel);s.text(n.unchecked)}if(e.width)t.wrapper.css({width:e.width});if(e.enabled!==i)t.enable(e.enabled);if(e.readonly!==i)t.readonly(e.readonly);t.check(e.checked);t.options.rounded=t.options.trackRounded;t._applyCssClasses();t._applyRoundedClasses()},_initSettings:function(){var e=this,t=e.element[0],n=e.options;if(n.enabled)e._tabindex();if(n.width)e.wrapper.css({width:n.width});if(n.checked===null)n.checked=t.checked;e.check(n.checked);n.enabled=n.enabled&&!e.element.attr(s);e.enable(n.enabled);n.readonly=n.readonly||!!e.element.attr(c);e.readonly(n.readonly)},_aria:function(){var e=this,t=e.element,n=e.wrapper,a=t.attr("id"),s=d('label[for="'+a+'"]'),i=t.attr("aria-label"),r=t.attr("aria-labelledby");if(i)n.attr("aria-label",i);else if(r)n.attr("aria-labelledby",r);else if(s.length){var c=s.attr("id");if(!c){c=(a||l.guid())+g;s.attr("id",c)}n.attr("aria-labelledby",c)}},events:[u],options:{name:"Switch",messages:{checked:"On",unchecked:"Off"},width:null,checked:null,enabled:true,readonly:false,size:"medium",rounded:"full",trackRounded:"full",thumbRounded:"full"},check:function(e){var t=this,n=t.element[0];if(e===i)return n.checked;if(n.checked!==e)t.options.checked=n.checked=e;t.wrapper.attr(w,e).toggleClass(r.checked,e).toggleClass(r.unchecked,!e).find("[aria-hidden='true']").removeAttr(o);if(e){t.element.attr(y,y);t.wrapper.find(p+r.uncheckedLabel).attr(o,true)}else{t.element.prop(y,false);t.wrapper.find(p+r.checkedLabel).attr(o,true)}},value:function(e){if(typeof e==="string")e=e==="true";else if(e===null)e=false;return this.check.apply(this,[e])},destroy:function(){a.fn.destroy.call(this);this.wrapper.off(e)},toggle:function(){var e=this;e.check(!e.element[0].checked)},enable:function(e){var t=this.element,n=this.wrapper;if(typeof e=="undefined")e=true;this.options.enabled=e;if(e){t.prop(s,false);n.removeAttr(f)}else{t.attr(s,s);n.attr(f,true)}n.toggleClass(r.disabled,!e)},readonly:function(e){var t=this,n=t.element,a=t.wrapper;if(typeof e=="undefined")e=true;t.options.readonly=e;if(e){n.attr(c,true);a.attr(k,true)}else{n.prop(c,false);a.removeAttr(k)}a.toggleClass(r.readonly,e)},_check:function(){var e=this,t=e.element[0].checked=!e.element[0].checked;e.wrapper.trigger("focus");if(!e.options.enabled||e.options.readonly||e.trigger(u,{checked:t})){e.element[0].checked=!t;return}e.check(t)},_keydown:function(e){if(e.keyCode===l.keys.SPACEBAR){this._check();e.preventDefault()}},_isTouch:function(e){return/touch/.test(e.type)||e.originalEvent&&/touch/.test(e.originalEvent.pointerType)},_click:function(e){if(!this._isTouch(e)&&e.which===1)this._check()},_touchEnd:function(e){if(this._isTouch(e)){this._check();e.preventDefault()}}});return l.cssProperties.registerPrefix("Switch","k-switch-"),l.cssProperties.registerValues("Switch",[{prop:"rounded",values:l.cssProperties.roundedValues.concat([["full","full"]])}]),n.plugin(R),window.kendo})?a.apply(t,n):a)||(e.exports=t)}});