UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

3 lines (2 loc) 5.72 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("kendo.core.js")):"function"==typeof define&&define.amd?define(["exports","kendo.core.min"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Switch={}))}(this,(function(e){!function(e,t){var n=window.kendo,a=n.ui,s=".kendoSwitch",c=a.Widget,i=n.support,d="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"},l="disabled",o="aria-disabled",h="readonly",p="aria-readonly",u="aria-hidden",k="checked",f=i.click+s,w=i.pointers?"pointerup":"touchend",b="keydown"+s,m=".",y=n.htmlEncode,g=n.template((({styles:e})=>`<span class="${e.widget}" role="switch"></span>`)),_=n.template((({styles:e,checked:t,unchecked:n})=>`<span class='${e.track}'><span class='${e.checkedLabel}'>${y(t)}</span><span class='${e.uncheckedLabel}'>${y(n)}</span></span>`)),v=n.template((({styles:e})=>`<span class='${e.thumbWrapper}'><span class='${e.thumb}'></span></span>`)),C=c.extend({init:function(e,t){var a=this;c.fn.init.call(a,e,t),a._wrapper(),a._initSettings(),a._aria(),a._attachEvents(),n.notify(a,n.ui)},_wrapper:function(){var t=this,n=t.options,a=t.element[0],s=e(g({styles:r}));a.type="checkbox",t.wrapper=t.element.wrap(s).parent(),t.wrapper[0].style.cssText=t.element[0].style.cssText,t.element.hide(),t.wrapper.append(e(_({styles:r,checked:n.messages.checked,unchecked:n.messages.unchecked}))).append(e(v({styles:r}))).addClass(a.className).removeClass("input-validation-error"),t.options.rounded=t.options.trackRounded,t._applyCssClasses(),t._applyRoundedClasses()},_applyRoundedClasses:function(e){var t=this,a=t.options,s=n.cssProperties.getValidClass({widget:a.name,propName:"rounded",value:a.trackRounded}),c=n.cssProperties.getValidClass({widget:a.name,propName:"rounded",value:a.thumbRounded});e=e||"addClass",t.wrapper.find(m+r.track)[e](s),t.wrapper.find(m+r.thumb)[e](c)},_attachEvents:function(){var e=this;e.wrapper.on(f,e._click.bind(e)).on(w,e._touchEnd.bind(e)).on(b,e._keydown.bind(e))},setOptions:function(n){let a,s,c=this,i=n.messages;c._clearCssClasses(n),c._applyRoundedClasses("removeClass"),c.options=e.extend(c.options,n),i&&i.checked!==t&&(a=c.wrapper.find(m+r.checkedLabel),a.text(y(i.checked))),i&&i.unchecked!==t&&(s=c.wrapper.find(m+r.uncheckedLabel),s.text(y(i.unchecked))),n.width&&c.wrapper.css({width:n.width}),n.enabled!==t&&c.enable(n.enabled),n.readonly!==t&&c.readonly(n.readonly),c.check(n.checked),c.options.rounded=c.options.trackRounded,c._applyCssClasses(),c._applyRoundedClasses()},_initSettings:function(){var e=this,t=e.element[0],n=e.options;n.enabled&&e._tabindex(),n.width&&e.wrapper.css({width:n.width}),null===n.checked&&(n.checked=t.checked),e.check(n.checked),n.enabled=n.enabled&&!e.element.attr(l),e.enable(n.enabled),n.readonly=n.readonly||!!e.element.attr(h),e.readonly(n.readonly)},_aria:function(){var t=this.element,a=this.wrapper,s=t.attr("id"),c=e('label[for="'+s+'"]'),i=t.attr("aria-label"),d=t.attr("aria-labelledby");if(i)a.attr("aria-label",i);else if(d)a.attr("aria-labelledby",d);else if(c.length){var r=c.attr("id");r||(r=(s||n.guid())+"_label",c.attr("id",r)),a.attr("aria-labelledby",r)}},events:[d],options:{name:"Switch",messages:{checked:"On",unchecked:"Off"},width:null,checked:null,enabled:!0,readonly:!1,size:"medium",rounded:"full",trackRounded:"full",thumbRounded:"full"},check:function(e){var n=this,a=n.element[0];if(e===t)return a.checked;a.checked!==e&&(n.options.checked=a.checked=e),n.wrapper.attr("aria-checked",e).toggleClass(r.checked,e).toggleClass(r.unchecked,!e).find("[aria-hidden='true']").removeAttr(u),e?(n.element.attr(k,k),n.wrapper.find(m+r.uncheckedLabel).attr(u,!0)):(n.element.prop(k,!1),n.wrapper.find(m+r.checkedLabel).attr(u,!0))},value:function(e){return"string"==typeof e?e="true"===e:null===e&&(e=!1),this.check.apply(this,[e])},destroy:function(){c.fn.destroy.call(this),this.wrapper.off(s)},toggle:function(){this.check(!this.element[0].checked)},enable:function(e){var t=this.element,n=this.wrapper;void 0===e&&(e=!0),this.options.enabled=e,e?(t.prop(l,!1),n.removeAttr(o)):(t.attr(l,l),n.attr(o,!0)),n.toggleClass(r.disabled,!e)},readonly:function(e){var t=this,n=t.element,a=t.wrapper;void 0===e&&(e=!0),t.options.readonly=e,e?(n.attr(h,!0),a.attr(p,!0)):(n.prop(h,!1),a.removeAttr(p)),a.toggleClass(r.readonly,e)},_check:function(){var e=this,t=e.element[0].checked=!e.element[0].checked;e.wrapper.trigger("focus"),!e.options.enabled||e.options.readonly||e.trigger(d,{checked:t})?e.element[0].checked=!t:e.check(t)},_keydown:function(e){e.keyCode===n.keys.SPACEBAR&&(this._check(),e.preventDefault())},_isTouch:function(e){return/touch/.test(e.type)||e.originalEvent&&/touch/.test(e.originalEvent.pointerType)},_click:function(e){this._isTouch(e)||1!==e.which||(e.target===this.element[0]&&(this.element[0].checked=!this.element[0].checked),this._check())},_touchEnd:function(e){this._isTouch(e)&&(this._check(),e.preventDefault())}});n.cssProperties.registerPrefix("Switch","k-switch-"),n.cssProperties.registerValues("Switch",[{prop:"rounded",values:n.cssProperties.roundedValues.concat([["full","full"]])}]),a.plugin(C)}(window.kendo.jQuery);var t=kendo;e.__meta__={id:"switch",name:"Switch",category:"web",description:"The Switch widget is used to display two exclusive choices.",depends:["core"]},e.default=t,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=kendo.switch.min.js.map