/ * !
* Bootstrap v4 . 0.0 ( https : //getbootstrap.com)
* Copyright 2011 - 2018 The Bootstrap Authors ( https : //github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
* /
( function ( global , factory ) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory ( exports , require ( 'jquery' ) , require ( 'popper.js' ) ) :
typeof define === 'function' && define . amd ? define ( [ 'exports' , 'jquery' , 'popper.js' ] , factory ) :
( factory ( ( global . bootstrap = { } ) , global . jQuery , global . Popper ) ) ;
} ( this , ( function ( exports , $ , Popper ) { 'use strict' ;
$ = $ && $ . hasOwnProperty ( 'default' ) ? $ [ 'default' ] : $ ;
Popper = Popper && Popper . hasOwnProperty ( 'default' ) ? Popper [ 'default' ] : Popper ;
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 ) ;
}
}
function _ createClass ( Constructor , protoProps , staticProps ) {
if ( protoProps ) _ defineProperties ( Constructor . prototype , protoProps ) ;
if ( staticProps ) _ defineProperties ( Constructor , staticProps ) ;
return Constructor ;
}
function _ extends ( ) {
_ extends = Object . assign || function ( target ) {
for ( var i = 1 ; i < arguments . length ; i ++ ) {
var source = arguments [ i ] ;
for ( var key in source ) {
if ( Object . prototype . hasOwnProperty . call ( source , key ) ) {
target [ key ] = source [ key ] ;
}
}
}
return target ;
} ;
return _ extends . apply ( this , arguments ) ;
}
function _ inheritsLoose ( subClass , superClass ) {
subClass . prototype = Object . create ( superClass . prototype ) ;
subClass . prototype . constructor = subClass ;
subClass . __ proto__ = superClass ;
}
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Bootstrap ( v4 . 0.0 ) : util . js
* Licensed under MIT ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
var Util = function ( $$$1 ) {
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Private TransitionEnd Helpers
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
var transition = false ;
var MAX_UID = 1000000 ; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
function toType ( obj ) {
return { } . toString . call ( obj ) . match ( /\s([a-zA-Z]+)/ ) [ 1 ] . toLowerCase ( ) ;
}
function getSpecialTransitionEndEvent ( ) {
return {
bindType : transition . end ,
delegateType : transition . end ,
handle : function handle ( event ) {
if ( $$$1 ( event . target ) . is ( this ) ) {
return event . handleObj . handler . apply ( this , arguments ) ; // eslint-disable-line prefer-rest-params
}
return undefined ; // eslint-disable-line no-undefined
}
} ;
}
function transitionEndTest ( ) {
if ( typeof window !== 'undefined' && window . QUnit ) {
return false ;
}
return {
end : 'transitionend'
} ;
}
function transitionEndEmulator ( duration ) {
var _ this = this ;
var called = false ;
$$$1 ( this ) . one ( Util . TRANSITION_END , function ( ) {
called = true ;
} ) ;
setTimeout ( function ( ) {
if ( ! called ) {
Util . triggerTransitionEnd ( _ this ) ;
}
} , duration ) ;
return this ;
}
function setTransitionEndSupport ( ) {
transition = transitionEndTest ( ) ;
$$$1 . fn . emulateTransitionEnd = transitionEndEmulator ;
if ( Util . supportsTransitionEnd ( ) ) {
$$$1 . event . special [ Util . TRANSITION_END ] = getSpecialTransitionEndEvent ( ) ;
}
}
function escapeId ( selector ) {
// We escape IDs in case of special selectors (selector = '#myId:something')
// $.escapeSelector does not exist in jQuery < 3
selector = typeof $$$1 . escapeSelector === 'function' ? $$$1 . escapeSelector ( selector ) . substr ( 1 ) : selector . replace ( /(:|\.|\[|\]|,|=|@)/g , '\\$1' ) ;
return selector ;
}
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Public Util Api
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
var Util = {
TRANSITION_END : 'bsTransitionEnd' ,
getUID : function getUID ( prefix ) {
do {
// eslint-disable-next-line no-bitwise
prefix += ~ ~ ( Math . random ( ) * MAX_UID ) ; // "~~" acts like a faster Math.floor() here
} while ( document . getElementById ( prefix ) ) ;
return prefix ;
} ,
getSelectorFromElement : function getSelectorFromElement ( element ) {
var selector = element . getAttribute ( 'data-target' ) ;
if ( ! selector || selector === '#' ) {
selector = element . getAttribute ( 'href' ) || '' ;
} // If it's an ID
if ( selector . charAt ( 0 ) === '#' ) {
selector = escapeId ( selector ) ;
}
try {
var $selector = $$$1 ( document ) . find ( selector ) ;
return $selector . length > 0 ? selector : null ;
} catch ( err ) {
return null ;
}
} ,
reflow : function reflow ( element ) {
return element . offsetHeight ;
} ,
triggerTransitionEnd : function triggerTransitionEnd ( element ) {
$$$1 ( element ) . trigger ( transition . end ) ;
} ,
supportsTransitionEnd : function supportsTransitionEnd ( ) {
return Boolean ( transition ) ;
} ,
isElement : function isElement ( obj ) {
return ( obj [ 0 ] || obj ) . nodeType ;
} ,
typeCheckConfig : function typeCheckConfig ( componentName , config , configTypes ) {
for ( var property in configTypes ) {
if ( Object . prototype . hasOwnProperty . call ( configTypes , property ) ) {
var expectedTypes = configTypes [ property ] ;
var value = config [ property ] ;
var valueType = value && Util . isElement ( value ) ? 'element' : toType ( value ) ;
if ( ! new RegExp ( expectedTypes ) . test ( valueType ) ) {
throw new Error ( componentName . toUpperCase ( ) + ": " + ( "Option \"" + property + "\" provided type \"" + valueType + "\" " ) + ( "but expected type \"" + expectedTypes + "\"." ) ) ;
}
}
}
}
} ;
setTransitionEndSupport ( ) ;
return Util ;
} ( $ ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Bootstrap ( v4 . 0.0 ) : alert . js
* Licensed under MIT ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
var Alert = function ( $$$1 ) {
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Constants
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
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 = $$$1 . fn [ NAME ] ;
var TRANSITION_DURATION = 150 ;
var Selector = {
DISMISS : '[data-dismiss="alert"]'
} ;
var Event = {
CLOSE : "close" + EVENT_KEY ,
CLOSED : "closed" + EVENT_KEY ,
CLICK_DATA_API : "click" + EVENT_KEY + DATA_API_KEY
} ;
var ClassName = {
ALERT : 'alert' ,
FADE : 'fade' ,
SHOW : 'show'
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Class Definition
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
} ;
var Alert =
/*#__PURE__*/
function ( ) {
function Alert ( element ) {
this . _ element = element ;
} // Getters
var _ proto = Alert . prototype ;
// Public
_ proto . close = function close ( element ) {
element = element || this . _ element ;
var rootElement = this . _ getRootElement ( element ) ;
var customEvent = this . _ triggerCloseEvent ( rootElement ) ;
if ( customEvent . isDefaultPrevented ( ) ) {
return ;
}
this . _ removeElement ( rootElement ) ;
} ;
_ proto . dispose = function dispose ( ) {
$$$1 . removeData ( this . _ element , DATA_KEY ) ;
this . _ element = null ;
} ; // Private
_ proto . _ getRootElement = function _ getRootElement ( element ) {
var selector = Util . getSelectorFromElement ( element ) ;
var parent = false ;
if ( selector ) {
parent = $$$1 ( selector ) [ 0 ] ;
}
if ( ! parent ) {
parent = $$$1 ( element ) . closest ( "." + ClassName . ALERT ) [ 0 ] ;
}
return parent ;
} ;
_ proto . _ triggerCloseEvent = function _ triggerCloseEvent ( element ) {
var closeEvent = $$$1 . Event ( Event . CLOSE ) ;
$$$1 ( element ) . trigger ( closeEvent ) ;
return closeEvent ;
} ;
_ proto . _ removeElement = function _ removeElement ( element ) {
var _ this = this ;
$$$1 ( element ) . removeClass ( ClassName . SHOW ) ;
if ( ! Util . supportsTransitionEnd ( ) || ! $$$1 ( element ) . hasClass ( ClassName . FADE ) ) {
this . _ destroyElement ( element ) ;
return ;
}
$$$1 ( element ) . one ( Util . TRANSITION_END , function ( event ) {
return _ this . _ destroyElement ( element , event ) ;
} ) . emulateTransitionEnd ( TRANSITION_DURATION ) ;
} ;
_ proto . _ destroyElement = function _ destroyElement ( element ) {
$$$1 ( element ) . detach ( ) . trigger ( Event . CLOSED ) . remove ( ) ;
} ; // Static
Alert . _ jQueryInterface = function _ jQueryInterface ( config ) {
return this . each ( function ( ) {
var $element = $$$1 ( this ) ;
var data = $element . data ( DATA_KEY ) ;
if ( ! data ) {
data = new Alert ( this ) ;
$element . data ( DATA_KEY , data ) ;
}
if ( config === 'close' ) {
data [ config ] ( this ) ;
}
} ) ;
} ;
Alert . _ handleDismiss = function _ handleDismiss ( alertInstance ) {
return function ( event ) {
if ( event ) {
event . preventDefault ( ) ;
}
alertInstance . close ( this ) ;
} ;
} ;
_ createClass ( Alert , null , [ {
key : "VERSION" ,
get : function get ( ) {
return VERSION ;
}
} ] ) ;
return Alert ;
} ( ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Data Api implementation
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
$$$1 ( document ) . on ( Event . CLICK_DATA_API , Selector . DISMISS , Alert . _ handleDismiss ( new Alert ( ) ) ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* jQuery
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
$$$1 . fn [ NAME ] = Alert . _ jQueryInterface ;
$$$1 . fn [ NAME ] . Constructor = Alert ;
$$$1 . fn [ NAME ] . noConflict = function ( ) {
$$$1 . fn [ NAME ] = JQUERY_NO_CONFLICT ;
return Alert . _ jQueryInterface ;
} ;
return Alert ;
} ( $ ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Bootstrap ( v4 . 0.0 ) : button . js
* Licensed under MIT ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
var Button = function ( $$$1 ) {
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* 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 = $$$1 . 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 = {
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 )
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Class Definition
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
} ;
var Button =
/*#__PURE__*/
function ( ) {
function Button ( element ) {
this . _ element = element ;
} // Getters
var _ proto = Button . prototype ;
// Public
_ proto . toggle = function toggle ( ) {
var triggerChangeEvent = true ;
var addAriaPressed = true ;
var rootElement = $$$1 ( this . _ element ) . closest ( Selector . DATA_TOGGLE ) [ 0 ] ;
if ( rootElement ) {
var input = $$$1 ( this . _ element ) . find ( Selector . INPUT ) [ 0 ] ;
if ( input ) {
if ( input . type === 'radio' ) {
if ( input . checked && $$$1 ( this . _ element ) . hasClass ( ClassName . ACTIVE ) ) {
triggerChangeEvent = false ;
} else {
var activeElement = $$$1 ( rootElement ) . find ( Selector . ACTIVE ) [ 0 ] ;
if ( activeElement ) {
$$$1 ( activeElement ) . removeClass ( ClassName . ACTIVE ) ;
}
}
}
if ( triggerChangeEvent ) {
if ( input . hasAttribute ( 'disabled' ) || rootElement . hasAttribute ( 'disabled' ) || input . classList . contains ( 'disabled' ) || rootElement . classList . contains ( 'disabled' ) ) {
return ;
}
input . checked = ! $$$1 ( this . _ element ) . hasClass ( ClassName . ACTIVE ) ;
$$$1 ( input ) . trigger ( 'change' ) ;
}
input . focus ( ) ;
addAriaPressed = false ;
}
}
if ( addAriaPressed ) {
this . _ element . setAttribute ( 'aria-pressed' , ! $$$1 ( this . _ element ) . hasClass ( ClassName . ACTIVE ) ) ;
}
if ( triggerChangeEvent ) {
$$$1 ( this . _ element ) . toggleClass ( ClassName . ACTIVE ) ;
}
} ;
_ proto . dispose = function dispose ( ) {
$$$1 . removeData ( this . _ element , DATA_KEY ) ;
this . _ element = null ;
} ; // Static
Button . _ jQueryInterface = function _ jQueryInterface ( config ) {
return this . each ( function ( ) {
var data = $$$1 ( this ) . data ( DATA_KEY ) ;
if ( ! data ) {
data = new Button ( this ) ;
$$$1 ( this ) . data ( DATA_KEY , data ) ;
}
if ( config === 'toggle' ) {
data [ config ] ( ) ;
}
} ) ;
} ;
_ createClass ( Button , null , [ {
key : "VERSION" ,
get : function get ( ) {
return VERSION ;
}
} ] ) ;
return Button ;
} ( ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Data Api implementation
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
$$$1 ( document ) . on ( Event . CLICK_DATA_API , Selector . DATA_TOGGLE_CARROT , function ( event ) {
event . preventDefault ( ) ;
var button = event . target ;
if ( ! $$$1 ( button ) . hasClass ( ClassName . BUTTON ) ) {
button = $$$1 ( button ) . closest ( Selector . BUTTON ) ;
}
Button . _ jQueryInterface . call ( $$$1 ( button ) , 'toggle' ) ;
} ) . on ( Event . FOCUS_BLUR_DATA_API , Selector . DATA_TOGGLE_CARROT , function ( event ) {
var button = $$$1 ( event . target ) . closest ( Selector . BUTTON ) [ 0 ] ;
$$$1 ( button ) . toggleClass ( ClassName . FOCUS , /^focus(in)?$/ . test ( event . type ) ) ;
} ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* jQuery
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
$$$1 . fn [ NAME ] = Button . _ jQueryInterface ;
$$$1 . fn [ NAME ] . Constructor = Button ;
$$$1 . fn [ NAME ] . noConflict = function ( ) {
$$$1 . fn [ NAME ] = JQUERY_NO_CONFLICT ;
return Button . _ jQueryInterface ;
} ;
return Button ;
} ( $ ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Bootstrap ( v4 . 0.0 ) : carousel . js
* Licensed under MIT ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
var Carousel = function ( $$$1 ) {
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* 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 = $$$1 . fn [ NAME ] ;
var TRANSITION_DURATION = 600 ;
var ARROW_LEFT_KEYCODE = 37 ; // KeyboardEvent.which value for left arrow key
var ARROW_RIGHT_KEYCODE = 39 ; // KeyboardEvent.which value for right arrow key
var TOUCHEVENT_COMPAT_WAIT = 500 ; // Time for mouse compat events to fire after touch
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' ,
PREV : 'prev' ,
LEFT : 'left' ,
RIGHT : 'right'
} ;
var Event = {
SLIDE : "slide" + EVENT_KEY ,
SLID : "slid" + EVENT_KEY ,
KEYDOWN : "keydown" + EVENT_KEY ,
MOUSEENTER : "mouseenter" + EVENT_KEY ,
MOUSELEAVE : "mouseleave" + EVENT_KEY ,
TOUCHEND : "touchend" + EVENT_KEY ,
LOAD_DATA_API : "load" + EVENT_KEY + DATA_API_KEY ,
CLICK_DATA_API : "click" + EVENT_KEY + DATA_API_KEY
} ;
var ClassName = {
CAROUSEL : 'carousel' ,
ACTIVE : 'active' ,
SLIDE : 'slide' ,
RIGHT : 'carousel-item-right' ,
LEFT : 'carousel-item-left' ,
NEXT : 'carousel-item-next' ,
PREV : 'carousel-item-prev' ,
ITEM : 'carousel-item'
} ;
var Selector = {
ACTIVE : '.active' ,
ACTIVE_ITEM : '.active.carousel-item' ,
ITEM : '.carousel-item' ,
NEXT_PREV : '.carousel-item-next, .carousel-item-prev' ,
INDICATORS : '.carousel-indicators' ,
DATA_SLIDE : '[data-slide], [data-slide-to]' ,
DATA_RIDE : '[data-ride="carousel"]'
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Class Definition
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
} ;
var Carousel =
/*#__PURE__*/
function ( ) {
function Carousel ( element , config ) {
this . _ items = null ;
this . _ interval = null ;
this . _ activeElement = null ;
this . _ isPaused = false ;
this . _ isSliding = false ;
this . touchTimeout = null ;
this . _ config = this . _ getConfig ( config ) ;
this . _ element = $$$1 ( element ) [ 0 ] ;
this . _ indicatorsElement = $$$1 ( this . _ element ) . find ( Selector . INDICATORS ) [ 0 ] ;
this . _ addEventListeners ( ) ;
} // Getters
var _ proto = Carousel . prototype ;
// Public
_ proto . next = function next ( ) {
if ( ! this . _ isSliding ) {
this . _ slide ( Direction . NEXT ) ;
}
} ;
_ proto . nextWhenVisible = function nextWhenVisible ( ) {
// Don't call next when the page isn't visible
// or the carousel or its parent isn't visible
if ( ! document . hidden && $$$1 ( this . _ element ) . is ( ':visible' ) && $$$1 ( this . _ element ) . css ( 'visibility' ) !== 'hidden' ) {
this . next ( ) ;
}
} ;
_ proto . prev = function prev ( ) {
if ( ! this . _ isSliding ) {
this . _ slide ( Direction . PREV ) ;
}
} ;
_ proto . pause = function pause ( event ) {
if ( ! event ) {
this . _ isPaused = true ;
}
if ( $$$1 ( this . _ element ) . find ( Selector . NEXT_PREV ) [ 0 ] && Util . supportsTransitionEnd ( ) ) {
Util . triggerTransitionEnd ( this . _ element ) ;
this . cycle ( true ) ;
}
clearInterval ( this . _ interval ) ;
this . _ interval = null ;
} ;
_ proto . cycle = function cycle ( event ) {
if ( ! event ) {
this . _ isPaused = false ;
}
if ( this . _ interval ) {
clearInterval ( this . _ interval ) ;
this . _ interval = null ;
}
if ( this . _ config . interval && ! this . _ isPaused ) {
this . _ interval = setInterval ( ( document . visibilityState ? this . nextWhenVisible : this . next ) . bind ( this ) , this . _ config . interval ) ;
}
} ;
_ proto . to = function to ( index ) {
var _ this = this ;
this . _ activeElement = $$$1 ( this . _ element ) . find ( Selector . ACTIVE_ITEM ) [ 0 ] ;
var activeIndex = this . _ getItemIndex ( this . _ activeElement ) ;
if ( index > this . _ items . length - 1 || index < 0 ) {
return ;
}
if ( this . _ isSliding ) {
$$$1 ( this . _ element ) . one ( Event . SLID , function ( ) {
return _ this . to ( index ) ;
} ) ;
return ;
}
if ( activeIndex === index ) {
this . pause ( ) ;
this . cycle ( ) ;
return ;
}
var direction = index > activeIndex ? Direction . NEXT : Direction . PREV ;
this . _ slide ( direction , this . _ items [ index ] ) ;
} ;
_ proto . dispose = function dispose ( ) {
$$$1 ( this . _ element ) . off ( EVENT_KEY ) ;
$$$1 . 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 ;
} ; // Private
_ proto . _ getConfig = function _ getConfig ( config ) {
config = _ extends ( { } , Default , config ) ;
Util . typeCheckConfig ( NAME , config , DefaultType ) ;
return config ;
} ;
_ proto . _ addEventListeners = function _ addEventListeners ( ) {
var _ this2 = this ;
if ( this . _ config . keyboard ) {
$$$1 ( this . _ element ) . on ( Event . KEYDOWN , function ( event ) {
return _ this2 . _ keydown ( event ) ;
} ) ;
}
if ( this . _ config . pause === 'hover' ) {
$$$1 ( this . _ element ) . on ( Event . MOUSEENTER , function ( event ) {
return _ this2 . pause ( event ) ;
} ) . on ( Event . MOUSELEAVE , function ( event ) {
return _ this2 . cycle ( event ) ;
} ) ;
if ( 'ontouchstart' in document . documentElement ) {
// If it's a touch-enabled device, mouseenter/leave are fired as
// part of the mouse compatibility events on first tap - the carousel
// would stop cycling until user tapped out of it;
// here, we listen for touchend, explicitly pause the carousel
// (as if it's the second time we tap on it, mouseenter compat event
// is NOT fired) and after a timeout (to allow for mouse compatibility
// events to fire) we explicitly restart cycling
$$$1 ( this . _ element ) . on ( Event . TOUCHEND , function ( ) {
_ this2 . pause ( ) ;
if ( _ this2 . touchTimeout ) {
clearTimeout ( _ this2 . touchTimeout ) ;
}
_ this2 . touchTimeout = setTimeout ( function ( event ) {
return _ this2 . cycle ( event ) ;
} , TOUCHEVENT_COMPAT_WAIT + _ this2 . _ config . interval ) ;
} ) ;
}
}
} ;
_ proto . _ keydown = function _ keydown ( event ) {
if ( /input|textarea/i . test ( event . target . tagName ) ) {
return ;
}
switch ( event . which ) {
case ARROW_LEFT_KEYCODE :
event . preventDefault ( ) ;
this . prev ( ) ;
break ;
case ARROW_RIGHT_KEYCODE :
event . preventDefault ( ) ;
this . next ( ) ;
break ;
default :
}
} ;
_ proto . _ getItemIndex = function _ getItemIndex ( element ) {
this . _ items = $$$1 . makeArray ( $$$1 ( element ) . parent ( ) . find ( Selector . ITEM ) ) ;
return this . _ items . indexOf ( element ) ;
} ;
_ proto . _ getItemByDirection = function _ getItemByDirection ( direction , activeElement ) {
var isNextDirection = direction === Direction . NEXT ;
var isPrevDirection = direction === Direction . PREV ;
var activeIndex = this . _ getItemIndex ( activeElement ) ;
var lastItemIndex = this . _ items . length - 1 ;
var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex ;
if ( isGoingToWrap && ! this . _ config . wrap ) {
return activeElement ;
}
var delta = direction === Direction . PREV ? - 1 : 1 ;
var itemIndex = ( activeIndex + delta ) % this . _ items . length ;
return itemIndex === - 1 ? this . _ items [ this . _ items . length - 1 ] : this . _ items [ itemIndex ] ;
} ;
_ proto . _ triggerSlideEvent = function _ triggerSlideEvent ( relatedTarget , eventDirectionName ) {
var targetIndex = this . _ getItemIndex ( relatedTarget ) ;
var fromIndex = this . _ getItemIndex ( $$$1 ( this . _ element ) . find ( Selector . ACTIVE_ITEM ) [ 0 ] ) ;
var slideEvent = $$$1 . Event ( Event . SLIDE , {
relatedTarget : relatedTarget ,
direction : eventDirectionName ,
from : fromIndex ,
to : targetIndex
} ) ;
$$$1 ( this . _ element ) . trigger ( slideEvent ) ;
return slideEvent ;
} ;
_ proto . _ setActiveIndicatorElement = function _ setActiveIndicatorElement ( element ) {
if ( this . _ indicatorsElement ) {
$$$1 ( this . _ indicatorsElement ) . find ( Selector . ACTIVE ) . removeClass ( ClassName . ACTIVE ) ;
var nextIndicator = this . _ indicatorsElement . children [ this . _ getItemIndex ( element ) ] ;
if ( nextIndicator ) {
$$$1 ( nextIndicator ) . addClass ( ClassName . ACTIVE ) ;
}
}
} ;
_ proto . _ slide = function _ slide ( direction , element ) {
var _ this3 = this ;
var activeElement = $$$1 ( this . _ element ) . find ( Selector . ACTIVE_ITEM ) [ 0 ] ;
var activeElementIndex = this . _ getItemIndex ( activeElement ) ;
var nextElement = element || activeElement && this . _ getItemByDirection ( direction , activeElement ) ;
var nextElementIndex = this . _ getItemIndex ( nextElement ) ;
var isCycling = Boolean ( this . _ interval ) ;
var directionalClassName ;
var orderClassName ;
var eventDirectionName ;
if ( direction === Direction . NEXT ) {
directionalClassName = ClassName . LEFT ;
orderClassName = ClassName . NEXT ;
eventDirectionName = Direction . LEFT ;
} else {
directionalClassName = ClassName . RIGHT ;
orderClassName = ClassName . PREV ;
eventDirectionName = Direction . RIGHT ;
}
if ( nextElement && $$$1 ( nextElement ) . hasClass ( ClassName . ACTIVE ) ) {
this . _ isSliding = false ;
return ;
}
var slideEvent = this . _ triggerSlideEvent ( nextElement , eventDirectionName ) ;
if ( slideEvent . isDefaultPrevented ( ) ) {
return ;
}
if ( ! activeElement || ! nextElement ) {
// Some weirdness is happening, so we bail
return ;
}
this . _ isSliding = true ;
if ( isCycling ) {
this . pause ( ) ;
}
this . _ setActiveIndicatorElement ( nextElement ) ;
var slidEvent = $$$1 . Event ( Event . SLID , {
relatedTarget : nextElement ,
direction : eventDirectionName ,
from : activeElementIndex ,
to : nextElementIndex
} ) ;
if ( Util . supportsTransitionEnd ( ) && $$$1 ( this . _ element ) . hasClass ( ClassName . SLIDE ) ) {
$$$1 ( nextElement ) . addClass ( orderClassName ) ;
Util . reflow ( nextElement ) ;
$$$1 ( activeElement ) . addClass ( directionalClassName ) ;
$$$1 ( nextElement ) . addClass ( directionalClassName ) ;
$$$1 ( activeElement ) . one ( Util . TRANSITION_END , function ( ) {
$$$1 ( nextElement ) . removeClass ( directionalClassName + " " + orderClassName ) . addClass ( ClassName . ACTIVE ) ;
$$$1 ( activeElement ) . removeClass ( ClassName . ACTIVE + " " + orderClassName + " " + directionalClassName ) ;
_ this3 . _ isSliding = false ;
setTimeout ( function ( ) {
return $$$1 ( _ this3 . _ element ) . trigger ( slidEvent ) ;
} , 0 ) ;
} ) . emulateTransitionEnd ( TRANSITION_DURATION ) ;
} else {
$$$1 ( activeElement ) . removeClass ( ClassName . ACTIVE ) ;
$$$1 ( nextElement ) . addClass ( ClassName . ACTIVE ) ;
this . _ isSliding = false ;
$$$1 ( this . _ element ) . trigger ( slidEvent ) ;
}
if ( isCycling ) {
this . cycle ( ) ;
}
} ; // Static
Carousel . _ jQueryInterface = function _ jQueryInterface ( config ) {
return this . each ( function ( ) {
var data = $$$1 ( this ) . data ( DATA_KEY ) ;
var _ config = _ extends ( { } , Default , $$$1 ( this ) . data ( ) ) ;
if ( typeof config === 'object' ) {
_ config = _ extends ( { } , _ config , config ) ;
}
var action = typeof config === 'string' ? config : _ config . slide ;
if ( ! data ) {
data = new Carousel ( this , _ config ) ;
$$$1 ( this ) . data ( DATA_KEY , data ) ;
}
if ( typeof config === 'number' ) {
data . to ( config ) ;
} else if ( typeof action === 'string' ) {
if ( typeof data [ action ] === 'undefined' ) {
throw new TypeError ( "No method named \"" + action + "\"" ) ;
}
data [ action ] ( ) ;
} else if ( _ config . interval ) {
data . pause ( ) ;
data . cycle ( ) ;
}
} ) ;
} ;
Carousel . _ dataApiClickHandler = function _ dataApiClickHandler ( event ) {
var selector = Util . getSelectorFromElement ( this ) ;
if ( ! selector ) {
return ;
}
var target = $$$1 ( selector ) [ 0 ] ;
if ( ! target || ! $$$1 ( target ) . hasClass ( ClassName . CAROUSEL ) ) {
return ;
}
var config = _ extends ( { } , $$$1 ( target ) . data ( ) , $$$1 ( this ) . data ( ) ) ;
var slideIndex = this . getAttribute ( 'data-slide-to' ) ;
if ( slideIndex ) {
config . interval = false ;
}
Carousel . _ jQueryInterface . call ( $$$1 ( target ) , config ) ;
if ( slideIndex ) {
$$$1 ( target ) . data ( DATA_KEY ) . to ( slideIndex ) ;
}
event . preventDefault ( ) ;
} ;
_ createClass ( Carousel , null , [ {
key : "VERSION" ,
get : function get ( ) {
return VERSION ;
}
} , {
key : "Default" ,
get : function get ( ) {
return Default ;
}
} ] ) ;
return Carousel ;
} ( ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Data Api implementation
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
$$$1 ( document ) . on ( Event . CLICK_DATA_API , Selector . DATA_SLIDE , Carousel . _ dataApiClickHandler ) ;
$$$1 ( window ) . on ( Event . LOAD_DATA_API , function ( ) {
$$$1 ( Selector . DATA_RIDE ) . each ( function ( ) {
var $carousel = $$$1 ( this ) ;
Carousel . _ jQueryInterface . call ( $carousel , $carousel . data ( ) ) ;
} ) ;
} ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* jQuery
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
$$$1 . fn [ NAME ] = Carousel . _ jQueryInterface ;
$$$1 . fn [ NAME ] . Constructor = Carousel ;
$$$1 . fn [ NAME ] . noConflict = function ( ) {
$$$1 . fn [ NAME ] = JQUERY_NO_CONFLICT ;
return Carousel . _ jQueryInterface ;
} ;
return Carousel ;
} ( $ ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Bootstrap ( v4 . 0.0 ) : collapse . js
* Licensed under MIT ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
var Collapse = function ( $$$1 ) {
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* 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 = $$$1 . fn [ NAME ] ;
var TRANSITION_DURATION = 600 ;
var Default = {
toggle : true ,
parent : ''
} ;
var DefaultType = {
toggle : 'boolean' ,
parent : '(string|element)'
} ;
var Event = {
SHOW : "show" + EVENT_KEY ,
SHOWN : "shown" + EVENT_KEY ,
HIDE : "hide" + EVENT_KEY ,
HIDDEN : "hidden" + EVENT_KEY ,
CLICK_DATA_API : "click" + EVENT_KEY + DATA_API_KEY
} ;
var ClassName = {
SHOW : 'show' ,
COLLAPSE : 'collapse' ,
COLLAPSING : 'collapsing' ,
COLLAPSED : 'collapsed'
} ;
var Dimension = {
WIDTH : 'width' ,
HEIGHT : 'height'
} ;
var Selector = {
ACTIVES : '.show, .collapsing' ,
DATA_TOGGLE : '[data-toggle="collapse"]'
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Class Definition
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
} ;
var Collapse =
/*#__PURE__*/
function ( ) {
function Collapse ( element , config ) {
this . _ isTransitioning = false ;
this . _ element = element ;
this . _ config = this . _ getConfig ( config ) ;
this . _ triggerArray = $$$1 . makeArray ( $$$1 ( "[data-toggle=\"collapse\"][href=\"#" + element . id + "\"]," + ( "[data-toggle=\"collapse\"][data-target=\"#" + element . id + "\"]" ) ) ) ;
var tabToggles = $$$1 ( Selector . DATA_TOGGLE ) ;
for ( var i = 0 ; i < tabToggles . length ; i ++ ) {
var elem = tabToggles [ i ] ;
var selector = Util . getSelectorFromElement ( elem ) ;
if ( selector !== null && $$$1 ( selector ) . filter ( element ) . length > 0 ) {
this . _ selector = selector ;
this . _ triggerArray . push ( elem ) ;
}
}
this . _ parent = this . _ config . parent ? this . _ getParent ( ) : null ;
if ( ! this . _ config . parent ) {
this . _ addAriaAndCollapsedClass ( this . _ element , this . _ triggerArray ) ;
}
if ( this . _ config . toggle ) {
this . toggle ( ) ;
}
} // Getters
var _ proto = Collapse . prototype ;
// Public
_ proto . toggle = function toggle ( ) {
if ( $$$1 ( this . _ element ) . hasClass ( ClassName . SHOW ) ) {
this . hide ( ) ;
} else {
this . show ( ) ;
}
} ;
_ proto . show = function show ( ) {
var _ this = this ;
if ( this . _ isTransitioning || $$$1 ( this . _ element ) . hasClass ( ClassName . SHOW ) ) {
return ;
}
var actives ;
var activesData ;
if ( this . _ parent ) {
actives = $$$1 . makeArray ( $$$1 ( this . _ parent ) . find ( Selector . ACTIVES ) . filter ( "[data-parent=\"" + this . _ config . parent + "\"]" ) ) ;
if ( actives . length === 0 ) {
actives = null ;
}
}
if ( actives ) {
activesData = $$$1 ( actives ) . not ( this . _ selector ) . data ( DATA_KEY ) ;
if ( activesData && activesData . _ isTransitioning ) {
return ;
}
}
var startEvent = $$$1 . Event ( Event . SHOW ) ;
$$$1 ( this . _ element ) . trigger ( startEvent ) ;
if ( startEvent . isDefaultPrevented ( ) ) {
return ;
}
if ( actives ) {
Collapse . _ jQueryInterface . call ( $$$1 ( actives ) . not ( this . _ selector ) , 'hide' ) ;
if ( ! activesData ) {
$$$1 ( actives ) . data ( DATA_KEY , null ) ;
}
}
var dimension = this . _ getDimension ( ) ;
$$$1 ( this . _ element ) . removeClass ( ClassName . COLLAPSE ) . addClass ( ClassName . COLLAPSING ) ;
this . _ element . style [ dimension ] = 0 ;
if ( this . _ triggerArray . length > 0 ) {
$$$1 ( this . _ triggerArray ) . removeClass ( ClassName . COLLAPSED ) . attr ( 'aria-expanded' , true ) ;
}
this . setTransitioning ( true ) ;
var complete = function complete ( ) {
$$$1 ( _ this . _ element ) . removeClass ( ClassName . COLLAPSING ) . addClass ( ClassName . COLLAPSE ) . addClass ( ClassName . SHOW ) ;
_ this . _ element . style [ dimension ] = '' ;
_ this . setTransitioning ( false ) ;
$$$1 ( _ this . _ element ) . trigger ( Event . SHOWN ) ;
} ;
if ( ! Util . supportsTransitionEnd ( ) ) {
complete ( ) ;
return ;
}
var capitalizedDimension = dimension [ 0 ] . toUpperCase ( ) + dimension . slice ( 1 ) ;
var scrollSize = "scroll" + capitalizedDimension ;
$$$1 ( this . _ element ) . one ( Util . TRANSITION_END , complete ) . emulateTransitionEnd ( TRANSITION_DURATION ) ;
this . _ element . style [ dimension ] = this . _ element [ scrollSize ] + "px" ;
} ;
_ proto . hide = function hide ( ) {
var _ this2 = this ;
if ( this . _ isTransitioning || ! $$$1 ( this . _ element ) . hasClass ( ClassName . SHOW ) ) {
return ;
}
var startEvent = $$$1 . Event ( Event . HIDE ) ;
$$$1 ( this . _ element ) . trigger ( startEvent ) ;
if ( startEvent . isDefaultPrevented ( ) ) {
return ;
}
var dimension = this . _ getDimension ( ) ;
this . _ element . style [ dimension ] = this . _ element . getBoundingClientRect ( ) [ dimension ] + "px" ;
Util . reflow ( this . _ element ) ;
$$$1 ( this . _ element ) . addClass ( ClassName . COLLAPSING ) . removeClass ( ClassName . COLLAPSE ) . removeClass ( ClassName . SHOW ) ;
if ( this . _ triggerArray . length > 0 ) {
for ( var i = 0 ; i < this . _ triggerArray . length ; i ++ ) {
var trigger = this . _ triggerArray [ i ] ;
var selector = Util . getSelectorFromElement ( trigger ) ;
if ( selector !== null ) {
var $elem = $$$1 ( selector ) ;
if ( ! $elem . hasClass ( ClassName . SHOW ) ) {
$$$1 ( trigger ) . addClass ( ClassName . COLLAPSED ) . attr ( 'aria-expanded' , false ) ;
}
}
}
}
this . setTransitioning ( true ) ;
var complete = function complete ( ) {
_ this2 . setTransitioning ( false ) ;
$$$1 ( _ this2 . _ element ) . removeClass ( ClassName . COLLAPSING ) . addClass ( ClassName . COLLAPSE ) . trigger ( Event . HIDDEN ) ;
} ;
this . _ element . style [ dimension ] = '' ;
if ( ! Util . supportsTransitionEnd ( ) ) {
complete ( ) ;
return ;
}
$$$1 ( this . _ element ) . one ( Util . TRANSITION_END , complete ) . emulateTransitionEnd ( TRANSITION_DURATION ) ;
} ;
_ proto . setTransitioning = function setTransitioning ( isTransitioning ) {
this . _ isTransitioning = isTransitioning ;
} ;
_ proto . dispose = function dispose ( ) {
$$$1 . removeData ( this . _ element , DATA_KEY ) ;
this . _ config = null ;
this . _ parent = null ;
this . _ element = null ;
this . _ triggerArray = null ;
this . _ isTransitioning = null ;
} ; // Private
_ proto . _ getConfig = function _ getConfig ( config ) {
config = _ extends ( { } , Default , config ) ;
config . toggle = Boolean ( config . toggle ) ; // Coerce string values
Util . typeCheckConfig ( NAME , config , DefaultType ) ;
return config ;
} ;
_ proto . _ getDimension = function _ getDimension ( ) {
var hasWidth = $$$1 ( this . _ element ) . hasClass ( Dimension . WIDTH ) ;
return hasWidth ? Dimension . WIDTH : Dimension . HEIGHT ;
} ;
_ proto . _ getParent = function _ getParent ( ) {
var _ this3 = this ;
var parent = null ;
if ( Util . isElement ( this . _ config . parent ) ) {
parent = this . _ config . parent ; // It's a jQuery object
if ( typeof this . _ config . parent . jquery !== 'undefined' ) {
parent = this . _ config . parent [ 0 ] ;
}
} else {
parent = $$$1 ( this . _ config . parent ) [ 0 ] ;
}
var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this . _ config . parent + "\"]" ;
$$$1 ( parent ) . find ( selector ) . each ( function ( i , element ) {
_ this3 . _ addAriaAndCollapsedClass ( Collapse . _ getTargetFromElement ( element ) , [ element ] ) ;
} ) ;
return parent ;
} ;
_ proto . _ addAriaAndCollapsedClass = function _ addAriaAndCollapsedClass ( element , triggerArray ) {
if ( element ) {
var isOpen = $$$1 ( element ) . hasClass ( ClassName . SHOW ) ;
if ( triggerArray . length > 0 ) {
$$$1 ( triggerArray ) . toggleClass ( ClassName . COLLAPSED , ! isOpen ) . attr ( 'aria-expanded' , isOpen ) ;
}
}
} ; // Static
Collapse . _ getTargetFromElement = function _ getTargetFromElement ( element ) {
var selector = Util . getSelectorFromElement ( element ) ;
return selector ? $$$1 ( selector ) [ 0 ] : null ;
} ;
Collapse . _ jQueryInterface = function _ jQueryInterface ( config ) {
return this . each ( function ( ) {
var $this = $$$1 ( this ) ;
var data = $this . data ( DATA_KEY ) ;
var _ config = _ extends ( { } , Default , $this . data ( ) , typeof config === 'object' && config ) ;
if ( ! data && _ config . toggle && /show|hide/ . test ( config ) ) {
_ config . toggle = false ;
}
if ( ! data ) {
data = new Collapse ( this , _ config ) ;
$this . data ( DATA_KEY , data ) ;
}
if ( typeof config === 'string' ) {
if ( typeof data [ config ] === 'undefined' ) {
throw new TypeError ( "No method named \"" + config + "\"" ) ;
}
data [ config ] ( ) ;
}
} ) ;
} ;
_ createClass ( Collapse , null , [ {
key : "VERSION" ,
get : function get ( ) {
return VERSION ;
}
} , {
key : "Default" ,
get : function get ( ) {
return Default ;
}
} ] ) ;
return Collapse ;
} ( ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Data Api implementation
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
$$$1 ( document ) . on ( Event . CLICK_DATA_API , Selector . DATA_TOGGLE , function ( event ) {
// preventDefault only for <a> elements (which change the URL) not inside the collapsible element
if ( event . currentTarget . tagName === 'A' ) {
event . preventDefault ( ) ;
}
var $trigger = $$$1 ( this ) ;
var selector = Util . getSelectorFromElement ( this ) ;
$$$1 ( selector ) . each ( function ( ) {
var $target = $$$1 ( this ) ;
var data = $target . data ( DATA_KEY ) ;
var config = data ? 'toggle' : $trigger . data ( ) ;
Collapse . _ jQueryInterface . call ( $target , config ) ;
} ) ;
} ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* jQuery
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
$$$1 . fn [ NAME ] = Collapse . _ jQueryInterface ;
$$$1 . fn [ NAME ] . Constructor = Collapse ;
$$$1 . fn [ NAME ] . noConflict = function ( ) {
$$$1 . fn [ NAME ] = JQUERY_NO_CONFLICT ;
return Collapse . _ jQueryInterface ;
} ;
return Collapse ;
} ( $ ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Bootstrap ( v4 . 0.0 ) : dropdown . js
* Licensed under MIT ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
var Dropdown = function ( $$$1 ) {
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* 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 = $$$1 . fn [ NAME ] ;
var ESCAPE_KEYCODE = 27 ; // KeyboardEvent.which value for Escape (Esc) key
var SPACE_KEYCODE = 32 ; // KeyboardEvent.which value for space key
var TAB_KEYCODE = 9 ; // KeyboardEvent.which value for tab key
var ARROW_UP_KEYCODE = 38 ; // KeyboardEvent.which value for up arrow key
var ARROW_DOWN_KEYCODE = 40 ; // KeyboardEvent.which value for down arrow key
var RIGHT_MOUSE_BUTTON_WHICH = 3 ; // MouseEvent.which value for the right button (assuming a right-handed mouse)
var REGEXP_KEYDOWN = new RegExp ( ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE ) ;
var Event = {
HIDE : "hide" + EVENT_KEY ,
HIDDEN : "hidden" + EVENT_KEY ,
SHOW : "show" + EVENT_KEY ,
SHOWN : "shown" + EVENT_KEY ,
CLICK : "click" + EVENT_KEY ,
CLICK_DATA_API : "click" + EVENT_KEY + DATA_API_KEY ,
KEYDOWN_DATA_API : "keydown" + EVENT_KEY + DATA_API_KEY ,
KEYUP_DATA_API : "keyup" + EVENT_KEY + DATA_API_KEY
} ;
var ClassName = {
DISABLED : 'disabled' ,
SHOW : 'show' ,
DROPUP : 'dropup' ,
DROPRIGHT : 'dropright' ,
DROPLEFT : 'dropleft' ,
MENURIGHT : 'dropdown-menu-right' ,
MENULEFT : 'dropdown-menu-left' ,
POSITION_STATIC : 'position-static'
} ;
var Selector = {
DATA_TOGGLE : '[data-toggle="dropdown"]' ,
FORM_CHILD : '.dropdown form' ,
MENU : '.dropdown-menu' ,
NAVBAR_NAV : '.navbar-nav' ,
VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled)'
} ;
var AttachmentMap = {
TOP : 'top-start' ,
TOPEND : 'top-end' ,
BOTTOM : 'bottom-start' ,
BOTTOMEND : 'bottom-end' ,
RIGHT : 'right-start' ,
RIGHTEND : 'right-end' ,
LEFT : 'left-start' ,
LEFTEND : 'left-end'
} ;
var Default = {
offset : 0 ,
flip : true ,
boundary : 'scrollParent'
} ;
var DefaultType = {
offset : '(number|string|function)' ,
flip : 'boolean' ,
boundary : '(string|element)'
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Class Definition
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
} ;
var Dropdown =
/*#__PURE__*/
function ( ) {
function Dropdown ( element , config ) {
this . _ element = element ;
this . _ popper = null ;
this . _ config = this . _ getConfig ( config ) ;
this . _ menu = this . _ getMenuElement ( ) ;
this . _ inNavbar = this . _ detectNavbar ( ) ;
this . _ addEventListeners ( ) ;
} // Getters
var _ proto = Dropdown . prototype ;
// Public
_ proto . toggle = function toggle ( ) {
if ( this . _ element . disabled || $$$1 ( this . _ element ) . hasClass ( ClassName . DISABLED ) ) {
return ;
}
var parent = Dropdown . _ getParentFromElement ( this . _ element ) ;
var isActive = $$$1 ( this . _ menu ) . hasClass ( ClassName . SHOW ) ;
Dropdown . _ clearMenus ( ) ;
if ( isActive ) {
return ;
}
var relatedTarget = {
relatedTarget : this . _ element
} ;
var showEvent = $$$1 . Event ( Event . SHOW , relatedTarget ) ;
$$$1 ( parent ) . trigger ( showEvent ) ;
if ( showEvent . isDefaultPrevented ( ) ) {
return ;
} // Disable totally Popper.js for Dropdown in Navbar
if ( ! this . _ inNavbar ) {
/ * *
* Check for Popper dependency
* Popper - https : //popper.js.org
* /
if ( typeof Popper === 'undefined' ) {
throw new TypeError ( 'Bootstrap dropdown require Popper.js (https://popper.js.org)' ) ;
}
var element = this . _ element ; // For dropup with alignment we use the parent as popper container
if ( $$$1 ( parent ) . hasClass ( ClassName . DROPUP ) ) {
if ( $$$1 ( this . _ menu ) . hasClass ( ClassName . MENULEFT ) || $$$1 ( this . _ menu ) . hasClass ( ClassName . MENURIGHT ) ) {
element = parent ;
}
} // If boundary is not `scrollParent`, then set position to `static`
// to allow the menu to "escape" the scroll parent's boundaries
// https://github.com/twbs/bootstrap/issues/24251
if ( this . _ config . boundary !== 'scrollParent' ) {
$$$1 ( parent ) . addClass ( ClassName . POSITION_STATIC ) ;
}
this . _ popper = new Popper ( element , this . _ menu , this . _ getPopperConfig ( ) ) ;
} // If this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
if ( 'ontouchstart' in document . documentElement && $$$1 ( parent ) . closest ( Selector . NAVBAR_NAV ) . length === 0 ) {
$$$1 ( 'body' ) . children ( ) . on ( 'mouseover' , null , $$$1 . noop ) ;
}
this . _ element . focus ( ) ;
this . _ element . setAttribute ( 'aria-expanded' , true ) ;
$$$1 ( this . _ menu ) . toggleClass ( ClassName . SHOW ) ;
$$$1 ( parent ) . toggleClass ( ClassName . SHOW ) . trigger ( $$$1 . Event ( Event . SHOWN , relatedTarget ) ) ;
} ;
_ proto . dispose = function dispose ( ) {
$$$1 . removeData ( this . _ element , DATA_KEY ) ;
$$$1 ( this . _ element ) . off ( EVENT_KEY ) ;
this . _ element = null ;
this . _ menu = null ;
if ( this . _ popper !== null ) {
this . _ popper . destroy ( ) ;
this . _ popper = null ;
}
} ;
_ proto . update = function update ( ) {
this . _ inNavbar = this . _ detectNavbar ( ) ;
if ( this . _ popper !== null ) {
this . _ popper . scheduleUpdate ( ) ;
}
} ; // Private
_ proto . _ addEventListeners = function _ addEventListeners ( ) {
var _ this = this ;
$$$1 ( this . _ element ) . on ( Event . CLICK , function ( event ) {
event . preventDefault ( ) ;
event . stopPropagation ( ) ;
_ this . toggle ( ) ;
} ) ;
} ;
_ proto . _ getConfig = function _ getConfig ( config ) {
config = _ extends ( { } , this . constructor . Default , $$$1 ( this . _ element ) . data ( ) , config ) ;
Util . typeCheckConfig ( NAME , config , this . constructor . DefaultType ) ;
return config ;
} ;
_ proto . _ getMenuElement = function _ getMenuElement ( ) {
if ( ! this . _ menu ) {
var parent = Dropdown . _ getParentFromElement ( this . _ element ) ;
this . _ menu = $$$1 ( parent ) . find ( Selector . MENU ) [ 0 ] ;
}
return this . _ menu ;
} ;
_ proto . _ getPlacement = function _ getPlacement ( ) {
var $parentDropdown = $$$1 ( this . _ element ) . parent ( ) ;
var placement = AttachmentMap . BOTTOM ; // Handle dropup
if ( $parentDropdown . hasClass ( ClassName . DROPUP ) ) {
placement = AttachmentMap . TOP ;
if ( $$$1 ( this . _ menu ) . hasClass ( ClassName . MENURIGHT ) ) {
placement = AttachmentMap . TOPEND ;
}
} else if ( $parentDropdown . hasClass ( ClassName . DROPRIGHT ) ) {
placement = AttachmentMap . RIGHT ;
} else if ( $parentDropdown . hasClass ( ClassName . DROPLEFT ) ) {
placement = AttachmentMap . LEFT ;
} else if ( $$$1 ( this . _ menu ) . hasClass ( ClassName . MENURIGHT ) ) {
placement = AttachmentMap . BOTTOMEND ;
}
return placement ;
} ;
_ proto . _ detectNavbar = function _ detectNavbar ( ) {
return $$$1 ( this . _ element ) . closest ( '.navbar' ) . length > 0 ;
} ;
_ proto . _ getPopperConfig = function _ getPopperConfig ( ) {
var _ this2 = this ;
var offsetConf = { } ;
if ( typeof this . _ config . offset === 'function' ) {
offsetConf . fn = function ( data ) {
data . offsets = _ extends ( { } , data . offsets , _ this2 . _ config . offset ( data . offsets ) || { } ) ;
return data ;
} ;
} else {
offsetConf . offset = this . _ config . offset ;
}
var popperConfig = {
placement : this . _ getPlacement ( ) ,
modifiers : {
offset : offsetConf ,
flip : {
enabled : this . _ config . flip
} ,
preventOverflow : {
boundariesElement : this . _ config . boundary
}
}
} ;
return popperConfig ;
} ; // Static
Dropdown . _ jQueryInterface = function _ jQueryInterface ( config ) {
return this . each ( function ( ) {
var data = $$$1 ( this ) . data ( DATA_KEY ) ;
var _ config = typeof config === 'object' ? config : null ;
if ( ! data ) {
data = new Dropdown ( this , _ config ) ;
$$$1 ( this ) . data ( DATA_KEY , data ) ;
}
if ( typeof config === 'string' ) {
if ( typeof data [ config ] === 'undefined' ) {
throw new TypeError ( "No method named \"" + config + "\"" ) ;
}
data [ config ] ( ) ;
}
} ) ;
} ;
Dropdown . _ clearMenus = function _ clearMenus ( event ) {
if ( event && ( event . which === RIGHT_MOUSE_BUTTON_WHICH || event . type === 'keyup' && event . which !== TAB_KEYCODE ) ) {
return ;
}
var toggles = $$$1 . makeArray ( $$$1 ( Selector . DATA_TOGGLE ) ) ;
for ( var i = 0 ; i < toggles . length ; i ++ ) {
var parent = Dropdown . _ getParentFromElement ( toggles [ i ] ) ;
var context = $$$1 ( toggles [ i ] ) . data ( DATA_KEY ) ;
var relatedTarget = {
relatedTarget : toggles [ i ]
} ;
if ( ! context ) {
continue ;
}
var dropdownMenu = context . _ menu ;
if ( ! $$$1 ( parent ) . hasClass ( ClassName . SHOW ) ) {
continue ;
}
if ( event && ( event . type === 'click' && /input|textarea/i . test ( event . target . tagName ) || event . type === 'keyup' && event . which === TAB_KEYCODE ) && $$$1 . contains ( parent , event . target ) ) {
continue ;
}
var hideEvent = $$$1 . Event ( Event . HIDE , relatedTarget ) ;
$$$1 ( parent ) . trigger ( hideEvent ) ;
if ( hideEvent . isDefaultPrevented ( ) ) {
continue ;
} // If this is a touch-enabled device we remove the extra
// empty mouseover listeners we added for iOS support
if ( 'ontouchstart' in document . documentElement ) {
$$$1 ( 'body' ) . children ( ) . off ( 'mouseover' , null , $$$1 . noop ) ;
}
toggles [ i ] . setAttribute ( 'aria-expanded' , 'false' ) ;
$$$1 ( dropdownMenu ) . removeClass ( ClassName . SHOW ) ;
$$$1 ( parent ) . removeClass ( ClassName . SHOW ) . trigger ( $$$1 . Event ( Event . HIDDEN , relatedTarget ) ) ;
}
} ;
Dropdown . _ getParentFromElement = function _ getParentFromElement ( element ) {
var parent ;
var selector = Util . getSelectorFromElement ( element ) ;
if ( selector ) {
parent = $$$1 ( selector ) [ 0 ] ;
}
return parent || element . parentNode ;
} ; // eslint-disable-next-line complexity
Dropdown . _ dataApiKeydownHandler = function _ dataApiKeydownHandler ( event ) {
// If not input/textarea:
// - And not a key in REGEXP_KEYDOWN => not a dropdown command
// If input/textarea:
// - If space key => not a dropdown command
// - If key is other than escape
// - If key is not up or down => not a dropdown command
// - If trigger inside the menu => not a dropdown command
if ( /input|textarea/i . test ( event . target . tagName ) ? event . which === SPACE_KEYCODE || event . which !== ESCAPE_KEYCODE && ( event . which !== ARROW_DOWN_KEYCODE && event . which !== ARROW_UP_KEYCODE || $$$1 ( event . target ) . closest ( Selector . MENU ) . length ) : ! REGEXP_KEYDOWN . test ( event . which ) ) {
return ;
}
event . preventDefault ( ) ;
event . stopPropagation ( ) ;
if ( this . disabled || $$$1 ( this ) . hasClass ( ClassName . DISABLED ) ) {
return ;
}
var parent = Dropdown . _ getParentFromElement ( this ) ;
var isActive = $$$1 ( parent ) . hasClass ( ClassName . SHOW ) ;
if ( ! isActive && ( event . which !== ESCAPE_KEYCODE || event . which !== SPACE_KEYCODE ) || isActive && ( event . which === ESCAPE_KEYCODE || event . which === SPACE_KEYCODE ) ) {
if ( event . which === ESCAPE_KEYCODE ) {
var toggle = $$$1 ( parent ) . find ( Selector . DATA_TOGGLE ) [ 0 ] ;
$$$1 ( toggle ) . trigger ( 'focus' ) ;
}
$$$1 ( this ) . trigger ( 'click' ) ;
return ;
}
var items = $$$1 ( parent ) . find ( Selector . VISIBLE_ITEMS ) . get ( ) ;
if ( items . length === 0 ) {
return ;
}
var index = items . indexOf ( event . target ) ;
if ( event . which === ARROW_UP_KEYCODE && index > 0 ) {
// Up
index -- ;
}
if ( event . which === ARROW_DOWN_KEYCODE && index < items . length - 1 ) {
// Down
index ++ ;
}
if ( index < 0 ) {
index = 0 ;
}
items [ index ] . focus ( ) ;
} ;
_ createClass ( Dropdown , null , [ {
key : "VERSION" ,
get : function get ( ) {
return VERSION ;
}
} , {
key : "Default" ,
get : function get ( ) {
return Default ;
}
} , {
key : "DefaultType" ,
get : function get ( ) {
return DefaultType ;
}
} ] ) ;
return Dropdown ;
} ( ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Data Api implementation
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
$$$1 ( document ) . on ( Event . KEYDOWN_DATA_API , Selector . DATA_TOGGLE , Dropdown . _ dataApiKeydownHandler ) . on ( Event . KEYDOWN_DATA_API , Selector . MENU , Dropdown . _ dataApiKeydownHandler ) . on ( Event . CLICK_DATA_API + " " + Event . KEYUP_DATA_API , Dropdown . _ clearMenus ) . on ( Event . CLICK_DATA_API , Selector . DATA_TOGGLE , function ( event ) {
event . preventDefault ( ) ;
event . stopPropagation ( ) ;
Dropdown . _ jQueryInterface . call ( $$$1 ( this ) , 'toggle' ) ;
} ) . on ( Event . CLICK_DATA_API , Selector . FORM_CHILD , function ( e ) {
e . stopPropagation ( ) ;
} ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* jQuery
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
$$$1 . fn [ NAME ] = Dropdown . _ jQueryInterface ;
$$$1 . fn [ NAME ] . Constructor = Dropdown ;
$$$1 . fn [ NAME ] . noConflict = function ( ) {
$$$1 . fn [ NAME ] = JQUERY_NO_CONFLICT ;
return Dropdown . _ jQueryInterface ;
} ;
return Dropdown ;
} ( $ , Popper ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Bootstrap ( v4 . 0.0 ) : modal . js
* Licensed under MIT ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
var Modal = function ( $$$1 ) {
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* 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 = $$$1 . fn [ NAME ] ;
var TRANSITION_DURATION = 300 ;
var BACKDROP_TRANSITION_DURATION = 150 ;
var ESCAPE_KEYCODE = 27 ; // KeyboardEvent.which value for Escape (Esc) key
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 ,
CLICK_DATA_API : "click" + EVENT_KEY + DATA_API_KEY
} ;
var ClassName = {
SCROLLBAR_MEASURER : 'modal-scrollbar-measure' ,
BACKDROP : 'modal-backdrop' ,
OPEN : 'modal-open' ,
FADE : 'fade' ,
SHOW : 'show'
} ;
var Selector = {
DIALOG : '.modal-dialog' ,
DATA_TOGGLE : '[data-toggle="modal"]' ,
DATA_DISMISS : '[data-dismiss="modal"]' ,
FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top' ,
STICKY_CONTENT : '.sticky-top' ,
NAVBAR_TOGGLER : '.navbar-toggler'
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Class Definition
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
} ;
var Modal =
/*#__PURE__*/
function ( ) {
function Modal ( element , config ) {
this . _ config = this . _ getConfig ( config ) ;
this . _ element = element ;
this . _ dialog = $$$1 ( element ) . find ( Selector . DIALOG ) [ 0 ] ;
this . _ backdrop = null ;
this . _ isShown = false ;
this . _ isBodyOverflowing = false ;
this . _ ignoreBackdropClick = false ;
this . _ originalBodyPadding = 0 ;
this . _ scrollbarWidth = 0 ;
} // Getters
var _ proto = Modal . prototype ;
// Public
_ proto . toggle = function toggle ( relatedTarget ) {
return this . _ isShown ? this . hide ( ) : this . show ( relatedTarget ) ;
} ;
_ proto . show = function show ( relatedTarget ) {
var _ this = this ;
if ( this . _ isTransitioning || this . _ isShown ) {
return ;
}
if ( Util . supportsTransitionEnd ( ) && $$$1 ( this . _ element ) . hasClass ( ClassName . FADE ) ) {
this . _ isTransitioning = true ;
}
var showEvent = $$$1 . Event ( Event . SHOW , {
relatedTarget : relatedTarget
} ) ;
$$$1 ( this . _ element ) . trigger ( showEvent ) ;
if ( this . _ isShown || showEvent . isDefaultPrevented ( ) ) {
return ;
}
this . _ isShown = true ;
this . _ checkScrollbar ( ) ;
this . _ setScrollbar ( ) ;
this . _ adjustDialog ( ) ;
$$$1 ( document . body ) . addClass ( ClassName . OPEN ) ;
this . _ setEscapeEvent ( ) ;
this . _ setResizeEvent ( ) ;
$$$1 ( this . _ element ) . on ( Event . CLICK_DISMISS , Selector . DATA_DISMISS , function ( event ) {
return _ this . hide ( event ) ;
} ) ;
$$$1 ( this . _ dialog ) . on ( Event . MOUSEDOWN_DISMISS , function ( ) {
$$$1 ( _ this . _ element ) . one ( Event . MOUSEUP_DISMISS , function ( event ) {
if ( $$$1 ( event . target ) . is ( _ this . _ element ) ) {
_ this . _ ignoreBackdropClick = true ;
}
} ) ;
} ) ;
this . _ showBackdrop ( function ( ) {
return _ this . _ showElement ( relatedTarget ) ;
} ) ;
} ;
_ proto . hide = function hide ( event ) {
var _ this2 = this ;
if ( event ) {
event . preventDefault ( ) ;
}
if ( this . _ isTransitioning || ! this . _ isShown ) {
return ;
}
var hideEvent = $$$1 . Event ( Event . HIDE ) ;
$$$1 ( this . _ element ) . trigger ( hideEvent ) ;
if ( ! this . _ isShown || hideEvent . isDefaultPrevented ( ) ) {
return ;
}
this . _ isShown = false ;
var transition = Util . supportsTransitionEnd ( ) && $$$1 ( this . _ element ) . hasClass ( ClassName . FADE ) ;
if ( transition ) {
this . _ isTransitioning = true ;
}
this . _ setEscapeEvent ( ) ;
this . _ setResizeEvent ( ) ;
$$$1 ( document ) . off ( Event . FOCUSIN ) ;
$$$1 ( this . _ element ) . removeClass ( ClassName . SHOW ) ;
$$$1 ( this . _ element ) . off ( Event . CLICK_DISMISS ) ;
$$$1 ( this . _ dialog ) . off ( Event . MOUSEDOWN_DISMISS ) ;
if ( transition ) {
$$$1 ( this . _ element ) . one ( Util . TRANSITION_END , function ( event ) {
return _ this2 . _ hideModal ( event ) ;
} ) . emulateTransitionEnd ( TRANSITION_DURATION ) ;
} else {
this . _ hideModal ( ) ;
}
} ;
_ proto . dispose = function dispose ( ) {
$$$1 . removeData ( this . _ element , DATA_KEY ) ;
$$$1 ( window , document , this . _ element , 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 . _ scrollbarWidth = null ;
} ;
_ proto . handleUpdate = function handleUpdate ( ) {
this . _ adjustDialog ( ) ;
} ; // Private
_ proto . _ getConfig = function _ getConfig ( config ) {
config = _ extends ( { } , Default , config ) ;
Util . typeCheckConfig ( NAME , config , DefaultType ) ;
return config ;
} ;
_ proto . _ showElement = function _ showElement ( relatedTarget ) {
var _ this3 = this ;
var transition = Util . supportsTransitionEnd ( ) && $$$1 ( this . _ element ) . hasClass ( ClassName . FADE ) ;
if ( ! this . _ element . parentNode || this . _ element . parentNode . nodeType !== Node . ELEMENT_NODE ) {
// Don't move modal's DOM position
document . body . appendChild ( this . _ element ) ;
}
this . _ element . style . display = 'block' ;
this . _ element . removeAttribute ( 'aria-hidden' ) ;
this . _ element . scrollTop = 0 ;
if ( transition ) {
Util . reflow ( this . _ element ) ;
}
$$$1 ( this . _ element ) . addClass ( ClassName . SHOW ) ;
if ( this . _ config . focus ) {
this . _ enforceFocus ( ) ;
}
var shownEvent = $$$1 . Event ( Event . SHOWN , {
relatedTarget : relatedTarget
} ) ;
var transitionComplete = function transitionComplete ( ) {
if ( _ this3 . _ config . focus ) {
_ this3 . _ element . focus ( ) ;
}
_ this3 . _ isTransitioning = false ;
$$$1 ( _ this3 . _ element ) . trigger ( shownEvent ) ;
} ;
if ( transition ) {
$$$1 ( this . _ dialog ) . one ( Util . TRANSITION_END , transitionComplete ) . emulateTransitionEnd ( TRANSITION_DURATION ) ;
} else {
transitionComplete ( ) ;
}
} ;
_ proto . _ enforceFocus = function _ enforceFocus ( ) {
var _ this4 = this ;
$$$1 ( document ) . off ( Event . FOCUSIN ) // Guard against infinite focus loop
. on ( Event . FOCUSIN , function ( event ) {
if ( document !== event . target && _ this4 . _ element !== event . target && $$$1 ( _ this4 . _ element ) . has ( event . target ) . length === 0 ) {
_ this4 . _ element . focus ( ) ;
}
} ) ;
} ;
_ proto . _ setEscapeEvent = function _ setEscapeEvent ( ) {
var _ this5 = this ;
if ( this . _ isShown && this . _ config . keyboard ) {
$$$1 ( this . _ element ) . on ( Event . KEYDOWN_DISMISS , function ( event ) {
if ( event . which === ESCAPE_KEYCODE ) {
event . preventDefault ( ) ;
_ this5 . hide ( ) ;
}
} ) ;
} else if ( ! this . _ isShown ) {
$$$1 ( this . _ element ) . off ( Event . KEYDOWN_DISMISS ) ;
}
} ;
_ proto . _ setResizeEvent = function _ setResizeEvent ( ) {
var _ this6 = this ;
if ( this . _ isShown ) {
$$$1 ( window ) . on ( Event . RESIZE , function ( event ) {
return _ this6 . handleUpdate ( event ) ;
} ) ;
} else {
$$$1 ( window ) . off ( Event . RESIZE ) ;
}
} ;
_ proto . _ hideModal = function _ hideModal ( ) {
var _ this7 = this ;
this . _ element . style . display = 'none' ;
this . _ element . setAttribute ( 'aria-hidden' , true ) ;
this . _ isTransitioning = false ;
this . _ showBackdrop ( function ( ) {
$$$1 ( document . body ) . removeClass ( ClassName . OPEN ) ;
_ this7 . _ resetAdjustments ( ) ;
_ this7 . _ resetScrollbar ( ) ;
$$$1 ( _ this7 . _ element ) . trigger ( Event . HIDDEN ) ;
} ) ;
} ;
_ proto . _ removeBackdrop = function _ removeBackdrop ( ) {
if ( this . _ backdrop ) {
$$$1 ( this . _ backdrop ) . remove ( ) ;
this . _ backdrop = null ;
}
} ;
_ proto . _ showBackdrop = function _ showBackdrop ( callback ) {
var _ this8 = this ;
var animate = $$$1 ( this . _ element ) . hasClass ( ClassName . FADE ) ? ClassName . FADE : '' ;
if ( this . _ isShown && this . _ config . backdrop ) {
var doAnimate = Util . supportsTransitionEnd ( ) && animate ;
this . _ backdrop = document . createElement ( 'div' ) ;
this . _ backdrop . className = ClassName . BACKDROP ;
if ( animate ) {
$$$1 ( this . _ backdrop ) . addClass ( animate ) ;
}
$$$1 ( this . _ backdrop ) . appendTo ( document . body ) ;
$$$1 ( this . _ element ) . on ( Event . CLICK_DISMISS , function ( event ) {
if ( _ this8 . _ ignoreBackdropClick ) {
_ this8 . _ ignoreBackdropClick = false ;
return ;
}
if ( event . target !== event . currentTarget ) {
return ;
}
if ( _ this8 . _ config . backdrop === 'static' ) {
_ this8 . _ element . focus ( ) ;
} else {
_ this8 . hide ( ) ;
}
} ) ;
if ( doAnimate ) {
Util . reflow ( this . _ backdrop ) ;
}
$$$1 ( this . _ backdrop ) . addClass ( ClassName . SHOW ) ;
if ( ! callback ) {
return ;
}
if ( ! doAnimate ) {
callback ( ) ;
return ;
}
$$$1 ( this . _ backdrop ) . one ( Util . TRANSITION_END , callback ) . emulateTransitionEnd ( BACKDROP_TRANSITION_DURATION ) ;
} else if ( ! this . _ isShown && this . _ backdrop ) {
$$$1 ( this . _ backdrop ) . removeClass ( ClassName . SHOW ) ;
var callbackRemove = function callbackRemove ( ) {
_ this8 . _ removeBackdrop ( ) ;
if ( callback ) {
callback ( ) ;
}
} ;
if ( Util . supportsTransitionEnd ( ) && $$$1 ( this . _ element ) . hasClass ( ClassName . FADE ) ) {
$$$1 ( this . _ backdrop ) . one ( Util . TRANSITION_END , callbackRemove ) . emulateTransitionEnd ( BACKDROP_TRANSITION_DURATION ) ;
} else {
callbackRemove ( ) ;
}
} else if ( callback ) {
callback ( ) ;
}
} ; // ----------------------------------------------------------------------
// the following methods are used to handle overflowing modals
// todo (fat): these should probably be refactored out of modal.js
// ----------------------------------------------------------------------
_ proto . _ adjustDialog = function _ adjustDialog ( ) {
var isModalOverflowing = this . _ element . scrollHeight > document . documentElement . clientHeight ;
if ( ! this . _ isBodyOverflowing && isModalOverflowing ) {
this . _ element . style . paddingLeft = this . _ scrollbarWidth + "px" ;
}
if ( this . _ isBodyOverflowing && ! isModalOverflowing ) {
this . _ element . style . paddingRight = this . _ scrollbarWidth + "px" ;
}
} ;
_ proto . _ resetAdjustments = function _ resetAdjustments ( ) {
this . _ element . style . paddingLeft = '' ;
this . _ element . style . paddingRight = '' ;
} ;
_ proto . _ checkScrollbar = function _ checkScrollbar ( ) {
var rect = document . body . getBoundingClientRect ( ) ;
this . _ isBodyOverflowing = rect . left + rect . right < window . innerWidth ;
this . _ scrollbarWidth = this . _ getScrollbarWidth ( ) ;
} ;
_ proto . _ setScrollbar = function _ setScrollbar ( ) {
var _ this9 = this ;
if ( this . _ isBodyOverflowing ) {
// Note: DOMNode.style.paddingRight returns the actual value or '' if not set
// while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
// Adjust fixed content padding
$$$1 ( Selector . FIXED_CONTENT ) . each ( function ( index , element ) {
var actualPadding = $$$1 ( element ) [ 0 ] . style . paddingRight ;
var calculatedPadding = $$$1 ( element ) . css ( 'padding-right' ) ;
$$$1 ( element ) . data ( 'padding-right' , actualPadding ) . css ( 'padding-right' , parseFloat ( calculatedPadding ) + _ this9 . _ scrollbarWidth + "px" ) ;
} ) ; // Adjust sticky content margin
$$$1 ( Selector . STICKY_CONTENT ) . each ( function ( index , element ) {
var actualMargin = $$$1 ( element ) [ 0 ] . style . marginRight ;
var calculatedMargin = $$$1 ( element ) . css ( 'margin-right' ) ;
$$$1 ( element ) . data ( 'margin-right' , actualMargin ) . css ( 'margin-right' , parseFloat ( calculatedMargin ) - _ this9 . _ scrollbarWidth + "px" ) ;
} ) ; // Adjust navbar-toggler margin
$$$1 ( Selector . NAVBAR_TOGGLER ) . each ( function ( index , element ) {
var actualMargin = $$$1 ( element ) [ 0 ] . style . marginRight ;
var calculatedMargin = $$$1 ( element ) . css ( 'margin-right' ) ;
$$$1 ( element ) . data ( 'margin-right' , actualMargin ) . css ( 'margin-right' , parseFloat ( calculatedMargin ) + _ this9 . _ scrollbarWidth + "px" ) ;
} ) ; // Adjust body padding
var actualPadding = document . body . style . paddingRight ;
var calculatedPadding = $$$1 ( 'body' ) . css ( 'padding-right' ) ;
$$$1 ( 'body' ) . data ( 'padding-right' , actualPadding ) . css ( 'padding-right' , parseFloat ( calculatedPadding ) + this . _ scrollbarWidth + "px" ) ;
}
} ;
_ proto . _ resetScrollbar = function _ resetScrollbar ( ) {
// Restore fixed content padding
$$$1 ( Selector . FIXED_CONTENT ) . each ( function ( index , element ) {
var padding = $$$1 ( element ) . data ( 'padding-right' ) ;
if ( typeof padding !== 'undefined' ) {
$$$1 ( element ) . css ( 'padding-right' , padding ) . removeData ( 'padding-right' ) ;
}
} ) ; // Restore sticky content and navbar-toggler margin
$$$1 ( Selector . STICKY_CONTENT + ", " + Selector . NAVBAR_TOGGLER ) . each ( function ( index , element ) {
var margin = $$$1 ( element ) . data ( 'margin-right' ) ;
if ( typeof margin !== 'undefined' ) {
$$$1 ( element ) . css ( 'margin-right' , margin ) . removeData ( 'margin-right' ) ;
}
} ) ; // Restore body padding
var padding = $$$1 ( 'body' ) . data ( 'padding-right' ) ;
if ( typeof padding !== 'undefined' ) {
$$$1 ( 'body' ) . css ( 'padding-right' , padding ) . removeData ( 'padding-right' ) ;
}
} ;
_ proto . _ getScrollbarWidth = function _ getScrollbarWidth ( ) {
// thx d.walsh
var scrollDiv = document . createElement ( 'div' ) ;
scrollDiv . className = ClassName . SCROLLBAR_MEASURER ;
document . body . appendChild ( scrollDiv ) ;
var scrollbarWidth = scrollDiv . getBoundingClientRect ( ) . width - scrollDiv . clientWidth ;
document . body . removeChild ( scrollDiv ) ;
return scrollbarWidth ;
} ; // Static
Modal . _ jQueryInterface = function _ jQueryInterface ( config , relatedTarget ) {
return this . each ( function ( ) {
var data = $$$1 ( this ) . data ( DATA_KEY ) ;
var _ config = _ extends ( { } , Modal . Default , $$$1 ( this ) . data ( ) , typeof config === 'object' && config ) ;
if ( ! data ) {
data = new Modal ( this , _ config ) ;
$$$1 ( this ) . data ( DATA_KEY , data ) ;
}
if ( typeof config === 'string' ) {
if ( typeof data [ config ] === 'undefined' ) {
throw new TypeError ( "No method named \"" + config + "\"" ) ;
}
data [ config ] ( relatedTarget ) ;
} else if ( _ config . show ) {
data . show ( relatedTarget ) ;
}
} ) ;
} ;
_ createClass ( Modal , null , [ {
key : "VERSION" ,
get : function get ( ) {
return VERSION ;
}
} , {
key : "Default" ,
get : function get ( ) {
return Default ;
}
} ] ) ;
return Modal ;
} ( ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Data Api implementation
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
$$$1 ( document ) . on ( Event . CLICK_DATA_API , Selector . DATA_TOGGLE , function ( event ) {
var _ this10 = this ;
var target ;
var selector = Util . getSelectorFromElement ( this ) ;
if ( selector ) {
target = $$$1 ( selector ) [ 0 ] ;
}
var config = $$$1 ( target ) . data ( DATA_KEY ) ? 'toggle' : _ extends ( { } , $$$1 ( target ) . data ( ) , $$$1 ( this ) . data ( ) ) ;
if ( this . tagName === 'A' || this . tagName === 'AREA' ) {
event . preventDefault ( ) ;
}
var $target = $$$1 ( target ) . one ( Event . SHOW , function ( showEvent ) {
if ( showEvent . isDefaultPrevented ( ) ) {
// Only register focus restorer if modal will actually get shown
return ;
}
$target . one ( Event . HIDDEN , function ( ) {
if ( $$$1 ( _ this10 ) . is ( ':visible' ) ) {
_ this10 . focus ( ) ;
}
} ) ;
} ) ;
Modal . _ jQueryInterface . call ( $$$1 ( target ) , config , this ) ;
} ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* jQuery
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
$$$1 . fn [ NAME ] = Modal . _ jQueryInterface ;
$$$1 . fn [ NAME ] . Constructor = Modal ;
$$$1 . fn [ NAME ] . noConflict = function ( ) {
$$$1 . fn [ NAME ] = JQUERY_NO_CONFLICT ;
return Modal . _ jQueryInterface ;
} ;
return Modal ;
} ( $ ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Bootstrap ( v4 . 0.0 ) : tooltip . js
* Licensed under MIT ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
var Tooltip = function ( $$$1 ) {
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Constants
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
var NAME = 'tooltip' ;
var VERSION = '4.0.0' ;
var DATA_KEY = 'bs.tooltip' ;
var EVENT_KEY = "." + DATA_KEY ;
var JQUERY_NO_CONFLICT = $$$1 . fn [ NAME ] ;
var TRANSITION_DURATION = 150 ;
var CLASS_PREFIX = 'bs-tooltip' ;
var BSCLS_PREFIX_REGEX = new RegExp ( "(^|\\s)" + CLASS_PREFIX + "\\S+" , 'g' ) ;
var DefaultType = {
animation : 'boolean' ,
template : 'string' ,
title : '(string|element|function)' ,
trigger : 'string' ,
delay : '(number|object)' ,
html : 'boolean' ,
selector : '(string|boolean)' ,
placement : '(string|function)' ,
offset : '(number|string)' ,
container : '(string|element|boolean)' ,
fallbackPlacement : '(string|array)' ,
boundary : '(string|element)'
} ;
var AttachmentMap = {
AUTO : 'auto' ,
TOP : 'top' ,
RIGHT : 'right' ,
BOTTOM : 'bottom' ,
LEFT : 'left'
} ;
var Default = {
animation : true ,
template : '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>' ,
trigger : 'hover focus' ,
title : '' ,
delay : 0 ,
html : false ,
selector : false ,
placement : 'top' ,
offset : 0 ,
container : false ,
fallbackPlacement : 'flip' ,
boundary : 'scrollParent'
} ;
var HoverState = {
SHOW : 'show' ,
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' ,
SHOW : 'show'
} ;
var Selector = {
TOOLTIP : '.tooltip' ,
TOOLTIP_INNER : '.tooltip-inner' ,
ARROW : '.arrow'
} ;
var Trigger = {
HOVER : 'hover' ,
FOCUS : 'focus' ,
CLICK : 'click' ,
MANUAL : 'manual'
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Class Definition
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
} ;
var Tooltip =
/*#__PURE__*/
function ( ) {
function Tooltip ( element , config ) {
/ * *
* Check for Popper dependency
* Popper - https : //popper.js.org
* /
if ( typeof Popper === 'undefined' ) {
throw new TypeError ( 'Bootstrap tooltips require Popper.js (https://popper.js.org)' ) ;
} // private
this . _ isEnabled = true ;
this . _ timeout = 0 ;
this . _ hoverState = '' ;
this . _ activeTrigger = { } ;
this . _ popper = null ; // Protected
this . element = element ;
this . config = this . _ getConfig ( config ) ;
this . tip = null ;
this . _ setListeners ( ) ;
} // Getters
var _ proto = Tooltip . prototype ;
// Public
_ proto . enable = function enable ( ) {
this . _ isEnabled = true ;
} ;
_ proto . disable = function disable ( ) {
this . _ isEnabled = false ;
} ;
_ proto . toggleEnabled = function toggleEnabled ( ) {
this . _ isEnabled = ! this . _ isEnabled ;
} ;
_ proto . toggle = function toggle ( event ) {
if ( ! this . _ isEnabled ) {
return ;
}
if ( event ) {
var dataKey = this . constructor . DATA_KEY ;
var context = $$$1 ( event . currentTarget ) . data ( dataKey ) ;
if ( ! context ) {
context = new this . constructor ( event . currentTarget , this . _ getDelegateConfig ( ) ) ;
$$$1 ( event . currentTarget ) . data ( dataKey , context ) ;
}
context . _ activeTrigger . click = ! context . _ activeTrigger . click ;
if ( context . _ isWithActiveTrigger ( ) ) {
context . _ enter ( null , context ) ;
} else {
context . _ leave ( null , context ) ;
}
} else {
if ( $$$1 ( this . getTipElement ( ) ) . hasClass ( ClassName . SHOW ) ) {
this . _ leave ( null , this ) ;
return ;
}
this . _ enter ( null , this ) ;
}
} ;
_ proto . dispose = function dispose ( ) {
clearTimeout ( this . _ timeout ) ;
$$$1 . removeData ( this . element , this . constructor . DATA_KEY ) ;
$$$1 ( this . element ) . off ( this . constructor . EVENT_KEY ) ;
$$$1 ( this . element ) . closest ( '.modal' ) . off ( 'hide.bs.modal' ) ;
if ( this . tip ) {
$$$1 ( this . tip ) . remove ( ) ;
}
this . _ isEnabled = null ;
this . _ timeout = null ;
this . _ hoverState = null ;
this . _ activeTrigger = null ;
if ( this . _ popper !== null ) {
this . _ popper . destroy ( ) ;
}
this . _ popper = null ;
this . element = null ;
this . config = null ;
this . tip = null ;
} ;
_ proto . show = function show ( ) {
var _ this = this ;
if ( $$$1 ( this . element ) . css ( 'display' ) === 'none' ) {
throw new Error ( 'Please use show on visible elements' ) ;
}
var showEvent = $$$1 . Event ( this . constructor . Event . SHOW ) ;
if ( this . isWithContent ( ) && this . _ isEnabled ) {
$$$1 ( this . element ) . trigger ( showEvent ) ;
var isInTheDom = $$$1 . contains ( this . element . ownerDocument . documentElement , this . element ) ;
if ( showEvent . isDefaultPrevented ( ) || ! isInTheDom ) {
return ;
}
var tip = this . getTipElement ( ) ;
var tipId = Util . getUID ( this . constructor . NAME ) ;
tip . setAttribute ( 'id' , tipId ) ;
this . element . setAttribute ( 'aria-describedby' , tipId ) ;
this . setContent ( ) ;
if ( this . config . animation ) {
$$$1 ( tip ) . addClass ( ClassName . FADE ) ;
}
var placement = typeof this . config . placement === 'function' ? this . config . placement . call ( this , tip , this . element ) : this . config . placement ;
var attachment = this . _ getAttachment ( placement ) ;
this . addAttachmentClass ( attachment ) ;
var container = this . config . container === false ? document . body : $$$1 ( this . config . container ) ;
$$$1 ( tip ) . data ( this . constructor . DATA_KEY , this ) ;
if ( ! $$$1 . contains ( this . element . ownerDocument . documentElement , this . tip ) ) {
$$$1 ( tip ) . appendTo ( container ) ;
}
$$$1 ( this . element ) . trigger ( this . constructor . Event . INSERTED ) ;
this . _ popper = new Popper ( this . element , tip , {
placement : attachment ,
modifiers : {
offset : {
offset : this . config . offset
} ,
flip : {
behavior : this . config . fallbackPlacement
} ,
arrow : {
element : Selector . ARROW
} ,
preventOverflow : {
boundariesElement : this . config . boundary
}
} ,
onCreate : function onCreate ( data ) {
if ( data . originalPlacement !== data . placement ) {
_ this . _ handlePopperPlacementChange ( data ) ;
}
} ,
onUpdate : function onUpdate ( data ) {
_ this . _ handlePopperPlacementChange ( data ) ;
}
} ) ;
$$$1 ( tip ) . addClass ( ClassName . SHOW ) ; // If this is a touch-enabled device we add extra
// empty mouseover listeners to the body's immediate children;
// only needed because of broken event delegation on iOS
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
if ( 'ontouchstart' in document . documentElement ) {
$$$1 ( 'body' ) . children ( ) . on ( 'mouseover' , null , $$$1 . noop ) ;
}
var complete = function complete ( ) {
if ( _ this . config . animation ) {
_ this . _ fixTransition ( ) ;
}
var prevHoverState = _ this . _ hoverState ;
_ this . _ hoverState = null ;
$$$1 ( _ this . element ) . trigger ( _ this . constructor . Event . SHOWN ) ;
if ( prevHoverState === HoverState . OUT ) {
_ this . _ leave ( null , _ this ) ;
}
} ;
if ( Util . supportsTransitionEnd ( ) && $$$1 ( this . tip ) . hasClass ( ClassName . FADE ) ) {
$$$1 ( this . tip ) . one ( Util . TRANSITION_END , complete ) . emulateTransitionEnd ( Tooltip . _ TRANSITION_DURATION ) ;
} else {
complete ( ) ;
}
}
} ;
_ proto . hide = function hide ( callback ) {
var _ this2 = this ;
var tip = this . getTipElement ( ) ;
var hideEvent = $$$1 . Event ( this . constructor . Event . HIDE ) ;
var complete = function complete ( ) {
if ( _ this2 . _ hoverState !== HoverState . SHOW && tip . parentNode ) {
tip . parentNode . removeChild ( tip ) ;
}
_ this2 . _ cleanTipClass ( ) ;
_ this2 . element . removeAttribute ( 'aria-describedby' ) ;
$$$1 ( _ this2 . element ) . trigger ( _ this2 . constructor . Event . HIDDEN ) ;
if ( _ this2 . _ popper !== null ) {
_ this2 . _ popper . destroy ( ) ;
}
if ( callback ) {
callback ( ) ;
}
} ;
$$$1 ( this . element ) . trigger ( hideEvent ) ;
if ( hideEvent . isDefaultPrevented ( ) ) {
return ;
}
$$$1 ( tip ) . removeClass ( ClassName . SHOW ) ; // If this is a touch-enabled device we remove the extra
// empty mouseover listeners we added for iOS support
if ( 'ontouchstart' in document . documentElement ) {
$$$1 ( 'body' ) . children ( ) . off ( 'mouseover' , null , $$$1 . noop ) ;
}
this . _ activeTrigger [ Trigger . CLICK ] = false ;
this . _ activeTrigger [ Trigger . FOCUS ] = false ;
this . _ activeTrigger [ Trigger . HOVER ] = false ;
if ( Util . supportsTransitionEnd ( ) && $$$1 ( this . tip ) . hasClass ( ClassName . FADE ) ) {
$$$1 ( tip ) . one ( Util . TRANSITION_END , complete ) . emulateTransitionEnd ( TRANSITION_DURATION ) ;
} else {
complete ( ) ;
}
this . _ hoverState = '' ;
} ;
_ proto . update = function update ( ) {
if ( this . _ popper !== null ) {
this . _ popper . scheduleUpdate ( ) ;
}
} ; // Protected
_ proto . isWithContent = function isWithContent ( ) {
return Boolean ( this . getTitle ( ) ) ;
} ;
_ proto . addAttachmentClass = function addAttachmentClass ( attachment ) {
$$$1 ( this . getTipElement ( ) ) . addClass ( CLASS_PREFIX + "-" + attachment ) ;
} ;
_ proto . getTipElement = function getTipElement ( ) {
this . tip = this . tip || $$$1 ( this . config . template ) [ 0 ] ;
return this . tip ;
} ;
_ proto . setContent = function setContent ( ) {
var $tip = $$$1 ( this . getTipElement ( ) ) ;
this . setElementContent ( $tip . find ( Selector . TOOLTIP_INNER ) , this . getTitle ( ) ) ;
$tip . removeClass ( ClassName . FADE + " " + ClassName . SHOW ) ;
} ;
_ proto . setElementContent = function setElementContent ( $element , content ) {
var html = this . config . html ;
if ( typeof content === 'object' && ( content . nodeType || content . jquery ) ) {
// Content is a DOM node or a jQuery
if ( html ) {
if ( ! $$$1 ( content ) . parent ( ) . is ( $element ) ) {
$element . empty ( ) . append ( content ) ;
}
} else {
$element . text ( $$$1 ( content ) . text ( ) ) ;
}
} else {
$element [ html ? 'html' : 'text' ] ( content ) ;
}
} ;
_ proto . getTitle = function getTitle ( ) {
var title = this . element . getAttribute ( 'data-original-title' ) ;
if ( ! title ) {
title = typeof this . config . title === 'function' ? this . config . title . call ( this . element ) : this . config . title ;
}
return title ;
} ; // Private
_ proto . _ getAttachment = function _ getAttachment ( placement ) {
return AttachmentMap [ placement . toUpperCase ( ) ] ;
} ;
_ proto . _ setListeners = function _ setListeners ( ) {
var _ this3 = this ;
var triggers = this . config . trigger . split ( ' ' ) ;
triggers . forEach ( function ( trigger ) {
if ( trigger === 'click' ) {
$$$1 ( _ this3 . element ) . on ( _ this3 . constructor . Event . CLICK , _ this3 . config . selector , function ( event ) {
return _ this3 . toggle ( event ) ;
} ) ;
} else if ( trigger !== Trigger . MANUAL ) {
var eventIn = trigger === Trigger . HOVER ? _ this3 . constructor . Event . MOUSEENTER : _ this3 . constructor . Event . FOCUSIN ;
var eventOut = trigger === Trigger . HOVER ? _ this3 . constructor . Event . MOUSELEAVE : _ this3 . constructor . Event . FOCUSOUT ;
$$$1 ( _ this3 . element ) . on ( eventIn , _ this3 . config . selector , function ( event ) {
return _ this3 . _ enter ( event ) ;
} ) . on ( eventOut , _ this3 . config . selector , function ( event ) {
return _ this3 . _ leave ( event ) ;
} ) ;
}
$$$1 ( _ this3 . element ) . closest ( '.modal' ) . on ( 'hide.bs.modal' , function ( ) {
return _ this3 . hide ( ) ;
} ) ;
} ) ;
if ( this . config . selector ) {
this . config = _ extends ( { } , this . config , {
trigger : 'manual' ,
selector : ''
} ) ;
} else {
this . _ fixTitle ( ) ;
}
} ;
_ proto . _ fixTitle = 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' , '' ) ;
}
} ;
_ proto . _ enter = function _ enter ( event , context ) {
var dataKey = this . constructor . DATA_KEY ;
context = context || $$$1 ( event . currentTarget ) . data ( dataKey ) ;
if ( ! context ) {
context = new this . constructor ( event . currentTarget , this . _ getDelegateConfig ( ) ) ;
$$$1 ( event . currentTarget ) . data ( dataKey , context ) ;
}
if ( event ) {
context . _ activeTrigger [ event . type === 'focusin' ? Trigger . FOCUS : Trigger . HOVER ] = true ;
}
if ( $$$1 ( context . getTipElement ( ) ) . hasClass ( ClassName . SHOW ) || context . _ hoverState === HoverState . SHOW ) {
context . _ hoverState = HoverState . SHOW ;
return ;
}
clearTimeout ( context . _ timeout ) ;
context . _ hoverState = HoverState . SHOW ;
if ( ! context . config . delay || ! context . config . delay . show ) {
context . show ( ) ;
return ;
}
context . _ timeout = setTimeout ( function ( ) {
if ( context . _ hoverState === HoverState . SHOW ) {
context . show ( ) ;
}
} , context . config . delay . show ) ;
} ;
_ proto . _ leave = function _ leave ( event , context ) {
var dataKey = this . constructor . DATA_KEY ;
context = context || $$$1 ( event . currentTarget ) . data ( dataKey ) ;
if ( ! context ) {
context = new this . constructor ( event . currentTarget , this . _ getDelegateConfig ( ) ) ;
$$$1 ( event . currentTarget ) . data ( dataKey , context ) ;
}
if ( event ) {
context . _ activeTrigger [ event . type === 'focusout' ? Trigger . FOCUS : Trigger . HOVER ] = false ;
}
if ( context . _ isWithActiveTrigger ( ) ) {
return ;
}
clearTimeout ( context . _ timeout ) ;
context . _ hoverState = HoverState . OUT ;
if ( ! context . config . delay || ! context . config . delay . hide ) {
context . hide ( ) ;
return ;
}
context . _ timeout = setTimeout ( function ( ) {
if ( context . _ hoverState === HoverState . OUT ) {
context . hide ( ) ;
}
} , context . config . delay . hide ) ;
} ;
_ proto . _ isWithActiveTrigger = function _ isWithActiveTrigger ( ) {
for ( var trigger in this . _ activeTrigger ) {
if ( this . _ activeTrigger [ trigger ] ) {
return true ;
}
}
return false ;
} ;
_ proto . _ getConfig = function _ getConfig ( config ) {
config = _ extends ( { } , this . constructor . Default , $$$1 ( this . element ) . data ( ) , config ) ;
if ( typeof config . delay === 'number' ) {
config . delay = {
show : config . delay ,
hide : config . delay
} ;
}
if ( typeof config . title === 'number' ) {
config . title = config . title . toString ( ) ;
}
if ( typeof config . content === 'number' ) {
config . content = config . content . toString ( ) ;
}
Util . typeCheckConfig ( NAME , config , this . constructor . DefaultType ) ;
return config ;
} ;
_ proto . _ getDelegateConfig = function _ getDelegateConfig ( ) {
var config = { } ;
if ( this . config ) {
for ( var key in this . config ) {
if ( this . constructor . Default [ key ] !== this . config [ key ] ) {
config [ key ] = this . config [ key ] ;
}
}
}
return config ;
} ;
_ proto . _ cleanTipClass = function _ cleanTipClass ( ) {
var $tip = $$$1 ( this . getTipElement ( ) ) ;
var tabClass = $tip . attr ( 'class' ) . match ( BSCLS_PREFIX_REGEX ) ;
if ( tabClass !== null && tabClass . length > 0 ) {
$tip . removeClass ( tabClass . join ( '' ) ) ;
}
} ;
_ proto . _ handlePopperPlacementChange = function _ handlePopperPlacementChange ( data ) {
this . _ cleanTipClass ( ) ;
this . addAttachmentClass ( this . _ getAttachment ( data . placement ) ) ;
} ;
_ proto . _ fixTransition = function _ fixTransition ( ) {
var tip = this . getTipElement ( ) ;
var initConfigAnimation = this . config . animation ;
if ( tip . getAttribute ( 'x-placement' ) !== null ) {
return ;
}
$$$1 ( tip ) . removeClass ( ClassName . FADE ) ;
this . config . animation = false ;
this . hide ( ) ;
this . show ( ) ;
this . config . animation = initConfigAnimation ;
} ; // Static
Tooltip . _ jQueryInterface = function _ jQueryInterface ( config ) {
return this . each ( function ( ) {
var data = $$$1 ( this ) . data ( DATA_KEY ) ;
var _ config = typeof config === 'object' && config ;
if ( ! data && /dispose|hide/ . test ( config ) ) {
return ;
}
if ( ! data ) {
data = new Tooltip ( this , _ config ) ;
$$$1 ( this ) . data ( DATA_KEY , data ) ;
}
if ( typeof config === 'string' ) {
if ( typeof data [ config ] === 'undefined' ) {
throw new TypeError ( "No method named \"" + config + "\"" ) ;
}
data [ config ] ( ) ;
}
} ) ;
} ;
_ createClass ( Tooltip , null , [ {
key : "VERSION" ,
get : function get ( ) {
return VERSION ;
}
} , {
key : "Default" ,
get : function get ( ) {
return Default ;
}
} , {
key : "NAME" ,
get : function get ( ) {
return NAME ;
}
} , {
key : "DATA_KEY" ,
get : function get ( ) {
return DATA_KEY ;
}
} , {
key : "Event" ,
get : function get ( ) {
return Event ;
}
} , {
key : "EVENT_KEY" ,
get : function get ( ) {
return EVENT_KEY ;
}
} , {
key : "DefaultType" ,
get : function get ( ) {
return DefaultType ;
}
} ] ) ;
return Tooltip ;
} ( ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* jQuery
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
$$$1 . fn [ NAME ] = Tooltip . _ jQueryInterface ;
$$$1 . fn [ NAME ] . Constructor = Tooltip ;
$$$1 . fn [ NAME ] . noConflict = function ( ) {
$$$1 . fn [ NAME ] = JQUERY_NO_CONFLICT ;
return Tooltip . _ jQueryInterface ;
} ;
return Tooltip ;
} ( $ , Popper ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Bootstrap ( v4 . 0.0 ) : popover . js
* Licensed under MIT ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
var Popover = function ( $$$1 ) {
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Constants
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
var NAME = 'popover' ;
var VERSION = '4.0.0' ;
var DATA_KEY = 'bs.popover' ;
var EVENT_KEY = "." + DATA_KEY ;
var JQUERY_NO_CONFLICT = $$$1 . fn [ NAME ] ;
var CLASS_PREFIX = 'bs-popover' ;
var BSCLS_PREFIX_REGEX = new RegExp ( "(^|\\s)" + CLASS_PREFIX + "\\S+" , 'g' ) ;
var Default = _ extends ( { } , Tooltip . Default , {
placement : 'right' ,
trigger : 'click' ,
content : '' ,
template : '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
} ) ;
var DefaultType = _ extends ( { } , Tooltip . DefaultType , {
content : '(string|element|function)'
} ) ;
var ClassName = {
FADE : 'fade' ,
SHOW : 'show'
} ;
var Selector = {
TITLE : '.popover-header' ,
CONTENT : '.popover-body'
} ;
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 =
/*#__PURE__*/
function ( _ Tooltip ) {
_ inheritsLoose ( Popover , _ Tooltip ) ;
function Popover ( ) {
return _ Tooltip . apply ( this , arguments ) || this ;
}
var _ proto = Popover . prototype ;
// Overrides
_ proto . isWithContent = function isWithContent ( ) {
return this . getTitle ( ) || this . _ getContent ( ) ;
} ;
_ proto . addAttachmentClass = function addAttachmentClass ( attachment ) {
$$$1 ( this . getTipElement ( ) ) . addClass ( CLASS_PREFIX + "-" + attachment ) ;
} ;
_ proto . getTipElement = function getTipElement ( ) {
this . tip = this . tip || $$$1 ( this . config . template ) [ 0 ] ;
return this . tip ;
} ;
_ proto . setContent = function setContent ( ) {
var $tip = $$$1 ( this . getTipElement ( ) ) ; // We use append for html objects to maintain js events
this . setElementContent ( $tip . find ( Selector . TITLE ) , this . getTitle ( ) ) ;
var content = this . _ getContent ( ) ;
if ( typeof content === 'function' ) {
content = content . call ( this . element ) ;
}
this . setElementContent ( $tip . find ( Selector . CONTENT ) , content ) ;
$tip . removeClass ( ClassName . FADE + " " + ClassName . SHOW ) ;
} ; // Private
_ proto . _ getContent = function _ getContent ( ) {
return this . element . getAttribute ( 'data-content' ) || this . config . content ;
} ;
_ proto . _ cleanTipClass = function _ cleanTipClass ( ) {
var $tip = $$$1 ( this . getTipElement ( ) ) ;
var tabClass = $tip . attr ( 'class' ) . match ( BSCLS_PREFIX_REGEX ) ;
if ( tabClass !== null && tabClass . length > 0 ) {
$tip . removeClass ( tabClass . join ( '' ) ) ;
}
} ; // Static
Popover . _ jQueryInterface = function _ jQueryInterface ( config ) {
return this . each ( function ( ) {
var data = $$$1 ( 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 ) ;
$$$1 ( this ) . data ( DATA_KEY , data ) ;
}
if ( typeof config === 'string' ) {
if ( typeof data [ config ] === 'undefined' ) {
throw new TypeError ( "No method named \"" + config + "\"" ) ;
}
data [ config ] ( ) ;
}
} ) ;
} ;
_ createClass ( Popover , null , [ {
key : "VERSION" ,
// Getters
get : function get ( ) {
return VERSION ;
}
} , {
key : "Default" ,
get : function get ( ) {
return Default ;
}
} , {
key : "NAME" ,
get : function get ( ) {
return NAME ;
}
} , {
key : "DATA_KEY" ,
get : function get ( ) {
return DATA_KEY ;
}
} , {
key : "Event" ,
get : function get ( ) {
return Event ;
}
} , {
key : "EVENT_KEY" ,
get : function get ( ) {
return EVENT_KEY ;
}
} , {
key : "DefaultType" ,
get : function get ( ) {
return DefaultType ;
}
} ] ) ;
return Popover ;
} ( Tooltip ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* jQuery
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
$$$1 . fn [ NAME ] = Popover . _ jQueryInterface ;
$$$1 . fn [ NAME ] . Constructor = Popover ;
$$$1 . fn [ NAME ] . noConflict = function ( ) {
$$$1 . fn [ NAME ] = JQUERY_NO_CONFLICT ;
return Popover . _ jQueryInterface ;
} ;
return Popover ;
} ( $ ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Bootstrap ( v4 . 0.0 ) : scrollspy . js
* Licensed under MIT ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
var ScrollSpy = function ( $$$1 ) {
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Constants
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
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 = $$$1 . fn [ NAME ] ;
var Default = {
offset : 10 ,
method : 'auto' ,
target : ''
} ;
var DefaultType = {
offset : 'number' ,
method : 'string' ,
target : '(string|element)'
} ;
var Event = {
ACTIVATE : "activate" + EVENT_KEY ,
SCROLL : "scroll" + EVENT_KEY ,
LOAD_DATA_API : "load" + EVENT_KEY + DATA_API_KEY
} ;
var ClassName = {
DROPDOWN_ITEM : 'dropdown-item' ,
DROPDOWN_MENU : 'dropdown-menu' ,
ACTIVE : 'active'
} ;
var Selector = {
DATA_SPY : '[data-spy="scroll"]' ,
ACTIVE : '.active' ,
NAV_LIST_GROUP : '.nav, .list-group' ,
NAV_LINKS : '.nav-link' ,
NAV_ITEMS : '.nav-item' ,
LIST_ITEMS : '.list-group-item' ,
DROPDOWN : '.dropdown' ,
DROPDOWN_ITEMS : '.dropdown-item' ,
DROPDOWN_TOGGLE : '.dropdown-toggle'
} ;
var OffsetMethod = {
OFFSET : 'offset' ,
POSITION : 'position'
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Class Definition
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
} ;
var ScrollSpy =
/*#__PURE__*/
function ( ) {
function ScrollSpy ( element , config ) {
var _ this = this ;
this . _ element = element ;
this . _ scrollElement = element . tagName === 'BODY' ? window : element ;
this . _ config = this . _ getConfig ( config ) ;
this . _ selector = this . _ config . target + " " + Selector . NAV_LINKS + "," + ( this . _ config . target + " " + Selector . LIST_ITEMS + "," ) + ( this . _ config . target + " " + Selector . DROPDOWN_ITEMS ) ;
this . _ offsets = [ ] ;
this . _ targets = [ ] ;
this . _ activeTarget = null ;
this . _ scrollHeight = 0 ;
$$$1 ( this . _ scrollElement ) . on ( Event . SCROLL , function ( event ) {
return _ this . _ process ( event ) ;
} ) ;
this . refresh ( ) ;
this . _ process ( ) ;
} // Getters
var _ proto = ScrollSpy . prototype ;
// Public
_ proto . refresh = function refresh ( ) {
var _ this2 = this ;
var autoMethod = this . _ scrollElement === this . _ scrollElement . window ? OffsetMethod . OFFSET : OffsetMethod . POSITION ;
var offsetMethod = this . _ config . method === 'auto' ? autoMethod : this . _ config . method ;
var offsetBase = offsetMethod === OffsetMethod . POSITION ? this . _ getScrollTop ( ) : 0 ;
this . _ offsets = [ ] ;
this . _ targets = [ ] ;
this . _ scrollHeight = this . _ getScrollHeight ( ) ;
var targets = $$$1 . makeArray ( $$$1 ( this . _ selector ) ) ;
targets . map ( function ( element ) {
var target ;
var targetSelector = Util . getSelectorFromElement ( element ) ;
if ( targetSelector ) {
target = $$$1 ( targetSelector ) [ 0 ] ;
}
if ( target ) {
var targetBCR = target . getBoundingClientRect ( ) ;
if ( targetBCR . width || targetBCR . height ) {
// TODO (fat): remove sketch reliance on jQuery position/offset
return [ $$$1 ( target ) [ offsetMethod ] ( ) . top + offsetBase , targetSelector ] ;
}
}
return null ;
} ) . filter ( function ( item ) {
return item ;
} ) . sort ( function ( a , b ) {
return a [ 0 ] - b [ 0 ] ;
} ) . forEach ( function ( item ) {
_ this2 . _ offsets . push ( item [ 0 ] ) ;
_ this2 . _ targets . push ( item [ 1 ] ) ;
} ) ;
} ;
_ proto . dispose = function dispose ( ) {
$$$1 . removeData ( this . _ element , DATA_KEY ) ;
$$$1 ( 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 ;
} ; // Private
_ proto . _ getConfig = function _ getConfig ( config ) {
config = _ extends ( { } , Default , config ) ;
if ( typeof config . target !== 'string' ) {
var id = $$$1 ( config . target ) . attr ( 'id' ) ;
if ( ! id ) {
id = Util . getUID ( NAME ) ;
$$$1 ( config . target ) . attr ( 'id' , id ) ;
}
config . target = "#" + id ;
}
Util . typeCheckConfig ( NAME , config , DefaultType ) ;
return config ;
} ;
_ proto . _ getScrollTop = function _ getScrollTop ( ) {
return this . _ scrollElement === window ? this . _ scrollElement . pageYOffset : this . _ scrollElement . scrollTop ;
} ;
_ proto . _ getScrollHeight = function _ getScrollHeight ( ) {
return this . _ scrollElement . scrollHeight || Math . max ( document . body . scrollHeight , document . documentElement . scrollHeight ) ;
} ;
_ proto . _ getOffsetHeight = function _ getOffsetHeight ( ) {
return this . _ scrollElement === window ? window . innerHeight : this . _ scrollElement . getBoundingClientRect ( ) . height ;
} ;
_ proto . _ process = function _ process ( ) {
var scrollTop = this . _ getScrollTop ( ) + this . _ config . offset ;
var scrollHeight = this . _ getScrollHeight ( ) ;
var maxScroll = this . _ config . offset + scrollHeight - this . _ getOffsetHeight ( ) ;
if ( this . _ scrollHeight !== scrollHeight ) {
this . refresh ( ) ;
}
if ( scrollTop >= maxScroll ) {
var target = this . _ targets [ this . _ targets . length - 1 ] ;
if ( this . _ activeTarget !== target ) {
this . _ activate ( target ) ;
}
return ;
}
if ( this . _ activeTarget && scrollTop < this . _ offsets [ 0 ] && this . _ offsets [ 0 ] > 0 ) {
this . _ activeTarget = null ;
this . _ clear ( ) ;
return ;
}
for ( var i = this . _ offsets . length ; i -- ; ) {
var isActiveTarget = this . _ activeTarget !== this . _ targets [ i ] && scrollTop >= this . _ offsets [ i ] && ( typeof this . _ offsets [ i + 1 ] === 'undefined' || scrollTop < this . _ offsets [ i + 1 ] ) ;
if ( isActiveTarget ) {
this . _ activate ( this . _ targets [ i ] ) ;
}
}
} ;
_ proto . _ activate = function _ activate ( target ) {
this . _ activeTarget = target ;
this . _ clear ( ) ;
var queries = this . _ selector . split ( ',' ) ; // eslint-disable-next-line arrow-body-style
queries = queries . map ( function ( selector ) {
return selector + "[data-target=\"" + target + "\"]," + ( selector + "[href=\"" + target + "\"]" ) ;
} ) ;
var $link = $$$1 ( queries . join ( ',' ) ) ;
if ( $link . hasClass ( ClassName . DROPDOWN_ITEM ) ) {
$link . closest ( Selector . DROPDOWN ) . find ( Selector . DROPDOWN_TOGGLE ) . addClass ( ClassName . ACTIVE ) ;
$link . addClass ( ClassName . ACTIVE ) ;
} else {
// Set triggered link as active
$link . addClass ( ClassName . ACTIVE ) ; // Set triggered links parents as active
// With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
$link . parents ( Selector . NAV_LIST_GROUP ) . prev ( Selector . NAV_LINKS + ", " + Selector . LIST_ITEMS ) . addClass ( ClassName . ACTIVE ) ; // Handle special case when .nav-link is inside .nav-item
$link . parents ( Selector . NAV_LIST_GROUP ) . prev ( Selector . NAV_ITEMS ) . children ( Selector . NAV_LINKS ) . addClass ( ClassName . ACTIVE ) ;
}
$$$1 ( this . _ scrollElement ) . trigger ( Event . ACTIVATE , {
relatedTarget : target
} ) ;
} ;
_ proto . _ clear = function _ clear ( ) {
$$$1 ( this . _ selector ) . filter ( Selector . ACTIVE ) . removeClass ( ClassName . ACTIVE ) ;
} ; // Static
ScrollSpy . _ jQueryInterface = function _ jQueryInterface ( config ) {
return this . each ( function ( ) {
var data = $$$1 ( this ) . data ( DATA_KEY ) ;
var _ config = typeof config === 'object' && config ;
if ( ! data ) {
data = new ScrollSpy ( this , _ config ) ;
$$$1 ( this ) . data ( DATA_KEY , data ) ;
}
if ( typeof config === 'string' ) {
if ( typeof data [ config ] === 'undefined' ) {
throw new TypeError ( "No method named \"" + config + "\"" ) ;
}
data [ config ] ( ) ;
}
} ) ;
} ;
_ createClass ( ScrollSpy , null , [ {
key : "VERSION" ,
get : function get ( ) {
return VERSION ;
}
} , {
key : "Default" ,
get : function get ( ) {
return Default ;
}
} ] ) ;
return ScrollSpy ;
} ( ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Data Api implementation
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
$$$1 ( window ) . on ( Event . LOAD_DATA_API , function ( ) {
var scrollSpys = $$$1 . makeArray ( $$$1 ( Selector . DATA_SPY ) ) ;
for ( var i = scrollSpys . length ; i -- ; ) {
var $spy = $$$1 ( scrollSpys [ i ] ) ;
ScrollSpy . _ jQueryInterface . call ( $spy , $spy . data ( ) ) ;
}
} ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* jQuery
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
$$$1 . fn [ NAME ] = ScrollSpy . _ jQueryInterface ;
$$$1 . fn [ NAME ] . Constructor = ScrollSpy ;
$$$1 . fn [ NAME ] . noConflict = function ( ) {
$$$1 . fn [ NAME ] = JQUERY_NO_CONFLICT ;
return ScrollSpy . _ jQueryInterface ;
} ;
return ScrollSpy ;
} ( $ ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Bootstrap ( v4 . 0.0 ) : tab . js
* Licensed under MIT ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
var Tab = function ( $$$1 ) {
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* 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 = $$$1 . fn [ NAME ] ;
var TRANSITION_DURATION = 150 ;
var Event = {
HIDE : "hide" + EVENT_KEY ,
HIDDEN : "hidden" + EVENT_KEY ,
SHOW : "show" + EVENT_KEY ,
SHOWN : "shown" + EVENT_KEY ,
CLICK_DATA_API : "click" + EVENT_KEY + DATA_API_KEY
} ;
var ClassName = {
DROPDOWN_MENU : 'dropdown-menu' ,
ACTIVE : 'active' ,
DISABLED : 'disabled' ,
FADE : 'fade' ,
SHOW : 'show'
} ;
var Selector = {
DROPDOWN : '.dropdown' ,
NAV_LIST_GROUP : '.nav, .list-group' ,
ACTIVE : '.active' ,
ACTIVE_UL : '> li > .active' ,
DATA_TOGGLE : '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]' ,
DROPDOWN_TOGGLE : '.dropdown-toggle' ,
DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Class Definition
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
} ;
var Tab =
/*#__PURE__*/
function ( ) {
function Tab ( element ) {
this . _ element = element ;
} // Getters
var _ proto = Tab . prototype ;
// Public
_ proto . show = function show ( ) {
var _ this = this ;
if ( this . _ element . parentNode && this . _ element . parentNode . nodeType === Node . ELEMENT_NODE && $$$1 ( this . _ element ) . hasClass ( ClassName . ACTIVE ) || $$$1 ( this . _ element ) . hasClass ( ClassName . DISABLED ) ) {
return ;
}
var target ;
var previous ;
var listElement = $$$1 ( this . _ element ) . closest ( Selector . NAV_LIST_GROUP ) [ 0 ] ;
var selector = Util . getSelectorFromElement ( this . _ element ) ;
if ( listElement ) {
var itemSelector = listElement . nodeName === 'UL' ? Selector . ACTIVE_UL : Selector . ACTIVE ;
previous = $$$1 . makeArray ( $$$1 ( listElement ) . find ( itemSelector ) ) ;
previous = previous [ previous . length - 1 ] ;
}
var hideEvent = $$$1 . Event ( Event . HIDE , {
relatedTarget : this . _ element
} ) ;
var showEvent = $$$1 . Event ( Event . SHOW , {
relatedTarget : previous
} ) ;
if ( previous ) {
$$$1 ( previous ) . trigger ( hideEvent ) ;
}
$$$1 ( this . _ element ) . trigger ( showEvent ) ;
if ( showEvent . isDefaultPrevented ( ) || hideEvent . isDefaultPrevented ( ) ) {
return ;
}
if ( selector ) {
target = $$$1 ( selector ) [ 0 ] ;
}
this . _ activate ( this . _ element , listElement ) ;
var complete = function complete ( ) {
var hiddenEvent = $$$1 . Event ( Event . HIDDEN , {
relatedTarget : _ this . _ element
} ) ;
var shownEvent = $$$1 . Event ( Event . SHOWN , {
relatedTarget : previous
} ) ;
$$$1 ( previous ) . trigger ( hiddenEvent ) ;
$$$1 ( _ this . _ element ) . trigger ( shownEvent ) ;
} ;
if ( target ) {
this . _ activate ( target , target . parentNode , complete ) ;
} else {
complete ( ) ;
}
} ;
_ proto . dispose = function dispose ( ) {
$$$1 . removeData ( this . _ element , DATA_KEY ) ;
this . _ element = null ;
} ; // Private
_ proto . _ activate = function _ activate ( element , container , callback ) {
var _ this2 = this ;
var activeElements ;
if ( container . nodeName === 'UL' ) {
activeElements = $$$1 ( container ) . find ( Selector . ACTIVE_UL ) ;
} else {
activeElements = $$$1 ( container ) . children ( Selector . ACTIVE ) ;
}
var active = activeElements [ 0 ] ;
var isTransitioning = callback && Util . supportsTransitionEnd ( ) && active && $$$1 ( active ) . hasClass ( ClassName . FADE ) ;
var complete = function complete ( ) {
return _ this2 . _ transitionComplete ( element , active , callback ) ;
} ;
if ( active && isTransitioning ) {
$$$1 ( active ) . one ( Util . TRANSITION_END , complete ) . emulateTransitionEnd ( TRANSITION_DURATION ) ;
} else {
complete ( ) ;
}
} ;
_ proto . _ transitionComplete = function _ transitionComplete ( element , active , callback ) {
if ( active ) {
$$$1 ( active ) . removeClass ( ClassName . SHOW + " " + ClassName . ACTIVE ) ;
var dropdownChild = $$$1 ( active . parentNode ) . find ( Selector . DROPDOWN_ACTIVE_CHILD ) [ 0 ] ;
if ( dropdownChild ) {
$$$1 ( dropdownChild ) . removeClass ( ClassName . ACTIVE ) ;
}
if ( active . getAttribute ( 'role' ) === 'tab' ) {
active . setAttribute ( 'aria-selected' , false ) ;
}
}
$$$1 ( element ) . addClass ( ClassName . ACTIVE ) ;
if ( element . getAttribute ( 'role' ) === 'tab' ) {
element . setAttribute ( 'aria-selected' , true ) ;
}
Util . reflow ( element ) ;
$$$1 ( element ) . addClass ( ClassName . SHOW ) ;
if ( element . parentNode && $$$1 ( element . parentNode ) . hasClass ( ClassName . DROPDOWN_MENU ) ) {
var dropdownElement = $$$1 ( element ) . closest ( Selector . DROPDOWN ) [ 0 ] ;
if ( dropdownElement ) {
$$$1 ( dropdownElement ) . find ( Selector . DROPDOWN_TOGGLE ) . addClass ( ClassName . ACTIVE ) ;
}
element . setAttribute ( 'aria-expanded' , true ) ;
}
if ( callback ) {
callback ( ) ;
}
} ; // Static
Tab . _ jQueryInterface = function _ jQueryInterface ( config ) {
return this . each ( function ( ) {
var $this = $$$1 ( this ) ;
var data = $this . data ( DATA_KEY ) ;
if ( ! data ) {
data = new Tab ( this ) ;
$this . data ( DATA_KEY , data ) ;
}
if ( typeof config === 'string' ) {
if ( typeof data [ config ] === 'undefined' ) {
throw new TypeError ( "No method named \"" + config + "\"" ) ;
}
data [ config ] ( ) ;
}
} ) ;
} ;
_ createClass ( Tab , null , [ {
key : "VERSION" ,
get : function get ( ) {
return VERSION ;
}
} ] ) ;
return Tab ;
} ( ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Data Api implementation
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
$$$1 ( document ) . on ( Event . CLICK_DATA_API , Selector . DATA_TOGGLE , function ( event ) {
event . preventDefault ( ) ;
Tab . _ jQueryInterface . call ( $$$1 ( this ) , 'show' ) ;
} ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* jQuery
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
$$$1 . fn [ NAME ] = Tab . _ jQueryInterface ;
$$$1 . fn [ NAME ] . Constructor = Tab ;
$$$1 . fn [ NAME ] . noConflict = function ( ) {
$$$1 . fn [ NAME ] = JQUERY_NO_CONFLICT ;
return Tab . _ jQueryInterface ;
} ;
return Tab ;
} ( $ ) ;
/ * *
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* Bootstrap ( v4 . 0.0 - alpha . 6 ) : index . js
* Licensed under MIT ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
( function ( $$$1 ) {
if ( typeof $$$1 === 'undefined' ) {
throw new TypeError ( 'Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.' ) ;
}
var version = $$$1 . fn . jquery . split ( ' ' ) [ 0 ] . split ( '.' ) ;
var minMajor = 1 ;
var ltMajor = 2 ;
var minMinor = 9 ;
var minPatch = 1 ;
var maxMajor = 4 ;
if ( version [ 0 ] < ltMajor && version [ 1 ] < minMinor || version [ 0 ] === minMajor && version [ 1 ] === minMinor && version [ 2 ] < minPatch || version [ 0 ] >= maxMajor ) {
throw new Error ( 'Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0' ) ;
}
} ) ( $ ) ;
exports . Util = Util ;
exports . Alert = Alert ;
exports . Button = Button ;
exports . Carousel = Carousel ;
exports . Collapse = Collapse ;
exports . Dropdown = Dropdown ;
exports . Modal = Modal ;
exports . Popover = Popover ;
exports . Scrollspy = ScrollSpy ;
exports . Tab = Tab ;
exports . Tooltip = Tooltip ;
Object . defineProperty ( exports , '__esModule' , { value : true } ) ;
} ) ) ) ;
//# sourceMappingURL=bootstrap.js.map