mirror of
				https://github.com/mdbootstrap/mdb-ui-kit.git
				synced 2025-11-04 01:47:35 +03:00 
			
		
		
		
	release: 3.9.0
This commit is contained in:
		
							parent
							
								
									9640f31de2
								
							
						
					
					
						commit
						835b9260ef
					
				| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
MDB5
 | 
					MDB5
 | 
				
			||||||
Version: FREE 3.8.1
 | 
					Version: FREE 3.9.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Documentation:
 | 
					Documentation:
 | 
				
			||||||
https://mdbootstrap.com/docs/standard/
 | 
					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",
 | 
					  "name": "mdb-ui-kit",
 | 
				
			||||||
  "version": "3.8.1",
 | 
					  "version": "3.9.0",
 | 
				
			||||||
  "main": "js/mdb.min.js",
 | 
					  "main": "js/mdb.min.js",
 | 
				
			||||||
  "homepage": "https://mdbootstrap.com/docs/standard/",
 | 
					  "homepage": "https://mdbootstrap.com/docs/standard/",
 | 
				
			||||||
  "repository": "https://github.com/mdbootstrap/mdb-ui-kit.git",
 | 
					  "repository": "https://github.com/mdbootstrap/mdb-ui-kit.git",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -184,7 +184,6 @@ class Collapse extends BaseComponent {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    this.setTransitioning(true);
 | 
					    this.setTransitioning(true);
 | 
				
			||||||
 | 
					 | 
				
			||||||
    const complete = () => {
 | 
					    const complete = () => {
 | 
				
			||||||
      this._element.classList.remove(CLASS_NAME_COLLAPSING);
 | 
					      this._element.classList.remove(CLASS_NAME_COLLAPSING);
 | 
				
			||||||
      this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
 | 
					      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) => {
 | 
					      SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP).forEach((listGroup) => {
 | 
				
			||||||
        // Set triggered links parents as active
 | 
					        // Set triggered links parents as active
 | 
				
			||||||
        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
 | 
					        // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
 | 
				
			||||||
        SelectorEngine.prev(
 | 
					        SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`).forEach(
 | 
				
			||||||
          listGroup,
 | 
					          (item) => item.classList.add(CLASS_NAME_ACTIVE)
 | 
				
			||||||
          `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`
 | 
					        );
 | 
				
			||||||
        ).forEach((item) => item.classList.add(CLASS_NAME_ACTIVE));
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Handle special case when .nav-link is inside .nav-item
 | 
					        // Handle special case when .nav-link is inside .nav-item
 | 
				
			||||||
        SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS).forEach((navItem) => {
 | 
					        SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS).forEach((navItem) => {
 | 
				
			||||||
| 
						 | 
					@ -296,9 +295,9 @@ class ScrollSpy extends BaseComponent {
 | 
				
			||||||
 * ------------------------------------------------------------------------
 | 
					 * ------------------------------------------------------------------------
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
EventHandler.on(window, EVENT_LOAD_DATA_API, () => {
 | 
					// EventHandler.on(window, EVENT_LOAD_DATA_API, () => {
 | 
				
			||||||
  SelectorEngine.find(SELECTOR_DATA_SPY).forEach((spy) => new ScrollSpy(spy));
 | 
					//   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 DATA_API_KEY = '.data-api';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const EVENT_ACTIVATE_BS = 'activate.bs.scrollspy';
 | 
					const EVENT_ACTIVATE_BS = 'activate.bs.scrollspy';
 | 
				
			||||||
 | 
					 | 
				
			||||||
const EVENT_ACTIVATE = `activate${EVENT_KEY}`;
 | 
					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 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 {
 | 
					class ScrollSpy extends BSScrollSpy {
 | 
				
			||||||
  constructor(element, data) {
 | 
					  constructor(element, data) {
 | 
				
			||||||
    super(element, data);
 | 
					    super(element, data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    this._scrollElement = element.tagName === 'BODY' ? window : element;
 | 
					    this._scrollElement = element.tagName === 'BODY' ? window : element;
 | 
				
			||||||
 | 
					    this._collapsibles = [];
 | 
				
			||||||
    this._init();
 | 
					    this._init();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -46,10 +51,77 @@ class ScrollSpy extends BSScrollSpy {
 | 
				
			||||||
  // Private
 | 
					  // Private
 | 
				
			||||||
  _init() {
 | 
					  _init() {
 | 
				
			||||||
    this._bindActivateEvent();
 | 
					    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() {
 | 
					  _bindActivateEvent() {
 | 
				
			||||||
    EventHandler.on(this._scrollElement, EVENT_ACTIVATE_BS, (e) => {
 | 
					    EventHandler.on(this._scrollElement, EVENT_ACTIVATE_BS, (e) => {
 | 
				
			||||||
 | 
					      this._showSubsection();
 | 
				
			||||||
 | 
					      this._hideSubsection();
 | 
				
			||||||
      EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {
 | 
					      EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {
 | 
				
			||||||
        relatedTarget: e.relatedTarget,
 | 
					        relatedTarget: e.relatedTarget,
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -25,5 +25,10 @@
 | 
				
			||||||
        $scrollspy-menu-sidebar-active-border-color;
 | 
					        $scrollspy-menu-sidebar-active-border-color;
 | 
				
			||||||
      border-radius: 0;
 | 
					      border-radius: 0;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .collapsible-scrollspy ~ .nav {
 | 
				
			||||||
 | 
					      transition: height 0.5s ease;
 | 
				
			||||||
 | 
					      flex-wrap: nowrap;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user