@ -1,5 +1,5 @@ 
			
		
	
		
			
				
					/ * !  
			
		
	
		
			
				
					  *  Native  JavaScript  for  Bootstrap  v4 . 0.4   ( https : //thednp.github.io/bootstrap.native/)
  
			
		
	
		
			
				
					  *  Native  JavaScript  for  Bootstrap  v4 . 0.6   ( https : //thednp.github.io/bootstrap.native/)
  
			
		
	
		
			
				
					  *  Copyright  2015 - 2021  ©  dnp_theme  
			
		
	
		
			
				
					  *  Licensed  under  MIT  ( https : //github.com/thednp/bootstrap.native/blob/master/LICENSE)
  
			
		
	
		
			
				
					  * /  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -1467,19 +1467,26 @@ 
			
		
	
		
			
				
					    }  
			
		
	
		
			
				
					  }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  const  modalOpenClass  =  'modal-open' ;  
			
		
	
		
			
				
					  const  modalBackdropClass  =  'modal-backdrop' ;  
			
		
	
		
			
				
					  const  offcanvasBackdropClass  =  'offcanvas-backdrop' ;  
			
		
	
		
			
				
					  const  modalActiveSelector  =  ` .modal. ${ showClass } ` ;  
			
		
	
		
			
				
					  const  offcanvasActiveSelector  =  ` .offcanvas. ${ showClass } ` ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  const  overlay  =  document . createElement ( 'div' ) ;  
			
		
	
		
			
				
					  overlay . setAttribute ( 'class' ,  ` ${ modalBackdropClass } ` ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  function  getCurrentOpen ( )  {  
			
		
	
		
			
				
					    return  queryElement ( ` ${ modalActiveSelector } , ${ offcanvasActiveSelector } ` ) ;  
			
		
	
		
			
				
					  }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  function  appendOverlay ( hasFade )  {  
			
		
	
		
			
				
					  function  toggleOverlayType ( isModal )  {  
			
		
	
		
			
				
					    const  targetClass  =  isModal  ?  modalBackdropClass  :  offcanvasBackdropClass ;  
			
		
	
		
			
				
					    [ modalBackdropClass ,  offcanvasBackdropClass ] . forEach ( ( c )  =>  {  
			
		
	
		
			
				
					      removeClass ( overlay ,  c ) ;  
			
		
	
		
			
				
					    } ) ;  
			
		
	
		
			
				
					    addClass ( overlay ,  targetClass ) ;  
			
		
	
		
			
				
					  }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  function  appendOverlay ( hasFade ,  isModal )  {  
			
		
	
		
			
				
					    toggleOverlayType ( isModal ) ;  
			
		
	
		
			
				
					    document . body . appendChild ( overlay ) ;  
			
		
	
		
			
				
					    if  ( hasFade )  addClass ( overlay ,  fadeClass ) ;  
			
		
	
		
			
				
					  }  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -1499,7 +1506,6 @@ 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    if  ( ! currentOpen )  {  
			
		
	
		
			
				
					      removeClass ( overlay ,  fadeClass ) ;  
			
		
	
		
			
				
					      removeClass ( bd ,  modalOpenClass ) ;  
			
		
	
		
			
				
					      bd . removeChild ( overlay ) ;  
			
		
	
		
			
				
					      resetScrollbar ( ) ;  
			
		
	
		
			
				
					    }  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -1518,7 +1524,6 @@ 
			
		
	
		
			
				
					  const  modalString  =  'modal' ;  
			
		
	
		
			
				
					  const  modalComponent  =  'Modal' ;  
			
		
	
		
			
				
					  const  modalSelector  =  ` . ${ modalString } ` ;  
			
		
	
		
			
				
					  // const modalActiveSelector = `.${modalString}.${showClass}`;
  
			
		
	
		
			
				
					  const  modalToggleSelector  =  ` [ ${ dataBsToggle } =" ${ modalString } "] ` ;  
			
		
	
		
			
				
					  const  modalDismissSelector  =  ` [ ${ dataBsDismiss } =" ${ modalString } "] ` ;  
			
		
	
		
			
				
					  const  modalStaticClass  =  ` ${ modalString } -static ` ;  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -1567,8 +1572,11 @@ 
			
		
	
		
			
				
					  }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  function  afterModalHide ( self )  {  
			
		
	
		
			
				
					    const  {  triggers  }  =  self ;  
			
		
	
		
			
				
					    removeOverlay ( ) ;  
			
		
	
		
			
				
					    const  {  triggers ,  options  }  =  self ;  
			
		
	
		
			
				
					    if  ( ! getCurrentOpen ( ) )  {  
			
		
	
		
			
				
					      if  ( options . backdrop )  removeOverlay ( ) ;  
			
		
	
		
			
				
					      resetScrollbar ( ) ;  
			
		
	
		
			
				
					    }  
			
		
	
		
			
				
					    self . element . style . paddingRight  =  '' ;  
			
		
	
		
			
				
					    self . isAnimating  =  false ;  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -1594,9 +1602,8 @@ 
			
		
	
		
			
				
					    element . style . display  =  'block' ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    setModalScrollbar ( self ) ;  
			
		
	
		
			
				
					    if  ( ! queryElement ( modalActiveSelector ) )  {  
			
		
	
		
			
				
					    if  ( ! getCurrentOpen ( ) )  {  
			
		
	
		
			
				
					      document . body . style . overflow  =  'hidden' ;  
			
		
	
		
			
				
					      addClass ( document . body ,  modalOpenClass ) ;  
			
		
	
		
			
				
					    }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    addClass ( element ,  showClass ) ;  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -1609,16 +1616,15 @@ 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  function  beforeModalHide ( self ,  force )  {  
			
		
	
		
			
				
					    const  {  
			
		
	
		
			
				
					      element ,  relatedTarget ,  hasFade ,  
			
		
	
		
			
				
					      element ,  options ,  relatedTarget ,  hasFade ,  
			
		
	
		
			
				
					    }  =  self ;  
			
		
	
		
			
				
					    const  currentOpen  =  getCurrentOpen ( ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    element . style . display  =  '' ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    // force can also be the transitionEvent object, we wanna make sure it's not
  
			
		
	
		
			
				
					    // call is not forced and overlay is visible
  
			
		
	
		
			
				
					    if  ( ! force  &&  hasFade  &&  hasClass ( overlay ,  showClass )  
			
		
	
		
			
				
					      &&  ! currentOpen )  {  // AND no modal is visible
  
			
		
	
		
			
				
					    if  ( options . backdrop  &&  ! force  &&  hasFade  &&  hasClass ( overlay ,  showClass )  
			
		
	
		
			
				
					      &&  ! getCurrentOpen ( ) )  {  // AND no modal is visible
  
			
		
	
		
			
				
					      hideOverlay ( ) ;  
			
		
	
		
			
				
					      emulateTransitionEnd ( overlay ,  ( )  =>  afterModalHide ( self ) ) ;  
			
		
	
		
			
				
					    }  else  {  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -1666,7 +1672,8 @@ 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    if  ( self . isAnimating )  return ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    const  {  isStatic ,  modalDialog  }  =  self ;  
			
		
	
		
			
				
					    const  {  options ,  isStatic ,  modalDialog  }  =  self ;  
			
		
	
		
			
				
					    const  {  backdrop  }  =  options ;  
			
		
	
		
			
				
					    const  {  target  }  =  e ;  
			
		
	
		
			
				
					    const  selectedText  =  document . getSelection ( ) . toString ( ) . length ;  
			
		
	
		
			
				
					    const  targetInsideDialog  =  modalDialog . contains ( target ) ;  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -1676,7 +1683,7 @@ 
			
		
	
		
			
				
					      addClass ( element ,  modalStaticClass ) ;  
			
		
	
		
			
				
					      self . isAnimating  =  true ;  
			
		
	
		
			
				
					      emulateTransitionEnd ( modalDialog ,  ( )  =>  staticTransitionEnd ( self ) ) ;  
			
		
	
		
			
				
					    }  else  if  ( dismiss  ||  ( ! selectedText  &&  ! isStatic  &&  ! targetInsideDialog ) )  {  
			
		
	
		
			
				
					    }  else  if  ( dismiss  ||  ( ! selectedText  &&  ! isStatic  &&  ! targetInsideDialog  &&  backdrop  ) )  {  
			
		
	
		
			
				
					      self . relatedTarget  =  dismiss  ||  null ;  
			
		
	
		
			
				
					      self . hide ( ) ;  
			
		
	
		
			
				
					      e . preventDefault ( ) ;  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -1734,8 +1741,9 @@ 
			
		
	
		
			
				
					    show ( )  {  
			
		
	
		
			
				
					      const  self  =  this ;  
			
		
	
		
			
				
					      const  {  
			
		
	
		
			
				
					        element ,  isAnimating ,  hasFade ,  relatedTarget ,  
			
		
	
		
			
				
					        element ,  options ,  isAnimating ,  hasFade ,  relatedTarget ,  
			
		
	
		
			
				
					      }  =  self ;  
			
		
	
		
			
				
					      const  {  backdrop  }  =  options ;  
			
		
	
		
			
				
					      let  overlayDelay  =  0 ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					      if  ( hasClass ( element ,  showClass )  &&  ! isAnimating )  return ;  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -1744,8 +1752,6 @@ 
			
		
	
		
			
				
					      element . dispatchEvent ( showModalEvent ) ;  
			
		
	
		
			
				
					      if  ( showModalEvent . defaultPrevented )  return ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					      self . isAnimating  =  true ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					      // we elegantly hide any opened modal/offcanvas
  
			
		
	
		
			
				
					      const  currentOpen  =  getCurrentOpen ( ) ;  
			
		
	
		
			
				
					      if  ( currentOpen  &&  currentOpen  !==  element )  {  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -1755,18 +1761,24 @@ 
			
		
	
		
			
				
					        that . hide ( ) ;  
			
		
	
		
			
				
					      }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					      if  ( ! queryElement ( ` . ${ modalBackdropClass } ` ) )  {  
			
		
	
		
			
				
					        appendOverlay ( hasFade ) ;  
			
		
	
		
			
				
					      }  
			
		
	
		
			
				
					      overlayDelay  =  getElementTransitionDuration ( overlay ) ;  
			
		
	
		
			
				
					      self . isAnimating  =  true ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					      if  ( ! hasClass ( overlay ,  showClass ) )  {  
			
		
	
		
			
				
					        showOverlay ( ) ;  
			
		
	
		
			
				
					      }  
			
		
	
		
			
				
					      if  ( backdrop )  {  
			
		
	
		
			
				
					        if  ( ! currentOpen  &&  ! hasClass ( overlay ,  showClass ) )  {  
			
		
	
		
			
				
					          appendOverlay ( hasFade ,  1 ) ;  
			
		
	
		
			
				
					        }  else  {  
			
		
	
		
			
				
					          toggleOverlayType ( 1 ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					        overlayDelay  =  getElementTransitionDuration ( overlay ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					      if  ( ! currentOpen )  {  
			
		
	
		
			
				
					         if  ( ! hasClass ( overlay ,  showClass ) )  showOverlay ( ) ;  
			
		
	
		
			
				
					        setTimeout ( ( )  =>  beforeModalShow ( self ) ,  overlayDelay ) ;  
			
		
	
		
			
				
					      }  else  beforeModalShow ( self ) ;  
			
		
	
		
			
				
					      }  else  {  
			
		
	
		
			
				
					        beforeModalShow ( self ) ;  
			
		
	
		
			
				
					        if  ( currentOpen  &&  hasClass ( overlay ,  showClass ) )  {  
			
		
	
		
			
				
					          hideOverlay ( ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					      }  
			
		
	
		
			
				
					    }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    hide ( force )  {  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -1863,7 +1875,6 @@ 
			
		
	
		
			
				
					    const  {  element ,  options  }  =  self ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    if  ( ! options . scroll )  {  
			
		
	
		
			
				
					      addClass ( document . body ,  modalOpenClass ) ;  
			
		
	
		
			
				
					      document . body . style . overflow  =  'hidden' ;  
			
		
	
		
			
				
					      setOffCanvasScrollbar ( self ) ;  
			
		
	
		
			
				
					    }  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -1909,15 +1920,15 @@ 
			
		
	
		
			
				
					    const  self  =  element [ offcanvasComponent ] ;  
			
		
	
		
			
				
					    if  ( ! self )  return ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    const  {  options ,  open ,  triggers  }  =  self ;  
			
		
	
		
			
				
					    const  {  options ,  triggers  }  =  self ;  
			
		
	
		
			
				
					    const  {  target  }  =  e ;  
			
		
	
		
			
				
					    const  trigger  =  target . closest ( offcanvasToggleSelector ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    if  ( trigger  &&  trigger . tagName  ===  'A' )  e . preventDefault ( ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    if  ( open  &&  ( ( ! element . contains ( target )  &&  options . backdrop  
			
		
	
		
			
				
					    if  ( ( ! element . contains ( target )  &&  options . backdrop  
			
		
	
		
			
				
					      &&  ( ! trigger  ||  ( trigger  &&  ! triggers . includes ( trigger ) ) ) )  
			
		
	
		
			
				
					      ||  offCanvasDismiss . contains ( target ) ) ) {  
			
		
	
		
			
				
					      ||  offCanvasDismiss . contains ( target ) )  {  
			
		
	
		
			
				
					      self . relatedTarget  =  target  ===  offCanvasDismiss  ?  offCanvasDismiss  :  null ;  
			
		
	
		
			
				
					      self . hide ( ) ;  
			
		
	
		
			
				
					    }  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -1965,7 +1976,6 @@ 
			
		
	
		
			
				
					    element . removeAttribute ( ariaModal ) ;  
			
		
	
		
			
				
					    element . removeAttribute ( 'role' ) ;  
			
		
	
		
			
				
					    element . style . visibility  =  '' ;  
			
		
	
		
			
				
					    self . open  =  false ;  
			
		
	
		
			
				
					    self . isAnimating  =  false ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    if  ( triggers . length )  {  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -1979,7 +1989,6 @@ 
			
		
	
		
			
				
					      if  ( options . backdrop )  removeOverlay ( ) ;  
			
		
	
		
			
				
					      if  ( ! options . scroll )  {  
			
		
	
		
			
				
					        resetScrollbar ( ) ;  
			
		
	
		
			
				
					        removeClass ( document . body ,  modalOpenClass ) ;  
			
		
	
		
			
				
					      }  
			
		
	
		
			
				
					    }  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -2005,7 +2014,6 @@ 
			
		
	
		
			
				
					        . filter ( ( btn )  =>  getTargetElement ( btn )  ===  element ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					      // additional instance property
  
			
		
	
		
			
				
					      self . open  =  false ;  
			
		
	
		
			
				
					      self . isAnimating  =  false ;  
			
		
	
		
			
				
					      self . scrollbarWidth  =  measureScrollbar ( ) ;  
			
		
	
		
			
				
					
 
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -2017,7 +2025,8 @@ 
			
		
	
		
			
				
					    // ========================
  
			
		
	
		
			
				
					    toggle ( )  {  
			
		
	
		
			
				
					      const  self  =  this ;  
			
		
	
		
			
				
					      return  self . open  ?  self . hide ( )  :  self . show ( ) ;  
			
		
	
		
			
				
					      if  ( hasClass ( self . element ,  showClass ) )  self . hide ( ) ;  
			
		
	
		
			
				
					      else  self . show ( ) ;  
			
		
	
		
			
				
					    }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    show ( )  {  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -2027,7 +2036,7 @@ 
			
		
	
		
			
				
					      }  =  self ;  
			
		
	
		
			
				
					      let  overlayDelay  =  0 ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					      if  ( self . open ||  isAnimating )  return ;  
			
		
	
		
			
				
					      if  ( hasClass ( element ,  showClass ) ||  isAnimating )  return ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					      showOffcanvasEvent . relatedTarget  =  relatedTarget  ||  null ;  
			
		
	
		
			
				
					      element . dispatchEvent ( showOffcanvasEvent ) ;  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -2043,12 +2052,13 @@ 
			
		
	
		
			
				
					        that . hide ( ) ;  
			
		
	
		
			
				
					      }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					      self . open  =  true ;  
			
		
	
		
			
				
					      self . isAnimating  =  true ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					      if  ( options . backdrop )  {  
			
		
	
		
			
				
					        if  ( ! queryElement ( ` . ${ modalBackdropClass } ` ) )  {  
			
		
	
		
			
				
					        if  ( ! currentOpen )  {  
			
		
	
		
			
				
					          appendOverlay ( 1 ) ;  
			
		
	
		
			
				
					        }  else  {  
			
		
	
		
			
				
					          toggleOverlayType ( ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        overlayDelay  =  getElementTransitionDuration ( overlay ) ;  
			
		
	
	
		
			
				
					
						
						
						
							
								 
						
					 
				
				@ -2056,14 +2066,19 @@ 
			
		
	
		
			
				
					        if  ( ! hasClass ( overlay ,  showClass ) )  showOverlay ( ) ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					        setTimeout ( ( )  =>  beforeOffcanvasShow ( self ) ,  overlayDelay ) ;  
			
		
	
		
			
				
					      }  else  beforeOffcanvasShow ( self ) ;  
			
		
	
		
			
				
					      }  else  {  
			
		
	
		
			
				
					        beforeOffcanvasShow ( self ) ;  
			
		
	
		
			
				
					        if  ( currentOpen  &&  hasClass ( overlay ,  showClass ) )  {  
			
		
	
		
			
				
					          hideOverlay ( ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					      }  
			
		
	
		
			
				
					    }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    hide ( force )  {  
			
		
	
		
			
				
					      const  self  =  this ;  
			
		
	
		
			
				
					      const  {  element ,  isAnimating ,  relatedTarget  }  =  self ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					      if  ( ! self . open ||  isAnimating )  return ;  
			
		
	
		
			
				
					      if  ( ! hasClass ( element ,  showClass ) ||  isAnimating )  return ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					      hideOffcanvasEvent . relatedTarget  =  relatedTarget  ||  null ;  
			
		
	
		
			
				
					      element . dispatchEvent ( hideOffcanvasEvent ) ;  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -3483,7 +3498,7 @@ 
			
		
	
		
			
				
					    constructor :  Tooltip ,  
			
		
	
		
			
				
					  } ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  var  version  =  "4.0.4 " ;  
			
		
	
		
			
				
					  var  version  =  "4.0.6 " ;  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					  // import { alertInit } from '../components/alert-native.js';
  
			
		
	
		
			
				
					  // import { buttonInit } from '../components/button-native.js';