@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
JavaScript
//#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;
}
});