1/******/ (() => { // webpackBootstrap 2var __webpack_exports__ = {}; 3/*!**********************************!*\ 4 !*** ./resources/js/core/app.js ***! 5 \**********************************/ 6/*========================================================================================= 7 File Name: app.js 8 Description: Template related app JS. 9 ---------------------------------------------------------------------------------------- 10 Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template 11 Author: Pixinvent 12 Author URL: hhttp://www.themeforest.net/user/pixinvent 13==========================================================================================*/ 14window.colors = { 15 solid: { 16 primary: '#7367F0', 17 secondary: '#82868b', 18 success: '#28C76F', 19 info: '#00cfe8', 20 warning: '#FF9F43', 21 danger: '#EA5455', 22 dark: '#4b4b4b', 23 black: '#000', 24 white: '#fff', 25 body: '#f8f8f8' 26 }, 27 light: { 28 primary: '#7367F01a', 29 secondary: '#82868b1a', 30 success: '#28C76F1a', 31 info: '#00cfe81a', 32 warning: '#FF9F431a', 33 danger: '#EA54551a', 34 dark: '#4b4b4b1a' 35 } 36}; 37 38(function (window, document, $) { 39 'use strict'; 40 41 var $html = $('html'); 42 var $body = $('body'); 43 var $textcolor = '#4e5154'; 44 var assetPath = '../../../app-assets/'; 45 46 if ($('body').attr('data-framework') === 'laravel') { 47 assetPath = $('body').attr('data-asset-path'); 48 } // to remove sm control classes from datatables 49 50 51 if ($.fn.dataTable) { 52 $.extend($.fn.dataTable.ext.classes, { 53 sFilterInput: 'form-control', 54 sLengthSelect: 'form-select' 55 }); 56 } 57 58 $(window).on('load', function () { 59 var rtl; 60 var compactMenu = false;
61 62 if ($body.hasClass('menu-collapsed') || localStorage.getItem('menuCollapsed') === 'true') { 63 compactMenu = true; 64 } 65 66 if ($('html').data('textdirection') == 'rtl') { 67 rtl = true; 68 } 69 70 setTimeout(function () { 71 $html.removeClass('loading').addClass('loaded'); 72 }, 1200); 73 $.app.menu.init(compactMenu); // Navigation configurations 74 75 var config = { 76 speed: 300 // set speed to expand / collapse menu 77 78 }; 79 80 if ($.app.nav.initialized === false) { 81 $.app.nav.init(config); 82 } 83 84 Unison.on('change', function (bp) { 85 $.app.menu.change(compactMenu); 86 }); // Tooltip Initialization 87 // $('[data-bs-toggle="tooltip"]').tooltip({ 88 // container: 'body' 89 // }); 90 91 var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]')); 92 var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) { 93 return new bootstrap.Tooltip(tooltipTriggerEl); 94 }); // Collapsible Card 95 96 $('a[data-action="collapse"]').on('click', function (e) { 97 e.preventDefault(); 98 $(this).closest('.card').children('.card-content').collapse('toggle'); 99 $(this).closest('.card').find('[data-action="collapse"]').toggleClass('rotate'); 100 }); // Cart dropdown touchspin 101 102 if ($('.touchspin-cart').length > 0) { 103 $('.touchspin-cart').TouchSpin({ 104 buttondown_class: 'btn btn-primary', 105 buttonup_class: 'btn btn-primary', 106 buttondown_txt: feather.icons['minus'].toSvg(), 107 buttonup_txt: feather.icons['plus'].toSvg() 108 }); 109 } // Do not close cart or notification dropdown on click of the items 110 111 112 $('.dropdown-notification .dropdown-menu, .dropdown-cart .dropdown-menu').on('click', function (e) { 113 e.stopPropagation(); 114 }); // Notifications & messages scrollable 115 116 $('.scrollable-container').each(function () { 117 var scrollable_container = new PerfectScrollbar($(this)[0], { 118 wheelPropagation: false 119 }); 120 }); // Reload Card 121 122 $('a[data-action="reload"]').on('click', function () { 123 var block_ele = $(this).closest('.card'); 124 var reloadActionOverlay; 125 126 if ($html.hasClass('dark-layout')) { 127 var reloadActionOverlay = '#10163a'; 128 } else { 129 var reloadActionOverlay = '#fff'; 130 } // Block Element 131 132 133 block_ele.block({ 134 message: feather.icons['refresh-cw'].toSvg({ 135 "class": 'font-medium-1 spinner text-primary' 136 }), 137 timeout: 2000, 138 //unblock after 2 seconds 139 overlayCSS: { 140 backgroundColor: reloadActionOverlay, 141 cursor: 'wait' 142 }, 143 css: { 144 border: 0, 145 padding: 0, 146 backgroundColor: 'none' 147 } 148 }); 149 }); // Close Card 150 151 $('a[data-action="close"]').on('click', function () { 152 $(this).closest('.card').removeClass().slideUp('fast'); 153 }); 154 $('.card .heading-elements a[data-action="collapse"]').on('click', function () { 155 var $this = $(this), 156 card = $this.closest('.card'); 157 var cardHeight; 158 159 if (parseInt(card[0].style.height, 10) > 0) { 160 cardHeight = card.css('height'); 161 card.css('height', '').attr('data-height', cardHeight); 162 } else { 163 if (card.data('height')) { 164 cardHeight = card.data('height'); 165 card.css('height', cardHeight).attr('data-height', ''); 166 } 167 } 168 }); // Add disabled class to input group when input is disabled 169 170 $('input:disabled, textarea:disabled').closest('.input-group').addClass('disabled'); // Add sidebar group active class to active menu 171 172 $('.main-menu-content').find('li.active').parents('li').addClass('sidebar-group-active'); // Add open class to parent list item if subitem is active except compact menu 173 174 var menuType = $body.data('menu'); 175 176 if (menuType != 'horizontal-menu' && compactMenu === false) { 177 $('.main-menu-content').find('li.active').parents('li').addClass('open'); 178 } 179 180 if (menuType == 'horizontal-menu') { 181 $('.main-menu-content').find('li.active').parents('li:not(.nav-item)').addClass('open'); 182 $('.main-menu-content').find('li.active').closest('li.nav-item').addClass('sidebar-group-active open'); // $(".main-menu-content") 183 // .find("li.active") 184 // .parents("li") 185 // .addClass("active"); 186 } // Dynamic height for the chartjs div for the chart animations to work 187 188 189 var chartjsDiv = $('.chartjs'), 190 canvasHeight = chartjsDiv.children('canvas').attr('height'), 191 mainMenu = $('.main-menu'); 192 chartjsDiv.css('height', canvasHeight); 193 194 if ($body.hasClass('boxed-layout')) { 195 if ($body.hasClass('vertical-overlay-menu')) { 196 var menuWidth = mainMenu.width(); 197 var contentPosition = $('.app-content').position().left; 198 var menuPositionAdjust = contentPosition - menuWidth; 199 200 if ($body.hasClass('menu-flipped')) { 201 mainMenu.css('right', menuPositionAdjust + 'px'); 202 } else { 203 mainMenu.css('left', menuPositionAdjust + 'px'); 204 } 205 } 206 } 207 /* Text Area Counter Set Start */ 208 209 210 $('.char-textarea').on('keyup', function (event) { 211 checkTextAreaMaxLength(this, event); // to later change text color in dark layout 212 213 $(this).addClass('active'); 214 }); 215 /* 216 Checks the MaxLength of the Textarea 217 ----------------------------------------------------- 218 @prerequisite: textBox = textarea dom element 219 e = textarea event 220 length = Max length of characters 221 */ 222 223 function checkTextAreaMaxLength(textBox, e) { 224 var maxLength = parseInt($(textBox).data('length')), 225 counterValue = $('.textarea-counter-value'), 226 charTextarea = $('.char-textarea'); 227 228 if (!checkSpecialKeys(e)) { 229 if (textBox.value.length < maxLength - 1) textBox.value = textBox.value.substring(0, maxLength); 230 } 231 232 $('.char-count').html(textBox.value.length); 233 234 if (textBox.value.length > maxLength) { 235 counterValue.css('background-color', window.colors.solid.danger); 236 charTextarea.css('color', window.colors.solid.danger); // to change text color after limit is maxedout out 237 238 charTextarea.addClass('max-limit'); 239 } else { 240 counterValue.css('background-color', window.colors.solid.primary); 241 charTextarea.css('color', $textcolor); 242 charTextarea.removeClass('max-limit'); 243 } 244 245 return true; 246 } 247 /* 248 Checks if the keyCode pressed is inside special chars 249 ------------------------------------------------------- 250 @prerequisite: e = e.keyCode object for the key pressed 251 */ 252 253 254 function checkSpecialKeys(e) { 255 if (e.keyCode != 8 && e.keyCode != 46 && e.keyCode != 37 && e.keyCode != 38 && e.keyCode != 39 && e.keyCode != 40) return false;else return true; 256 } 257 258 $('.content-overlay').on('click', function () { 259 $('.search-list').removeClass('show'); 260 var searchInput = $('.search-input-close').closest('.search-input'); 261 262 if (searchInput.hasClass('open')) { 263 searchInput.removeClass('open'); 264 searchInputInputfield.val(''); 265 searchInputInputfield.blur(); 266 searchList.removeClass('show'); 267 } 268 269 $('.app-content').removeClass('show-overlay'); 270 $('.bookmark-wrapper .bookmark-input').removeClass('show'); 271 }); // To show shadow in main menu when menu scrolls 272 273 var container = document.getElementsByClassName('main-menu-content'); 274 275 if (container.length > 0) { 276 container[0].addEventListener('ps-scroll-y', function () { 277 if ($(this).find('.ps__thumb-y').position().top > 0) { 278 $('.shadow-bottom').css('display', 'block'); 279 } else { 280 $('.shadow-bottom').css('display', 'none'); 281 } 282 }); 283 } 284 }); // Hide overlay menu on content overlay click on small screens 285 286 $(document).on('click', '.sidenav-overlay', function (e) { 287 // Hide menu 288 $.app.menu.hide(); 289 return false;
290 }); // Execute below code only if we find hammer js for touch swipe feature on small screen 291 292 if (typeof Hammer !== 'undefined') { 293 var rtl; 294 295 if ($('html').data('textdirection') == 'rtl') { 296 rtl = true; 297 } // Swipe menu gesture 298 299 300 var swipeInElement = document.querySelector('.drag-target'), 301 swipeInAction = 'panright', 302 swipeOutAction = 'panleft'; 303 304 if (rtl === true) { 305 swipeInAction = 'panleft'; 306 swipeOutAction = 'panright'; 307 } 308 309 if ($(swipeInElement).length > 0) { 310 var swipeInMenu = new Hammer(swipeInElement); 311 swipeInMenu.on(swipeInAction, function (ev) { 312 if ($body.hasClass('vertical-overlay-menu')) { 313 $.app.menu.open(); 314 return false; 315 } 316 }); 317 } // menu swipe out gesture 318 319 320 setTimeout(function () { 321 var swipeOutElement = document.querySelector('.main-menu'); 322 var swipeOutMenu; 323 324 if ($(swipeOutElement).length > 0) { 325 swipeOutMenu = new Hammer(swipeOutElement); 326 swipeOutMenu.get('pan').set({ 327 direction: Hammer.DIRECTION_ALL, 328 threshold: 250 329 }); 330 swipeOutMenu.on(swipeOutAction, function (ev) { 331 if ($body.hasClass('vertical-overlay-menu')) { 332 $.app.menu.hide(); 333 return false; 334 } 335 }); 336 } 337 }, 300); // menu close on overlay tap 338 339 var swipeOutOverlayElement = document.querySelector('.sidenav-overlay'); 340 341 if ($(swipeOutOverlayElement).length > 0) { 342 var swipeOutOverlayMenu = new Hammer(swipeOutOverlayElement); 343 swipeOutOverlayMenu.on('tap', function (ev) { 344 if ($body.hasClass('vertical-overlay-menu')) { 345 $.app.menu.hide(); 346 return false; 347 } 348 }); 349 } 350 } 351 352 $(document).on('click', '.menu-toggle, .modern-nav-toggle', function (e) { 353 e.preventDefault(); // Toggle menu 354 355 $.app.menu.toggle(); 356 setTimeout(function () { 357 $(window).trigger('resize'); 358 }, 200); 359 360 if ($('#collapse-sidebar-switch').length > 0) { 361 setTimeout(function () { 362 if ($body.hasClass('menu-expanded') || $body.hasClass('menu-open')) { 363 $('#collapse-sidebar-switch').prop('checked', false); 364 } else { 365 $('#collapse-sidebar-switch').prop('checked', true); 366 } 367 }, 50); 368 } // Save menu collapsed status in localstorage 369 370 371 if ($body.hasClass('menu-expanded') || $body.hasClass('menu-open')) { 372 localStorage.setItem('menuCollapsed', false); 373 } else { 374 localStorage.setItem('menuCollapsed', true); 375 } // Hides dropdown on click of menu toggle 376 // $('[data-bs-toggle="dropdown"]').dropdown('hide'); 377 378 379 return false; 380 }); // Add Children Class 381 382 $('.navigation').find('li').has('ul').addClass('has-sub'); // Update manual scroller when window is resized 383 384 $(window).resize(function () { 385 $.app.menu.manualScroller.updateHeight(); 386 }); 387 $('#sidebar-page-navigation').on('click', 'a.nav-link', function (e) { 388 e.preventDefault(); 389 e.stopPropagation(); 390 var $this = $(this), 391 href = $this.attr('href'); 392 var offset = $(href).offset(); 393 var scrollto = offset.top - 80; // minus fixed header height 394 395 $('html, body').animate({ 396 scrollTop: scrollto 397 }, 0); 398 setTimeout(function () { 399 $this.parent('.nav-item').siblings('.nav-item').children('.nav-link').removeClass('active'); 400 $this.addClass('active'); 401 }, 100); 402 }); // main menu internationalization 403 // init i18n and load language file 404 405 if ($body.attr('data-framework') === 'laravel') { 406 // change language according to data-language of dropdown item 407 var language = $('html')[0].lang; 408 409 if (language !== null) { 410 // get the selected flag class 411 var selectedLang = $('.dropdown-language').find('a[data-language=' + language + ']').text(); 412 var selectedFlag = $('.dropdown-language').find('a[data-language=' + language + '] .flag-icon').attr('class'); // set the class in button 413 414 $('#dropdown-flag .selected-language').text(selectedLang); 415 $('#dropdown-flag .flag-icon').removeClass().addClass(selectedFlag); 416 } 417 } else { 418 i18next.use(window.i18nextXHRBackend).init({ 419 debug: false, 420 fallbackLng: 'en', 421 backend: { 422 loadPath: assetPath + 'data/locales/{{lng}}.json' 423 }, 424 returnObjects: true 425 }, function (err, t) { 426 // resources have been loaded 427 jqueryI18next.init(i18next, $); 428 }); // change language according to data-language of dropdown item 429 430 $('.dropdown-language .dropdown-item').on('click', function () { 431 var $this = $(this); 432 $this.siblings('.selected').removeClass('selected'); 433 $this.addClass('selected'); 434 var selectedLang = $this.text(); 435 var selectedFlag = $this.find('.flag-icon').attr('class'); 436 $('#dropdown-flag .selected-language').text(selectedLang); 437 $('#dropdown-flag .flag-icon').removeClass().addClass(selectedFlag); 438 var currentLanguage = $this.data('language'); 439 i18next.changeLanguage(currentLanguage, function (err, t) {
440 $('.main-menu, .horizontal-menu-wrapper').localize(); 441 }); 442 }); 443 } 444 /********************* Bookmark & Search ***********************/ 445 // This variable is used for mouseenter and mouseleave events of search list 446 447 448 var $filename = $('.search-input input').data('search'), 449 bookmarkWrapper = $('.bookmark-wrapper'), 450 bookmarkStar = $('.bookmark-wrapper .bookmark-star'), 451 bookmarkInput = $('.bookmark-wrapper .bookmark-input'), 452 navLinkSearch = $('.nav-link-search'), 453 searchInput = $('.search-input'), 454 searchInputInputfield = $('.search-input input'), 455 searchList = $('.search-input .search-list'), 456 appContent = $('.app-content'), 457 bookmarkSearchList = $('.bookmark-input .search-list'); // Bookmark icon click 458 459 bookmarkStar.on('click', function (e) { 460 e.stopPropagation(); 461 bookmarkInput.toggleClass('show'); 462 bookmarkInput.find('input').val(''); 463 bookmarkInput.find('input').blur(); 464 bookmarkInput.find('input').focus(); 465 bookmarkWrapper.find('.search-list').addClass('show'); 466 var arrList = $('ul.nav.navbar-nav.bookmark-icons li'), 467 $arrList = '', 468 $activeItemClass = ''; 469 $('ul.search-list li').remove(); 470 471 for (var i = 0; i < arrList.length; i++) { 472 if (i === 0) { 473 $activeItemClass = 'current_item'; 474 } else { 475 $activeItemClass = ''; 476 } 477 478 var iconName = '', 479 className = ''; 480 481 if ($(arrList[i].firstChild.firstChild).hasClass('feather')) { 482 var classString = arrList[i].firstChild.firstChild.getAttribute('class'); 483 iconName = classString.split('feather-')[1].split(' ')[0]; 484 className = classString.split('feather-')[1].split(' ')[1]; 485 } 486
487 $arrList += '<li class="auto-suggestion ' + $activeItemClass + '">' + '<a class="d-flex align-items-center justify-content-between w-100" href=' + arrList[i].firstChild.href + '>' + '<div class="d-flex justify-content-start align-items-center">' + feather.icons[iconName].toSvg({ 488 "class": 'me-75 ' + className 489 }) + '<span>' + arrList[i].firstChild.dataset.bsOriginalTitle + '</span>' + '</div>' + feather.icons['star'].toSvg({ 490 "class": 'text-warning bookmark-icon float-end' 491 }) + '</a>' + '</li>'; 492 } 493 494 $('ul.search-list').append($arrList); 495 }); // Navigation Search area Open 496 497 navLinkSearch.on('click', function () { 498 var $this = $(this); 499 var searchInput = $(this).parent('.nav-search').find('.search-input'); 500 searchInput.addClass('open'); 501 searchInputInputfield.focus(); 502 searchList.find('li').remove(); 503 bookmarkInput.removeClass('show'); 504 }); // Navigation Search area Close 505 506 $('.search-input-close').on('click', function () { 507 var $this = $(this), 508 searchInput = $(this).closest('.search-input'); 509 510 if (searchInput.hasClass('open')) { 511 searchInput.removeClass('open'); 512 searchInputInputfield.val(''); 513 searchInputInputfield.blur(); 514 searchList.removeClass('show'); 515 appContent.removeClass('show-overlay'); 516 } 517 }); // Filter 518 519 if ($('.search-list-main').length) { 520 var searchListMain = new PerfectScrollbar('.search-list-main', { 521 wheelPropagation: false 522 }); 523 } 524 525 if ($('.search-list-bookmark').length) { 526 var searchListBookmark = new PerfectScrollbar('.search-list-bookmark', { 527 wheelPropagation: false 528 }); 529 } // update Perfect Scrollbar on hover 530 531 532 $('.search-list-main').mouseenter(function () { 533 searchListMain.update(); 534 }); 535 searchInputInputfield.on('keyup', function (e) { 536 $(this).closest('.search-list').addClass('show'); 537 538 if (e.keyCode !== 38 && e.keyCode !== 40 && e.keyCode !== 13) { 539 if (e.keyCode == 27) { 540 appContent.removeClass('show-overlay'); 541 bookmarkInput.find('input').val(''); 542 bookmarkInput.find('input').blur(); 543 searchInputInputfield.val(''); 544 searchInputInputfield.blur(); 545 searchInput.removeClass('open'); 546 547 if (searchInput.hasClass('show')) { 548 $(this).removeClass('show'); 549 searchInput.removeClass('show'); 550 } 551 } // Define variables 552 553 554 var value = $(this).val().toLowerCase(), 555 //get values of input on keyup 556 activeClass = '', 557 bookmark = false, 558 liList = $('ul.search-list li'); // get all the list items of the search 559 560 liList.remove(); // To check if current is bookmark input 561 562 if ($(this).parent().hasClass('bookmark-input')) { 563 bookmark = true; 564 } // If input value is blank 565 566 567 if (value != '') { 568 appContent.addClass('show-overlay'); // condition for bookmark and search input click 569 570 if (bookmarkInput.focus()) { 571 bookmarkSearchList.addClass('show'); 572 } else { 573 searchList.addClass('show'); 574 bookmarkSearchList.removeClass('show'); 575 } 576 577 if (bookmark === false) { 578 searchList.addClass('show'); 579 bookmarkSearchList.removeClass('show'); 580 } 581 582 var $startList = '', 583 $otherList = '', 584 $htmlList = '', 585 $bookmarkhtmlList = '', 586 $pageList = '<li class="d-flex align-items-center">' + '<a href="#">' + '<h6 class="section-label mt-75 mb-0">Pages</h6>' + '</a>' + '</li>', 587 $activeItemClass = '', 588 $bookmarkIcon = '', 589 $defaultList = '', 590 a = 0; // getting json data from file for search results 591 592 $.getJSON(assetPath + 'data/' + $filename + '.json', function (data) { 593 for (var i = 0; i < data.listItems.length; i++) { 594 // if current is bookmark then give class to star icon 595 // for laravel 596 if ($('body').attr('data-framework') === 'laravel') { 597 data.listItems[i].url = assetPath + data.listItems[i].url; 598 } 599 600 if (bookmark === true) { 601 activeClass = ''; // resetting active bookmark class 602 603 var arrList = $('ul.nav.navbar-nav.bookmark-icons li'), 604 $arrList = ''; // Loop to check if current seach value match with the bookmarks already there in navbar 605 606 for (var j = 0; j < arrList.length; j++) { 607 if (data.listItems[i].name === arrList[j].firstChild.dataset.bsOriginalTitle) { 608 activeClass = ' text-warning'; 609 break; 610 } else { 611 activeClass = ''; 612 } 613 } 614 615 $bookmarkIcon = feather.icons['star'].toSvg({ 616 "class": 'bookmark-icon float-end' + activeClass 617 }); 618 } // Search list item start with entered letters and create list 619 620 621 if (data.listItems[i].name.toLowerCase().indexOf(value) == 0 && a < 5) { 622 if (a === 0) {
623 $activeItemClass = 'current_item'; 624 } else { 625 $activeItemClass = ''; 626 } 627 628 $startList += '<li class="auto-suggestion ' + $activeItemClass + '">' + '<a class="d-flex align-items-center justify-content-between w-100" href=' + data.listItems[i].url + '>' + '<div class="d-flex justify-content-start align-items-center">' + feather.icons[data.listItems[i].icon].toSvg({ 629 "class": 'me-75 ' 630 }) + '<span>' + data.listItems[i].name + '</span>' + '</div>' + $bookmarkIcon + '</a>' + '</li>'; 631 a++; 632 } 633 } 634 635 for (var i = 0; i < data.listItems.length; i++) { 636 if (bookmark === true) { 637 activeClass = ''; // resetting active bookmark class 638 639 var arrList = $('ul.nav.navbar-nav.bookmark-icons li'), 640 $arrList = ''; // Loop to check if current search value match with the bookmarks already there in navbar 641 642 for (var j = 0; j < arrList.length; j++) { 643 if (data.listItems[i].name === arrList[j].firstChild.dataset.bsOriginalTitle) { 644 activeClass = ' text-warning'; 645 } else { 646 activeClass = ''; 647 } 648 } 649 650 $bookmarkIcon = feather.icons['star'].toSvg({ 651 "class": 'bookmark-icon float-end' + activeClass 652 }); 653 } // Search list item not start with letters and create list 654 655 656 if (!(data.listItems[i].name.toLowerCase().indexOf(value) == 0) && data.listItems[i].name.toLowerCase().indexOf(value) > -1 && a < 5) { 657 if (a === 0) { 658 $activeItemClass = 'current_item'; 659 } else { 660 $activeItemClass = ''; 661 } 662 663 $otherList += '<li class="auto-suggestion ' + $activeItem
663Class + '">' + '<a class="d-flex align-items-center justify-content-between w-100" href=' + data.listItems[i].url + '>' + '<div class="d-flex justify-content-start align-items-center">' + feather.icons[data.listItems[i].icon].toSvg({ 664 "class": 'me-75 ' 665 }) + '<span>' + data.listItems[i].name + '</span>' + '</div>' + $bookmarkIcon + '</a>' + '</li>'; 666 a++; 667 } 668 } 669 670 $defaultList = $('.main-search-list-defaultlist').html(); 671 672 if ($startList == '' && $otherList == '') { 673 $otherList = $('.main-search-list-defaultlist-other-list').html(); 674 } // concatinating startlist, otherlist, defalutlist with pagelist 675 676 677 $htmlList = $pageList.concat($startList, $otherList, $defaultList); 678 $('ul.search-list').html($htmlList); // concatinating otherlist with startlist 679 680 $bookmarkhtmlList = $startList.concat($otherList); 681 $('ul.search-list-bookmark').html($bookmarkhtmlList); // Feather Icons 682 // if (feather) { 683 // featherSVG(); 684 // } 685 }); 686 } else { 687 if (bookmark === true) { 688 var arrList = $('ul.nav.navbar-nav.bookmark-icons li'), 689 $arrList = ''; 690 691 for (var i = 0; i < arrList.length; i++) { 692 if (i === 0) { 693 $activeItemClass = 'current_item'; 694 } else { 695 $activeItemClass = ''; 696 } 697 698 var iconName = '', 699 className = ''; 700 701 if ($(arrList[i].firstChild.firstChild).hasClass('feather')) { 702 var classString = arrList[i].firstChild.firstChild.getAttribute('class'); 703 iconName = classString.split('feather-')[1].split(' ')[0]; 704 className = classString.split('feather-')[1].split(' ')[1]; 705 } 706 707 $arrList += '<li class="auto-suggestion">' + '<a class="d-flex align-items-center justify-content-between w-100" href=' + arrList[i].firstChild.href + '>' + '<div class="d-flex justify-content-start align-items-center">' + feather.icons[iconName].toSvg({ 708 "class": 'me-75 ' 709 }) + '<span>' + arrList[i].firstChild.dataset.bsOriginalTitle + '</span>' + '</div>' + feather.icons['star'].toSvg({ 710 "class": 'text-warning bookmark-icon float-end' 711 }) + '</a>' + '</li>'; 712 } 713 714 $('ul.search-list').append($arrList); // Feather Icons 715 // if (feather) { 716 // featherSVG(); 717 // } 718 } else { 719 // if search input blank, hide overlay 720 if (appContent.hasClass('show-overlay')) { 721 appContent.removeClass('show-overlay'); 722 } // If filter box is empty 723 724 725 if (searchList.hasClass('show')) { 726 searchList.removeClass('show'); 727 } 728 } 729 } 730 } 731 }); // Add class on hover of the list 732 733 $(document).on('mouseenter', '.search-list li', function (e) { 734 $(this).siblings().removeClass('current_item'); 735 $(this).addClass('current_item'); 736 }); 737 $(document).on('click', '.search-list li', function (e) { 738 e.stopPropagation(); 739 }); 740 $('html').on('click', function ($this) { 741 if (!$($this.target).hasClass('bookmark-icon')) { 742 if (bookmarkSearchList.hasClass('show')) { 743 bookmarkSearchList.removeClass('show'); 744 } 745 746 if (bookmarkInput.hasClass('show')) { 747 bookmarkInput.removeClass('show'); 748 appContent.removeClass('show-overlay'); 749 } 750 } 751 }); // Prevent closing bookmark dropdown on input textbox click 752 753 $(document).on('click', '.bookmark-input input', function (e) { 754 bookmarkInput.addClass('show'); 755 bookmarkSearchList.addClass('show'); 756 }); // Favorite star click 757 758 $(document).on('click', '.bookmark-input .search-list .bookmark-icon', function (e) { 759 e.stopPropagation(); 760 761 if ($(this).hasClass('text-warning')) { 762 $(this).removeClass('text-warning'); 763 var arrList = $('ul.nav.navbar-nav.bookmark-icons li'); 764 765 for (var i = 0; i < arrList.length; i++) { 766 if (arrList[i].firstChild.dataset.bsOriginalTitle == $(this).parent()[0].innerText) { 767 arrList[i].remove(); 768 } 769 } 770 771 e.preventDefault(); 772 } else { 773 var arrList = $('ul.nav.navbar-nav.bookmark-icons li'); 774 $(this).addClass('text-warning'); 775 e.preventDefault(); 776 var $url = $(this).parent()[0].href, 777 $name = $(this).parent()[0].innerText, 778 $listItem = '', 779 $listItemDropdown = '', 780 iconName = $(this).parent()[0].firstChild.firstChild.dataset.icon; 781 782 if ($($(this).parent()[0].firstChild.firstChild).hasClass('feather')) { 783 var classString = $(this).parent()[0].firstChild.firstChild.getAttribute('class'); 784 iconName = classString.split('feather-')[1].split(' ')[0]; 785 } 786 787 $listItem = '<li class="nav-item d-none d-lg-block">' + '<a class="nav-link" href="' + $url + '" data-bs-toggle="tooltip" data-bs-placement="bottom" title="' + $name + '">' + feather.icons[iconName].toSvg({ 788 "class": 'ficon' 789 }) + '</a>' + '</li>'; 790 $('ul.nav.bookmark-icons').append($listItem); 791 $('[data-bs-toggle="tooltip"]').tooltip(); 792 } 793 }); // If we use up key(38) Down key (40) or Enter key(13) 794 795 $(window).on('keydown', function (e) { 796 var $current = $('.search-list li.current_item'), 797 $next, 798 $prev; 799 800 if (e.keyCode === 40) { 801 $next = $current.next(); 802 $current.removeClass('current_item'); 803 $current = $next.addClass('current_item'); 804 } else if (e.keyCode === 38) { 805 $prev = $current.prev(); 806 $current.removeClass('current_item'); 807 $current = $prev.addClass('current_item'); 808 } 809 810 if (e.keyCode === 13 && $('.search-list li.current_item').length > 0) { 811 var selected_item = $('.search-list li.current_item a'); 812 window.location = selected_item.attr('href'); 813 $(selected_item).trigger('click'); 814 } 815 }); // Waves Effect 816 817 Waves.init();
818 Waves.attach(".btn:not([class*='btn-relief-']):not([class*='btn-gradient-']):not([class*='btn-outline-']):not([class*='btn-flat-'])", ['waves-float', 'waves-light']); 819 Waves.attach("[class*='btn-outline-']"); 820 Waves.attach("[class*='btn-flat-']"); 821 $('.form-password-toggle .input-group-text').on('click', function (e) { 822 e.preventDefault(); 823 var $this = $(this), 824 inputGroupText = $this.closest('.form-password-toggle'), 825 formPasswordToggleIcon = $this, 826 formPasswordToggleInput = inputGroupText.find('input'); 827 828 if (formPasswordToggleInput.attr('type') === 'text') { 829 formPasswordToggleInput.attr('type', 'password'); 830 831 if (feather) { 832 formPasswordToggleIcon.find('svg').replaceWith(feather.icons['eye'].toSvg({ 833 "class": 'font-small-4' 834 })); 835 } 836 } else if (formPasswordToggleInput.attr('type') === 'password') { 837 formPasswordToggleInput.attr('type', 'text'); 838 839 if (feather) { 840 formPasswordToggleIcon.find('svg').replaceWith(feather.icons['eye-off'].toSvg({ 841 "class": 'font-small-4' 842 })); 843 } 844 } 845 }); // on window scroll button show/hide 846 847 $(window).on('scroll', function () { 848 if ($(this).scrollTop() > 400) { 849 $('.scroll-top').fadeIn(); 850 } else { 851 $('.scroll-top').fadeOut(); 852 } // On Scroll navbar color on horizontal menu 853 854 855 if ($body.hasClass('navbar-static')) { 856 var scroll = $(window).scrollTop(); 857 858 if (scroll > 65) { 859 $('html:not(.dark-layout) .horizontal-menu .header-navbar.navbar-fixed').css({ 860 background: '#fff', 861 'box-shadow': '0 4px 20px 0 rgba(0,0,0,.05)' 862 }); 863 $('.horizontal-menu.dark-layout .header-navbar.navbar-fixed').css({ 864 background: '#161d31', 865 'box-shadow': '0 4px 20px 0 rgba(0,0,0,.05)' 866 }); 867 $('html:not(.dark-layout) .horizontal-menu .horizontal-menu-wrapper.header-navbar').css('background', '#fff'); 868 $('.dark-layout .horizontal-menu .horizontal-menu-wrapper.header-navbar').css('background', '#161d31'); 869 } else { 870 $('html:not(.dark-layout) .horizontal-menu .header-navbar.navbar-fixed').css({ 871 background: '#f8f8f8', 872 'box-shadow': 'none' 873 }); 874 $('.dark-layout .horizontal-menu .header-navbar.navbar-fixed').css({ 875 background: '#161d31', 876 'box-shadow': 'none' 877 }); 878 $('html:not(.dark-layout) .horizontal-menu .horizontal-menu-wrapper.header-navbar').css('background', '#fff'); 879 $('.dark-layout .horizontal-menu .horizontal-menu-wrapper.header-navbar').css('background', '#161d31'); 880 } 881 } 882 }); // Click event to scroll to top 883 884 $('.scroll-top').on('click', function () { 885 $('html, body').animate({ 886 scrollTop: 0 887 }, 75); 888 }); 889 890 function getCurrentLayout() { 891 var currentLayout = ''; 892 893 if ($html.hasClass('dark-layout')) { 894 currentLayout = 'dark-layout'; 895 } else if ($html.hasClass('bordered-layout')) { 896 currentLayout = 'bordered-layout'; 897 } else if ($html.hasClass('semi-dark-layout')) { 898 currentLayout = 'semi-dark-layout'; 899 } else { 900 currentLayout = 'light-layout'; 901 } 902 903 return currentLayout; 904 } // Get the data layout, for blank set to light layout 905 906 907 var dataLayout = $html.attr('data-layout') ? $html.attr('data-layout') : 'light-layout'; // Navbar Dark / Light Layout Toggle Switch 908 909 $('.nav-link-style').on('click', function () { 910 var currentLayout = getCurrentLayout(), 911 switchToLayout = '', 912 prevLayout = localStorage.getItem(dataLayout + '-prev-skin', currentLayout); // If currentLayout is not dark layout 913 914 if (currentLayout !== 'dark-layout') { 915 // Switch to dark 916 switchToLayout = 'dark-layout'; 917 } else { 918 // Switch to light 919 // switchToLayout = prevLayout ? prevLayout : 'light-layout'; 920 if (currentLayout === prevLayout) { 921 switchToLayout = 'light-layout'; 922 } else { 923 switchToLayout = prevLayout ? prevLayout : 'light-layout'; 924 } 925 } // Set Previous skin in local db 926 927 928 localStorage.setItem(dataLayout + '-prev-skin', currentLayout); // Set Current skin in local db 929 930 localStorage.setItem(dataLayout + '-current-skin', switchToLayout); // Call set layout 931 932 setLayout(switchToLayout); // ToDo: Customizer fix 933 934 $('.horizontal-menu .header-navbar.navbar-fixed').css({ 935 background: 'inherit', 936 'box-shadow': 'inherit' 937 });
938 $('.horizontal-menu .horizontal-menu-wrapper.header-navbar').css('background', 'inherit'); 939 }); // Get current local storage layout 940 941 var currentLocalStorageLayout = localStorage.getItem(dataLayout + '-current-skin'); // Set layout on screen load 942 //? Comment it if you don't want to sync layout with local db 943 // setLayout(currentLocalStorageLayout); 944 945 function setLayout(currentLocalStorageLayout) { 946 var navLinkStyle = $('.nav-link-style'), 947 currentLayout = getCurrentLayout(), 948 mainMenu = $('.main-menu'), 949 navbar = $('.header-navbar'), 950 // Witch to local storage layout if we have else current layout 951 switchToLayout = currentLocalStorageLayout ? currentLocalStorageLayout : currentLayout; 952 $html.removeClass('semi-dark-layout dark-layout bordered-layout'); 953 954 if (switchToLayout === 'dark-layout') { 955 $html.addClass('dark-layout'); 956 mainMenu.removeClass('menu-light').addClass('menu-dark'); 957 navbar.removeClass('navbar-light').addClass('navbar-dark'); 958 navLinkStyle.find('.ficon').replaceWith(feather.icons['sun'].toSvg({ 959 "class": 'ficon' 960 })); 961 } else if (switchToLayout === 'bordered-layout') { 962 $html.addClass('bordered-layout'); 963 mainMenu.removeClass('menu-dark').addClass('menu-light'); 964 navbar.removeClass('navbar-dark').addClass('navbar-light'); 965 navLinkStyle.find('.ficon').replaceWith(feather.icons['moon'].toSvg({ 966 "class": 'ficon' 967 })); 968 } else if (switchToLayout === 'semi-dark-layout') { 969 $html.addClass('semi-dark-layout'); 970 mainMenu.removeClass('menu-dark').addClass('menu-light'); 971 navbar.removeClass('navbar-dark').addClass('navbar-light'); 972 navLinkStyle.find('.ficon').replaceWith(feather.icons['moon'].toSvg({ 973 "class": 'ficon' 974 })); 975 } else { 976 $html.addClass('light-layout'); 977 mainMenu.removeClass('menu-dark').addClass('menu-light'); 978 navbar.removeClass('navbar-dark').addClass('navbar-light'); 979 navLinkStyle.find('.ficon').replaceWith(feather.icons['moon'].toSvg({ 980 "class": 'ficon' 981 })); 982 } // Set radio in customizer if we have 983 984 985 if ($('input:radio[data-layout=' + switchToLayout + ']').length > 0) { 986 setTimeout(function () { 987 $('input:radio[data-layout=' + switchToLayout + ']').prop('checked', true); 988 }); 989 } 990 } 991})(window, document, jQuery); // To use feather svg icons with different sizes 992 993 994function featherSVG(iconSize) { 995 // Feather Icons 996 if (iconSize == undefined) { 997 iconSize = '14'; 998 } 999 1000 return feather.replace({ 1001 width: iconSize, 1002 height: iconSize 1003 }); 1004} // jQuery Validation Global Defaults 1005 1006 1007if (typeof jQuery.validator === 'function') { 1008 jQuery.validator.setDefaults({ 1009 errorElement: 'span', 1010 errorPlacement: function errorPlacement(error, element) { 1011 if (element.parent().hasClass('input-group') || element.hasClass('select2') || element.attr('type') === 'checkbox') { 1012 error.insertAfter(element.parent()); 1013 } else if (element.hasClass('form-check-input')) { 1014 error.insertAfter(element.parent().siblings(':last')); 1015 } else { 1016 error.insertAfter(element); 1017 } 1018 1019 if (element.parent().hasClass('input-group')) { 1020 element.parent().addClass('is-invalid'); 1021 } 1022 }, 1023 highlight: function highlight(element, errorClass, validClass) { 1024 $(element).addClass('error'); 1025 1026 if ($(element).parent().hasClass('input-group')) { 1027 $(element).parent().addClass('is-invalid'); 1028 } 1029 }, 1030 unhighlight: function unhighlight(element, errorClass, validClass) { 1031 $(element).removeClass('error'); 1032 1033 if ($(element).parent().hasClass('input-group')) { 1034 $(element).parent().removeClass('is-invalid'); 1035 } 1036 } 1037 }); 1038} // Add validation class to input-group (input group validation fix, currently disabled but will be useful in future) 1039 1040/* function inputGroupValidation(el) { 1041 var validEl, 1042 invalidEl, 1043 elem = $(el); 1044 1045 if (elem.hasClass('form-control')) { 1046 if ($(elem).is('.form-control:valid, .form-control.is-valid')) { 1047 validEl = elem; 1048 } 1049 if ($(elem).is('.form-control:invalid, .form-control.is-invalid')) { 1050 invalidEl = elem; 1051 } 1052 } else { 1053 validEl = elem.find('.form-control:valid, .form-control.is-valid'); 1054 invalidEl = elem.find('.form-control:invalid, .form-control.is-invalid'); 1055 } 1056 if (validEl !== undefined) { 1057 validEl.closest('.input-group').removeClass('.is-valid is-invalid').addClass('is-valid'); 1058 } 1059 if (invalidEl !== undefined) { 1060 invalidEl.closest('.input-group').removeClass('.is-valid is-invalid').addClass('is-invalid'); 1061 } 1062} */ 1063/******/ })() 1064;
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.