summaryrefslogtreecommitdiff
path: root/src/main/resources/static/plugins/bootstrap-switch/js
diff options
context:
space:
mode:
authorAlisaLinUwU <alisalinuwu@gmail.com>2025-01-26 10:42:28 +0500
committerAlisaLinUwU <alisalinuwu@gmail.com>2025-01-26 10:42:28 +0500
commit0225bdb772d1334cc1aa7ab0fc3678df0864df6b (patch)
tree85a8c8e4fcf1d935fcbad54886b73410c8cb2e26 /src/main/resources/static/plugins/bootstrap-switch/js
Initializemain
Diffstat (limited to 'src/main/resources/static/plugins/bootstrap-switch/js')
-rw-r--r--src/main/resources/static/plugins/bootstrap-switch/js/bootstrap-switch.js784
-rw-r--r--src/main/resources/static/plugins/bootstrap-switch/js/bootstrap-switch.min.js10
2 files changed, 794 insertions, 0 deletions
diff --git a/src/main/resources/static/plugins/bootstrap-switch/js/bootstrap-switch.js b/src/main/resources/static/plugins/bootstrap-switch/js/bootstrap-switch.js
new file mode 100644
index 0000000..511f08f
--- /dev/null
+++ b/src/main/resources/static/plugins/bootstrap-switch/js/bootstrap-switch.js
@@ -0,0 +1,784 @@
+/**
+ * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches.
+ *
+ * @version v3.3.4
+ * @homepage https://bttstrp.github.io/bootstrap-switch
+ * @author Mattia Larentis <mattia@larentis.eu> (http://larentis.eu)
+ * @license Apache-2.0
+ */
+
+(function (global, factory) {
+ if (typeof define === "function" && define.amd) {
+ define(['jquery'], factory);
+ } else if (typeof exports !== "undefined") {
+ factory(require('jquery'));
+ } else {
+ var mod = {
+ exports: {}
+ };
+ factory(global.jquery);
+ global.bootstrapSwitch = mod.exports;
+ }
+})(this, function (_jquery) {
+ 'use strict';
+
+ var _jquery2 = _interopRequireDefault(_jquery);
+
+ function _interopRequireDefault(obj) {
+ return obj && obj.__esModule ? obj : {
+ default: obj
+ };
+ }
+
+ var _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ function _classCallCheck(instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ }
+
+ var _createClass = function () {
+ function defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+
+ return function (Constructor, protoProps, staticProps) {
+ if (protoProps) defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) defineProperties(Constructor, staticProps);
+ return Constructor;
+ };
+ }();
+
+ var $ = _jquery2.default || window.jQuery || window.$;
+
+ var BootstrapSwitch = function () {
+ function BootstrapSwitch(element) {
+ var _this = this;
+
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+
+ _classCallCheck(this, BootstrapSwitch);
+
+ this.$element = $(element);
+ this.options = $.extend({}, $.fn.bootstrapSwitch.defaults, this._getElementOptions(), options);
+ this.prevOptions = {};
+ this.$wrapper = $('<div>', {
+ class: function _class() {
+ var classes = [];
+ classes.push(_this.options.state ? 'on' : 'off');
+ if (_this.options.size) {
+ classes.push(_this.options.size);
+ }
+ if (_this.options.disabled) {
+ classes.push('disabled');
+ }
+ if (_this.options.readonly) {
+ classes.push('readonly');
+ }
+ if (_this.options.indeterminate) {
+ classes.push('indeterminate');
+ }
+ if (_this.options.inverse) {
+ classes.push('inverse');
+ }
+ if (_this.$element.attr('id')) {
+ classes.push('id-' + _this.$element.attr('id'));
+ }
+ return classes.map(_this._getClass.bind(_this)).concat([_this.options.baseClass], _this._getClasses(_this.options.wrapperClass)).join(' ');
+ }
+ });
+ this.$container = $('<div>', { class: this._getClass('container') });
+ this.$on = $('<span>', {
+ html: this.options.onText,
+ class: this._getClass('handle-on') + ' ' + this._getClass(this.options.onColor)
+ });
+ this.$off = $('<span>', {
+ html: this.options.offText,
+ class: this._getClass('handle-off') + ' ' + this._getClass(this.options.offColor)
+ });
+ this.$label = $('<span>', {
+ html: this.options.labelText,
+ class: this._getClass('label')
+ });
+
+ this.$element.on('init.bootstrapSwitch', this.options.onInit.bind(this, element));
+ this.$element.on('switchChange.bootstrapSwitch', function () {
+ for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ if (_this.options.onSwitchChange.apply(element, args) === false) {
+ if (_this.$element.is(':radio')) {
+ $('[name="' + _this.$element.attr('name') + '"]').trigger('previousState.bootstrapSwitch', true);
+ } else {
+ _this.$element.trigger('previousState.bootstrapSwitch', true);
+ }
+ }
+ });
+
+ this.$container = this.$element.wrap(this.$container).parent();
+ this.$wrapper = this.$container.wrap(this.$wrapper).parent();
+ this.$element.before(this.options.inverse ? this.$off : this.$on).before(this.$label).before(this.options.inverse ? this.$on : this.$off);
+
+ if (this.options.indeterminate) {
+ this.$element.prop('indeterminate', true);
+ }
+
+ this._init();
+ this._elementHandlers();
+ this._handleHandlers();
+ this._labelHandlers();
+ this._formHandler();
+ this._externalLabelHandler();
+ this.$element.trigger('init.bootstrapSwitch', this.options.state);
+ }
+
+ _createClass(BootstrapSwitch, [{
+ key: 'setPrevOptions',
+ value: function setPrevOptions() {
+ this.prevOptions = _extends({}, this.options);
+ }
+ }, {
+ key: 'state',
+ value: function state(value, skip) {
+ if (typeof value === 'undefined') {
+ return this.options.state;
+ }
+ if (this.options.disabled || this.options.readonly || this.options.state && !this.options.radioAllOff && this.$element.is(':radio')) {
+ return this.$element;
+ }
+ if (this.$element.is(':radio')) {
+ $('[name="' + this.$element.attr('name') + '"]').trigger('setPreviousOptions.bootstrapSwitch');
+ } else {
+ this.$element.trigger('setPreviousOptions.bootstrapSwitch');
+ }
+ if (this.options.indeterminate) {
+ this.indeterminate(false);
+ }
+ this.$element.prop('checked', Boolean(value)).trigger('change.bootstrapSwitch', skip);
+ return this.$element;
+ }
+ }, {
+ key: 'toggleState',
+ value: function toggleState(skip) {
+ if (this.options.disabled || this.options.readonly) {
+ return this.$element;
+ }
+ if (this.options.indeterminate) {
+ this.indeterminate(false);
+ return this.state(true);
+ } else {
+ return this.$element.prop('checked', !this.options.state).trigger('change.bootstrapSwitch', skip);
+ }
+ }
+ }, {
+ key: 'size',
+ value: function size(value) {
+ if (typeof value === 'undefined') {
+ return this.options.size;
+ }
+ if (this.options.size != null) {
+ this.$wrapper.removeClass(this._getClass(this.options.size));
+ }
+ if (value) {
+ this.$wrapper.addClass(this._getClass(value));
+ }
+ this._width();
+ this._containerPosition();
+ this.options.size = value;
+ return this.$element;
+ }
+ }, {
+ key: 'animate',
+ value: function animate(value) {
+ if (typeof value === 'undefined') {
+ return this.options.animate;
+ }
+ if (this.options.animate === Boolean(value)) {
+ return this.$element;
+ }
+ return this.toggleAnimate();
+ }
+ }, {
+ key: 'toggleAnimate',
+ value: function toggleAnimate() {
+ this.options.animate = !this.options.animate;
+ this.$wrapper.toggleClass(this._getClass('animate'));
+ return this.$element;
+ }
+ }, {
+ key: 'disabled',
+ value: function disabled(value) {
+ if (typeof value === 'undefined') {
+ return this.options.disabled;
+ }
+ if (this.options.disabled === Boolean(value)) {
+ return this.$element;
+ }
+ return this.toggleDisabled();
+ }
+ }, {
+ key: 'toggleDisabled',
+ value: function toggleDisabled() {
+ this.options.disabled = !this.options.disabled;
+ this.$element.prop('disabled', this.options.disabled);
+ this.$wrapper.toggleClass(this._getClass('disabled'));
+ return this.$element;
+ }
+ }, {
+ key: 'readonly',
+ value: function readonly(value) {
+ if (typeof value === 'undefined') {
+ return this.options.readonly;
+ }
+ if (this.options.readonly === Boolean(value)) {
+ return this.$element;
+ }
+ return this.toggleReadonly();
+ }
+ }, {
+ key: 'toggleReadonly',
+ value: function toggleReadonly() {
+ this.options.readonly = !this.options.readonly;
+ this.$element.prop('readonly', this.options.readonly);
+ this.$wrapper.toggleClass(this._getClass('readonly'));
+ return this.$element;
+ }
+ }, {
+ key: 'indeterminate',
+ value: function indeterminate(value) {
+ if (typeof value === 'undefined') {
+ return this.options.indeterminate;
+ }
+ if (this.options.indeterminate === Boolean(value)) {
+ return this.$element;
+ }
+ return this.toggleIndeterminate();
+ }
+ }, {
+ key: 'toggleIndeterminate',
+ value: function toggleIndeterminate() {
+ this.options.indeterminate = !this.options.indeterminate;
+ this.$element.prop('indeterminate', this.options.indeterminate);
+ this.$wrapper.toggleClass(this._getClass('indeterminate'));
+ this._containerPosition();
+ return this.$element;
+ }
+ }, {
+ key: 'inverse',
+ value: function inverse(value) {
+ if (typeof value === 'undefined') {
+ return this.options.inverse;
+ }
+ if (this.options.inverse === Boolean(value)) {
+ return this.$element;
+ }
+ return this.toggleInverse();
+ }
+ }, {
+ key: 'toggleInverse',
+ value: function toggleInverse() {
+ this.$wrapper.toggleClass(this._getClass('inverse'));
+ var $on = this.$on.clone(true);
+ var $off = this.$off.clone(true);
+ this.$on.replaceWith($off);
+ this.$off.replaceWith($on);
+ this.$on = $off;
+ this.$off = $on;
+ this.options.inverse = !this.options.inverse;
+ return this.$element;
+ }
+ }, {
+ key: 'onColor',
+ value: function onColor(value) {
+ if (typeof value === 'undefined') {
+ return this.options.onColor;
+ }
+ if (this.options.onColor) {
+ this.$on.removeClass(this._getClass(this.options.onColor));
+ }
+ this.$on.addClass(this._getClass(value));
+ this.options.onColor = value;
+ return this.$element;
+ }
+ }, {
+ key: 'offColor',
+ value: function offColor(value) {
+ if (typeof value === 'undefined') {
+ return this.options.offColor;
+ }
+ if (this.options.offColor) {
+ this.$off.removeClass(this._getClass(this.options.offColor));
+ }
+ this.$off.addClass(this._getClass(value));
+ this.options.offColor = value;
+ return this.$element;
+ }
+ }, {
+ key: 'onText',
+ value: function onText(value) {
+ if (typeof value === 'undefined') {
+ return this.options.onText;
+ }
+ this.$on.html(value);
+ this._width();
+ this._containerPosition();
+ this.options.onText = value;
+ return this.$element;
+ }
+ }, {
+ key: 'offText',
+ value: function offText(value) {
+ if (typeof value === 'undefined') {
+ return this.options.offText;
+ }
+ this.$off.html(value);
+ this._width();
+ this._containerPosition();
+ this.options.offText = value;
+ return this.$element;
+ }
+ }, {
+ key: 'labelText',
+ value: function labelText(value) {
+ if (typeof value === 'undefined') {
+ return this.options.labelText;
+ }
+ this.$label.html(value);
+ this._width();
+ this.options.labelText = value;
+ return this.$element;
+ }
+ }, {
+ key: 'handleWidth',
+ value: function handleWidth(value) {
+ if (typeof value === 'undefined') {
+ return this.options.handleWidth;
+ }
+ this.options.handleWidth = value;
+ this._width();
+ this._containerPosition();
+ return this.$element;
+ }
+ }, {
+ key: 'labelWidth',
+ value: function labelWidth(value) {
+ if (typeof value === 'undefined') {
+ return this.options.labelWidth;
+ }
+ this.options.labelWidth = value;
+ this._width();
+ this._containerPosition();
+ return this.$element;
+ }
+ }, {
+ key: 'baseClass',
+ value: function baseClass(value) {
+ return this.options.baseClass;
+ }
+ }, {
+ key: 'wrapperClass',
+ value: function wrapperClass(value) {
+ if (typeof value === 'undefined') {
+ return this.options.wrapperClass;
+ }
+ if (!value) {
+ value = $.fn.bootstrapSwitch.defaults.wrapperClass;
+ }
+ this.$wrapper.removeClass(this._getClasses(this.options.wrapperClass).join(' '));
+ this.$wrapper.addClass(this._getClasses(value).join(' '));
+ this.options.wrapperClass = value;
+ return this.$element;
+ }
+ }, {
+ key: 'radioAllOff',
+ value: function radioAllOff(value) {
+ if (typeof value === 'undefined') {
+ return this.options.radioAllOff;
+ }
+ var val = Boolean(value);
+ if (this.options.radioAllOff === val) {
+ return this.$element;
+ }
+ this.options.radioAllOff = val;
+ return this.$element;
+ }
+ }, {
+ key: 'onInit',
+ value: function onInit(value) {
+ if (typeof value === 'undefined') {
+ return this.options.onInit;
+ }
+ if (!value) {
+ value = $.fn.bootstrapSwitch.defaults.onInit;
+ }
+ this.options.onInit = value;
+ return this.$element;
+ }
+ }, {
+ key: 'onSwitchChange',
+ value: function onSwitchChange(value) {
+ if (typeof value === 'undefined') {
+ return this.options.onSwitchChange;
+ }
+ if (!value) {
+ value = $.fn.bootstrapSwitch.defaults.onSwitchChange;
+ }
+ this.options.onSwitchChange = value;
+ return this.$element;
+ }
+ }, {
+ key: 'destroy',
+ value: function destroy() {
+ var $form = this.$element.closest('form');
+ if ($form.length) {
+ $form.off('reset.bootstrapSwitch').removeData('bootstrap-switch');
+ }
+ this.$container.children().not(this.$element).remove();
+ this.$element.unwrap().unwrap().off('.bootstrapSwitch').removeData('bootstrap-switch');
+ return this.$element;
+ }
+ }, {
+ key: '_getElementOptions',
+ value: function _getElementOptions() {
+ return {
+ state: this.$element.is(':checked'),
+ size: this.$element.data('size'),
+ animate: this.$element.data('animate'),
+ disabled: this.$element.is(':disabled'),
+ readonly: this.$element.is('[readonly]'),
+ indeterminate: this.$element.data('indeterminate'),
+ inverse: this.$element.data('inverse'),
+ radioAllOff: this.$element.data('radio-all-off'),
+ onColor: this.$element.data('on-color'),
+ offColor: this.$element.data('off-color'),
+ onText: this.$element.data('on-text'),
+ offText: this.$element.data('off-text'),
+ labelText: this.$element.data('label-text'),
+ handleWidth: this.$element.data('handle-width'),
+ labelWidth: this.$element.data('label-width'),
+ baseClass: this.$element.data('base-class'),
+ wrapperClass: this.$element.data('wrapper-class')
+ };
+ }
+ }, {
+ key: '_width',
+ value: function _width() {
+ var _this2 = this;
+
+ var $handles = this.$on.add(this.$off).add(this.$label).css('width', '');
+ var handleWidth = this.options.handleWidth === 'auto' ? Math.round(Math.max(this.$on.width(), this.$off.width())) : this.options.handleWidth;
+ $handles.width(handleWidth);
+ this.$label.width(function (index, width) {
+ if (_this2.options.labelWidth !== 'auto') {
+ return _this2.options.labelWidth;
+ }
+ if (width < handleWidth) {
+ return handleWidth;
+ }
+ return width;
+ });
+ this._handleWidth = this.$on.outerWidth();
+ this._labelWidth = this.$label.outerWidth();
+ this.$container.width(this._handleWidth * 2 + this._labelWidth);
+ return this.$wrapper.width(this._handleWidth + this._labelWidth);
+ }
+ }, {
+ key: '_containerPosition',
+ value: function _containerPosition() {
+ var _this3 = this;
+
+ var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.state;
+ var callback = arguments[1];
+
+ this.$container.css('margin-left', function () {
+ var values = [0, '-' + _this3._handleWidth + 'px'];
+ if (_this3.options.indeterminate) {
+ return '-' + _this3._handleWidth / 2 + 'px';
+ }
+ if (state) {
+ if (_this3.options.inverse) {
+ return values[1];
+ } else {
+ return values[0];
+ }
+ } else {
+ if (_this3.options.inverse) {
+ return values[0];
+ } else {
+ return values[1];
+ }
+ }
+ });
+ }
+ }, {
+ key: '_init',
+ value: function _init() {
+ var _this4 = this;
+
+ var init = function init() {
+ _this4.setPrevOptions();
+ _this4._width();
+ _this4._containerPosition();
+ setTimeout(function () {
+ if (_this4.options.animate) {
+ return _this4.$wrapper.addClass(_this4._getClass('animate'));
+ }
+ }, 50);
+ };
+ if (this.$wrapper.is(':visible')) {
+ init();
+ return;
+ }
+ var initInterval = window.setInterval(function () {
+ if (_this4.$wrapper.is(':visible')) {
+ init();
+ return window.clearInterval(initInterval);
+ }
+ }, 50);
+ }
+ }, {
+ key: '_elementHandlers',
+ value: function _elementHandlers() {
+ var _this5 = this;
+
+ return this.$element.on({
+ 'setPreviousOptions.bootstrapSwitch': this.setPrevOptions.bind(this),
+
+ 'previousState.bootstrapSwitch': function previousStateBootstrapSwitch() {
+ _this5.options = _this5.prevOptions;
+ if (_this5.options.indeterminate) {
+ _this5.$wrapper.addClass(_this5._getClass('indeterminate'));
+ }
+ _this5.$element.prop('checked', _this5.options.state).trigger('change.bootstrapSwitch', true);
+ },
+
+ 'change.bootstrapSwitch': function changeBootstrapSwitch(event, skip) {
+ event.preventDefault();
+ event.stopImmediatePropagation();
+ var state = _this5.$element.is(':checked');
+ _this5._containerPosition(state);
+ if (state === _this5.options.state) {
+ return;
+ }
+ _this5.options.state = state;
+ _this5.$wrapper.toggleClass(_this5._getClass('off')).toggleClass(_this5._getClass('on'));
+ if (!skip) {
+ if (_this5.$element.is(':radio')) {
+ $('[name="' + _this5.$element.attr('name') + '"]').not(_this5.$element).prop('checked', false).trigger('change.bootstrapSwitch', true);
+ }
+ _this5.$element.trigger('switchChange.bootstrapSwitch', [state]);
+ }
+ },
+
+ 'focus.bootstrapSwitch': function focusBootstrapSwitch(event) {
+ event.preventDefault();
+ _this5.$wrapper.addClass(_this5._getClass('focused'));
+ },
+
+ 'blur.bootstrapSwitch': function blurBootstrapSwitch(event) {
+ event.preventDefault();
+ _this5.$wrapper.removeClass(_this5._getClass('focused'));
+ },
+
+ 'keydown.bootstrapSwitch': function keydownBootstrapSwitch(event) {
+ if (!event.which || _this5.options.disabled || _this5.options.readonly) {
+ return;
+ }
+ if (event.which === 37 || event.which === 39) {
+ event.preventDefault();
+ event.stopImmediatePropagation();
+ _this5.state(event.which === 39);
+ }
+ }
+ });
+ }
+ }, {
+ key: '_handleHandlers',
+ value: function _handleHandlers() {
+ var _this6 = this;
+
+ this.$on.on('click.bootstrapSwitch', function (event) {
+ event.preventDefault();
+ event.stopPropagation();
+ _this6.state(false);
+ return _this6.$element.trigger('focus.bootstrapSwitch');
+ });
+ return this.$off.on('click.bootstrapSwitch', function (event) {
+ event.preventDefault();
+ event.stopPropagation();
+ _this6.state(true);
+ return _this6.$element.trigger('focus.bootstrapSwitch');
+ });
+ }
+ }, {
+ key: '_labelHandlers',
+ value: function _labelHandlers() {
+ var _this7 = this;
+
+ var handlers = {
+ click: function click(event) {
+ event.stopPropagation();
+ },
+
+
+ 'mousedown.bootstrapSwitch touchstart.bootstrapSwitch': function mousedownBootstrapSwitchTouchstartBootstrapSwitch(event) {
+ if (_this7._dragStart || _this7.options.disabled || _this7.options.readonly) {
+ return;
+ }
+ event.preventDefault();
+ event.stopPropagation();
+ _this7._dragStart = (event.pageX || event.originalEvent.touches[0].pageX) - parseInt(_this7.$container.css('margin-left'), 10);
+ if (_this7.options.animate) {
+ _this7.$wrapper.removeClass(_this7._getClass('animate'));
+ }
+ _this7.$element.trigger('focus.bootstrapSwitch');
+ },
+
+ 'mousemove.bootstrapSwitch touchmove.bootstrapSwitch': function mousemoveBootstrapSwitchTouchmoveBootstrapSwitch(event) {
+ if (_this7._dragStart == null) {
+ return;
+ }
+ var difference = (event.pageX || event.originalEvent.touches[0].pageX) - _this7._dragStart;
+ event.preventDefault();
+ if (difference < -_this7._handleWidth || difference > 0) {
+ return;
+ }
+ _this7._dragEnd = difference;
+ _this7.$container.css('margin-left', _this7._dragEnd + 'px');
+ },
+
+ 'mouseup.bootstrapSwitch touchend.bootstrapSwitch': function mouseupBootstrapSwitchTouchendBootstrapSwitch(event) {
+ if (!_this7._dragStart) {
+ return;
+ }
+ event.preventDefault();
+ if (_this7.options.animate) {
+ _this7.$wrapper.addClass(_this7._getClass('animate'));
+ }
+ if (_this7._dragEnd) {
+ var state = _this7._dragEnd > -(_this7._handleWidth / 2);
+ _this7._dragEnd = false;
+ _this7.state(_this7.options.inverse ? !state : state);
+ } else {
+ _this7.state(!_this7.options.state);
+ }
+ _this7._dragStart = false;
+ },
+
+ 'mouseleave.bootstrapSwitch': function mouseleaveBootstrapSwitch() {
+ _this7.$label.trigger('mouseup.bootstrapSwitch');
+ }
+ };
+ this.$label.on(handlers);
+ }
+ }, {
+ key: '_externalLabelHandler',
+ value: function _externalLabelHandler() {
+ var _this8 = this;
+
+ var $externalLabel = this.$element.closest('label');
+ $externalLabel.on('click', function (event) {
+ event.preventDefault();
+ event.stopImmediatePropagation();
+ if (event.target === $externalLabel[0]) {
+ _this8.toggleState();
+ }
+ });
+ }
+ }, {
+ key: '_formHandler',
+ value: function _formHandler() {
+ var $form = this.$element.closest('form');
+ if ($form.data('bootstrap-switch')) {
+ return;
+ }
+ $form.on('reset.bootstrapSwitch', function () {
+ window.setTimeout(function () {
+ $form.find('input').filter(function () {
+ return $(this).data('bootstrap-switch');
+ }).each(function () {
+ return $(this).bootstrapSwitch('state', this.checked);
+ });
+ }, 1);
+ }).data('bootstrap-switch', true);
+ }
+ }, {
+ key: '_getClass',
+ value: function _getClass(name) {
+ return this.options.baseClass + '-' + name;
+ }
+ }, {
+ key: '_getClasses',
+ value: function _getClasses(classes) {
+ if (!$.isArray(classes)) {
+ return [this._getClass(classes)];
+ }
+ return classes.map(this._getClass.bind(this));
+ }
+ }]);
+
+ return BootstrapSwitch;
+ }();
+
+ $.fn.bootstrapSwitch = function (option) {
+ for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
+ args[_key2 - 1] = arguments[_key2];
+ }
+
+ function reducer(ret, next) {
+ var $this = $(next);
+ var existingData = $this.data('bootstrap-switch');
+ var data = existingData || new BootstrapSwitch(next, option);
+ if (!existingData) {
+ $this.data('bootstrap-switch', data);
+ }
+ if (typeof option === 'string') {
+ return data[option].apply(data, args);
+ }
+ return ret;
+ }
+ return Array.prototype.reduce.call(this, reducer, this);
+ };
+ $.fn.bootstrapSwitch.Constructor = BootstrapSwitch;
+ $.fn.bootstrapSwitch.defaults = {
+ state: true,
+ size: null,
+ animate: true,
+ disabled: false,
+ readonly: false,
+ indeterminate: false,
+ inverse: false,
+ radioAllOff: false,
+ onColor: 'primary',
+ offColor: 'default',
+ onText: 'ON',
+ offText: 'OFF',
+ labelText: '&nbsp',
+ handleWidth: 'auto',
+ labelWidth: 'auto',
+ baseClass: 'bootstrap-switch',
+ wrapperClass: 'wrapper',
+ onInit: function onInit() {},
+ onSwitchChange: function onSwitchChange() {}
+ };
+});
diff --git a/src/main/resources/static/plugins/bootstrap-switch/js/bootstrap-switch.min.js b/src/main/resources/static/plugins/bootstrap-switch/js/bootstrap-switch.min.js
new file mode 100644
index 0000000..1381dc1
--- /dev/null
+++ b/src/main/resources/static/plugins/bootstrap-switch/js/bootstrap-switch.min.js
@@ -0,0 +1,10 @@
+/**
+ * bootstrap-switch - Turn checkboxes and radio buttons into toggle switches.
+ *
+ * @version v3.3.4
+ * @homepage https://bttstrp.github.io/bootstrap-switch
+ * @author Mattia Larentis <mattia@larentis.eu> (http://larentis.eu)
+ * @license Apache-2.0
+ */
+
+(function(a,b){if('function'==typeof define&&define.amd)define(['jquery'],b);else if('undefined'!=typeof exports)b(require('jquery'));else{b(a.jquery),a.bootstrapSwitch={exports:{}}.exports}})(this,function(a){'use strict';function c(j,k){if(!(j instanceof k))throw new TypeError('Cannot call a class as a function')}var d=function(j){return j&&j.__esModule?j:{default:j}}(a),e=Object.assign||function(j){for(var l,k=1;k<arguments.length;k++)for(var m in l=arguments[k],l)Object.prototype.hasOwnProperty.call(l,m)&&(j[m]=l[m]);return j},f=function(){function j(k,l){for(var n,m=0;m<l.length;m++)n=l[m],n.enumerable=n.enumerable||!1,n.configurable=!0,'value'in n&&(n.writable=!0),Object.defineProperty(k,n.key,n)}return function(k,l,m){return l&&j(k.prototype,l),m&&j(k,m),k}}(),g=d.default||window.jQuery||window.$,h=function(){function j(k){var l=this,m=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{};c(this,j),this.$element=g(k),this.options=g.extend({},g.fn.bootstrapSwitch.defaults,this._getElementOptions(),m),this.prevOptions={},this.$wrapper=g('<div>',{class:function(){var o=[];return o.push(l.options.state?'on':'off'),l.options.size&&o.push(l.options.size),l.options.disabled&&o.push('disabled'),l.options.readonly&&o.push('readonly'),l.options.indeterminate&&o.push('indeterminate'),l.options.inverse&&o.push('inverse'),l.$element.attr('id')&&o.push('id-'+l.$element.attr('id')),o.map(l._getClass.bind(l)).concat([l.options.baseClass],l._getClasses(l.options.wrapperClass)).join(' ')}}),this.$container=g('<div>',{class:this._getClass('container')}),this.$on=g('<span>',{html:this.options.onText,class:this._getClass('handle-on')+' '+this._getClass(this.options.onColor)}),this.$off=g('<span>',{html:this.options.offText,class:this._getClass('handle-off')+' '+this._getClass(this.options.offColor)}),this.$label=g('<span>',{html:this.options.labelText,class:this._getClass('label')}),this.$element.on('init.bootstrapSwitch',this.options.onInit.bind(this,k)),this.$element.on('switchChange.bootstrapSwitch',function(){for(var n=arguments.length,o=Array(n),p=0;p<n;p++)o[p]=arguments[p];!1===l.options.onSwitchChange.apply(k,o)&&(l.$element.is(':radio')?g('[name="'+l.$element.attr('name')+'"]').trigger('previousState.bootstrapSwitch',!0):l.$element.trigger('previousState.bootstrapSwitch',!0))}),this.$container=this.$element.wrap(this.$container).parent(),this.$wrapper=this.$container.wrap(this.$wrapper).parent(),this.$element.before(this.options.inverse?this.$off:this.$on).before(this.$label).before(this.options.inverse?this.$on:this.$off),this.options.indeterminate&&this.$element.prop('indeterminate',!0),this._init(),this._elementHandlers(),this._handleHandlers(),this._labelHandlers(),this._formHandler(),this._externalLabelHandler(),this.$element.trigger('init.bootstrapSwitch',this.options.state)}return f(j,[{key:'setPrevOptions',value:function(){this.prevOptions=e({},this.options)}},{key:'state',value:function(l,m){return'undefined'==typeof l?this.options.state:this.options.disabled||this.options.readonly||this.options.state&&!this.options.radioAllOff&&this.$element.is(':radio')?this.$element:(this.$element.is(':radio')?g('[name="'+this.$element.attr('name')+'"]').trigger('setPreviousOptions.bootstrapSwitch'):this.$element.trigger('setPreviousOptions.bootstrapSwitch'),this.options.indeterminate&&this.indeterminate(!1),this.$element.prop('checked',!!l).trigger('change.bootstrapSwitch',m),this.$element)}},{key:'toggleState',value:function(l){return this.options.disabled||this.options.readonly?this.$element:this.options.indeterminate?(this.indeterminate(!1),this.state(!0)):this.$element.prop('checked',!this.options.state).trigger('change.bootstrapSwitch',l)}},{key:'size',value:function(l){return'undefined'==typeof l?this.options.size:(null!=this.options.size&&this.$wrapper.removeClass(this._getClass(this.options.size)),l&&this.$wrapper.addClass(this._getClass(l)),this._width(),this._containerPosition(),this.options.size=l,this.$element)}},{key:'animate',value:function(l){return'undefined'==typeof l?this.options.animate:this.options.animate===!!l?this.$element:this.toggleAnimate()}},{key:'toggleAnimate',value:function(){return this.options.animate=!this.options.animate,this.$wrapper.toggleClass(this._getClass('animate')),this.$element}},{key:'disabled',value:function(l){return'undefined'==typeof l?this.options.disabled:this.options.disabled===!!l?this.$element:this.toggleDisabled()}},{key:'toggleDisabled',value:function(){return this.options.disabled=!this.options.disabled,this.$element.prop('disabled',this.options.disabled),this.$wrapper.toggleClass(this._getClass('disabled')),this.$element}},{key:'readonly',value:function(l){return'undefined'==typeof l?this.options.readonly:this.options.readonly===!!l?this.$element:this.toggleReadonly()}},{key:'toggleReadonly',value:function(){return this.options.readonly=!this.options.readonly,this.$element.prop('readonly',this.options.readonly),this.$wrapper.toggleClass(this._getClass('readonly')),this.$element}},{key:'indeterminate',value:function(l){return'undefined'==typeof l?this.options.indeterminate:this.options.indeterminate===!!l?this.$element:this.toggleIndeterminate()}},{key:'toggleIndeterminate',value:function(){return this.options.indeterminate=!this.options.indeterminate,this.$element.prop('indeterminate',this.options.indeterminate),this.$wrapper.toggleClass(this._getClass('indeterminate')),this._containerPosition(),this.$element}},{key:'inverse',value:function(l){return'undefined'==typeof l?this.options.inverse:this.options.inverse===!!l?this.$element:this.toggleInverse()}},{key:'toggleInverse',value:function(){this.$wrapper.toggleClass(this._getClass('inverse'));var l=this.$on.clone(!0),m=this.$off.clone(!0);return this.$on.replaceWith(m),this.$off.replaceWith(l),this.$on=m,this.$off=l,this.options.inverse=!this.options.inverse,this.$element}},{key:'onColor',value:function(l){return'undefined'==typeof l?this.options.onColor:(this.options.onColor&&this.$on.removeClass(this._getClass(this.options.onColor)),this.$on.addClass(this._getClass(l)),this.options.onColor=l,this.$element)}},{key:'offColor',value:function(l){return'undefined'==typeof l?this.options.offColor:(this.options.offColor&&this.$off.removeClass(this._getClass(this.options.offColor)),this.$off.addClass(this._getClass(l)),this.options.offColor=l,this.$element)}},{key:'onText',value:function(l){return'undefined'==typeof l?this.options.onText:(this.$on.html(l),this._width(),this._containerPosition(),this.options.onText=l,this.$element)}},{key:'offText',value:function(l){return'undefined'==typeof l?this.options.offText:(this.$off.html(l),this._width(),this._containerPosition(),this.options.offText=l,this.$element)}},{key:'labelText',value:function(l){return'undefined'==typeof l?this.options.labelText:(this.$label.html(l),this._width(),this.options.labelText=l,this.$element)}},{key:'handleWidth',value:function(l){return'undefined'==typeof l?this.options.handleWidth:(this.options.handleWidth=l,this._width(),this._containerPosition(),this.$element)}},{key:'labelWidth',value:function(l){return'undefined'==typeof l?this.options.labelWidth:(this.options.labelWidth=l,this._width(),this._containerPosition(),this.$element)}},{key:'baseClass',value:function(){return this.options.baseClass}},{key:'wrapperClass',value:function(l){return'undefined'==typeof l?this.options.wrapperClass:(l||(l=g.fn.bootstrapSwitch.defaults.wrapperClass),this.$wrapper.removeClass(this._getClasses(this.options.wrapperClass).join(' ')),this.$wrapper.addClass(this._getClasses(l).join(' ')),this.options.wrapperClass=l,this.$element)}},{key:'radioAllOff',value:function(l){if('undefined'==typeof l)return this.options.radioAllOff;var m=!!l;return this.options.radioAllOff===m?this.$element:(this.options.radioAllOff=m,this.$element)}},{key:'onInit',value:function(l){return'undefined'==typeof l?this.options.onInit:(l||(l=g.fn.bootstrapSwitch.defaults.onInit),this.options.onInit=l,this.$element)}},{key:'onSwitchChange',value:function(l){return'undefined'==typeof l?this.options.onSwitchChange:(l||(l=g.fn.bootstrapSwitch.defaults.onSwitchChange),this.options.onSwitchChange=l,this.$element)}},{key:'destroy',value:function(){var l=this.$element.closest('form');return l.length&&l.off('reset.bootstrapSwitch').removeData('bootstrap-switch'),this.$container.children().not(this.$element).remove(),this.$element.unwrap().unwrap().off('.bootstrapSwitch').removeData('bootstrap-switch'),this.$element}},{key:'_getElementOptions',value:function(){return{state:this.$element.is(':checked'),size:this.$element.data('size'),animate:this.$element.data('animate'),disabled:this.$element.is(':disabled'),readonly:this.$element.is('[readonly]'),indeterminate:this.$element.data('indeterminate'),inverse:this.$element.data('inverse'),radioAllOff:this.$element.data('radio-all-off'),onColor:this.$element.data('on-color'),offColor:this.$element.data('off-color'),onText:this.$element.data('on-text'),offText:this.$element.data('off-text'),labelText:this.$element.data('label-text'),handleWidth:this.$element.data('handle-width'),labelWidth:this.$element.data('label-width'),baseClass:this.$element.data('base-class'),wrapperClass:this.$element.data('wrapper-class')}}},{key:'_width',value:function(){var l=this,m=this.$on.add(this.$off).add(this.$label).css('width',''),n='auto'===this.options.handleWidth?Math.round(Math.max(this.$on.width(),this.$off.width())):this.options.handleWidth;return m.width(n),this.$label.width(function(o,p){return'auto'===l.options.labelWidth?p<n?n:p:l.options.labelWidth}),this._handleWidth=this.$on.outerWidth(),this._labelWidth=this.$label.outerWidth(),this.$container.width(2*this._handleWidth+this._labelWidth),this.$wrapper.width(this._handleWidth+this._labelWidth)}},{key:'_containerPosition',value:function(){var l=this,m=0<arguments.length&&void 0!==arguments[0]?arguments[0]:this.options.state,n=arguments[1];this.$container.css('margin-left',function(){var o=[0,'-'+l._handleWidth+'px'];return l.options.indeterminate?'-'+l._handleWidth/2+'px':m?l.options.inverse?o[1]:o[0]:l.options.inverse?o[0]:o[1]})}},{key:'_init',value:function(){var l=this,m=function(){l.setPrevOptions(),l._width(),l._containerPosition(),setTimeout(function(){if(l.options.animate)return l.$wrapper.addClass(l._getClass('animate'))},50)};if(this.$wrapper.is(':visible'))return void m();var n=window.setInterval(function(){if(l.$wrapper.is(':visible'))return m(),window.clearInterval(n)},50)}},{key:'_elementHandlers',value:function(){var l=this;return this.$element.on({'setPreviousOptions.bootstrapSwitch':this.setPrevOptions.bind(this),'previousState.bootstrapSwitch':function(){l.options=l.prevOptions,l.options.indeterminate&&l.$wrapper.addClass(l._getClass('indeterminate')),l.$element.prop('checked',l.options.state).trigger('change.bootstrapSwitch',!0)},'change.bootstrapSwitch':function(n,o){n.preventDefault(),n.stopImmediatePropagation();var p=l.$element.is(':checked');l._containerPosition(p),p===l.options.state||(l.options.state=p,l.$wrapper.toggleClass(l._getClass('off')).toggleClass(l._getClass('on')),!o&&(l.$element.is(':radio')&&g('[name="'+l.$element.attr('name')+'"]').not(l.$element).prop('checked',!1).trigger('change.bootstrapSwitch',!0),l.$element.trigger('switchChange.bootstrapSwitch',[p])))},'focus.bootstrapSwitch':function(n){n.preventDefault(),l.$wrapper.addClass(l._getClass('focused'))},'blur.bootstrapSwitch':function(n){n.preventDefault(),l.$wrapper.removeClass(l._getClass('focused'))},'keydown.bootstrapSwitch':function(n){!n.which||l.options.disabled||l.options.readonly||(37===n.which||39===n.which)&&(n.preventDefault(),n.stopImmediatePropagation(),l.state(39===n.which))}})}},{key:'_handleHandlers',value:function(){var l=this;return this.$on.on('click.bootstrapSwitch',function(m){return m.preventDefault(),m.stopPropagation(),l.state(!1),l.$element.trigger('focus.bootstrapSwitch')}),this.$off.on('click.bootstrapSwitch',function(m){return m.preventDefault(),m.stopPropagation(),l.state(!0),l.$element.trigger('focus.bootstrapSwitch')})}},{key:'_labelHandlers',value:function(){var l=this;this.$label.on({click:function(o){o.stopPropagation()},'mousedown.bootstrapSwitch touchstart.bootstrapSwitch':function(o){l._dragStart||l.options.disabled||l.options.readonly||(o.preventDefault(),o.stopPropagation(),l._dragStart=(o.pageX||o.originalEvent.touches[0].pageX)-parseInt(l.$container.css('margin-left'),10),l.options.animate&&l.$wrapper.removeClass(l._getClass('animate')),l.$element.trigger('focus.bootstrapSwitch'))},'mousemove.bootstrapSwitch touchmove.bootstrapSwitch':function(o){if(null!=l._dragStart){var p=(o.pageX||o.originalEvent.touches[0].pageX)-l._dragStart;o.preventDefault(),p<-l._handleWidth||0<p||(l._dragEnd=p,l.$container.css('margin-left',l._dragEnd+'px'))}},'mouseup.bootstrapSwitch touchend.bootstrapSwitch':function(o){if(l._dragStart){if(o.preventDefault(),l.options.animate&&l.$wrapper.addClass(l._getClass('animate')),l._dragEnd){var p=l._dragEnd>-(l._handleWidth/2);l._dragEnd=!1,l.state(l.options.inverse?!p:p)}else l.state(!l.options.state);l._dragStart=!1}},'mouseleave.bootstrapSwitch':function(){l.$label.trigger('mouseup.bootstrapSwitch')}})}},{key:'_externalLabelHandler',value:function(){var l=this,m=this.$element.closest('label');m.on('click',function(n){n.preventDefault(),n.stopImmediatePropagation(),n.target===m[0]&&l.toggleState()})}},{key:'_formHandler',value:function(){var l=this.$element.closest('form');l.data('bootstrap-switch')||l.on('reset.bootstrapSwitch',function(){window.setTimeout(function(){l.find('input').filter(function(){return g(this).data('bootstrap-switch')}).each(function(){return g(this).bootstrapSwitch('state',this.checked)})},1)}).data('bootstrap-switch',!0)}},{key:'_getClass',value:function(l){return this.options.baseClass+'-'+l}},{key:'_getClasses',value:function(l){return g.isArray(l)?l.map(this._getClass.bind(this)):[this._getClass(l)]}}]),j}();g.fn.bootstrapSwitch=function(j){for(var l=arguments.length,m=Array(1<l?l-1:0),n=1;n<l;n++)m[n-1]=arguments[n];return Array.prototype.reduce.call(this,function(o,p){var q=g(p),r=q.data('bootstrap-switch'),s=r||new h(p,j);return r||q.data('bootstrap-switch',s),'string'==typeof j?s[j].apply(s,m):o},this)},g.fn.bootstrapSwitch.Constructor=h,g.fn.bootstrapSwitch.defaults={state:!0,size:null,animate:!0,disabled:!1,readonly:!1,indeterminate:!1,inverse:!1,radioAllOff:!1,onColor:'primary',offColor:'default',onText:'ON',offText:'OFF',labelText:'&nbsp',handleWidth:'auto',labelWidth:'auto',baseClass:'bootstrap-switch',wrapperClass:'wrapper',onInit:function(){},onSwitchChange:function(){}}});