{"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"]}