123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
- 'use strict';
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- /**
- * --------------------------------------------
- * AdminLTE Treeview.js
- * License MIT
- * --------------------------------------------
- */
- var Treeview = function ($) {
- /**
- * Constants
- * ====================================================
- */
- var NAME = 'Treeview';
- var DATA_KEY = 'lte.treeview';
- var EVENT_KEY = '.' + DATA_KEY;
- var JQUERY_NO_CONFLICT = $.fn[NAME];
- var Event = {
- SELECTED: 'selected' + EVENT_KEY,
- EXPANDED: 'expanded' + EVENT_KEY,
- COLLAPSED: 'collapsed' + EVENT_KEY,
- LOAD_DATA_API: 'load' + EVENT_KEY
- };
- var Selector = {
- LI: '.nav-item',
- LINK: '.nav-link',
- TREEVIEW_MENU: '.nav-treeview',
- OPEN: '.menu-open',
- DATA_WIDGET: '[data-widget="treeview"]'
- };
- var ClassName = {
- LI: 'nav-item',
- LINK: 'nav-link',
- TREEVIEW_MENU: 'nav-treeview',
- OPEN: 'menu-open'
- };
- var Default = {
- trigger: Selector.DATA_WIDGET + ' ' + Selector.LINK,
- animationSpeed: 300,
- accordion: true
- };
- /**
- * Class Definition
- * ====================================================
- */
- var Treeview = function () {
- function Treeview(element, config) {
- _classCallCheck(this, Treeview);
- this._config = config;
- this._element = element;
- }
- // Public
- _createClass(Treeview, [{
- key: 'init',
- value: function init() {
- this._setupListeners();
- }
- }, {
- key: 'expand',
- value: function expand(treeviewMenu, parentLi) {
- var _this = this;
- var expandedEvent = $.Event(Event.EXPANDED);
- if (this._config.accordion) {
- var openMenuLi = parentLi.siblings(Selector.OPEN).first();
- var openTreeview = openMenuLi.find(Selector.TREEVIEW_MENU).first();
- this.collapse(openTreeview, openMenuLi);
- }
- treeviewMenu.slideDown(this._config.animationSpeed, function () {
- parentLi.addClass(ClassName.OPEN);
- $(_this._element).trigger(expandedEvent);
- });
- }
- }, {
- key: 'collapse',
- value: function collapse(treeviewMenu, parentLi) {
- var _this2 = this;
- var collapsedEvent = $.Event(Event.COLLAPSED);
- treeviewMenu.slideUp(this._config.animationSpeed, function () {
- parentLi.removeClass(ClassName.OPEN);
- $(_this2._element).trigger(collapsedEvent);
- treeviewMenu.find(Selector.OPEN + ' > ' + Selector.TREEVIEW_MENU).slideUp();
- treeviewMenu.find(Selector.OPEN).removeClass(ClassName.OPEN);
- });
- }
- }, {
- key: 'collapseAll',
- value: function collapseAll() {}
- }, {
- key: 'expandAll',
- value: function expandAll() {}
- }, {
- key: 'toggle',
- value: function toggle(event) {
- var $relativeTarget = $(event.currentTarget);
- var treeviewMenu = $relativeTarget.next();
- if (!treeviewMenu.is(Selector.TREEVIEW_MENU)) {
- return;
- }
- event.preventDefault();
- var parentLi = $relativeTarget.parents(Selector.LI).first();
- var isOpen = parentLi.hasClass(ClassName.OPEN);
- if (isOpen) {
- this.collapse($(treeviewMenu), parentLi);
- } else {
- this.expand($(treeviewMenu), parentLi);
- }
- }
- // Private
- }, {
- key: '_setupListeners',
- value: function _setupListeners() {
- var _this3 = this;
- $(document).on('click', this._config.trigger, function (event) {
- _this3.toggle(event);
- });
- }
- // Static
- }], [{
- key: '_jQueryInterface',
- value: function _jQueryInterface(config) {
- return this.each(function () {
- var data = $(this).data(DATA_KEY);
- var _config = $.extend({}, Default, $(this).data());
- if (!data) {
- data = new Treeview($(this), _config);
- $(this).data(DATA_KEY, data);
- }
- if (config === 'init') {
- data[config]();
- }
- });
- }
- }]);
- return Treeview;
- }();
- /**
- * Data API
- * ====================================================
- */
- $(window).on(Event.LOAD_DATA_API, function () {
- $(Selector.DATA_WIDGET).each(function () {
- var $treeview = $(this);
- Treeview._jQueryInterface.call($treeview, 'init');
- });
- });
- /**
- * jQuery API
- * ====================================================
- */
- $.fn[NAME] = Treeview._jQueryInterface;
- $.fn[NAME].Constructor = Treeview;
- $.fn[NAME].noConflict = function () {
- $.fn[NAME] = JQUERY_NO_CONFLICT;
- return Treeview._jQueryInterface;
- };
- return Treeview;
- }(jQuery);
- //# sourceMappingURL=Treeview.js.map
|