1/*! 2 * AdminLTE v3.0.1 (https://adminlte.io) 3 * Copyright 2014-2019 Colorlib <http://colorlib.com> 4 * Licensed under MIT (https://github.com/ColorlibHQ/AdminLTE/blob/master/LICENSE) 5 */ 6(function (global, factory) { 7 typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : 8 typeof define === 'function' && define.amd ? define(['exports'], factory) : 9 (global = global || self, factory(global.adminlte = {})); 10}(this, (function (exports) { 'use strict'; 11 12 /** 13 * -------------------------------------------- 14 * AdminLTE ControlSidebar.js 15 * License MIT 16 * -------------------------------------------- 17 */ 18 var ControlSidebar = function ($) { 19 /** 20 * Constants 21 * ==================================================== 22 */ 23 var NAME = 'ControlSidebar'; 24 var DATA_KEY = 'lte.controlsidebar'; 25 var EVENT_KEY = "." + DATA_KEY; 26 var JQUERY_NO_CONFLICT = $.fn[NAME]; 27 var Event = { 28 COLLAPSED: "collapsed" + EVENT_KEY, 29 EXPANDED: "expanded" + EVENT_KEY 30 }; 31 var Selector = { 32 CONTROL_SIDEBAR: '.control-sidebar', 33 CONTROL_SIDEBAR_CONTENT: '.control-sidebar-content', 34 DATA_TOGGLE: '[data-widget="control-sidebar"]', 35 CONTENT: '.content-wrapper', 36 HEADER: '.main-header', 37 FOOTER: '.main-footer' 38 }; 39 var ClassName = { 40 CONTROL_SIDEBAR_ANIMATE: 'control-sidebar-animate', 41 CONTROL_SIDEBAR_OPEN: 'control-sidebar-open', 42 CONTROL_SIDEBAR_SLIDE: 'control-sidebar-slide-open', 43 LAYOUT_FIXED: 'layout-fixed', 44 NAVBAR_FIXED: 'layout-navbar-fixed', 45 NAVBAR_SM_FIXED: 'layout-sm-navbar-fixed', 46 NAVBAR_MD_FIXED: 'layout-md-navbar-fixed', 47 NAVBAR_LG_FIXED: 'layout-lg-navbar-fixed', 48 NAVBAR_XL_FIXED: 'layout-xl-navbar-fixed', 49 FOOTER_FIXED: 'layout-footer-fixed', 50 FOOTER_SM_FIXED: 'layout-sm-footer-fixed', 51 FOOTER_MD_FIXED: 'layout-md-footer-fixed', 52 FOOTER_LG_FIXED: 'layout-lg-footer-fixed', 53 FOOTER_XL_FIXED: 'layout-xl-footer-fixed' 54 }; 55 var Default = { 56 controlsidebarSlide: true, 57 scrollbarTheme: 'os-theme-light', 58 scrollbarAutoHide: 'l' 59 }; 60 /** 61 * Class Definition 62 * ==================================================== 63 */ 64 65 var ControlSidebar = 66 /*#__PURE__*/ 67 function () { 68 function ControlSidebar(element, config) { 69 this._element = element; 70 this._config = config; 71 72 this._init(); 73 } // Public 74 75 76 var _proto = ControlSidebar.prototype; 77 78 _proto.show = function show() { 79 // Show the control sidebar 80 if (this._config.controlsidebarSlide) { 81 $('html').addClass(ClassName.CONTROL_SIDEBAR_ANIMATE); 82 $('body').removeClass(ClassName.CONTROL_SIDEBAR_SLIDE).delay(300).queue(function () { 83 $(Selector.CONTROL_SIDEBAR).hide(); 84 $('html').removeClass(ClassName.CONTROL_SIDEBAR_ANIMATE); 85 $(this).dequeue(); 86 }); 87 } else { 88 $('body').removeClass(ClassName.CONTROL_SIDEBAR_OPEN); 89 } 90 91 var expandedEvent = $.Event(Event.EXPANDED); 92 $(this._element).trigger(expandedEvent); 93 }; 94 95 _proto.collapse = function collapse() { 96 // Collapse the control sidebar 97 if (this._config.controlsidebarSlide) { 98 $('html').addClass(ClassName.CONTROL_SIDEBAR_ANIMATE); 99 $(Selector.CONTROL_SIDEBAR).show().delay(10).queue(function () { 100 $('body').addClass(ClassName.CONTROL_SIDEBAR_SLIDE).delay(300).queue(function () { 101 $('html').removeClass(ClassName.CONTROL_SIDEBAR_ANIMATE); 102 $(this).dequeue(); 103 }); 104 $(this).dequeue(); 105 }); 106 } else { 107 $('body').addClass(ClassName.CONTROL_SIDEBAR_OPEN); 108 } 109 110 var collapsedEvent = $.Event(Event.COLLAPSED); 111 $(this._element).trigger(collapsedEvent); 112 }; 113 114 _proto.toggle = function toggle() { 115 var shouldOpen = $('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || $('body').hasClass(ClassName.CONTROL_SIDEBAR_SLIDE); 116 117 if (shouldOpen) { 118 // Open the control sidebar 119 this.show(); 120 } else { 121 // Close the control sidebar 122 this.collapse(); 123 } 124 } // Private 125 ; 126 127 _proto._init = function _init() { 128 var _this = this; 129 130 this._fixHeight(); 131 132 this._fixScrollHeight(); 133 134 $(window).resize(function () { 135 _this._fixHeight(); 136 137 _this._fixScrollHeight(); 138 }); 139 $(window).scroll(function () { 140 if ($('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || $('body').hasClass(ClassName.CONTROL_SIDEBAR_SLIDE)) { 141 _this._fixScrollHeight(); 142 } 143 }); 144 }; 145 146 _proto._fixScrollHeight = function _fixScrollHeight() { 147 var heights = { 148 scroll: $(document).height(), 149 window: $(window).height(), 150 header: $(Selector.HEADER).outerHeight(), 151 footer: $(Selector.FOOTER).outerHeight() 152 }; 153 var positions = { 154 bottom: Math.abs(heights.window + $(window).scrollTop() - heights.scroll), 155 top: $(window).scrollTop() 156 }; 157 var navbarFixed = false;
158 var footerFixed = false; 159 160 if ($('body').hasClass(ClassName.LAYOUT_FIXED)) { 161 if ($('body').hasClass(ClassName.NAVBAR_FIXED) || $('body').hasClass(ClassName.NAVBAR_SM_FIXED) || $('body').hasClass(ClassName.NAVBAR_MD_FIXED) || $('body').hasClass(ClassName.NAVBAR_LG_FIXED) || $('body').hasClass(ClassName.NAVBAR_XL_FIXED)) { 162 if ($(Selector.HEADER).css("position") === "fixed") { 163 navbarFixed = true; 164 } 165 } 166 167 if ($('body').hasClass(ClassName.FOOTER_FIXED) || $('body').hasClass(ClassName.FOOTER_SM_FIXED) || $('body').hasClass(ClassName.FOOTER_MD_FIXED) || $('body').hasClass(ClassName.FOOTER_LG_FIXED) || $('body').hasClass(ClassName.FOOTER_XL_FIXED)) { 168 if ($(Selector.FOOTER).css("position") === "fixed") { 169 footerFixed = true; 170 } 171 } 172 173 if (positions.top === 0 && positions.bottom === 0) { 174 $(Selector.CONTROL_SIDEBAR).css('bottom', heights.footer); 175 $(Selector.CONTROL_SIDEBAR).css('top', heights.header); 176 $(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window - (heights.header + heights.footer)); 177 } else if (positions.bottom <= heights.footer) { 178 if (footerFixed === false) { 179 $(Selector.CONTROL_SIDEBAR).css('bottom', heights.footer - positions.bottom); 180 $(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window - (heights.footer - positions.bottom)); 181 } else { 182 $(Selector.CONTROL_SIDEBAR).css('bottom', heights.footer); 183 } 184 } else if (positions.top <= heights.header) { 185 if (navbarFixed === false) { 186 $(Selector.CONTROL_SIDEBAR).css('top', heights.header - positions.top); 187 $(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window - (heights.header - positions.top)); 188 } else { 189 $(Selector.CONTROL_SIDEBAR).css('top', heights.header); 190 } 191 } else { 192 if (navbarFixed === false) { 193 $(Selector.CONTROL_SIDEBAR).css('top', 0); 194 $(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window); 195 } else { 196 $(Selector.CONTROL_SIDEBAR).css('top', heights.header); 197 } 198 } 199 } 200 }; 201 202 _proto._fixHeight = function _fixHeight() { 203 var heights = { 204 window: $(window).height(), 205 header: $(Selector.HEADER).outerHeight(), 206 footer: $(Selector.FOOTER).outerHeight() 207 }; 208 209 if ($('body').hasClass(ClassName.LAYOUT_FIXED)) { 210 var sidebarHeight = heights.window - heights.header; 211 212 if ($('body').hasClass(ClassName.FOOTER_FIXED) || $('body').hasClass(ClassName.FOOTER_SM_FIXED) || $('body').hasClass(ClassName.FOOTER_MD_FIXED) || $('body').hasClass(ClassName.FOOTER_LG_FIXED) || $('body').hasClass(ClassName.FOOTER_XL_FIXED)) { 213 if ($(Selector.FOOTER).css("position") === "fixed") { 214 sidebarHeight = heights.window - heights.header - heights.footer; 215 } 216 } 217 218 $(Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', sidebarHeight); 219 220 if (typeof $.fn.overlayScrollbars !== 'undefined') { 221 $(Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).overlayScrollbars({ 222 className: this._config.scrollbarTheme, 223 sizeAutoCapable: true, 224 scrollbars: { 225 autoHide: this._config.scrollbarAutoHide, 226 clickScrolling: true 227 } 228 }); 229 } 230 } 231 } // Static 232 ; 233 234 ControlSidebar._jQueryInterface = function _jQueryInterface(operation) { 235 return this.each(function () { 236 var data = $(this).data(DATA_KEY); 237 238 var _options = $.extend({}, Default, $(this).data()); 239 240 if (!data) { 241 data = new ControlSidebar(this, _options); 242 $(this).data(DATA_KEY, data); 243 } 244 245 if (data[operation] === 'undefined') { 246 throw new Error(operation + " is not a function"); 247 } 248 249 data[operation](); 250 }); 251 }; 252 253 return ControlSidebar; 254 }(); 255 /** 256 * 257 * Data Api implementation 258 * ==================================================== 259 */ 260 261 262 $(document).on('click', Selector.DATA_TOGGLE, function (event) { 263 event.preventDefault(); 264 265 ControlSidebar._jQueryInterface.call($(this), 'toggle'); 266 }); 267 /** 268 * jQuery API 269 * ==================================================== 270 */ 271 272 $.fn[NAME] = ControlSidebar._jQueryInterface; 273 $.fn[NAME].Constructor = ControlSidebar; 274 275 $.fn[NAME].noConflict = function () { 276 $.fn[NAME] = JQUERY_NO_CONFLICT; 277 return ControlSidebar._jQueryInterface; 278 }; 279 280 return ControlSidebar; 281 }(jQuery); 282 283 /** 284 * -------------------------------------------- 285 * AdminLTE Layout.js 286 * License MIT 287 * -------------------------------------------- 288 */ 289 var Layout = function ($) { 290 /** 291 * Constants 292 * ==================================================== 293 */ 294 var NAME = 'Layout'; 295 var DATA_KEY = 'lte.layout'; 296 var JQUERY_NO_CONFLICT = $.fn[NAME]; 297 var Selector = { 298 HEADER: '.main-header', 299 MAIN_SIDEBAR: '.main-sidebar', 300 SIDEBAR: '.main-sidebar .sidebar', 301 CONTENT: '.content-wrapper', 302 BRAND: '.brand-link', 303 CONTENT_HEADER: '.content-header', 304 WRAPPER: '.wrapper', 305 CONTROL_SIDEBAR: '.control-sidebar', 306 LAYOUT_FIXED: '.layout-fixed', 307 FOOTER: '.main-footer', 308 PUSHMENU_BTN: '[data-widget="pushmenu"]', 309 LOGIN_BOX: '.login-box', 310 REGISTER_BOX: '.register-box' 311 }; 312 var ClassName = { 313 HOLD: 'hold-transition', 314 SIDEBAR: 'main-sidebar', 315 CONTENT_FIXED: 'content-fixed', 316 SIDEBAR_FOCUSED: 'sidebar-focused', 317 LAYOUT_FIXED: 'layout-fixed', 318 NAVBAR_FIXED: 'layout-navbar-fixed', 319 FOOTER_FIXED: 'layout-footer-fixed', 320 LOGIN_PAGE: 'login-page', 321 REGISTER_PAGE: 'register-page' 322 }; 323 var Default = { 324 scrollbarTheme: 'os-theme-light', 325 scrollbarAutoHide: 'l' 326 }; 327 /** 328 * Class Definition 329 * ==================================================== 330 */ 331 332 var Layout = 333 /*#__PURE__*/ 334 function () { 335 function Layout(element, config) { 336 this._config = config; 337 this._element = element; 338 339 this._init(); 340 } // Public 341 342 343 var _proto = Layout.prototype; 344 345 _proto.fixLayoutHeight = function fixLayoutHeight() { 346 var heights = { 347 window: $(window).height(), 348 header: $(Selector.HEADER).length !== 0 ? $(Selector.HEADER).outerHeight() : 0, 349 footer: $(Selector.FOOTER).length !== 0 ? $(Selector.FOOTER).outerHeight() : 0, 350 sidebar: $(Selector.SIDEBAR).length !== 0 ? $(Selector.SIDEBAR).height() : 0 351 }; 352 353 var max = this._max(heights); 354 355 if (max == heights.window) { 356 $(Selector.CONTENT).css('min-height', max - heights.header - heights.footer); 357 } else { 358 $(Selector.CONTENT).css('min-height', max - heights.header); 359 } 360 361 if ($('body').hasClass(ClassName.LAYOUT_FIXED)) { 362 $(Selector.CONTENT).css('min-height', max - heights.header - heights.footer); 363 364 if (typeof $.fn.overlayScrollbars !== 'undefined') { 365 $(Selector.SIDEBAR).overlayScrollbars({ 366 className: this._config.scrollbarTheme, 367 sizeAutoCapable: true, 368 scrollbars: { 369 autoHide: this._config.scrollbarAutoHide, 370 clickScrolling: true 371 } 372 }); 373 } 374 } 375 } // Private 376 ; 377 378 _proto._init = function _init() { 379 var _this = this; 380 381 // Activate layout height watcher 382 this.fixLayoutHeight(); 383 $(Selector.SIDEBAR).on('collapsed.lte.treeview expanded.lte.treeview', function () { 384 _this.fixLayoutHeight(); 385 }); 386 $(Selector.PUSHMENU_BTN).on('collapsed.lte.pushmenu shown.lte.pushmenu', function () { 387 _this.fixLayoutHeight(); 388 }); 389 $(window).resize(function () { 390 _this.fixLayoutHeight(); 391 }); 392 393 if (!$('body').hasClass(ClassName.LOGIN_PAGE) && !$('body').hasClass(ClassName.REGIST
393ER_PAGE)) { 394 $('body, html').css('height', 'auto'); 395 } else if ($('body').hasClass(ClassName.LOGIN_PAGE) || $('body').hasClass(ClassName.REGISTER_PAGE)) { 396 var box_height = $(Selector.LOGIN_BOX + ', ' + Selector.REGISTER_BOX).height(); 397 $('body').css('min-height', box_height); 398 } 399 400 $('body.hold-transition').removeClass('hold-transition'); 401 }; 402 403 _proto._max = function _max(numbers) { 404 // Calculate the maximum number in a list 405 var max = 0; 406 Object.keys(numbers).forEach(function (key) { 407 if (numbers[key] > max) { 408 max = numbers[key]; 409 } 410 }); 411 return max; 412 } // Static 413 ; 414 415 Layout._jQueryInterface = function _jQueryInterface(config) { 416 return this.each(function () { 417 var data = $(this).data(DATA_KEY); 418 419 var _options = $.extend({}, Default, $(this).data()); 420 421 if (!data) { 422 data = new Layout($(this), _options); 423 $(this).data(DATA_KEY, data); 424 } 425 426 if (config === 'init') { 427 data[config](); 428 } 429 }); 430 }; 431 432 return Layout; 433 }(); 434 /** 435 * Data API 436 * ==================================================== 437 */ 438 439 440 $(window).on('load', function () { 441 Layout._jQueryInterface.call($('body')); 442 }); 443 $(Selector.SIDEBAR + ' a').on('focusin', function () { 444 $(Selector.MAIN_SIDEBAR).addClass(ClassName.SIDEBAR_FOCUSED); 445 }); 446 $(Selector.SIDEBAR + ' a').on('focusout', function () { 447 $(Selector.MAIN_SIDEBAR).removeClass(ClassName.SIDEBAR_FOCUSED); 448 }); 449 /** 450 * jQuery API 451 * ==================================================== 452 */ 453 454 $.fn[NAME] = Layout._jQueryInterface; 455 $.fn[NAME].Constructor = Layout; 456 457 $.fn[NAME].noConflict = function () { 458 $.fn[NAME] = JQUERY_NO_CONFLICT; 459 return Layout._jQueryInterface; 460 }; 461 462 return Layout; 463 }(jQuery); 464 465 /** 466 * -------------------------------------------- 467 * AdminLTE PushMenu.js 468 * License MIT 469 * -------------------------------------------- 470 */ 471 var PushMenu = function ($) { 472 /** 473 * Constants 474 * ==================================================== 475 */ 476 var NAME = 'PushMenu'; 477 var DATA_KEY = 'lte.pushmenu'; 478 var EVENT_KEY = "." + DATA_KEY; 479 var JQUERY_NO_CONFLICT = $.fn[NAME]; 480 var Event = { 481 COLLAPSED: "collapsed" + EVENT_KEY, 482 SHOWN: "shown" + EVENT_KEY 483 }; 484 var Default = { 485 autoCollapseSize: 992, 486 enableRemember: false, 487 noTransitionAfterReload: true 488 }; 489 var Selector = { 490 TOGGLE_BUTTON: '[data-widget="pushmenu"]', 491 SIDEBAR_MINI: '.sidebar-mini', 492 SIDEBAR_COLLAPSED: '.sidebar-collapse', 493 BODY: 'body', 494 OVERLAY: '#sidebar-overlay', 495 WRAPPER: '.wrapper' 496 }; 497 var ClassName = { 498 SIDEBAR_OPEN: 'sidebar-open', 499 COLLAPSED: 'sidebar-collapse', 500 OPEN: 'sidebar-open' 501 }; 502 /** 503 * Class Definition 504 * ==================================================== 505 */ 506 507 var PushMenu = 508 /*#__PURE__*/ 509 function () { 510 function PushMenu(element, options) { 511 this._element = element; 512 this._options = $.extend({}, Default, options); 513 514 if (!$(Selector.OVERLAY).length) { 515 this._addOverlay(); 516 } 517 518 this._init(); 519 } // Public 520 521 522 var _proto = PushMenu.prototype; 523 524 _proto.expand = function expand() { 525 if (this._options.autoCollapseSize) { 526 if ($(window).width() <= this._options.autoCollapseSize) { 527 $(Selector.BODY).addClass(ClassName.OPEN); 528 } 529 } 530 531 $(Selector.BODY).removeClass(ClassName.COLLAPSED); 532 533 if (this._options.enableRemember) { 534 localStorage.setItem("remember" + EVENT_KEY, ClassName.OPEN); 535 } 536 537 var shownEvent = $.Event(Event.SHOWN); 538 $(this._element).trigger(shownEvent); 539 }; 540 541 _proto.collapse = function collapse() { 542 if (this._options.autoCollapseSize) { 543 if ($(window).width() <= this._options.autoCollapseSize) { 544 $(Selector.BODY).removeClass(ClassName.OPEN); 545 } 546 } 547 548 $(Selector.BODY).addClass(ClassName.COLLAPSED); 549 550 if (this._options.enableRemember) { 551 localStorage.setItem("remember" + EVENT_KEY, ClassName.COLLAPSED); 552 } 553 554 var collapsedEvent = $.Event(Event.COLLAPSED); 555 $(this._element).trigger(collapsedEvent); 556 }; 557
558 _proto.toggle = function toggle() { 559 if (!$(Selector.BODY).hasClass(ClassName.COLLAPSED)) { 560 this.collapse(); 561 } else { 562 this.expand(); 563 } 564 }; 565 566 _proto.autoCollapse = function autoCollapse(resize) { 567 if (resize === void 0) { 568 resize = false; 569 } 570 571 if (this._options.autoCollapseSize) { 572 if ($(window).width() <= this._options.autoCollapseSize) { 573 if (!$(Selector.BODY).hasClass(ClassName.OPEN)) { 574 this.collapse(); 575 } 576 } else if (resize == true) { 577 if ($(Selector.BODY).hasClass(ClassName.OPEN)) { 578 $(Selector.BODY).removeClass(ClassName.OPEN); 579 } 580 } 581 } 582 }; 583 584 _proto.remember = function remember() { 585 if (this._options.enableRemember) { 586 var toggleState = localStorage.getItem("remember" + EVENT_KEY); 587 588 if (toggleState == ClassName.COLLAPSED) { 589 if (this._options.noTransitionAfterReload) { 590 $("body").addClass('hold-transition').addClass(ClassName.COLLAPSED).delay(50).queue(function () { 591 $(this).removeClass('hold-transition'); 592 $(this).dequeue(); 593 }); 594 } else { 595 $("body").addClass(ClassName.COLLAPSED); 596 } 597 } else { 598 if (this._options.noTransitionAfterReload) { 599 $("body").addClass('hold-transition').removeClass(ClassName.COLLAPSED).delay(50).queue(function () { 600 $(this).removeClass('hold-transition'); 601 $(this).dequeue(); 602 }); 603 } else { 604 $("body").removeClass(ClassName.COLLAPSED); 605 } 606 } 607 } 608 } // Private 609 ; 610 611 _proto._init = function _init() { 612 var _this = this; 613 614 this.remember(); 615 this.autoCollapse(); 616 $(window).resize(function () { 617 _this.autoCollapse(true); 618 }); 619 }; 620 621 _proto._addOverlay = function _addOverlay() { 622 var _this2 = this; 623 624 var overlay = $('<div />', { 625 id: 'sidebar-overlay' 626 }); 627 overlay.on('click', function () { 628 _this2.collapse(); 629 }); 630 $(Selector.WRAPPER).append(overlay); 631 } // Static 632 ; 633 634 PushMenu._jQueryInterface = function _jQueryInterface(operation) { 635 return this.each(function () { 636 var data = $(this).data(DATA_KEY); 637 638 var _options = $.extend({}, Default, $(this).data()); 639 640 if (!data) { 641 data = new PushMenu(this, _options); 642 $(this).data(DATA_KEY, data); 643 } 644 645 if (typeof operation === 'string' && operation.match(/collapse|expand|toggle/)) { 646 data[operation](); 647 } 648 }); 649 }; 650 651 return PushMenu; 652 }(); 653 /** 654 * Data API 655 * ==================================================== 656 */ 657 658 659 $(document).on('click', Selector.TOGGLE_BUTTON, function (event) { 660 event.preventDefault(); 661 var button = event.currentTarget; 662 663 if ($(button).data('widget') !== 'pushmenu') { 664 button = $(button).closest(Selector.TOGGLE_BUTTON); 665 } 666 667 PushMenu._jQueryInterface.call($(button), 'toggle'); 668 }); 669 $(window).on('load', function () { 670 PushMenu._jQueryInterface.call($(Selector.TOGGLE_BUTTON)); 671 }); 672 /** 673 * jQuery API 674 * ==================================================== 675 */ 676 677 $.fn[NAME] = PushMenu._jQueryInterface; 678 $.fn[NAME].Constructor = PushMenu; 679 680 $.fn[NAME].noConflict = function () { 681 $.fn[NAME] = JQUERY_NO_CONFLICT; 682 return PushMenu._jQueryInterface; 683 }; 684 685 return PushMenu; 686 }(jQuery); 687 688 /** 689 * -------------------------------------------- 690 * AdminLTE Treeview.js 691 * License MIT 692 * -------------------------------------------- 693 */ 694 var Treeview = function ($) { 695 /** 696 * Constants 697 * ==================================================== 698 */ 699 var NAME = 'Treeview'; 700 var DATA_KEY = 'lte.treeview'; 701 var EVENT_KEY = "." + DATA_KEY; 702 var JQUERY_NO_CONFLICT = $.fn[NAME]; 703 var Event = { 704 SELECTED: "selected" + EVENT_KEY, 705 EXPANDED: "expanded" + EVENT_KEY, 706 COLLAPSED: "collapsed" + EVENT_KEY, 707 LOAD_DATA_API: "load" + EVENT_KEY 708 }; 709 var Selector = { 710 LI: '.nav-item', 711 LINK: '.nav-link', 712 TREEVIEW_MENU: '.nav-treeview', 713 OPEN: '.menu-open', 714 DATA_WIDGET: '[data-widget="treeview"]' 715 }; 716 var ClassName = { 717 LI: 'nav-item', 718 LINK: 'nav-link', 719 TREEVIEW_MENU: 'nav-treeview', 720 OPEN: 'menu-open', 721 SIDEBAR_COLLAPSED: 'sidebar-collapse' 722 }; 723 var Default = { 724 trigger: Selector.DATA_WIDGET + " " + Selector.LINK, 725 animationSpeed: 300, 726 accordion: true, 727 expandSidebar: false, 728 sidebarButtonSelector: '[data-widget="pushmenu"]' 729 }; 730 /** 731 * Class Definition 732 * ==================================================== 733 */ 734 735 var Treeview = 736 /*#__PURE__*/ 737 function () { 738 function Treeview(element, config) { 739 this._config = config; 740 this._element = element; 741 } // Public 742 743 744 var _proto = Treeview.prototype; 745
746 _proto.init = function init() { 747 this._setupListeners(); 748 }; 749 750 _proto.expand = function expand(treeviewMenu, parentLi) { 751 var _this = this; 752 753 var expandedEvent = $.Event(Event.EXPANDED); 754 755 if (this._config.accordion) { 756 var openMenuLi = parentLi.siblings(Selector.OPEN).first(); 757 var openTreeview = openMenuLi.find(Selector.TREEVIEW_MENU).first(); 758 this.collapse(openTreeview, openMenuLi); 759 } 760 761 treeviewMenu.stop().slideDown(this._config.animationSpeed, function () { 762 parentLi.addClass(ClassName.OPEN); 763 $(_this._element).trigger(expandedEvent); 764 }); 765 766 if (this._config.expandSidebar) { 767 this._expandSidebar(); 768 } 769 }; 770 771 _proto.collapse = function collapse(treeviewMenu, parentLi) { 772 var _this2 = this; 773 774 var collapsedEvent = $.Event(Event.COLLAPSED); 775 treeviewMenu.stop().slideUp(this._config.animationSpeed, function () { 776 parentLi.removeClass(ClassName.OPEN); 777 $(_this2._element).trigger(collapsedEvent); 778 treeviewMenu.find(Selector.OPEN + " > " + Selector.TREEVIEW_MENU).slideUp(); 779 treeviewMenu.find(Selector.OPEN).removeClass(ClassName.OPEN); 780 }); 781 }; 782 783 _proto.toggle = function toggle(event) { 784 var $relativeTarget = $(event.currentTarget); 785 var $parent = $relativeTarget.parent(); 786 var treeviewMenu = $parent.find('> ' + Selector.TREEVIEW_MENU); 787 788 if (!treeviewMenu.is(Selector.TREEVIEW_MENU)) { 789 if (!$parent.is(Selector.LI)) { 790 treeviewMenu = $parent.parent().find('> ' + Selector.TREEVIEW_MENU); 791 } 792 793 if (!treeviewMenu.is(Selector.TREEVIEW_MENU)) { 794 return; 795 } 796 } 797 798 event.preventDefault(); 799 var parentLi = $relativeTarget.parents(Selector.LI).first(); 800 var isOpen = parentLi.hasClass(ClassName.OPEN); 801 802 if (isOpen) { 803 this.collapse($(treeviewMenu), parentLi); 804 } else { 805 this.expand($(treeviewMenu), parentLi); 806 } 807 } // Private 808 ; 809 810 _proto._setupListeners = function _setupListeners() { 811 var _this3 = this; 812 813 $(document).on('click', this._config.trigger, function (event) { 814 _this3.toggle(event); 815 }); 816 }; 817 818 _proto._expandSidebar = function _expandSidebar() { 819 if ($('body').hasClass(ClassName.SIDEBAR_COLLAPSED)) { 820 $(this._config.sidebarButtonSelector).PushMenu('expand'); 821 } 822 } // Static 823 ; 824 825 Treeview._jQueryInterface = function _jQueryInterface(config) { 826 return this.each(function () { 827 var data = $(this).data(DATA_KEY); 828 829 var _options = $.extend({}, Default, $(this).data()); 830 831 if (!data) { 832 data = new Treeview($(this), _options); 833 $(this).data(DATA_KEY, data); 834 } 835 836 if (config === 'init') { 837 data[config](); 838 } 839 }); 840 }; 841 842 return Treeview; 843 }(); 844 /** 845 * Data API 846 * ==================================================== 847 */ 848 849 850 $(window).on(Event.LOAD_DATA_API, function () { 851 $(Selector.DATA_WIDGET).each(function () { 852 Treeview._jQueryInterface.call($(this), 'init'); 853 }); 854 }); 855 /** 856 * jQuery API 857 * ==================================================== 858 */ 859 860 $.fn[NAME] = Treeview._jQueryInterface; 861 $.fn[NAME].Constructor = Treeview; 862 863 $.fn[NAME].noConflict = function () { 864 $.fn[NAME] = JQUERY_NO_CONFLICT; 865 return Treeview._jQueryInterface; 866 }; 867 868 return Treeview; 869 }(jQuery); 870 871 /** 872 * -------------------------------------------- 873 * AdminLTE DirectChat.js 874 * License MIT 875 * -------------------------------------------- 876 */ 877 var DirectChat = function ($) { 878 /** 879 * Constants 880 * ==================================================== 881 */ 882 var NAME = 'DirectChat'; 883 var DATA_KEY = 'lte.directchat'; 884 var JQUERY_NO_CONFLICT = $.fn[NAME]; 885 var Event = { 886 TOGGLED: "toggled{EVENT_KEY}" 887 }; 888 var Selector = { 889 DATA_TOGGLE: '[data-widget="chat-pane-toggle"]', 890 DIRECT_CHAT: '.direct-chat' 891 }; 892 var ClassName = { 893 DIRECT_CHAT_OPEN: 'direct-chat-contacts-open' 894 }; 895 /** 896 * Class Definition 897 * ==================================================== 898 */ 899 900 var DirectChat = 901 /*#__PURE__*/ 902 function () { 903 function DirectChat(element, config) { 904 this._element = element; 905 } 906 907 var _proto = DirectChat.prototype; 908
909 _proto.toggle = function toggle() { 910 $(this._element).parents(Selector.DIRECT_CHAT).first().toggleClass(ClassName.DIRECT_CHAT_OPEN); 911 var toggledEvent = $.Event(Event.TOGGLED); 912 $(this._element).trigger(toggledEvent); 913 } // Static 914 ; 915 916 DirectChat._jQueryInterface = function _jQueryInterface(config) { 917 return this.each(function () { 918 var data = $(this).data(DATA_KEY); 919 920 if (!data) { 921 data = new DirectChat($(this)); 922 $(this).data(DATA_KEY, data); 923 } 924 925 data[config](); 926 }); 927 }; 928 929 return DirectChat; 930 }(); 931 /** 932 * 933 * Data Api implementation 934 * ==================================================== 935 */ 936 937 938 $(document).on('click', Selector.DATA_TOGGLE, function (event) { 939 if (event) event.preventDefault(); 940 941 DirectChat._jQueryInterface.call($(this), 'toggle'); 942 }); 943 /** 944 * jQuery API 945 * ==================================================== 946 */ 947 948 $.fn[NAME] = DirectChat._jQueryInterface; 949 $.fn[NAME].Constructor = DirectChat; 950 951 $.fn[NAME].noConflict = function () { 952 $.fn[NAME] = JQUERY_NO_CONFLICT; 953 return DirectChat._jQueryInterface; 954 }; 955 956 return DirectChat; 957 }(jQuery); 958 959 /** 960 * -------------------------------------------- 961 * AdminLTE TodoList.js 962 * License MIT 963 * -------------------------------------------- 964 */ 965 var TodoList = function ($) { 966 /** 967 * Constants 968 * ==================================================== 969 */ 970 var NAME = 'TodoList'; 971 var DATA_KEY = 'lte.todolist'; 972 var JQUERY_NO_CONFLICT = $.fn[NAME]; 973 var Selector = { 974 DATA_TOGGLE: '[data-widget="todo-list"]' 975 }; 976 var ClassName = { 977 TODO_LIST_DONE: 'done' 978 }; 979 var Default = { 980 onCheck: function onCheck(item) { 981 return item; 982 }, 983 onUnCheck: function onUnCheck(item) { 984 return item; 985 } 986 }; 987 /** 988 * Class Definition 989 * ==================================================== 990 */ 991 992 var TodoList = 993 /*#__PURE__*/ 994 function () { 995 function TodoList(element, config) { 996 this._config = config; 997 this._element = element; 998 999 this._init(); 1000 } // Public 1001 1002 1003 var _proto = TodoList.prototype; 1004 1005 _proto.toggle = function toggle(item) { 1006 item.parents('li').toggleClass(ClassName.TODO_LIST_DONE); 1007 1008 if (!$(item).prop('checked')) { 1009 this.unCheck($(item)); 1010 return; 1011 } 1012 1013 this.check(item); 1014 }; 1015 1016 _proto.check = function check(item) { 1017 this._config.onCheck.call(item); 1018 }; 1019 1020 _proto.unCheck = function unCheck(item) { 1021 this._config.onUnCheck.call(item); 1022 } // Private 1023 ; 1024 1025 _proto._init = function _init() { 1026 var that = this; 1027 $(Selector.DATA_TOGGLE).find('input:checkbox:checked').parents('li').toggleClass(ClassName.TODO_LIST_DONE); 1028 $(Selector.DATA_TOGGLE).on('change', 'input:checkbox', function (event) { 1029 that.toggle($(event.target)); 1030 }); 1031 } // Static 1032 ; 1033 1034 TodoList._jQueryInterface = function _jQueryInterface(config) { 1035 return this.each(function () { 1036 var data = $(this).data(DATA_KEY); 1037 1038 var _options = $.extend({}, Default, $(this).data()); 1039 1040 if (!data) { 1041 data = new TodoList($(this), _options); 1042 $(this).data(DATA_KEY, data); 1043 } 1044 1045 if (config === 'init') { 1046 data[config](); 1047 } 1048 }); 1049 }; 1050 1051 return TodoList; 1052 }(); 1053 /** 1054 * Data API 1055 * ==================================================== 1056 */ 1057 1058 1059 $(window).on('load', function () { 1060 TodoList._jQueryInterface.call($(Selector.DATA_TOGGLE)); 1061 }); 1062 /** 1063 * jQuery API 1064 * ==================================================== 1065 */ 1066 1067 $.fn[NAME] = TodoList._jQueryInterface; 1068 $.fn[NAME].Constructor = TodoList; 1069 1070 $.fn[NAME].noConflict = function () { 1071 $.fn[NAME] = JQUERY_NO_CONFLICT; 1072 return TodoList._jQueryInterface; 1073 }; 1074 1075 return TodoList; 1076 }(jQuery); 1077 1078 /** 1079 * -------------------------------------------- 1080 * AdminLTE CardWidget.js 1081 * License MIT 1082 * -------------------------------------------- 1083 */ 1084 var CardWidget = function ($) { 1085 /** 1086 * Constants 1087 * ==================================================== 1088 */ 1089 var NAME = 'CardWidget'; 1090 var DATA_KEY = 'lte.cardwidget'; 1091 var EVENT_KEY = "." + DATA_KEY; 1092 var JQUERY_NO_CONFLICT = $.fn[NAME]; 1093 var Event = { 1094 EXPANDED: "expanded" + EVENT_KEY, 1095 COLLAPSED: "collapsed" + EVENT_KEY, 1096 MAXIMIZED: "maximized" + EVENT_KEY, 1097 MINIMIZED: "minimized" + EVENT_KEY, 1098 REMOVED: "removed" + EVENT_KEY 1099 }; 1100 var ClassName = { 1101 CARD: 'card', 1102 COLLAPSED: 'collapsed-card', 1103 WAS_COLLAPSED: 'was-collapsed', 1104 MAXIMIZED: 'maximized-card' 1105 }; 1106 var Selector = { 1107 DATA_REMOVE: '[data-card-widget="remove"]', 1108 DATA_COLLAPSE: '[data-card-widget="collapse"]', 1109 DATA_MAXIMIZE: '[data-card-widget="maximize"]', 1110 CARD: "." + ClassName.CARD, 1111 CARD_HEADER: '.card-header', 1112 CARD_BODY: '.card-body', 1113 CARD_FOOTER: '.card-footer', 1114 COLLAPSED: "." + ClassName.COLLAPSED 1115 }; 1116 var Default = { 1117 animationSpeed: 'normal', 1118 collapseTrigger: Selector.DATA_COLLAPSE, 1119 removeTrigger: Selector.DATA_REMOVE, 1120 maximizeTrigger: Selector.DATA_MAXIMIZE, 1121 collapseIcon: 'fa-minus', 1122 expandIcon: 'fa-plus', 1123 maximizeIcon: 'fa-expand', 1124 minimizeIcon: 'fa-compress' 1125 }; 1126 1127 var CardWidget = 1128 /*#__PURE__*/ 1129 function () { 1130 function CardWidget(element, settings) { 1131 this._element = element; 1132 this._parent = element.parents(Selector.CARD).first(); 1133 1134 if (element.hasClass(ClassName.CARD)) { 1135 this._parent = element; 1136 } 1137 1138 this._settings = $.extend({}, Default, settings); 1139 } 1140 1141 var _proto = CardWidget.prototype; 1142 1143 _proto.collapse = function collapse() { 1144 var _this = this; 1145 1146 this._parent.children(Selector.CARD_BODY + ", " + Selector.CARD_FOOTER).slideUp(this._settings.animationSpeed, function () { 1147 _this._parent.addClass(ClassName.COLLAPSED); 1148 }); 1149 1150 this._parent.find(this._settings.collapseTrigger + ' .' + this._settings.collapseIcon).addClass(this._settings.expandIcon).removeClass(this._settings.collapseIcon); 1151 1152 var collapsed = $.Event(Event.COLLAPSED); 1153 1154 this._element.trigger(collapsed, this._parent); 1155 }; 1156
1157 _proto.expand = function expand() { 1158 var _this2 = this; 1159 1160 this._parent.children(Selector.CARD_BODY + ", " + Selector.CARD_FOOTER).slideDown(this._settings.animationSpeed, function () { 1161 _this2._parent.removeClass(ClassName.COLLAPSED); 1162 }); 1163 1164 this._parent.find(this._settings.collapseTrigger + ' .' + this._settings.expandIcon).addClass(this._settings.collapseIcon).removeClass(this._settings.expandIcon); 1165 1166 var expanded = $.Event(Event.EXPANDED); 1167 1168 this._element.trigger(expanded, this._parent); 1169 }; 1170 1171 _proto.remove = function remove() { 1172 this._parent.slideUp(); 1173 1174 var removed = $.Event(Event.REMOVED); 1175 1176 this._element.trigger(removed, this._parent); 1177 }; 1178 1179 _proto.toggle = function toggle() { 1180 if (this._parent.hasClass(ClassName.COLLAPSED)) { 1181 this.expand(); 1182 return; 1183 } 1184 1185 this.collapse(); 1186 }; 1187 1188 _proto.maximize = function maximize() { 1189 this._parent.find(this._settings.maximizeTrigger + ' .' + this._settings.maximizeIcon).addClass(this._settings.minimizeIcon).removeClass(this._settings.maximizeIcon); 1190 1191 this._parent.css({ 1192 'height': this._parent.height(), 1193 'width': this._parent.width(), 1194 'transition': 'all .15s' 1195 }).delay(150).queue(function () { 1196 $(this).addClass(ClassName.MAXIMIZED); 1197 $('html').addClass(ClassName.MAXIMIZED); 1198 1199 if ($(this).hasClass(ClassName.COLLAPSED)) { 1200 $(this).addClass(ClassName.WAS_COLLAPSED); 1201 } 1202 1203 $(this).dequeue(); 1204 }); 1205 1206 var maximized = $.Event(Event.MAXIMIZED); 1207 1208 this._element.trigger(maximized, this._parent); 1209 }; 1210 1211 _proto.minimize = function minimize() { 1212 this._parent.find(this._settings.maximizeTrigger + ' .' + this._settings.minimizeIcon).addClass(this._settings.maximizeIcon).removeClass(this._settings.minimizeIcon); 1213 1214 this._parent.css('cssText', 'height:' + this._parent[0].style.height + ' !important;' + 'width:' + this._parent[0].style.width + ' !important; transition: all .15s;').delay(10).queue(function () { 1215 $(this).removeClass(ClassName.MAXIMIZED); 1216 $('html').removeClass(ClassName.MAXIMIZED); 1217 $(this).css({ 1218 'height': 'inherit', 1219 'width': 'inherit' 1220 }); 1221 1222 if ($(this).hasClass(ClassName.WAS_COLLAPSED)) { 1223 $(this).removeClass(ClassName.WAS_COLLAPSED); 1224 } 1225 1226 $(this).dequeue(); 1227 }); 1228 1229 var MINIMIZED = $.Event(Event.MINIMIZED); 1230 1231 this._element.trigger(MINIMIZED, this._parent); 1232 }; 1233 1234 _proto.toggleMaximize = function toggleMaximize() { 1235 if (this._parent.hasClass(ClassName.MAXIMIZED)) { 1236 this.minimize(); 1237 return; 1238 } 1239 1240 this.maximize(); 1241 } // Private 1242 ; 1243 1244 _proto._init = function _init(card) { 1245 var _this3 = this; 1246 1247 this._parent = card; 1248 $(this).find(this._settings.collapseTrigger).click(function () {
1249 _this3.toggle(); 1250 }); 1251 $(this).find(this._settings.maximizeTrigger).click(function () { 1252 _this3.toggleMaximize(); 1253 }); 1254 $(this).find(this._settings.removeTrigger).click(function () { 1255 _this3.remove(); 1256 }); 1257 } // Static 1258 ; 1259 1260 CardWidget._jQueryInterface = function _jQueryInterface(config) { 1261 var data = $(this).data(DATA_KEY); 1262 1263 var _options = $.extend({}, Default, $(this).data()); 1264 1265 if (!data) { 1266 data = new CardWidget($(this), _options); 1267 $(this).data(DATA_KEY, typeof config === 'string' ? data : config); 1268 } 1269 1270 if (typeof config === 'string' && config.match(/collapse|expand|remove|toggle|maximize|minimize|toggleMaximize/)) { 1271 data[config](); 1272 } else if (typeof config === 'object') { 1273 data._init($(this)); 1274 } 1275 }; 1276 1277 return CardWidget; 1278 }(); 1279 /** 1280 * Data API 1281 * ==================================================== 1282 */ 1283 1284 1285 $(document).on('click', Selector.DATA_COLLAPSE, function (event) { 1286 if (event) { 1287 event.preventDefault(); 1288 } 1289 1290 CardWidget._jQueryInterface.call($(this), 'toggle'); 1291 }); 1292 $(document).on('click', Selector.DATA_REMOVE, function (event) { 1293 if (event) { 1294 event.preventDefault(); 1295 } 1296 1297 CardWidget._jQueryInterface.call($(this), 'remove'); 1298 }); 1299 $(document).on('click', Selector.DATA_MAXIMIZE, function (event) { 1300 if (event) { 1301 event.preventDefault(); 1302 } 1303 1304 CardWidget._jQueryInterface.call($(this), 'toggleMaximize'); 1305 }); 1306 /** 1307 * jQuery API 1308 * ==================================================== 1309 */ 1310 1311 $.fn[NAME] = CardWidget._jQueryInterface; 1312 $.fn[NAME].Constructor = CardWidget; 1313 1314 $.fn[NAME].noConflict = function () { 1315 $.fn[NAME] = JQUERY_NO_CONFLICT; 1316 return CardWidget._jQueryInterface; 1317 }; 1318 1319 return CardWidget; 1320 }(jQuery); 1321 1322 /** 1323 * -------------------------------------------- 1324 * AdminLTE CardRefresh.js 1325 * License MIT 1326 * -------------------------------------------- 1327 */ 1328 var CardRefresh = function ($) { 1329 /** 1330 * Constants 1331 * ==================================================== 1332 */ 1333 var NAME = 'CardRefresh'; 1334 var DATA_KEY = 'lte.cardrefresh'; 1335 var EVENT_KEY = "." + DATA_KEY; 1336 var JQUERY_NO_CONFLICT = $.fn[NAME]; 1337 var Event = { 1338 LOADED: "loaded" + EVENT_KEY, 1339 OVERLAY_ADDED: "overlay.added" + EVENT_KEY, 1340 OVERLAY_REMOVED: "overlay.removed" + EVENT_KEY 1341 }; 1342 var ClassName = { 1343 CARD: 'card' 1344 }; 1345 var Selector = { 1346 CARD: "." + ClassName.CARD, 1347 DATA_REFRESH: '[data-card-widget="card-refresh"]' 1348 }; 1349 var Default = { 1350 source: '', 1351 sourceSelector: '', 1352 params: {}, 1353 trigger: Selector.DATA_REFRESH, 1354 content: '.card-body', 1355 loadInContent: true, 1356 loadOnInit: true, 1357 responseType: '', 1358 overlayTemplate: '<div class="overlay"><i class="fas fa-2x fa-sync-alt fa-spin"></i></div>', 1359 onLoadStart: function onLoadStart() {}, 1360 onLoadDone: function onLoadDone(response) { 1361 return response; 1362 } 1363 }; 1364 1365 var CardRefresh = 1366 /*#__PURE__*/ 1367 function () { 1368 function CardRefresh(element, settings) { 1369 this._element = element; 1370 this._parent = element.parents(Selector.CARD).first(); 1371 this._settings = $.extend({}, Default, settings); 1372 this._overlay = $(this._settings.overlayTemplate); 1373 1374 if (element.hasClass(ClassName.CARD)) { 1375 this._parent = element; 1376 } 1377 1378 if (this._settings.source === '') { 1379 throw new Error('Source url was not defined. Please specify a url in your CardRefresh source option.'); 1380 } 1381 1382 this._init(); 1383 1384 if (this._settings.loadOnInit) { 1385 this.load(); 1386 } 1387 } 1388 1389 var _proto = CardRefresh.prototype; 1390 1391 _proto.load = function load() { 1392 this._addOverlay(); 1393 1394 this._settings.onLoadStart.call($(this)); 1395 1396 $.get(this._settings.source, this._settings.params, function (response) { 1397 if (this._settings.loadInContent) { 1398 if (this._settings.sourceSelector != '') { 1399 response = $(response).find(this._settings.sourceSelector).html(); 1400 } 1401 1402 this._parent.find(this._settings.content).html(response); 1403 } 1404
1405 this._settings.onLoadDone.call($(this), response); 1406 1407 this._removeOverlay(); 1408 }.bind(this), this._settings.responseType !== '' && this._settings.responseType); 1409 var loadedEvent = $.Event(Event.LOADED); 1410 $(this._element).trigger(loadedEvent); 1411 }; 1412 1413 _proto._addOverlay = function _addOverlay() { 1414 this._parent.append(this._overlay); 1415 1416 var overlayAddedEvent = $.Event(Event.OVERLAY_ADDED); 1417 $(this._element).trigger(overlayAddedEvent); 1418 }; 1419 1420 _proto._removeOverlay = function _removeOverlay() { 1421 this._parent.find(this._overlay).remove(); 1422 1423 var overlayRemovedEvent = $.Event(Event.OVERLAY_REMOVED); 1424 $(this._element).trigger(overlayRemovedEvent); 1425 }; 1426 1427 // Private 1428 _proto._init = function _init(card) { 1429 var _this = this; 1430 1431 $(this).find(this._settings.trigger).on('click', function () { 1432 _this.load(); 1433 }); 1434 } // Static 1435 ; 1436 1437 CardRefresh._jQueryInterface = function _jQueryInterface(config) { 1438 var data = $(this).data(DATA_KEY); 1439 1440 var _options = $.extend({}, Default, $(this).data()); 1441 1442 if (!data) { 1443 data = new CardRefresh($(this), _options); 1444 $(this).data(DATA_KEY, typeof config === 'string' ? data : config); 1445 } 1446 1447 if (typeof config === 'string' && config.match(/load/)) { 1448 data[config](); 1449 } else if (typeof config === 'object') { 1450 data._init($(this)); 1451 } 1452 }; 1453 1454 return CardRefresh; 1455 }(); 1456 /** 1457 * Data API 1458 * ==================================================== 1459 */ 1460 1461 1462 $(document).on('click', Selector.DATA_REFRESH, function (event) { 1463 if (event) { 1464 event.preventDefault(); 1465 } 1466 1467 CardRefresh._jQueryInterface.call($(this), 'load'); 1468 }); 1469 /** 1470 * jQuery API 1471 * ==================================================== 1472 */ 1473 1474 $.fn[NAME] = CardRefresh._jQueryInterface; 1475 $.fn[NAME].Constructor = CardRefresh; 1476 1477 $.fn[NAME].noConflict = function () { 1478 $.fn[NAME] = JQUERY_NO_CONFLICT; 1479 return CardRefresh._jQueryInterface; 1480 }; 1481 1482 return CardRefresh; 1483 }(jQuery); 1484 1485 /** 1486 * -------------------------------------------- 1487 * AdminLTE Dropdown.js 1488 * License MIT 1489 * -------------------------------------------- 1490 */ 1491 var Dropdown = function ($) { 1492 /** 1493 * Constants 1494 * ==================================================== 1495 */ 1496 var NAME = 'Dropdown'; 1497 var DATA_KEY = 'lte.dropdown'; 1498 var JQUERY_NO_CONFLICT = $.fn[NAME]; 1499 var Selector = { 1500 DROPDOWN_MENU: 'ul.dropdown-menu', 1501 DROPDOWN_TOGGLE: '[data-toggle="dropdown"]' 1502 }; 1503 var Default = {}; 1504 /** 1505 * Class Definition 1506 * ==================================================== 1507 */ 1508 1509 var Dropdown = 1510 /*#__PURE__*/ 1511 function () { 1512 function Dropdown(element, config) { 1513 this._config = config; 1514 this._element = element; 1515 } // Public 1516 1517 1518 var _proto = Dropdown.prototype; 1519 1520 _proto.toggleSubmenu = function toggleSubmenu() { 1521 this._element.siblings().show().toggleClass("show"); 1522 1523 if (!this._element.next().hasClass('show')) { 1524 this._element.parents('.dropdown-menu').first().find('.show').removeClass("show").hide(); 1525 } 1526 1527 this._element.parents('li.nav-item.dropdown.show').on('hidden.bs.dropdown', function (e) { 1528 $('.dropdown-submenu .show').removeClass("show").hide(); 1529 }); 1530 } // Static 1531 ; 1532 1533 Dropdown._jQueryInterface = function _jQueryInterface(config) { 1534 return this.each(function () { 1535 var data = $(this).data(DATA_KEY); 1536 1537 var _config = $.extend({}, Default, $(this).data()); 1538 1539 if (!data) { 1540 data = new Dropdown($(this), _config); 1541 $(this).data(DATA_KEY, data); 1542 } 1543 1544 if (config === 'toggleSubmenu') { 1545 data[config](); 1546 } 1547 }); 1548 }; 1549 1550 return Dropdown; 1551 }(); 1552 /** 1553 * Data API 1554 * ==================================================== 1555 */ 1556 1557 1558 $(Selector.DROPDOWN_MENU + ' ' + Selector.DROPDOWN_TOGGLE).on("click", function (event) { 1559 event.preventDefault(); 1560 event.stopPropagation(); 1561 1562 Dropdown._jQueryInterface.call($(this), 'toggleSubmenu'); 1563 }); // $(Selector.SIDEBAR + ' a').on('focusin', () => { 1564 // $(Selector.MAIN_SIDEBAR).addClass(ClassName.SIDEBAR_FOCUSED); 1565 // }) 1566 // $(Selector.SIDEBAR + ' a').on('focusout', () => { 1567 // $(Selector.MAIN_SIDEBAR).removeClass(ClassName.SIDEBAR_FOCUSED); 1568 // }) 1569 1570 /** 1571 * jQuery API 1572 * ==================================================== 1573 */ 1574 1575 $.fn[NAME] = Dropdown._jQueryInterface; 1576 $.fn[NAME].Constructor = Dropdown; 1577 1578 $.fn[NAME].noConflict = function () { 1579 $.fn[NAME] = JQUERY_NO_CONFLICT; 1580 return Dropdown._jQueryInterface; 1581 }; 1582 1583 return Dropdown; 1584 }(jQuery); 1585 1586 /** 1587 * -------------------------------------------- 1588 * AdminLTE Toasts.js 1589 * License MIT 1590 * -------------------------------------------- 1591 */ 1592 var Toasts = function ($) { 1593 /** 1594 * Constants 1595 * ==================================================== 1596 */ 1597 var NAME = 'Toasts'; 1598 var DATA_KEY = 'lte.toasts'; 1599 var EVENT_KEY = "." + DATA_KEY; 1600 var JQUERY_NO_CONFLICT = $.fn[NAME]; 1601 var Event = { 1602 INIT: "init" + EVENT_KEY,
1603 CREATED: "created" + EVENT_KEY, 1604 REMOVED: "removed" + EVENT_KEY 1605 }; 1606 var Selector = { 1607 BODY: 'toast-body', 1608 CONTAINER_TOP_RIGHT: '#toastsContainerTopRight', 1609 CONTAINER_TOP_LEFT: '#toastsContainerTopLeft', 1610 CONTAINER_BOTTOM_RIGHT: '#toastsContainerBottomRight', 1611 CONTAINER_BOTTOM_LEFT: '#toastsContainerBottomLeft' 1612 }; 1613 var ClassName = { 1614 TOP_RIGHT: 'toasts-top-right', 1615 TOP_LEFT: 'toasts-top-left', 1616 BOTTOM_RIGHT: 'toasts-bottom-right', 1617 BOTTOM_LEFT: 'toasts-bottom-left', 1618 FADE: 'fade' 1619 }; 1620 var Position = { 1621 TOP_RIGHT: 'topRight', 1622 TOP_LEFT: 'topLeft', 1623 BOTTOM_RIGHT: 'bottomRight', 1624 BOTTOM_LEFT: 'bottomLeft' 1625 }; 1626 var Default = { 1627 position: Position.TOP_RIGHT, 1628 fixed: true, 1629 autohide: false, 1630 autoremove: true, 1631 delay: 1000, 1632 fade: true, 1633 icon: null, 1634 image: null, 1635 imageAlt: null, 1636 imageHeight: '25px', 1637 title: null, 1638 subtitle: null, 1639 close: true, 1640 body: null, 1641 class: null 1642 }; 1643 /** 1644 * Class Definition 1645 * ==================================================== 1646 */ 1647 1648 var Toasts = 1649 /*#__PURE__*/ 1650 function () { 1651 function Toasts(element, config) { 1652 this._config = config; 1653 1654 this._prepareContainer(); 1655 1656 var initEvent = $.Event(Event.INIT); 1657 $('body').trigger(initEvent); 1658 } // Public 1659 1660 1661 var _proto = Toasts.prototype; 1662 1663 _proto.create = function create() { 1664 var toast = $('<div class="toast" role="alert" aria-live="assertive" aria-atomic="true"/>'); 1665 toast.data('autohide', this._config.autohide); 1666 toast.data('animation', this._config.fade); 1667 1668 if (this._config.class) { 1669 toast.addClass(this._config.class); 1670 } 1671 1672 if (this._config.delay && this._config.delay != 500) { 1673 toast.data('delay', this._config.delay); 1674 } 1675 1676 var toast_header = $('<div class="toast-header">'); 1677 1678 if (this._config.image != null) { 1679 var toast_image = $('<img />').addClass('rounded mr-2').attr('src', this._config.image).attr('alt', this._config.imageAlt); 1680 1681 if (this._config.imageHeight != null) { 1682 toast_image.height(this._config.imageHeight).width('auto'); 1683 } 1684 1685 toast_header.append(toast_image); 1686 } 1687 1688 if (this._config.icon != null) { 1689 toast_header.append($('<i />').addClass('mr-2').addClass(this._config.icon)); 1690 } 1691 1692 if (this._config.title != null) { 1693 toast_header.append($('<strong />').addClass('mr-auto').html(this._config.title)); 1694 } 1695 1696 if (this._config.subtitle != null) { 1697 toast_header.append($('<small />').html(this._config.subtitle)); 1698 } 1699 1700 if (this._config.close == true) { 1701 var toast_close = $('<button data-dismiss="toast" />').attr('type', 'button').addClass('ml-2 mb-1 close').attr('aria-label', 'Close').append('<span aria-hidden="true">×</span>'); 1702 1703 if (this._config.title == null) { 1704 toast_close.toggleClass('ml-2 ml-auto'); 1705 } 1706 1707 toast_header.append(toast_close); 1708 } 1709 1710 toast.append(toast_header); 1711 1712 if (this._config.body != null) { 1713 toast.append($('<div class="toast-body" />').html(this._config.body)); 1714 } 1715 1716 $(this._getContainerId()).prepend(toast); 1717 var createdEvent = $.Event(Event.CREATED); 1718 $('body').trigger(createdEvent); 1719 toast.toast('show'); 1720 1721 if (this._config.autoremove) { 1722 toast.on('hidden.bs.toast', function () { 1723 $(this).delay(200).remove(); 1724 var removedEvent = $.Event(Event.REMOVED); 1725 $('body').trigger(removedEvent); 1726 }); 1727 } 1728 } // Static 1729 ; 1730 1731 _proto._getContainerId = function _getContainerId() { 1732 if (this._config.position == Position.TOP_RIGHT) { 1733 return Selector.CONTAINER_TOP_RIGHT; 1734 } else if (this._config.position == Position.TOP_LEFT) { 1735 return Selector.CONTAINER_TOP_LEFT; 1736 } else if (this._config.position == Position.BOTTOM_RIGHT) { 1737 return Selector.CONTAINER_BOTTOM_RIGHT; 1738 } else if (this._config.position == Position.BOTTOM_LEFT) { 1739 return Selector.CONTAINER_BOTTOM_LEFT; 1740 } 1741 }; 1742 1743 _proto._prepareContainer = function _prepareContainer() { 1744 if ($(this._getContainerId()).length === 0) {
1745 var container = $('<div />').attr('id', this._getContainerId().replace('#', '')); 1746 1747 if (this._config.position == Position.TOP_RIGHT) { 1748 container.addClass(ClassName.TOP_RIGHT); 1749 } else if (this._config.position == Position.TOP_LEFT) { 1750 container.addClass(ClassName.TOP_LEFT); 1751 } else if (this._config.position == Position.BOTTOM_RIGHT) { 1752 container.addClass(ClassName.BOTTOM_RIGHT); 1753 } else if (this._config.position == Position.BOTTOM_LEFT) { 1754 container.addClass(ClassName.BOTTOM_LEFT); 1755 } 1756 1757 $('body').append(container); 1758 } 1759 1760 if (this._config.fixed) { 1761 $(this._getContainerId()).addClass('fixed'); 1762 } else { 1763 $(this._getContainerId()).removeClass('fixed'); 1764 } 1765 } // Static 1766 ; 1767 1768 Toasts._jQueryInterface = function _jQueryInterface(option, config) { 1769 return this.each(function () { 1770 var _options = $.extend({}, Default, config); 1771 1772 var toast = new Toasts($(this), _options); 1773 1774 if (option === 'create') { 1775 toast[option](); 1776 } 1777 }); 1778 }; 1779 1780 return Toasts; 1781 }(); 1782 /** 1783 * jQuery API 1784 * ==================================================== 1785 */ 1786 1787 1788 $.fn[NAME] = Toasts._jQueryInterface; 1789 $.fn[NAME].Constructor = Toasts; 1790 1791 $.fn[NAME].noConflict = function () { 1792 $.fn[NAME] = JQUERY_NO_CONFLICT; 1793 return Toasts._jQueryInterface; 1794 }; 1795 1796 return Toasts; 1797 }(jQuery); 1798 1799 exports.CardRefresh = CardRefresh; 1800 exports.CardWidget = CardWidget; 1801 exports.ControlSidebar = ControlSidebar; 1802 exports.DirectChat = DirectChat; 1803 exports.Dropdown = Dropdown; 1804 exports.Layout = Layout; 1805 exports.PushMenu = PushMenu; 1806 exports.Toasts = Toasts; 1807 exports.TodoList = TodoList; 1808 exports.Treeview = Treeview; 1809 1810 Object.defineProperty(exports, '__esModule', { value: true }); 1811 1812}))); 1813//# sourceMappingURL=adminlte.js.map
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.