@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
122 lines (98 loc) • 3.63 kB
JavaScript
import './kendo.core.js';
import './kendo.button.js';
import './kendo.badge.js';
import './kendo.icons.js';
import './kendo.html.icon.js';
import './kendo.html.base.js';
import '@progress/kendo-svg-icons';
import './kendo.html.button.js';
const __meta__ = {
id: "togglebutton",
name: "ToggleButton",
category: "web",
description: "The ToggleButton widget displays styled buttons with selected state.",
depends: ["core", "button"]
};
(function($, undefined$1) {
var kendo = window.kendo,
Button = kendo.ui.Button,
CLICK = "click",
TOGGLE = "toggle",
NS = ".kendoToggleButton",
ARIA_PRESSED = "aria-pressed",
SELECTED = "k-selected",
DATA_GROUP = "data-group",
ID = "id";
var ToggleButton = Button.extend({
init: function(element, options) {
var that = this;
Button.fn.init.call(that, element, options);
element = that.wrapper = that.element;
options = that.options;
that._selected = options.selected === true ? true : false;
that.toggle(that._selected);
if (options.group) {
element.attr(DATA_GROUP, options.group);
}
kendo.notify(that);
},
destroy: function() {
var that = this;
that.wrapper.off(NS);
Button.fn.destroy.call(that);
},
events: [
CLICK,
TOGGLE
],
options: {
name: "ToggleButton",
group: undefined$1,
selected: false
},
toggle: function(toggle) {
if (toggle === undefined$1) {
toggle = !this._selected;
}
this._selected = toggle;
if (toggle === true) {
this.element.attr(ARIA_PRESSED, true);
this.element.addClass(SELECTED);
} else if (toggle === false) {
this.element.attr(ARIA_PRESSED, false);
this.element.removeClass(SELECTED);
}
},
_click: function(e) {
if (this.options.enable) {
if (this.trigger(CLICK, {
event: e,
id: this.element.attr(ID),
target: this.element
})) {
e.preventDefault();
} else {
this.toggle();
this.trigger(TOGGLE, {
event: e,
checked: this._selected,
group: this.options.group,
id: this.element.attr(ID),
target: this.element
});
}
}
}
});
kendo.cssProperties.registerPrefix("ToggleButton", "k-button-");
kendo.cssProperties.registerValues("ToggleButton", [{
prop: "fillMode",
values: kendo.cssProperties.fillModeValues.concat(["link"])
}, {
prop: "rounded",
values: kendo.cssProperties.roundedValues.concat([['full', 'full']])
}]);
kendo.ui.plugin(ToggleButton);
})(window.kendo.jQuery);
var kendo$1 = kendo;
export { __meta__, kendo$1 as default };