2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/ * !  
						 
					
						
							
								
									
										
										
										
											2015-01-20 06:55:25 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Bootstrap  v4 . 0.0 - alpha  ( http : //getbootstrap.com)
 
							 
						 
					
						
							
								
									
										
										
										
											2015-01-02 04:02:02 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Copyright  2011 - 2015  Twitter ,  Inc . 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 *  Licensed  under  MIT  ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-10-23 12:39:51 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  ( typeof  jQuery  ===  'undefined' )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  throw  new  Error ( 'Bootstrap\'s JavaScript requires jQuery' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								+ function  ( $ )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  version  =  $ . fn . jquery . split ( ' ' ) [ 0 ] . split ( '.' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if  ( ( version [ 0 ]  <  2  &&  version [ 1 ]  <  9 )  ||  ( version [ 0 ]  ==  1  &&  version [ 1 ]  ==  9  &&  version [ 2 ]  <  1 ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    throw  new  Error ( 'Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ( jQuery ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								+ function  ( $ )  {  
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/ * *  
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Bootstrap  ( v4 . 0.0 ) :  util . js 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Licensed  under  MIT  ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								'use strict' ;  
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								var  _get  =  function  get ( _x ,  _x2 ,  _x3 )  {  var  _again  =  true ;  _function :  while  ( _again )  {  var  object  =  _x ,  property  =  _x2 ,  receiver  =  _x3 ;  desc  =  parent  =  getter  =  undefined ;  _again  =  false ;  if  ( object  ===  null )  object  =  Function . prototype ;  var  desc  =  Object . getOwnPropertyDescriptor ( object ,  property ) ;  if  ( desc  ===  undefined )  {  var  parent  =  Object . getPrototypeOf ( object ) ;  if  ( parent  ===  null )  {  return  undefined ;  }  else  {  _x  =  parent ;  _x2  =  property ;  _x3  =  receiver ;  _again  =  true ;  continue  _function ;  }  }  else  if  ( 'value'  in  desc )  {  return  desc . value ;  }  else  {  var  getter  =  desc . get ;  if  ( getter  ===  undefined )  {  return  undefined ;  }  return  getter . call ( receiver ) ;  }  }  } ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								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 ;  } ;  } ) ( ) ;  
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  _inherits ( subClass ,  superClass )  {  if  ( typeof  superClass  !==  'function'  &&  superClass  !==  null )  {  throw  new  TypeError ( 'Super expression must either be null or a function, not '  +  typeof  superClass ) ;  }  subClass . prototype  =  Object . create ( superClass  &&  superClass . prototype ,  {  constructor :  {  value :  subClass ,  enumerable :  false ,  writable :  true ,  configurable :  true  }  } ) ;  if  ( superClass )  Object . setPrototypeOf  ?  Object . setPrototypeOf ( subClass ,  superClass )  :  subClass . _ _proto _ _  =  superClass ;  }  
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function  _classCallCheck ( instance ,  Constructor )  {  if  ( ! ( instance  instanceof  Constructor ) )  {  throw  new  TypeError ( 'Cannot call a class as a function' ) ;  }  }  
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								var  Util  =  ( function  ( $ )  {  
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  Private  TransitionEnd  Helpers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  var  transition  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  var  TransitionEndEvent  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    WebkitTransition :  'webkitTransitionEnd' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    MozTransition :  'transitionend' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    OTransition :  'oTransitionEnd otransitionend' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    transition :  'transitionend' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  // shoutout AngusCroll (https://goo.gl/pxwQGp)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  function  toType ( obj )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  ( { } ) . toString . call ( obj ) . match ( /\s([a-zA-Z]+)/ ) [ 1 ] . toLowerCase ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  function  isElement ( obj )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  ( obj [ 0 ]  ||  obj ) . nodeType ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  function  getSpecialTransitionEndEvent ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      bindType :  transition . end , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      delegateType :  transition . end , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      handle :  function  handle ( event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $ ( event . target ) . is ( this ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return  event . handleObj . handler . apply ( this ,  arguments ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  function  transitionEndTest ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( window . QUnit )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    var  el  =  document . createElement ( 'bootstrap' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    for  ( var  _name  in  TransitionEndEvent )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if  ( el . style [ _name ]  !==  undefined )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  {  end :  TransitionEndEvent [ _name ]  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  function  transitionEndEmulator ( duration )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    var  _this  =  this ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    var  called  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    $ ( this ) . one ( Util . TRANSITION _END ,  function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      called  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    setTimeout ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if  ( ! called )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Util . triggerTransitionEnd ( _this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  duration ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  this ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  function  setTransitionEndSupport ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    transition  =  transitionEndTest ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    $ . fn . emulateTransitionEnd  =  transitionEndEmulator ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( Util . supportsTransitionEnd ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      $ . event . special [ Util . TRANSITION _END ]  =  getSpecialTransitionEndEvent ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  Public  Util  Api 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  var  Util  =  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    TRANSITION _END :  'bsTransitionEnd' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    getUID :  function  getUID ( prefix )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      do  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        prefix  +=  ~  ~ ( Math . random ( )  *  1000000 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      }  while  ( document . getElementById ( prefix ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      return  prefix ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    getSelectorFromElement :  function  getSelectorFromElement ( element )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      var  selector  =  element . getAttribute ( 'data-target' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      if  ( ! selector )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        selector  =  element . getAttribute ( 'href' )  ||  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        selector  =  /^#[a-z]/i . test ( selector )  ?  selector  :  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      return  selector ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    reflow :  function  reflow ( element )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      new  Function ( 'bs' ,  'return bs' ) ( element . offsetHeight ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    triggerTransitionEnd :  function  triggerTransitionEnd ( element )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      $ ( element ) . trigger ( transition . end ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    supportsTransitionEnd :  function  supportsTransitionEnd ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      return  Boolean ( transition ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    typeCheckConfig :  function  typeCheckConfig ( componentName ,  config ,  configTypes )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      for  ( var  property  in  configTypes )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( configTypes . hasOwnProperty ( property ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  expectedTypes  =  configTypes [ property ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  value  =  config [ property ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  valueType  =  undefined ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( value  &&  isElement ( value ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            valueType  =  'element' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            valueType  =  toType ( value ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( ! new  RegExp ( expectedTypes ) . test ( valueType ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            throw  new  Error ( componentName . toUpperCase ( )  +  ': '  +  ( 'Option "'  +  property  +  '" provided type "'  +  valueType  +  '" ' )  +  ( 'but expected type "'  +  expectedTypes  +  '".' ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  setTransitionEndSupport ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  return  Util ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ) ( jQuery ) ;  
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/ * *  
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Bootstrap  ( v4 . 0.0 ) :  alert . js 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Licensed  under  MIT  ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								var  Alert  =  ( function  ( $ )  {  
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  Constants 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  var  NAME  =  'alert' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  VERSION  =  '4.0.0' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DATA _KEY  =  'bs.alert' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  EVENT _KEY  =  '.'  +  DATA _KEY ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DATA _API _KEY  =  '.data-api' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  JQUERY _NO _CONFLICT  =  $ . fn [ NAME ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  TRANSITION _DURATION  =  150 ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  var  Selector  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    DISMISS :  '[data-dismiss="alert"]' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  var  Event  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CLOSE :  'close'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CLOSED :  'closed'  +  EVENT _KEY , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    CLICK _DATA _API :  'click'  +  EVENT _KEY  +  DATA _API _KEY 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  var  ClassName  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ALERT :  'alert' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    FADE :  'fade' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    IN :  'in' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  Class  Definition 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  var  Alert  =  ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  Alert ( element )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      _classCallCheck ( this ,  Alert ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      this . _element  =  element ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  Data  Api  implementation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // getters
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    _createClass ( Alert ,  [ { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'close' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // public
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  close ( element )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        element  =  element  ||  this . _element ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  rootElement  =  this . _getRootElement ( element ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  customEvent  =  this . _triggerCloseEvent ( rootElement ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( customEvent . isDefaultPrevented ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _removeElement ( rootElement ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'dispose' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  dispose ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ . removeData ( this . _element ,  DATA _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _element  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // private
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_getRootElement' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  _getRootElement ( element )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  selector  =  Util . getSelectorFromElement ( element ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  parent  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( selector )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          parent  =  $ ( selector ) [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! parent )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          parent  =  $ ( element ) . closest ( '.'  +  ClassName . ALERT ) [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  parent ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_triggerCloseEvent' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _triggerCloseEvent ( element )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  closeEvent  =  $ . Event ( Event . CLOSE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( element ) . trigger ( closeEvent ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  closeEvent ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_removeElement' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _removeElement ( element )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ ( element ) . removeClass ( ClassName . IN ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( ! Util . supportsTransitionEnd ( )  ||  ! $ ( element ) . hasClass ( ClassName . FADE ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . _destroyElement ( element ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 09:45:12 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( element ) . one ( Util . TRANSITION _END ,  $ . proxy ( this . _destroyElement ,  this ,  element ) ) . emulateTransitionEnd ( TRANSITION _DURATION ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_destroyElement' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _destroyElement ( element )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ ( element ) . detach ( ) . trigger ( Event . CLOSED ) . remove ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // static
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ] ,  [ { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_jQueryInterface' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  _jQueryInterface ( config )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  this . each ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  $element  =  $ ( this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  data  =  $element . data ( DATA _KEY ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( ! data )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            data  =  new  Alert ( this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $element . data ( DATA _KEY ,  data ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( config  ===  'close' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            data [ config ] ( this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_handleDismiss' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _handleDismiss ( alertInstance )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  function  ( event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            event . preventDefault ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          alertInstance . close ( this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'VERSION' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  VERSION ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ] ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  Alert ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  $ ( document ) . on ( Event . CLICK _DATA _API ,  Selector . DISMISS ,  Alert . _handleDismiss ( new  Alert ( ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  jQuery 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  $ . fn [ NAME ]  =  Alert . _jQueryInterface ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $ . fn [ NAME ] . Constructor  =  Alert ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $ . fn [ NAME ] . noConflict  =  function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $ . fn [ NAME ]  =  JQUERY _NO _CONFLICT ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  Alert . _jQueryInterface ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  return  Alert ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ) ( jQuery ) ;  
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/ * *  
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Bootstrap  ( v4 . 0.0 ) :  button . js 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Licensed  under  MIT  ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var  Button  =  ( function  ( $ )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  Constants 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  NAME  =  'button' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  VERSION  =  '4.0.0' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DATA _KEY  =  'bs.button' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  EVENT _KEY  =  '.'  +  DATA _KEY ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DATA _API _KEY  =  '.data-api' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  JQUERY _NO _CONFLICT  =  $ . fn [ NAME ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  ClassName  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ACTIVE :  'active' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    BUTTON :  'btn' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    FOCUS :  'focus' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Selector  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    DATA _TOGGLE _CARROT :  '[data-toggle^="button"]' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    DATA _TOGGLE :  '[data-toggle="buttons"]' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    INPUT :  'input' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ACTIVE :  '.active' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    BUTTON :  '.btn' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Event  =  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    CLICK _DATA _API :  'click'  +  EVENT _KEY  +  DATA _API _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    FOCUS _BLUR _DATA _API :  'focus'  +  EVENT _KEY  +  DATA _API _KEY  +  ' '  +  ( 'blur'  +  EVENT _KEY  +  DATA _API _KEY ) 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  Class  Definition 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Button  =  ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  Button ( element )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      _classCallCheck ( this ,  Button ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _element  =  element ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  Data  Api  implementation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // getters
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    _createClass ( Button ,  [ { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'toggle' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      // public
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  toggle ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  triggerChangeEvent  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  rootElement  =  $ ( this . _element ) . closest ( Selector . DATA _TOGGLE ) [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( rootElement )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  input  =  $ ( this . _element ) . find ( Selector . INPUT ) [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( input )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( input . type  ===  'radio' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              if  ( input . checked  &&  $ ( this . _element ) . hasClass ( ClassName . ACTIVE ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                triggerChangeEvent  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                var  activeElement  =  $ ( rootElement ) . find ( Selector . ACTIVE ) [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                if  ( activeElement )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                  $ ( activeElement ) . removeClass ( ClassName . ACTIVE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( triggerChangeEvent )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              input . checked  =  ! $ ( this . _element ) . hasClass ( ClassName . ACTIVE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              $ ( this . _element ) . trigger ( 'change' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . _element . setAttribute ( 'aria-pressed' ,  ! $ ( this . _element ) . hasClass ( ClassName . ACTIVE ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( triggerChangeEvent )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( this . _element ) . toggleClass ( ClassName . ACTIVE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'dispose' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  dispose ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ . removeData ( this . _element ,  DATA _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _element  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // static
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ] ,  [ { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_jQueryInterface' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  _jQueryInterface ( config )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  this . each ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  data  =  $ ( this ) . data ( DATA _KEY ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( ! data )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            data  =  new  Button ( this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ ( this ) . data ( DATA _KEY ,  data ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( config  ===  'toggle' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            data [ config ] ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'VERSION' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  VERSION ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ] ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  Button ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  $ ( document ) . on ( Event . CLICK _DATA _API ,  Selector . DATA _TOGGLE _CARROT ,  function  ( event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    event . preventDefault ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    var  button  =  event . target ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( ! $ ( button ) . hasClass ( ClassName . BUTTON ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      button  =  $ ( button ) . closest ( Selector . BUTTON ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Button . _jQueryInterface . call ( $ ( button ) ,  'toggle' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) . on ( Event . FOCUS _BLUR _DATA _API ,  Selector . DATA _TOGGLE _CARROT ,  function  ( event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    var  button  =  $ ( event . target ) . closest ( Selector . BUTTON ) [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $ ( button ) . toggleClass ( ClassName . FOCUS ,  /^focus(in)?$/ . test ( event . type ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  jQuery 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  $ . fn [ NAME ]  =  Button . _jQueryInterface ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $ . fn [ NAME ] . Constructor  =  Button ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $ . fn [ NAME ] . noConflict  =  function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $ . fn [ NAME ]  =  JQUERY _NO _CONFLICT ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  Button . _jQueryInterface ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  return  Button ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ) ( jQuery ) ;  
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/ * *  
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Bootstrap  ( v4 . 0.0 ) :  carousel . js 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Licensed  under  MIT  ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var  Carousel  =  ( function  ( $ )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  Constants 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  NAME  =  'carousel' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  VERSION  =  '4.0.0' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DATA _KEY  =  'bs.carousel' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  EVENT _KEY  =  '.'  +  DATA _KEY ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DATA _API _KEY  =  '.data-api' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  JQUERY _NO _CONFLICT  =  $ . fn [ NAME ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  TRANSITION _DURATION  =  600 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Default  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    interval :  5000 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    keyboard :  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    slide :  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    pause :  'hover' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    wrap :  true 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DefaultType  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    interval :  '(number|boolean)' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    keyboard :  'boolean' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    slide :  '(boolean|string)' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    pause :  '(string|boolean)' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    wrap :  'boolean' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Direction  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    NEXT :  'next' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    PREVIOUS :  'prev' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Event  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SLIDE :  'slide'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SLID :  'slid'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    KEYDOWN :  'keydown'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    MOUSEENTER :  'mouseenter'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    MOUSELEAVE :  'mouseleave'  +  EVENT _KEY , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    LOAD _DATA _API :  'load'  +  EVENT _KEY  +  DATA _API _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CLICK _DATA _API :  'click'  +  EVENT _KEY  +  DATA _API _KEY 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  ClassName  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CAROUSEL :  'carousel' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ACTIVE :  'active' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SLIDE :  'slide' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    RIGHT :  'right' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    LEFT :  'left' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ITEM :  'carousel-item' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Selector  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ACTIVE :  '.active' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ACTIVE _ITEM :  '.active.carousel-item' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ITEM :  '.carousel-item' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    NEXT _PREV :  '.next, .prev' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    INDICATORS :  '.carousel-indicators' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    DATA _SLIDE :  '[data-slide], [data-slide-to]' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    DATA _RIDE :  '[data-ride="carousel"]' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  Class  Definition 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Carousel  =  ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  Carousel ( element ,  config )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      _classCallCheck ( this ,  Carousel ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _items  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _interval  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _activeElement  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _isPaused  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _isSliding  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _config  =  this . _getConfig ( config ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _element  =  $ ( element ) [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _indicatorsElement  =  $ ( this . _element ) . find ( Selector . INDICATORS ) [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _addEventListeners ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  Data  Api  implementation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // getters
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    _createClass ( Carousel ,  [ { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'next' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      // public
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  next ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( ! this . _isSliding )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . _slide ( Direction . NEXT ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'prev' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  prev ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( ! this . _isSliding )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . _slide ( Direction . PREVIOUS ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'pause' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  pause ( event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( ! event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . _isPaused  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( $ ( this . _element ) . find ( Selector . NEXT _PREV ) [ 0 ]  &&  Util . supportsTransitionEnd ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Util . triggerTransitionEnd ( this . _element ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . cycle ( true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        clearInterval ( this . _interval ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _interval  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'cycle' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  cycle ( event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( ! event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . _isPaused  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( this . _interval )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          clearInterval ( this . _interval ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . _interval  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( this . _config . interval  &&  ! this . _isPaused )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . _interval  =  setInterval ( $ . proxy ( this . next ,  this ) ,  this . _config . interval ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'to' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  to ( index )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  _this2  =  this ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _activeElement  =  $ ( this . _element ) . find ( Selector . ACTIVE _ITEM ) [ 0 ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  activeIndex  =  this . _getItemIndex ( this . _activeElement ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( index  >  this . _items . length  -  1  ||  index  <  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( this . _isSliding )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( this . _element ) . one ( Event . SLID ,  function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  _this2 . to ( index ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( activeIndex  ===  index )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          this . pause ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . cycle ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  direction  =  index  >  activeIndex  ?  Direction . NEXT  :  Direction . PREVIOUS ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _slide ( direction ,  this . _items [ index ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'dispose' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  dispose ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ ( this . _element ) . off ( EVENT _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ . removeData ( this . _element ,  DATA _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _items  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _config  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _element  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _interval  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _isPaused  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _isSliding  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _activeElement  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _indicatorsElement  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // private
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_getConfig' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  _getConfig ( config )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        config  =  $ . extend ( { } ,  Default ,  config ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Util . typeCheckConfig ( NAME ,  config ,  DefaultType ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  config ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_addEventListeners' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _addEventListeners ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( this . _config . keyboard )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( this . _element ) . on ( Event . KEYDOWN ,  $ . proxy ( this . _keydown ,  this ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( this . _config . pause  ===  'hover'  &&  ! ( 'ontouchstart'  in  document . documentElement ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          $ ( this . _element ) . on ( Event . MOUSEENTER ,  $ . proxy ( this . pause ,  this ) ) . on ( Event . MOUSELEAVE ,  $ . proxy ( this . cycle ,  this ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_keydown' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _keydown ( event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        event . preventDefault ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( /input|textarea/i . test ( event . target . tagName ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        switch  ( event . which )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          case  37 : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this . prev ( ) ; break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          case  39 : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this . next ( ) ; break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          default : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_getItemIndex' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _getItemIndex ( element )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _items  =  $ . makeArray ( $ ( element ) . parent ( ) . find ( Selector . ITEM ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  this . _items . indexOf ( element ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_getItemByDirection' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _getItemByDirection ( direction ,  activeElement )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  isNextDirection  =  direction  ===  Direction . NEXT ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  isPrevDirection  =  direction  ===  Direction . PREVIOUS ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  activeIndex  =  this . _getItemIndex ( activeElement ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  lastItemIndex  =  this . _items . length  -  1 ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  isGoingToWrap  =  isPrevDirection  &&  activeIndex  ===  0  ||  isNextDirection  &&  activeIndex  ===  lastItemIndex ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( isGoingToWrap  &&  ! this . _config . wrap )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return  activeElement ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  delta  =  direction  ===  Direction . PREVIOUS  ?  - 1  :  1 ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  itemIndex  =  ( activeIndex  +  delta )  %  this . _items . length ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  itemIndex  ===  - 1  ?  this . _items [ this . _items . length  -  1 ]  :  this . _items [ itemIndex ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_triggerSlideEvent' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _triggerSlideEvent ( relatedTarget ,  directionalClassname )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  slideEvent  =  $ . Event ( Event . SLIDE ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          relatedTarget :  relatedTarget , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          direction :  directionalClassname 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( this . _element ) . trigger ( slideEvent ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  slideEvent ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_setActiveIndicatorElement' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _setActiveIndicatorElement ( element )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( this . _indicatorsElement )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( this . _indicatorsElement ) . find ( Selector . ACTIVE ) . removeClass ( ClassName . ACTIVE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          var  nextIndicator  =  this . _indicatorsElement . children [ this . _getItemIndex ( element ) ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( nextIndicator )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ ( nextIndicator ) . addClass ( ClassName . ACTIVE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_slide' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _slide ( direction ,  element )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  _this3  =  this ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  activeElement  =  $ ( this . _element ) . find ( Selector . ACTIVE _ITEM ) [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  nextElement  =  element  ||  activeElement  &&  this . _getItemByDirection ( direction ,  activeElement ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  isCycling  =  Boolean ( this . _interval ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  directionalClassName  =  direction  ===  Direction . NEXT  ?  ClassName . LEFT  :  ClassName . RIGHT ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( nextElement  &&  $ ( nextElement ) . hasClass ( ClassName . ACTIVE ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . _isSliding  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  slideEvent  =  this . _triggerSlideEvent ( nextElement ,  directionalClassName ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( slideEvent . isDefaultPrevented ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! activeElement  ||  ! nextElement )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          // some weirdness is happening, so we bail
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _isSliding  =  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( isCycling )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . pause ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _setActiveIndicatorElement ( nextElement ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  slidEvent  =  $ . Event ( Event . SLID ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          relatedTarget :  nextElement , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          direction :  directionalClassName 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( Util . supportsTransitionEnd ( )  &&  $ ( this . _element ) . hasClass ( ClassName . SLIDE ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          $ ( nextElement ) . addClass ( direction ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          Util . reflow ( nextElement ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          $ ( activeElement ) . addClass ( directionalClassName ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( nextElement ) . addClass ( directionalClassName ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          $ ( activeElement ) . one ( Util . TRANSITION _END ,  function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ ( nextElement ) . removeClass ( directionalClassName ) . removeClass ( direction ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $ ( nextElement ) . addClass ( ClassName . ACTIVE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $ ( activeElement ) . removeClass ( ClassName . ACTIVE ) . removeClass ( direction ) . removeClass ( directionalClassName ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            _this3 . _isSliding  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            setTimeout ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              return  $ ( _this3 . _element ) . trigger ( slidEvent ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } ) . emulateTransitionEnd ( TRANSITION _DURATION ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( activeElement ) . removeClass ( ClassName . ACTIVE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( nextElement ) . addClass ( ClassName . ACTIVE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          this . _isSliding  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( this . _element ) . trigger ( slidEvent ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( isCycling )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . cycle ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // static
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ] ,  [ { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_jQueryInterface' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  _jQueryInterface ( config )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  this . each ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  data  =  $ ( this ) . data ( DATA _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  _config  =  $ . extend ( { } ,  Default ,  $ ( this ) . data ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( typeof  config  ===  'object' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ . extend ( _config ,  config ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          var  action  =  typeof  config  ===  'string'  ?  config  :  _config . slide ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( ! data )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            data  =  new  Carousel ( this ,  _config ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ ( this ) . data ( DATA _KEY ,  data ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( typeof  config  ===  'number' )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            data . to ( config ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          }  else  if  ( action )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            data [ action ] ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          }  else  if  ( _config . interval )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            data . pause ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            data . cycle ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_dataApiClickHandler' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _dataApiClickHandler ( event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  selector  =  Util . getSelectorFromElement ( this ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! selector )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  target  =  $ ( selector ) [ 0 ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! target  ||  ! $ ( target ) . hasClass ( ClassName . CAROUSEL ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  config  =  $ . extend ( { } ,  $ ( target ) . data ( ) ,  $ ( this ) . data ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  slideIndex  =  this . getAttribute ( 'data-slide-to' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( slideIndex )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          config . interval  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        Carousel . _jQueryInterface . call ( $ ( target ) ,  config ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( slideIndex )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( target ) . data ( DATA _KEY ) . to ( slideIndex ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        event . preventDefault ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'VERSION' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  VERSION ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'Default' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  Default ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ] ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  Carousel ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  $ ( document ) . on ( Event . CLICK _DATA _API ,  Selector . DATA _SLIDE ,  Carousel . _dataApiClickHandler ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  $ ( window ) . on ( Event . LOAD _DATA _API ,  function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $ ( Selector . DATA _RIDE ) . each ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      var  $carousel  =  $ ( this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      Carousel . _jQueryInterface . call ( $carousel ,  $carousel . data ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  jQuery 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  $ . fn [ NAME ]  =  Carousel . _jQueryInterface ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $ . fn [ NAME ] . Constructor  =  Carousel ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $ . fn [ NAME ] . noConflict  =  function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $ . fn [ NAME ]  =  JQUERY _NO _CONFLICT ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  Carousel . _jQueryInterface ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  return  Carousel ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ) ( jQuery ) ;  
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/ * *  
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Bootstrap  ( v4 . 0.0 ) :  collapse . js 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Licensed  under  MIT  ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var  Collapse  =  ( function  ( $ )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  Constants 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  NAME  =  'collapse' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  VERSION  =  '4.0.0' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DATA _KEY  =  'bs.collapse' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  EVENT _KEY  =  '.'  +  DATA _KEY ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DATA _API _KEY  =  '.data-api' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  JQUERY _NO _CONFLICT  =  $ . fn [ NAME ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  TRANSITION _DURATION  =  600 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Default  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    toggle :  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    parent :  '' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DefaultType  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    toggle :  'boolean' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    parent :  'string' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Event  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SHOW :  'show'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SHOWN :  'shown'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    HIDE :  'hide'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    HIDDEN :  'hidden'  +  EVENT _KEY , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    CLICK _DATA _API :  'click'  +  EVENT _KEY  +  DATA _API _KEY 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  ClassName  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    IN :  'in' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    COLLAPSE :  'collapse' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    COLLAPSING :  'collapsing' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    COLLAPSED :  'collapsed' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Dimension  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    WIDTH :  'width' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    HEIGHT :  'height' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Selector  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ACTIVES :  '.panel > .in, .panel > .collapsing' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    DATA _TOGGLE :  '[data-toggle="collapse"]' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  Class  Definition 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Collapse  =  ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  Collapse ( element ,  config )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      _classCallCheck ( this ,  Collapse ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _isTransitioning  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _element  =  element ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _config  =  this . _getConfig ( config ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _triggerArray  =  $ . makeArray ( $ ( '[data-toggle="collapse"][href="#'  +  element . id  +  '"],'  +  ( '[data-toggle="collapse"][data-target="#'  +  element . id  +  '"]' ) ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _parent  =  this . _config . parent  ?  this . _getParent ( )  :  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if  ( ! this . _config . parent )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _addAriaAndCollapsedClass ( this . _element ,  this . _triggerArray ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      if  ( this . _config . toggle )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . toggle ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  Data  Api  implementation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // getters
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    _createClass ( Collapse ,  [ { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'toggle' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // public
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  toggle ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $ ( this . _element ) . hasClass ( ClassName . IN ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . hide ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . show ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'show' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  show ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  _this4  =  this ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( this . _isTransitioning  ||  $ ( this . _element ) . hasClass ( ClassName . IN ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  actives  =  undefined ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  activesData  =  undefined ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( this . _parent )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          actives  =  $ . makeArray ( $ ( Selector . ACTIVES ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( ! actives . length )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            actives  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( actives )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          activesData  =  $ ( actives ) . data ( DATA _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( activesData  &&  activesData . _isTransitioning )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  startEvent  =  $ . Event ( Event . SHOW ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ ( this . _element ) . trigger ( startEvent ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( startEvent . isDefaultPrevented ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( actives )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Collapse . _jQueryInterface . call ( $ ( actives ) ,  'hide' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( ! activesData )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ ( actives ) . data ( DATA _KEY ,  null ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  dimension  =  this . _getDimension ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( this . _element ) . removeClass ( ClassName . COLLAPSE ) . addClass ( ClassName . COLLAPSING ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _element . style [ dimension ]  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _element . setAttribute ( 'aria-expanded' ,  true ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( this . _triggerArray . length )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( this . _triggerArray ) . removeClass ( ClassName . COLLAPSED ) . attr ( 'aria-expanded' ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . setTransitioning ( true ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  complete  =  function  complete ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( _this4 . _element ) . removeClass ( ClassName . COLLAPSING ) . addClass ( ClassName . COLLAPSE ) . addClass ( ClassName . IN ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          _this4 . _element . style [ dimension ]  =  '' ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          _this4 . setTransitioning ( false ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          $ ( _this4 . _element ) . trigger ( Event . SHOWN ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! Util . supportsTransitionEnd ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          complete ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  capitalizedDimension  =  dimension [ 0 ] . toUpperCase ( )  +  dimension . slice ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  scrollSize  =  'scroll'  +  capitalizedDimension ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( this . _element ) . one ( Util . TRANSITION _END ,  complete ) . emulateTransitionEnd ( TRANSITION _DURATION ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _element . style [ dimension ]  =  this . _element [ scrollSize ]  +  'px' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'hide' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  hide ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  _this5  =  this ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( this . _isTransitioning  ||  ! $ ( this . _element ) . hasClass ( ClassName . IN ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  startEvent  =  $ . Event ( Event . HIDE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ ( this . _element ) . trigger ( startEvent ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( startEvent . isDefaultPrevented ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  dimension  =  this . _getDimension ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  offsetDimension  =  dimension  ===  Dimension . WIDTH  ?  'offsetWidth'  :  'offsetHeight' ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _element . style [ dimension ]  =  this . _element [ offsetDimension ]  +  'px' ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        Util . reflow ( this . _element ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( this . _element ) . addClass ( ClassName . COLLAPSING ) . removeClass ( ClassName . COLLAPSE ) . removeClass ( ClassName . IN ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _element . setAttribute ( 'aria-expanded' ,  false ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( this . _triggerArray . length )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( this . _triggerArray ) . addClass ( ClassName . COLLAPSED ) . attr ( 'aria-expanded' ,  false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . setTransitioning ( true ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  complete  =  function  complete ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          _this5 . setTransitioning ( false ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( _this5 . _element ) . removeClass ( ClassName . COLLAPSING ) . addClass ( ClassName . COLLAPSE ) . trigger ( Event . HIDDEN ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _element . style [ dimension ]  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! Util . supportsTransitionEnd ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          complete ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( this . _element ) . one ( Util . TRANSITION _END ,  complete ) . emulateTransitionEnd ( TRANSITION _DURATION ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'setTransitioning' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  setTransitioning ( isTransitioning )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _isTransitioning  =  isTransitioning ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'dispose' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  dispose ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ . removeData ( this . _element ,  DATA _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _config  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _parent  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _element  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _triggerArray  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _isTransitioning  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // private
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_getConfig' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  _getConfig ( config )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        config  =  $ . extend ( { } ,  Default ,  config ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        config . toggle  =  Boolean ( config . toggle ) ;  // coerce string values
 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        Util . typeCheckConfig ( NAME ,  config ,  DefaultType ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  config ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_getDimension' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _getDimension ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  hasWidth  =  $ ( this . _element ) . hasClass ( Dimension . WIDTH ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  hasWidth  ?  Dimension . WIDTH  :  Dimension . HEIGHT ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_getParent' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _getParent ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  _this6  =  this ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  parent  =  $ ( this . _config . parent ) [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  selector  =  '[data-toggle="collapse"][data-parent="'  +  this . _config . parent  +  '"]' ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( parent ) . find ( selector ) . each ( function  ( i ,  element )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          _this6 . _addAriaAndCollapsedClass ( Collapse . _getTargetFromElement ( element ) ,  [ element ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  parent ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_addAriaAndCollapsedClass' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _addAriaAndCollapsedClass ( element ,  triggerArray )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( element )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  isOpen  =  $ ( element ) . hasClass ( ClassName . IN ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          element . setAttribute ( 'aria-expanded' ,  isOpen ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( triggerArray . length )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ ( triggerArray ) . toggleClass ( ClassName . COLLAPSED ,  ! isOpen ) . attr ( 'aria-expanded' ,  isOpen ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // static
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ] ,  [ { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_getTargetFromElement' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  _getTargetFromElement ( element )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  selector  =  Util . getSelectorFromElement ( element ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  selector  ?  $ ( selector ) [ 0 ]  :  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_jQueryInterface' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _jQueryInterface ( config )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  this . each ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  $this  =  $ ( this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  data  =  $this . data ( DATA _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  _config  =  $ . extend ( { } ,  Default ,  $this . data ( ) ,  typeof  config  ===  'object'  &&  config ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( ! data  &&  _config . toggle  &&  /show|hide/ . test ( config ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            _config . toggle  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( ! data )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            data  =  new  Collapse ( this ,  _config ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $this . data ( DATA _KEY ,  data ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( typeof  config  ===  'string' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            data [ config ] ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'VERSION' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  VERSION ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'Default' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  Default ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ] ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  Collapse ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  $ ( document ) . on ( Event . CLICK _DATA _API ,  Selector . DATA _TOGGLE ,  function  ( event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    event . preventDefault ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    var  target  =  Collapse . _getTargetFromElement ( this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    var  data  =  $ ( target ) . data ( DATA _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    var  config  =  data  ?  'toggle'  :  $ ( this ) . data ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Collapse . _jQueryInterface . call ( $ ( target ) ,  config ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  jQuery 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  $ . fn [ NAME ]  =  Collapse . _jQueryInterface ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $ . fn [ NAME ] . Constructor  =  Collapse ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $ . fn [ NAME ] . noConflict  =  function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $ . fn [ NAME ]  =  JQUERY _NO _CONFLICT ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  Collapse . _jQueryInterface ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  return  Collapse ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ) ( jQuery ) ;  
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/ * *  
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Bootstrap  ( v4 . 0.0 ) :  dropdown . js 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Licensed  under  MIT  ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var  Dropdown  =  ( function  ( $ )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  Constants 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  NAME  =  'dropdown' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  VERSION  =  '4.0.0' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DATA _KEY  =  'bs.dropdown' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  EVENT _KEY  =  '.'  +  DATA _KEY ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DATA _API _KEY  =  '.data-api' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  JQUERY _NO _CONFLICT  =  $ . fn [ NAME ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Event  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    HIDE :  'hide'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    HIDDEN :  'hidden'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SHOW :  'show'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SHOWN :  'shown'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CLICK :  'click'  +  EVENT _KEY , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    CLICK _DATA _API :  'click'  +  EVENT _KEY  +  DATA _API _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    KEYDOWN _DATA _API :  'keydown'  +  EVENT _KEY  +  DATA _API _KEY 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  ClassName  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    BACKDROP :  'dropdown-backdrop' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    DISABLED :  'disabled' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    OPEN :  'open' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Selector  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    BACKDROP :  '.dropdown-backdrop' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    DATA _TOGGLE :  '[data-toggle="dropdown"]' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    FORM _CHILD :  '.dropdown form' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ROLE _MENU :  '[role="menu"]' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ROLE _LISTBOX :  '[role="listbox"]' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    NAVBAR _NAV :  '.navbar-nav' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    VISIBLE _ITEMS :  '[role="menu"] li:not(.disabled) a, '  +  '[role="listbox"] li:not(.disabled) a' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  Class  Definition 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Dropdown  =  ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  Dropdown ( element )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      _classCallCheck ( this ,  Dropdown ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _element  =  element ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _addEventListeners ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  Data  Api  implementation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // getters
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    _createClass ( Dropdown ,  [ { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'toggle' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      // public
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  toggle ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( this . disabled  ||  $ ( this ) . hasClass ( ClassName . DISABLED ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          return  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  parent  =  Dropdown . _getParentFromElement ( this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  isActive  =  $ ( parent ) . hasClass ( ClassName . OPEN ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        Dropdown . _clearMenus ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( isActive )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( 'ontouchstart'  in  document . documentElement  &&  ! $ ( parent ) . closest ( Selector . NAVBAR _NAV ) . length )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          // if mobile we use a backdrop because click events don't delegate
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  dropdown  =  document . createElement ( 'div' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          dropdown . className  =  ClassName . BACKDROP ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( dropdown ) . insertBefore ( this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( dropdown ) . on ( 'click' ,  Dropdown . _clearMenus ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  relatedTarget  =  {  relatedTarget :  this  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  showEvent  =  $ . Event ( Event . SHOW ,  relatedTarget ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( parent ) . trigger ( showEvent ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( showEvent . isDefaultPrevented ( ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          return  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . focus ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . setAttribute ( 'aria-expanded' ,  'true' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( parent ) . toggleClass ( ClassName . OPEN ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-18 02:18:35 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( parent ) . trigger ( $ . Event ( Event . SHOWN ,  relatedTarget ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'dispose' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  dispose ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ . removeData ( this . _element ,  DATA _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ ( this . _element ) . off ( EVENT _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _element  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // private
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_addEventListeners' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  _addEventListeners ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ ( this . _element ) . on ( Event . CLICK ,  this . toggle ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // static
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ] ,  [ { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_jQueryInterface' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  _jQueryInterface ( config )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  this . each ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  data  =  $ ( this ) . data ( DATA _KEY ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( ! data )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ ( this ) . data ( DATA _KEY ,  data  =  new  Dropdown ( this ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( typeof  config  ===  'string' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            data [ config ] . call ( this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_clearMenus' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _clearMenus ( event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( event  &&  event . which  ===  3 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  backdrop  =  $ ( Selector . BACKDROP ) [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( backdrop )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          backdrop . parentNode . removeChild ( backdrop ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  toggles  =  $ . makeArray ( $ ( Selector . DATA _TOGGLE ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        for  ( var  i  =  0 ;  i  <  toggles . length ;  i ++ )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  _parent  =  Dropdown . _getParentFromElement ( toggles [ i ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  relatedTarget  =  {  relatedTarget :  toggles [ i ]  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( ! $ ( _parent ) . hasClass ( ClassName . OPEN ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( event  &&  event . type  ===  'click'  &&  /input|textarea/i . test ( event . target . tagName )  &&  $ . contains ( _parent ,  event . target ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          var  hideEvent  =  $ . Event ( Event . HIDE ,  relatedTarget ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( _parent ) . trigger ( hideEvent ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( hideEvent . isDefaultPrevented ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            continue ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          toggles [ i ] . setAttribute ( 'aria-expanded' ,  'false' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-18 02:18:35 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          $ ( _parent ) . removeClass ( ClassName . OPEN ) . trigger ( $ . Event ( Event . HIDDEN ,  relatedTarget ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_getParentFromElement' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _getParentFromElement ( element )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  parent  =  undefined ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  selector  =  Util . getSelectorFromElement ( element ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( selector )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          parent  =  $ ( selector ) [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  parent  ||  element . parentNode ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_dataApiKeydownHandler' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _dataApiKeydownHandler ( event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( ! /(38|40|27|32)/ . test ( event . which )  ||  /input|textarea/i . test ( event . target . tagName ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        event . preventDefault ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        event . stopPropagation ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( this . disabled  ||  $ ( this ) . hasClass ( ClassName . DISABLED ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  parent  =  Dropdown . _getParentFromElement ( this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  isActive  =  $ ( parent ) . hasClass ( ClassName . OPEN ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! isActive  &&  event . which  !==  27  ||  isActive  &&  event . which  ===  27 )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( event . which  ===  27 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            var  toggle  =  $ ( parent ) . find ( Selector . DATA _TOGGLE ) [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ ( toggle ) . trigger ( 'focus' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          $ ( this ) . trigger ( 'click' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  items  =  $ . makeArray ( $ ( Selector . VISIBLE _ITEMS ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        items  =  items . filter ( function  ( item )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return  item . offsetWidth  ||  item . offsetHeight ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! items . length )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  index  =  items . indexOf ( event . target ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( event . which  ===  38  &&  index  >  0 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          // up
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          index -- ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( event . which  ===  40  &&  index  <  items . length  -  1 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          // down
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          index ++ ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( !  ~ index )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          index  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        items [ index ] . focus ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'VERSION' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  VERSION ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ] ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  Dropdown ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  $ ( document ) . on ( Event . KEYDOWN _DATA _API ,  Selector . DATA _TOGGLE ,  Dropdown . _dataApiKeydownHandler ) . on ( Event . KEYDOWN _DATA _API ,  Selector . ROLE _MENU ,  Dropdown . _dataApiKeydownHandler ) . on ( Event . KEYDOWN _DATA _API ,  Selector . ROLE _LISTBOX ,  Dropdown . _dataApiKeydownHandler ) . on ( Event . CLICK _DATA _API ,  Dropdown . _clearMenus ) . on ( Event . CLICK _DATA _API ,  Selector . DATA _TOGGLE ,  Dropdown . prototype . toggle ) . on ( Event . CLICK _DATA _API ,  Selector . FORM _CHILD ,  function  ( e )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    e . stopPropagation ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  jQuery 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  $ . fn [ NAME ]  =  Dropdown . _jQueryInterface ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $ . fn [ NAME ] . Constructor  =  Dropdown ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $ . fn [ NAME ] . noConflict  =  function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $ . fn [ NAME ]  =  JQUERY _NO _CONFLICT ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  Dropdown . _jQueryInterface ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  return  Dropdown ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ) ( jQuery ) ;  
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/ * *  
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Bootstrap  ( v4 . 0.0 ) :  modal . js 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Licensed  under  MIT  ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var  Modal  =  ( function  ( $ )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  Constants 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  NAME  =  'modal' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  VERSION  =  '4.0.0' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DATA _KEY  =  'bs.modal' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  EVENT _KEY  =  '.'  +  DATA _KEY ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DATA _API _KEY  =  '.data-api' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  JQUERY _NO _CONFLICT  =  $ . fn [ NAME ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  TRANSITION _DURATION  =  300 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  BACKDROP _TRANSITION _DURATION  =  150 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Default  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    backdrop :  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    keyboard :  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    focus :  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    show :  true 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DefaultType  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    backdrop :  '(boolean|string)' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    keyboard :  'boolean' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    focus :  'boolean' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    show :  'boolean' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Event  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    HIDE :  'hide'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    HIDDEN :  'hidden'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SHOW :  'show'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SHOWN :  'shown'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    FOCUSIN :  'focusin'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    RESIZE :  'resize'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CLICK _DISMISS :  'click.dismiss'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    KEYDOWN _DISMISS :  'keydown.dismiss'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    MOUSEUP _DISMISS :  'mouseup.dismiss'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    MOUSEDOWN _DISMISS :  'mousedown.dismiss'  +  EVENT _KEY , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    CLICK _DATA _API :  'click'  +  EVENT _KEY  +  DATA _API _KEY 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  ClassName  =  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-18 02:18:35 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    SCROLLBAR _MEASURER :  'modal-scrollbar-measure' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    BACKDROP :  'modal-backdrop' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    OPEN :  'modal-open' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    FADE :  'fade' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    IN :  'in' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Selector  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    DIALOG :  '.modal-dialog' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    DATA _TOGGLE :  '[data-toggle="modal"]' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    DATA _DISMISS :  '[data-dismiss="modal"]' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-18 02:18:35 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    FIXED _CONTENT :  '.navbar-fixed-top, .navbar-fixed-bottom, .is-fixed' 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  Class  Definition 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Modal  =  ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  Modal ( element ,  config )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      _classCallCheck ( this ,  Modal ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _config  =  this . _getConfig ( config ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _element  =  element ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _dialog  =  $ ( element ) . find ( Selector . DIALOG ) [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _backdrop  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _isShown  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _isBodyOverflowing  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _ignoreBackdropClick  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _originalBodyPadding  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _scrollbarWidth  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  Data  Api  implementation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // getters
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    _createClass ( Modal ,  [ { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'toggle' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      // public
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  toggle ( relatedTarget )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  this . _isShown  ?  this . hide ( )  :  this . show ( relatedTarget ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'show' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  show ( relatedTarget )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  _this7  =  this ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  showEvent  =  $ . Event ( Event . SHOW ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          relatedTarget :  relatedTarget 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( this . _element ) . trigger ( showEvent ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( this . _isShown  ||  showEvent . isDefaultPrevented ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _isShown  =  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _checkScrollbar ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _setScrollbar ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( document . body ) . addClass ( ClassName . OPEN ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _setEscapeEvent ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _setResizeEvent ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( this . _element ) . on ( Event . CLICK _DISMISS ,  Selector . DATA _DISMISS ,  $ . proxy ( this . hide ,  this ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( this . _dialog ) . on ( Event . MOUSEDOWN _DISMISS ,  function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( _this7 . _element ) . one ( Event . MOUSEUP _DISMISS ,  function  ( event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( $ ( event . target ) . is ( _this7 . _element ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              that . _ignoreBackdropClick  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _showBackdrop ( $ . proxy ( this . _showElement ,  this ,  relatedTarget ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'hide' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  hide ( event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          event . preventDefault ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  hideEvent  =  $ . Event ( Event . HIDE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( this . _element ) . trigger ( hideEvent ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! this . _isShown  ||  hideEvent . isDefaultPrevented ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _isShown  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _setEscapeEvent ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _setResizeEvent ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( document ) . off ( Event . FOCUSIN ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( this . _element ) . removeClass ( ClassName . IN ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( this . _element ) . off ( Event . CLICK _DISMISS ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ ( this . _dialog ) . off ( Event . MOUSEDOWN _DISMISS ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( Util . supportsTransitionEnd ( )  &&  $ ( this . _element ) . hasClass ( ClassName . FADE ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          $ ( this . _element ) . one ( Util . TRANSITION _END ,  $ . proxy ( this . _hideModal ,  this ) ) . emulateTransitionEnd ( TRANSITION _DURATION ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . _hideModal ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'dispose' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  dispose ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ . removeData ( this . _element ,  DATA _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ ( window ) . off ( EVENT _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ ( document ) . off ( EVENT _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ ( this . _element ) . off ( EVENT _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ ( this . _backdrop ) . off ( EVENT _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _config  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _element  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _dialog  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _backdrop  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _isShown  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _isBodyOverflowing  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _ignoreBackdropClick  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _originalBodyPadding  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _scrollbarWidth  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // private
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_getConfig' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  _getConfig ( config )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        config  =  $ . extend ( { } ,  Default ,  config ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        Util . typeCheckConfig ( NAME ,  config ,  DefaultType ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  config ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_showElement' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _showElement ( relatedTarget )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  _this8  =  this ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  transition  =  Util . supportsTransitionEnd ( )  &&  $ ( this . _element ) . hasClass ( ClassName . FADE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! this . _element . parentNode  ||  this . _element . parentNode . nodeType  !==  Node . ELEMENT _NODE )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          // don't move modals dom position
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          document . body . appendChild ( this . _element ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _element . style . display  =  'block' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _element . scrollTop  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( transition )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Util . reflow ( this . _element ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( this . _element ) . addClass ( ClassName . IN ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( this . _config . focus )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . _enforceFocus ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  shownEvent  =  $ . Event ( Event . SHOWN ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          relatedTarget :  relatedTarget 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  transitionComplete  =  function  transitionComplete ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( _this8 . _config . focus )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            _this8 . _element . focus ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          $ ( _this8 . _element ) . trigger ( shownEvent ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( transition )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( this . _dialog ) . one ( Util . TRANSITION _END ,  transitionComplete ) . emulateTransitionEnd ( TRANSITION _DURATION ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          transitionComplete ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_enforceFocus' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _enforceFocus ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  _this9  =  this ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ ( document ) . off ( Event . FOCUSIN )  // guard against infinite focus loop
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        . on ( Event . FOCUSIN ,  function  ( event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( _this9 . _element  !==  event . target  &&  ! $ ( _this9 . _element ) . has ( event . target ) . length )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            _this9 . _element . focus ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_setEscapeEvent' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _setEscapeEvent ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  _this10  =  this ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( this . _isShown  &&  this . _config . keyboard )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( this . _element ) . on ( Event . KEYDOWN _DISMISS ,  function  ( event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( event . which  ===  27 )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              _this10 . hide ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  if  ( ! this . _isShown )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( this . _element ) . off ( Event . KEYDOWN _DISMISS ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_setResizeEvent' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _setResizeEvent ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( this . _isShown )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( window ) . on ( Event . RESIZE ,  $ . proxy ( this . _handleUpdate ,  this ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( window ) . off ( Event . RESIZE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_hideModal' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _hideModal ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  _this11  =  this ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _element . style . display  =  'none' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _showBackdrop ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( document . body ) . removeClass ( ClassName . OPEN ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          _this11 . _resetAdjustments ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          _this11 . _resetScrollbar ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( _this11 . _element ) . trigger ( Event . HIDDEN ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_removeBackdrop' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _removeBackdrop ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( this . _backdrop )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( this . _backdrop ) . remove ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . _backdrop  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_showBackdrop' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _showBackdrop ( callback )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  _this12  =  this ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  animate  =  $ ( this . _element ) . hasClass ( ClassName . FADE )  ?  ClassName . FADE  :  '' ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( this . _isShown  &&  this . _config . backdrop )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  doAnimate  =  Util . supportsTransitionEnd ( )  &&  animate ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          this . _backdrop  =  document . createElement ( 'div' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . _backdrop . className  =  ClassName . BACKDROP ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( animate )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ ( this . _backdrop ) . addClass ( animate ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          $ ( this . _backdrop ) . appendTo ( document . body ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( this . _element ) . on ( Event . CLICK _DISMISS ,  function  ( event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( _this12 . _ignoreBackdropClick )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              _this12 . _ignoreBackdropClick  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( event . target  !==  event . currentTarget )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( _this12 . _config . backdrop  ===  'static' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              _this12 . _element . focus ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              _this12 . hide ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( doAnimate )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            Util . reflow ( this . _backdrop ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          $ ( this . _backdrop ) . addClass ( ClassName . IN ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( ! callback )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( ! doAnimate )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            callback ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          $ ( this . _backdrop ) . one ( Util . TRANSITION _END ,  callback ) . emulateTransitionEnd ( BACKDROP _TRANSITION _DURATION ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  if  ( ! this . _isShown  &&  this . _backdrop )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( this . _backdrop ) . removeClass ( ClassName . IN ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  callbackRemove  =  function  callbackRemove ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            _this12 . _removeBackdrop ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if  ( callback )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              callback ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( Util . supportsTransitionEnd ( )  &&  $ ( this . _element ) . hasClass ( ClassName . FADE ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ ( this . _backdrop ) . one ( Util . TRANSITION _END ,  callbackRemove ) . emulateTransitionEnd ( BACKDROP _TRANSITION _DURATION ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            callbackRemove ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  if  ( callback )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          callback ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // ----------------------------------------------------------------------
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      // the following methods are used to handle overflowing modals
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      // todo (fat): these should probably be refactored out of modal.js
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      // ----------------------------------------------------------------------
 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_handleUpdate' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  _handleUpdate ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _adjustDialog ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_adjustDialog' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _adjustDialog ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  isModalOverflowing  =  this . _element . scrollHeight  >  document . documentElement . clientHeight ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! this . _isBodyOverflowing  &&  isModalOverflowing )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . _element . style . paddingLeft  =  this . _scrollbarWidth  +  'px' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( this . _isBodyOverflowing  &&  ! isModalOverflowing )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          this . _element . style . paddingRight  =  this . _scrollbarWidth  +  'px~' ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_resetAdjustments' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _resetAdjustments ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _element . style . paddingLeft  =  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _element . style . paddingRight  =  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_checkScrollbar' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _checkScrollbar ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  fullWindowWidth  =  window . innerWidth ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( ! fullWindowWidth )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          // workaround for missing window.innerWidth in IE8
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  documentElementRect  =  document . documentElement . getBoundingClientRect ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          fullWindowWidth  =  documentElementRect . right  -  Math . abs ( documentElementRect . left ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _isBodyOverflowing  =  document . body . clientWidth  <  fullWindowWidth ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _scrollbarWidth  =  this . _getScrollbarWidth ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_setScrollbar' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _setScrollbar ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-18 02:18:35 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  bodyPadding  =  parseInt ( $ ( Selector . FIXED _CONTENT ) . css ( 'padding-right' )  ||  0 ,  10 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _originalBodyPadding  =  document . body . style . paddingRight  ||  '' ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( this . _isBodyOverflowing )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          document . body . style . paddingRight  =  bodyPadding  +  ( this . _scrollbarWidth  +  'px' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_resetScrollbar' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _resetScrollbar ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        document . body . style . paddingRight  =  this . _originalBodyPadding ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_getScrollbarWidth' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _getScrollbarWidth ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // thx d.walsh
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  scrollDiv  =  document . createElement ( 'div' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-18 02:18:35 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        scrollDiv . className  =  ClassName . SCROLLBAR _MEASURER ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        document . body . appendChild ( scrollDiv ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  scrollbarWidth  =  scrollDiv . offsetWidth  -  scrollDiv . clientWidth ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        document . body . removeChild ( scrollDiv ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  scrollbarWidth ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // static
 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ] ,  [ { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_jQueryInterface' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  _jQueryInterface ( config ,  relatedTarget )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  this . each ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  data  =  $ ( this ) . data ( DATA _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  _config  =  $ . extend ( { } ,  Modal . Default ,  $ ( this ) . data ( ) ,  typeof  config  ===  'object'  &&  config ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( ! data )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            data  =  new  Modal ( this ,  _config ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ ( this ) . data ( DATA _KEY ,  data ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( typeof  config  ===  'string' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            data [ config ] ( relatedTarget ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          }  else  if  ( _config . show )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            data . show ( relatedTarget ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'VERSION' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  VERSION ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'Default' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  Default ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ] ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  Modal ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  $ ( document ) . on ( Event . CLICK _DATA _API ,  Selector . DATA _TOGGLE ,  function  ( event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    var  _this13  =  this ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    var  target  =  undefined ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    var  selector  =  Util . getSelectorFromElement ( this ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( selector )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      target  =  $ ( selector ) [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    var  config  =  $ ( target ) . data ( DATA _KEY )  ?  'toggle'  :  $ . extend ( { } ,  $ ( target ) . data ( ) ,  $ ( this ) . data ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  ( this . tagName  ===  'A' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      event . preventDefault ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    var  $target  =  $ ( target ) . one ( Event . SHOW ,  function  ( showEvent )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if  ( showEvent . isDefaultPrevented ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        // only register focus restorer if modal will actually get shown
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      $target . one ( Event . HIDDEN ,  function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( $ ( _this13 ) . is ( ':visible' ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          _this13 . focus ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Modal . _jQueryInterface . call ( $ ( target ) ,  config ,  this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  jQuery 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  $ . fn [ NAME ]  =  Modal . _jQueryInterface ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $ . fn [ NAME ] . Constructor  =  Modal ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $ . fn [ NAME ] . noConflict  =  function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $ . fn [ NAME ]  =  JQUERY _NO _CONFLICT ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  Modal . _jQueryInterface ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  return  Modal ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ) ( jQuery ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/ * *  
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Bootstrap  ( v4 . 0.0 ) :  scrollspy . js 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Licensed  under  MIT  ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								var  ScrollSpy  =  ( function  ( $ )  {  
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  Constants 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  var  NAME  =  'scrollspy' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  VERSION  =  '4.0.0' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DATA _KEY  =  'bs.scrollspy' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  EVENT _KEY  =  '.'  +  DATA _KEY ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DATA _API _KEY  =  '.data-api' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  JQUERY _NO _CONFLICT  =  $ . fn [ NAME ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  var  Default  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    offset :  10 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    method :  'auto' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    target :  '' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  var  DefaultType  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    offset :  'number' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    method :  'string' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    target :  '(string|element)' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  var  Event  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ACTIVATE :  'activate'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SCROLL :  'scroll'  +  EVENT _KEY , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    LOAD _DATA _API :  'load'  +  EVENT _KEY  +  DATA _API _KEY 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  var  ClassName  =  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 13:23:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    DROPDOWN _ITEM :  'dropdown-item' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    DROPDOWN _MENU :  'dropdown-menu' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 13:23:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    NAV _LINK :  'nav-link' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    NAV :  'nav' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ACTIVE :  'active' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  var  Selector  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    DATA _SPY :  '[data-spy="scroll"]' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ACTIVE :  '.active' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 13:23:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    LIST _ITEM :  '.list-item' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    LI :  'li' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    LI _DROPDOWN :  'li.dropdown' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 13:23:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    NAV _LINKS :  '.nav-link' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    DROPDOWN :  '.dropdown' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    DROPDOWN _ITEMS :  '.dropdown-item' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    DROPDOWN _TOGGLE :  '.dropdown-toggle' 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  var  OffsetMethod  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    OFFSET :  'offset' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    POSITION :  'position' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  Class  Definition 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  var  ScrollSpy  =  ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  ScrollSpy ( element ,  config )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      _classCallCheck ( this ,  ScrollSpy ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      this . _element  =  element ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _scrollElement  =  element . tagName  ===  'BODY'  ?  window  :  element ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _config  =  this . _getConfig ( config ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 13:23:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      this . _selector  =  this . _config . target  +  ' '  +  Selector . NAV _LINKS  +  ','  +  ( this . _config . target  +  ' '  +  Selector . DROPDOWN _ITEMS ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      this . _offsets  =  [ ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _targets  =  [ ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _activeTarget  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _scrollHeight  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      $ ( this . _scrollElement ) . on ( Event . SCROLL ,  $ . proxy ( this . _process ,  this ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      this . refresh ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _process ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  Data  Api  implementation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // getters
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    _createClass ( ScrollSpy ,  [ { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'refresh' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // public
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  refresh ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  _this14  =  this ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  autoMethod  =  this . _scrollElement  !==  this . _scrollElement . window  ?  OffsetMethod . POSITION  :  OffsetMethod . OFFSET ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  offsetMethod  =  this . _config . method  ===  'auto'  ?  autoMethod  :  this . _config . method ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  offsetBase  =  offsetMethod  ===  OffsetMethod . POSITION  ?  this . _getScrollTop ( )  :  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _offsets  =  [ ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _targets  =  [ ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _scrollHeight  =  this . _getScrollHeight ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  targets  =  $ . makeArray ( $ ( this . _selector ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        targets . map ( function  ( element )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  target  =  undefined ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  targetSelector  =  Util . getSelectorFromElement ( element ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( targetSelector )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            target  =  $ ( targetSelector ) [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( target  &&  ( target . offsetWidth  ||  target . offsetHeight ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            // todo (fat): remove sketch reliance on jQuery position/offset
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  [ $ ( target ) [ offsetMethod ] ( ) . top  +  offsetBase ,  targetSelector ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) . filter ( function  ( item )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return  item ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) . sort ( function  ( a ,  b )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return  a [ 0 ]  -  b [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) . forEach ( function  ( item )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          _this14 . _offsets . push ( item [ 0 ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          _this14 . _targets . push ( item [ 1 ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'dispose' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  dispose ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ . removeData ( this . _element ,  DATA _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ ( this . _scrollElement ) . off ( EVENT _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _element  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _scrollElement  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _config  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _selector  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _offsets  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _targets  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _activeTarget  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _scrollHeight  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // private
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_getConfig' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  _getConfig ( config )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        config  =  $ . extend ( { } ,  Default ,  config ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( typeof  config . target  !==  'string' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  id  =  $ ( config . target ) . attr ( 'id' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( ! id )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            id  =  Util . getUID ( NAME ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ ( config . target ) . attr ( 'id' ,  id ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          config . target  =  '#'  +  id ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        Util . typeCheckConfig ( NAME ,  config ,  DefaultType ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  config ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_getScrollTop' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _getScrollTop ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  this . _scrollElement  ===  window  ?  this . _scrollElement . scrollY  :  this . _scrollElement . scrollTop ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_getScrollHeight' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _getScrollHeight ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  this . _scrollElement . scrollHeight  ||  Math . max ( document . body . scrollHeight ,  document . documentElement . scrollHeight ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_process' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _process ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  scrollTop  =  this . _getScrollTop ( )  +  this . _config . offset ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  scrollHeight  =  this . _getScrollHeight ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  maxScroll  =  this . _config . offset  +  scrollHeight  -  this . _scrollElement . offsetHeight ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( this . _scrollHeight  !==  scrollHeight )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . refresh ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( scrollTop  >=  maxScroll )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  target  =  this . _targets [ this . _targets . length  -  1 ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( this . _activeTarget  !==  target )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this . _activate ( target ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( this . _activeTarget  &&  scrollTop  <  this . _offsets [ 0 ] )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . _activeTarget  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . _clear ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        for  ( var  i  =  this . _offsets . length ;  i -- ; )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  isActiveTarget  =  this . _activeTarget  !==  this . _targets [ i ]  &&  scrollTop  >=  this . _offsets [ i ]  &&  ( this . _offsets [ i  +  1 ]  ===  undefined  ||  scrollTop  <  this . _offsets [ i  +  1 ] ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( isActiveTarget )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this . _activate ( this . _targets [ i ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_activate' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _activate ( target )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _activeTarget  =  target ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _clear ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 13:23:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  queries  =  this . _selector . split ( ',' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        queries  =  queries . map ( function  ( selector )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return  selector  +  '[data-target="'  +  target  +  '"],'  +  ( selector  +  '[href="'  +  target  +  '"]' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 13:23:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  $link  =  $ ( queries . join ( ',' ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 13:23:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( $link . hasClass ( ClassName . DROPDOWN _ITEM ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $link . closest ( Selector . DROPDOWN ) . find ( Selector . DROPDOWN _TOGGLE ) . addClass ( ClassName . ACTIVE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $link . addClass ( ClassName . ACTIVE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          // todo (fat) this is kinda sus…
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          // recursively add actives to tested nav-links
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $link . parents ( Selector . LI ) . find ( Selector . NAV _LINKS ) . addClass ( ClassName . ACTIVE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( this . _scrollElement ) . trigger ( Event . ACTIVATE ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          relatedTarget :  target 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_clear' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _clear ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 13:23:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( this . _selector ) . filter ( Selector . ACTIVE ) . removeClass ( ClassName . ACTIVE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // static
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ] ,  [ { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_jQueryInterface' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  _jQueryInterface ( config )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  this . each ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  data  =  $ ( this ) . data ( DATA _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  _config  =  typeof  config  ===  'object'  &&  config  ||  null ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( ! data )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            data  =  new  ScrollSpy ( this ,  _config ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ ( this ) . data ( DATA _KEY ,  data ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( typeof  config  ===  'string' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            data [ config ] ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'VERSION' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  VERSION ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'Default' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  Default ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ] ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  ScrollSpy ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  $ ( window ) . on ( Event . LOAD _DATA _API ,  function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    var  scrollSpys  =  $ . makeArray ( $ ( Selector . DATA _SPY ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    for  ( var  i  =  scrollSpys . length ;  i -- ; )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      var  $spy  =  $ ( scrollSpys [ i ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      ScrollSpy . _jQueryInterface . call ( $spy ,  $spy . data ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-10-29 11:30:31 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  jQuery 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  $ . fn [ NAME ]  =  ScrollSpy . _jQueryInterface ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $ . fn [ NAME ] . Constructor  =  ScrollSpy ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $ . fn [ NAME ] . noConflict  =  function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $ . fn [ NAME ]  =  JQUERY _NO _CONFLICT ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  ScrollSpy . _jQueryInterface ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  return  ScrollSpy ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ) ( jQuery ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/ * *  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Bootstrap  ( v4 . 0.0 ) :  tab . js 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Licensed  under  MIT  ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var  Tab  =  ( function  ( $ )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  Constants 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  NAME  =  'tab' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  VERSION  =  '4.0.0' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DATA _KEY  =  'bs.tab' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  EVENT _KEY  =  '.'  +  DATA _KEY ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DATA _API _KEY  =  '.data-api' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  JQUERY _NO _CONFLICT  =  $ . fn [ NAME ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  TRANSITION _DURATION  =  150 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Event  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    HIDE :  'hide'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    HIDDEN :  'hidden'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SHOW :  'show'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SHOWN :  'shown'  +  EVENT _KEY , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    CLICK _DATA _API :  'click'  +  EVENT _KEY  +  DATA _API _KEY 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  ClassName  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    DROPDOWN _MENU :  'dropdown-menu' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ACTIVE :  'active' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    FADE :  'fade' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    IN :  'in' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Selector  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    A :  'a' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    LI :  'li' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 13:23:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    DROPDOWN :  '.dropdown' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    UL :  'ul:not(.dropdown-menu)' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 13:23:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    FADE _CHILD :  '> .nav-item .fade, > .fade' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ACTIVE :  '.active' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 13:23:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    ACTIVE _CHILD :  '> .nav-item > .active, > .active' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    DATA _TOGGLE :  '[data-toggle="tab"], [data-toggle="pill"]' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 13:23:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    DROPDOWN _TOGGLE :  '.dropdown-toggle' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    DROPDOWN _ACTIVE _CHILD :  '> .dropdown-menu .active' 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  Class  Definition 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Tab  =  ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  Tab ( element )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      _classCallCheck ( this ,  Tab ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _element  =  element ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  Data  Api  implementation 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // getters
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    _createClass ( Tab ,  [ { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'show' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      // public
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  show ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  _this15  =  this ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 13:23:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( this . _element . parentNode  &&  this . _element . parentNode . nodeType  ===  Node . ELEMENT _NODE  &&  $ ( this . _element ) . hasClass ( ClassName . ACTIVE ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  target  =  undefined ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  previous  =  undefined ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  ulElement  =  $ ( this . _element ) . closest ( Selector . UL ) [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  selector  =  Util . getSelectorFromElement ( this . _element ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ulElement )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          previous  =  $ . makeArray ( $ ( ulElement ) . find ( Selector . ACTIVE ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          previous  =  previous [ previous . length  -  1 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  hideEvent  =  $ . Event ( Event . HIDE ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          relatedTarget :  this . _element 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  showEvent  =  $ . Event ( Event . SHOW ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          relatedTarget :  previous 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( previous )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( previous ) . trigger ( hideEvent ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( this . _element ) . trigger ( showEvent ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( showEvent . isDefaultPrevented ( )  ||  hideEvent . isDefaultPrevented ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( selector )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          target  =  $ ( selector ) [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 13:23:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _activate ( this . _element ,  ulElement ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  complete  =  function  complete ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  hiddenEvent  =  $ . Event ( Event . HIDDEN ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            relatedTarget :  _this15 . _element 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          var  shownEvent  =  $ . Event ( Event . SHOWN ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            relatedTarget :  previous 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          $ ( previous ) . trigger ( hiddenEvent ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( _this15 . _element ) . trigger ( shownEvent ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( target )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . _activate ( target ,  target . parentNode ,  complete ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          complete ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'dispose' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  dispose ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ . removeClass ( this . _element ,  DATA _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _element  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // private
 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_activate' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  _activate ( element ,  container ,  callback )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  active  =  $ ( container ) . find ( Selector . ACTIVE _CHILD ) [ 0 ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  isTransitioning  =  callback  &&  Util . supportsTransitionEnd ( )  &&  ( active  &&  $ ( active ) . hasClass ( ClassName . FADE )  ||  Boolean ( $ ( container ) . find ( Selector . FADE _CHILD ) [ 0 ] ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  complete  =  $ . proxy ( this . _transitionComplete ,  this ,  element ,  active ,  isTransitioning ,  callback ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( active  &&  isTransitioning )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( active ) . one ( Util . TRANSITION _END ,  complete ) . emulateTransitionEnd ( TRANSITION _DURATION ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          complete ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( active )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( active ) . removeClass ( ClassName . IN ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_transitionComplete' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _transitionComplete ( element ,  active ,  isTransitioning ,  callback )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( active )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( active ) . removeClass ( ClassName . ACTIVE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  dropdownChild  =  $ ( active ) . find ( Selector . DROPDOWN _ACTIVE _CHILD ) [ 0 ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 13:23:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( dropdownChild )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ ( dropdownChild ) . removeClass ( ClassName . ACTIVE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 13:23:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          active . setAttribute ( 'aria-expanded' ,  false ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( element ) . addClass ( ClassName . ACTIVE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 13:23:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        element . setAttribute ( 'aria-expanded' ,  true ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( isTransitioning )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          Util . reflow ( element ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( element ) . addClass ( ClassName . IN ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( element ) . removeClass ( ClassName . FADE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( element . parentNode  &&  $ ( element . parentNode ) . hasClass ( ClassName . DROPDOWN _MENU ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 13:23:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          var  dropdownElement  =  $ ( element ) . closest ( Selector . DROPDOWN ) [ 0 ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( dropdownElement )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 13:23:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $ ( dropdownElement ) . find ( Selector . DROPDOWN _TOGGLE ) . addClass ( ClassName . ACTIVE ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 13:23:44 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          element . setAttribute ( 'aria-expanded' ,  true ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( callback )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          callback ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // static
 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ] ,  [ { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_jQueryInterface' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  _jQueryInterface ( config )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  this . each ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  $this  =  $ ( this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  data  =  $this . data ( DATA _KEY ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( ! data )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            data  =  data  =  new  Tab ( this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $this . data ( DATA _KEY ,  data ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( typeof  config  ===  'string' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            data [ config ] ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'VERSION' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  VERSION ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ] ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-10-03 14:17:49 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  Tab ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  $ ( document ) . on ( Event . CLICK _DATA _API ,  Selector . DATA _TOGGLE ,  function  ( event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    event . preventDefault ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Tab . _jQueryInterface . call ( $ ( this ) ,  'show' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-03 04:05:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  jQuery 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  $ . fn [ NAME ]  =  Tab . _jQueryInterface ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $ . fn [ NAME ] . Constructor  =  Tab ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $ . fn [ NAME ] . noConflict  =  function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $ . fn [ NAME ]  =  JQUERY _NO _CONFLICT ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  Tab . _jQueryInterface ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  return  Tab ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ) ( jQuery ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/ * *  
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Bootstrap  ( v4 . 0.0 ) :  tooltip . js 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Licensed  under  MIT  ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var  Tooltip  =  ( function  ( $ )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  Constants 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  NAME  =  'tooltip' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  VERSION  =  '4.0.0' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DATA _KEY  =  'bs.tooltip' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  EVENT _KEY  =  '.'  +  DATA _KEY ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  JQUERY _NO _CONFLICT  =  $ . fn [ NAME ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  TRANSITION _DURATION  =  150 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  CLASS _PREFIX  =  'bs-tether' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Default  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    animation :  true , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    template :  '<div class="tooltip" role="tooltip">'  +  '<div class="tooltip-arrow"></div>'  +  '<div class="tooltip-inner"></div></div>' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    trigger :  'hover focus' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    title :  '' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    delay :  0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    html :  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    selector :  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    placement :  'top' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    offset :  '0 0' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    constraints :  [ ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DefaultType  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    animation :  'boolean' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    template :  'string' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    title :  '(string|function)' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    trigger :  'string' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    delay :  '(number|object)' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    html :  'boolean' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    selector :  '(string|boolean)' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    placement :  '(string|function)' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    offset :  'string' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    constraints :  'array' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  AttachmentMap  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    TOP :  'bottom center' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    RIGHT :  'middle left' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    BOTTOM :  'top center' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    LEFT :  'middle right' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  HoverState  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    IN :  'in' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    OUT :  'out' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Event  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    HIDE :  'hide'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    HIDDEN :  'hidden'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SHOW :  'show'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SHOWN :  'shown'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    INSERTED :  'inserted'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CLICK :  'click'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    FOCUSIN :  'focusin'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    FOCUSOUT :  'focusout'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    MOUSEENTER :  'mouseenter'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    MOUSELEAVE :  'mouseleave'  +  EVENT _KEY 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  ClassName  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    FADE :  'fade' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    IN :  'in' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Selector  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    TOOLTIP :  '.tooltip' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    TOOLTIP _INNER :  '.tooltip-inner' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  TetherClass  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    element :  false , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    enabled :  false 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Trigger  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    HOVER :  'hover' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    FOCUS :  'focus' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CLICK :  'click' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    MANUAL :  'manual' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  Class  Definition 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Tooltip  =  ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    function  Tooltip ( element ,  config )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      _classCallCheck ( this ,  Tooltip ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      // private
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _isEnabled  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _timeout  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _hoverState  =  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _activeTrigger  =  { } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _tether  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      // protected
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . element  =  element ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . config  =  this . _getConfig ( config ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . tip  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      this . _setListeners ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  jQuery 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // getters
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    _createClass ( Tooltip ,  [ { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'enable' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      // public
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  enable ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _isEnabled  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'disable' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  disable ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _isEnabled  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'toggleEnabled' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  toggleEnabled ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _isEnabled  =  ! this . _isEnabled ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'toggle' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  toggle ( event )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( event )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          var  dataKey  =  this . constructor . DATA _KEY ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  context  =  $ ( event . currentTarget ) . data ( dataKey ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( ! context )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            context  =  new  this . constructor ( event . currentTarget ,  this . _getDelegateConfig ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ ( event . currentTarget ) . data ( dataKey ,  context ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          context . _activeTrigger . click  =  ! context . _activeTrigger . click ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( context . _isWithActiveTrigger ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            context . _enter ( null ,  context ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            context . _leave ( null ,  context ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( $ ( this . getTipElement ( ) ) . hasClass ( ClassName . IN ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            this . _leave ( null ,  this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . _enter ( null ,  this ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'dispose' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  dispose ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        clearTimeout ( this . _timeout ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . cleanupTether ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ . removeData ( this . element ,  this . constructor . DATA _KEY ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( this . element ) . off ( this . constructor . EVENT _KEY ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-08-02 00:49:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( this . tip )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( this . tip ) . remove ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _isEnabled  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _timeout  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _hoverState  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _activeTrigger  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . _tether  =  null ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . element  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . config  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        this . tip  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'show' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  show ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  _this16  =  this ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  showEvent  =  $ . Event ( this . constructor . Event . SHOW ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( this . isWithContent ( )  &&  this . _isEnabled )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( this . element ) . trigger ( showEvent ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          var  isInTheDom  =  $ . contains ( this . element . ownerDocument . documentElement ,  this . element ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( showEvent . isDefaultPrevented ( )  ||  ! isInTheDom )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          var  tip  =  this . getTipElement ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  tipId  =  Util . getUID ( this . constructor . NAME ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          tip . setAttribute ( 'id' ,  tipId ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . element . setAttribute ( 'aria-describedby' ,  tipId ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          this . setContent ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( this . config . animation )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ ( tip ) . addClass ( ClassName . FADE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          var  placement  =  typeof  this . config . placement  ===  'function'  ?  this . config . placement . call ( this ,  tip ,  this . element )  :  this . config . placement ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          var  attachment  =  this . _getAttachment ( placement ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          $ ( tip ) . data ( this . constructor . DATA _KEY ,  this ) . appendTo ( document . body ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          $ ( this . element ) . trigger ( this . constructor . Event . INSERTED ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          this . _tether  =  new  Tether ( { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            attachment :  attachment , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            element :  tip , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            target :  this . element , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            classes :  TetherClass , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            classPrefix :  CLASS _PREFIX , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            offset :  this . config . offset , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            constraints :  this . config . constraints 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          Util . reflow ( tip ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . _tether . position ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          $ ( tip ) . addClass ( ClassName . IN ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          var  complete  =  function  complete ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            var  prevHoverState  =  _this16 . _hoverState ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            _this16 . _hoverState  =  null ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $ ( _this16 . element ) . trigger ( _this16 . constructor . Event . SHOWN ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            if  ( prevHoverState  ===  HoverState . OUT )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              _this16 . _leave ( null ,  _this16 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( Util . supportsTransitionEnd ( )  &&  $ ( this . tip ) . hasClass ( ClassName . FADE ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ ( this . tip ) . one ( Util . TRANSITION _END ,  complete ) . emulateTransitionEnd ( Tooltip . _TRANSITION _DURATION ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          complete ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'hide' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  hide ( callback )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  _this17  =  this ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  tip  =  this . getTipElement ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  hideEvent  =  $ . Event ( this . constructor . Event . HIDE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  complete  =  function  complete ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( _this17 . _hoverState  !==  HoverState . IN  &&  tip . parentNode )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            tip . parentNode . removeChild ( tip ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          _this17 . element . removeAttribute ( 'aria-describedby' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( _this17 . element ) . trigger ( _this17 . constructor . Event . HIDDEN ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          _this17 . cleanupTether ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          if  ( callback )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            callback ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( this . element ) . trigger ( hideEvent ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( hideEvent . isDefaultPrevented ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( tip ) . removeClass ( ClassName . IN ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( Util . supportsTransitionEnd ( )  &&  $ ( this . tip ) . hasClass ( ClassName . FADE ) )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          $ ( tip ) . one ( Util . TRANSITION _END ,  complete ) . emulateTransitionEnd ( TRANSITION _DURATION ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          complete ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . _hoverState  =  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // protected
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'isWithContent' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  isWithContent ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  Boolean ( this . getTitle ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'getTipElement' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  getTipElement ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  this . tip  =  this . tip  ||  $ ( this . config . template ) [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'setContent' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  setContent ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  tip  =  this . getTipElement ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  title  =  this . getTitle ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  method  =  this . config . html  ?  'innerHTML'  :  'innerText' ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( tip ) . find ( Selector . TOOLTIP _INNER ) [ 0 ] [ method ]  =  title ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( tip ) . removeClass ( ClassName . FADE ) . removeClass ( ClassName . IN ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . cleanupTether ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'getTitle' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  getTitle ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  title  =  this . element . getAttribute ( 'data-original-title' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! title )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          title  =  typeof  this . config . title  ===  'function'  ?  this . config . title . call ( this . element )  :  this . config . title ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  title ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'cleanupTether' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  cleanupTether ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( this . _tether )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . _tether . destroy ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          // clean up after tether's junk classes
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          // remove after they fix issue
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          // (https://github.com/HubSpot/tether/issues/36)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( this . element ) . removeClass ( this . _removeTetherClasses ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( this . tip ) . removeClass ( this . _removeTetherClasses ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // private
 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_getAttachment' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  _getAttachment ( placement )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  AttachmentMap [ placement . toUpperCase ( ) ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_setListeners' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _setListeners ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  _this18  =  this ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        var  triggers  =  this . config . trigger . split ( ' ' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        triggers . forEach ( function  ( trigger )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( trigger  ===  'click' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ ( _this18 . element ) . on ( _this18 . constructor . Event . CLICK ,  _this18 . config . selector ,  $ . proxy ( _this18 . toggle ,  _this18 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          }  else  if  ( trigger  !==  Trigger . MANUAL )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            var  eventIn  =  trigger  ===  Trigger . HOVER  ?  _this18 . constructor . Event . MOUSEENTER  :  _this18 . constructor . Event . FOCUSIN ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            var  eventOut  =  trigger  ===  Trigger . HOVER  ?  _this18 . constructor . Event . MOUSELEAVE  :  _this18 . constructor . Event . FOCUSOUT ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            $ ( _this18 . element ) . on ( eventIn ,  _this18 . config . selector ,  $ . proxy ( _this18 . _enter ,  _this18 ) ) . on ( eventOut ,  _this18 . config . selector ,  $ . proxy ( _this18 . _leave ,  _this18 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( this . config . selector )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . config  =  $ . extend ( { } ,  this . config ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            trigger :  'manual' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            selector :  '' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }  else  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . _fixTitle ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_removeTetherClasses' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _removeTetherClasses ( i ,  css )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  ( ( css . baseVal  ||  css ) . match ( new  RegExp ( '(^|\\s)'  +  CLASS _PREFIX  +  '-\\S+' ,  'g' ) )  ||  [ ] ) . join ( ' ' ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_fixTitle' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _fixTitle ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  titleType  =  typeof  this . element . getAttribute ( 'data-original-title' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( this . element . getAttribute ( 'title' )  ||  titleType  !==  'string' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . element . setAttribute ( 'data-original-title' ,  this . element . getAttribute ( 'title' )  ||  '' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          this . element . setAttribute ( 'title' ,  '' ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_enter' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _enter ( event ,  context )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  dataKey  =  this . constructor . DATA _KEY ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        context  =  context  ||  $ ( event . currentTarget ) . data ( dataKey ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! context )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          context  =  new  this . constructor ( event . currentTarget ,  this . _getDelegateConfig ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( event . currentTarget ) . data ( dataKey ,  context ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( event )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          context . _activeTrigger [ event . type  ===  'focusin'  ?  Trigger . FOCUS  :  Trigger . HOVER ]  =  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( $ ( context . getTipElement ( ) ) . hasClass ( ClassName . IN )  ||  context . _hoverState  ===  HoverState . IN )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          context . _hoverState  =  HoverState . IN ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        clearTimeout ( context . _timeout ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        context . _hoverState  =  HoverState . IN ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! context . config . delay  ||  ! context . config . delay . show )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          context . show ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        context . _timeout  =  setTimeout ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( context . _hoverState  ===  HoverState . IN )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            context . show ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ,  context . config . delay . show ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_leave' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _leave ( event ,  context )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  dataKey  =  this . constructor . DATA _KEY ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        context  =  context  ||  $ ( event . currentTarget ) . data ( dataKey ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! context )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          context  =  new  this . constructor ( event . currentTarget ,  this . _getDelegateConfig ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          $ ( event . currentTarget ) . data ( dataKey ,  context ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( event )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								          context . _activeTrigger [ event . type  ===  'focusout'  ?  Trigger . FOCUS  :  Trigger . HOVER ]  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( context . _isWithActiveTrigger ( ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        clearTimeout ( context . _timeout ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        context . _hoverState  =  HoverState . OUT ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if  ( ! context . config . delay  ||  ! context . config . delay . hide )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          context . hide ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        context . _timeout  =  setTimeout ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( context . _hoverState  ===  HoverState . OUT )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            context . hide ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ,  context . config . delay . hide ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_isWithActiveTrigger' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _isWithActiveTrigger ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        for  ( var  trigger  in  this . _activeTrigger )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( this . _activeTrigger [ trigger ] )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_getConfig' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _getConfig ( config )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        config  =  $ . extend ( { } ,  this . constructor . Default ,  $ ( this . element ) . data ( ) ,  config ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( config . delay  &&  typeof  config . delay  ===  'number' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          config . delay  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            show :  config . delay , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            hide :  config . delay 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        Util . typeCheckConfig ( NAME ,  config ,  this . constructor . DefaultType ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  config ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_getDelegateConfig' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  _getDelegateConfig ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  config  =  { } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( this . config )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          for  ( var  key  in  this . config )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            if  ( this . constructor . Default [ key ]  !==  this . config [ key ] )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              config [ key ]  =  this . config [ key ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-24 11:32:05 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  config ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      // static
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ] ,  [ { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_jQueryInterface' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  _jQueryInterface ( config )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  this . each ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  data  =  $ ( this ) . data ( DATA _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  _config  =  typeof  config  ===  'object'  ?  config  :  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( ! data  &&  /destroy|hide/ . test ( config ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( ! data )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            data  =  new  Tooltip ( this ,  _config ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ ( this ) . data ( DATA _KEY ,  data ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( typeof  config  ===  'string' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            data [ config ] ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      key :  'VERSION' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  VERSION ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'Default' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  Default ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'NAME' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  NAME ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'DATA_KEY' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  DATA _KEY ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'Event' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  Event ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'EVENT_KEY' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  EVENT _KEY ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'DefaultType' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  DefaultType ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ] ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  Tooltip ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  $ . fn [ NAME ]  =  Tooltip . _jQueryInterface ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $ . fn [ NAME ] . Constructor  =  Tooltip ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $ . fn [ NAME ] . noConflict  =  function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $ . fn [ NAME ]  =  JQUERY _NO _CONFLICT ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  Tooltip . _jQueryInterface ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  return  Tooltip ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ) ( jQuery ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/ * *  
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Bootstrap  ( v4 . 0.0 ) :  popover . js 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Licensed  under  MIT  ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var  Popover  =  ( function  ( $ )  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  Constants 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  NAME  =  'popover' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  VERSION  =  '4.0.0' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DATA _KEY  =  'bs.popover' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  EVENT _KEY  =  '.'  +  DATA _KEY ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  JQUERY _NO _CONFLICT  =  $ . fn [ NAME ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Default  =  $ . extend ( { } ,  Tooltip . Default ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    placement :  'right' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    trigger :  'click' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    content :  '' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    template :  '<div class="popover" role="tooltip">'  +  '<div class="popover-arrow"></div>'  +  '<h3 class="popover-title"></h3>'  +  '<div class="popover-content"></div></div>' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  DefaultType  =  $ . extend ( { } ,  Tooltip . DefaultType ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    content :  '(string|function)' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  ClassName  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    FADE :  'fade' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    IN :  'in' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Selector  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    TITLE :  '.popover-title' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CONTENT :  '.popover-content' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ARROW :  '.popover-arrow' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Event  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    HIDE :  'hide'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    HIDDEN :  'hidden'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SHOW :  'show'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SHOWN :  'shown'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    INSERTED :  'inserted'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    CLICK :  'click'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    FOCUSIN :  'focusin'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    FOCUSOUT :  'focusout'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    MOUSEENTER :  'mouseenter'  +  EVENT _KEY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    MOUSELEAVE :  'mouseleave'  +  EVENT _KEY 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  Class  Definition 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   * / 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  Popover  =  ( function  ( _Tooltip )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    _inherits ( Popover ,  _Tooltip ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    function  Popover ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      _classCallCheck ( this ,  Popover ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      _get ( Object . getPrototypeOf ( Popover . prototype ) ,  'constructor' ,  this ) . apply ( this ,  arguments ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    / * * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  jQuery 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *  -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     * / 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    _createClass ( Popover ,  [ { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'isWithContent' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // overrides
 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  isWithContent ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  this . getTitle ( )  ||  this . _getContent ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'getTipElement' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  getTipElement ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  this . tip  =  this . tip  ||  $ ( this . config . template ) [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'setContent' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      value :  function  setContent ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  tip  =  this . getTipElement ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  title  =  this . getTitle ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  content  =  this . _getContent ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        var  titleElement  =  $ ( tip ) . find ( Selector . TITLE ) [ 0 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if  ( titleElement )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          titleElement [ this . config . html  ?  'innerHTML'  :  'innerText' ]  =  title ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        // we use append for html objects to maintain js events
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $ ( tip ) . find ( Selector . CONTENT ) . children ( ) . detach ( ) . end ( ) [ this . config . html  ?  typeof  content  ===  'string'  ?  'html'  :  'append'  :  'text' ] ( content ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        $ ( tip ) . removeClass ( ClassName . FADE ) . removeClass ( ClassName . IN ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        this . cleanupTether ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-09 22:08:20 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // private
 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_getContent' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  _getContent ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-19 11:28:45 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  this . element . getAttribute ( 'data-content' )  ||  ( typeof  this . config . content  ===  'function'  ?  this . config . content . call ( this . element )  :  this . config . content ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      // static
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    } ] ,  [ { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  '_jQueryInterface' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 06:48:54 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      value :  function  _jQueryInterface ( config )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        return  this . each ( function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  data  =  $ ( this ) . data ( DATA _KEY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          var  _config  =  typeof  config  ===  'object'  ?  config  :  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( ! data  &&  /destroy|hide/ . test ( config ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( ! data )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            data  =  new  Popover ( this ,  _config ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $ ( this ) . data ( DATA _KEY ,  data ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          if  ( typeof  config  ===  'string' )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            data [ config ] ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      key :  'VERSION' , 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      // getters
 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  VERSION ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'Default' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  Default ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'NAME' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  NAME ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'DATA_KEY' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  DATA _KEY ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'Event' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  Event ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'EVENT_KEY' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  EVENT _KEY ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ,  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      key :  'DefaultType' , 
							 
						 
					
						
							
								
									
										
										
										
											2015-08-13 12:17:43 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      get :  function  get ( )  { 
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        return  DefaultType ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ] ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    return  Popover ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ( Tooltip ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  $ . fn [ NAME ]  =  Popover . _jQueryInterface ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $ . fn [ NAME ] . Constructor  =  Popover ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  $ . fn [ NAME ] . noConflict  =  function  ( )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $ . fn [ NAME ]  =  JQUERY _NO _CONFLICT ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  Popover . _jQueryInterface ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  return  Popover ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ) ( jQuery ) ;  
						 
					
						
							
								
									
										
										
										
											2014-07-01 12:35:33 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-05-28 06:49:55 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								} ( jQuery ) ;