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","NAV_HEADER","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","items","headers","css","removeClass","menu","hasClass","addClass","children","item","text","indexOf","each","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 NAV_HEADER : '.nav-header',\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((event) => {\n event.preventDefault()\n })\n\n // Setup search function\n this._element.keyup((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 })\n }\n\n search(value) {\n let items = this._config.target.find(Selector.LI)\n let headers = this._config.target.find(Selector.NAV_HEADER)\n\n // If the value is back to null\n if (!value) {\n // Show all headers\n headers.css('display', 'block')\n\n // Close all treeviews\n items.css('display', 'block')\n .removeClass(ClassName.OPEN)\n .find(Selector.NAV_TREEVIEW)\n .css('display', 'none')\n\n // Open the originally opened treeviews\n for (let menu of this._open_menus) {\n if (!$(menu).hasClass(ClassName.OPEN)) {\n $(menu).addClass(ClassName.OPEN).css('display', 'block')\n $(menu).children(Selector.NAV_TREEVIEW).css('display', 'block')\n }\n }\n\n return\n }\n\n // Hide all elements\n items.css('display', 'none')\n headers.css('display', 'none')\n\n // Search through the tree elements\n for (let item of items) {\n let text = $(item).children('a').text()\n\n if (!this._config.case_sensitive) {\n text = text.toLowerCase()\n }\n\n if (text.indexOf(value) != -1) {\n // Found the result\n // Make the parent LI visible\n $(item).parents(Selector.LI)\n .css('display', 'block')\n .addClass('menu-open')\n\n $(item).parents(Selector.NAV_TREEVIEW)\n .css('display', 'block')\n\n // If this is a treeview parent, make all of its children visible\n $(item).children(Selector.NAV_TREEVIEW)\n .css('display', 'block')\n .children(Selector.LI)\n .css('display', 'block')\n .addClass('menu-open')\n\n // Make this element visible\n $(item).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"]}
|