UNPKG

@progress/kendo-ui

Version:

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

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