', {\n class: 'search-title'\n }).html(name)\n const searchPathElement = $('
', {\n class: 'search-path'\n }).html(path)\n\n groupItemElement.append(searchTitleElement).append(searchPathElement)\n\n return groupItemElement\n }\n\n _addNotFound() {\n $(SELECTOR_SEARCH_RESULTS_GROUP).append(this._renderItem(this.options.notFoundText, '#', []))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = $(this).data()\n }\n\n const _options = $.extend({}, Default, typeof config === 'object' ? config : data)\n const plugin = new SidebarSearch($(this), _options)\n\n $(this).data(DATA_KEY, typeof config === 'object' ? config : data)\n\n if (typeof config === 'string' && /init|toggle|close|open|search/.test(config)) {\n plugin[config]()\n } else {\n plugin.init()\n }\n }\n}\n\n/**\n * Data API\n * ====================================================\n */\n$(document).on('click', SELECTOR_SEARCH_BUTTON, event => {\n event.preventDefault()\n\n SidebarSearch._jQueryInterface.call($(SELECTOR_DATA_WIDGET), 'toggle')\n})\n\n$(document).on('keyup', SELECTOR_SEARCH_INPUT, event => {\n if (event.keyCode == 38) {\n event.preventDefault()\n $(SELECTOR_SEARCH_RESULTS_GROUP).children().last().focus()\n return\n }\n\n if (event.keyCode == 40) {\n event.preventDefault()\n $(SELECTOR_SEARCH_RESULTS_GROUP).children().first().focus()\n return\n }\n\n setTimeout(() => {\n SidebarSearch._jQueryInterface.call($(SELECTOR_DATA_WIDGET), 'search')\n }, 100)\n})\n\n$(document).on('keydown', SELECTOR_SEARCH_RESULTS_GROUP, event => {\n const $focused = $(':focus')\n\n if (event.keyCode == 38) {\n event.preventDefault()\n\n if ($focused.is(':first-child')) {\n $focused.siblings().last().focus()\n } else {\n $focused.prev().focus()\n }\n }\n\n if (event.keyCode == 40) {\n event.preventDefault()\n\n if ($focused.is(':last-child')) {\n $focused.siblings().first().focus()\n } else {\n $focused.next().focus()\n }\n }\n})\n\n$(window).on('load', () => {\n SidebarSearch._jQueryInterface.call($(SELECTOR_DATA_WIDGET), 'init')\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = SidebarSearch._jQueryInterface\n$.fn[NAME].Constructor = SidebarSearch\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return SidebarSearch._jQueryInterface\n}\n\nexport default SidebarSearch\n","/**\n * --------------------------------------------\n * AdminLTE NavbarSearch.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'NavbarSearch'\nconst DATA_KEY = 'lte.navbar-search'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_TOGGLE_BUTTON = '[data-widget=\"navbar-search\"]'\nconst SELECTOR_SEARCH_BLOCK = '.navbar-search-block'\nconst SELECTOR_SEARCH_INPUT = '.form-control'\n\nconst CLASS_NAME_OPEN = 'navbar-search-open'\n\nconst Default = {\n resetOnClose: true,\n target: SELECTOR_SEARCH_BLOCK\n}\n\n/**\n * Class Definition\n * ====================================================\n */\n\nclass NavbarSearch {\n constructor(_element, _options) {\n this._element = _element\n this._config = $.extend({}, Default, _options)\n }\n\n // Public\n\n open() {\n $(this._config.target).css('display', 'flex').hide().fadeIn().addClass(CLASS_NAME_OPEN)\n $(`${this._config.target} ${SELECTOR_SEARCH_INPUT}`).focus()\n }\n\n close() {\n $(this._config.target).fadeOut().removeClass(CLASS_NAME_OPEN)\n\n if (this._config.resetOnClose) {\n $(`${this._config.target} ${SELECTOR_SEARCH_INPUT}`).val('')\n }\n }\n\n toggle() {\n if ($(this._config.target).hasClass(CLASS_NAME_OPEN)) {\n this.close()\n } else {\n this.open()\n }\n }\n\n // Static\n\n static _jQueryInterface(options) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _options = $.extend({}, Default, $(this).data())\n\n if (!data) {\n data = new NavbarSearch(this, _options)\n $(this).data(DATA_KEY, data)\n }\n\n if (!/toggle|close|open/.test(options)) {\n throw new Error(`Undefined method ${options}`)\n }\n\n data[options]()\n })\n }\n}\n\n/**\n * Data API\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') !== 'navbar-search') {\n button = button.closest(SELECTOR_TOGGLE_BUTTON)\n }\n\n NavbarSearch._jQueryInterface.call(button, 'toggle')\n})\n\n/**\n * jQuery API\n * ====================================================\n */\n\n$.fn[NAME] = NavbarSearch._jQueryInterface\n$.fn[NAME].Constructor = NavbarSearch\n$.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return NavbarSearch._jQueryInterface\n}\n\nexport default NavbarSearch\n","/**\n * --------------------------------------------\n * AdminLTE Toasts.js\n * License MIT\n * --------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * Constants\n * ====================================================\n */\n\nconst NAME = 'Toasts'\nconst DATA_KEY = 'lte.toasts'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst EVENT_INIT = `init${EVENT_KEY}`\nconst EVENT_CREATED = `created${EVENT_KEY}`\nconst EVENT_REMOVED = `removed${EVENT_KEY}`\n\nconst SELECTOR_CONTAINER_TOP_RIGHT = '#toastsContainerTopRight'\nconst SELECTOR_CONTAINER_TOP_LEFT = '#toastsContainerTopLeft'\nconst SELECTOR_CONTAINER_BOTTOM_RIGHT = '#toastsContainerBottomRight'\nconst SELECTOR_CONTAINER_BOTTOM_LEFT = '#toastsContainerBottomLeft'\n\nconst CLASS_NAME_TOP_RIGHT = 'toasts-top-right'\nconst CLASS_NAME_TOP_LEFT = 'toasts-top-left'\nconst CLASS_NAME_BOTTOM_RIGHT = 'toasts-bottom-right'\nconst CLASS_NAME_BOTTOM_LEFT = 'toasts-bottom-left'\n\nconst POSITION_TOP_RIGHT = 'topRight'\nconst POSITION_TOP_LEFT = 'topLeft'\nconst POSITION_BOTTOM_RIGHT = 'bottomRight'\nconst POSITION_BOTTOM_LEFT = 'bottomLeft'\n\nconst Default = {\n position: POSITION_TOP_RIGHT,\n fixed: true,\n autohide: false,\n autoremove: true,\n delay: 1000,\n fade: true,\n icon: null,\n image: null,\n imageAlt: null,\n imageHeight: '25px',\n title: null,\n subtitle: null,\n close: true,\n body: null,\n class: null\n}\n\n/**\n * Class Definition\n * ====================================================\n */\nclass Toasts {\n constructor(element, config) {\n this._config = config\n this._prepareContainer()\n\n $('body').trigger($.Event(EVENT_INIT))\n }\n\n // Public\n\n create() {\n const toast = $('
')\n\n toast.data('autohide', this._config.autohide)\n toast.data('animation', this._config.fade)\n\n if (this._config.class) {\n toast.addClass(this._config.class)\n }\n\n if (this._config.delay && this._config.delay != 500) {\n toast.data('delay', this._config.delay)\n }\n\n const toastHeader = $('