You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

159 lines
5.8 KiB

/*\
|*| ========================================================================
|*| Bootstrap Toggle: bootstrap4-toggle.js v3.6.1
|*| https://gitbrent.github.io/bootstrap4-toggle/
|*| ========================================================================
|*| Copyright 2018-2019 Brent Ely
|*| Licensed under MIT
|*| ========================================================================
\*/
!(function (a) {
"use strict";
function l(t, e) {
(this.$element = a(t)),
(this.options = a.extend({}, this.defaults(), e)),
this.render();
}
(l.VERSION = "3.6.0"),
(l.DEFAULTS = {
on: "On",
off: "Off",
onstyle: "primary",
offstyle: "light",
size: "normal",
style: "",
width: null,
height: null,
}),
(l.prototype.defaults = function () {
return {
on: this.$element.attr("data-on") || l.DEFAULTS.on,
off: this.$element.attr("data-off") || l.DEFAULTS.off,
onstyle: this.$element.attr("data-onstyle") || l.DEFAULTS.onstyle,
offstyle: this.$element.attr("data-offstyle") || l.DEFAULTS.offstyle,
size: this.$element.attr("data-size") || l.DEFAULTS.size,
style: this.$element.attr("data-style") || l.DEFAULTS.style,
width: this.$element.attr("data-width") || l.DEFAULTS.width,
height: this.$element.attr("data-height") || l.DEFAULTS.height,
};
}),
(l.prototype.render = function () {
(this._onstyle = "btn-" + this.options.onstyle),
(this._offstyle = "btn-" + this.options.offstyle);
var t =
"large" === this.options.size || "lg" === this.options.size
? "btn-lg"
: "small" === this.options.size || "sm" === this.options.size
? "btn-sm"
: "mini" === this.options.size || "xs" === this.options.size
? "btn-xs"
: "",
e = a('<label for="' + this.$element.prop("id") + '" class="btn">')
.html(this.options.on)
.addClass(this._onstyle + " " + t),
s = a('<label for="' + this.$element.prop("id") + '" class="btn">')
.html(this.options.off)
.addClass(this._offstyle + " " + t),
o = a('<span class="toggle-handle btn btn-light">').addClass(t),
i = a('<div class="toggle-group">').append(e, s, o),
l = a('<div class="toggle btn" data-toggle="toggle" role="button">')
.addClass(
this.$element.prop("checked")
? this._onstyle
: this._offstyle + " off"
)
.addClass(t)
.addClass(this.options.style);
this.$element.wrap(l),
a.extend(this, {
$toggle: this.$element.parent(),
$toggleOn: e,
$toggleOff: s,
$toggleGroup: i,
}),
this.$toggle.append(i);
var n =
this.options.width ||
Math.max(e.outerWidth(), s.outerWidth()) + o.outerWidth() / 2,
h = this.options.height || Math.max(e.outerHeight(), s.outerHeight());
e.addClass("toggle-on"),
s.addClass("toggle-off"),
this.$toggle.css({ width: n, height: h }),
this.options.height &&
(e.css("line-height", e.height() + "px"),
s.css("line-height", s.height() + "px")),
this.update(!0),
this.trigger(!0);
}),
(l.prototype.toggle = function () {
this.$element.prop("checked") ? this.off() : this.on();
}),
(l.prototype.on = function (t) {
if (this.$element.prop("disabled")) return !1;
this.$toggle.removeClass(this._offstyle + " off").addClass(this._onstyle),
this.$element.prop("checked", !0),
t || this.trigger();
}),
(l.prototype.off = function (t) {
if (this.$element.prop("disabled")) return !1;
this.$toggle.removeClass(this._onstyle).addClass(this._offstyle + " off"),
this.$element.prop("checked", !1),
t || this.trigger();
}),
(l.prototype.enable = function () {
this.$toggle.removeClass("disabled"),
this.$toggle.removeAttr("disabled"),
this.$element.prop("disabled", !1);
}),
(l.prototype.disable = function () {
this.$toggle.addClass("disabled"),
this.$toggle.attr("disabled", "disabled"),
this.$element.prop("disabled", !0);
}),
(l.prototype.update = function (t) {
this.$element.prop("disabled") ? this.disable() : this.enable(),
this.$element.prop("checked") ? this.on(t) : this.off(t);
}),
(l.prototype.trigger = function (t) {
this.$element.off("change.bs.toggle"),
t || this.$element.change(),
this.$element.on(
"change.bs.toggle",
a.proxy(function () {
this.update();
}, this)
);
}),
(l.prototype.destroy = function () {
this.$element.off("change.bs.toggle"),
this.$toggleGroup.remove(),
this.$element.removeData("bs.toggle"),
this.$element.unwrap();
});
var t = a.fn.bootstrapToggle;
(a.fn.bootstrapToggle = function (o) {
var i = Array.prototype.slice.call(arguments, 1)[0];
return this.each(function () {
var t = a(this),
e = t.data("bs.toggle"),
s = "object" == typeof o && o;
e || t.data("bs.toggle", (e = new l(this, s))),
"string" == typeof o && e[o] && "boolean" == typeof i
? e[o](i)
: "string" == typeof o && e[o] && e[o]();
});
}),
(a.fn.bootstrapToggle.Constructor = l),
(a.fn.toggle.noConflict = function () {
return (a.fn.bootstrapToggle = t), this;
}),
a(function () {
a("input[type=checkbox][data-toggle^=toggle]").bootstrapToggle();
}),
a(document).on("click.bs.toggle", "div[data-toggle^=toggle]", function (t) {
a(this).find("input[type=checkbox]").bootstrapToggle("toggle"),
t.preventDefault();
});
})(jQuery);
//# sourceMappingURL=bootstrap4-toggle.min.js.map