mirror of
				https://github.com/mdbootstrap/mdb-ui-kit.git
				synced 2025-11-04 09:57:36 +03:00 
			
		
		
		
	release: 3.9.0
This commit is contained in:
		
							parent
							
								
									9640f31de2
								
							
						
					
					
						commit
						835b9260ef
					
				| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
MDB5
 | 
			
		||||
Version: FREE 3.8.1
 | 
			
		||||
Version: FREE 3.9.0
 | 
			
		||||
 | 
			
		||||
Documentation:
 | 
			
		||||
https://mdbootstrap.com/docs/standard/
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								css/mdb.dark.min.css
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								css/mdb.dark.min.css
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								css/mdb.dark.rtl.min.css
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								css/mdb.dark.rtl.min.css
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										4
									
								
								css/mdb.min.css
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								css/mdb.min.css
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								css/mdb.rtl.min.css
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								css/mdb.rtl.min.css
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										4
									
								
								js/mdb.min.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								js/mdb.min.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
{
 | 
			
		||||
  "name": "mdb-ui-kit",
 | 
			
		||||
  "version": "3.8.1",
 | 
			
		||||
  "version": "3.9.0",
 | 
			
		||||
  "main": "js/mdb.min.js",
 | 
			
		||||
  "homepage": "https://mdbootstrap.com/docs/standard/",
 | 
			
		||||
  "repository": "https://github.com/mdbootstrap/mdb-ui-kit.git",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -184,7 +184,6 @@ class Collapse extends BaseComponent {
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    this.setTransitioning(true);
 | 
			
		||||
 | 
			
		||||
    const complete = () => {
 | 
			
		||||
      this._element.classList.remove(CLASS_NAME_COLLAPSING);
 | 
			
		||||
      this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -244,10 +244,9 @@ class ScrollSpy extends BaseComponent {
 | 
			
		|||
      SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP).forEach((listGroup) => {
 | 
			
		||||
        // Set triggered links parents as active
 | 
			
		||||
        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
 | 
			
		||||
        SelectorEngine.prev(
 | 
			
		||||
          listGroup,
 | 
			
		||||
          `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`
 | 
			
		||||
        ).forEach((item) => item.classList.add(CLASS_NAME_ACTIVE));
 | 
			
		||||
        SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`).forEach(
 | 
			
		||||
          (item) => item.classList.add(CLASS_NAME_ACTIVE)
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        // Handle special case when .nav-link is inside .nav-item
 | 
			
		||||
        SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS).forEach((navItem) => {
 | 
			
		||||
| 
						 | 
				
			
			@ -296,9 +295,9 @@ class ScrollSpy extends BaseComponent {
 | 
			
		|||
 * ------------------------------------------------------------------------
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
EventHandler.on(window, EVENT_LOAD_DATA_API, () => {
 | 
			
		||||
  SelectorEngine.find(SELECTOR_DATA_SPY).forEach((spy) => new ScrollSpy(spy));
 | 
			
		||||
});
 | 
			
		||||
// EventHandler.on(window, EVENT_LOAD_DATA_API, () => {
 | 
			
		||||
//   SelectorEngine.find(SELECTOR_DATA_SPY).forEach((spy) => new ScrollSpy(spy));
 | 
			
		||||
// });
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * ------------------------------------------------------------------------
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,18 +16,23 @@ const EVENT_KEY = `.${DATA_KEY}`;
 | 
			
		|||
const DATA_API_KEY = '.data-api';
 | 
			
		||||
 | 
			
		||||
const EVENT_ACTIVATE_BS = 'activate.bs.scrollspy';
 | 
			
		||||
 | 
			
		||||
const EVENT_ACTIVATE = `activate${EVENT_KEY}`;
 | 
			
		||||
 | 
			
		||||
const SELECTOR_DATA_SPY = '[data-mdb-spy="scroll"]';
 | 
			
		||||
const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;
 | 
			
		||||
 | 
			
		||||
const CLASS_COLLAPSIBLE = 'collapsible-scrollspy';
 | 
			
		||||
const CLASS_ACTIVE = 'active';
 | 
			
		||||
 | 
			
		||||
const SELECTOR_LIST = 'ul';
 | 
			
		||||
const SELECTOR_DATA_SPY = '[data-mdb-spy="scroll"]';
 | 
			
		||||
const SELECTOR_ACTIVE = `.${CLASS_ACTIVE}`;
 | 
			
		||||
const SELECTOR_COLLAPSIBLE_SCROLLSPY = `.${CLASS_COLLAPSIBLE}`;
 | 
			
		||||
 | 
			
		||||
class ScrollSpy extends BSScrollSpy {
 | 
			
		||||
  constructor(element, data) {
 | 
			
		||||
    super(element, data);
 | 
			
		||||
 | 
			
		||||
    this._scrollElement = element.tagName === 'BODY' ? window : element;
 | 
			
		||||
 | 
			
		||||
    this._collapsibles = [];
 | 
			
		||||
    this._init();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -46,10 +51,77 @@ class ScrollSpy extends BSScrollSpy {
 | 
			
		|||
  // Private
 | 
			
		||||
  _init() {
 | 
			
		||||
    this._bindActivateEvent();
 | 
			
		||||
    this._getCollapsibles();
 | 
			
		||||
 | 
			
		||||
    if (this._collapsibles.length === 0) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    this._showSubsection();
 | 
			
		||||
    this._hideSubsection();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  _getHeight(element) {
 | 
			
		||||
    return element.offsetHeight;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  _hide(target) {
 | 
			
		||||
    const itemsToHide = SelectorEngine.findOne(SELECTOR_LIST, target.parentNode);
 | 
			
		||||
    itemsToHide.style.overflow = 'hidden';
 | 
			
		||||
    itemsToHide.style.height = `${0}px`;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  _show(target, destinedHeight) {
 | 
			
		||||
    target.style.height = destinedHeight;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  _getCollapsibles() {
 | 
			
		||||
    const collapsibleElements = SelectorEngine.find(SELECTOR_COLLAPSIBLE_SCROLLSPY);
 | 
			
		||||
 | 
			
		||||
    if (!collapsibleElements) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    collapsibleElements.forEach((collapsibleElement) => {
 | 
			
		||||
      const listParent = collapsibleElement.parentNode;
 | 
			
		||||
      const list = SelectorEngine.findOne(SELECTOR_LIST, listParent);
 | 
			
		||||
      const listHeight = list.offsetHeight;
 | 
			
		||||
      this._collapsibles.push({
 | 
			
		||||
        element: list,
 | 
			
		||||
        relatedTarget: collapsibleElement.getAttribute('href'),
 | 
			
		||||
        height: `${listHeight}px`,
 | 
			
		||||
      });
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  _showSubsection() {
 | 
			
		||||
    const activeElements = SelectorEngine.find(SELECTOR_ACTIVE);
 | 
			
		||||
    const actives = activeElements.filter((active) => {
 | 
			
		||||
      return Manipulator.hasClass(active, CLASS_COLLAPSIBLE);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    actives.forEach((active) => {
 | 
			
		||||
      const list = SelectorEngine.findOne(SELECTOR_LIST, active.parentNode);
 | 
			
		||||
      const height = this._collapsibles.find((collapsible) => {
 | 
			
		||||
        return (collapsible.relatedTarget = active.getAttribute('href'));
 | 
			
		||||
      }).height;
 | 
			
		||||
      this._show(list, height);
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  _hideSubsection() {
 | 
			
		||||
    const unactives = SelectorEngine.find(SELECTOR_COLLAPSIBLE_SCROLLSPY).filter((collapsible) => {
 | 
			
		||||
      return Manipulator.hasClass(collapsible, 'active') === false;
 | 
			
		||||
    });
 | 
			
		||||
    unactives.forEach((unactive) => {
 | 
			
		||||
      this._hide(unactive);
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  _bindActivateEvent() {
 | 
			
		||||
    EventHandler.on(this._scrollElement, EVENT_ACTIVATE_BS, (e) => {
 | 
			
		||||
      this._showSubsection();
 | 
			
		||||
      this._hideSubsection();
 | 
			
		||||
      EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {
 | 
			
		||||
        relatedTarget: e.relatedTarget,
 | 
			
		||||
      });
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,5 +25,10 @@
 | 
			
		|||
        $scrollspy-menu-sidebar-active-border-color;
 | 
			
		||||
      border-radius: 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .collapsible-scrollspy ~ .nav {
 | 
			
		||||
      transition: height 0.5s ease;
 | 
			
		||||
      flex-wrap: nowrap;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user