Built motion from commit 54a160d.|0.0.140
[motion.git] / public / bower_components / bootstrap-select / bootstrap-select.js
index 7d4b79f..4a1a052 100644 (file)
@@ -1,5 +1,5 @@
 /*!\r
- * Bootstrap-select v1.7.5 (http://silviomoreto.github.io/bootstrap-select)\r
+ * Bootstrap-select v1.7.7 (http://silviomoreto.github.io/bootstrap-select)\r
  *\r
  * Copyright 2013-2015 bootstrap-select\r
  * Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)\r
     this.setStyle = Selectpicker.prototype.setStyle;\r
     this.selectAll = Selectpicker.prototype.selectAll;\r
     this.deselectAll = Selectpicker.prototype.deselectAll;\r
-    this.destroy = Selectpicker.prototype.remove;\r
+    this.destroy = Selectpicker.prototype.destroy;\r
     this.remove = Selectpicker.prototype.remove;\r
     this.show = Selectpicker.prototype.show;\r
     this.hide = Selectpicker.prototype.hide;\r
     this.init();\r
   };\r
 \r
-  Selectpicker.VERSION = '1.7.5';\r
+  Selectpicker.VERSION = '1.7.7';\r
 \r
   // part of this is duplicated in i18n/defaults-en_US.js. Make sure to update both.\r
   Selectpicker.DEFAULTS = {\r
           li = document.createElement('li'),\r
           a = document.createElement('a'),\r
           text = document.createElement('span'),\r
-          header = this.options.header ? this.$menu.find('.popover-title')[0].cloneNode(true) : null,\r
+          header = this.options.header && this.$menu.find('.popover-title').length > 0 ? this.$menu.find('.popover-title')[0].cloneNode(true) : null,\r
           search = this.options.liveSearch ? document.createElement('div') : null,\r
-          actions = this.options.actionsBox && this.multiple ? this.$menu.find('.bs-actionsbox')[0].cloneNode(true) : null,\r
-          doneButton = this.options.doneButton && this.multiple ? this.$menu.find('.bs-donebutton')[0].cloneNode(true) : null;\r
+          actions = this.options.actionsBox && this.multiple && this.$menu.find('.bs-actionsbox').length > 0 ? this.$menu.find('.bs-actionsbox')[0].cloneNode(true) : null,\r
+          doneButton = this.options.doneButton && this.multiple && this.$menu.find('.bs-donebutton').length > 0 ? this.$menu.find('.bs-donebutton')[0].cloneNode(true) : null;\r
 \r
       text.className = 'text';\r
       newElement.className = this.$menu[0].parentNode.className + ' open';\r
     },\r
 \r
     selectPosition: function () {\r
+      this.$bsContainer = $('<div class="bs-container" />');\r
+\r
       var that = this,\r
-          $drop = $('<div class="bs-container" />'),\r
           pos,\r
           actualHeight,\r
           getPlacement = function ($element) {\r
-            $drop.addClass($element.attr('class').replace(/form-control|fit-width/gi, '')).toggleClass('dropup', $element.hasClass('dropup'));\r
+            that.$bsContainer.addClass($element.attr('class').replace(/form-control|fit-width/gi, '')).toggleClass('dropup', $element.hasClass('dropup'));\r
             pos = $element.offset();\r
             actualHeight = $element.hasClass('dropup') ? 0 : $element[0].offsetHeight;\r
-            $drop.css({\r
+            that.$bsContainer.css({\r
               'top': pos.top + actualHeight,\r
               'left': pos.left,\r
               'width': $element[0].offsetWidth\r
           };\r
 \r
       this.$newElement.on('click', function () {\r
+        var $this = $(this);\r
+\r
         if (that.isDisabled()) {\r
           return;\r
         }\r
-        getPlacement($(this));\r
-        $drop.appendTo(that.options.container);\r
-        $drop.toggleClass('open', !$(this).hasClass('open'));\r
-        $drop.append(that.$menu);\r
+\r
+        getPlacement($this);\r
+\r
+        that.$bsContainer\r
+          .appendTo(that.options.container)\r
+          .toggleClass('open', !$this.hasClass('open'))\r
+          .append(that.$menu);\r
       });\r
 \r
       $(window).on('resize scroll', function () {\r
 \r
       this.$element.on('hide.bs.select', function () {\r
         that.$menu.data('height', that.$menu.height());\r
-        $drop.detach();\r
+        that.$bsContainer.detach();\r
       });\r
     },\r
 \r
     remove: function () {\r
       this.$newElement.remove();\r
       this.$element.remove();\r
+    },\r
+\r
+    destroy: function() {\r
+        this.$newElement.remove();\r
+\r
+        if (this.$bsContainer) {\r
+            this.$bsContainer.remove();\r
+        } else {\r
+            this.$menu.remove();\r
+        }\r
+\r
+        this.$element\r
+          .off('.bs.select')\r
+          .removeData('selectpicker')\r
+          .removeClass('bs-select-hidden selectpicker');\r
     }\r
   };\r
 \r
 \r
   $(document)\r
       .data('keycount', 0)\r
-      .on('keydown', '.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="menu"], .bs-searchbox input', Selectpicker.prototype.keydown)\r
+      .on('keydown.bs.select', '.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="menu"], .bs-searchbox input', Selectpicker.prototype.keydown)\r
       .on('focusin.modal', '.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="menu"], .bs-searchbox input', function (e) {\r
         e.stopPropagation();\r
       });\r