Forráskód Böngészése

Merge branch 'develop' into upgrade

# Conflicts:
#	dist/js/bootstrap-switch.js
#	dist/js/bootstrap-switch.min.js
#	test/bootstrap-switch.js
Emanuele 8 éve
szülő
commit
bcaf908bb3

+ 1 - 0
bower.json

@@ -2,6 +2,7 @@
   "name": "bootstrap-switch",
   "description": "Turn checkboxes and radio buttons into toggle switches.",
   "version": "3.3.2",
+  "license": "Apache-2.0",
   "main": [
     "./dist/js/bootstrap-switch.js",
     "./dist/css/bootstrap3/bootstrap-switch.css"

+ 573 - 541
dist/js/bootstrap-switch.js

@@ -1,118 +1,160 @@
-'use strict';
-
-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; }; }();
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-(function ($, window) {
-  var BootstrapSwitch = function () {
-    function BootstrapSwitch(element) {
-      var _this = this,
-          _arguments = arguments;
-
-      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
-
-      _classCallCheck(this, BootstrapSwitch);
-
-      this.$element = $(element);
-      this.options = Object.asign({}, $.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')
-      });
+/* ========================================================================
+ * bootstrap-switch - v3.3.2
+ * http://www.bootstrap-switch.org
+ * ========================================================================
+ * Copyright 2012-2013 Mattia Larentis
+ *
+ * ========================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================================================================
+ */
+
+(function() {
+  var slice = [].slice;
 
-      this.$element.on('init.bootstrapSwitch', this.options.onInit.bind(this, element));
-      this.$element.on('switchChange.bootstrapSwitch', function (event) {
-        if (_this.options.onSwitchChange.apply(element, _arguments) === false) {
-          if (_this.$element.is(':radio')) {
-            $('[name="' + _this.$element.attr('name') + '"]').trigger('previousState.bootstrapSwitch', true);
-          } else {
-            _this.$element.trigger('previousState.bootstrapSwitch', true);
-          }
+  (function($, window) {
+    "use strict";
+    var BootstrapSwitch;
+    BootstrapSwitch = (function() {
+      function BootstrapSwitch(element, options) {
+        if (options == null) {
+          options = {};
+        }
+        this.$element = $(element);
+        this.options = $.extend({}, $.fn.bootstrapSwitch.defaults, {
+          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")
+        }, options);
+        this.prevOptions = {};
+        this.$wrapper = $("<div>", {
+          "class": (function(_this) {
+            return function() {
+              var classes;
+              classes = ["" + _this.options.baseClass].concat(_this._getClasses(_this.options.wrapperClass));
+              classes.push(_this.options.state ? _this.options.baseClass + "-on" : _this.options.baseClass + "-off");
+              if (_this.options.size != null) {
+                classes.push(_this.options.baseClass + "-" + _this.options.size);
+              }
+              if (_this.options.disabled) {
+                classes.push(_this.options.baseClass + "-disabled");
+              }
+              if (_this.options.readonly) {
+                classes.push(_this.options.baseClass + "-readonly");
+              }
+              if (_this.options.indeterminate) {
+                classes.push(_this.options.baseClass + "-indeterminate");
+              }
+              if (_this.options.inverse) {
+                classes.push(_this.options.baseClass + "-inverse");
+              }
+              if (_this.$element.attr("id")) {
+                classes.push(_this.options.baseClass + "-id-" + (_this.$element.attr("id")));
+              }
+              return classes.join(" ");
+            };
+          })(this)()
+        });
+        this.$container = $("<div>", {
+          "class": this.options.baseClass + "-container"
+        });
+        this.$on = $("<span>", {
+          html: this.options.onText,
+          "class": this.options.baseClass + "-handle-on " + this.options.baseClass + "-" + this.options.onColor
+        });
+        this.$off = $("<span>", {
+          html: this.options.offText,
+          "class": this.options.baseClass + "-handle-off " + this.options.baseClass + "-" + this.options.offColor
+        });
+        this.$label = $("<span>", {
+          html: this.options.labelText,
+          "class": this.options.baseClass + "-label"
+        });
+        this.$element.on("init.bootstrapSwitch", (function(_this) {
+          return function() {
+            return _this.options.onInit.apply(element, arguments);
+          };
+        })(this));
+        this.$element.on("switchChange.bootstrapSwitch", (function(_this) {
+          return function(e) {
+            if (false === _this.options.onSwitchChange.apply(element, arguments)) {
+              if (_this.$element.is(":radio")) {
+                return $("[name='" + (_this.$element.attr('name')) + "']").trigger("previousState.bootstrapSwitch", true);
+              } else {
+                return _this.$element.trigger("previousState.bootstrapSwitch", true);
+              }
+            }
+          };
+        })(this));
+        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);
+      }
 
-      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);
+      BootstrapSwitch.prototype._constructor = BootstrapSwitch;
 
-      if (this.options.indeterminate) {
-        this.$element.prop('indeterminate', true);
-      }
+      BootstrapSwitch.prototype.setPrevOptions = function() {
+        return this.prevOptions = $.extend(true, {}, this.options);
+      };
 
-      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 = Object.assign({}, this.options);
-      }
-    }, {
-      key: 'state',
-      value: function state(value, skip) {
-        if (typeof value === 'undefined') {
+      BootstrapSwitch.prototype.state = function(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')) {
+        if (this.options.disabled || this.options.readonly) {
+          return this.$element;
+        }
+        if (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');
+        if (this.$element.is(":radio")) {
+          $("[name='" + (this.$element.attr('name')) + "']").trigger("setPreviousOptions.bootstrapSwitch");
         } else {
-          this.$element.trigger('setPreviousOptions.bootstrapSwitch');
+          this.$element.trigger("setPreviousOptions.bootstrapSwitch");
         }
         if (this.options.indeterminate) {
           this.indeterminate(false);
         }
-        this.$element.prop('checked', Boolean(value)).trigger('change.bootstrapSwitch', skip);
+        value = !!value;
+        this.$element.prop("checked", value).trigger("change.bootstrapSwitch", skip);
         return this.$element;
-      }
-    }, {
-      key: 'toggleState',
-      value: function toggleState(skip) {
+      };
+
+      BootstrapSwitch.prototype.toggleState = function(skip) {
         if (this.options.disabled || this.options.readonly) {
           return this.$element;
         }
@@ -120,156 +162,152 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
           this.indeterminate(false);
           return this.state(true);
         } else {
-          return this.$element.prop('checked', !this.options.state).trigger('change.bootstrapSwitch', skip);
+          return this.$element.prop("checked", !this.options.state).trigger("change.bootstrapSwitch", skip);
         }
-      }
-    }, {
-      key: 'size',
-      value: function size(value) {
-        if (typeof value === 'undefined') {
+      };
+
+      BootstrapSwitch.prototype.size = function(value) {
+        if (typeof value === "undefined") {
           return this.options.size;
         }
         if (this.options.size != null) {
-          this.$wrapper.removeClass(this._getClass(this.options.size));
+          this.$wrapper.removeClass(this.options.baseClass + "-" + this.options.size);
         }
         if (value) {
-          this.$wrapper.addClass(this._getClass(value));
+          this.$wrapper.addClass(this.options.baseClass + "-" + value);
         }
         this._width();
         this._containerPosition();
         this.options.size = value;
         return this.$element;
-      }
-    }, {
-      key: 'animate',
-      value: function animate(value) {
-        if (typeof value === 'undefined') {
+      };
+
+      BootstrapSwitch.prototype.animate = function(value) {
+        if (typeof value === "undefined") {
           return this.options.animate;
         }
-        if (this.options.animate === Boolean(value)) {
+        value = !!value;
+        if (value === this.options.animate) {
           return this.$element;
         }
         return this.toggleAnimate();
-      }
-    }, {
-      key: 'toggleAnimate',
-      value: function toggleAnimate() {
+      };
+
+      BootstrapSwitch.prototype.toggleAnimate = function() {
         this.options.animate = !this.options.animate;
-        this.$wrapper.toggleClass(this._getClass('animate'));
+        this.$wrapper.toggleClass(this.options.baseClass + "-animate");
         return this.$element;
-      }
-    }, {
-      key: 'disabled',
-      value: function disabled(value) {
-        if (typeof value === 'undefined') {
+      };
+
+      BootstrapSwitch.prototype.disabled = function(value) {
+        if (typeof value === "undefined") {
           return this.options.disabled;
         }
-        if (this.options.disabled === Boolean(value)) {
+        value = !!value;
+        if (value === this.options.disabled) {
           return this.$element;
         }
         return this.toggleDisabled();
-      }
-    }, {
-      key: 'toggleDisabled',
-      value: function toggleDisabled() {
+      };
+
+      BootstrapSwitch.prototype.toggleDisabled = function() {
         this.options.disabled = !this.options.disabled;
-        this.$element.prop('disabled', this.options.disabled);
-        this.$wrapper.toggleClass(this._getClass('disabled'));
+        this.$element.prop("disabled", this.options.disabled);
+        this.$wrapper.toggleClass(this.options.baseClass + "-disabled");
         return this.$element;
-      }
-    }, {
-      key: 'readonly',
-      value: function readonly(value) {
-        if (typeof value === 'undefined') {
+      };
+
+      BootstrapSwitch.prototype.readonly = function(value) {
+        if (typeof value === "undefined") {
           return this.options.readonly;
         }
-        if (this.options.readonly === Boolean(value)) {
+        value = !!value;
+        if (value === this.options.readonly) {
           return this.$element;
         }
         return this.toggleReadonly();
-      }
-    }, {
-      key: 'toggleReadonly',
-      value: function toggleReadonly() {
+      };
+
+      BootstrapSwitch.prototype.toggleReadonly = function() {
         this.options.readonly = !this.options.readonly;
-        this.$element.prop('readonly', this.options.readonly);
-        this.$wrapper.toggleClass(this._getClass('readonly'));
+        this.$element.prop("readonly", this.options.readonly);
+        this.$wrapper.toggleClass(this.options.baseClass + "-readonly");
         return this.$element;
-      }
-    }, {
-      key: 'indeterminate',
-      value: function indeterminate(value) {
-        if (typeof value === 'undefined') {
+      };
+
+      BootstrapSwitch.prototype.indeterminate = function(value) {
+        if (typeof value === "undefined") {
           return this.options.indeterminate;
         }
-        if (this.options.indeterminate === Boolean(value)) {
+        value = !!value;
+        if (value === this.options.indeterminate) {
           return this.$element;
         }
         return this.toggleIndeterminate();
-      }
-    }, {
-      key: 'toggleIndeterminate',
-      value: function toggleIndeterminate() {
+      };
+
+      BootstrapSwitch.prototype.toggleIndeterminate = function() {
         this.options.indeterminate = !this.options.indeterminate;
-        this.$element.prop('indeterminate', this.options.indeterminate);
-        this.$wrapper.toggleClass(this._getClass('indeterminate'));
+        this.$element.prop("indeterminate", this.options.indeterminate);
+        this.$wrapper.toggleClass(this.options.baseClass + "-indeterminate");
         this._containerPosition();
         return this.$element;
-      }
-    }, {
-      key: 'inverse',
-      value: function inverse(value) {
-        if (typeof value === 'undefined') {
+      };
+
+      BootstrapSwitch.prototype.inverse = function(value) {
+        if (typeof value === "undefined") {
           return this.options.inverse;
         }
-        if (this.options.inverse === Boolean(value)) {
+        value = !!value;
+        if (value === this.options.inverse) {
           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);
+      };
+
+      BootstrapSwitch.prototype.toggleInverse = function() {
+        var $off, $on;
+        this.$wrapper.toggleClass(this.options.baseClass + "-inverse");
+        $on = this.$on.clone(true);
+        $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;
+      };
+
+      BootstrapSwitch.prototype.onColor = function(value) {
+        var color;
+        color = this.options.onColor;
+        if (typeof value === "undefined") {
+          return color;
         }
-        if (this.options.onColor) {
-          this.$on.removeClass(this._getClass(this.options.onColor));
+        if (color != null) {
+          this.$on.removeClass(this.options.baseClass + "-" + color);
         }
-        this.$on.addClass(this._getClass(value));
+        this.$on.addClass(this.options.baseClass + "-" + value);
         this.options.onColor = value;
         return this.$element;
-      }
-    }, {
-      key: 'offColor',
-      value: function offColor(value) {
-        if (typeof value === 'undefined') {
-          return this.options.offColor;
+      };
+
+      BootstrapSwitch.prototype.offColor = function(value) {
+        var color;
+        color = this.options.offColor;
+        if (typeof value === "undefined") {
+          return color;
         }
-        if (this.options.offColor) {
-          this.$off.removeClass(this._getClass(this.options.offColor));
+        if (color != null) {
+          this.$off.removeClass(this.options.baseClass + "-" + color);
         }
-        this.$off.addClass(this._getClass(value));
+        this.$off.addClass(this.options.baseClass + "-" + value);
         this.options.offColor = value;
         return this.$element;
-      }
-    }, {
-      key: 'onText',
-      value: function onText(value) {
-        if (typeof value === 'undefined') {
+      };
+
+      BootstrapSwitch.prototype.onText = function(value) {
+        if (typeof value === "undefined") {
           return this.options.onText;
         }
         this.$on.html(value);
@@ -277,11 +315,10 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
         this._containerPosition();
         this.options.onText = value;
         return this.$element;
-      }
-    }, {
-      key: 'offText',
-      value: function offText(value) {
-        if (typeof value === 'undefined') {
+      };
+
+      BootstrapSwitch.prototype.offText = function(value) {
+        if (typeof value === "undefined") {
           return this.options.offText;
         }
         this.$off.html(value);
@@ -289,76 +326,69 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
         this._containerPosition();
         this.options.offText = value;
         return this.$element;
-      }
-    }, {
-      key: 'labelText',
-      value: function labelText(value) {
-        if (typeof value === 'undefined') {
+      };
+
+      BootstrapSwitch.prototype.labelText = function(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') {
+      };
+
+      BootstrapSwitch.prototype.handleWidth = function(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') {
+      };
+
+      BootstrapSwitch.prototype.labelWidth = function(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) {
+      };
+
+      BootstrapSwitch.prototype.baseClass = function(value) {
         return this.options.baseClass;
-      }
-    }, {
-      key: 'wrapperClass',
-      value: function wrapperClass(value) {
-        if (typeof value === 'undefined') {
+      };
+
+      BootstrapSwitch.prototype.wrapperClass = function(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.$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') {
+      };
+
+      BootstrapSwitch.prototype.radioAllOff = function(value) {
+        if (typeof value === "undefined") {
           return this.options.radioAllOff;
         }
-        var val = Boolean(value);
-        if (this.options.radioAllOff === val) {
+        value = !!value;
+        if (value === this.options.radioAllOff) {
           return this.$element;
         }
-        this.options.radioAllOff = val;
+        this.options.radioAllOff = value;
         return this.$element;
-      }
-    }, {
-      key: 'onInit',
-      value: function onInit(value) {
-        if (typeof value === 'undefined') {
+      };
+
+      BootstrapSwitch.prototype.onInit = function(value) {
+        if (typeof value === "undefined") {
           return this.options.onInit;
         }
         if (!value) {
@@ -366,11 +396,10 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
         }
         this.options.onInit = value;
         return this.$element;
-      }
-    }, {
-      key: 'onSwitchChange',
-      value: function onSwitchChange(value) {
-        if (typeof value === 'undefined') {
+      };
+
+      BootstrapSwitch.prototype.onSwitchChange = function(value) {
+        if (typeof value === "undefined") {
           return this.options.onSwitchChange;
         }
         if (!value) {
@@ -378,335 +407,338 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
         }
         this.options.onSwitchChange = value;
         return this.$element;
-      }
-    }, {
-      key: 'destroy',
-      value: function destroy() {
-        var $form = this.$element.closest('form');
+      };
+
+      BootstrapSwitch.prototype.destroy = function() {
+        var $form;
+        $form = this.$element.closest("form");
         if ($form.length) {
-          $form.off('reset.bootstrapSwitch').removeData('bootstrap-switch');
+          $form.off("reset.bootstrapSwitch").removeData("bootstrap-switch");
         }
         this.$container.children().not(this.$element).remove();
-        this.$element.unwrap().unwrap().off('.bootstrapSwitch').removeData('bootstrap-switch');
+        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 = void 0;
-        if (this.options.handleWidth === 'auto') {
-          handleWidth = Math.round(Math.max(this.$on.width(), this.$off.width()));
-        } else {
-          handleWidth = this.options.handleWidth;
-        }
+      };
+
+      BootstrapSwitch.prototype._width = function() {
+        var $handles, handleWidth;
+        $handles = this.$on.add(this.$off);
+        $handles.add(this.$label).css("width", "");
+        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.$label.width((function(_this) {
+          return function(index, width) {
+            if (_this.options.labelWidth !== "auto") {
+              return _this.options.labelWidth;
+            }
+            if (width < handleWidth) {
+              return handleWidth;
+            } else {
+              return width;
+            }
+          };
+        })(this));
         this._handleWidth = this.$on.outerWidth();
         this._labelWidth = this.$label.outerWidth();
-        this.$container.width(this._handleWidth * 2 + this._labelWidth);
+        this.$container.width((this._handleWidth * 2) + this._labelWidth);
         return this.$wrapper.width(this._handleWidth + this._labelWidth);
-      }
-    }, {
-      key: '_containerPosition',
-      value: function _containerPosition(callback) {
-        var _this3 = this;
-
-        this.$container.css('margin-left', function () {
-          var values = [0, '-' + _this3._handleWidth + 'px'];
-          if (_this3.options.indeterminate) {
-            return '-' + _this3._handleWidth / 2 + 'px';
-          }
-          if (_this3.options.state) {
-            if (_this3.options.inverse) {
-              return values[1];
-            } else {
-              return values[0];
+      };
+
+      BootstrapSwitch.prototype._containerPosition = function(state, callback) {
+        if (state == null) {
+          state = this.options.state;
+        }
+        this.$container.css("margin-left", (function(_this) {
+          return function() {
+            var values;
+            values = [0, "-" + _this._handleWidth + "px"];
+            if (_this.options.indeterminate) {
+              return "-" + (_this._handleWidth / 2) + "px";
             }
-          } else {
-            if (_this3.options.inverse) {
-              return values[0];
+            if (state) {
+              if (_this.options.inverse) {
+                return values[1];
+              } else {
+                return values[0];
+              }
             } else {
-              return values[1];
-            }
-          }
-        });
-        if (callback) {
-          setTimeout(callback.bind(this), 50);
-        }
-      }
-    }, {
-      key: '_init',
-      value: function _init() {
-        var _this4 = this;
-
-        var init = function init() {
-          _this4.setPrevOptions();
-          _this4._width();
-          _this4._containerPosition(null, function () {
-            if (_this4.options.animate) {
-              return _this4.$wrapper.addClass(_this4.options.baseClass + '-animate');
+              if (_this.options.inverse) {
+                return values[0];
+              } else {
+                return values[1];
+              }
             }
-          });
-        };
-        if (this.$wrapper.is(':visible')) {
-          return init();
+          };
+        })(this));
+        if (!callback) {
+          return;
         }
-        var initInterval = window.setInterval(function () {
-          if (_this4.$wrapper.is(':visible')) {
-            init();
-            return window.clearInterval(initInterval);
-          }
+        return setTimeout(function() {
+          return callback();
         }, 50);
-      }
-    }, {
-      key: '_elementHandlers',
-      value: function _elementHandlers() {
-        var _this5 = this;
-
-        return this.$element.on({
-          'setPreviousOptions.bootstrapSwitch': this.setPrevOptions.bind(this),
+      };
 
-          'previousState.bootstrapSwitch': function previousStateBootstrapSwitch() {
-            this.options = this.prevOptions;
-            if (this.options.indeterminate) {
-              this.$wrapper.addClass(this.options.baseClass + '-indeterminate');
+      BootstrapSwitch.prototype._init = function() {
+        var init, initInterval;
+        init = (function(_this) {
+          return function() {
+            _this.setPrevOptions();
+            _this._width();
+            return _this._containerPosition(null, function() {
+              if (_this.options.animate) {
+                return _this.$wrapper.addClass(_this.options.baseClass + "-animate");
+              }
+            });
+          };
+        })(this);
+        if (this.$wrapper.is(":visible")) {
+          return init();
+        }
+        return initInterval = window.setInterval((function(_this) {
+          return function() {
+            if (_this.$wrapper.is(":visible")) {
+              init();
+              return window.clearInterval(initInterval);
             }
-            this.$element.prop('checked', this.options.state).trigger('change.bootstrapSwitch', true);
-          },
-
+          };
+        })(this), 50);
+      };
 
-          '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.options.baseClass + '-off').toggleClass(_this5.options.baseClass + '-on');
-            if (!skip) {
-              if (_this5.$element.is(':radio')) {
-                $('[name="' + _this5.$element.attr('name') + '"]').not(_this5.$element).prop('checked', false).trigger('change.bootstrapSwitch', true);
+      BootstrapSwitch.prototype._elementHandlers = function() {
+        return this.$element.on({
+          "setPreviousOptions.bootstrapSwitch": (function(_this) {
+            return function(e) {
+              return _this.setPrevOptions();
+            };
+          })(this),
+          "previousState.bootstrapSwitch": (function(_this) {
+            return function(e) {
+              _this.options = _this.prevOptions;
+              if (_this.options.indeterminate) {
+                _this.$wrapper.addClass(_this.options.baseClass + "-indeterminate");
               }
-              return _this5.$element.trigger('switchChange.bootstrapSwitch', [state]);
-            }
-          },
+              return _this.$element.prop("checked", _this.options.state).trigger("change.bootstrapSwitch", true);
+            };
+          })(this),
+          "change.bootstrapSwitch": (function(_this) {
+            return function(e, skip) {
+              var state;
+              e.preventDefault();
+              e.stopImmediatePropagation();
+              state = _this.$element.is(":checked");
+              _this._containerPosition(state);
+              if (state === _this.options.state) {
+                return;
+              }
+              _this.options.state = state;
+              _this.$wrapper.toggleClass(_this.options.baseClass + "-off").toggleClass(_this.options.baseClass + "-on");
+              if (!skip) {
+                if (_this.$element.is(":radio")) {
+                  $("[name='" + (_this.$element.attr('name')) + "']").not(_this.$element).prop("checked", false).trigger("change.bootstrapSwitch", true);
+                }
+                return _this.$element.trigger("switchChange.bootstrapSwitch", [state]);
+              }
+            };
+          })(this),
+          "focus.bootstrapSwitch": (function(_this) {
+            return function(e) {
+              e.preventDefault();
+              return _this.$wrapper.addClass(_this.options.baseClass + "-focused");
+            };
+          })(this),
+          "blur.bootstrapSwitch": (function(_this) {
+            return function(e) {
+              e.preventDefault();
+              return _this.$wrapper.removeClass(_this.options.baseClass + "-focused");
+            };
+          })(this),
+          "keydown.bootstrapSwitch": (function(_this) {
+            return function(e) {
+              if (!e.which || _this.options.disabled || _this.options.readonly) {
+                return;
+              }
+              switch (e.which) {
+                case 37:
+                  e.preventDefault();
+                  e.stopImmediatePropagation();
+                  return _this.state(false);
+                case 39:
+                  e.preventDefault();
+                  e.stopImmediatePropagation();
+                  return _this.state(true);
+              }
+            };
+          })(this)
+        });
+      };
 
-          'focus.bootstrapSwitch': function focusBootstrapSwitch(event) {
-            event.preventDefault();
-            this.$wrapper.addClass(this._getClass('focused'));
-          },
-          'blur.bootstrapSwitch': function blurBootstrapSwitch(event) {
+      BootstrapSwitch.prototype._handleHandlers = function() {
+        this.$on.on("click.bootstrapSwitch", (function(_this) {
+          return function(event) {
             event.preventDefault();
-            this.$wrapper.removeClass(this._getClass('focused'));
-          },
-          'keydown.bootstrapSwitch': function keydownBootstrapSwitch(event) {
-            if (!event.which || this.options.disabled || this.options.readonly) {
-              return;
-            }
-            if (event.which === 37 || event.which === 39) {
-              event.preventDefault();
-              event.stopImmediatePropagation();
-              this.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 handlers = {
-          click: function click(event) {
             event.stopPropagation();
-          },
-          'mousedown.bootstrapSwitch touchstart.bootstrapSwitch': function mousedownBootstrapSwitchTouchstartBootstrapSwitch(event) {
-            if (this._dragStart || this.options.disabled || this.options.readonly) {
-              return;
-            }
+            _this.state(false);
+            return _this.$element.trigger("focus.bootstrapSwitch");
+          };
+        })(this));
+        return this.$off.on("click.bootstrapSwitch", (function(_this) {
+          return function(event) {
             event.preventDefault();
             event.stopPropagation();
-            this._dragStart = (event.pageX || event.originalEvent.touches[0].pageX) - parseInt(this.$container.css('margin-left'), 10);
-            if (this.options.animate) {
-              this.$wrapper.removeClass(this._getClass('animate'));
-            }
-            this.$element.trigger('focus.bootstrapSwitch');
-          },
-          'mousemove.bootstrapSwitch touchmove.bootstrapSwitch': function mousemoveBootstrapSwitchTouchmoveBootstrapSwitch(event) {
-            if (this._dragStart == null) {
-              return;
-            }
-            var difference = (event.pageX || event.originalEvent.touches[0].pageX) - this._dragStart;
-            event.preventDefault();
-            if (difference < -this._handleWidth || difference > 0) {
-              return;
-            }
-            this._dragEnd = difference;
-            this.$container.css('margin-left', this._dragEnd + 'px');
+            _this.state(true);
+            return _this.$element.trigger("focus.bootstrapSwitch");
+          };
+        })(this));
+      };
+
+      BootstrapSwitch.prototype._labelHandlers = function() {
+        return this.$label.on({
+          "click": function(e) {
+            return e.stopPropagation();
           },
-          'mouseup.bootstrapSwitch touchend.bootstrapSwitch': function mouseupBootstrapSwitchTouchendBootstrapSwitch(event) {
-            if (!this._dragStart) {
-              return;
-            }
+          "mousedown.bootstrapSwitch touchstart.bootstrapSwitch": (function(_this) {
+            return function(e) {
+              if (_this._dragStart || _this.options.disabled || _this.options.readonly) {
+                return;
+              }
+              e.preventDefault();
+              e.stopPropagation();
+              _this._dragStart = (e.pageX || e.originalEvent.touches[0].pageX) - parseInt(_this.$container.css("margin-left"), 10);
+              if (_this.options.animate) {
+                _this.$wrapper.removeClass(_this.options.baseClass + "-animate");
+              }
+              return _this.$element.trigger("focus.bootstrapSwitch");
+            };
+          })(this),
+          "mousemove.bootstrapSwitch touchmove.bootstrapSwitch": (function(_this) {
+            return function(e) {
+              var difference;
+              if (_this._dragStart == null) {
+                return;
+              }
+              e.preventDefault();
+              difference = (e.pageX || e.originalEvent.touches[0].pageX) - _this._dragStart;
+              if (difference < -_this._handleWidth || difference > 0) {
+                return;
+              }
+              _this._dragEnd = difference;
+              return _this.$container.css("margin-left", _this._dragEnd + "px");
+            };
+          })(this),
+          "mouseup.bootstrapSwitch touchend.bootstrapSwitch": (function(_this) {
+            return function(e) {
+              var state;
+              if (!_this._dragStart) {
+                return;
+              }
+              e.preventDefault();
+              if (_this.options.animate) {
+                _this.$wrapper.addClass(_this.options.baseClass + "-animate");
+              }
+              if (_this._dragEnd) {
+                state = _this._dragEnd > -(_this._handleWidth / 2);
+                _this._dragEnd = false;
+                _this.state(_this.options.inverse ? !state : state);
+              } else {
+                _this.state(!_this.options.state);
+              }
+              return _this._dragStart = false;
+            };
+          })(this),
+          "mouseleave.bootstrapSwitch": (function(_this) {
+            return function(e) {
+              return _this.$label.trigger("mouseup.bootstrapSwitch");
+            };
+          })(this)
+        });
+      };
+
+      BootstrapSwitch.prototype._externalLabelHandler = function() {
+        var $externalLabel;
+        $externalLabel = this.$element.closest("label");
+        return $externalLabel.on("click", (function(_this) {
+          return function(event) {
             event.preventDefault();
-            if (this.options.animate) {
-              this.$wrapper.addClass(this._getClass('animate'));
-            }
-            if (this._dragEnd) {
-              var state = this._dragEnd > -(this._handleWidth / 2);
-              this._dragEnd = false;
-              this.state(this.options.inverse ? !state : state);
-            } else {
-              this.state(!this.options.state);
+            event.stopImmediatePropagation();
+            if (event.target === $externalLabel[0]) {
+              return _this.toggleState();
             }
-            this._dragStart = false;
-          },
-          'mouseleave.bootstrapSwitch': function mouseleaveBootstrapSwitch() {
-            this.$label.trigger('mouseup.bootstrapSwitch');
-          }
-        };
-        this.$label.on(handlers);
-      }
-    }, {
-      key: '_externalLabelHandler',
-      value: function _externalLabelHandler() {
-        var _this7 = this;
-
-        var $externalLabel = this.$element.closest('label');
-        $externalLabel.on('click', function (event) {
-          event.preventDefault();
-          event.stopImmediatePropagation();
-          if (event.target === $externalLabel[0]) {
-            _this7.toggleState();
-          }
-        });
-      }
-    }, {
-      key: '_formHandler',
-      value: function _formHandler() {
-        var $form = this.$element.closest('form');
-        if ($form.data('bootstrap-switch')) {
+          };
+        })(this));
+      };
+
+      BootstrapSwitch.prototype._formHandler = function() {
+        var $form;
+        $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);
+        return $form.on("reset.bootstrapSwitch", function() {
+          return window.setTimeout(function() {
+            return $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) {
+        }).data("bootstrap-switch", true);
+      };
+
+      BootstrapSwitch.prototype._getClasses = function(classes) {
+        var c, cls, i, len;
         if (!$.isArray(classes)) {
-          return [this._getClass(classes)];
+          return [this.options.baseClass + "-" + classes];
         }
-        return classes.map(this._getClass.bind(this));
-      }
-    }]);
-
-    return BootstrapSwitch;
-  }();
-
-  $.fn.bootstrapSwitch = function (option) {
-    for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
-      args[_key - 1] = arguments[_key];
-    }
-
-    var ret = this;
-    this.each(function () {
-      var $this = $(this);
-      var data = $this.data('bootstrap-switch');
-      if (!data) {
-        data = new BootstrapSwitch(this, option);
-        $this.data('bootstrap-switch', data);
-      }
-      if (typeof option === 'string') {
-        ret = data[option].apply(data, args);
-      }
-    });
-    return ret;
-  };
-  $.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() {}
-  };
-})(window.jQuery, window);
+        cls = [];
+        for (i = 0, len = classes.length; i < len; i++) {
+          c = classes[i];
+          cls.push(this.options.baseClass + "-" + c);
+        }
+        return cls;
+      };
+
+      return BootstrapSwitch;
+
+    })();
+    $.fn.bootstrapSwitch = function() {
+      var args, option, ret;
+      option = arguments[0], args = 2 <= arguments.length ? slice.call(arguments, 1) : [];
+      ret = this;
+      this.each(function() {
+        var $this, data;
+        $this = $(this);
+        data = $this.data("bootstrap-switch");
+        if (!data) {
+          $this.data("bootstrap-switch", data = new BootstrapSwitch(this, option));
+        }
+        if (typeof option === "string") {
+          return ret = data[option].apply(data, args);
+        }
+      });
+      return ret;
+    };
+    $.fn.bootstrapSwitch.Constructor = BootstrapSwitch;
+    return $.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() {},
+      onSwitchChange: function() {}
+    };
+  })(window.jQuery, window);
+
+}).call(this);

+ 1 - 1
documentation-2.html

@@ -51,7 +51,7 @@
       </div>
     </header>
     <main id="content" role="main">
-      <div id="content" class="bs-docs-header">
+      <div class="bs-docs-header">
         <div class="container">
           <h1>Documentation</h1>
           <p>v2.0.1</p>

+ 1 - 1
events.html

@@ -51,7 +51,7 @@
       </div>
     </header>
     <main id="content" role="main">
-      <div id="content" class="bs-docs-header">
+      <div class="bs-docs-header">
         <div class="container">
           <h1>Events</h1>
         </div>

+ 1 - 1
examples.html

@@ -51,7 +51,7 @@
       </div>
     </header>
     <main id="content" role="main">
-      <div id="content" class="bs-docs-header">
+      <div class="bs-docs-header">
         <div class="container">
           <h1>Examples</h1>
         </div>

+ 1 - 1
methods.html

@@ -51,7 +51,7 @@
       </div>
     </header>
     <main id="content" role="main">
-      <div id="content" class="bs-docs-header">
+      <div class="bs-docs-header">
         <div class="container">
           <h1>Methods</h1>
         </div>

+ 1 - 1
options.html

@@ -51,7 +51,7 @@
       </div>
     </header>
     <main id="content" role="main">
-      <div id="content" class="bs-docs-header">
+      <div class="bs-docs-header">
         <div class="container">
           <h1>Options</h1>
         </div>

+ 1 - 1
package.json

@@ -32,7 +32,7 @@
     "url": "git://github.com/nostalgiaz/bootstrap-switch.git"
   },
   "bugs": "https://github.com/nostalgiaz/bootstrap-switch/issues",
-  "license": "Apache Version 2",
+  "license": "Apache-2.0",
   "readmeFilename": "README.md",
   "devDependencies": {
     "babel-cli": "^6.22.2",

+ 1 - 1
src/coffee/bootstrap-switch.coffee

@@ -319,7 +319,7 @@ do ($ = window.jQuery, window) ->
 
       # save handleWidth for further label width calculation check
       handleWidth = if @options.handleWidth is "auto"
-      then Math.max @$on.width(), @$off.width()
+      then Math.round Math.max @$on.width(), @$off.width()
       else @options.handleWidth
 
       # set handles width

+ 1 - 1
src/docs/jade/documentation-2.jade

@@ -1,7 +1,7 @@
 extends main
 
 block content
-  #content.bs-docs-header
+  .bs-docs-header
     .container
       h1 Documentation
       p v2.0.1

+ 1 - 1
src/docs/jade/events.jade

@@ -1,7 +1,7 @@
 extends main
 
 block content
-  #content.bs-docs-header
+  .bs-docs-header
     .container
       h1 Events
 

+ 1 - 1
src/docs/jade/examples.jade

@@ -1,7 +1,7 @@
 extends main
 
 block content
-  #content.bs-docs-header
+  .bs-docs-header
     .container
       h1 Examples
 

+ 1 - 1
src/docs/jade/methods.jade

@@ -1,7 +1,7 @@
 extends main
 
 block content
-  #content.bs-docs-header
+  .bs-docs-header
     .container
       h1 Methods
 

+ 1 - 1
src/docs/jade/options.jade

@@ -1,7 +1,7 @@
 extends main
 
 block content
-  #content.bs-docs-header
+  .bs-docs-header
     .container
       h1 Options