UNPKG

@progress/kendo-ui

Version:

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

103 lines (101 loc) 3.11 kB
//#region ../src/kendo.toggleinputbase.js const __meta__ = { id: "toggleinputbase", name: "ToggleInputBase", category: "web", description: "The ToggleInputBase component.", depends: ["core"] }; (function($, undefined) { var kendo = window.kendo, ui = kendo.ui, Widget = ui.Widget, CHANGE = "change", DISABLED = "disabled", KDISABLED = "k-disabled", CHECKED = "checked"; var ToggleInputBase = Widget.extend({ init: function(element, options) { var that = this; Widget.fn.init.call(that, element, options); that._wrapper(); that._initSettings(); that._attachEvents(); kendo.notify(that, kendo.ui); }, events: [CHANGE], options: { name: "ToggleInputBase" }, NS: ".kendoToggleInputBase", RENDER_INPUT: $.noop, check: function(checked) { var that = this, element = that.element[0]; if (checked === undefined) { return element.checked; } if (element.checked !== checked) { that.options.checked = element.checked = checked; } if (checked) { that.element.attr(CHECKED, CHECKED); } else { that.element.prop(CHECKED, false); } }, destroy: function() { Widget.fn.destroy.call(this); this.wrapper.off(this.NS); }, enable: function(enable) { const element = this.element; const label = this.wrapper.siblings("label[for='" + element.attr("id") + "']"); if (typeof enable == "undefined") { enable = true; } this.options.enabled = enable; kendo.toggleAttribute(element, DISABLED, !enable); kendo.toggleClass(element, KDISABLED, null, !enable); kendo.toggleClass(label, KDISABLED, null, !enable); }, toggle: function() { var that = this; that.check(!that.element[0].checked); }, _attachEvents: function() { this.element.on(CHANGE + this.NS, this._change.bind(this)); }, _change: function() { var checked = this.element[0].checked; this.trigger(CHANGE, { checked }); }, _initSettings: function() { var that = this, element = that.element[0], options = that.options; if (options.checked === null) { options.checked = element.checked; } that.check(options.checked); options.enabled = options.enabled && !that.element.attr(DISABLED); that.enable(options.enabled); }, _wrapper: function() { var that = this, options = that.options, inputMethod = that.RENDER_INPUT; inputMethod(that.element, $.extend({}, options)); that.element.removeClass("input-validation-error"); that.wrapper = that.element.wrap(`<span class="${options.wrapperClass}"></span>`).parent(); }, setOptions: function(options) { this._clearCssClasses(options, this.element); this._setEvents(options); $.extend(this.options, options); this._applyCssClasses(this.element); } }); ui.plugin(ToggleInputBase); })(window.kendo.jQuery); var kendo_toggleinputbase_default = kendo; //#endregion Object.defineProperty(exports, '__meta__', { enumerable: true, get: function () { return __meta__; } }); Object.defineProperty(exports, 'kendo_toggleinputbase_default', { enumerable: true, get: function () { return kendo_toggleinputbase_default; } });