adminlte.js 30 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118
  1. /*!
  2. * AdminLTE v3.0.0-beta.2 (https://adminlte.io)
  3. * Copyright 2014-2019 Colorlib <http://colorlib.com>
  4. * Licensed under MIT (https://github.com/almasaeed2010/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. * AdminLTE ControlSidebar.js
  14. * License MIT
  15. * --------------------------------------------
  16. */
  17. var ControlSidebar = function ($) {
  18. /**
  19. * Constants
  20. * ====================================================
  21. */
  22. var NAME = 'ControlSidebar';
  23. var DATA_KEY = 'lte.control.sidebar';
  24. var JQUERY_NO_CONFLICT = $.fn[NAME];
  25. var Selector = {
  26. CONTROL_SIDEBAR: '.control-sidebar',
  27. DATA_TOGGLE: '[data-widget="control-sidebar"]',
  28. MAIN_HEADER: '.main-header'
  29. };
  30. var ClassName = {
  31. CONTROL_SIDEBAR_ANIMATE: 'control-sidebar-animate',
  32. CONTROL_SIDEBAR_OPEN: 'control-sidebar-open',
  33. CONTROL_SIDEBAR_SLIDE: 'control-sidebar-slide-open'
  34. };
  35. var Default = {
  36. slide: true
  37. /**
  38. * Class Definition
  39. * ====================================================
  40. */
  41. };
  42. var ControlSidebar =
  43. /*#__PURE__*/
  44. function () {
  45. function ControlSidebar(element, config) {
  46. this._element = element;
  47. this._config = this._getConfig(config);
  48. } // Public
  49. var _proto = ControlSidebar.prototype;
  50. _proto.show = function show() {
  51. // Show the control sidebar
  52. if (this._config.slide) {
  53. $('html').addClass(ClassName.CONTROL_SIDEBAR_ANIMATE);
  54. $('body').removeClass(ClassName.CONTROL_SIDEBAR_SLIDE).delay(300).queue(function () {
  55. $(Selector.CONTROL_SIDEBAR).hide();
  56. $('html').removeClass(ClassName.CONTROL_SIDEBAR_ANIMATE);
  57. $(this).dequeue();
  58. });
  59. } else {
  60. $('body').removeClass(ClassName.CONTROL_SIDEBAR_OPEN);
  61. }
  62. };
  63. _proto.collapse = function collapse() {
  64. // Collapse the control sidebar
  65. if (this._config.slide) {
  66. $('html').addClass(ClassName.CONTROL_SIDEBAR_ANIMATE);
  67. $(Selector.CONTROL_SIDEBAR).show().delay(100).queue(function () {
  68. $('body').addClass(ClassName.CONTROL_SIDEBAR_SLIDE).delay(300).queue(function () {
  69. $('html').removeClass(ClassName.CONTROL_SIDEBAR_ANIMATE);
  70. $(this).dequeue();
  71. });
  72. $(this).dequeue();
  73. });
  74. } else {
  75. $('body').addClass(ClassName.CONTROL_SIDEBAR_OPEN);
  76. }
  77. };
  78. _proto.toggle = function toggle() {
  79. this._setMargin();
  80. var shouldOpen = $('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || $('body').hasClass(ClassName.CONTROL_SIDEBAR_SLIDE);
  81. if (shouldOpen) {
  82. // Open the control sidebar
  83. this.show();
  84. } else {
  85. // Close the control sidebar
  86. this.collapse();
  87. }
  88. } // Private
  89. ;
  90. _proto._getConfig = function _getConfig(config) {
  91. return $.extend({}, Default, config);
  92. };
  93. _proto._setMargin = function _setMargin() {
  94. $(Selector.CONTROL_SIDEBAR).css({
  95. top: $(Selector.MAIN_HEADER).innerHeight()
  96. });
  97. } // Static
  98. ;
  99. ControlSidebar._jQueryInterface = function _jQueryInterface(operation) {
  100. return this.each(function () {
  101. var data = $(this).data(DATA_KEY);
  102. if (!data) {
  103. data = new ControlSidebar(this, $(this).data());
  104. $(this).data(DATA_KEY, data);
  105. }
  106. if (data[operation] === 'undefined') {
  107. throw new Error(operation + " is not a function");
  108. }
  109. data[operation]();
  110. });
  111. };
  112. return ControlSidebar;
  113. }();
  114. /**
  115. *
  116. * Data Api implementation
  117. * ====================================================
  118. */
  119. $(document).on('click', Selector.DATA_TOGGLE, function (event) {
  120. event.preventDefault();
  121. ControlSidebar._jQueryInterface.call($(this), 'toggle');
  122. });
  123. /**
  124. * jQuery API
  125. * ====================================================
  126. */
  127. $.fn[NAME] = ControlSidebar._jQueryInterface;
  128. $.fn[NAME].Constructor = ControlSidebar;
  129. $.fn[NAME].noConflict = function () {
  130. $.fn[NAME] = JQUERY_NO_CONFLICT;
  131. return ControlSidebar._jQueryInterface;
  132. };
  133. return ControlSidebar;
  134. }(jQuery);
  135. /**
  136. * --------------------------------------------
  137. * AdminLTE Layout.js
  138. * License MIT
  139. * --------------------------------------------
  140. */
  141. var Layout = function ($) {
  142. /**
  143. * Constants
  144. * ====================================================
  145. */
  146. var NAME = 'Layout';
  147. var DATA_KEY = 'lte.layout';
  148. var JQUERY_NO_CONFLICT = $.fn[NAME];
  149. var Selector = {
  150. HEADER: '.main-header',
  151. MAIN_SIDEBAR: '.main-sidebar',
  152. SIDEBAR: '.main-sidebar .sidebar',
  153. CONTENT: '.content-wrapper',
  154. BRAND: '.brand-link',
  155. CONTENT_HEADER: '.content-header',
  156. WRAPPER: '.wrapper',
  157. CONTROL_SIDEBAR: '.control-sidebar',
  158. LAYOUT_FIXED: '.layout-fixed',
  159. FOOTER: '.main-footer'
  160. };
  161. var ClassName = {
  162. HOLD: 'hold-transition',
  163. SIDEBAR: 'main-sidebar',
  164. CONTENT_FIXED: 'content-fixed',
  165. SIDEBAR_FOCUSED: 'sidebar-focused',
  166. LAYOUT_FIXED: 'layout-fixed',
  167. NAVBAR_FIXED: 'layout-navbar-fixed',
  168. FOOTER_FIXED: 'layout-footer-fixed'
  169. };
  170. var Default = {
  171. scrollbarTheme: 'os-theme-light',
  172. scrollbarAutoHide: 'l'
  173. /**
  174. * Class Definition
  175. * ====================================================
  176. */
  177. };
  178. var Layout =
  179. /*#__PURE__*/
  180. function () {
  181. function Layout(element, config) {
  182. this._config = config;
  183. this._element = element;
  184. this._init();
  185. } // Public
  186. var _proto = Layout.prototype;
  187. _proto.fixLayoutHeight = function fixLayoutHeight() {
  188. var heights = {
  189. window: $(window).height(),
  190. header: $(Selector.HEADER).outerHeight(),
  191. footer: $(Selector.FOOTER).outerHeight(),
  192. sidebar: $(Selector.SIDEBAR).height()
  193. };
  194. var max = this._max(heights);
  195. if ($('body').hasClass(ClassName.LAYOUT_FIXED)) {
  196. $(Selector.CONTENT).css('min-height', max - heights.header - heights.footer); // $(Selector.SIDEBAR).css('min-height', max - heights.header)
  197. $(Selector.CONTROL_SIDEBAR + ' .control-sidebar-content').css('height', max - heights.header);
  198. if (typeof $.fn.overlayScrollbars !== 'undefined') {
  199. $(Selector.SIDEBAR).overlayScrollbars({
  200. className: this._config.scrollbarTheme,
  201. sizeAutoCapable: true,
  202. scrollbars: {
  203. autoHide: this._config.scrollbarAutoHide,
  204. clickScrolling: true
  205. }
  206. });
  207. $(Selector.CONTROL_SIDEBAR + ' .control-sidebar-content').overlayScrollbars({
  208. className: this._config.scrollbarTheme,
  209. sizeAutoCapable: true,
  210. scrollbars: {
  211. autoHide: this._config.scrollbarAutoHide,
  212. clickScrolling: true
  213. }
  214. });
  215. }
  216. } else {
  217. if (heights.window > heights.sidebar) {
  218. $(Selector.CONTENT).css('min-height', heights.window - heights.header - heights.footer);
  219. } else {
  220. $(Selector.CONTENT).css('min-height', heights.sidebar - heights.header);
  221. }
  222. }
  223. } // Private
  224. ;
  225. _proto._init = function _init() {
  226. var _this = this;
  227. // Enable transitions
  228. $('body').removeClass(ClassName.HOLD); // Activate layout height watcher
  229. this.fixLayoutHeight();
  230. $(Selector.SIDEBAR).on('collapsed.lte.treeview expanded.lte.treeview collapsed.lte.pushmenu expanded.lte.pushmenu', function () {
  231. _this.fixLayoutHeight();
  232. });
  233. $(window).resize(function () {
  234. _this.fixLayoutHeight();
  235. });
  236. $('body, html').css('height', 'auto');
  237. };
  238. _proto._max = function _max(numbers) {
  239. // Calculate the maximum number in a list
  240. var max = 0;
  241. Object.keys(numbers).forEach(function (key) {
  242. if (numbers[key] > max) {
  243. max = numbers[key];
  244. }
  245. });
  246. return max;
  247. } // Static
  248. ;
  249. Layout._jQueryInterface = function _jQueryInterface(config) {
  250. return this.each(function () {
  251. var data = $(this).data(DATA_KEY);
  252. var _config = $.extend({}, Default, $(this).data());
  253. if (!data) {
  254. data = new Layout($(this), _config);
  255. $(this).data(DATA_KEY, data);
  256. }
  257. if (config === 'init') {
  258. data[config]();
  259. }
  260. });
  261. };
  262. return Layout;
  263. }();
  264. /**
  265. * Data API
  266. * ====================================================
  267. */
  268. $(window).on('load', function () {
  269. Layout._jQueryInterface.call($('body'));
  270. });
  271. $(Selector.SIDEBAR + ' a').on('focusin', function () {
  272. $(Selector.MAIN_SIDEBAR).addClass(ClassName.SIDEBAR_FOCUSED);
  273. });
  274. $(Selector.SIDEBAR + ' a').on('focusout', function () {
  275. $(Selector.MAIN_SIDEBAR).removeClass(ClassName.SIDEBAR_FOCUSED);
  276. });
  277. /**
  278. * jQuery API
  279. * ====================================================
  280. */
  281. $.fn[NAME] = Layout._jQueryInterface;
  282. $.fn[NAME].Constructor = Layout;
  283. $.fn[NAME].noConflict = function () {
  284. $.fn[NAME] = JQUERY_NO_CONFLICT;
  285. return Layout._jQueryInterface;
  286. };
  287. return Layout;
  288. }(jQuery);
  289. /**
  290. * --------------------------------------------
  291. * AdminLTE PushMenu.js
  292. * License MIT
  293. * --------------------------------------------
  294. */
  295. var PushMenu = function ($) {
  296. /**
  297. * Constants
  298. * ====================================================
  299. */
  300. var NAME = 'PushMenu';
  301. var DATA_KEY = 'lte.pushmenu';
  302. var EVENT_KEY = "." + DATA_KEY;
  303. var JQUERY_NO_CONFLICT = $.fn[NAME];
  304. var Event = {
  305. COLLAPSED: "collapsed" + EVENT_KEY,
  306. SHOWN: "shown" + EVENT_KEY
  307. };
  308. var Default = {
  309. autoCollapseSize: false,
  310. screenCollapseSize: 768
  311. };
  312. var Selector = {
  313. TOGGLE_BUTTON: '[data-widget="pushmenu"]',
  314. SIDEBAR_MINI: '.sidebar-mini',
  315. SIDEBAR_COLLAPSED: '.sidebar-collapse',
  316. BODY: 'body',
  317. OVERLAY: '#sidebar-overlay',
  318. WRAPPER: '.wrapper'
  319. };
  320. var ClassName = {
  321. SIDEBAR_OPEN: 'sidebar-open',
  322. COLLAPSED: 'sidebar-collapse',
  323. OPEN: 'sidebar-open',
  324. SIDEBAR_MINI: 'sidebar-mini'
  325. /**
  326. * Class Definition
  327. * ====================================================
  328. */
  329. };
  330. var PushMenu =
  331. /*#__PURE__*/
  332. function () {
  333. function PushMenu(element, options) {
  334. this._element = element;
  335. this._options = $.extend({}, Default, options);
  336. this._init();
  337. if (!$(Selector.OVERLAY).length) {
  338. this._addOverlay();
  339. }
  340. } // Public
  341. var _proto = PushMenu.prototype;
  342. _proto.show = function show() {
  343. $(Selector.BODY).addClass(ClassName.OPEN).removeClass(ClassName.COLLAPSED);
  344. var shownEvent = $.Event(Event.SHOWN);
  345. $(this._element).trigger(shownEvent);
  346. };
  347. _proto.collapse = function collapse() {
  348. $(Selector.BODY).removeClass(ClassName.OPEN).addClass(ClassName.COLLAPSED);
  349. var collapsedEvent = $.Event(Event.COLLAPSED);
  350. $(this._element).trigger(collapsedEvent);
  351. };
  352. _proto.isShown = function isShown() {
  353. if ($(window).width() >= this._options.screenCollapseSize) {
  354. return !$(Selector.BODY).hasClass(ClassName.COLLAPSED);
  355. } else {
  356. return $(Selector.BODY).hasClass(ClassName.OPEN);
  357. }
  358. };
  359. _proto.toggle = function toggle() {
  360. if (this.isShown()) {
  361. this.collapse();
  362. } else {
  363. this.show();
  364. }
  365. };
  366. _proto.autoCollapse = function autoCollapse() {
  367. if (this._options.autoCollapseSize) {
  368. if ($(window).width() <= this._options.autoCollapseSize) {
  369. if (this.isShown()) {
  370. this.toggle();
  371. }
  372. } else {
  373. if (!this.isShown()) {
  374. this.toggle();
  375. }
  376. }
  377. }
  378. } // Private
  379. ;
  380. _proto._init = function _init() {
  381. var _this = this;
  382. this.autoCollapse();
  383. $(window).resize(function () {
  384. _this.autoCollapse();
  385. });
  386. };
  387. _proto._addOverlay = function _addOverlay() {
  388. var _this2 = this;
  389. var overlay = $('<div />', {
  390. id: 'sidebar-overlay'
  391. });
  392. overlay.on('click', function () {
  393. _this2.collapse();
  394. });
  395. $(Selector.WRAPPER).append(overlay);
  396. } // Static
  397. ;
  398. PushMenu._jQueryInterface = function _jQueryInterface(operation) {
  399. return this.each(function () {
  400. var data = $(this).data(DATA_KEY);
  401. var _options = $.extend({}, Default, $(this).data());
  402. if (!data) {
  403. data = new PushMenu(this, _options);
  404. $(this).data(DATA_KEY, data);
  405. }
  406. if (operation === 'toggle') {
  407. data[operation]();
  408. }
  409. });
  410. };
  411. return PushMenu;
  412. }();
  413. /**
  414. * Data API
  415. * ====================================================
  416. */
  417. $(document).on('click', Selector.TOGGLE_BUTTON, function (event) {
  418. event.preventDefault();
  419. var button = event.currentTarget;
  420. if ($(button).data('widget') !== 'pushmenu') {
  421. button = $(button).closest(Selector.TOGGLE_BUTTON);
  422. }
  423. PushMenu._jQueryInterface.call($(button), 'toggle');
  424. });
  425. $(window).on('load', function () {
  426. PushMenu._jQueryInterface.call($(Selector.TOGGLE_BUTTON));
  427. });
  428. /**
  429. * jQuery API
  430. * ====================================================
  431. */
  432. $.fn[NAME] = PushMenu._jQueryInterface;
  433. $.fn[NAME].Constructor = PushMenu;
  434. $.fn[NAME].noConflict = function () {
  435. $.fn[NAME] = JQUERY_NO_CONFLICT;
  436. return PushMenu._jQueryInterface;
  437. };
  438. return PushMenu;
  439. }(jQuery);
  440. /**
  441. * --------------------------------------------
  442. * AdminLTE Treeview.js
  443. * License MIT
  444. * --------------------------------------------
  445. */
  446. var Treeview = function ($) {
  447. /**
  448. * Constants
  449. * ====================================================
  450. */
  451. var NAME = 'Treeview';
  452. var DATA_KEY = 'lte.treeview';
  453. var EVENT_KEY = "." + DATA_KEY;
  454. var JQUERY_NO_CONFLICT = $.fn[NAME];
  455. var Event = {
  456. SELECTED: "selected" + EVENT_KEY,
  457. EXPANDED: "expanded" + EVENT_KEY,
  458. COLLAPSED: "collapsed" + EVENT_KEY,
  459. LOAD_DATA_API: "load" + EVENT_KEY
  460. };
  461. var Selector = {
  462. LI: '.nav-item',
  463. LINK: '.nav-link',
  464. TREEVIEW_MENU: '.nav-treeview',
  465. OPEN: '.menu-open',
  466. DATA_WIDGET: '[data-widget="treeview"]'
  467. };
  468. var ClassName = {
  469. LI: 'nav-item',
  470. LINK: 'nav-link',
  471. TREEVIEW_MENU: 'nav-treeview',
  472. OPEN: 'menu-open'
  473. };
  474. var Default = {
  475. trigger: Selector.DATA_WIDGET + " " + Selector.LINK,
  476. animationSpeed: 300,
  477. accordion: true
  478. /**
  479. * Class Definition
  480. * ====================================================
  481. */
  482. };
  483. var Treeview =
  484. /*#__PURE__*/
  485. function () {
  486. function Treeview(element, config) {
  487. this._config = config;
  488. this._element = element;
  489. } // Public
  490. var _proto = Treeview.prototype;
  491. _proto.init = function init() {
  492. this._setupListeners();
  493. };
  494. _proto.expand = function expand(treeviewMenu, parentLi) {
  495. var _this = this;
  496. var expandedEvent = $.Event(Event.EXPANDED);
  497. if (this._config.accordion) {
  498. var openMenuLi = parentLi.siblings(Selector.OPEN).first();
  499. var openTreeview = openMenuLi.find(Selector.TREEVIEW_MENU).first();
  500. this.collapse(openTreeview, openMenuLi);
  501. }
  502. treeviewMenu.slideDown(this._config.animationSpeed, function () {
  503. parentLi.addClass(ClassName.OPEN);
  504. $(_this._element).trigger(expandedEvent);
  505. });
  506. };
  507. _proto.collapse = function collapse(treeviewMenu, parentLi) {
  508. var _this2 = this;
  509. var collapsedEvent = $.Event(Event.COLLAPSED);
  510. treeviewMenu.slideUp(this._config.animationSpeed, function () {
  511. parentLi.removeClass(ClassName.OPEN);
  512. $(_this2._element).trigger(collapsedEvent);
  513. treeviewMenu.find(Selector.OPEN + " > " + Selector.TREEVIEW_MENU).slideUp();
  514. treeviewMenu.find(Selector.OPEN).removeClass(ClassName.OPEN);
  515. });
  516. };
  517. _proto.toggle = function toggle(event) {
  518. var $relativeTarget = $(event.currentTarget);
  519. var treeviewMenu = $relativeTarget.next();
  520. if (!treeviewMenu.is(Selector.TREEVIEW_MENU)) {
  521. return;
  522. }
  523. event.preventDefault();
  524. var parentLi = $relativeTarget.parents(Selector.LI).first();
  525. var isOpen = parentLi.hasClass(ClassName.OPEN);
  526. if (isOpen) {
  527. this.collapse($(treeviewMenu), parentLi);
  528. } else {
  529. this.expand($(treeviewMenu), parentLi);
  530. }
  531. } // Private
  532. ;
  533. _proto._setupListeners = function _setupListeners() {
  534. var _this3 = this;
  535. $(document).on('click', this._config.trigger, function (event) {
  536. _this3.toggle(event);
  537. });
  538. } // Static
  539. ;
  540. Treeview._jQueryInterface = function _jQueryInterface(config) {
  541. return this.each(function () {
  542. var data = $(this).data(DATA_KEY);
  543. var _config = $.extend({}, Default, $(this).data());
  544. if (!data) {
  545. data = new Treeview($(this), _config);
  546. $(this).data(DATA_KEY, data);
  547. }
  548. if (config === 'init') {
  549. data[config]();
  550. }
  551. });
  552. };
  553. return Treeview;
  554. }();
  555. /**
  556. * Data API
  557. * ====================================================
  558. */
  559. $(window).on(Event.LOAD_DATA_API, function () {
  560. $(Selector.DATA_WIDGET).each(function () {
  561. Treeview._jQueryInterface.call($(this), 'init');
  562. });
  563. });
  564. /**
  565. * jQuery API
  566. * ====================================================
  567. */
  568. $.fn[NAME] = Treeview._jQueryInterface;
  569. $.fn[NAME].Constructor = Treeview;
  570. $.fn[NAME].noConflict = function () {
  571. $.fn[NAME] = JQUERY_NO_CONFLICT;
  572. return Treeview._jQueryInterface;
  573. };
  574. return Treeview;
  575. }(jQuery);
  576. /**
  577. * --------------------------------------------
  578. * AdminLTE DirectChat.js
  579. * License MIT
  580. * --------------------------------------------
  581. */
  582. var DirectChat = function ($) {
  583. /**
  584. * Constants
  585. * ====================================================
  586. */
  587. var NAME = 'DirectChat';
  588. var DATA_KEY = 'lte.directchat';
  589. var JQUERY_NO_CONFLICT = $.fn[NAME];
  590. var Selector = {
  591. DATA_TOGGLE: '[data-widget="chat-pane-toggle"]',
  592. DIRECT_CHAT: '.direct-chat'
  593. };
  594. var ClassName = {
  595. DIRECT_CHAT_OPEN: 'direct-chat-contacts-open'
  596. };
  597. /**
  598. * Class Definition
  599. * ====================================================
  600. */
  601. var DirectChat =
  602. /*#__PURE__*/
  603. function () {
  604. function DirectChat(element, config) {
  605. this._element = element;
  606. }
  607. var _proto = DirectChat.prototype;
  608. _proto.toggle = function toggle() {
  609. $(this._element).parents(Selector.DIRECT_CHAT).first().toggleClass(ClassName.DIRECT_CHAT_OPEN);
  610. } // Static
  611. ;
  612. DirectChat._jQueryInterface = function _jQueryInterface(config) {
  613. return this.each(function () {
  614. var data = $(this).data(DATA_KEY);
  615. if (!data) {
  616. data = new DirectChat($(this));
  617. $(this).data(DATA_KEY, data);
  618. }
  619. data[config]();
  620. });
  621. };
  622. return DirectChat;
  623. }();
  624. /**
  625. *
  626. * Data Api implementation
  627. * ====================================================
  628. */
  629. $(document).on('click', Selector.DATA_TOGGLE, function (event) {
  630. if (event) event.preventDefault();
  631. DirectChat._jQueryInterface.call($(this), 'toggle');
  632. });
  633. /**
  634. * jQuery API
  635. * ====================================================
  636. */
  637. $.fn[NAME] = DirectChat._jQueryInterface;
  638. $.fn[NAME].Constructor = DirectChat;
  639. $.fn[NAME].noConflict = function () {
  640. $.fn[NAME] = JQUERY_NO_CONFLICT;
  641. return DirectChat._jQueryInterface;
  642. };
  643. return DirectChat;
  644. }(jQuery);
  645. /**
  646. * --------------------------------------------
  647. * AdminLTE TodoList.js
  648. * License MIT
  649. * --------------------------------------------
  650. */
  651. var TodoList = function ($) {
  652. /**
  653. * Constants
  654. * ====================================================
  655. */
  656. var NAME = 'TodoList';
  657. var DATA_KEY = 'lte.todolist';
  658. var JQUERY_NO_CONFLICT = $.fn[NAME];
  659. var Selector = {
  660. DATA_TOGGLE: '[data-widget="todo-list"]'
  661. };
  662. var ClassName = {
  663. TODO_LIST_DONE: 'done'
  664. };
  665. var Default = {
  666. onCheck: function onCheck(item) {
  667. return item;
  668. },
  669. onUnCheck: function onUnCheck(item) {
  670. return item;
  671. }
  672. /**
  673. * Class Definition
  674. * ====================================================
  675. */
  676. };
  677. var TodoList =
  678. /*#__PURE__*/
  679. function () {
  680. function TodoList(element, config) {
  681. this._config = config;
  682. this._element = element;
  683. this._init();
  684. } // Public
  685. var _proto = TodoList.prototype;
  686. _proto.toggle = function toggle(item) {
  687. item.parents('li').toggleClass(ClassName.TODO_LIST_DONE);
  688. if (!$(item).prop('checked')) {
  689. this.unCheck($(item));
  690. return;
  691. }
  692. this.check(item);
  693. };
  694. _proto.check = function check(item) {
  695. this._config.onCheck.call(item);
  696. };
  697. _proto.unCheck = function unCheck(item) {
  698. this._config.onUnCheck.call(item);
  699. } // Private
  700. ;
  701. _proto._init = function _init() {
  702. var that = this;
  703. $(Selector.DATA_TOGGLE).find('input:checkbox:checked').parents('li').toggleClass(ClassName.TODO_LIST_DONE);
  704. $(Selector.DATA_TOGGLE).on('change', 'input:checkbox', function (event) {
  705. that.toggle($(event.target));
  706. });
  707. } // Static
  708. ;
  709. TodoList._jQueryInterface = function _jQueryInterface(config) {
  710. return this.each(function () {
  711. var data = $(this).data(DATA_KEY);
  712. var _config = $.extend({}, Default, $(this).data());
  713. if (!data) {
  714. data = new TodoList($(this), _config);
  715. $(this).data(DATA_KEY, data);
  716. }
  717. if (config === 'init') {
  718. data[config]();
  719. }
  720. });
  721. };
  722. return TodoList;
  723. }();
  724. /**
  725. * Data API
  726. * ====================================================
  727. */
  728. $(window).on('load', function () {
  729. TodoList._jQueryInterface.call($(Selector.DATA_TOGGLE));
  730. });
  731. /**
  732. * jQuery API
  733. * ====================================================
  734. */
  735. $.fn[NAME] = TodoList._jQueryInterface;
  736. $.fn[NAME].Constructor = TodoList;
  737. $.fn[NAME].noConflict = function () {
  738. $.fn[NAME] = JQUERY_NO_CONFLICT;
  739. return TodoList._jQueryInterface;
  740. };
  741. return TodoList;
  742. }(jQuery);
  743. /**
  744. * --------------------------------------------
  745. * AdminLTE Widget.js
  746. * License MIT
  747. * --------------------------------------------
  748. */
  749. var Widget = function ($) {
  750. /**
  751. * Constants
  752. * ====================================================
  753. */
  754. var NAME = 'Widget';
  755. var DATA_KEY = 'lte.widget';
  756. var EVENT_KEY = "." + DATA_KEY;
  757. var JQUERY_NO_CONFLICT = $.fn[NAME];
  758. var Event = {
  759. EXPANDED: "expanded" + EVENT_KEY,
  760. COLLAPSED: "collapsed" + EVENT_KEY,
  761. MAXIMIZED: "maximized" + EVENT_KEY,
  762. MINIMIZED: "minimized" + EVENT_KEY,
  763. REMOVED: "removed" + EVENT_KEY
  764. };
  765. var Selector = {
  766. DATA_REMOVE: '[data-widget="remove"]',
  767. DATA_COLLAPSE: '[data-widget="collapse"]',
  768. DATA_MAXIMIZE: '[data-widget="maximize"]',
  769. CARD: '.card',
  770. CARD_HEADER: '.card-header',
  771. CARD_BODY: '.card-body',
  772. CARD_FOOTER: '.card-footer',
  773. COLLAPSED: '.collapsed-card',
  774. COLLAPSE_ICON: '.fa-minus',
  775. EXPAND_ICON: '.fa-plus'
  776. };
  777. var ClassName = {
  778. COLLAPSED: 'collapsed-card',
  779. WAS_COLLAPSED: 'was-collapsed',
  780. MAXIMIZED: 'maximized-card',
  781. COLLAPSE_ICON: 'fa-minus',
  782. EXPAND_ICON: 'fa-plus',
  783. MAXIMIZE_ICON: 'fa-expand',
  784. MINIMIZE_ICON: 'fa-compress'
  785. };
  786. var Default = {
  787. animationSpeed: 'normal',
  788. collapseTrigger: Selector.DATA_COLLAPSE,
  789. removeTrigger: Selector.DATA_REMOVE
  790. };
  791. var Widget =
  792. /*#__PURE__*/
  793. function () {
  794. function Widget(element, settings) {
  795. this._element = element;
  796. this._parent = element.parents(Selector.CARD).first();
  797. this._settings = $.extend({}, Default, settings);
  798. }
  799. var _proto = Widget.prototype;
  800. _proto.collapse = function collapse() {
  801. var _this = this;
  802. this._parent.children(Selector.CARD_BODY + ", " + Selector.CARD_FOOTER).slideUp(this._settings.animationSpeed, function () {
  803. _this._parent.addClass(ClassName.COLLAPSED);
  804. });
  805. this._element.children(Selector.COLLAPSE_ICON).addClass(ClassName.EXPAND_ICON).removeClass(ClassName.COLLAPSE_ICON);
  806. var collapsed = $.Event(Event.COLLAPSED);
  807. this._element.trigger(collapsed, this._parent);
  808. };
  809. _proto.expand = function expand() {
  810. var _this2 = this;
  811. this._parent.children(Selector.CARD_BODY + ", " + Selector.CARD_FOOTER).slideDown(this._settings.animationSpeed, function () {
  812. _this2._parent.removeClass(ClassName.COLLAPSED);
  813. });
  814. this._element.children(Selector.EXPAND_ICON).addClass(ClassName.COLLAPSE_ICON).removeClass(ClassName.EXPAND_ICON);
  815. var expanded = $.Event(Event.EXPANDED);
  816. this._element.trigger(expanded, this._parent);
  817. };
  818. _proto.remove = function remove() {
  819. this._parent.slideUp();
  820. var removed = $.Event(Event.REMOVED);
  821. this._element.trigger(removed, this._parent);
  822. };
  823. _proto.toggle = function toggle() {
  824. if (this._parent.hasClass(ClassName.COLLAPSED)) {
  825. this.expand();
  826. return;
  827. }
  828. this.collapse();
  829. };
  830. _proto.toggleMaximize = function toggleMaximize() {
  831. var button = this._element.find('i');
  832. if (this._parent.hasClass(ClassName.MAXIMIZED)) {
  833. button.addClass(ClassName.MAXIMIZE_ICON).removeClass(ClassName.MINIMIZE_ICON);
  834. this._parent.css('cssText', 'height:' + this._parent[0].style.height + ' !important;' + 'width:' + this._parent[0].style.width + ' !important; transition: all .15s;').delay(100).queue(function () {
  835. $(this).removeClass(ClassName.MAXIMIZED);
  836. $('html').removeClass(ClassName.MAXIMIZED);
  837. $(this).trigger(Event.MINIMIZED);
  838. $(this).css({
  839. 'height': 'inherit',
  840. 'width': 'inherit'
  841. });
  842. if ($(this).hasClass(ClassName.WAS_COLLAPSED)) {
  843. $(this).removeClass(ClassName.WAS_COLLAPSED);
  844. }
  845. $(this).dequeue();
  846. });
  847. } else {
  848. button.addClass(ClassName.MINIMIZE_ICON).removeClass(ClassName.MAXIMIZE_ICON);
  849. this._parent.css({
  850. 'height': this._parent.height(),
  851. 'width': this._parent.width(),
  852. 'transition': 'all .15s'
  853. }).delay(150).queue(function () {
  854. $(this).addClass(ClassName.MAXIMIZED);
  855. $('html').addClass(ClassName.MAXIMIZED);
  856. $(this).trigger(Event.MAXIMIZED);
  857. if ($(this).hasClass(ClassName.COLLAPSED)) {
  858. $(this).addClass(ClassName.WAS_COLLAPSED);
  859. }
  860. $(this).dequeue();
  861. });
  862. }
  863. } // Private
  864. ;
  865. _proto._init = function _init(card) {
  866. var _this3 = this;
  867. this._parent = card;
  868. $(this).find(this._settings.collapseTrigger).click(function () {
  869. _this3.toggle();
  870. });
  871. $(this).find(this._settings.removeTrigger).click(function () {
  872. _this3.remove();
  873. });
  874. } // Static
  875. ;
  876. Widget._jQueryInterface = function _jQueryInterface(config) {
  877. return this.each(function () {
  878. var data = $(this).data(DATA_KEY);
  879. if (!data) {
  880. data = new Widget($(this), data);
  881. $(this).data(DATA_KEY, typeof config === 'string' ? data : config);
  882. }
  883. if (typeof config === 'string' && config.match(/remove|toggle|toggleMaximize/)) {
  884. data[config]();
  885. } else if (typeof config === 'object') {
  886. data._init($(this));
  887. }
  888. });
  889. };
  890. return Widget;
  891. }();
  892. /**
  893. * Data API
  894. * ====================================================
  895. */
  896. $(document).on('click', Selector.DATA_COLLAPSE, function (event) {
  897. if (event) {
  898. event.preventDefault();
  899. }
  900. Widget._jQueryInterface.call($(this), 'toggle');
  901. });
  902. $(document).on('click', Selector.DATA_REMOVE, function (event) {
  903. if (event) {
  904. event.preventDefault();
  905. }
  906. Widget._jQueryInterface.call($(this), 'remove');
  907. });
  908. $(document).on('click', Selector.DATA_MAXIMIZE, function (event) {
  909. if (event) {
  910. event.preventDefault();
  911. }
  912. Widget._jQueryInterface.call($(this), 'toggleMaximize');
  913. });
  914. /**
  915. * jQuery API
  916. * ====================================================
  917. */
  918. $.fn[NAME] = Widget._jQueryInterface;
  919. $.fn[NAME].Constructor = Widget;
  920. $.fn[NAME].noConflict = function () {
  921. $.fn[NAME] = JQUERY_NO_CONFLICT;
  922. return Widget._jQueryInterface;
  923. };
  924. return Widget;
  925. }(jQuery);
  926. exports.ControlSidebar = ControlSidebar;
  927. exports.DirectChat = DirectChat;
  928. exports.Layout = Layout;
  929. exports.PushMenu = PushMenu;
  930. exports.TodoList = TodoList;
  931. exports.Treeview = Treeview;
  932. exports.Widget = Widget;
  933. Object.defineProperty(exports, '__esModule', { value: true });
  934. }));
  935. //# sourceMappingURL=adminlte.js.map