diff --git a/build/js/dist/Search.js b/build/js/dist/Search.js
new file mode 100644
index 000000000..884f9b334
--- /dev/null
+++ b/build/js/dist/Search.js
@@ -0,0 +1,193 @@
+'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"); } }
+
+/**
+ * --------------------------------------------
+ * AdminLTE Search.js
+ * License MIT
+ * --------------------------------------------
+ */
+
+var Search = function ($) {
+
+  /**
+   * Constants
+   * ====================================================
+   */
+
+  var NAME = 'Search';
+  var DATA_KEY = 'lte.search';
+  var EVENT_KEY = '.' + DATA_KEY;
+  var JQUERY_NO_CONFLICT = $.fn[NAME];
+
+  var Event = {
+    LOAD_DATA_API: 'load' + EVENT_KEY
+  };
+
+  var Selector = {
+    LI: '.nav-item',
+    LINK: '.nav-link',
+    OPEN: '.menu-open',
+    ACTIVE: '.active',
+    TREEVIEW_MENU: '[data-widget="treeview"]',
+    NAV_TREEVIEW: '.nav-treeview',
+    DATA_WIDGET: '[data-widget="search"]'
+  };
+
+  var ClassName = {
+    LI: 'nav-item',
+    LINK: 'nav-link',
+    NAV_TREEVIEW: 'nav-treeview',
+    OPEN: 'menu-open'
+  };
+
+  var Default = {
+    target: '',
+    case_sensitive: false
+  };
+
+  /**
+   * Class Definition
+   * ====================================================
+   */
+
+  var Search = function () {
+    function Search(element, config) {
+      _classCallCheck(this, Search);
+
+      this._config = config;
+      this._element = element;
+      this._open_menus = null;
+    }
+
+    // Public
+
+    _createClass(Search, [{
+      key: 'init',
+      value: function init() {
+        if (this._config.target === '') {
+          this._config.target = this._element.closest(Selector.TREEVIEW_MENU);
+        } else {
+          this._config.target = $(this._config.target);
+        }
+
+        // Set treeview original state
+        this._open_menus = this._config.target.find(Selector.OPEN);
+
+        // Prevent form submission
+        this._element.parents('form').first().submit(function (event) {
+          event.preventDefault();
+        });
+
+        // Setup search function
+        this._element.keyup(function (event) {
+          event.preventDefault();
+
+          var value = $(event.currentTarget).val();
+
+          if (!this._config.case_sensitive) {
+            value = value.toLowerCase();
+          }
+
+          this.search(value);
+        }.bind(this));
+      }
+    }, {
+      key: 'search',
+      value: function search(value) {
+        var _that = this;
+
+        // If the value is back to null
+        if (!value) {
+          // Close all treeviews
+          this._config.target.find(Selector.LI).css('display', 'block').find(Selector.NAV_TREEVIEW).css('display', 'none');
+
+          // Open the originally opened treeviews
+          this._config.target.find(Selector.OPEN).find(Selector.NAV_TREEVIEW).css('display', 'block');
+          this._open_menus.each(function () {
+            if (!$(this).hasClass(ClassName.OPEN)) {
+              $(this).addClass(Selector.OPEN).css('display', 'block');
+              $(this).children(Selector.NAV_TREEVIEW).css('display', 'block');
+            }
+          });
+          return;
+        }
+
+        // Search through the tree elements
+        this._config.target.find(Selector.LI).each(function () {
+          var text = $(this).children(Selector.LINK).first().text();
+
+          if (!_that._config.case_sensitive) {
+            text = text.toLowerCase();
+          }
+
+          if (text.search(value) == -1) {
+            // No results
+            $(this).css('display', 'none');
+          } else {
+            // Found the result
+            // Make the parent LI visible
+            $(this).parents(Selector.LI).css('display', 'block');
+
+            // Make the parent nav-treeview visible
+            $(this).parents(Selector.NAV_TREEVIEW).addClass('menu-open').css('display', 'block');
+
+            // Make this element visible
+            $(this).css('display', 'block');
+          }
+        });
+      }
+
+      // Static
+
+    }], [{
+      key: '_jQueryInterface',
+      value: function _jQueryInterface(config) {
+        return this.each(function () {
+          var data = $(this).data(DATA_KEY);
+          var _config = $.extend({}, Default, $(this).data());
+
+          if (!data) {
+            data = new Search($(this), _config);
+            $(this).data(DATA_KEY, data);
+          }
+
+          if (config === 'init') {
+            data[config]();
+          }
+        });
+      }
+    }]);
+
+    return Search;
+  }();
+
+  /**
+   * Data API
+   * ====================================================
+   */
+
+  $(window).on(Event.LOAD_DATA_API, function () {
+    $(Selector.DATA_WIDGET).each(function () {
+      Search._jQueryInterface.call($(this), 'init');
+    });
+  });
+
+  /**
+   * jQuery API
+   * ====================================================
+   */
+
+  $.fn[NAME] = Search._jQueryInterface;
+  $.fn[NAME].Constructor = Search;
+  $.fn[NAME].noConflict = function () {
+    $.fn[NAME] = JQUERY_NO_CONFLICT;
+    return Search._jQueryInterface;
+  };
+
+  return Search;
+}(jQuery);
+//# sourceMappingURL=Search.js.map
diff --git a/build/js/dist/Search.js.map b/build/js/dist/Search.js.map
new file mode 100644
index 000000000..63ff64473
--- /dev/null
+++ b/build/js/dist/Search.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../src/Search.js"],"names":["Search","$","NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","fn","Event","LOAD_DATA_API","Selector","LI","LINK","OPEN","ACTIVE","TREEVIEW_MENU","NAV_TREEVIEW","DATA_WIDGET","ClassName","Default","target","case_sensitive","element","config","_config","_element","_open_menus","closest","find","parents","first","submit","event","preventDefault","keyup","value","currentTarget","val","toLowerCase","search","bind","_that","css","each","hasClass","addClass","children","text","data","extend","window","on","_jQueryInterface","call","Constructor","noConflict","jQuery"],"mappings":"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","file":"Search.js","sourcesContent":["/**\n * --------------------------------------------\n * AdminLTE Search.js\n * License MIT\n * --------------------------------------------\n */\n\nconst Search = (($) => {\n\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  const NAME               = 'Search'\n  const DATA_KEY           = 'lte.search'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Event = {\n    LOAD_DATA_API: `load${EVENT_KEY}`\n  }\n\n  const Selector = {\n    LI           : '.nav-item',\n    LINK         : '.nav-link',\n    OPEN         : '.menu-open',\n    ACTIVE       : '.active',\n    TREEVIEW_MENU: '[data-widget=\"treeview\"]',\n    NAV_TREEVIEW : '.nav-treeview',\n    DATA_WIDGET  : '[data-widget=\"search\"]'\n  }\n\n  const ClassName = {\n    LI          : 'nav-item',\n    LINK        : 'nav-link',\n    NAV_TREEVIEW: 'nav-treeview',\n    OPEN        : 'menu-open'\n  }\n\n  const Default = {\n    target        : '',\n    case_sensitive: false\n  }\n\n  /**\n   * Class Definition\n   * ====================================================\n   */\n  class Search {\n\n    constructor(element, config) {\n      this._config     = config\n      this._element    = element\n      this._open_menus = null\n    }\n\n    // Public\n\n    init() {\n      if (this._config.target === '') {\n        this._config.target = this._element.closest(Selector.TREEVIEW_MENU)\n      } else {\n        this._config.target = $(this._config.target)\n      }\n\n      // Set treeview original state\n      this._open_menus = this._config.target.find(Selector.OPEN)\n\n      // Prevent form submission\n      this._element.parents('form').first().submit(function (event) {\n        event.preventDefault()\n      })\n\n      // Setup search function\n      this._element.keyup(function (event) {\n        event.preventDefault()\n\n        let value = $(event.currentTarget).val()\n\n        if (!this._config.case_sensitive) {\n          value = value.toLowerCase()\n        }\n\n        this.search(value)\n      }.bind(this))\n    }\n\n    search(value) {\n      let _that = this\n\n      // If the value is back to null\n      if (!value) {\n        // Close all treeviews\n        this._config.target.find(Selector.LI)\n          .css('display', 'block')\n          .find(Selector.NAV_TREEVIEW)\n          .css('display', 'none')\n\n        // Open the originally opened treeviews\n        this._config.target.find(Selector.OPEN).find(Selector.NAV_TREEVIEW).css('display', 'block')\n        this._open_menus.each(function () {\n          if (!$(this).hasClass(ClassName.OPEN)) {\n            $(this).addClass(Selector.OPEN).css('display', 'block')\n            $(this).children(Selector.NAV_TREEVIEW).css('display', 'block')\n          }\n        })\n        return\n      }\n\n      // Search through the tree elements\n      this._config.target.find(Selector.LI).each(function () {\n        let text = $(this).children(Selector.LINK).first().text()\n\n        if (!_that._config.case_sensitive) {\n          text = text.toLowerCase()\n        }\n\n        if (text.search(value) == -1) {\n          // No results\n          $(this).css('display', 'none')\n        } else { // Found the result\n          // Make the parent LI visible\n          $(this).parents(Selector.LI)\n            .css('display', 'block')\n\n          // Make the parent nav-treeview visible\n          $(this).parents(Selector.NAV_TREEVIEW)\n            .addClass('menu-open')\n            .css('display', 'block')\n\n          // Make this element visible\n          $(this).css('display', 'block')\n        }\n      })\n    }\n\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data    = $(this).data(DATA_KEY)\n        let _config = $.extend({}, Default, $(this).data())\n\n        if (!data) {\n          data = new Search($(this), _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (config === 'init') {\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * Data API\n   * ====================================================\n   */\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    $(Selector.DATA_WIDGET).each(function () {\n      Search._jQueryInterface.call($(this), 'init')\n    })\n  })\n\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $.fn[NAME] = Search._jQueryInterface\n  $.fn[NAME].Constructor = Search\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Search._jQueryInterface\n  }\n\n  return Search\n\n})(jQuery)\n"]}
\ No newline at end of file
diff --git a/build/js/dist/Treeview.js.map b/build/js/dist/Treeview.js.map
index 8a5e365a9..b65ef0ffd 100644
--- a/build/js/dist/Treeview.js.map
+++ b/build/js/dist/Treeview.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../src/Treeview.js"],"names":["Treeview","$","NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","fn","Event","SELECTED","EXPANDED","COLLAPSED","LOAD_DATA_API","Selector","LI","LINK","TREEVIEW_MENU","OPEN","DATA_WIDGET","ClassName","Default","trigger","animationSpeed","accordion","element","config","_config","_element","_setupListeners","treeviewMenu","parentLi","expandedEvent","openMenuLi","siblings","first","openTreeview","find","collapse","slideDown","addClass","collapsedEvent","slideUp","removeClass","event","$relativeTarget","currentTarget","next","is","preventDefault","parents","isOpen","hasClass","expand","document","on","toggle","each","data","extend","window","$treeview","_jQueryInterface","call","Constructor","noConflict","jQuery"],"mappings":"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","file":"Treeview.js","sourcesContent":["/**\n * --------------------------------------------\n * AdminLTE Treeview.js\n * License MIT\n * --------------------------------------------\n */\n\nconst Treeview = (($) => {\n\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  const NAME               = 'Treeview'\n  const DATA_KEY           = 'lte.treeview'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Event = {\n    SELECTED: `selected${EVENT_KEY}`,\n    EXPANDED: `expanded${EVENT_KEY}`,\n    COLLAPSED: `collapsed${EVENT_KEY}`,\n    LOAD_DATA_API: `load${EVENT_KEY}`\n  }\n\n  const Selector = {\n    LI: '.nav-item',\n    LINK: '.nav-link',\n    TREEVIEW_MENU: '.nav-treeview',\n    OPEN: '.menu-open',\n    DATA_WIDGET: '[data-widget=\"treeview\"]'\n  }\n\n  const ClassName = {\n    LI: 'nav-item',\n    LINK: 'nav-link',\n    TREEVIEW_MENU: 'nav-treeview',\n    OPEN: 'menu-open'\n  }\n\n  const Default = {\n    trigger: `${Selector.DATA_WIDGET} ${Selector.LINK}`,\n    animationSpeed: 300,\n    accordion: true\n  }\n\n  /**\n   * Class Definition\n   * ====================================================\n   */\n  class Treeview {\n\n    constructor(element, config) {\n      this._config  = config\n      this._element = element\n    }\n\n    // Public\n\n    init() {\n      this._setupListeners()\n    }\n\n    expand(treeviewMenu, parentLi) {\n      let expandedEvent = $.Event(Event.EXPANDED)\n\n      if (this._config.accordion) {\n        let openMenuLi   = parentLi.siblings(Selector.OPEN).first()\n        let openTreeview = openMenuLi.find(Selector.TREEVIEW_MENU).first()\n        this.collapse(openTreeview, openMenuLi)\n      }\n\n      treeviewMenu.slideDown(this._config.animationSpeed, () => {\n        parentLi.addClass(ClassName.OPEN)\n        $(this._element).trigger(expandedEvent)\n      })\n    }\n\n    collapse(treeviewMenu, parentLi) {\n      let collapsedEvent = $.Event(Event.COLLAPSED)\n\n      treeviewMenu.slideUp(this._config.animationSpeed, () => {\n        parentLi.removeClass(ClassName.OPEN)\n        $(this._element).trigger(collapsedEvent)\n        treeviewMenu.find(`${Selector.OPEN} > ${Selector.TREEVIEW_MENU}`).slideUp()\n        treeviewMenu.find(Selector.OPEN).removeClass(ClassName.OPEN)\n      })\n    }\n\n    collapseAll() {\n\n    }\n\n    expandAll() {\n\n    }\n\n    toggle(event) {\n      let $relativeTarget = $(event.currentTarget)\n      let treeviewMenu    = $relativeTarget.next()\n\n      if (!treeviewMenu.is(Selector.TREEVIEW_MENU)) {\n        return\n      }\n\n      event.preventDefault()\n\n      let parentLi = $relativeTarget.parents(Selector.LI).first()\n      let isOpen   = parentLi.hasClass(ClassName.OPEN)\n\n      if (isOpen) {\n        this.collapse($(treeviewMenu), parentLi)\n      } else {\n        this.expand($(treeviewMenu), parentLi)\n      }\n    }\n\n    // Private\n\n    _setupListeners() {\n      $(document).on('click', this._config.trigger, (event) => {\n        this.toggle(event)\n      })\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data    = $(this).data(DATA_KEY)\n        let _config = $.extend({}, Default, $(this).data())\n\n        if (!data) {\n          data = new Treeview($(this), _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (config === 'init') {\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n  /**\n   * Data API\n   * ====================================================\n   */\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    $(Selector.DATA_WIDGET).each(function () {\n      let $treeview = $(this)\n      Treeview._jQueryInterface.call($treeview, 'init')\n    })\n  })\n\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $.fn[NAME] = Treeview._jQueryInterface\n  $.fn[NAME].Constructor = Treeview\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Treeview._jQueryInterface\n  }\n\n  return Treeview\n\n})(jQuery)\n"]}
\ No newline at end of file
+{"version":3,"sources":["../src/Treeview.js"],"names":["Treeview","$","NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","fn","Event","SELECTED","EXPANDED","COLLAPSED","LOAD_DATA_API","Selector","LI","LINK","TREEVIEW_MENU","OPEN","DATA_WIDGET","ClassName","Default","trigger","animationSpeed","accordion","element","config","_config","_element","_setupListeners","treeviewMenu","parentLi","expandedEvent","openMenuLi","siblings","first","openTreeview","find","collapse","slideDown","addClass","collapsedEvent","slideUp","removeClass","event","$relativeTarget","currentTarget","next","is","preventDefault","parents","isOpen","hasClass","expand","document","on","toggle","each","data","extend","window","$treeview","_jQueryInterface","call","Constructor","noConflict","jQuery"],"mappings":"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","file":"Treeview.js","sourcesContent":["/**\n * --------------------------------------------\n * AdminLTE Treeview.js\n * License MIT\n * --------------------------------------------\n */\n\nconst Treeview = (($) => {\n\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  const NAME               = 'Treeview'\n  const DATA_KEY           = 'lte.treeview'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Event = {\n    SELECTED     : `selected${EVENT_KEY}`,\n    EXPANDED     : `expanded${EVENT_KEY}`,\n    COLLAPSED    : `collapsed${EVENT_KEY}`,\n    LOAD_DATA_API: `load${EVENT_KEY}`\n  }\n\n  const Selector = {\n    LI           : '.nav-item',\n    LINK         : '.nav-link',\n    TREEVIEW_MENU: '.nav-treeview',\n    OPEN         : '.menu-open',\n    DATA_WIDGET  : '[data-widget=\"treeview\"]'\n  }\n\n  const ClassName = {\n    LI           : 'nav-item',\n    LINK         : 'nav-link',\n    TREEVIEW_MENU: 'nav-treeview',\n    OPEN         : 'menu-open'\n  }\n\n  const Default = {\n    trigger       : `${Selector.DATA_WIDGET} ${Selector.LINK}`,\n    animationSpeed: 300,\n    accordion     : true\n  }\n\n  /**\n   * Class Definition\n   * ====================================================\n   */\n  class Treeview {\n\n    constructor(element, config) {\n      this._config  = config\n      this._element = element\n    }\n\n    // Public\n\n    init() {\n      this._setupListeners()\n    }\n\n    expand(treeviewMenu, parentLi) {\n      let expandedEvent = $.Event(Event.EXPANDED)\n\n      if (this._config.accordion) {\n        let openMenuLi   = parentLi.siblings(Selector.OPEN).first()\n        let openTreeview = openMenuLi.find(Selector.TREEVIEW_MENU).first()\n        this.collapse(openTreeview, openMenuLi)\n      }\n\n      treeviewMenu.slideDown(this._config.animationSpeed, () => {\n        parentLi.addClass(ClassName.OPEN)\n        $(this._element).trigger(expandedEvent)\n      })\n    }\n\n    collapse(treeviewMenu, parentLi) {\n      let collapsedEvent = $.Event(Event.COLLAPSED)\n\n      treeviewMenu.slideUp(this._config.animationSpeed, () => {\n        parentLi.removeClass(ClassName.OPEN)\n        $(this._element).trigger(collapsedEvent)\n        treeviewMenu.find(`${Selector.OPEN} > ${Selector.TREEVIEW_MENU}`).slideUp()\n        treeviewMenu.find(Selector.OPEN).removeClass(ClassName.OPEN)\n      })\n    }\n\n    collapseAll() {\n\n    }\n\n    expandAll() {\n\n    }\n\n    toggle(event) {\n      let $relativeTarget = $(event.currentTarget)\n      let treeviewMenu    = $relativeTarget.next()\n\n      if (!treeviewMenu.is(Selector.TREEVIEW_MENU)) {\n        return\n      }\n\n      event.preventDefault()\n\n      let parentLi = $relativeTarget.parents(Selector.LI).first()\n      let isOpen   = parentLi.hasClass(ClassName.OPEN)\n\n      if (isOpen) {\n        this.collapse($(treeviewMenu), parentLi)\n      } else {\n        this.expand($(treeviewMenu), parentLi)\n      }\n    }\n\n    // Private\n\n    _setupListeners() {\n      $(document).on('click', this._config.trigger, (event) => {\n        this.toggle(event)\n      })\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data    = $(this).data(DATA_KEY)\n        let _config = $.extend({}, Default, $(this).data())\n\n        if (!data) {\n          data = new Treeview($(this), _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (config === 'init') {\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n  /**\n   * Data API\n   * ====================================================\n   */\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    $(Selector.DATA_WIDGET).each(function () {\n      let $treeview = $(this)\n      Treeview._jQueryInterface.call($treeview, 'init')\n    })\n  })\n\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $.fn[NAME] = Treeview._jQueryInterface\n  $.fn[NAME].Constructor = Treeview\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Treeview._jQueryInterface\n  }\n\n  return Treeview\n\n})(jQuery)\n"]}
\ No newline at end of file
diff --git a/build/js/src/AdminLTE.js b/build/js/src/AdminLTE.js
index 84c8e187c..b2ff63bb6 100644
--- a/build/js/src/AdminLTE.js
+++ b/build/js/src/AdminLTE.js
@@ -144,31 +144,31 @@ const Treeview = (($) => {
   const JQUERY_NO_CONFLICT = $.fn[NAME]
 
   const Event = {
-    SELECTED: `selected${EVENT_KEY}`,
-    EXPANDED: `expanded${EVENT_KEY}`,
-    COLLAPSED: `collapsed${EVENT_KEY}`,
+    SELECTED     : `selected${EVENT_KEY}`,
+    EXPANDED     : `expanded${EVENT_KEY}`,
+    COLLAPSED    : `collapsed${EVENT_KEY}`,
     LOAD_DATA_API: `load${EVENT_KEY}`
   }
 
   const Selector = {
-    LI: '.nav-item',
-    LINK: '.nav-link',
+    LI           : '.nav-item',
+    LINK         : '.nav-link',
     TREEVIEW_MENU: '.nav-treeview',
-    OPEN: '.menu-open',
-    DATA_WIDGET: '[data-widget="treeview"]'
+    OPEN         : '.menu-open',
+    DATA_WIDGET  : '[data-widget="treeview"]'
   }
 
   const ClassName = {
-    LI: 'nav-item',
-    LINK: 'nav-link',
+    LI           : 'nav-item',
+    LINK         : 'nav-link',
     TREEVIEW_MENU: 'nav-treeview',
-    OPEN: 'menu-open'
+    OPEN         : 'menu-open'
   }
 
   const Default = {
-    trigger: `${Selector.DATA_WIDGET} ${Selector.LINK}`,
+    trigger       : `${Selector.DATA_WIDGET} ${Selector.LINK}`,
     animationSpeed: 300,
-    accordion: true
+    accordion     : true
   }
 
   /**
@@ -565,3 +565,180 @@ const ControlSidebar = (($) => {
   return ControlSidebar
 
 })(jQuery)
+
+const Search = (($) => {
+
+  /**
+   * Constants
+   * ====================================================
+   */
+
+  const NAME               = 'Search'
+  const DATA_KEY           = 'lte.search'
+  const EVENT_KEY          = `.${DATA_KEY}`
+  const JQUERY_NO_CONFLICT = $.fn[NAME]
+
+  const Event = {
+    LOAD_DATA_API: `load${EVENT_KEY}`
+  }
+
+  const Selector = {
+    LI           : '.nav-item',
+    LINK         : '.nav-link',
+    OPEN         : '.menu-open',
+    ACTIVE       : '.active',
+    TREEVIEW_MENU: '[data-widget="treeview"]',
+    NAV_TREEVIEW : '.nav-treeview',
+    DATA_WIDGET  : '[data-widget="search"]'
+  }
+
+  const ClassName = {
+    LI          : 'nav-item',
+    LINK        : 'nav-link',
+    NAV_TREEVIEW: 'nav-treeview',
+    OPEN        : 'menu-open'
+  }
+
+  const Default = {
+    target        : '',
+    case_sensitive: false
+  }
+
+  /**
+   * Class Definition
+   * ====================================================
+   */
+  class Search {
+
+    constructor(element, config) {
+      this._config     = config
+      this._element    = element
+      this._open_menus = null
+    }
+
+    // Public
+
+    init() {
+      if (this._config.target === '') {
+        this._config.target = this._element.closest(Selector.TREEVIEW_MENU)
+      } else {
+        this._config.target = $(this._config.target)
+      }
+
+      // Set treeview original state
+      this._open_menus = this._config.target.find(Selector.OPEN)
+
+      // Prevent form submission
+      this._element.parents('form').first().submit(function (event) {
+        event.preventDefault()
+      })
+
+      // Setup search function
+      this._element.keyup(function (event) {
+        event.preventDefault()
+
+        let value = $(event.currentTarget).val()
+
+        if (!this._config.case_sensitive) {
+          value = value.toLowerCase()
+        }
+
+        this.search(value)
+      }.bind(this))
+    }
+
+    search(value) {
+      let _that = this
+
+      // If the value is back to null
+      if (!value) {
+        // Close all treeviews
+        this._config.target.find(Selector.LI)
+          .css('display', 'block')
+          .find(Selector.NAV_TREEVIEW)
+          .css('display', 'none')
+
+        // Open the originally opened treeviews
+        this._config.target.find(Selector.OPEN).find(Selector.NAV_TREEVIEW).css('display', 'block')
+        this._open_menus.each(function () {
+          if (!$(this).hasClass(ClassName.OPEN)) {
+            $(this).addClass(Selector.OPEN).css('display', 'block')
+            $(this).children(Selector.NAV_TREEVIEW).css('display', 'block')
+          }
+        })
+        return
+      }
+
+      // Search through the tree elements
+      this._config.target.find(Selector.LI).each(function () {
+        let text = $(this).children(Selector.LINK).first().text()
+
+        if (!_that._config.case_sensitive) {
+          text = text.toLowerCase()
+        }
+
+        if (text.search(value) == -1) {
+          // No results
+          $(this).css('display', 'none')
+        } else { // Found the result
+          // Make the parent LI visible
+          $(this).parents(Selector.LI)
+            .css('display', 'block')
+
+          // Make the parent nav-treeview visible
+          $(this).parents(Selector.NAV_TREEVIEW)
+            .addClass('menu-open')
+            .css('display', 'block')
+
+          // Make this element visible
+          $(this).css('display', 'block')
+        }
+      })
+    }
+
+
+    // Static
+
+    static _jQueryInterface(config) {
+      return this.each(function () {
+        let data    = $(this).data(DATA_KEY)
+        let _config = $.extend({}, Default, $(this).data())
+
+        if (!data) {
+          data = new Search($(this), _config)
+          $(this).data(DATA_KEY, data)
+        }
+
+        if (config === 'init') {
+          data[config]()
+        }
+      })
+    }
+  }
+
+  /**
+   * Data API
+   * ====================================================
+   */
+
+  $(window).on(Event.LOAD_DATA_API, () => {
+    $(Selector.DATA_WIDGET).each(function () {
+      Search._jQueryInterface.call($(this), 'init')
+    })
+  })
+
+  /**
+   * jQuery API
+   * ====================================================
+   */
+
+  $.fn[NAME] = Search._jQueryInterface
+  $.fn[NAME].Constructor = Search
+  $.fn[NAME].noConflict  = function () {
+    $.fn[NAME] = JQUERY_NO_CONFLICT
+    return Search._jQueryInterface
+  }
+
+  return Search
+
+})(jQuery)
diff --git a/build/js/src/Search.js b/build/js/src/Search.js
new file mode 100644
index 000000000..4cfe1f0f8
--- /dev/null
+++ b/build/js/src/Search.js
@@ -0,0 +1,183 @@
+/**
+ * --------------------------------------------
+ * AdminLTE Search.js
+ * License MIT
+ * --------------------------------------------
+ */
+
+const Search = (($) => {
+
+  /**
+   * Constants
+   * ====================================================
+   */
+
+  const NAME               = 'Search'
+  const DATA_KEY           = 'lte.search'
+  const EVENT_KEY          = `.${DATA_KEY}`
+  const JQUERY_NO_CONFLICT = $.fn[NAME]
+
+  const Event = {
+    LOAD_DATA_API: `load${EVENT_KEY}`
+  }
+
+  const Selector = {
+    LI           : '.nav-item',
+    LINK         : '.nav-link',
+    OPEN         : '.menu-open',
+    ACTIVE       : '.active',
+    TREEVIEW_MENU: '[data-widget="treeview"]',
+    NAV_TREEVIEW : '.nav-treeview',
+    DATA_WIDGET  : '[data-widget="search"]'
+  }
+
+  const ClassName = {
+    LI          : 'nav-item',
+    LINK        : 'nav-link',
+    NAV_TREEVIEW: 'nav-treeview',
+    OPEN        : 'menu-open'
+  }
+
+  const Default = {
+    target        : '',
+    case_sensitive: false
+  }
+
+  /**
+   * Class Definition
+   * ====================================================
+   */
+  class Search {
+
+    constructor(element, config) {
+      this._config     = config
+      this._element    = element
+      this._open_menus = null
+    }
+
+    // Public
+
+    init() {
+      if (this._config.target === '') {
+        this._config.target = this._element.closest(Selector.TREEVIEW_MENU)
+      } else {
+        this._config.target = $(this._config.target)
+      }
+
+      // Set treeview original state
+      this._open_menus = this._config.target.find(Selector.OPEN)
+
+      // Prevent form submission
+      this._element.parents('form').first().submit(function (event) {
+        event.preventDefault()
+      })
+
+      // Setup search function
+      this._element.keyup(function (event) {
+        event.preventDefault()
+
+        let value = $(event.currentTarget).val()
+
+        if (!this._config.case_sensitive) {
+          value = value.toLowerCase()
+        }
+
+        this.search(value)
+      }.bind(this))
+    }
+
+    search(value) {
+      let _that = this
+
+      // If the value is back to null
+      if (!value) {
+        // Close all treeviews
+        this._config.target.find(Selector.LI)
+          .css('display', 'block')
+          .find(Selector.NAV_TREEVIEW)
+          .css('display', 'none')
+
+        // Open the originally opened treeviews
+        this._config.target.find(Selector.OPEN).find(Selector.NAV_TREEVIEW).css('display', 'block')
+        this._open_menus.each(function () {
+          if (!$(this).hasClass(ClassName.OPEN)) {
+            $(this).addClass(Selector.OPEN).css('display', 'block')
+            $(this).children(Selector.NAV_TREEVIEW).css('display', 'block')
+          }
+        })
+        return
+      }
+
+      // Search through the tree elements
+      this._config.target.find(Selector.LI).each(function () {
+        let text = $(this).children(Selector.LINK).first().text()
+
+        if (!_that._config.case_sensitive) {
+          text = text.toLowerCase()
+        }
+
+        if (text.search(value) == -1) {
+          // No results
+          $(this).css('display', 'none')
+        } else { // Found the result
+          // Make the parent LI visible
+          $(this).parents(Selector.LI)
+            .css('display', 'block')
+
+          // Make the parent nav-treeview visible
+          $(this).parents(Selector.NAV_TREEVIEW)
+            .addClass('menu-open')
+            .css('display', 'block')
+
+          // Make this element visible
+          $(this).css('display', 'block')
+        }
+      })
+    }
+
+
+    // Static
+
+    static _jQueryInterface(config) {
+      return this.each(function () {
+        let data    = $(this).data(DATA_KEY)
+        let _config = $.extend({}, Default, $(this).data())
+
+        if (!data) {
+          data = new Search($(this), _config)
+          $(this).data(DATA_KEY, data)
+        }
+
+        if (config === 'init') {
+          data[config]()
+        }
+      })
+    }
+  }
+
+  /**
+   * Data API
+   * ====================================================
+   */
+
+  $(window).on(Event.LOAD_DATA_API, () => {
+    $(Selector.DATA_WIDGET).each(function () {
+      Search._jQueryInterface.call($(this), 'init')
+    })
+  })
+
+  /**
+   * jQuery API
+   * ====================================================
+   */
+
+  $.fn[NAME] = Search._jQueryInterface
+  $.fn[NAME].Constructor = Search
+  $.fn[NAME].noConflict  = function () {
+    $.fn[NAME] = JQUERY_NO_CONFLICT
+    return Search._jQueryInterface
+  }
+
+  return Search
+
+})(jQuery)
diff --git a/build/js/src/Treeview.js b/build/js/src/Treeview.js
index 4e45647c6..149fb72d8 100644
--- a/build/js/src/Treeview.js
+++ b/build/js/src/Treeview.js
@@ -18,31 +18,31 @@ const Treeview = (($) => {
   const JQUERY_NO_CONFLICT = $.fn[NAME]
 
   const Event = {
-    SELECTED: `selected${EVENT_KEY}`,
-    EXPANDED: `expanded${EVENT_KEY}`,
-    COLLAPSED: `collapsed${EVENT_KEY}`,
+    SELECTED     : `selected${EVENT_KEY}`,
+    EXPANDED     : `expanded${EVENT_KEY}`,
+    COLLAPSED    : `collapsed${EVENT_KEY}`,
     LOAD_DATA_API: `load${EVENT_KEY}`
   }
 
   const Selector = {
-    LI: '.nav-item',
-    LINK: '.nav-link',
+    LI           : '.nav-item',
+    LINK         : '.nav-link',
     TREEVIEW_MENU: '.nav-treeview',
-    OPEN: '.menu-open',
-    DATA_WIDGET: '[data-widget="treeview"]'
+    OPEN         : '.menu-open',
+    DATA_WIDGET  : '[data-widget="treeview"]'
   }
 
   const ClassName = {
-    LI: 'nav-item',
-    LINK: 'nav-link',
+    LI           : 'nav-item',
+    LINK         : 'nav-link',
     TREEVIEW_MENU: 'nav-treeview',
-    OPEN: 'menu-open'
+    OPEN         : 'menu-open'
   }
 
   const Default = {
-    trigger: `${Selector.DATA_WIDGET} ${Selector.LINK}`,
+    trigger       : `${Selector.DATA_WIDGET} ${Selector.LINK}`,
     animationSpeed: 300,
-    accordion: true
+    accordion     : true
   }
 
   /**
diff --git a/dist/js/adminlte.js b/dist/js/adminlte.js
index 16caf5bc5..cd0860ac9 100644
--- a/dist/js/adminlte.js
+++ b/dist/js/adminlte.js
@@ -616,4 +616,184 @@ var ControlSidebar = function ($) {
 
   return ControlSidebar;
 }(jQuery);
+
+var Search = function ($) {
+
+  /**
+   * Constants
+   * ====================================================
+   */
+
+  var NAME = 'Search';
+  var DATA_KEY = 'lte.search';
+  var EVENT_KEY = '.' + DATA_KEY;
+  var JQUERY_NO_CONFLICT = $.fn[NAME];
+
+  var Event = {
+    LOAD_DATA_API: 'load' + EVENT_KEY
+  };
+
+  var Selector = {
+    LI: '.nav-item',
+    LINK: '.nav-link',
+    OPEN: '.menu-open',
+    ACTIVE: '.active',
+    TREEVIEW_MENU: '[data-widget="treeview"]',
+    NAV_TREEVIEW: '.nav-treeview',
+    DATA_WIDGET: '[data-widget="search"]'
+  };
+
+  var ClassName = {
+    LI: 'nav-item',
+    LINK: 'nav-link',
+    NAV_TREEVIEW: 'nav-treeview',
+    OPEN: 'menu-open'
+  };
+
+  var Default = {
+    target: '',
+    case_sensitive: false
+  };
+
+  /**
+   * Class Definition
+   * ====================================================
+   */
+
+  var Search = function () {
+    function Search(element, config) {
+      _classCallCheck(this, Search);
+
+      this._config = config;
+      this._element = element;
+      this._open_menus = null;
+    }
+
+    // Public
+
+    _createClass(Search, [{
+      key: 'init',
+      value: function init() {
+        if (this._config.target === '') {
+          this._config.target = this._element.closest(Selector.TREEVIEW_MENU);
+        } else {
+          this._config.target = $(this._config.target);
+        }
+
+        // Set treeview original state
+        this._open_menus = this._config.target.find(Selector.OPEN);
+
+        // Prevent form submission
+        this._element.parents('form').first().submit(function (event) {
+          event.preventDefault();
+        });
+
+        // Setup search function
+        this._element.keyup(function (event) {
+          event.preventDefault();
+
+          var value = $(event.currentTarget).val();
+
+          if (!this._config.case_sensitive) {
+            value = value.toLowerCase();
+          }
+
+          this.search(value);
+        }.bind(this));
+      }
+    }, {
+      key: 'search',
+      value: function search(value) {
+        var _that = this;
+
+        // If the value is back to null
+        if (!value) {
+          // Close all treeviews
+          this._config.target.find(Selector.LI).css('display', 'block').find(Selector.NAV_TREEVIEW).css('display', 'none');
+
+          // Open the originally opened treeviews
+          this._config.target.find(Selector.OPEN).find(Selector.NAV_TREEVIEW).css('display', 'block');
+          this._open_menus.each(function () {
+            if (!$(this).hasClass(ClassName.OPEN)) {
+              $(this).addClass(Selector.OPEN).css('display', 'block');
+              $(this).children(Selector.NAV_TREEVIEW).css('display', 'block');
+            }
+          });
+          return;
+        }
+
+        // Search through the tree elements
+        this._config.target.find(Selector.LI).each(function () {
+          var text = $(this).children(Selector.LINK).first().text();
+
+          if (!_that._config.case_sensitive) {
+            text = text.toLowerCase();
+          }
+
+          if (text.search(value) == -1) {
+            // No results
+            $(this).css('display', 'none');
+          } else {
+            // Found the result
+            // Make the parent LI visible
+            $(this).parents(Selector.LI).css('display', 'block');
+
+            // Make the parent nav-treeview visible
+            $(this).parents(Selector.NAV_TREEVIEW).addClass('menu-open').css('display', 'block');
+
+            // Make this element visible
+            $(this).css('display', 'block');
+          }
+        });
+      }
+
+      // Static
+
+    }], [{
+      key: '_jQueryInterface',
+      value: function _jQueryInterface(config) {
+        return this.each(function () {
+          var data = $(this).data(DATA_KEY);
+          var _config = $.extend({}, Default, $(this).data());
+
+          if (!data) {
+            data = new Search($(this), _config);
+            $(this).data(DATA_KEY, data);
+          }
+
+          if (config === 'init') {
+            data[config]();
+          }
+        });
+      }
+    }]);
+
+    return Search;
+  }();
+
+  /**
+   * Data API
+   * ====================================================
+   */
+
+  $(window).on(Event.LOAD_DATA_API, function () {
+    $(Selector.DATA_WIDGET).each(function () {
+      Search._jQueryInterface.call($(this), 'init');
+    });
+  });
+
+  /**
+   * jQuery API
+   * ====================================================
+   */
+
+  $.fn[NAME] = Search._jQueryInterface;
+  $.fn[NAME].Constructor = Search;
+  $.fn[NAME].noConflict = function () {
+    $.fn[NAME] = JQUERY_NO_CONFLICT;
+    return Search._jQueryInterface;
+  };
+
+  return Search;
+}(jQuery);
 //# sourceMappingURL=adminlte.js.map
diff --git a/dist/js/adminlte.js.map b/dist/js/adminlte.js.map
index 882d30f33..062c9d26b 100644
--- a/dist/js/adminlte.js.map
+++ b/dist/js/adminlte.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../../build/js/src/AdminLTE.js"],"names":["Layout","$","NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","fn","Event","SIDEBAR","Selector","HEADER","CONTENT","CONTENT_HEADER","WRAPPER","CONTROL_SIDEBAR","LAYOUT_FIXED","FOOTER","ClassName","HOLD","element","_element","_init","heights","window","height","outerHeight","max","_max","css","removeClass","fixLayoutHeight","on","resize","numbers","forEach","v","operation","each","data","_jQueryInterface","Constructor","noConflict","jQuery","Treeview","SELECTED","EXPANDED","COLLAPSED","LOAD_DATA_API","LI","LINK","TREEVIEW_MENU","OPEN","DATA_WIDGET","Default","trigger","animationSpeed","accordion","config","_config","_setupListeners","treeviewMenu","parentLi","expandedEvent","openMenuLi","siblings","first","openTreeview","find","collapse","slideDown","addClass","collapsedEvent","slideUp","event","$relativeTarget","currentTarget","next","is","preventDefault","parents","isOpen","hasClass","expand","document","toggle","extend","$treeview","call","PushMenu","SHOWN","TOGGLE_BUTTON","_isShown","shownEvent","show","button","closest","Widget","$this","ControlSidebar","DATA_API_KEY","CLICK_DATA_API","DATA_TOGGLE","CONTROL_SIDEBAR_OPEN","CONTROL_SIDEBAR_SLIDE","slide","_getConfig","undefined","Error"],"mappings":"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","file":"adminlte.js","sourcesContent":["/*!\n * AdminLTE v3.0.0-alpha (https://almsaeedstudio.com)\n * Copyright 2014-2016 Abdullah Almsaeed <abdullah@almsaeedstudio.com>\n * Project website Almsaeed Studio (https://almsaeedstudio.com)\n * Licensed under MIT (https://github.com/almasaeed2010/AdminLTE/blob/master/LICENSE)\n */\nconst Layout = (($) => {\n  'use strict'\n\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  const NAME = 'Layout'\n  const DATA_KEY = 'lte.layout'\n  const EVENT_KEY = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Event = {\n    SIDEBAR: 'sidebar'\n  }\n\n  const Selector = {\n    SIDEBAR: '.main-sidebar',\n    HEADER: '.main-header',\n    CONTENT: '.content-wrapper',\n    CONTENT_HEADER: '.content-header',\n    WRAPPER: '.wrapper',\n    CONTROL_SIDEBAR: '.control-sidebar',\n    LAYOUT_FIXED: '.layout-fixed',\n    FOOTER: '.main-footer'\n  }\n\n  const ClassName = {\n    HOLD: 'hold-transition',\n    SIDEBAR: 'main-sidebar',\n    LAYOUT_FIXED: 'layout-fixed'\n  }\n\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  class Layout {\n\n    constructor(element) {\n      this._element = element\n\n      this._init()\n    }\n\n    // Public\n\n    fixLayoutHeight() {\n      let heights = [\n          $(window).height(),\n          $(Selector.HEADER).outerHeight(),\n          $(Selector.FOOTER).outerHeight(),\n          $(Selector.SIDEBAR).height()\n        ],\n        max = this._max(heights)\n\n      $(Selector.CONTENT).css('min-height', max - (heights[1] + heights[2]))\n    }\n\n    // Private\n\n    _init() {\n      // Enable transitions\n      $('body').removeClass(ClassName.HOLD)\n\n      // Activate layout height watcher\n      this.fixLayoutHeight()\n      $(Selector.SIDEBAR).on('collapsed.lte.treeview expanded.lte.treeview collapsed.lte.pushmenu expanded.lte.pushmenu', () => {\n        this.fixLayoutHeight()\n      })\n      $(window).resize(() => {\n        this.fixLayoutHeight()\n      })\n\n      $('body, html').css('height', 'auto');\n    }\n\n    _max(numbers) {\n      // Calculate the maximum number in a list\n      let max = 0\n\n      numbers.forEach((v) => {\n        if (v > max) {\n          max = v\n        }\n      })\n\n      return max\n    }\n\n\n    // Static\n\n    static _jQueryInterface(operation) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n\n        if (!data) {\n          data = new Layout(this)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (operation) {\n          data[operation]()\n        }\n      })\n    }\n  }\n\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $.fn[NAME] = Layout._jQueryInterface\n  $.fn[NAME].Constructor = Layout\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Layout._jQueryInterface\n  }\n\n  return Layout\n\n})(jQuery)\n\nconst Treeview = (($) => {\n\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  const NAME               = 'Treeview'\n  const DATA_KEY           = 'lte.treeview'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Event = {\n    SELECTED: `selected${EVENT_KEY}`,\n    EXPANDED: `expanded${EVENT_KEY}`,\n    COLLAPSED: `collapsed${EVENT_KEY}`,\n    LOAD_DATA_API: `load${EVENT_KEY}`\n  }\n\n  const Selector = {\n    LI: '.nav-item',\n    LINK: '.nav-link',\n    TREEVIEW_MENU: '.nav-treeview',\n    OPEN: '.menu-open',\n    DATA_WIDGET: '[data-widget=\"treeview\"]'\n  }\n\n  const ClassName = {\n    LI: 'nav-item',\n    LINK: 'nav-link',\n    TREEVIEW_MENU: 'nav-treeview',\n    OPEN: 'menu-open'\n  }\n\n  const Default = {\n    trigger: `${Selector.DATA_WIDGET} ${Selector.LINK}`,\n    animationSpeed: 300,\n    accordion: true\n  }\n\n  /**\n   * Class Definition\n   * ====================================================\n   */\n  class Treeview {\n\n    constructor(element, config) {\n      this._config  = config\n      this._element = element\n    }\n\n    // Public\n\n    init() {\n      this._setupListeners()\n    }\n\n    expand(treeviewMenu, parentLi) {\n      let expandedEvent = $.Event(Event.EXPANDED)\n\n      if (this._config.accordion) {\n        let openMenuLi   = parentLi.siblings(Selector.OPEN).first()\n        let openTreeview = openMenuLi.find(Selector.TREEVIEW_MENU).first()\n        this.collapse(openTreeview, openMenuLi)\n      }\n\n      treeviewMenu.slideDown(this._config.animationSpeed, () => {\n        parentLi.addClass(ClassName.OPEN)\n        $(this._element).trigger(expandedEvent)\n      })\n    }\n\n    collapse(treeviewMenu, parentLi) {\n      let collapsedEvent = $.Event(Event.COLLAPSED)\n\n      treeviewMenu.slideUp(this._config.animationSpeed, () => {\n        parentLi.removeClass(ClassName.OPEN)\n        $(this._element).trigger(collapsedEvent)\n        treeviewMenu.find(`${Selector.OPEN} > ${Selector.TREEVIEW_MENU}`).slideUp()\n        treeviewMenu.find(Selector.OPEN).removeClass(ClassName.OPEN)\n      })\n    }\n\n    collapseAll() {\n\n    }\n\n    expandAll() {\n\n    }\n\n    toggle(event) {\n      let $relativeTarget = $(event.currentTarget)\n      let treeviewMenu    = $relativeTarget.next()\n\n      if (!treeviewMenu.is(Selector.TREEVIEW_MENU)) {\n        return\n      }\n\n      event.preventDefault()\n\n      let parentLi = $relativeTarget.parents(Selector.LI).first()\n      let isOpen   = parentLi.hasClass(ClassName.OPEN)\n\n      if (isOpen) {\n        this.collapse($(treeviewMenu), parentLi)\n      } else {\n        this.expand($(treeviewMenu), parentLi)\n      }\n    }\n\n    // Private\n\n    _setupListeners() {\n      $(document).on('click', this._config.trigger, (event) => {\n        this.toggle(event)\n      })\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data    = $(this).data(DATA_KEY)\n        let _config = $.extend({}, Default, $(this).data())\n\n        if (!data) {\n          data = new Treeview($(this), _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (config === 'init') {\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n  /**\n   * Data API\n   * ====================================================\n   */\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    $(Selector.DATA_WIDGET).each(function () {\n      let $treeview = $(this)\n      Treeview._jQueryInterface.call($treeview, 'init')\n    })\n  })\n\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $.fn[NAME] = Treeview._jQueryInterface\n  $.fn[NAME].Constructor = Treeview\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Treeview._jQueryInterface\n  }\n\n  return Treeview\n\n})(jQuery)\n\nconst PushMenu = (($) => {\n  'use strict'\n\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  const NAME = 'PushMenu'\n  const DATA_KEY = 'lte.pushmenu'\n  const EVENT_KEY = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Event = {\n    COLLAPSED: `collapsed${EVENT_KEY}`,\n    SHOWN: `shown${EVENT_KEY}`\n  }\n\n  const Selector = {\n    COLLAPSED: 'sidebar-collapse',\n    TOGGLE_BUTTON: '[data-widget=\"pushmenu\"]'\n  }\n\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  class PushMenu {\n\n    constructor(element) {\n      this._element = element\n      this._isShown = !$('body').hasClass(Selector.COLLAPSED) || $('body').hasClass('sidebar-open')\n    }\n\n    // Public\n\n    show() {\n      $('body').addClass('sidebar-open')\n        .removeClass(Selector.COLLAPSED)\n\n      this._isShown = true\n\n      let shownEvent = $.Event(Event.SHOWN)\n      $(this._element).trigger(shownEvent)\n    }\n\n    collapse() {\n      $('body').removeClass('sidebar-open')\n        .addClass(Selector.COLLAPSED)\n\n      this._isShown = false\n\n      let collapsedEvent = $.Event(Event.COLLAPSED)\n      $(this._element).trigger(collapsedEvent)\n    }\n\n    toggle() {\n\n      if (typeof this._isShown === 'undefined') {\n        this._isShown = !$('body').hasClass(Selector.COLLAPSED) || $('body').hasClass('sidebar-open')\n      }\n\n      if (this._isShown) {\n        this.collapse()\n      } else {\n        this.show()\n      }\n    }\n\n    // Static\n\n    static _jQueryInterface(operation) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n\n        if (!data) {\n          data = new PushMenu(this)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (operation) {\n          data[operation]()\n        }\n      })\n    }\n  }\n\n  /**\n   * Data API\n   * ====================================================\n   */\n\n  $(document).on('click', Selector.TOGGLE_BUTTON, (event) => {\n    event.preventDefault()\n\n    let button = event.currentTarget\n\n    if ($(button).data('widget') !== 'pushmenu') {\n      button = $(button).closest(Selector.TOGGLE_BUTTON)\n    }\n\n    PushMenu._jQueryInterface.call($(button), 'toggle')\n  })\n\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $.fn[NAME] = PushMenu._jQueryInterface\n  $.fn[NAME].Constructor = PushMenu\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return PushMenu._jQueryInterface\n  }\n\n  return PushMenu\n\n})(jQuery)\n\nconst Widget = (($) => {\n  'use strict'\n\n  class Widget {\n\n    constructor(element) {\n      this._element = element\n    }\n\n    static _jQueryInterface(element) {\n      let $this = $(element)\n      $this.show()\n    }\n  }\n\n  return Widget\n\n})(jQuery)\n\nconst ControlSidebar = (($) => {\n  'use strict'\n\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  const NAME               = 'ControlSidebar'\n  const DATA_KEY           = 'lte.control.sidebar'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n  const DATA_API_KEY       = '.data-api'\n\n  const Event = {\n    CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const Selector = {\n    CONTROL_SIDEBAR: '.control-sidebar',\n    DATA_TOGGLE    : '[data-widget=\"control-sidebar\"]'\n  }\n\n  const ClassName = {\n    CONTROL_SIDEBAR_OPEN : 'control-sidebar-open',\n    CONTROL_SIDEBAR_SLIDE: 'control-sidebar-slide-open'\n  }\n\n  const Default = {\n    slide: true\n  }\n\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  class ControlSidebar {\n\n    constructor(element, config) {\n      this._element = element\n      this._config  = this._getConfig(config);\n    }\n\n    // Public\n\n    show() {\n      // Show the control sidebar\n      if (this._config.slide) {\n        $('body').removeClass(ClassName.CONTROL_SIDEBAR_SLIDE)\n      } else {\n        $('body').removeClass(ClassName.CONTROL_SIDEBAR_OPEN)\n      }\n    }\n\n    collapse() {\n      // Collapse the control sidebar\n      if (this._config.slide) {\n        $('body').addClass(ClassName.CONTROL_SIDEBAR_SLIDE)\n      } else {\n        $('body').addClass(ClassName.CONTROL_SIDEBAR_OPEN)\n      }\n    }\n\n    toggle() {\n      if ($('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || $('body').hasClass(ClassName.CONTROL_SIDEBAR_SLIDE)) {\n        // Open the control sidebar\n        this.show()\n      } else {\n        // Close the control sidebar\n        this.collapse()\n      }\n    }\n\n    // Private\n\n    _getConfig(config) {\n      return $.extend({}, Default, config)\n    }\n\n    // Static\n\n    static _jQueryInterface(operation) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n\n        if (!data) {\n          data = new ControlSidebar(this, $(this).data())\n          $(this).data(DATA_KEY, data)\n        }\n\n        if(data[operation] === undefined) {\n          throw new Error(`${operation} is not a function`)\n        }\n\n        data[operation]();\n      })\n    }\n  }\n\n  /**\n   *\n   * Data Api implementation\n   * ====================================================\n   */\n\n  $(document).on('click', Selector.DATA_TOGGLE, function (event) {\n    event.preventDefault()\n\n    ControlSidebar._jQueryInterface.call($(this), 'toggle')\n  })\n\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $.fn[NAME] = ControlSidebar._jQueryInterface\n  $.fn[NAME].Constructor = ControlSidebar\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return ControlSidebar._jQueryInterface\n  }\n\n  return ControlSidebar\n\n})(jQuery)\n"]}
\ No newline at end of file
+{"version":3,"sources":["../../build/js/src/AdminLTE.js"],"names":["Layout","$","NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","fn","Event","SIDEBAR","Selector","HEADER","CONTENT","CONTENT_HEADER","WRAPPER","CONTROL_SIDEBAR","LAYOUT_FIXED","FOOTER","ClassName","HOLD","element","_element","_init","heights","window","height","outerHeight","max","_max","css","removeClass","fixLayoutHeight","on","resize","numbers","forEach","v","operation","each","data","_jQueryInterface","Constructor","noConflict","jQuery","Treeview","SELECTED","EXPANDED","COLLAPSED","LOAD_DATA_API","LI","LINK","TREEVIEW_MENU","OPEN","DATA_WIDGET","Default","trigger","animationSpeed","accordion","config","_config","_setupListeners","treeviewMenu","parentLi","expandedEvent","openMenuLi","siblings","first","openTreeview","find","collapse","slideDown","addClass","collapsedEvent","slideUp","event","$relativeTarget","currentTarget","next","is","preventDefault","parents","isOpen","hasClass","expand","document","toggle","extend","$treeview","call","PushMenu","SHOWN","TOGGLE_BUTTON","_isShown","shownEvent","show","button","closest","Widget","$this","ControlSidebar","DATA_API_KEY","CLICK_DATA_API","DATA_TOGGLE","CONTROL_SIDEBAR_OPEN","CONTROL_SIDEBAR_SLIDE","slide","_getConfig","undefined","Error","Search","ACTIVE","NAV_TREEVIEW","target","case_sensitive","_open_menus","submit","keyup","value","val","toLowerCase","search","bind","_that","children","text"],"mappings":"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","file":"adminlte.js","sourcesContent":["/*!\n * AdminLTE v3.0.0-alpha (https://almsaeedstudio.com)\n * Copyright 2014-2016 Abdullah Almsaeed <abdullah@almsaeedstudio.com>\n * Project website Almsaeed Studio (https://almsaeedstudio.com)\n * Licensed under MIT (https://github.com/almasaeed2010/AdminLTE/blob/master/LICENSE)\n */\nconst Layout = (($) => {\n  'use strict'\n\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  const NAME = 'Layout'\n  const DATA_KEY = 'lte.layout'\n  const EVENT_KEY = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Event = {\n    SIDEBAR: 'sidebar'\n  }\n\n  const Selector = {\n    SIDEBAR: '.main-sidebar',\n    HEADER: '.main-header',\n    CONTENT: '.content-wrapper',\n    CONTENT_HEADER: '.content-header',\n    WRAPPER: '.wrapper',\n    CONTROL_SIDEBAR: '.control-sidebar',\n    LAYOUT_FIXED: '.layout-fixed',\n    FOOTER: '.main-footer'\n  }\n\n  const ClassName = {\n    HOLD: 'hold-transition',\n    SIDEBAR: 'main-sidebar',\n    LAYOUT_FIXED: 'layout-fixed'\n  }\n\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  class Layout {\n\n    constructor(element) {\n      this._element = element\n\n      this._init()\n    }\n\n    // Public\n\n    fixLayoutHeight() {\n      let heights = [\n          $(window).height(),\n          $(Selector.HEADER).outerHeight(),\n          $(Selector.FOOTER).outerHeight(),\n          $(Selector.SIDEBAR).height()\n        ],\n        max = this._max(heights)\n\n      $(Selector.CONTENT).css('min-height', max - (heights[1] + heights[2]))\n    }\n\n    // Private\n\n    _init() {\n      // Enable transitions\n      $('body').removeClass(ClassName.HOLD)\n\n      // Activate layout height watcher\n      this.fixLayoutHeight()\n      $(Selector.SIDEBAR).on('collapsed.lte.treeview expanded.lte.treeview collapsed.lte.pushmenu expanded.lte.pushmenu', () => {\n        this.fixLayoutHeight()\n      })\n      $(window).resize(() => {\n        this.fixLayoutHeight()\n      })\n\n      $('body, html').css('height', 'auto');\n    }\n\n    _max(numbers) {\n      // Calculate the maximum number in a list\n      let max = 0\n\n      numbers.forEach((v) => {\n        if (v > max) {\n          max = v\n        }\n      })\n\n      return max\n    }\n\n\n    // Static\n\n    static _jQueryInterface(operation) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n\n        if (!data) {\n          data = new Layout(this)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (operation) {\n          data[operation]()\n        }\n      })\n    }\n  }\n\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $.fn[NAME] = Layout._jQueryInterface\n  $.fn[NAME].Constructor = Layout\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Layout._jQueryInterface\n  }\n\n  return Layout\n\n})(jQuery)\n\nconst Treeview = (($) => {\n\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  const NAME               = 'Treeview'\n  const DATA_KEY           = 'lte.treeview'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Event = {\n    SELECTED     : `selected${EVENT_KEY}`,\n    EXPANDED     : `expanded${EVENT_KEY}`,\n    COLLAPSED    : `collapsed${EVENT_KEY}`,\n    LOAD_DATA_API: `load${EVENT_KEY}`\n  }\n\n  const Selector = {\n    LI           : '.nav-item',\n    LINK         : '.nav-link',\n    TREEVIEW_MENU: '.nav-treeview',\n    OPEN         : '.menu-open',\n    DATA_WIDGET  : '[data-widget=\"treeview\"]'\n  }\n\n  const ClassName = {\n    LI           : 'nav-item',\n    LINK         : 'nav-link',\n    TREEVIEW_MENU: 'nav-treeview',\n    OPEN         : 'menu-open'\n  }\n\n  const Default = {\n    trigger       : `${Selector.DATA_WIDGET} ${Selector.LINK}`,\n    animationSpeed: 300,\n    accordion     : true\n  }\n\n  /**\n   * Class Definition\n   * ====================================================\n   */\n  class Treeview {\n\n    constructor(element, config) {\n      this._config  = config\n      this._element = element\n    }\n\n    // Public\n\n    init() {\n      this._setupListeners()\n    }\n\n    expand(treeviewMenu, parentLi) {\n      let expandedEvent = $.Event(Event.EXPANDED)\n\n      if (this._config.accordion) {\n        let openMenuLi   = parentLi.siblings(Selector.OPEN).first()\n        let openTreeview = openMenuLi.find(Selector.TREEVIEW_MENU).first()\n        this.collapse(openTreeview, openMenuLi)\n      }\n\n      treeviewMenu.slideDown(this._config.animationSpeed, () => {\n        parentLi.addClass(ClassName.OPEN)\n        $(this._element).trigger(expandedEvent)\n      })\n    }\n\n    collapse(treeviewMenu, parentLi) {\n      let collapsedEvent = $.Event(Event.COLLAPSED)\n\n      treeviewMenu.slideUp(this._config.animationSpeed, () => {\n        parentLi.removeClass(ClassName.OPEN)\n        $(this._element).trigger(collapsedEvent)\n        treeviewMenu.find(`${Selector.OPEN} > ${Selector.TREEVIEW_MENU}`).slideUp()\n        treeviewMenu.find(Selector.OPEN).removeClass(ClassName.OPEN)\n      })\n    }\n\n    collapseAll() {\n\n    }\n\n    expandAll() {\n\n    }\n\n    toggle(event) {\n      let $relativeTarget = $(event.currentTarget)\n      let treeviewMenu    = $relativeTarget.next()\n\n      if (!treeviewMenu.is(Selector.TREEVIEW_MENU)) {\n        return\n      }\n\n      event.preventDefault()\n\n      let parentLi = $relativeTarget.parents(Selector.LI).first()\n      let isOpen   = parentLi.hasClass(ClassName.OPEN)\n\n      if (isOpen) {\n        this.collapse($(treeviewMenu), parentLi)\n      } else {\n        this.expand($(treeviewMenu), parentLi)\n      }\n    }\n\n    // Private\n\n    _setupListeners() {\n      $(document).on('click', this._config.trigger, (event) => {\n        this.toggle(event)\n      })\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data    = $(this).data(DATA_KEY)\n        let _config = $.extend({}, Default, $(this).data())\n\n        if (!data) {\n          data = new Treeview($(this), _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (config === 'init') {\n          data[config]()\n        }\n      })\n    }\n\n  }\n\n  /**\n   * Data API\n   * ====================================================\n   */\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    $(Selector.DATA_WIDGET).each(function () {\n      let $treeview = $(this)\n      Treeview._jQueryInterface.call($treeview, 'init')\n    })\n  })\n\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $.fn[NAME] = Treeview._jQueryInterface\n  $.fn[NAME].Constructor = Treeview\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Treeview._jQueryInterface\n  }\n\n  return Treeview\n\n})(jQuery)\n\nconst PushMenu = (($) => {\n  'use strict'\n\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  const NAME = 'PushMenu'\n  const DATA_KEY = 'lte.pushmenu'\n  const EVENT_KEY = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Event = {\n    COLLAPSED: `collapsed${EVENT_KEY}`,\n    SHOWN: `shown${EVENT_KEY}`\n  }\n\n  const Selector = {\n    COLLAPSED: 'sidebar-collapse',\n    TOGGLE_BUTTON: '[data-widget=\"pushmenu\"]'\n  }\n\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  class PushMenu {\n\n    constructor(element) {\n      this._element = element\n      this._isShown = !$('body').hasClass(Selector.COLLAPSED) || $('body').hasClass('sidebar-open')\n    }\n\n    // Public\n\n    show() {\n      $('body').addClass('sidebar-open')\n        .removeClass(Selector.COLLAPSED)\n\n      this._isShown = true\n\n      let shownEvent = $.Event(Event.SHOWN)\n      $(this._element).trigger(shownEvent)\n    }\n\n    collapse() {\n      $('body').removeClass('sidebar-open')\n        .addClass(Selector.COLLAPSED)\n\n      this._isShown = false\n\n      let collapsedEvent = $.Event(Event.COLLAPSED)\n      $(this._element).trigger(collapsedEvent)\n    }\n\n    toggle() {\n\n      if (typeof this._isShown === 'undefined') {\n        this._isShown = !$('body').hasClass(Selector.COLLAPSED) || $('body').hasClass('sidebar-open')\n      }\n\n      if (this._isShown) {\n        this.collapse()\n      } else {\n        this.show()\n      }\n    }\n\n    // Static\n\n    static _jQueryInterface(operation) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n\n        if (!data) {\n          data = new PushMenu(this)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (operation) {\n          data[operation]()\n        }\n      })\n    }\n  }\n\n  /**\n   * Data API\n   * ====================================================\n   */\n\n  $(document).on('click', Selector.TOGGLE_BUTTON, (event) => {\n    event.preventDefault()\n\n    let button = event.currentTarget\n\n    if ($(button).data('widget') !== 'pushmenu') {\n      button = $(button).closest(Selector.TOGGLE_BUTTON)\n    }\n\n    PushMenu._jQueryInterface.call($(button), 'toggle')\n  })\n\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $.fn[NAME] = PushMenu._jQueryInterface\n  $.fn[NAME].Constructor = PushMenu\n  $.fn[NAME].noConflict = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return PushMenu._jQueryInterface\n  }\n\n  return PushMenu\n\n})(jQuery)\n\nconst Widget = (($) => {\n  'use strict'\n\n  class Widget {\n\n    constructor(element) {\n      this._element = element\n    }\n\n    static _jQueryInterface(element) {\n      let $this = $(element)\n      $this.show()\n    }\n  }\n\n  return Widget\n\n})(jQuery)\n\nconst ControlSidebar = (($) => {\n  'use strict'\n\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  const NAME               = 'ControlSidebar'\n  const DATA_KEY           = 'lte.control.sidebar'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n  const DATA_API_KEY       = '.data-api'\n\n  const Event = {\n    CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  const Selector = {\n    CONTROL_SIDEBAR: '.control-sidebar',\n    DATA_TOGGLE    : '[data-widget=\"control-sidebar\"]'\n  }\n\n  const ClassName = {\n    CONTROL_SIDEBAR_OPEN : 'control-sidebar-open',\n    CONTROL_SIDEBAR_SLIDE: 'control-sidebar-slide-open'\n  }\n\n  const Default = {\n    slide: true\n  }\n\n  /**\n   * Class Definition\n   * ====================================================\n   */\n\n  class ControlSidebar {\n\n    constructor(element, config) {\n      this._element = element\n      this._config  = this._getConfig(config);\n    }\n\n    // Public\n\n    show() {\n      // Show the control sidebar\n      if (this._config.slide) {\n        $('body').removeClass(ClassName.CONTROL_SIDEBAR_SLIDE)\n      } else {\n        $('body').removeClass(ClassName.CONTROL_SIDEBAR_OPEN)\n      }\n    }\n\n    collapse() {\n      // Collapse the control sidebar\n      if (this._config.slide) {\n        $('body').addClass(ClassName.CONTROL_SIDEBAR_SLIDE)\n      } else {\n        $('body').addClass(ClassName.CONTROL_SIDEBAR_OPEN)\n      }\n    }\n\n    toggle() {\n      if ($('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || $('body').hasClass(ClassName.CONTROL_SIDEBAR_SLIDE)) {\n        // Open the control sidebar\n        this.show()\n      } else {\n        // Close the control sidebar\n        this.collapse()\n      }\n    }\n\n    // Private\n\n    _getConfig(config) {\n      return $.extend({}, Default, config)\n    }\n\n    // Static\n\n    static _jQueryInterface(operation) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n\n        if (!data) {\n          data = new ControlSidebar(this, $(this).data())\n          $(this).data(DATA_KEY, data)\n        }\n\n        if(data[operation] === undefined) {\n          throw new Error(`${operation} is not a function`)\n        }\n\n        data[operation]();\n      })\n    }\n  }\n\n  /**\n   *\n   * Data Api implementation\n   * ====================================================\n   */\n\n  $(document).on('click', Selector.DATA_TOGGLE, function (event) {\n    event.preventDefault()\n\n    ControlSidebar._jQueryInterface.call($(this), 'toggle')\n  })\n\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $.fn[NAME] = ControlSidebar._jQueryInterface\n  $.fn[NAME].Constructor = ControlSidebar\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return ControlSidebar._jQueryInterface\n  }\n\n  return ControlSidebar\n\n})(jQuery)\n\nconst Search = (($) => {\n\n  /**\n   * Constants\n   * ====================================================\n   */\n\n  const NAME               = 'Search'\n  const DATA_KEY           = 'lte.search'\n  const EVENT_KEY          = `.${DATA_KEY}`\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n  const Event = {\n    LOAD_DATA_API: `load${EVENT_KEY}`\n  }\n\n  const Selector = {\n    LI           : '.nav-item',\n    LINK         : '.nav-link',\n    OPEN         : '.menu-open',\n    ACTIVE       : '.active',\n    TREEVIEW_MENU: '[data-widget=\"treeview\"]',\n    NAV_TREEVIEW : '.nav-treeview',\n    DATA_WIDGET  : '[data-widget=\"search\"]'\n  }\n\n  const ClassName = {\n    LI          : 'nav-item',\n    LINK        : 'nav-link',\n    NAV_TREEVIEW: 'nav-treeview',\n    OPEN        : 'menu-open'\n  }\n\n  const Default = {\n    target        : '',\n    case_sensitive: false\n  }\n\n  /**\n   * Class Definition\n   * ====================================================\n   */\n  class Search {\n\n    constructor(element, config) {\n      this._config     = config\n      this._element    = element\n      this._open_menus = null\n    }\n\n    // Public\n\n    init() {\n      if (this._config.target === '') {\n        this._config.target = this._element.closest(Selector.TREEVIEW_MENU)\n      } else {\n        this._config.target = $(this._config.target)\n      }\n\n      // Set treeview original state\n      this._open_menus = this._config.target.find(Selector.OPEN)\n\n      // Prevent form submission\n      this._element.parents('form').first().submit(function (event) {\n        event.preventDefault()\n      })\n\n      // Setup search function\n      this._element.keyup(function (event) {\n        event.preventDefault()\n\n        let value = $(event.currentTarget).val()\n\n        if (!this._config.case_sensitive) {\n          value = value.toLowerCase()\n        }\n\n        this.search(value)\n      }.bind(this))\n    }\n\n    search(value) {\n      let _that = this\n\n      // If the value is back to null\n      if (!value) {\n        // Close all treeviews\n        this._config.target.find(Selector.LI)\n          .css('display', 'block')\n          .find(Selector.NAV_TREEVIEW)\n          .css('display', 'none')\n\n        // Open the originally opened treeviews\n        this._config.target.find(Selector.OPEN).find(Selector.NAV_TREEVIEW).css('display', 'block')\n        this._open_menus.each(function () {\n          if (!$(this).hasClass(ClassName.OPEN)) {\n            $(this).addClass(Selector.OPEN).css('display', 'block')\n            $(this).children(Selector.NAV_TREEVIEW).css('display', 'block')\n          }\n        })\n        return\n      }\n\n      // Search through the tree elements\n      this._config.target.find(Selector.LI).each(function () {\n        let text = $(this).children(Selector.LINK).first().text()\n\n        if (!_that._config.case_sensitive) {\n          text = text.toLowerCase()\n        }\n\n        if (text.search(value) == -1) {\n          // No results\n          $(this).css('display', 'none')\n        } else { // Found the result\n          // Make the parent LI visible\n          $(this).parents(Selector.LI)\n            .css('display', 'block')\n\n          // Make the parent nav-treeview visible\n          $(this).parents(Selector.NAV_TREEVIEW)\n            .addClass('menu-open')\n            .css('display', 'block')\n\n          // Make this element visible\n          $(this).css('display', 'block')\n        }\n      })\n    }\n\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data    = $(this).data(DATA_KEY)\n        let _config = $.extend({}, Default, $(this).data())\n\n        if (!data) {\n          data = new Search($(this), _config)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (config === 'init') {\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * Data API\n   * ====================================================\n   */\n\n  $(window).on(Event.LOAD_DATA_API, () => {\n    $(Selector.DATA_WIDGET).each(function () {\n      Search._jQueryInterface.call($(this), 'init')\n    })\n  })\n\n  /**\n   * jQuery API\n   * ====================================================\n   */\n\n  $.fn[NAME] = Search._jQueryInterface\n  $.fn[NAME].Constructor = Search\n  $.fn[NAME].noConflict  = function () {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Search._jQueryInterface\n  }\n\n  return Search\n\n})(jQuery)\n"]}
\ No newline at end of file
diff --git a/dist/js/adminlte.min.js b/dist/js/adminlte.min.js
index 0b655f4f3..755404b68 100644
--- a/dist/js/adminlte.min.js
+++ b/dist/js/adminlte.min.js
@@ -1 +1 @@
-"use strict";function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var _createClass=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),Layout=function(a){var b="Layout",c="lte.layout",d=a.fn[b],e={SIDEBAR:".main-sidebar",HEADER:".main-header",CONTENT:".content-wrapper",CONTENT_HEADER:".content-header",WRAPPER:".wrapper",CONTROL_SIDEBAR:".control-sidebar",LAYOUT_FIXED:".layout-fixed",FOOTER:".main-footer"},f={HOLD:"hold-transition",SIDEBAR:"main-sidebar",LAYOUT_FIXED:"layout-fixed"},g=function(){function b(a){_classCallCheck(this,b),this._element=a,this._init()}return _createClass(b,[{key:"fixLayoutHeight",value:function(){var b=[a(window).height(),a(e.HEADER).outerHeight(),a(e.FOOTER).outerHeight(),a(e.SIDEBAR).height()],c=this._max(b);a(e.CONTENT).css("min-height",c-(b[1]+b[2]))}},{key:"_init",value:function(){var b=this;a("body").removeClass(f.HOLD),this.fixLayoutHeight(),a(e.SIDEBAR).on("collapsed.lte.treeview expanded.lte.treeview collapsed.lte.pushmenu expanded.lte.pushmenu",function(){b.fixLayoutHeight()}),a(window).resize(function(){b.fixLayoutHeight()}),a("body, html").css("height","auto")}},{key:"_max",value:function(a){var b=0;return a.forEach(function(a){a>b&&(b=a)}),b}}],[{key:"_jQueryInterface",value:function(d){return this.each(function(){var e=a(this).data(c);e||(e=new b(this),a(this).data(c,e)),d&&e[d]()})}}]),b}();return a.fn[b]=g._jQueryInterface,a.fn[b].Constructor=g,a.fn[b].noConflict=function(){return a.fn[b]=d,g._jQueryInterface},g}(jQuery),Treeview=function(a){var b="Treeview",c="lte.treeview",d="."+c,e=a.fn[b],f={SELECTED:"selected"+d,EXPANDED:"expanded"+d,COLLAPSED:"collapsed"+d,LOAD_DATA_API:"load"+d},g={LI:".nav-item",LINK:".nav-link",TREEVIEW_MENU:".nav-treeview",OPEN:".menu-open",DATA_WIDGET:'[data-widget="treeview"]'},h={LI:"nav-item",LINK:"nav-link",TREEVIEW_MENU:"nav-treeview",OPEN:"menu-open"},i={trigger:g.DATA_WIDGET+" "+g.LINK,animationSpeed:300,accordion:!0},j=function(){function b(a,c){_classCallCheck(this,b),this._config=c,this._element=a}return _createClass(b,[{key:"init",value:function(){this._setupListeners()}},{key:"expand",value:function(b,c){var d=this,e=a.Event(f.EXPANDED);if(this._config.accordion){var i=c.siblings(g.OPEN).first(),j=i.find(g.TREEVIEW_MENU).first();this.collapse(j,i)}b.slideDown(this._config.animationSpeed,function(){c.addClass(h.OPEN),a(d._element).trigger(e)})}},{key:"collapse",value:function(b,c){var d=this,e=a.Event(f.COLLAPSED);b.slideUp(this._config.animationSpeed,function(){c.removeClass(h.OPEN),a(d._element).trigger(e),b.find(g.OPEN+" > "+g.TREEVIEW_MENU).slideUp(),b.find(g.OPEN).removeClass(h.OPEN)})}},{key:"collapseAll",value:function(){}},{key:"expandAll",value:function(){}},{key:"toggle",value:function(b){var c=a(b.currentTarget),d=c.next();if(d.is(g.TREEVIEW_MENU)){b.preventDefault();var e=c.parents(g.LI).first(),f=e.hasClass(h.OPEN);f?this.collapse(a(d),e):this.expand(a(d),e)}}},{key:"_setupListeners",value:function(){var b=this;a(document).on("click",this._config.trigger,function(a){b.toggle(a)})}}],[{key:"_jQueryInterface",value:function(d){return this.each(function(){var e=a(this).data(c),f=a.extend({},i,a(this).data());e||(e=new b(a(this),f),a(this).data(c,e)),"init"===d&&e[d]()})}}]),b}();return a(window).on(f.LOAD_DATA_API,function(){a(g.DATA_WIDGET).each(function(){var b=a(this);j._jQueryInterface.call(b,"init")})}),a.fn[b]=j._jQueryInterface,a.fn[b].Constructor=j,a.fn[b].noConflict=function(){return a.fn[b]=e,j._jQueryInterface},j}(jQuery),PushMenu=function(a){var b="PushMenu",c="lte.pushmenu",d="."+c,e=a.fn[b],f={COLLAPSED:"collapsed"+d,SHOWN:"shown"+d},g={COLLAPSED:"sidebar-collapse",TOGGLE_BUTTON:'[data-widget="pushmenu"]'},h=function(){function b(c){_classCallCheck(this,b),this._element=c,this._isShown=!a("body").hasClass(g.COLLAPSED)||a("body").hasClass("sidebar-open")}return _createClass(b,[{key:"show",value:function(){a("body").addClass("sidebar-open").removeClass(g.COLLAPSED),this._isShown=!0;var b=a.Event(f.SHOWN);a(this._element).trigger(b)}},{key:"collapse",value:function(){a("body").removeClass("sidebar-open").addClass(g.COLLAPSED),this._isShown=!1;var b=a.Event(f.COLLAPSED);a(this._element).trigger(b)}},{key:"toggle",value:function(){"undefined"==typeof this._isShown&&(this._isShown=!a("body").hasClass(g.COLLAPSED)||a("body").hasClass("sidebar-open")),this._isShown?this.collapse():this.show()}}],[{key:"_jQueryInterface",value:function(d){return this.each(function(){var e=a(this).data(c);e||(e=new b(this),a(this).data(c,e)),d&&e[d]()})}}]),b}();return a(document).on("click",g.TOGGLE_BUTTON,function(b){b.preventDefault();var c=b.currentTarget;"pushmenu"!==a(c).data("widget")&&(c=a(c).closest(g.TOGGLE_BUTTON)),h._jQueryInterface.call(a(c),"toggle")}),a.fn[b]=h._jQueryInterface,a.fn[b].Constructor=h,a.fn[b].noConflict=function(){return a.fn[b]=e,h._jQueryInterface},h}(jQuery),Widget=function(a){var b=function(){function b(a){_classCallCheck(this,b),this._element=a}return _createClass(b,null,[{key:"_jQueryInterface",value:function(b){var c=a(b);c.show()}}]),b}();return b}(jQuery),ControlSidebar=function(a){var b="ControlSidebar",c="lte.control.sidebar",d=a.fn[b],e={CONTROL_SIDEBAR:".control-sidebar",DATA_TOGGLE:'[data-widget="control-sidebar"]'},f={CONTROL_SIDEBAR_OPEN:"control-sidebar-open",CONTROL_SIDEBAR_SLIDE:"control-sidebar-slide-open"},g={slide:!0},h=function(){function b(a,c){_classCallCheck(this,b),this._element=a,this._config=this._getConfig(c)}return _createClass(b,[{key:"show",value:function(){this._config.slide?a("body").removeClass(f.CONTROL_SIDEBAR_SLIDE):a("body").removeClass(f.CONTROL_SIDEBAR_OPEN)}},{key:"collapse",value:function(){this._config.slide?a("body").addClass(f.CONTROL_SIDEBAR_SLIDE):a("body").addClass(f.CONTROL_SIDEBAR_OPEN)}},{key:"toggle",value:function(){a("body").hasClass(f.CONTROL_SIDEBAR_OPEN)||a("body").hasClass(f.CONTROL_SIDEBAR_SLIDE)?this.show():this.collapse()}},{key:"_getConfig",value:function(b){return a.extend({},g,b)}}],[{key:"_jQueryInterface",value:function(d){return this.each(function(){var e=a(this).data(c);if(e||(e=new b(this,a(this).data()),a(this).data(c,e)),void 0===e[d])throw new Error(d+" is not a function");e[d]()})}}]),b}();return a(document).on("click",e.DATA_TOGGLE,function(b){b.preventDefault(),h._jQueryInterface.call(a(this),"toggle")}),a.fn[b]=h._jQueryInterface,a.fn[b].Constructor=h,a.fn[b].noConflict=function(){return a.fn[b]=d,h._jQueryInterface},h}(jQuery);
\ No newline at end of file
+"use strict";function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var _createClass=function(){function a(a,b){for(var c=0;c<b.length;c++){var d=b[c];d.enumerable=d.enumerable||!1,d.configurable=!0,"value"in d&&(d.writable=!0),Object.defineProperty(a,d.key,d)}}return function(b,c,d){return c&&a(b.prototype,c),d&&a(b,d),b}}(),Layout=function(a){var b="Layout",c="lte.layout",d=a.fn[b],e={SIDEBAR:".main-sidebar",HEADER:".main-header",CONTENT:".content-wrapper",CONTENT_HEADER:".content-header",WRAPPER:".wrapper",CONTROL_SIDEBAR:".control-sidebar",LAYOUT_FIXED:".layout-fixed",FOOTER:".main-footer"},f={HOLD:"hold-transition",SIDEBAR:"main-sidebar",LAYOUT_FIXED:"layout-fixed"},g=function(){function b(a){_classCallCheck(this,b),this._element=a,this._init()}return _createClass(b,[{key:"fixLayoutHeight",value:function(){var b=[a(window).height(),a(e.HEADER).outerHeight(),a(e.FOOTER).outerHeight(),a(e.SIDEBAR).height()],c=this._max(b);a(e.CONTENT).css("min-height",c-(b[1]+b[2]))}},{key:"_init",value:function(){var b=this;a("body").removeClass(f.HOLD),this.fixLayoutHeight(),a(e.SIDEBAR).on("collapsed.lte.treeview expanded.lte.treeview collapsed.lte.pushmenu expanded.lte.pushmenu",function(){b.fixLayoutHeight()}),a(window).resize(function(){b.fixLayoutHeight()}),a("body, html").css("height","auto")}},{key:"_max",value:function(a){var b=0;return a.forEach(function(a){a>b&&(b=a)}),b}}],[{key:"_jQueryInterface",value:function(d){return this.each(function(){var e=a(this).data(c);e||(e=new b(this),a(this).data(c,e)),d&&e[d]()})}}]),b}();return a.fn[b]=g._jQueryInterface,a.fn[b].Constructor=g,a.fn[b].noConflict=function(){return a.fn[b]=d,g._jQueryInterface},g}(jQuery),Treeview=function(a){var b="Treeview",c="lte.treeview",d="."+c,e=a.fn[b],f={SELECTED:"selected"+d,EXPANDED:"expanded"+d,COLLAPSED:"collapsed"+d,LOAD_DATA_API:"load"+d},g={LI:".nav-item",LINK:".nav-link",TREEVIEW_MENU:".nav-treeview",OPEN:".menu-open",DATA_WIDGET:'[data-widget="treeview"]'},h={LI:"nav-item",LINK:"nav-link",TREEVIEW_MENU:"nav-treeview",OPEN:"menu-open"},i={trigger:g.DATA_WIDGET+" "+g.LINK,animationSpeed:300,accordion:!0},j=function(){function b(a,c){_classCallCheck(this,b),this._config=c,this._element=a}return _createClass(b,[{key:"init",value:function(){this._setupListeners()}},{key:"expand",value:function(b,c){var d=this,e=a.Event(f.EXPANDED);if(this._config.accordion){var i=c.siblings(g.OPEN).first(),j=i.find(g.TREEVIEW_MENU).first();this.collapse(j,i)}b.slideDown(this._config.animationSpeed,function(){c.addClass(h.OPEN),a(d._element).trigger(e)})}},{key:"collapse",value:function(b,c){var d=this,e=a.Event(f.COLLAPSED);b.slideUp(this._config.animationSpeed,function(){c.removeClass(h.OPEN),a(d._element).trigger(e),b.find(g.OPEN+" > "+g.TREEVIEW_MENU).slideUp(),b.find(g.OPEN).removeClass(h.OPEN)})}},{key:"collapseAll",value:function(){}},{key:"expandAll",value:function(){}},{key:"toggle",value:function(b){var c=a(b.currentTarget),d=c.next();if(d.is(g.TREEVIEW_MENU)){b.preventDefault();var e=c.parents(g.LI).first(),f=e.hasClass(h.OPEN);f?this.collapse(a(d),e):this.expand(a(d),e)}}},{key:"_setupListeners",value:function(){var b=this;a(document).on("click",this._config.trigger,function(a){b.toggle(a)})}}],[{key:"_jQueryInterface",value:function(d){return this.each(function(){var e=a(this).data(c),f=a.extend({},i,a(this).data());e||(e=new b(a(this),f),a(this).data(c,e)),"init"===d&&e[d]()})}}]),b}();return a(window).on(f.LOAD_DATA_API,function(){a(g.DATA_WIDGET).each(function(){var b=a(this);j._jQueryInterface.call(b,"init")})}),a.fn[b]=j._jQueryInterface,a.fn[b].Constructor=j,a.fn[b].noConflict=function(){return a.fn[b]=e,j._jQueryInterface},j}(jQuery),PushMenu=function(a){var b="PushMenu",c="lte.pushmenu",d="."+c,e=a.fn[b],f={COLLAPSED:"collapsed"+d,SHOWN:"shown"+d},g={COLLAPSED:"sidebar-collapse",TOGGLE_BUTTON:'[data-widget="pushmenu"]'},h=function(){function b(c){_classCallCheck(this,b),this._element=c,this._isShown=!a("body").hasClass(g.COLLAPSED)||a("body").hasClass("sidebar-open")}return _createClass(b,[{key:"show",value:function(){a("body").addClass("sidebar-open").removeClass(g.COLLAPSED),this._isShown=!0;var b=a.Event(f.SHOWN);a(this._element).trigger(b)}},{key:"collapse",value:function(){a("body").removeClass("sidebar-open").addClass(g.COLLAPSED),this._isShown=!1;var b=a.Event(f.COLLAPSED);a(this._element).trigger(b)}},{key:"toggle",value:function(){"undefined"==typeof this._isShown&&(this._isShown=!a("body").hasClass(g.COLLAPSED)||a("body").hasClass("sidebar-open")),this._isShown?this.collapse():this.show()}}],[{key:"_jQueryInterface",value:function(d){return this.each(function(){var e=a(this).data(c);e||(e=new b(this),a(this).data(c,e)),d&&e[d]()})}}]),b}();return a(document).on("click",g.TOGGLE_BUTTON,function(b){b.preventDefault();var c=b.currentTarget;"pushmenu"!==a(c).data("widget")&&(c=a(c).closest(g.TOGGLE_BUTTON)),h._jQueryInterface.call(a(c),"toggle")}),a.fn[b]=h._jQueryInterface,a.fn[b].Constructor=h,a.fn[b].noConflict=function(){return a.fn[b]=e,h._jQueryInterface},h}(jQuery),Widget=function(a){var b=function(){function b(a){_classCallCheck(this,b),this._element=a}return _createClass(b,null,[{key:"_jQueryInterface",value:function(b){var c=a(b);c.show()}}]),b}();return b}(jQuery),ControlSidebar=function(a){var b="ControlSidebar",c="lte.control.sidebar",d=a.fn[b],e={CONTROL_SIDEBAR:".control-sidebar",DATA_TOGGLE:'[data-widget="control-sidebar"]'},f={CONTROL_SIDEBAR_OPEN:"control-sidebar-open",CONTROL_SIDEBAR_SLIDE:"control-sidebar-slide-open"},g={slide:!0},h=function(){function b(a,c){_classCallCheck(this,b),this._element=a,this._config=this._getConfig(c)}return _createClass(b,[{key:"show",value:function(){this._config.slide?a("body").removeClass(f.CONTROL_SIDEBAR_SLIDE):a("body").removeClass(f.CONTROL_SIDEBAR_OPEN)}},{key:"collapse",value:function(){this._config.slide?a("body").addClass(f.CONTROL_SIDEBAR_SLIDE):a("body").addClass(f.CONTROL_SIDEBAR_OPEN)}},{key:"toggle",value:function(){a("body").hasClass(f.CONTROL_SIDEBAR_OPEN)||a("body").hasClass(f.CONTROL_SIDEBAR_SLIDE)?this.show():this.collapse()}},{key:"_getConfig",value:function(b){return a.extend({},g,b)}}],[{key:"_jQueryInterface",value:function(d){return this.each(function(){var e=a(this).data(c);if(e||(e=new b(this,a(this).data()),a(this).data(c,e)),void 0===e[d])throw new Error(d+" is not a function");e[d]()})}}]),b}();return a(document).on("click",e.DATA_TOGGLE,function(b){b.preventDefault(),h._jQueryInterface.call(a(this),"toggle")}),a.fn[b]=h._jQueryInterface,a.fn[b].Constructor=h,a.fn[b].noConflict=function(){return a.fn[b]=d,h._jQueryInterface},h}(jQuery),Search=function(a){var b="Search",c="lte.search",d="."+c,e=a.fn[b],f={LOAD_DATA_API:"load"+d},g={LI:".nav-item",LINK:".nav-link",OPEN:".menu-open",ACTIVE:".active",TREEVIEW_MENU:'[data-widget="treeview"]',NAV_TREEVIEW:".nav-treeview",DATA_WIDGET:'[data-widget="search"]'},h={LI:"nav-item",LINK:"nav-link",NAV_TREEVIEW:"nav-treeview",OPEN:"menu-open"},i={target:"",case_sensitive:!1},j=function(){function b(a,c){_classCallCheck(this,b),this._config=c,this._element=a,this._open_menus=null}return _createClass(b,[{key:"init",value:function(){""===this._config.target?this._config.target=this._element.closest(g.TREEVIEW_MENU):this._config.target=a(this._config.target),this._open_menus=this._config.target.find(g.OPEN),this._element.parents("form").first().submit(function(a){a.preventDefault()}),this._element.keyup(function(b){b.preventDefault();var c=a(b.currentTarget).val();this._config.case_sensitive||(c=c.toLowerCase()),this.search(c)}.bind(this))}},{key:"search",value:function(b){var c=this;return b?void this._config.target.find(g.LI).each(function(){var d=a(this).children(g.LINK).first().text();c._config.case_sensitive||(d=d.toLowerCase()),d.search(b)==-1?a(this).css("display","none"):(a(this).parents(g.LI).css("display","block"),a(this).parents(g.NAV_TREEVIEW).addClass("menu-open").css("display","block"),a(this).css("display","block"))}):(this._config.target.find(g.LI).css("display","block").find(g.NAV_TREEVIEW).css("display","none"),this._config.target.find(g.OPEN).find(g.NAV_TREEVIEW).css("display","block"),void this._open_menus.each(function(){a(this).hasClass(h.OPEN)||(a(this).addClass(g.OPEN).css("display","block"),a(this).children(g.NAV_TREEVIEW).css("display","block"))}))}}],[{key:"_jQueryInterface",value:function(d){return this.each(function(){var e=a(this).data(c),f=a.extend({},i,a(this).data());e||(e=new b(a(this),f),a(this).data(c,e)),"init"===d&&e[d]()})}}]),b}();return a(window).on(f.LOAD_DATA_API,function(){a(g.DATA_WIDGET).each(function(){j._jQueryInterface.call(a(this),"init")})}),a.fn[b]=j._jQueryInterface,a.fn[b].Constructor=j,a.fn[b].noConflict=function(){return a.fn[b]=e,j._jQueryInterface},j}(jQuery);
\ No newline at end of file
diff --git a/starter.html b/starter.html
index 7ea516364..d72339406 100644
--- a/starter.html
+++ b/starter.html
@@ -185,7 +185,7 @@ to get the desired effect
 
       <form action="#" method="get" class="sidebar-form">
         <div class="form-group has-icon">
-          <input type="search" name="q" class="form-control" placeholder="Search" data-widget="treeview-search" data-target="#searchable-treeview">
+          <input type="search" name="q" class="form-control" placeholder="Search" data-widget="search" data-target="#searchable-treeview">
           <button type="submit" class="form-icon"><i class="fa fa-search"></i></button>
         </div>
       </form><!-- /.sidebar-form -->