(function (global, factory){
typeof exports==='object'&&typeof module!=='undefined' ? module.exports=factory(require('@popperjs/core')) :
typeof define==='function'&&define.amd ? define(['@popperjs/core'], factory) :
(global=typeof globalThis!=='undefined' ? globalThis:global||self, global.bootstrap=factory(global.Popper));
})(this, (function (Popper){ 'use strict';
function _interopNamespace(e){
if(e&&e.__esModule) return e;
const n=Object.create(null);
if(e){
for (const k in e){
if(k!=='default'){
const d=Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d:{
enumerable: true,
get: ()=> e[k]
});
}}
}
n.default=e;
return Object.freeze(n);
}
const Popper__namespace=_interopNamespace(Popper);
const MAX_UID=1000000;
const MILLISECONDS_MULTIPLIER=1000;
const TRANSITION_END='transitionend'; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
const toType=obj=> {
if(obj===null||obj===undefined){
return `${obj}`;
}
return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
};
const getUID=prefix=> {
do {
prefix +=Math.floor(Math.random() * MAX_UID);
} while (document.getElementById(prefix));
return prefix;
};
const getSelector=element=> {
let selector=element.getAttribute('data-bs-target');
if(!selector||selector==='#'){
let hrefAttr=element.getAttribute('href');
if(!hrefAttr||!hrefAttr.includes('#')&&!hrefAttr.startsWith('.')){
return null;
}
if(hrefAttr.includes('#')&&!hrefAttr.startsWith('#')){
hrefAttr=`#${hrefAttr.split('#')[1]}`;
}
selector=hrefAttr&&hrefAttr!=='#' ? hrefAttr.trim():null;
}
return selector;
};
const getSelectorFromElement=element=> {
const selector=getSelector(element);
if(selector){
return document.querySelector(selector) ? selector:null;
}
return null;
};
const getElementFromSelector=element=> {
const selector=getSelector(element);
return selector ? document.querySelector(selector):null;
};
const getTransitionDurationFromElement=element=> {
if(!element){
return 0;
}
let {
transitionDuration,
transitionDelay
}=window.getComputedStyle(element);
const floatTransitionDuration=Number.parseFloat(transitionDuration);
const floatTransitionDelay=Number.parseFloat(transitionDelay);
if(!floatTransitionDuration&&!floatTransitionDelay){
return 0;
}
transitionDuration=transitionDuration.split(',')[0];
transitionDelay=transitionDelay.split(',')[0];
return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
};
const triggerTransitionEnd=element=> {
element.dispatchEvent(new Event(TRANSITION_END));
};
const isElement=obj=> {
if(!obj||typeof obj!=='object'){
return false;
}
if(typeof obj.jquery!=='undefined'){
obj=obj[0];
}
return typeof obj.nodeType!=='undefined';
};
const getElement=obj=> {
if(isElement(obj)){
return obj.jquery ? obj[0]:obj;
}
if(typeof obj==='string'&&obj.length > 0){
return document.querySelector(obj);
}
return null;
};
const typeCheckConfig=(componentName, config, configTypes)=> {
Object.keys(configTypes).forEach(property=> {
const expectedTypes=configTypes[property];
const value=config[property];
const valueType=value&&isElement(value) ? 'element':toType(value);
if(!new RegExp(expectedTypes).test(valueType)){
throw new TypeError(`${componentName.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);
}});
};
const isVisible=element=> {
if(!isElement(element)||element.getClientRects().length===0){
return false;
}
return getComputedStyle(element).getPropertyValue('visibility')==='visible';
};
const isDisabled=element=> {
if(!element||element.nodeType!==Node.ELEMENT_NODE){
return true;
}
if(element.classList.contains('disabled')){
return true;
}
if(typeof element.disabled!=='undefined'){
return element.disabled;
}
return element.hasAttribute('disabled')&&element.getAttribute('disabled')!=='false';
};
const findShadowRoot=element=> {
if(!document.documentElement.attachShadow){
return null;
}
if(typeof element.getRootNode==='function'){
const root=element.getRootNode();
return root instanceof ShadowRoot ? root:null;
}
if(element instanceof ShadowRoot){
return element;
}
if(!element.parentNode){
return null;
}
return findShadowRoot(element.parentNode);
};
const noop=()=> {};
const reflow=element=> {
element.offsetHeight;
};
const getjQuery=()=> {
const {
jQuery
}=window;
if(jQuery&&!document.body.hasAttribute('data-bs-no-jquery')){
return jQuery;
}
return null;
};
const DOMContentLoadedCallbacks=[];
const onDOMContentLoaded=callback=> {
if(document.readyState==='loading'){
if(!DOMContentLoadedCallbacks.length){
document.addEventListener('DOMContentLoaded', ()=> {
DOMContentLoadedCallbacks.forEach(callback=> callback());
});
}
DOMContentLoadedCallbacks.push(callback);
}else{
callback();
}};
const isRTL=()=> document.documentElement.dir==='rtl';
const defineJQueryPlugin=plugin=> {
onDOMContentLoaded(()=> {
const $=getjQuery();
if($){
const name=plugin.NAME;
const JQUERY_NO_CONFLICT=$.fn[name];
$.fn[name]=plugin.jQueryInterface;
$.fn[name].Constructor=plugin;
$.fn[name].noConflict=()=> {
$.fn[name]=JQUERY_NO_CONFLICT;
return plugin.jQueryInterface;
};}});
};
const execute=callback=> {
if(typeof callback==='function'){
callback();
}};
const executeAfterTransition=(callback, transitionElement, waitForTransition=true)=> {
if(!waitForTransition){
execute(callback);
return;
}
const durationPadding=5;
const emulatedDuration=getTransitionDurationFromElement(transitionElement) + durationPadding;
let called=false;
const handler=({
target
})=> {
if(target!==transitionElement){
return;
}
called=true;
transitionElement.removeEventListener(TRANSITION_END, handler);
execute(callback);
};
transitionElement.addEventListener(TRANSITION_END, handler);
setTimeout(()=> {
if(!called){
triggerTransitionEnd(transitionElement);
}}, emulatedDuration);
};
const getNextActiveElement=(list, activeElement, shouldGetNext, isCycleAllowed)=> {
let index=list.indexOf(activeElement);
if(index===-1){
return list[!shouldGetNext&&isCycleAllowed ? list.length - 1:0];
}
const listLength=list.length;
index +=shouldGetNext ? 1:-1;
if(isCycleAllowed){
index=(index + listLength) % listLength;
}
return list[Math.max(0, Math.min(index, listLength - 1))];
};
const namespaceRegex=/[^.]*(?=\..*)\.|.*/;
const stripNameRegex=/\..*/;
const stripUidRegex=/::\d+$/;
const eventRegistry={};
let uidEvent=1;
const customEvents={
mouseenter: 'mouseover',
mouseleave: 'mouseout'
};
const customEventsRegex=/^(mouseenter|mouseleave)/i;
const nativeEvents=new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);
function getUidEvent(element, uid){
return uid&&`${uid}::${uidEvent++}`||element.uidEvent||uidEvent++;
}
function getEvent(element){
const uid=getUidEvent(element);
element.uidEvent=uid;
eventRegistry[uid]=eventRegistry[uid]||{};
return eventRegistry[uid];
}
function bootstrapHandler(element, fn){
return function handler(event){
event.delegateTarget=element;
if(handler.oneOff){
EventHandler.off(element, event.type, fn);
}
return fn.apply(element, [event]);
};}
function bootstrapDelegationHandler(element, selector, fn){
return function handler(event){
const domElements=element.querySelectorAll(selector);
for (let {
target
}=event; target&&target!==this; target=target.parentNode){
for (let i=domElements.length; i--;){
if(domElements[i]===target){
event.delegateTarget=target;
if(handler.oneOff){
EventHandler.off(element, event.type, selector, fn);
}
return fn.apply(target, [event]);
}}
}
return null;
};}
function findHandler(events, handler, delegationSelector=null){
const uidEventList=Object.keys(events);
for (let i=0, len=uidEventList.length; i < len; i++){
const event=events[uidEventList[i]];
if(event.originalHandler===handler&&event.delegationSelector===delegationSelector){
return event;
}}
return null;
}
function normalizeParams(originalTypeEvent, handler, delegationFn){
const delegation=typeof handler==='string';
const originalHandler=delegation ? delegationFn:handler;
let typeEvent=getTypeEvent(originalTypeEvent);
const isNative=nativeEvents.has(typeEvent);
if(!isNative){
typeEvent=originalTypeEvent;
}
return [delegation, originalHandler, typeEvent];
}
function addHandler(element, originalTypeEvent, handler, delegationFn, oneOff){
if(typeof originalTypeEvent!=='string'||!element){
return;
}
if(!handler){
handler=delegationFn;
delegationFn=null;
}
if(customEventsRegex.test(originalTypeEvent)){
const wrapFn=fn=> {
return function (event){
if(!event.relatedTarget||event.relatedTarget!==event.delegateTarget&&!event.delegateTarget.contains(event.relatedTarget)){
return fn.call(this, event);
}};};
if(delegationFn){
delegationFn=wrapFn(delegationFn);
}else{
handler=wrapFn(handler);
}}
const [delegation, originalHandler, typeEvent]=normalizeParams(originalTypeEvent, handler, delegationFn);
const events=getEvent(element);
const handlers=events[typeEvent]||(events[typeEvent]={});
const previousFn=findHandler(handlers, originalHandler, delegation ? handler:null);
if(previousFn){
previousFn.oneOff=previousFn.oneOff&&oneOff;
return;
}
const uid=getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''));
const fn=delegation ? bootstrapDelegationHandler(element, handler, delegationFn):bootstrapHandler(element, handler);
fn.delegationSelector=delegation ? handler:null;
fn.originalHandler=originalHandler;
fn.oneOff=oneOff;
fn.uidEvent=uid;
handlers[uid]=fn;
element.addEventListener(typeEvent, fn, delegation);
}
function removeHandler(element, events, typeEvent, handler, delegationSelector){
const fn=findHandler(events[typeEvent], handler, delegationSelector);
if(!fn){
return;
}
element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));
delete events[typeEvent][fn.uidEvent];
}
function removeNamespacedHandlers(element, events, typeEvent, namespace){
const storeElementEvent=events[typeEvent]||{};
Object.keys(storeElementEvent).forEach(handlerKey=> {
if(handlerKey.includes(namespace)){
const event=storeElementEvent[handlerKey];
removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);
}});
}
function getTypeEvent(event){
event=event.replace(stripNameRegex, '');
return customEvents[event]||event;
}
const EventHandler={
on(element, event, handler, delegationFn){
addHandler(element, event, handler, delegationFn, false);
},
one(element, event, handler, delegationFn){
addHandler(element, event, handler, delegationFn, true);
},
off(element, originalTypeEvent, handler, delegationFn){
if(typeof originalTypeEvent!=='string'||!element){
return;
}
const [delegation, originalHandler, typeEvent]=normalizeParams(originalTypeEvent, handler, delegationFn);
const inNamespace=typeEvent!==originalTypeEvent;
const events=getEvent(element);
const isNamespace=originalTypeEvent.startsWith('.');
if(typeof originalHandler!=='undefined'){
if(!events||!events[typeEvent]){
return;
}
removeHandler(element, events, typeEvent, originalHandler, delegation ? handler:null);
return;
}
if(isNamespace){
Object.keys(events).forEach(elementEvent=> {
removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));
});
}
const storeElementEvent=events[typeEvent]||{};
Object.keys(storeElementEvent).forEach(keyHandlers=> {
const handlerKey=keyHandlers.replace(stripUidRegex, '');
if(!inNamespace||originalTypeEvent.includes(handlerKey)){
const event=storeElementEvent[keyHandlers];
removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);
}});
},
trigger(element, event, args){
if(typeof event!=='string'||!element){
return null;
}
const $=getjQuery();
const typeEvent=getTypeEvent(event);
const inNamespace=event!==typeEvent;
const isNative=nativeEvents.has(typeEvent);
let jQueryEvent;
let bubbles=true;
let nativeDispatch=true;
let defaultPrevented=false;
let evt=null;
if(inNamespace&&$){
jQueryEvent=$.Event(event, args);
$(element).trigger(jQueryEvent);
bubbles = !jQueryEvent.isPropagationStopped();
nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();
defaultPrevented=jQueryEvent.isDefaultPrevented();
}
if(isNative){
evt=document.createEvent('HTMLEvents');
evt.initEvent(typeEvent, bubbles, true);
}else{
evt=new CustomEvent(event, {
bubbles,
cancelable: true
});
}
if(typeof args!=='undefined'){
Object.keys(args).forEach(key=> {
Object.defineProperty(evt, key, {
get(){
return args[key];
}});
});
}
if(defaultPrevented){
evt.preventDefault();
}
if(nativeDispatch){
element.dispatchEvent(evt);
}
if(evt.defaultPrevented&&typeof jQueryEvent!=='undefined'){
jQueryEvent.preventDefault();
}
return evt;
}};
const elementMap=new Map();
const Data={
set(element, key, instance){
if(!elementMap.has(element)){
elementMap.set(element, new Map());
}
const instanceMap=elementMap.get(element);
if(!instanceMap.has(key)&&instanceMap.size!==0){
console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);
return;
}
instanceMap.set(key, instance);
},
get(element, key){
if(elementMap.has(element)){
return elementMap.get(element).get(key)||null;
}
return null;
},
remove(element, key){
if(!elementMap.has(element)){
return;
}
const instanceMap=elementMap.get(element);
instanceMap.delete(key);
if(instanceMap.size===0){
elementMap.delete(element);
}}
};
const VERSION='5.1.3';
class BaseComponent {
constructor(element){
element=getElement(element);
if(!element){
return;
}
this._element=element;
Data.set(this._element, this.constructor.DATA_KEY, this);
}
dispose(){
Data.remove(this._element, this.constructor.DATA_KEY);
EventHandler.off(this._element, this.constructor.EVENT_KEY);
Object.getOwnPropertyNames(this).forEach(propertyName=> {
this[propertyName]=null;
});
}
_queueCallback(callback, element, isAnimated=true){
executeAfterTransition(callback, element, isAnimated);
}
static getInstance(element){
return Data.get(getElement(element), this.DATA_KEY);
}
static getOrCreateInstance(element, config={}){
return this.getInstance(element)||new this(element, typeof config==='object' ? config:null);
}
static get VERSION(){
return VERSION;
}
static get NAME(){
throw new Error('You have to implement the static method "NAME", for each component!');
}
static get DATA_KEY(){
return `bs.${this.NAME}`;
}
static get EVENT_KEY(){
return `.${this.DATA_KEY}`;
}}
const enableDismissTrigger=(component, method='hide')=> {
const clickEvent=`click.dismiss${component.EVENT_KEY}`;
const name=component.NAME;
EventHandler.on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function (event){
if(['A', 'AREA'].includes(this.tagName)){
event.preventDefault();
}
if(isDisabled(this)){
return;
}
const target=getElementFromSelector(this)||this.closest(`.${name}`);
const instance=component.getOrCreateInstance(target);
instance[method]();
});
};
const NAME$d='alert';
const DATA_KEY$c='bs.alert';
const EVENT_KEY$c=`.${DATA_KEY$c}`;
const EVENT_CLOSE=`close${EVENT_KEY$c}`;
const EVENT_CLOSED=`closed${EVENT_KEY$c}`;
const CLASS_NAME_FADE$5='fade';
const CLASS_NAME_SHOW$8='show';
class Alert extends BaseComponent {
static get NAME(){
return NAME$d;
}
close(){
const closeEvent=EventHandler.trigger(this._element, EVENT_CLOSE);
if(closeEvent.defaultPrevented){
return;
}
this._element.classList.remove(CLASS_NAME_SHOW$8);
const isAnimated=this._element.classList.contains(CLASS_NAME_FADE$5);
this._queueCallback(()=> this._destroyElement(), this._element, isAnimated);
}
_destroyElement(){
this._element.remove();
EventHandler.trigger(this._element, EVENT_CLOSED);
this.dispose();
}
static jQueryInterface(config){
return this.each(function (){
const data=Alert.getOrCreateInstance(this);
if(typeof config!=='string'){
return;
}
if(data[config]===undefined||config.startsWith('_')||config==='constructor'){
throw new TypeError(`No method named "${config}"`);
}
data[config](this);
});
}}
enableDismissTrigger(Alert, 'close');
defineJQueryPlugin(Alert);
const NAME$c='button';
const DATA_KEY$b='bs.button';
const EVENT_KEY$b=`.${DATA_KEY$b}`;
const DATA_API_KEY$7='.data-api';
const CLASS_NAME_ACTIVE$3='active';
const SELECTOR_DATA_TOGGLE$5='[data-bs-toggle="button"]';
const EVENT_CLICK_DATA_API$6=`click${EVENT_KEY$b}${DATA_API_KEY$7}`;
class Button extends BaseComponent {
static get NAME(){
return NAME$c;
}
toggle(){
this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3));
}
static jQueryInterface(config){
return this.each(function (){
const data=Button.getOrCreateInstance(this);
if(config==='toggle'){
data[config]();
}});
}}
EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event=> {
event.preventDefault();
const button=event.target.closest(SELECTOR_DATA_TOGGLE$5);
const data=Button.getOrCreateInstance(button);
data.toggle();
});
defineJQueryPlugin(Button);
function normalizeData(val){
if(val==='true'){
return true;
}
if(val==='false'){
return false;
}
if(val===Number(val).toString()){
return Number(val);
}
if(val===''||val==='null'){
return null;
}
return val;
}
function normalizeDataKey(key){
return key.replace(/[A-Z]/g, chr=> `-${chr.toLowerCase()}`);
}
const Manipulator={
setDataAttribute(element, key, value){
element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);
},
removeDataAttribute(element, key){
element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);
},
getDataAttributes(element){
if(!element){
return {};}
const attributes={};
Object.keys(element.dataset).filter(key=> key.startsWith('bs')).forEach(key=> {
let pureKey=key.replace(/^bs/, '');
pureKey=pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);
attributes[pureKey]=normalizeData(element.dataset[key]);
});
return attributes;
},
getDataAttribute(element, key){
return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));
},
offset(element){
const rect=element.getBoundingClientRect();
return {
top: rect.top + window.pageYOffset,
left: rect.left + window.pageXOffset
};},
position(element){
return {
top: element.offsetTop,
left: element.offsetLeft
};}};
const NODE_TEXT=3;
const SelectorEngine={
find(selector, element=document.documentElement){
return [].concat(...Element.prototype.querySelectorAll.call(element, selector));
},
findOne(selector, element=document.documentElement){
return Element.prototype.querySelector.call(element, selector);
},
children(element, selector){
return [].concat(...element.children).filter(child=> child.matches(selector));
},
parents(element, selector){
const parents=[];
let ancestor=element.parentNode;
while (ancestor&&ancestor.nodeType===Node.ELEMENT_NODE&&ancestor.nodeType!==NODE_TEXT){
if(ancestor.matches(selector)){
parents.push(ancestor);
}
ancestor=ancestor.parentNode;
}
return parents;
},
prev(element, selector){
let previous=element.previousElementSibling;
while (previous){
if(previous.matches(selector)){
return [previous];
}
previous=previous.previousElementSibling;
}
return [];
},
next(element, selector){
let next=element.nextElementSibling;
while (next){
if(next.matches(selector)){
return [next];
}
next=next.nextElementSibling;
}
return [];
},
focusableChildren(element){
const focusables=['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable="true"]'].map(selector=> `${selector}:not([tabindex^="-"])`).join(', ');
return this.find(focusables, element).filter(el=> !isDisabled(el)&&isVisible(el));
}};
const NAME$b='carousel';
const DATA_KEY$a='bs.carousel';
const EVENT_KEY$a=`.${DATA_KEY$a}`;
const DATA_API_KEY$6='.data-api';
const ARROW_LEFT_KEY='ArrowLeft';
const ARROW_RIGHT_KEY='ArrowRight';
const TOUCHEVENT_COMPAT_WAIT=500;
const SWIPE_THRESHOLD=40;
const Default$a={
interval: 5000,
keyboard: true,
slide: false,
pause: 'hover',
wrap: true,
touch: true
};
const DefaultType$a={
interval: '(number|boolean)',
keyboard: 'boolean',
slide: '(boolean|string)',
pause: '(string|boolean)',
wrap: 'boolean',
touch: 'boolean'
};
const ORDER_NEXT='next';
const ORDER_PREV='prev';
const DIRECTION_LEFT='left';
const DIRECTION_RIGHT='right';
const KEY_TO_DIRECTION={
[ARROW_LEFT_KEY]: DIRECTION_RIGHT,
[ARROW_RIGHT_KEY]: DIRECTION_LEFT
};
const EVENT_SLIDE=`slide${EVENT_KEY$a}`;
const EVENT_SLID=`slid${EVENT_KEY$a}`;
const EVENT_KEYDOWN=`keydown${EVENT_KEY$a}`;
const EVENT_MOUSEENTER=`mouseenter${EVENT_KEY$a}`;
const EVENT_MOUSELEAVE=`mouseleave${EVENT_KEY$a}`;
const EVENT_TOUCHSTART=`touchstart${EVENT_KEY$a}`;
const EVENT_TOUCHMOVE=`touchmove${EVENT_KEY$a}`;
const EVENT_TOUCHEND=`touchend${EVENT_KEY$a}`;
const EVENT_POINTERDOWN=`pointerdown${EVENT_KEY$a}`;
const EVENT_POINTERUP=`pointerup${EVENT_KEY$a}`;
const EVENT_DRAG_START=`dragstart${EVENT_KEY$a}`;
const EVENT_LOAD_DATA_API$2=`load${EVENT_KEY$a}${DATA_API_KEY$6}`;
const EVENT_CLICK_DATA_API$5=`click${EVENT_KEY$a}${DATA_API_KEY$6}`;
const CLASS_NAME_CAROUSEL='carousel';
const CLASS_NAME_ACTIVE$2='active';
const CLASS_NAME_SLIDE='slide';
const CLASS_NAME_END='carousel-item-end';
const CLASS_NAME_START='carousel-item-start';
const CLASS_NAME_NEXT='carousel-item-next';
const CLASS_NAME_PREV='carousel-item-prev';
const CLASS_NAME_POINTER_EVENT='pointer-event';
const SELECTOR_ACTIVE$1='.active';
const SELECTOR_ACTIVE_ITEM='.active.carousel-item';
const SELECTOR_ITEM='.carousel-item';
const SELECTOR_ITEM_IMG='.carousel-item img';
const SELECTOR_NEXT_PREV='.carousel-item-next, .carousel-item-prev';
const SELECTOR_INDICATORS='.carousel-indicators';
const SELECTOR_INDICATOR='[data-bs-target]';
const SELECTOR_DATA_SLIDE='[data-bs-slide], [data-bs-slide-to]';
const SELECTOR_DATA_RIDE='[data-bs-ride="carousel"]';
const POINTER_TYPE_TOUCH='touch';
const POINTER_TYPE_PEN='pen';
class Carousel extends BaseComponent {
constructor(element, config){
super(element);
this._items=null;
this._interval=null;
this._activeElement=null;
this._isPaused=false;
this._isSliding=false;
this.touchTimeout=null;
this.touchStartX=0;
this.touchDeltaX=0;
this._config=this._getConfig(config);
this._indicatorsElement=SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);
this._touchSupported='ontouchstart' in document.documentElement||navigator.maxTouchPoints > 0;
this._pointerEvent=Boolean(window.PointerEvent);
this._addEventListeners();
}
static get Default(){
return Default$a;
}
static get NAME(){
return NAME$b;
}
next(){
this._slide(ORDER_NEXT);
}
nextWhenVisible(){
if(!document.hidden&&isVisible(this._element)){
this.next();
}}
prev(){
this._slide(ORDER_PREV);
}
pause(event){
if(!event){
this._isPaused=true;
}
if(SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)){
triggerTransitionEnd(this._element);
this.cycle(true);
}
clearInterval(this._interval);
this._interval=null;
}
cycle(event){
if(!event){
this._isPaused=false;
}
if(this._interval){
clearInterval(this._interval);
this._interval=null;
}
if(this._config&&this._config.interval&&!this._isPaused){
this._updateInterval();
this._interval=setInterval((document.visibilityState ? this.nextWhenVisible:this.next).bind(this), this._config.interval);
}}
to(index){
this._activeElement=SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
const activeIndex=this._getItemIndex(this._activeElement);
if(index > this._items.length - 1||index < 0){
return;
}
if(this._isSliding){
EventHandler.one(this._element, EVENT_SLID, ()=> this.to(index));
return;
}
if(activeIndex===index){
this.pause();
this.cycle();
return;
}
const order=index > activeIndex ? ORDER_NEXT:ORDER_PREV;
this._slide(order, this._items[index]);
}
_getConfig(config){
config={ ...Default$a,
...Manipulator.getDataAttributes(this._element),
...(typeof config==='object' ? config:{})
};
typeCheckConfig(NAME$b, config, DefaultType$a);
return config;
}
_handleSwipe(){
const absDeltax=Math.abs(this.touchDeltaX);
if(absDeltax <=SWIPE_THRESHOLD){
return;
}
const direction=absDeltax / this.touchDeltaX;
this.touchDeltaX=0;
if(!direction){
return;
}
this._slide(direction > 0 ? DIRECTION_RIGHT:DIRECTION_LEFT);
}
_addEventListeners(){
if(this._config.keyboard){
EventHandler.on(this._element, EVENT_KEYDOWN, event=> this._keydown(event));
}
if(this._config.pause==='hover'){
EventHandler.on(this._element, EVENT_MOUSEENTER, event=> this.pause(event));
EventHandler.on(this._element, EVENT_MOUSELEAVE, event=> this.cycle(event));
}
if(this._config.touch&&this._touchSupported){
this._addTouchEventListeners();
}}
_addTouchEventListeners(){
const hasPointerPenTouch=event=> {
return this._pointerEvent&&(event.pointerType===POINTER_TYPE_PEN||event.pointerType===POINTER_TYPE_TOUCH);
};
const start=event=> {
if(hasPointerPenTouch(event)){
this.touchStartX=event.clientX;
}else if(!this._pointerEvent){
this.touchStartX=event.touches[0].clientX;
}};
const move=event=> {
this.touchDeltaX=event.touches&&event.touches.length > 1 ? 0:event.touches[0].clientX - this.touchStartX;
};
const end=event=> {
if(hasPointerPenTouch(event)){
this.touchDeltaX=event.clientX - this.touchStartX;
}
this._handleSwipe();
if(this._config.pause==='hover'){
this.pause();
if(this.touchTimeout){
clearTimeout(this.touchTimeout);
}
this.touchTimeout=setTimeout(event=> this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval);
}};
SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg=> {
EventHandler.on(itemImg, EVENT_DRAG_START, event=> event.preventDefault());
});
if(this._pointerEvent){
EventHandler.on(this._element, EVENT_POINTERDOWN, event=> start(event));
EventHandler.on(this._element, EVENT_POINTERUP, event=> end(event));
this._element.classList.add(CLASS_NAME_POINTER_EVENT);
}else{
EventHandler.on(this._element, EVENT_TOUCHSTART, event=> start(event));
EventHandler.on(this._element, EVENT_TOUCHMOVE, event=> move(event));
EventHandler.on(this._element, EVENT_TOUCHEND, event=> end(event));
}}
_keydown(event){
if(/input|textarea/i.test(event.target.tagName)){
return;
}
const direction=KEY_TO_DIRECTION[event.key];
if(direction){
event.preventDefault();
this._slide(direction);
}}
_getItemIndex(element){
this._items=element&&element.parentNode ? SelectorEngine.find(SELECTOR_ITEM, element.parentNode):[];
return this._items.indexOf(element);
}
_getItemByOrder(order, activeElement){
const isNext=order===ORDER_NEXT;
return getNextActiveElement(this._items, activeElement, isNext, this._config.wrap);
}
_triggerSlideEvent(relatedTarget, eventDirectionName){
const targetIndex=this._getItemIndex(relatedTarget);
const fromIndex=this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element));
return EventHandler.trigger(this._element, EVENT_SLIDE, {
relatedTarget,
direction: eventDirectionName,
from: fromIndex,
to: targetIndex
});
}
_setActiveIndicatorElement(element){
if(this._indicatorsElement){
const activeIndicator=SelectorEngine.findOne(SELECTOR_ACTIVE$1, this._indicatorsElement);
activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);
activeIndicator.removeAttribute('aria-current');
const indicators=SelectorEngine.find(SELECTOR_INDICATOR, this._indicatorsElement);
for (let i=0; i < indicators.length; i++){
if(Number.parseInt(indicators[i].getAttribute('data-bs-slide-to'), 10)===this._getItemIndex(element)){
indicators[i].classList.add(CLASS_NAME_ACTIVE$2);
indicators[i].setAttribute('aria-current', 'true');
break;
}}
}}
_updateInterval(){
const element=this._activeElement||SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
if(!element){
return;
}
const elementInterval=Number.parseInt(element.getAttribute('data-bs-interval'), 10);
if(elementInterval){
this._config.defaultInterval=this._config.defaultInterval||this._config.interval;
this._config.interval=elementInterval;
}else{
this._config.interval=this._config.defaultInterval||this._config.interval;
}}
_slide(directionOrOrder, element){
const order=this._directionToOrder(directionOrOrder);
const activeElement=SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
const activeElementIndex=this._getItemIndex(activeElement);
const nextElement=element||this._getItemByOrder(order, activeElement);
const nextElementIndex=this._getItemIndex(nextElement);
const isCycling=Boolean(this._interval);
const isNext=order===ORDER_NEXT;
const directionalClassName=isNext ? CLASS_NAME_START:CLASS_NAME_END;
const orderClassName=isNext ? CLASS_NAME_NEXT:CLASS_NAME_PREV;
const eventDirectionName=this._orderToDirection(order);
if(nextElement&&nextElement.classList.contains(CLASS_NAME_ACTIVE$2)){
this._isSliding=false;
return;
}
if(this._isSliding){
return;
}
const slideEvent=this._triggerSlideEvent(nextElement, eventDirectionName);
if(slideEvent.defaultPrevented){
return;
}
if(!activeElement||!nextElement){
return;
}
this._isSliding=true;
if(isCycling){
this.pause();
}
this._setActiveIndicatorElement(nextElement);
this._activeElement=nextElement;
const triggerSlidEvent=()=> {
EventHandler.trigger(this._element, EVENT_SLID, {
relatedTarget: nextElement,
direction: eventDirectionName,
from: activeElementIndex,
to: nextElementIndex
});
};
if(this._element.classList.contains(CLASS_NAME_SLIDE)){
nextElement.classList.add(orderClassName);
reflow(nextElement);
activeElement.classList.add(directionalClassName);
nextElement.classList.add(directionalClassName);
const completeCallBack=()=> {
nextElement.classList.remove(directionalClassName, orderClassName);
nextElement.classList.add(CLASS_NAME_ACTIVE$2);
activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);
this._isSliding=false;
setTimeout(triggerSlidEvent, 0);
};
this._queueCallback(completeCallBack, activeElement, true);
}else{
activeElement.classList.remove(CLASS_NAME_ACTIVE$2);
nextElement.classList.add(CLASS_NAME_ACTIVE$2);
this._isSliding=false;
triggerSlidEvent();
}
if(isCycling){
this.cycle();
}}
_directionToOrder(direction){
if(![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)){
return direction;
}
if(isRTL()){
return direction===DIRECTION_LEFT ? ORDER_PREV:ORDER_NEXT;
}
return direction===DIRECTION_LEFT ? ORDER_NEXT:ORDER_PREV;
}
_orderToDirection(order){
if(![ORDER_NEXT, ORDER_PREV].includes(order)){
return order;
}
if(isRTL()){
return order===ORDER_PREV ? DIRECTION_LEFT:DIRECTION_RIGHT;
}
return order===ORDER_PREV ? DIRECTION_RIGHT:DIRECTION_LEFT;
}
static carouselInterface(element, config){
const data=Carousel.getOrCreateInstance(element, config);
let {
_config
}=data;
if(typeof config==='object'){
_config={ ..._config,
...config
};}
const action=typeof config==='string' ? config:_config.slide;
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&&_config.ride){
data.pause();
data.cycle();
}}
static jQueryInterface(config){
return this.each(function (){
Carousel.carouselInterface(this, config);
});
}
static dataApiClickHandler(event){
const target=getElementFromSelector(this);
if(!target||!target.classList.contains(CLASS_NAME_CAROUSEL)){
return;
}
const config={ ...Manipulator.getDataAttributes(target),
...Manipulator.getDataAttributes(this)
};
const slideIndex=this.getAttribute('data-bs-slide-to');
if(slideIndex){
config.interval=false;
}
Carousel.carouselInterface(target, config);
if(slideIndex){
Carousel.getInstance(target).to(slideIndex);
}
event.preventDefault();
}}
EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler);
EventHandler.on(window, EVENT_LOAD_DATA_API$2, ()=> {
const carousels=SelectorEngine.find(SELECTOR_DATA_RIDE);
for (let i=0, len=carousels.length; i < len; i++){
Carousel.carouselInterface(carousels[i], Carousel.getInstance(carousels[i]));
}});
defineJQueryPlugin(Carousel);
const NAME$a='collapse';
const DATA_KEY$9='bs.collapse';
const EVENT_KEY$9=`.${DATA_KEY$9}`;
const DATA_API_KEY$5='.data-api';
const Default$9={
toggle: true,
parent: null
};
const DefaultType$9={
toggle: 'boolean',
parent: '(null|element)'
};
const EVENT_SHOW$5=`show${EVENT_KEY$9}`;
const EVENT_SHOWN$5=`shown${EVENT_KEY$9}`;
const EVENT_HIDE$5=`hide${EVENT_KEY$9}`;
const EVENT_HIDDEN$5=`hidden${EVENT_KEY$9}`;
const EVENT_CLICK_DATA_API$4=`click${EVENT_KEY$9}${DATA_API_KEY$5}`;
const CLASS_NAME_SHOW$7='show';
const CLASS_NAME_COLLAPSE='collapse';
const CLASS_NAME_COLLAPSING='collapsing';
const CLASS_NAME_COLLAPSED='collapsed';
const CLASS_NAME_DEEPER_CHILDREN=`:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;
const CLASS_NAME_HORIZONTAL='collapse-horizontal';
const WIDTH='width';
const HEIGHT='height';
const SELECTOR_ACTIVES='.collapse.show, .collapse.collapsing';
const SELECTOR_DATA_TOGGLE$4='[data-bs-toggle="collapse"]';
class Collapse extends BaseComponent {
constructor(element, config){
super(element);
this._isTransitioning=false;
this._config=this._getConfig(config);
this._triggerArray=[];
const toggleList=SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);
for (let i=0, len=toggleList.length; i < len; i++){
const elem=toggleList[i];
const selector=getSelectorFromElement(elem);
const filterElement=SelectorEngine.find(selector).filter(foundElem=> foundElem===this._element);
if(selector!==null&&filterElement.length){
this._selector=selector;
this._triggerArray.push(elem);
}}
this._initializeChildren();
if(!this._config.parent){
this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());
}
if(this._config.toggle){
this.toggle();
}}
static get Default(){
return Default$9;
}
static get NAME(){
return NAME$a;
}
toggle(){
if(this._isShown()){
this.hide();
}else{
this.show();
}}
show(){
if(this._isTransitioning||this._isShown()){
return;
}
let actives=[];
let activesData;
if(this._config.parent){
const children=SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);
actives=SelectorEngine.find(SELECTOR_ACTIVES, this._config.parent).filter(elem=> !children.includes(elem));
}
const container=SelectorEngine.findOne(this._selector);
if(actives.length){
const tempActiveData=actives.find(elem=> container!==elem);
activesData=tempActiveData ? Collapse.getInstance(tempActiveData):null;
if(activesData&&activesData._isTransitioning){
return;
}}
const startEvent=EventHandler.trigger(this._element, EVENT_SHOW$5);
if(startEvent.defaultPrevented){
return;
}
actives.forEach(elemActive=> {
if(container!==elemActive){
Collapse.getOrCreateInstance(elemActive, {
toggle: false
}).hide();
}
if(!activesData){
Data.set(elemActive, DATA_KEY$9, null);
}});
const dimension=this._getDimension();
this._element.classList.remove(CLASS_NAME_COLLAPSE);
this._element.classList.add(CLASS_NAME_COLLAPSING);
this._element.style[dimension]=0;
this._addAriaAndCollapsedClass(this._triggerArray, true);
this._isTransitioning=true;
const complete=()=> {
this._isTransitioning=false;
this._element.classList.remove(CLASS_NAME_COLLAPSING);
this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);
this._element.style[dimension]='';
EventHandler.trigger(this._element, EVENT_SHOWN$5);
};
const capitalizedDimension=dimension[0].toUpperCase() + dimension.slice(1);
const scrollSize=`scroll${capitalizedDimension}`;
this._queueCallback(complete, this._element, true);
this._element.style[dimension]=`${this._element[scrollSize]}px`;
}
hide(){
if(this._isTransitioning||!this._isShown()){
return;
}
const startEvent=EventHandler.trigger(this._element, EVENT_HIDE$5);
if(startEvent.defaultPrevented){
return;
}
const dimension=this._getDimension();
this._element.style[dimension]=`${this._element.getBoundingClientRect()[dimension]}px`;
reflow(this._element);
this._element.classList.add(CLASS_NAME_COLLAPSING);
this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);
const triggerArrayLength=this._triggerArray.length;
for (let i=0; i < triggerArrayLength; i++){
const trigger=this._triggerArray[i];
const elem=getElementFromSelector(trigger);
if(elem&&!this._isShown(elem)){
this._addAriaAndCollapsedClass([trigger], false);
}}
this._isTransitioning=true;
const complete=()=> {
this._isTransitioning=false;
this._element.classList.remove(CLASS_NAME_COLLAPSING);
this._element.classList.add(CLASS_NAME_COLLAPSE);
EventHandler.trigger(this._element, EVENT_HIDDEN$5);
};
this._element.style[dimension]='';
this._queueCallback(complete, this._element, true);
}
_isShown(element=this._element){
return element.classList.contains(CLASS_NAME_SHOW$7);
}
_getConfig(config){
config={ ...Default$9,
...Manipulator.getDataAttributes(this._element),
...config
};
config.toggle=Boolean(config.toggle);
config.parent=getElement(config.parent);
typeCheckConfig(NAME$a, config, DefaultType$9);
return config;
}
_getDimension(){
return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH:HEIGHT;
}
_initializeChildren(){
if(!this._config.parent){
return;
}
const children=SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);
SelectorEngine.find(SELECTOR_DATA_TOGGLE$4, this._config.parent).filter(elem=> !children.includes(elem)).forEach(element=> {
const selected=getElementFromSelector(element);
if(selected){
this._addAriaAndCollapsedClass([element], this._isShown(selected));
}});
}
_addAriaAndCollapsedClass(triggerArray, isOpen){
if(!triggerArray.length){
return;
}
triggerArray.forEach(elem=> {
if(isOpen){
elem.classList.remove(CLASS_NAME_COLLAPSED);
}else{
elem.classList.add(CLASS_NAME_COLLAPSED);
}
elem.setAttribute('aria-expanded', isOpen);
});
}
static jQueryInterface(config){
return this.each(function (){
const _config={};
if(typeof config==='string'&&/show|hide/.test(config)){
_config.toggle=false;
}
const data=Collapse.getOrCreateInstance(this, _config);
if(typeof config==='string'){
if(typeof data[config]==='undefined'){
throw new TypeError(`No method named "${config}"`);
}
data[config]();
}});
}}
EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event){
if(event.target.tagName==='A'||event.delegateTarget&&event.delegateTarget.tagName==='A'){
event.preventDefault();
}
const selector=getSelectorFromElement(this);
const selectorElements=SelectorEngine.find(selector);
selectorElements.forEach(element=> {
Collapse.getOrCreateInstance(element, {
toggle: false
}).toggle();
});
});
defineJQueryPlugin(Collapse);
const NAME$9='dropdown';
const DATA_KEY$8='bs.dropdown';
const EVENT_KEY$8=`.${DATA_KEY$8}`;
const DATA_API_KEY$4='.data-api';
const ESCAPE_KEY$2='Escape';
const SPACE_KEY='Space';
const TAB_KEY$1='Tab';
const ARROW_UP_KEY='ArrowUp';
const ARROW_DOWN_KEY='ArrowDown';
const RIGHT_MOUSE_BUTTON=2;
const REGEXP_KEYDOWN=new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY$2}`);
const EVENT_HIDE$4=`hide${EVENT_KEY$8}`;
const EVENT_HIDDEN$4=`hidden${EVENT_KEY$8}`;
const EVENT_SHOW$4=`show${EVENT_KEY$8}`;
const EVENT_SHOWN$4=`shown${EVENT_KEY$8}`;
const EVENT_CLICK_DATA_API$3=`click${EVENT_KEY$8}${DATA_API_KEY$4}`;
const EVENT_KEYDOWN_DATA_API=`keydown${EVENT_KEY$8}${DATA_API_KEY$4}`;
const EVENT_KEYUP_DATA_API=`keyup${EVENT_KEY$8}${DATA_API_KEY$4}`;
const CLASS_NAME_SHOW$6='show';
const CLASS_NAME_DROPUP='dropup';
const CLASS_NAME_DROPEND='dropend';
const CLASS_NAME_DROPSTART='dropstart';
const CLASS_NAME_NAVBAR='navbar';
const SELECTOR_DATA_TOGGLE$3='[data-bs-toggle="dropdown"]';
const SELECTOR_MENU='.dropdown-menu';
const SELECTOR_NAVBAR_NAV='.navbar-nav';
const SELECTOR_VISIBLE_ITEMS='.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
const PLACEMENT_TOP=isRTL() ? 'top-end':'top-start';
const PLACEMENT_TOPEND=isRTL() ? 'top-start':'top-end';
const PLACEMENT_BOTTOM=isRTL() ? 'bottom-end':'bottom-start';
const PLACEMENT_BOTTOMEND=isRTL() ? 'bottom-start':'bottom-end';
const PLACEMENT_RIGHT=isRTL() ? 'left-start':'right-start';
const PLACEMENT_LEFT=isRTL() ? 'right-start':'left-start';
const Default$8={
offset: [0, 2],
boundary: 'clippingParents',
reference: 'toggle',
display: 'dynamic',
popperConfig: null,
autoClose: true
};
const DefaultType$8={
offset: '(array|string|function)',
boundary: '(string|element)',
reference: '(string|element|object)',
display: 'string',
popperConfig: '(null|object|function)',
autoClose: '(boolean|string)'
};
class Dropdown extends BaseComponent {
constructor(element, config){
super(element);
this._popper=null;
this._config=this._getConfig(config);
this._menu=this._getMenuElement();
this._inNavbar=this._detectNavbar();
}
static get Default(){
return Default$8;
}
static get DefaultType(){
return DefaultType$8;
}
static get NAME(){
return NAME$9;
}
toggle(){
return this._isShown() ? this.hide():this.show();
}
show(){
if(isDisabled(this._element)||this._isShown(this._menu)){
return;
}
const relatedTarget={
relatedTarget: this._element
};
const showEvent=EventHandler.trigger(this._element, EVENT_SHOW$4, relatedTarget);
if(showEvent.defaultPrevented){
return;
}
const parent=Dropdown.getParentFromElement(this._element);
if(this._inNavbar){
Manipulator.setDataAttribute(this._menu, 'popper', 'none');
}else{
this._createPopper(parent);
}
if('ontouchstart' in document.documentElement&&!parent.closest(SELECTOR_NAVBAR_NAV)){
[].concat(...document.body.children).forEach(elem=> EventHandler.on(elem, 'mouseover', noop));
}
this._element.focus();
this._element.setAttribute('aria-expanded', true);
this._menu.classList.add(CLASS_NAME_SHOW$6);
this._element.classList.add(CLASS_NAME_SHOW$6);
EventHandler.trigger(this._element, EVENT_SHOWN$4, relatedTarget);
}
hide(){
if(isDisabled(this._element)||!this._isShown(this._menu)){
return;
}
const relatedTarget={
relatedTarget: this._element
};
this._completeHide(relatedTarget);
}
dispose(){
if(this._popper){
this._popper.destroy();
}
super.dispose();
}
update(){
this._inNavbar=this._detectNavbar();
if(this._popper){
this._popper.update();
}}
_completeHide(relatedTarget){
const hideEvent=EventHandler.trigger(this._element, EVENT_HIDE$4, relatedTarget);
if(hideEvent.defaultPrevented){
return;
}
if('ontouchstart' in document.documentElement){
[].concat(...document.body.children).forEach(elem=> EventHandler.off(elem, 'mouseover', noop));
}
if(this._popper){
this._popper.destroy();
}
this._menu.classList.remove(CLASS_NAME_SHOW$6);
this._element.classList.remove(CLASS_NAME_SHOW$6);
this._element.setAttribute('aria-expanded', 'false');
Manipulator.removeDataAttribute(this._menu, 'popper');
EventHandler.trigger(this._element, EVENT_HIDDEN$4, relatedTarget);
}
_getConfig(config){
config={ ...this.constructor.Default,
...Manipulator.getDataAttributes(this._element),
...config
};
typeCheckConfig(NAME$9, config, this.constructor.DefaultType);
if(typeof config.reference==='object'&&!isElement(config.reference)&&typeof config.reference.getBoundingClientRect!=='function'){
throw new TypeError(`${NAME$9.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);
}
return config;
}
_createPopper(parent){
if(typeof Popper__namespace==='undefined'){
throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)');
}
let referenceElement=this._element;
if(this._config.reference==='parent'){
referenceElement=parent;
}else if(isElement(this._config.reference)){
referenceElement=getElement(this._config.reference);
}else if(typeof this._config.reference==='object'){
referenceElement=this._config.reference;
}
const popperConfig=this._getPopperConfig();
const isDisplayStatic=popperConfig.modifiers.find(modifier=> modifier.name==='applyStyles'&&modifier.enabled===false);
this._popper=Popper__namespace.createPopper(referenceElement, this._menu, popperConfig);
if(isDisplayStatic){
Manipulator.setDataAttribute(this._menu, 'popper', 'static');
}}
_isShown(element=this._element){
return element.classList.contains(CLASS_NAME_SHOW$6);
}
_getMenuElement(){
return SelectorEngine.next(this._element, SELECTOR_MENU)[0];
}
_getPlacement(){
const parentDropdown=this._element.parentNode;
if(parentDropdown.classList.contains(CLASS_NAME_DROPEND)){
return PLACEMENT_RIGHT;
}
if(parentDropdown.classList.contains(CLASS_NAME_DROPSTART)){
return PLACEMENT_LEFT;
}
const isEnd=getComputedStyle(this._menu).getPropertyValue('--bs-position').trim()==='end';
if(parentDropdown.classList.contains(CLASS_NAME_DROPUP)){
return isEnd ? PLACEMENT_TOPEND:PLACEMENT_TOP;
}
return isEnd ? PLACEMENT_BOTTOMEND:PLACEMENT_BOTTOM;
}
_detectNavbar(){
return this._element.closest(`.${CLASS_NAME_NAVBAR}`)!==null;
}
_getOffset(){
const {
offset
}=this._config;
if(typeof offset==='string'){
return offset.split(',').map(val=> Number.parseInt(val, 10));
}
if(typeof offset==='function'){
return popperData=> offset(popperData, this._element);
}
return offset;
}
_getPopperConfig(){
const defaultBsPopperConfig={
placement: this._getPlacement(),
modifiers: [{
name: 'preventOverflow',
options: {
boundary: this._config.boundary
}}, {
name: 'offset',
options: {
offset: this._getOffset()
}}]
};
if(this._config.display==='static'){
defaultBsPopperConfig.modifiers=[{
name: 'applyStyles',
enabled: false
}];
}
return { ...defaultBsPopperConfig,
...(typeof this._config.popperConfig==='function' ? this._config.popperConfig(defaultBsPopperConfig):this._config.popperConfig)
};}
_selectMenuItem({
key,
target
}){
const items=SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(isVisible);
if(!items.length){
return;
}
getNextActiveElement(items, target, key===ARROW_DOWN_KEY, !items.includes(target)).focus();
}
static jQueryInterface(config){
return this.each(function (){
const data=Dropdown.getOrCreateInstance(this, config);
if(typeof config!=='string'){
return;
}
if(typeof data[config]==='undefined'){
throw new TypeError(`No method named "${config}"`);
}
data[config]();
});
}
static clearMenus(event){
if(event&&(event.button===RIGHT_MOUSE_BUTTON||event.type==='keyup'&&event.key!==TAB_KEY$1)){
return;
}
const toggles=SelectorEngine.find(SELECTOR_DATA_TOGGLE$3);
for (let i=0, len=toggles.length; i < len; i++){
const context=Dropdown.getInstance(toggles[i]);
if(!context||context._config.autoClose===false){
continue;
}
if(!context._isShown()){
continue;
}
const relatedTarget={
relatedTarget: context._element
};
if(event){
const composedPath=event.composedPath();
const isMenuTarget=composedPath.includes(context._menu);
if(composedPath.includes(context._element)||context._config.autoClose==='inside'&&!isMenuTarget||context._config.autoClose==='outside'&&isMenuTarget){
continue;
}
if(context._menu.contains(event.target)&&(event.type==='keyup'&&event.key===TAB_KEY$1||/input|select|option|textarea|form/i.test(event.target.tagName))){
continue;
}
if(event.type==='click'){
relatedTarget.clickEvent=event;
}}
context._completeHide(relatedTarget);
}}
static getParentFromElement(element){
return getElementFromSelector(element)||element.parentNode;
}
static dataApiKeydownHandler(event){
if(/input|textarea/i.test(event.target.tagName) ? event.key===SPACE_KEY||event.key!==ESCAPE_KEY$2&&(event.key!==ARROW_DOWN_KEY&&event.key!==ARROW_UP_KEY||event.target.closest(SELECTOR_MENU)):!REGEXP_KEYDOWN.test(event.key)){
return;
}
const isActive=this.classList.contains(CLASS_NAME_SHOW$6);
if(!isActive&&event.key===ESCAPE_KEY$2){
return;
}
event.preventDefault();
event.stopPropagation();
if(isDisabled(this)){
return;
}
const getToggleButton=this.matches(SELECTOR_DATA_TOGGLE$3) ? this:SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0];
const instance=Dropdown.getOrCreateInstance(getToggleButton);
if(event.key===ESCAPE_KEY$2){
instance.hide();
return;
}
if(event.key===ARROW_UP_KEY||event.key===ARROW_DOWN_KEY){
if(!isActive){
instance.show();
}
instance._selectMenuItem(event);
return;
}
if(!isActive||event.key===SPACE_KEY){
Dropdown.clearMenus();
}}
}
EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);
EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);
EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);
EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);
EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event){
event.preventDefault();
Dropdown.getOrCreateInstance(this).toggle();
});
defineJQueryPlugin(Dropdown);
const SELECTOR_FIXED_CONTENT='.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
const SELECTOR_STICKY_CONTENT='.sticky-top';
class ScrollBarHelper {
constructor(){
this._element=document.body;
}
getWidth(){
const documentWidth=document.documentElement.clientWidth;
return Math.abs(window.innerWidth - documentWidth);
}
hide(){
const width=this.getWidth();
this._disableOverFlow();
this._setElementAttributes(this._element, 'paddingRight', calculatedValue=> calculatedValue + width);
this._setElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight', calculatedValue=> calculatedValue + width);
this._setElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight', calculatedValue=> calculatedValue - width);
}
_disableOverFlow(){
this._saveInitialAttribute(this._element, 'overflow');
this._element.style.overflow='hidden';
}
_setElementAttributes(selector, styleProp, callback){
const scrollbarWidth=this.getWidth();
const manipulationCallBack=element=> {
if(element!==this._element&&window.innerWidth > element.clientWidth + scrollbarWidth){
return;
}
this._saveInitialAttribute(element, styleProp);
const calculatedValue=window.getComputedStyle(element)[styleProp];
element.style[styleProp]=`${callback(Number.parseFloat(calculatedValue))}px`;
};
this._applyManipulationCallback(selector, manipulationCallBack);
}
reset(){
this._resetElementAttributes(this._element, 'overflow');
this._resetElementAttributes(this._element, 'paddingRight');
this._resetElementAttributes(SELECTOR_FIXED_CONTENT, 'paddingRight');
this._resetElementAttributes(SELECTOR_STICKY_CONTENT, 'marginRight');
}
_saveInitialAttribute(element, styleProp){
const actualValue=element.style[styleProp];
if(actualValue){
Manipulator.setDataAttribute(element, styleProp, actualValue);
}}
_resetElementAttributes(selector, styleProp){
const manipulationCallBack=element=> {
const value=Manipulator.getDataAttribute(element, styleProp);
if(typeof value==='undefined'){
element.style.removeProperty(styleProp);
}else{
Manipulator.removeDataAttribute(element, styleProp);
element.style[styleProp]=value;
}};
this._applyManipulationCallback(selector, manipulationCallBack);
}
_applyManipulationCallback(selector, callBack){
if(isElement(selector)){
callBack(selector);
}else{
SelectorEngine.find(selector, this._element).forEach(callBack);
}}
isOverflowing(){
return this.getWidth() > 0;
}}
const Default$7={
className: 'modal-backdrop',
isVisible: true,
isAnimated: false,
rootElement: 'body',
clickCallback: null
};
const DefaultType$7={
className: 'string',
isVisible: 'boolean',
isAnimated: 'boolean',
rootElement: '(element|string)',
clickCallback: '(function|null)'
};
const NAME$8='backdrop';
const CLASS_NAME_FADE$4='fade';
const CLASS_NAME_SHOW$5='show';
const EVENT_MOUSEDOWN=`mousedown.bs.${NAME$8}`;
class Backdrop {
constructor(config){
this._config=this._getConfig(config);
this._isAppended=false;
this._element=null;
}
show(callback){
if(!this._config.isVisible){
execute(callback);
return;
}
this._append();
if(this._config.isAnimated){
reflow(this._getElement());
}
this._getElement().classList.add(CLASS_NAME_SHOW$5);
this._emulateAnimation(()=> {
execute(callback);
});
}
hide(callback){
if(!this._config.isVisible){
execute(callback);
return;
}
this._getElement().classList.remove(CLASS_NAME_SHOW$5);
this._emulateAnimation(()=> {
this.dispose();
execute(callback);
});
}
_getElement(){
if(!this._element){
const backdrop=document.createElement('div');
backdrop.className=this._config.className;
if(this._config.isAnimated){
backdrop.classList.add(CLASS_NAME_FADE$4);
}
this._element=backdrop;
}
return this._element;
}
_getConfig(config){
config={ ...Default$7,
...(typeof config==='object' ? config:{})
};
config.rootElement=getElement(config.rootElement);
typeCheckConfig(NAME$8, config, DefaultType$7);
return config;
}
_append(){
if(this._isAppended){
return;
}
this._config.rootElement.append(this._getElement());
EventHandler.on(this._getElement(), EVENT_MOUSEDOWN, ()=> {
execute(this._config.clickCallback);
});
this._isAppended=true;
}
dispose(){
if(!this._isAppended){
return;
}
EventHandler.off(this._element, EVENT_MOUSEDOWN);
this._element.remove();
this._isAppended=false;
}
_emulateAnimation(callback){
executeAfterTransition(callback, this._getElement(), this._config.isAnimated);
}}
const Default$6={
trapElement: null,
autofocus: true
};
const DefaultType$6={
trapElement: 'element',
autofocus: 'boolean'
};
const NAME$7='focustrap';
const DATA_KEY$7='bs.focustrap';
const EVENT_KEY$7=`.${DATA_KEY$7}`;
const EVENT_FOCUSIN$1=`focusin${EVENT_KEY$7}`;
const EVENT_KEYDOWN_TAB=`keydown.tab${EVENT_KEY$7}`;
const TAB_KEY='Tab';
const TAB_NAV_FORWARD='forward';
const TAB_NAV_BACKWARD='backward';
class FocusTrap {
constructor(config){
this._config=this._getConfig(config);
this._isActive=false;
this._lastTabNavDirection=null;
}
activate(){
const {
trapElement,
autofocus
}=this._config;
if(this._isActive){
return;
}
if(autofocus){
trapElement.focus();
}
EventHandler.off(document, EVENT_KEY$7);
EventHandler.on(document, EVENT_FOCUSIN$1, event=> this._handleFocusin(event));
EventHandler.on(document, EVENT_KEYDOWN_TAB, event=> this._handleKeydown(event));
this._isActive=true;
}
deactivate(){
if(!this._isActive){
return;
}
this._isActive=false;
EventHandler.off(document, EVENT_KEY$7);
}
_handleFocusin(event){
const {
target
}=event;
const {
trapElement
}=this._config;
if(target===document||target===trapElement||trapElement.contains(target)){
return;
}
const elements=SelectorEngine.focusableChildren(trapElement);
if(elements.length===0){
trapElement.focus();
}else if(this._lastTabNavDirection===TAB_NAV_BACKWARD){
elements[elements.length - 1].focus();
}else{
elements[0].focus();
}}
_handleKeydown(event){
if(event.key!==TAB_KEY){
return;
}
this._lastTabNavDirection=event.shiftKey ? TAB_NAV_BACKWARD:TAB_NAV_FORWARD;
}
_getConfig(config){
config={ ...Default$6,
...(typeof config==='object' ? config:{})
};
typeCheckConfig(NAME$7, config, DefaultType$6);
return config;
}}
const NAME$6='modal';
const DATA_KEY$6='bs.modal';
const EVENT_KEY$6=`.${DATA_KEY$6}`;
const DATA_API_KEY$3='.data-api';
const ESCAPE_KEY$1='Escape';
const Default$5={
backdrop: true,
keyboard: true,
focus: true
};
const DefaultType$5={
backdrop: '(boolean|string)',
keyboard: 'boolean',
focus: 'boolean'
};
const EVENT_HIDE$3=`hide${EVENT_KEY$6}`;
const EVENT_HIDE_PREVENTED=`hidePrevented${EVENT_KEY$6}`;
const EVENT_HIDDEN$3=`hidden${EVENT_KEY$6}`;
const EVENT_SHOW$3=`show${EVENT_KEY$6}`;
const EVENT_SHOWN$3=`shown${EVENT_KEY$6}`;
const EVENT_RESIZE=`resize${EVENT_KEY$6}`;
const EVENT_CLICK_DISMISS=`click.dismiss${EVENT_KEY$6}`;
const EVENT_KEYDOWN_DISMISS$1=`keydown.dismiss${EVENT_KEY$6}`;
const EVENT_MOUSEUP_DISMISS=`mouseup.dismiss${EVENT_KEY$6}`;
const EVENT_MOUSEDOWN_DISMISS=`mousedown.dismiss${EVENT_KEY$6}`;
const EVENT_CLICK_DATA_API$2=`click${EVENT_KEY$6}${DATA_API_KEY$3}`;
const CLASS_NAME_OPEN='modal-open';
const CLASS_NAME_FADE$3='fade';
const CLASS_NAME_SHOW$4='show';
const CLASS_NAME_STATIC='modal-static';
const OPEN_SELECTOR$1='.modal.show';
const SELECTOR_DIALOG='.modal-dialog';
const SELECTOR_MODAL_BODY='.modal-body';
const SELECTOR_DATA_TOGGLE$2='[data-bs-toggle="modal"]';
class Modal extends BaseComponent {
constructor(element, config){
super(element);
this._config=this._getConfig(config);
this._dialog=SelectorEngine.findOne(SELECTOR_DIALOG, this._element);
this._backdrop=this._initializeBackDrop();
this._focustrap=this._initializeFocusTrap();
this._isShown=false;
this._ignoreBackdropClick=false;
this._isTransitioning=false;
this._scrollBar=new ScrollBarHelper();
}
static get Default(){
return Default$5;
}
static get NAME(){
return NAME$6;
}
toggle(relatedTarget){
return this._isShown ? this.hide():this.show(relatedTarget);
}
show(relatedTarget){
if(this._isShown||this._isTransitioning){
return;
}
const showEvent=EventHandler.trigger(this._element, EVENT_SHOW$3, {
relatedTarget
});
if(showEvent.defaultPrevented){
return;
}
this._isShown=true;
if(this._isAnimated()){
this._isTransitioning=true;
}
this._scrollBar.hide();
document.body.classList.add(CLASS_NAME_OPEN);
this._adjustDialog();
this._setEscapeEvent();
this._setResizeEvent();
EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, ()=> {
EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event=> {
if(event.target===this._element){
this._ignoreBackdropClick=true;
}});
});
this._showBackdrop(()=> this._showElement(relatedTarget));
}
hide(){
if(!this._isShown||this._isTransitioning){
return;
}
const hideEvent=EventHandler.trigger(this._element, EVENT_HIDE$3);
if(hideEvent.defaultPrevented){
return;
}
this._isShown=false;
const isAnimated=this._isAnimated();
if(isAnimated){
this._isTransitioning=true;
}
this._setEscapeEvent();
this._setResizeEvent();
this._focustrap.deactivate();
this._element.classList.remove(CLASS_NAME_SHOW$4);
EventHandler.off(this._element, EVENT_CLICK_DISMISS);
EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS);
this._queueCallback(()=> this._hideModal(), this._element, isAnimated);
}
dispose(){
[window, this._dialog].forEach(htmlElement=> EventHandler.off(htmlElement, EVENT_KEY$6));
this._backdrop.dispose();
this._focustrap.deactivate();
super.dispose();
}
handleUpdate(){
this._adjustDialog();
}
_initializeBackDrop(){
return new Backdrop({
isVisible: Boolean(this._config.backdrop),
isAnimated: this._isAnimated()
});
}
_initializeFocusTrap(){
return new FocusTrap({
trapElement: this._element
});
}
_getConfig(config){
config={ ...Default$5,
...Manipulator.getDataAttributes(this._element),
...(typeof config==='object' ? config:{})
};
typeCheckConfig(NAME$6, config, DefaultType$5);
return config;
}
_showElement(relatedTarget){
const isAnimated=this._isAnimated();
const modalBody=SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);
if(!this._element.parentNode||this._element.parentNode.nodeType!==Node.ELEMENT_NODE){
document.body.append(this._element);
}
this._element.style.display='block';
this._element.removeAttribute('aria-hidden');
this._element.setAttribute('aria-modal', true);
this._element.setAttribute('role', 'dialog');
this._element.scrollTop=0;
if(modalBody){
modalBody.scrollTop=0;
}
if(isAnimated){
reflow(this._element);
}
this._element.classList.add(CLASS_NAME_SHOW$4);
const transitionComplete=()=> {
if(this._config.focus){
this._focustrap.activate();
}
this._isTransitioning=false;
EventHandler.trigger(this._element, EVENT_SHOWN$3, {
relatedTarget
});
};
this._queueCallback(transitionComplete, this._dialog, isAnimated);
}
_setEscapeEvent(){
if(this._isShown){
EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event=> {
if(this._config.keyboard&&event.key===ESCAPE_KEY$1){
event.preventDefault();
this.hide();
}else if(!this._config.keyboard&&event.key===ESCAPE_KEY$1){
this._triggerBackdropTransition();
}});
}else{
EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS$1);
}}
_setResizeEvent(){
if(this._isShown){
EventHandler.on(window, EVENT_RESIZE, ()=> this._adjustDialog());
}else{
EventHandler.off(window, EVENT_RESIZE);
}}
_hideModal(){
this._element.style.display='none';
this._element.setAttribute('aria-hidden', true);
this._element.removeAttribute('aria-modal');
this._element.removeAttribute('role');
this._isTransitioning=false;
this._backdrop.hide(()=> {
document.body.classList.remove(CLASS_NAME_OPEN);
this._resetAdjustments();
this._scrollBar.reset();
EventHandler.trigger(this._element, EVENT_HIDDEN$3);
});
}
_showBackdrop(callback){
EventHandler.on(this._element, EVENT_CLICK_DISMISS, event=> {
if(this._ignoreBackdropClick){
this._ignoreBackdropClick=false;
return;
}
if(event.target!==event.currentTarget){
return;
}
if(this._config.backdrop===true){
this.hide();
}else if(this._config.backdrop==='static'){
this._triggerBackdropTransition();
}});
this._backdrop.show(callback);
}
_isAnimated(){
return this._element.classList.contains(CLASS_NAME_FADE$3);
}
_triggerBackdropTransition(){
const hideEvent=EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
if(hideEvent.defaultPrevented){
return;
}
const {
classList,
scrollHeight,
style
}=this._element;
const isModalOverflowing=scrollHeight > document.documentElement.clientHeight;
if(!isModalOverflowing&&style.overflowY==='hidden'||classList.contains(CLASS_NAME_STATIC)){
return;
}
if(!isModalOverflowing){
style.overflowY='hidden';
}
classList.add(CLASS_NAME_STATIC);
this._queueCallback(()=> {
classList.remove(CLASS_NAME_STATIC);
if(!isModalOverflowing){
this._queueCallback(()=> {
style.overflowY='';
}, this._dialog);
}}, this._dialog);
this._element.focus();
}
_adjustDialog(){
const isModalOverflowing=this._element.scrollHeight > document.documentElement.clientHeight;
const scrollbarWidth=this._scrollBar.getWidth();
const isBodyOverflowing=scrollbarWidth > 0;
if(!isBodyOverflowing&&isModalOverflowing&&!isRTL()||isBodyOverflowing&&!isModalOverflowing&&isRTL()){
this._element.style.paddingLeft=`${scrollbarWidth}px`;
}
if(isBodyOverflowing&&!isModalOverflowing&&!isRTL()||!isBodyOverflowing&&isModalOverflowing&&isRTL()){
this._element.style.paddingRight=`${scrollbarWidth}px`;
}}
_resetAdjustments(){
this._element.style.paddingLeft='';
this._element.style.paddingRight='';
}
static jQueryInterface(config, relatedTarget){
return this.each(function (){
const data=Modal.getOrCreateInstance(this, config);
if(typeof config!=='string'){
return;
}
if(typeof data[config]==='undefined'){
throw new TypeError(`No method named "${config}"`);
}
data[config](relatedTarget);
});
}}
EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event){
const target=getElementFromSelector(this);
if(['A', 'AREA'].includes(this.tagName)){
event.preventDefault();
}
EventHandler.one(target, EVENT_SHOW$3, showEvent=> {
if(showEvent.defaultPrevented){
return;
}
EventHandler.one(target, EVENT_HIDDEN$3, ()=> {
if(isVisible(this)){
this.focus();
}});
});
const allReadyOpen=SelectorEngine.findOne(OPEN_SELECTOR$1);
if(allReadyOpen){
Modal.getInstance(allReadyOpen).hide();
}
const data=Modal.getOrCreateInstance(target);
data.toggle(this);
});
enableDismissTrigger(Modal);
defineJQueryPlugin(Modal);
const NAME$5='offcanvas';
const DATA_KEY$5='bs.offcanvas';
const EVENT_KEY$5=`.${DATA_KEY$5}`;
const DATA_API_KEY$2='.data-api';
const EVENT_LOAD_DATA_API$1=`load${EVENT_KEY$5}${DATA_API_KEY$2}`;
const ESCAPE_KEY='Escape';
const Default$4={
backdrop: true,
keyboard: true,
scroll: false
};
const DefaultType$4={
backdrop: 'boolean',
keyboard: 'boolean',
scroll: 'boolean'
};
const CLASS_NAME_SHOW$3='show';
const CLASS_NAME_BACKDROP='offcanvas-backdrop';
const OPEN_SELECTOR='.offcanvas.show';
const EVENT_SHOW$2=`show${EVENT_KEY$5}`;
const EVENT_SHOWN$2=`shown${EVENT_KEY$5}`;
const EVENT_HIDE$2=`hide${EVENT_KEY$5}`;
const EVENT_HIDDEN$2=`hidden${EVENT_KEY$5}`;
const EVENT_CLICK_DATA_API$1=`click${EVENT_KEY$5}${DATA_API_KEY$2}`;
const EVENT_KEYDOWN_DISMISS=`keydown.dismiss${EVENT_KEY$5}`;
const SELECTOR_DATA_TOGGLE$1='[data-bs-toggle="offcanvas"]';
class Offcanvas extends BaseComponent {
constructor(element, config){
super(element);
this._config=this._getConfig(config);
this._isShown=false;
this._backdrop=this._initializeBackDrop();
this._focustrap=this._initializeFocusTrap();
this._addEventListeners();
}
static get NAME(){
return NAME$5;
}
static get Default(){
return Default$4;
}
toggle(relatedTarget){
return this._isShown ? this.hide():this.show(relatedTarget);
}
show(relatedTarget){
if(this._isShown){
return;
}
const showEvent=EventHandler.trigger(this._element, EVENT_SHOW$2, {
relatedTarget
});
if(showEvent.defaultPrevented){
return;
}
this._isShown=true;
this._element.style.visibility='visible';
this._backdrop.show();
if(!this._config.scroll){
new ScrollBarHelper().hide();
}
this._element.removeAttribute('aria-hidden');
this._element.setAttribute('aria-modal', true);
this._element.setAttribute('role', 'dialog');
this._element.classList.add(CLASS_NAME_SHOW$3);
const completeCallBack=()=> {
if(!this._config.scroll){
this._focustrap.activate();
}
EventHandler.trigger(this._element, EVENT_SHOWN$2, {
relatedTarget
});
};
this._queueCallback(completeCallBack, this._element, true);
}
hide(){
if(!this._isShown){
return;
}
const hideEvent=EventHandler.trigger(this._element, EVENT_HIDE$2);
if(hideEvent.defaultPrevented){
return;
}
this._focustrap.deactivate();
this._element.blur();
this._isShown=false;
this._element.classList.remove(CLASS_NAME_SHOW$3);
this._backdrop.hide();
const completeCallback=()=> {
this._element.setAttribute('aria-hidden', true);
this._element.removeAttribute('aria-modal');
this._element.removeAttribute('role');
this._element.style.visibility='hidden';
if(!this._config.scroll){
new ScrollBarHelper().reset();
}
EventHandler.trigger(this._element, EVENT_HIDDEN$2);
};
this._queueCallback(completeCallback, this._element, true);
}
dispose(){
this._backdrop.dispose();
this._focustrap.deactivate();
super.dispose();
}
_getConfig(config){
config={ ...Default$4,
...Manipulator.getDataAttributes(this._element),
...(typeof config==='object' ? config:{})
};
typeCheckConfig(NAME$5, config, DefaultType$4);
return config;
}
_initializeBackDrop(){
return new Backdrop({
className: CLASS_NAME_BACKDROP,
isVisible: this._config.backdrop,
isAnimated: true,
rootElement: this._element.parentNode,
clickCallback: ()=> this.hide()
});
}
_initializeFocusTrap(){
return new FocusTrap({
trapElement: this._element
});
}
_addEventListeners(){
EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event=> {
if(this._config.keyboard&&event.key===ESCAPE_KEY){
this.hide();
}});
}
static jQueryInterface(config){
return this.each(function (){
const data=Offcanvas.getOrCreateInstance(this, config);
if(typeof config!=='string'){
return;
}
if(data[config]===undefined||config.startsWith('_')||config==='constructor'){
throw new TypeError(`No method named "${config}"`);
}
data[config](this);
});
}}
EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event){
const target=getElementFromSelector(this);
if(['A', 'AREA'].includes(this.tagName)){
event.preventDefault();
}
if(isDisabled(this)){
return;
}
EventHandler.one(target, EVENT_HIDDEN$2, ()=> {
if(isVisible(this)){
this.focus();
}});
const allReadyOpen=SelectorEngine.findOne(OPEN_SELECTOR);
if(allReadyOpen&&allReadyOpen!==target){
Offcanvas.getInstance(allReadyOpen).hide();
}
const data=Offcanvas.getOrCreateInstance(target);
data.toggle(this);
});
EventHandler.on(window, EVENT_LOAD_DATA_API$1, ()=> SelectorEngine.find(OPEN_SELECTOR).forEach(el=> Offcanvas.getOrCreateInstance(el).show()));
enableDismissTrigger(Offcanvas);
defineJQueryPlugin(Offcanvas);
const uriAttributes=new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
const ARIA_ATTRIBUTE_PATTERN=/^aria-[\w-]*$/i;
const SAFE_URL_PATTERN=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i;
const DATA_URL_PATTERN=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;
const allowedAttribute=(attribute, allowedAttributeList)=> {
const attributeName=attribute.nodeName.toLowerCase();
if(allowedAttributeList.includes(attributeName)){
if(uriAttributes.has(attributeName)){
return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue)||DATA_URL_PATTERN.test(attribute.nodeValue));
}
return true;
}
const regExp=allowedAttributeList.filter(attributeRegex=> attributeRegex instanceof RegExp);
for (let i=0, len=regExp.length; i < len; i++){
if(regExp[i].test(attributeName)){
return true;
}}
return false;
};
const DefaultAllowlist={
'*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
a: ['target', 'href', 'title', 'rel'],
area: [],
b: [],
br: [],
col: [],
code: [],
div: [],
em: [],
hr: [],
h1: [],
h2: [],
h3: [],
h4: [],
h5: [],
h6: [],
i: [],
img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],
li: [],
ol: [],
p: [],
pre: [],
s: [],
small: [],
span: [],
sub: [],
sup: [],
strong: [],
u: [],
ul: []
};
function sanitizeHtml(unsafeHtml, allowList, sanitizeFn){
if(!unsafeHtml.length){
return unsafeHtml;
}
if(sanitizeFn&&typeof sanitizeFn==='function'){
return sanitizeFn(unsafeHtml);
}
const domParser=new window.DOMParser();
const createdDocument=domParser.parseFromString(unsafeHtml, 'text/html');
const elements=[].concat(...createdDocument.body.querySelectorAll('*'));
for (let i=0, len=elements.length; i < len; i++){
const element=elements[i];
const elementName=element.nodeName.toLowerCase();
if(!Object.keys(allowList).includes(elementName)){
element.remove();
continue;
}
const attributeList=[].concat(...element.attributes);
const allowedAttributes=[].concat(allowList['*']||[], allowList[elementName]||[]);
attributeList.forEach(attribute=> {
if(!allowedAttribute(attribute, allowedAttributes)){
element.removeAttribute(attribute.nodeName);
}});
}
return createdDocument.body.innerHTML;
}
const NAME$4='tooltip';
const DATA_KEY$4='bs.tooltip';
const EVENT_KEY$4=`.${DATA_KEY$4}`;
const CLASS_PREFIX$1='bs-tooltip';
const DISALLOWED_ATTRIBUTES=new Set(['sanitize', 'allowList', 'sanitizeFn']);
const DefaultType$3={
animation: 'boolean',
template: 'string',
title: '(string|element|function)',
trigger: 'string',
delay: '(number|object)',
html: 'boolean',
selector: '(string|boolean)',
placement: '(string|function)',
offset: '(array|string|function)',
container: '(string|element|boolean)',
fallbackPlacements: 'array',
boundary: '(string|element)',
customClass: '(string|function)',
sanitize: 'boolean',
sanitizeFn: '(null|function)',
allowList: 'object',
popperConfig: '(null|object|function)'
};
const AttachmentMap={
AUTO: 'auto',
TOP: 'top',
RIGHT: isRTL() ? 'left':'right',
BOTTOM: 'bottom',
LEFT: isRTL() ? 'right':'left'
};
const Default$3={
animation: true,
template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div>' + '</div>',
trigger: 'hover focus',
title: '',
delay: 0,
html: false,
selector: false,
placement: 'top',
offset: [0, 0],
container: false,
fallbackPlacements: ['top', 'right', 'bottom', 'left'],
boundary: 'clippingParents',
customClass: '',
sanitize: true,
sanitizeFn: null,
allowList: DefaultAllowlist,
popperConfig: null
};
const Event$2={
HIDE: `hide${EVENT_KEY$4}`,
HIDDEN: `hidden${EVENT_KEY$4}`,
SHOW: `show${EVENT_KEY$4}`,
SHOWN: `shown${EVENT_KEY$4}`,
INSERTED: `inserted${EVENT_KEY$4}`,
CLICK: `click${EVENT_KEY$4}`,
FOCUSIN: `focusin${EVENT_KEY$4}`,
FOCUSOUT: `focusout${EVENT_KEY$4}`,
MOUSEENTER: `mouseenter${EVENT_KEY$4}`,
MOUSELEAVE: `mouseleave${EVENT_KEY$4}`
};
const CLASS_NAME_FADE$2='fade';
const CLASS_NAME_MODAL='modal';
const CLASS_NAME_SHOW$2='show';
const HOVER_STATE_SHOW='show';
const HOVER_STATE_OUT='out';
const SELECTOR_TOOLTIP_INNER='.tooltip-inner';
const SELECTOR_MODAL=`.${CLASS_NAME_MODAL}`;
const EVENT_MODAL_HIDE='hide.bs.modal';
const TRIGGER_HOVER='hover';
const TRIGGER_FOCUS='focus';
const TRIGGER_CLICK='click';
const TRIGGER_MANUAL='manual';
class Tooltip extends BaseComponent {
constructor(element, config){
if(typeof Popper__namespace==='undefined'){
throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)');
}
super(element);
this._isEnabled=true;
this._timeout=0;
this._hoverState='';
this._activeTrigger={};
this._popper=null;
this._config=this._getConfig(config);
this.tip=null;
this._setListeners();
}
static get Default(){
return Default$3;
}
static get NAME(){
return NAME$4;
}
static get Event(){
return Event$2;
}
static get DefaultType(){
return DefaultType$3;
}
enable(){
this._isEnabled=true;
}
disable(){
this._isEnabled=false;
}
toggleEnabled(){
this._isEnabled = !this._isEnabled;
}
toggle(event){
if(!this._isEnabled){
return;
}
if(event){
const context=this._initializeOnDelegatedTarget(event);
context._activeTrigger.click = !context._activeTrigger.click;
if(context._isWithActiveTrigger()){
context._enter(null, context);
}else{
context._leave(null, context);
}}else{
if(this.getTipElement().classList.contains(CLASS_NAME_SHOW$2)){
this._leave(null, this);
return;
}
this._enter(null, this);
}}
dispose(){
clearTimeout(this._timeout);
EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
if(this.tip){
this.tip.remove();
}
this._disposePopper();
super.dispose();
}
show(){
if(this._element.style.display==='none'){
throw new Error('Please use show on visible elements');
}
if(!(this.isWithContent()&&this._isEnabled)){
return;
}
const showEvent=EventHandler.trigger(this._element, this.constructor.Event.SHOW);
const shadowRoot=findShadowRoot(this._element);
const isInTheDom=shadowRoot===null ? this._element.ownerDocument.documentElement.contains(this._element):shadowRoot.contains(this._element);
if(showEvent.defaultPrevented||!isInTheDom){
return;
}
if(this.constructor.NAME==='tooltip'&&this.tip&&this.getTitle()!==this.tip.querySelector(SELECTOR_TOOLTIP_INNER).innerHTML){
this._disposePopper();
this.tip.remove();
this.tip=null;
}
const tip=this.getTipElement();
const tipId=getUID(this.constructor.NAME);
tip.setAttribute('id', tipId);
this._element.setAttribute('aria-describedby', tipId);
if(this._config.animation){
tip.classList.add(CLASS_NAME_FADE$2);
}
const placement=typeof this._config.placement==='function' ? this._config.placement.call(this, tip, this._element):this._config.placement;
const attachment=this._getAttachment(placement);
this._addAttachmentClass(attachment);
const {
container
}=this._config;
Data.set(tip, this.constructor.DATA_KEY, this);
if(!this._element.ownerDocument.documentElement.contains(this.tip)){
container.append(tip);
EventHandler.trigger(this._element, this.constructor.Event.INSERTED);
}
if(this._popper){
this._popper.update();
}else{
this._popper=Popper__namespace.createPopper(this._element, tip, this._getPopperConfig(attachment));
}
tip.classList.add(CLASS_NAME_SHOW$2);
const customClass=this._resolvePossibleFunction(this._config.customClass);
if(customClass){
tip.classList.add(...customClass.split(' '));
}
if('ontouchstart' in document.documentElement){
[].concat(...document.body.children).forEach(element=> {
EventHandler.on(element, 'mouseover', noop);
});
}
const complete=()=> {
const prevHoverState=this._hoverState;
this._hoverState=null;
EventHandler.trigger(this._element, this.constructor.Event.SHOWN);
if(prevHoverState===HOVER_STATE_OUT){
this._leave(null, this);
}};
const isAnimated=this.tip.classList.contains(CLASS_NAME_FADE$2);
this._queueCallback(complete, this.tip, isAnimated);
}
hide(){
if(!this._popper){
return;
}
const tip=this.getTipElement();
const complete=()=> {
if(this._isWithActiveTrigger()){
return;
}
if(this._hoverState!==HOVER_STATE_SHOW){
tip.remove();
}
this._cleanTipClass();
this._element.removeAttribute('aria-describedby');
EventHandler.trigger(this._element, this.constructor.Event.HIDDEN);
this._disposePopper();
};
const hideEvent=EventHandler.trigger(this._element, this.constructor.Event.HIDE);
if(hideEvent.defaultPrevented){
return;
}
tip.classList.remove(CLASS_NAME_SHOW$2);
if('ontouchstart' in document.documentElement){
[].concat(...document.body.children).forEach(element=> EventHandler.off(element, 'mouseover', noop));
}
this._activeTrigger[TRIGGER_CLICK]=false;
this._activeTrigger[TRIGGER_FOCUS]=false;
this._activeTrigger[TRIGGER_HOVER]=false;
const isAnimated=this.tip.classList.contains(CLASS_NAME_FADE$2);
this._queueCallback(complete, this.tip, isAnimated);
this._hoverState='';
}
update(){
if(this._popper!==null){
this._popper.update();
}}
isWithContent(){
return Boolean(this.getTitle());
}
getTipElement(){
if(this.tip){
return this.tip;
}
const element=document.createElement('div');
element.innerHTML=this._config.template;
const tip=element.children[0];
this.setContent(tip);
tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);
this.tip=tip;
return this.tip;
}
setContent(tip){
this._sanitizeAndSetContent(tip, this.getTitle(), SELECTOR_TOOLTIP_INNER);
}
_sanitizeAndSetContent(template, content, selector){
const templateElement=SelectorEngine.findOne(selector, template);
if(!content&&templateElement){
templateElement.remove();
return;
}
this.setElementContent(templateElement, content);
}
setElementContent(element, content){
if(element===null){
return;
}
if(isElement(content)){
content=getElement(content);
if(this._config.html){
if(content.parentNode!==element){
element.innerHTML='';
element.append(content);
}}else{
element.textContent=content.textContent;
}
return;
}
if(this._config.html){
if(this._config.sanitize){
content=sanitizeHtml(content, this._config.allowList, this._config.sanitizeFn);
}
element.innerHTML=content;
}else{
element.textContent=content;
}}
getTitle(){
const title=this._element.getAttribute('data-bs-original-title')||this._config.title;
return this._resolvePossibleFunction(title);
}
updateAttachment(attachment){
if(attachment==='right'){
return 'end';
}
if(attachment==='left'){
return 'start';
}
return attachment;
}
_initializeOnDelegatedTarget(event, context){
return context||this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());
}
_getOffset(){
const {
offset
}=this._config;
if(typeof offset==='string'){
return offset.split(',').map(val=> Number.parseInt(val, 10));
}
if(typeof offset==='function'){
return popperData=> offset(popperData, this._element);
}
return offset;
}
_resolvePossibleFunction(content){
return typeof content==='function' ? content.call(this._element):content;
}
_getPopperConfig(attachment){
const defaultBsPopperConfig={
placement: attachment,
modifiers: [{
name: 'flip',
options: {
fallbackPlacements: this._config.fallbackPlacements
}}, {
name: 'offset',
options: {
offset: this._getOffset()
}}, {
name: 'preventOverflow',
options: {
boundary: this._config.boundary
}}, {
name: 'arrow',
options: {
element: `.${this.constructor.NAME}-arrow`
}}, {
name: 'onChange',
enabled: true,
phase: 'afterWrite',
fn: data=> this._handlePopperPlacementChange(data)
}],
onFirstUpdate: data=> {
if(data.options.placement!==data.placement){
this._handlePopperPlacementChange(data);
}}
};
return { ...defaultBsPopperConfig,
...(typeof this._config.popperConfig==='function' ? this._config.popperConfig(defaultBsPopperConfig):this._config.popperConfig)
};}
_addAttachmentClass(attachment){
this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(attachment)}`);
}
_getAttachment(placement){
return AttachmentMap[placement.toUpperCase()];
}
_setListeners(){
const triggers=this._config.trigger.split(' ');
triggers.forEach(trigger=> {
if(trigger==='click'){
EventHandler.on(this._element, this.constructor.Event.CLICK, this._config.selector, event=> this.toggle(event));
}else if(trigger!==TRIGGER_MANUAL){
const eventIn=trigger===TRIGGER_HOVER ? this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN;
const eventOut=trigger===TRIGGER_HOVER ? this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;
EventHandler.on(this._element, eventIn, this._config.selector, event=> this._enter(event));
EventHandler.on(this._element, eventOut, this._config.selector, event=> this._leave(event));
}});
this._hideModalHandler=()=> {
if(this._element){
this.hide();
}};
EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
if(this._config.selector){
this._config={ ...this._config,
trigger: 'manual',
selector: ''
};}else{
this._fixTitle();
}}
_fixTitle(){
const title=this._element.getAttribute('title');
const originalTitleType=typeof this._element.getAttribute('data-bs-original-title');
if(title||originalTitleType!=='string'){
this._element.setAttribute('data-bs-original-title', title||'');
if(title&&!this._element.getAttribute('aria-label')&&!this._element.textContent){
this._element.setAttribute('aria-label', title);
}
this._element.setAttribute('title', '');
}}
_enter(event, context){
context=this._initializeOnDelegatedTarget(event, context);
if(event){
context._activeTrigger[event.type==='focusin' ? TRIGGER_FOCUS:TRIGGER_HOVER]=true;
}
if(context.getTipElement().classList.contains(CLASS_NAME_SHOW$2)||context._hoverState===HOVER_STATE_SHOW){
context._hoverState=HOVER_STATE_SHOW;
return;
}
clearTimeout(context._timeout);
context._hoverState=HOVER_STATE_SHOW;
if(!context._config.delay||!context._config.delay.show){
context.show();
return;
}
context._timeout=setTimeout(()=> {
if(context._hoverState===HOVER_STATE_SHOW){
context.show();
}}, context._config.delay.show);
}
_leave(event, context){
context=this._initializeOnDelegatedTarget(event, context);
if(event){
context._activeTrigger[event.type==='focusout' ? TRIGGER_FOCUS:TRIGGER_HOVER]=context._element.contains(event.relatedTarget);
}
if(context._isWithActiveTrigger()){
return;
}
clearTimeout(context._timeout);
context._hoverState=HOVER_STATE_OUT;
if(!context._config.delay||!context._config.delay.hide){
context.hide();
return;
}
context._timeout=setTimeout(()=> {
if(context._hoverState===HOVER_STATE_OUT){
context.hide();
}}, context._config.delay.hide);
}
_isWithActiveTrigger(){
for (const trigger in this._activeTrigger){
if(this._activeTrigger[trigger]){
return true;
}}
return false;
}
_getConfig(config){
const dataAttributes=Manipulator.getDataAttributes(this._element);
Object.keys(dataAttributes).forEach(dataAttr=> {
if(DISALLOWED_ATTRIBUTES.has(dataAttr)){
delete dataAttributes[dataAttr];
}});
config={ ...this.constructor.Default,
...dataAttributes,
...(typeof config==='object'&&config ? config:{})
};
config.container=config.container===false ? document.body:getElement(config.container);
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();
}
typeCheckConfig(NAME$4, config, this.constructor.DefaultType);
if(config.sanitize){
config.template=sanitizeHtml(config.template, config.allowList, config.sanitizeFn);
}
return config;
}
_getDelegateConfig(){
const config={};
for (const key in this._config){
if(this.constructor.Default[key]!==this._config[key]){
config[key]=this._config[key];
}}
return config;
}
_cleanTipClass(){
const tip=this.getTipElement();
const basicClassPrefixRegex=new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`, 'g');
const tabClass=tip.getAttribute('class').match(basicClassPrefixRegex);
if(tabClass!==null&&tabClass.length > 0){
tabClass.map(token=> token.trim()).forEach(tClass=> tip.classList.remove(tClass));
}}
_getBasicClassPrefix(){
return CLASS_PREFIX$1;
}
_handlePopperPlacementChange(popperData){
const {
state
}=popperData;
if(!state){
return;
}
this.tip=state.elements.popper;
this._cleanTipClass();
this._addAttachmentClass(this._getAttachment(state.placement));
}
_disposePopper(){
if(this._popper){
this._popper.destroy();
this._popper=null;
}}
static jQueryInterface(config){
return this.each(function (){
const data=Tooltip.getOrCreateInstance(this, config);
if(typeof config==='string'){
if(typeof data[config]==='undefined'){
throw new TypeError(`No method named "${config}"`);
}
data[config]();
}});
}}
defineJQueryPlugin(Tooltip);
const NAME$3='popover';
const DATA_KEY$3='bs.popover';
const EVENT_KEY$3=`.${DATA_KEY$3}`;
const CLASS_PREFIX='bs-popover';
const Default$2={ ...Tooltip.Default,
placement: 'right',
offset: [0, 8],
trigger: 'click',
content: '',
template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>'
};
const DefaultType$2={ ...Tooltip.DefaultType,
content: '(string|element|function)'
};
const Event$1={
HIDE: `hide${EVENT_KEY$3}`,
HIDDEN: `hidden${EVENT_KEY$3}`,
SHOW: `show${EVENT_KEY$3}`,
SHOWN: `shown${EVENT_KEY$3}`,
INSERTED: `inserted${EVENT_KEY$3}`,
CLICK: `click${EVENT_KEY$3}`,
FOCUSIN: `focusin${EVENT_KEY$3}`,
FOCUSOUT: `focusout${EVENT_KEY$3}`,
MOUSEENTER: `mouseenter${EVENT_KEY$3}`,
MOUSELEAVE: `mouseleave${EVENT_KEY$3}`
};
const SELECTOR_TITLE='.popover-header';
const SELECTOR_CONTENT='.popover-body';
class Popover extends Tooltip {
static get Default(){
return Default$2;
}
static get NAME(){
return NAME$3;
}
static get Event(){
return Event$1;
}
static get DefaultType(){
return DefaultType$2;
}
isWithContent(){
return this.getTitle()||this._getContent();
}
setContent(tip){
this._sanitizeAndSetContent(tip, this.getTitle(), SELECTOR_TITLE);
this._sanitizeAndSetContent(tip, this._getContent(), SELECTOR_CONTENT);
}
_getContent(){
return this._resolvePossibleFunction(this._config.content);
}
_getBasicClassPrefix(){
return CLASS_PREFIX;
}
static jQueryInterface(config){
return this.each(function (){
const data=Popover.getOrCreateInstance(this, config);
if(typeof config==='string'){
if(typeof data[config]==='undefined'){
throw new TypeError(`No method named "${config}"`);
}
data[config]();
}});
}}
defineJQueryPlugin(Popover);
const NAME$2='scrollspy';
const DATA_KEY$2='bs.scrollspy';
const EVENT_KEY$2=`.${DATA_KEY$2}`;
const DATA_API_KEY$1='.data-api';
const Default$1={
offset: 10,
method: 'auto',
target: ''
};
const DefaultType$1={
offset: 'number',
method: 'string',
target: '(string|element)'
};
const EVENT_ACTIVATE=`activate${EVENT_KEY$2}`;
const EVENT_SCROLL=`scroll${EVENT_KEY$2}`;
const EVENT_LOAD_DATA_API=`load${EVENT_KEY$2}${DATA_API_KEY$1}`;
const CLASS_NAME_DROPDOWN_ITEM='dropdown-item';
const CLASS_NAME_ACTIVE$1='active';
const SELECTOR_DATA_SPY='[data-bs-spy="scroll"]';
const SELECTOR_NAV_LIST_GROUP$1='.nav, .list-group';
const SELECTOR_NAV_LINKS='.nav-link';
const SELECTOR_NAV_ITEMS='.nav-item';
const SELECTOR_LIST_ITEMS='.list-group-item';
const SELECTOR_LINK_ITEMS=`${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}, .${CLASS_NAME_DROPDOWN_ITEM}`;
const SELECTOR_DROPDOWN$1='.dropdown';
const SELECTOR_DROPDOWN_TOGGLE$1='.dropdown-toggle';
const METHOD_OFFSET='offset';
const METHOD_POSITION='position';
class ScrollSpy extends BaseComponent {
constructor(element, config){
super(element);
this._scrollElement=this._element.tagName==='BODY' ? window:this._element;
this._config=this._getConfig(config);
this._offsets=[];
this._targets=[];
this._activeTarget=null;
this._scrollHeight=0;
EventHandler.on(this._scrollElement, EVENT_SCROLL, ()=> this._process());
this.refresh();
this._process();
}
static get Default(){
return Default$1;
}
static get NAME(){
return NAME$2;
}
refresh(){
const autoMethod=this._scrollElement===this._scrollElement.window ? METHOD_OFFSET:METHOD_POSITION;
const offsetMethod=this._config.method==='auto' ? autoMethod:this._config.method;
const offsetBase=offsetMethod===METHOD_POSITION ? this._getScrollTop():0;
this._offsets=[];
this._targets=[];
this._scrollHeight=this._getScrollHeight();
const targets=SelectorEngine.find(SELECTOR_LINK_ITEMS, this._config.target);
targets.map(element=> {
const targetSelector=getSelectorFromElement(element);
const target=targetSelector ? SelectorEngine.findOne(targetSelector):null;
if(target){
const targetBCR=target.getBoundingClientRect();
if(targetBCR.width||targetBCR.height){
return [Manipulator[offsetMethod](target).top + offsetBase, targetSelector];
}}
return null;
}).filter(item=> item).sort((a, b)=> a[0] - b[0]).forEach(item=> {
this._offsets.push(item[0]);
this._targets.push(item[1]);
});
}
dispose(){
EventHandler.off(this._scrollElement, EVENT_KEY$2);
super.dispose();
}
_getConfig(config){
config={ ...Default$1,
...Manipulator.getDataAttributes(this._element),
...(typeof config==='object'&&config ? config:{})
};
config.target=getElement(config.target)||document.documentElement;
typeCheckConfig(NAME$2, config, DefaultType$1);
return config;
}
_getScrollTop(){
return this._scrollElement===window ? this._scrollElement.pageYOffset:this._scrollElement.scrollTop;
}
_getScrollHeight(){
return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
}
_getOffsetHeight(){
return this._scrollElement===window ? window.innerHeight:this._scrollElement.getBoundingClientRect().height;
}
_process(){
const scrollTop=this._getScrollTop() + this._config.offset;
const scrollHeight=this._getScrollHeight();
const maxScroll=this._config.offset + scrollHeight - this._getOffsetHeight();
if(this._scrollHeight!==scrollHeight){
this.refresh();
}
if(scrollTop >=maxScroll){
const 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 (let i=this._offsets.length; i--;){
const 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]);
}}
}
_activate(target){
this._activeTarget=target;
this._clear();
const queries=SELECTOR_LINK_ITEMS.split(',').map(selector=> `${selector}[data-bs-target="${target}"],${selector}[href="${target}"]`);
const link=SelectorEngine.findOne(queries.join(','), this._config.target);
link.classList.add(CLASS_NAME_ACTIVE$1);
if(link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)){
SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, link.closest(SELECTOR_DROPDOWN$1)).classList.add(CLASS_NAME_ACTIVE$1);
}else{
SelectorEngine.parents(link, SELECTOR_NAV_LIST_GROUP$1).forEach(listGroup=> {
SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`).forEach(item=> item.classList.add(CLASS_NAME_ACTIVE$1));
SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS).forEach(navItem=> {
SelectorEngine.children(navItem, SELECTOR_NAV_LINKS).forEach(item=> item.classList.add(CLASS_NAME_ACTIVE$1));
});
});
}
EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {
relatedTarget: target
});
}
_clear(){
SelectorEngine.find(SELECTOR_LINK_ITEMS, this._config.target).filter(node=> node.classList.contains(CLASS_NAME_ACTIVE$1)).forEach(node=> node.classList.remove(CLASS_NAME_ACTIVE$1));
}
static jQueryInterface(config){
return this.each(function (){
const data=ScrollSpy.getOrCreateInstance(this, config);
if(typeof config!=='string'){
return;
}
if(typeof data[config]==='undefined'){
throw new TypeError(`No method named "${config}"`);
}
data[config]();
});
}}
EventHandler.on(window, EVENT_LOAD_DATA_API, ()=> {
SelectorEngine.find(SELECTOR_DATA_SPY).forEach(spy=> new ScrollSpy(spy));
});
defineJQueryPlugin(ScrollSpy);
const NAME$1='tab';
const DATA_KEY$1='bs.tab';
const EVENT_KEY$1=`.${DATA_KEY$1}`;
const DATA_API_KEY='.data-api';
const EVENT_HIDE$1=`hide${EVENT_KEY$1}`;
const EVENT_HIDDEN$1=`hidden${EVENT_KEY$1}`;
const EVENT_SHOW$1=`show${EVENT_KEY$1}`;
const EVENT_SHOWN$1=`shown${EVENT_KEY$1}`;
const EVENT_CLICK_DATA_API=`click${EVENT_KEY$1}${DATA_API_KEY}`;
const CLASS_NAME_DROPDOWN_MENU='dropdown-menu';
const CLASS_NAME_ACTIVE='active';
const CLASS_NAME_FADE$1='fade';
const CLASS_NAME_SHOW$1='show';
const SELECTOR_DROPDOWN='.dropdown';
const SELECTOR_NAV_LIST_GROUP='.nav, .list-group';
const SELECTOR_ACTIVE='.active';
const SELECTOR_ACTIVE_UL=':scope > li > .active';
const SELECTOR_DATA_TOGGLE='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]';
const SELECTOR_DROPDOWN_TOGGLE='.dropdown-toggle';
const SELECTOR_DROPDOWN_ACTIVE_CHILD=':scope > .dropdown-menu .active';
class Tab extends BaseComponent {
static get NAME(){
return NAME$1;
}
show(){
if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(CLASS_NAME_ACTIVE)){
return;
}
let previous;
const target=getElementFromSelector(this._element);
const listElement=this._element.closest(SELECTOR_NAV_LIST_GROUP);
if(listElement){
const itemSelector=listElement.nodeName==='UL'||listElement.nodeName==='OL' ? SELECTOR_ACTIVE_UL:SELECTOR_ACTIVE;
previous=SelectorEngine.find(itemSelector, listElement);
previous=previous[previous.length - 1];
}
const hideEvent=previous ? EventHandler.trigger(previous, EVENT_HIDE$1, {
relatedTarget: this._element
}):null;
const showEvent=EventHandler.trigger(this._element, EVENT_SHOW$1, {
relatedTarget: previous
});
if(showEvent.defaultPrevented||hideEvent!==null&&hideEvent.defaultPrevented){
return;
}
this._activate(this._element, listElement);
const complete=()=> {
EventHandler.trigger(previous, EVENT_HIDDEN$1, {
relatedTarget: this._element
});
EventHandler.trigger(this._element, EVENT_SHOWN$1, {
relatedTarget: previous
});
};
if(target){
this._activate(target, target.parentNode, complete);
}else{
complete();
}}
_activate(element, container, callback){
const activeElements=container&&(container.nodeName==='UL'||container.nodeName==='OL') ? SelectorEngine.find(SELECTOR_ACTIVE_UL, container):SelectorEngine.children(container, SELECTOR_ACTIVE);
const active=activeElements[0];
const isTransitioning=callback&&active&&active.classList.contains(CLASS_NAME_FADE$1);
const complete=()=> this._transitionComplete(element, active, callback);
if(active&&isTransitioning){
active.classList.remove(CLASS_NAME_SHOW$1);
this._queueCallback(complete, element, true);
}else{
complete();
}}
_transitionComplete(element, active, callback){
if(active){
active.classList.remove(CLASS_NAME_ACTIVE);
const dropdownChild=SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode);
if(dropdownChild){
dropdownChild.classList.remove(CLASS_NAME_ACTIVE);
}
if(active.getAttribute('role')==='tab'){
active.setAttribute('aria-selected', false);
}}
element.classList.add(CLASS_NAME_ACTIVE);
if(element.getAttribute('role')==='tab'){
element.setAttribute('aria-selected', true);
}
reflow(element);
if(element.classList.contains(CLASS_NAME_FADE$1)){
element.classList.add(CLASS_NAME_SHOW$1);
}
let parent=element.parentNode;
if(parent&&parent.nodeName==='LI'){
parent=parent.parentNode;
}
if(parent&&parent.classList.contains(CLASS_NAME_DROPDOWN_MENU)){
const dropdownElement=element.closest(SELECTOR_DROPDOWN);
if(dropdownElement){
SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE, dropdownElement).forEach(dropdown=> dropdown.classList.add(CLASS_NAME_ACTIVE));
}
element.setAttribute('aria-expanded', true);
}
if(callback){
callback();
}}
static jQueryInterface(config){
return this.each(function (){
const data=Tab.getOrCreateInstance(this);
if(typeof config==='string'){
if(typeof data[config]==='undefined'){
throw new TypeError(`No method named "${config}"`);
}
data[config]();
}});
}}
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event){
if(['A', 'AREA'].includes(this.tagName)){
event.preventDefault();
}
if(isDisabled(this)){
return;
}
const data=Tab.getOrCreateInstance(this);
data.show();
});
defineJQueryPlugin(Tab);
const NAME='toast';
const DATA_KEY='bs.toast';
const EVENT_KEY=`.${DATA_KEY}`;
const EVENT_MOUSEOVER=`mouseover${EVENT_KEY}`;
const EVENT_MOUSEOUT=`mouseout${EVENT_KEY}`;
const EVENT_FOCUSIN=`focusin${EVENT_KEY}`;
const EVENT_FOCUSOUT=`focusout${EVENT_KEY}`;
const EVENT_HIDE=`hide${EVENT_KEY}`;
const EVENT_HIDDEN=`hidden${EVENT_KEY}`;
const EVENT_SHOW=`show${EVENT_KEY}`;
const EVENT_SHOWN=`shown${EVENT_KEY}`;
const CLASS_NAME_FADE='fade';
const CLASS_NAME_HIDE='hide';
const CLASS_NAME_SHOW='show';
const CLASS_NAME_SHOWING='showing';
const DefaultType={
animation: 'boolean',
autohide: 'boolean',
delay: 'number'
};
const Default={
animation: true,
autohide: true,
delay: 5000
};
class Toast extends BaseComponent {
constructor(element, config){
super(element);
this._config=this._getConfig(config);
this._timeout=null;
this._hasMouseInteraction=false;
this._hasKeyboardInteraction=false;
this._setListeners();
}
static get DefaultType(){
return DefaultType;
}
static get Default(){
return Default;
}
static get NAME(){
return NAME;
}
show(){
const showEvent=EventHandler.trigger(this._element, EVENT_SHOW);
if(showEvent.defaultPrevented){
return;
}
this._clearTimeout();
if(this._config.animation){
this._element.classList.add(CLASS_NAME_FADE);
}
const complete=()=> {
this._element.classList.remove(CLASS_NAME_SHOWING);
EventHandler.trigger(this._element, EVENT_SHOWN);
this._maybeScheduleHide();
};
this._element.classList.remove(CLASS_NAME_HIDE);
reflow(this._element);
this._element.classList.add(CLASS_NAME_SHOW);
this._element.classList.add(CLASS_NAME_SHOWING);
this._queueCallback(complete, this._element, this._config.animation);
}
hide(){
if(!this._element.classList.contains(CLASS_NAME_SHOW)){
return;
}
const hideEvent=EventHandler.trigger(this._element, EVENT_HIDE);
if(hideEvent.defaultPrevented){
return;
}
const complete=()=> {
this._element.classList.add(CLASS_NAME_HIDE);
this._element.classList.remove(CLASS_NAME_SHOWING);
this._element.classList.remove(CLASS_NAME_SHOW);
EventHandler.trigger(this._element, EVENT_HIDDEN);
};
this._element.classList.add(CLASS_NAME_SHOWING);
this._queueCallback(complete, this._element, this._config.animation);
}
dispose(){
this._clearTimeout();
if(this._element.classList.contains(CLASS_NAME_SHOW)){
this._element.classList.remove(CLASS_NAME_SHOW);
}
super.dispose();
}
_getConfig(config){
config={ ...Default,
...Manipulator.getDataAttributes(this._element),
...(typeof config==='object'&&config ? config:{})
};
typeCheckConfig(NAME, config, this.constructor.DefaultType);
return config;
}
_maybeScheduleHide(){
if(!this._config.autohide){
return;
}
if(this._hasMouseInteraction||this._hasKeyboardInteraction){
return;
}
this._timeout=setTimeout(()=> {
this.hide();
}, this._config.delay);
}
_onInteraction(event, isInteracting){
switch (event.type){
case 'mouseover':
case 'mouseout':
this._hasMouseInteraction=isInteracting;
break;
case 'focusin':
case 'focusout':
this._hasKeyboardInteraction=isInteracting;
break;
}
if(isInteracting){
this._clearTimeout();
return;
}
const nextElement=event.relatedTarget;
if(this._element===nextElement||this._element.contains(nextElement)){
return;
}
this._maybeScheduleHide();
}
_setListeners(){
EventHandler.on(this._element, EVENT_MOUSEOVER, event=> this._onInteraction(event, true));
EventHandler.on(this._element, EVENT_MOUSEOUT, event=> this._onInteraction(event, false));
EventHandler.on(this._element, EVENT_FOCUSIN, event=> this._onInteraction(event, true));
EventHandler.on(this._element, EVENT_FOCUSOUT, event=> this._onInteraction(event, false));
}
_clearTimeout(){
clearTimeout(this._timeout);
this._timeout=null;
}
static jQueryInterface(config){
return this.each(function (){
const data=Toast.getOrCreateInstance(this, config);
if(typeof config==='string'){
if(typeof data[config]==='undefined'){
throw new TypeError(`No method named "${config}"`);
}
data[config](this);
}});
}}
enableDismissTrigger(Toast);
defineJQueryPlugin(Toast);
const index_umd={
Alert,
Button,
Carousel,
Collapse,
Dropdown,
Modal,
Offcanvas,
Popover,
ScrollSpy,
Tab,
Toast,
Tooltip
};
return index_umd;
}));
;(function(root, factory){
if(typeof exports==='object'){
module.exports=factory(window, document)
}else{
root.SimpleScrollbar=factory(window, document)
}})(this, function(w, d){
var raf=w.requestAnimationFrame||w.setImmediate||function(c){ return setTimeout(c, 0); };
function initEl(el){
Object.defineProperty(el, 'data-simple-scrollbar', { value: new SimpleScrollbar(el), configurable: true });
}
function unbindEl(el){
if(!Object.prototype.hasOwnProperty.call(el, 'data-simple-scrollbar')) return;
el['data-simple-scrollbar'].unBind();
delete el['data-simple-scrollbar'];
}
function dragDealer(el, context){
var lastPageY;
el.addEventListener('mousedown', function(e){
lastPageY=e.pageY;
el.classList.add('ss-grabbed');
d.body.classList.add('ss-grabbed');
d.addEventListener('mousemove', drag);
d.addEventListener('mouseup', stop);
return false;
});
function drag(e){
var delta=e.pageY - lastPageY;
lastPageY=e.pageY;
raf(function(){
context.el.scrollTop +=delta / context.scrollRatio;
});
}
function stop(){
el.classList.remove('ss-grabbed');
d.body.classList.remove('ss-grabbed');
d.removeEventListener('mousemove', drag);
d.removeEventListener('mouseup', stop);
}}
function ss(el){
this.target=el;
this.content=el.firstElementChild;
this.direction=w.getComputedStyle(this.target).direction;
this.bar='<div class="ss-scroll">';
this.mB=this.moveBar.bind(this);
this.wrapper=d.createElement('div');
this.wrapper.setAttribute('class', 'ss-wrapper');
this.el=d.createElement('div');
this.el.setAttribute('class', 'ss-content');
if(this.direction==='rtl'){
this.el.classList.add('rtl');
}
this.wrapper.appendChild(this.el);
while (this.target.firstChild){
this.el.appendChild(this.target.firstChild);
}
this.target.appendChild(this.wrapper);
this.target.insertAdjacentHTML('beforeend', this.bar);
this.bar=this.target.lastChild;
dragDealer(this.bar, this);
this.moveBar();
w.addEventListener('resize', this.mB);
this.el.addEventListener('scroll', this.mB);
this.el.addEventListener('mouseenter', this.mB);
this.target.classList.add('ss-container');
var css=w.getComputedStyle(el);
if(css['height']==='0px'&&css['max-height']!=='0px'){
el.style.height=css['max-height'];
}
this.unBind=function(){
w.removeEventListener('resize', this.mB);
this.el.removeEventListener('scroll', this.mB);
this.el.removeEventListener('mouseenter', this.mB);
this.target.classList.remove('ss-container');
this.target.insertBefore(this.content, this.wrapper);
this.target.removeChild(this.wrapper);
this.target.removeChild(this.bar);
this.bar=null;
}}
ss.prototype={
moveBar: function(e){
var totalHeight=this.el.scrollHeight,
ownHeight=this.el.clientHeight,
_this=this;
this.scrollRatio=ownHeight / totalHeight;
var isRtl=_this.direction==='rtl';
var right=isRtl ?
(_this.target.clientWidth - _this.bar.clientWidth + 18) :
(_this.target.clientWidth - _this.bar.clientWidth) * -1;
raf(function(){
if(_this.scrollRatio >=1){
_this.bar.classList.add('ss-hidden')
}else{
_this.bar.classList.remove('ss-hidden')
_this.bar.style.cssText='height:' + Math.max(_this.scrollRatio * 100, 10) + '%; top:' + (_this.el.scrollTop / totalHeight) * 100 + '%;right:' + right + 'px;';
}});
}}
function initAll(){
var nodes=d.querySelectorAll('*[ss-container]');
for (var i=0; i < nodes.length; i++){
initEl(nodes[i]);
}}
function unbindAll(){
var nodes=d.querySelectorAll('.ss-container');
for (var i=0; i < nodes.length; i++){
unbindEl(nodes[i]);
}}
d.addEventListener('DOMContentLoaded', initAll);
ss.initEl=initEl;
ss.initAll=initAll;
ss.unbindEl=unbindEl;
ss.unbindAll=unbindAll;
var SimpleScrollbar=ss;
return SimpleScrollbar;
});
(function ($){
'use strict';
$.fn.extend({
customSelect: function (options){
if(typeof document.body.style.maxHeight==='undefined'){
return this;
}
var defaults={
customClass: 'customSelect',
mapClass:    true,
mapStyle:    true
},
options=$.extend(defaults, options),
prefix=options.customClass,
changed=function ($select,customSelectSpan){
var currentSelected=$select.find(':selected'),
customSelectSpanInner=customSelectSpan.children(':first'),
html=currentSelected.html()||'&nbsp;';
customSelectSpanInner.html(html);
if(currentSelected.attr('disabled')){
customSelectSpan.addClass(getClass('DisabledOption'));
}else{
customSelectSpan.removeClass(getClass('DisabledOption'));
}
setTimeout(function (){
customSelectSpan.removeClass(getClass('Open'));
$(document).off('mouseup.customSelect');
}, 60);
},
getClass=function(suffix){
return prefix + suffix;
};
return this.each(function (){
var $select=$(this),
customSelectInnerSpan=$('<span />').addClass(getClass('Inner')),
customSelectSpan=$('<span />');
$select.after(customSelectSpan.append(customSelectInnerSpan));
customSelectSpan.addClass(prefix);
if(options.mapClass){
customSelectSpan.addClass($select.attr('class'));
}
if(options.mapStyle){
customSelectSpan.attr('style', $select.attr('style'));
}
$select
.addClass('hasCustomSelect')
.on('render.customSelect', function (){
changed($select,customSelectSpan);
$select.css('width','');
var selectBoxWidth=parseInt($select.outerWidth(), 10) -
(parseInt(customSelectSpan.outerWidth(), 10) -
parseInt(customSelectSpan.width(), 10));
customSelectSpan.css({
display: 'inline-block'
});
var selectBoxHeight=customSelectSpan.outerHeight();
if($select.attr('disabled')){
customSelectSpan.addClass(getClass('Disabled'));
}else{
customSelectSpan.removeClass(getClass('Disabled'));
}
customSelectInnerSpan.css({
width:   selectBoxWidth,
display: 'inline-block'
});
$select.css({
'-webkit-appearance': 'menulist-button',
width:                customSelectSpan.outerWidth(),
position:             'absolute',
opacity:              0,
height:               selectBoxHeight,
fontSize:             customSelectSpan.css('font-size')
});
})
.on('change.customSelect', function (){
customSelectSpan.addClass(getClass('Changed'));
changed($select,customSelectSpan);
})
.on('keyup.customSelect', function (e){
if(!customSelectSpan.hasClass(getClass('Open'))){
$select.trigger('blur.customSelect');
$select.trigger('focus.customSelect');
}else{
if(e.which==13||e.which==27){
changed($select,customSelectSpan);
}}
})
.on('mousedown.customSelect', function (){
customSelectSpan.removeClass(getClass('Changed'));
})
.on('mouseup.customSelect', function (e){
if(!customSelectSpan.hasClass(getClass('Open'))){
if($('.'+getClass('Open')).not(customSelectSpan).length>0&&typeof InstallTrigger!=='undefined'){
$select.trigger('focus.customSelect');
}else{
customSelectSpan.addClass(getClass('Open'));
e.stopPropagation();
$(document).one('mouseup.customSelect', function (e){
if(e.target!=$select.get(0)&&$.inArray(e.target,$select.find('*').get()) < 0){
$select.trigger('blur.customSelect');
}else{
changed($select,customSelectSpan);
}});
}}
})
.on('focus.customSelect', function (){
customSelectSpan.removeClass(getClass('Changed')).addClass(getClass('Focus'));
})
.on('blur.customSelect', function (){
customSelectSpan.removeClass(getClass('Focus')+' '+getClass('Open'));
})
.on('mouseenter.customSelect', function (){
customSelectSpan.addClass(getClass('Hover'));
})
.on('mouseleave.customSelect', function (){
customSelectSpan.removeClass(getClass('Hover'));
})
.trigger('render.customSelect');
});
}});
})(jQuery);
;(function($, window, document, undefined){
function Owl(element, options){
this.settings=null;
this.options=$.extend({}, Owl.Defaults, options);
this.$element=$(element);
this._handlers={};
this._plugins={};
this._supress={};
this._current=null;
this._speed=null;
this._coordinates=[];
this._breakpoint=null;
this._width=null;
this._items=[];
this._clones=[];
this._mergers=[];
this._widths=[];
this._invalidated={};
this._pipe=[];
this._drag={
time: null,
target: null,
pointer: null,
stage: {
start: null,
current: null
},
direction: null
};
this._states={
current: {},
tags: {
'initializing': [ 'busy' ],
'animating': [ 'busy' ],
'dragging': [ 'interacting' ]
}};
$.each([ 'onResize', 'onThrottledResize' ], $.proxy(function(i, handler){
this._handlers[handler]=$.proxy(this[handler], this);
}, this));
$.each(Owl.Plugins, $.proxy(function(key, plugin){
this._plugins[key.charAt(0).toLowerCase() + key.slice(1)]
= new plugin(this);
}, this));
$.each(Owl.Workers, $.proxy(function(priority, worker){
this._pipe.push({
'filter': worker.filter,
'run': $.proxy(worker.run, this)
});
}, this));
this.setup();
this.initialize();
}
Owl.Defaults={
items: 3,
loop: false,
center: false,
rewind: false,
checkVisibility: true,
mouseDrag: true,
touchDrag: true,
pullDrag: true,
freeDrag: false,
margin: 0,
stagePadding: 0,
merge: false,
mergeFit: true,
autoWidth: false,
startPosition: 0,
rtl: false,
smartSpeed: 250,
fluidSpeed: false,
dragEndSpeed: false,
responsive: {},
responsiveRefreshRate: 200,
responsiveBaseElement: window,
fallbackEasing: 'swing',
slideTransition: '',
info: false,
nestedItemSelector: false,
itemElement: 'div',
stageElement: 'div',
refreshClass: 'owl-refresh',
loadedClass: 'owl-loaded',
loadingClass: 'owl-loading',
rtlClass: 'owl-rtl',
responsiveClass: 'owl-responsive',
dragClass: 'owl-drag',
itemClass: 'owl-item',
stageClass: 'owl-stage',
stageOuterClass: 'owl-stage-outer',
grabClass: 'owl-grab'
};
Owl.Width={
Default: 'default',
Inner: 'inner',
Outer: 'outer'
};
Owl.Type={
Event: 'event',
State: 'state'
};
Owl.Plugins={};
Owl.Workers=[ {
filter: [ 'width', 'settings' ],
run: function(){
this._width=this.$element.width();
}}, {
filter: [ 'width', 'items', 'settings' ],
run: function(cache){
cache.current=this._items&&this._items[this.relative(this._current)];
}}, {
filter: [ 'items', 'settings' ],
run: function(){
this.$stage.children('.cloned').remove();
}}, {
filter: [ 'width', 'items', 'settings' ],
run: function(cache){
var margin=this.settings.margin||'',
grid = !this.settings.autoWidth,
rtl=this.settings.rtl,
css={
'width': 'auto',
'margin-left': rtl ? margin:'',
'margin-right': rtl ? '':margin
};
!grid&&this.$stage.children().css(css);
cache.css=css;
}}, {
filter: [ 'width', 'items', 'settings' ],
run: function(cache){
var width=(this.width() / this.settings.items).toFixed(3) - this.settings.margin,
merge=null,
iterator=this._items.length,
grid = !this.settings.autoWidth,
widths=[];
cache.items={
merge: false,
width: width
};
while (iterator--){
merge=this._mergers[iterator];
merge=this.settings.mergeFit&&Math.min(merge, this.settings.items)||merge;
cache.items.merge=merge > 1||cache.items.merge;
widths[iterator] = !grid ? this._items[iterator].width():width * merge;
}
this._widths=widths;
}}, {
filter: [ 'items', 'settings' ],
run: function(){
var clones=[],
items=this._items,
settings=this.settings,
view=Math.max(settings.items * 2, 4),
size=Math.ceil(items.length / 2) * 2,
repeat=settings.loop&&items.length ? settings.rewind ? view:Math.max(view, size):0,
append='',
prepend='';
repeat /=2;
while (repeat > 0){
clones.push(this.normalize(clones.length / 2, true));
append=append + items[clones[clones.length - 1]][0].outerHTML;
clones.push(this.normalize(items.length - 1 - (clones.length - 1) / 2, true));
prepend=items[clones[clones.length - 1]][0].outerHTML + prepend;
repeat -=1;
}
this._clones=clones;
$(append).addClass('cloned').appendTo(this.$stage);
$(prepend).addClass('cloned').prependTo(this.$stage);
}}, {
filter: [ 'width', 'items', 'settings' ],
run: function(){
var rtl=this.settings.rtl ? 1:-1,
size=this._clones.length + this._items.length,
iterator=-1,
previous=0,
current=0,
coordinates=[];
while (++iterator < size){
previous=coordinates[iterator - 1]||0;
current=this._widths[this.relative(iterator)] + this.settings.margin;
coordinates.push(previous + current * rtl);
}
this._coordinates=coordinates;
}}, {
filter: [ 'width', 'items', 'settings' ],
run: function(){
var padding=this.settings.stagePadding,
coordinates=this._coordinates,
css={
'width': Math.ceil(Math.abs(coordinates[coordinates.length - 1])) + padding * 2,
'padding-left': padding||'',
'padding-right': padding||''
};
this.$stage.css(css);
}}, {
filter: [ 'width', 'items', 'settings' ],
run: function(cache){
var iterator=this._coordinates.length,
grid = !this.settings.autoWidth,
items=this.$stage.children();
if(grid&&cache.items.merge){
while (iterator--){
cache.css.width=this._widths[this.relative(iterator)];
items.eq(iterator).css(cache.css);
}}else if(grid){
cache.css.width=cache.items.width;
items.css(cache.css);
}}
}, {
filter: [ 'items' ],
run: function(){
this._coordinates.length < 1&&this.$stage.removeAttr('style');
}}, {
filter: [ 'width', 'items', 'settings' ],
run: function(cache){
cache.current=cache.current ? this.$stage.children().index(cache.current):0;
cache.current=Math.max(this.minimum(), Math.min(this.maximum(), cache.current));
this.reset(cache.current);
}}, {
filter: [ 'position' ],
run: function(){
this.animate(this.coordinates(this._current));
}}, {
filter: [ 'width', 'position', 'items', 'settings' ],
run: function(){
var rtl=this.settings.rtl ? 1:-1,
padding=this.settings.stagePadding * 2,
begin=this.coordinates(this.current()) + padding,
end=begin + this.width() * rtl,
inner, outer, matches=[], i, n;
for (i=0, n=this._coordinates.length; i < n; i++){
inner=this._coordinates[i - 1]||0;
outer=Math.abs(this._coordinates[i]) + padding * rtl;
if((this.op(inner, '<=', begin)&&(this.op(inner, '>', end)))
|| (this.op(outer, '<', begin)&&this.op(outer, '>', end))){
matches.push(i);
}}
this.$stage.children('.active').removeClass('active');
this.$stage.children(':eq(' + matches.join('), :eq(') + ')').addClass('active');
this.$stage.children('.center').removeClass('center');
if(this.settings.center){
this.$stage.children().eq(this.current()).addClass('center');
}}
} ];
Owl.prototype.initializeStage=function(){
this.$stage=this.$element.find('.' + this.settings.stageClass);
if(this.$stage.length){
return;
}
this.$element.addClass(this.options.loadingClass);
this.$stage=$('<' + this.settings.stageElement + '>', {
"class": this.settings.stageClass
}).wrap($('<div/>', {
"class": this.settings.stageOuterClass
}));
this.$element.append(this.$stage.parent());
};
Owl.prototype.initializeItems=function(){
var $items=this.$element.find('.owl-item');
if($items.length){
this._items=$items.get().map(function(item){
return $(item);
});
this._mergers=this._items.map(function(){
return 1;
});
this.refresh();
return;
}
this.replace(this.$element.children().not(this.$stage.parent()));
if(this.isVisible()){
this.refresh();
}else{
this.invalidate('width');
}
this.$element
.removeClass(this.options.loadingClass)
.addClass(this.options.loadedClass);
};
Owl.prototype.initialize=function(){
this.enter('initializing');
this.trigger('initialize');
this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl);
if(this.settings.autoWidth&&!this.is('pre-loading')){
var imgs, nestedSelector, width;
imgs=this.$element.find('img');
nestedSelector=this.settings.nestedItemSelector ? '.' + this.settings.nestedItemSelector:undefined;
width=this.$element.children(nestedSelector).width();
if(imgs.length&&width <=0){
this.preloadAutoWidthImages(imgs);
}}
this.initializeStage();
this.initializeItems();
this.registerEventHandlers();
this.leave('initializing');
this.trigger('initialized');
};
Owl.prototype.isVisible=function(){
return this.settings.checkVisibility
? this.$element.is(':visible')
: true;
};
Owl.prototype.setup=function(){
var viewport=this.viewport(),
overwrites=this.options.responsive,
match=-1,
settings=null;
if(!overwrites){
settings=$.extend({}, this.options);
}else{
$.each(overwrites, function(breakpoint){
if(breakpoint <=viewport&&breakpoint > match){
match=Number(breakpoint);
}});
settings=$.extend({}, this.options, overwrites[match]);
if(typeof settings.stagePadding==='function'){
settings.stagePadding=settings.stagePadding();
}
delete settings.responsive;
if(settings.responsiveClass){
this.$element.attr('class',
this.$element.attr('class').replace(new RegExp('(' + this.options.responsiveClass + '-)\\S+\\s', 'g'), '$1' + match)
);
}}
this.trigger('change', { property: { name: 'settings', value: settings }});
this._breakpoint=match;
this.settings=settings;
this.invalidate('settings');
this.trigger('changed', { property: { name: 'settings', value: this.settings }});
};
Owl.prototype.optionsLogic=function(){
if(this.settings.autoWidth){
this.settings.stagePadding=false;
this.settings.merge=false;
}};
Owl.prototype.prepare=function(item){
var event=this.trigger('prepare', { content: item });
if(!event.data){
event.data=$('<' + this.settings.itemElement + '/>')
.addClass(this.options.itemClass).append(item)
}
this.trigger('prepared', { content: event.data });
return event.data;
};
Owl.prototype.update=function(){
var i=0,
n=this._pipe.length,
filter=$.proxy(function(p){ return this[p] }, this._invalidated),
cache={};
while (i < n){
if(this._invalidated.all||$.grep(this._pipe[i].filter, filter).length > 0){
this._pipe[i].run(cache);
}
i++;
}
this._invalidated={};
!this.is('valid')&&this.enter('valid');
};
Owl.prototype.width=function(dimension){
dimension=dimension||Owl.Width.Default;
switch (dimension){
case Owl.Width.Inner:
case Owl.Width.Outer:
return this._width;
default:
return this._width - this.settings.stagePadding * 2 + this.settings.margin;
}};
Owl.prototype.refresh=function(){
this.enter('refreshing');
this.trigger('refresh');
this.setup();
this.optionsLogic();
this.$element.addClass(this.options.refreshClass);
this.update();
this.$element.removeClass(this.options.refreshClass);
this.leave('refreshing');
this.trigger('refreshed');
};
Owl.prototype.onThrottledResize=function(){
window.clearTimeout(this.resizeTimer);
this.resizeTimer=window.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate);
};
Owl.prototype.onResize=function(){
if(!this._items.length){
return false;
}
if(this._width===this.$element.width()){
return false;
}
if(!this.isVisible()){
return false;
}
this.enter('resizing');
if(this.trigger('resize').isDefaultPrevented()){
this.leave('resizing');
return false;
}
this.invalidate('width');
this.refresh();
this.leave('resizing');
this.trigger('resized');
};
Owl.prototype.registerEventHandlers=function(){
if($.support.transition){
this.$stage.on($.support.transition.end + '.owl.core', $.proxy(this.onTransitionEnd, this));
}
if(this.settings.responsive!==false){
this.on(window, 'resize', this._handlers.onThrottledResize);
}
if(this.settings.mouseDrag){
this.$element.addClass(this.options.dragClass);
this.$stage.on('mousedown.owl.core', $.proxy(this.onDragStart, this));
this.$stage.on('dragstart.owl.core selectstart.owl.core', function(){ return false });
}
if(this.settings.touchDrag){
this.$stage.on('touchstart.owl.core', $.proxy(this.onDragStart, this));
this.$stage.on('touchcancel.owl.core', $.proxy(this.onDragEnd, this));
}};
Owl.prototype.onDragStart=function(event){
var stage=null;
if(event.which===3){
return;
}
if($.support.transform){
stage=this.$stage.css('transform').replace(/.*\(|\)| /g, '').split(',');
stage={
x: stage[stage.length===16 ? 12:4],
y: stage[stage.length===16 ? 13:5]
};}else{
stage=this.$stage.position();
stage={
x: this.settings.rtl ?
stage.left + this.$stage.width() - this.width() + this.settings.margin :
stage.left,
y: stage.top
};}
if(this.is('animating')){
$.support.transform ? this.animate(stage.x):this.$stage.stop()
this.invalidate('position');
}
this.$element.toggleClass(this.options.grabClass, event.type==='mousedown');
this.speed(0);
this._drag.time=new Date().getTime();
this._drag.target=$(event.target);
this._drag.stage.start=stage;
this._drag.stage.current=stage;
this._drag.pointer=this.pointer(event);
$(document).on('mouseup.owl.core touchend.owl.core', $.proxy(this.onDragEnd, this));
$(document).one('mousemove.owl.core touchmove.owl.core', $.proxy(function(event){
var delta=this.difference(this._drag.pointer, this.pointer(event));
$(document).on('mousemove.owl.core touchmove.owl.core', $.proxy(this.onDragMove, this));
if(Math.abs(delta.x) < Math.abs(delta.y)&&this.is('valid')){
return;
}
event.preventDefault();
this.enter('dragging');
this.trigger('drag');
}, this));
};
Owl.prototype.onDragMove=function(event){
var minimum=null,
maximum=null,
pull=null,
delta=this.difference(this._drag.pointer, this.pointer(event)),
stage=this.difference(this._drag.stage.start, delta);
if(!this.is('dragging')){
return;
}
event.preventDefault();
if(this.settings.loop){
minimum=this.coordinates(this.minimum());
maximum=this.coordinates(this.maximum() + 1) - minimum;
stage.x=(((stage.x - minimum) % maximum + maximum) % maximum) + minimum;
}else{
minimum=this.settings.rtl ? this.coordinates(this.maximum()):this.coordinates(this.minimum());
maximum=this.settings.rtl ? this.coordinates(this.minimum()):this.coordinates(this.maximum());
pull=this.settings.pullDrag ? -1 * delta.x / 5:0;
stage.x=Math.max(Math.min(stage.x, minimum + pull), maximum + pull);
}
this._drag.stage.current=stage;
this.animate(stage.x);
};
Owl.prototype.onDragEnd=function(event){
var delta=this.difference(this._drag.pointer, this.pointer(event)),
stage=this._drag.stage.current,
direction=delta.x > 0 ^ this.settings.rtl ? 'left':'right';
$(document).off('.owl.core');
this.$element.removeClass(this.options.grabClass);
if(delta.x!==0&&this.is('dragging')||!this.is('valid')){
this.speed(this.settings.dragEndSpeed||this.settings.smartSpeed);
this.current(this.closest(stage.x, delta.x!==0 ? direction:this._drag.direction));
this.invalidate('position');
this.update();
this._drag.direction=direction;
if(Math.abs(delta.x) > 3||new Date().getTime() - this._drag.time > 300){
this._drag.target.one('click.owl.core', function(){ return false; });
}}
if(!this.is('dragging')){
return;
}
this.leave('dragging');
this.trigger('dragged');
};
Owl.prototype.closest=function(coordinate, direction){
var position=-1,
pull=30,
width=this.width(),
coordinates=this.coordinates();
if(!this.settings.freeDrag){
$.each(coordinates, $.proxy(function(index, value){
if(direction==='left'&&coordinate > value - pull&&coordinate < value + pull){
position=index;
}else if(direction==='right'&&coordinate > value - width - pull&&coordinate < value - width + pull){
position=index + 1;
}else if(this.op(coordinate, '<', value)
&& this.op(coordinate, '>', coordinates[index + 1]!==undefined ? coordinates[index + 1]:value - width)){
position=direction==='left' ? index + 1:index;
}
return position===-1;
}, this));
}
if(!this.settings.loop){
if(this.op(coordinate, '>', coordinates[this.minimum()])){
position=coordinate=this.minimum();
}else if(this.op(coordinate, '<', coordinates[this.maximum()])){
position=coordinate=this.maximum();
}}
return position;
};
Owl.prototype.animate=function(coordinate){
var animate=this.speed() > 0;
this.is('animating')&&this.onTransitionEnd();
if(animate){
this.enter('animating');
this.trigger('translate');
}
if($.support.transform3d&&$.support.transition){
this.$stage.css({
transform: 'translate3d(' + coordinate + 'px,0px,0px)',
transition: (this.speed() / 1000) + 's' + (
this.settings.slideTransition ? ' ' + this.settings.slideTransition:''
)
});
}else if(animate){
this.$stage.animate({
left: coordinate + 'px'
}, this.speed(), this.settings.fallbackEasing, $.proxy(this.onTransitionEnd, this));
}else{
this.$stage.css({
left: coordinate + 'px'
});
}};
Owl.prototype.is=function(state){
return this._states.current[state]&&this._states.current[state] > 0;
};
Owl.prototype.current=function(position){
if(position===undefined){
return this._current;
}
if(this._items.length===0){
return undefined;
}
position=this.normalize(position);
if(this._current!==position){
var event=this.trigger('change', { property: { name: 'position', value: position }});
if(event.data!==undefined){
position=this.normalize(event.data);
}
this._current=position;
this.invalidate('position');
this.trigger('changed', { property: { name: 'position', value: this._current }});
}
return this._current;
};
Owl.prototype.invalidate=function(part){
if($.type(part)==='string'){
this._invalidated[part]=true;
this.is('valid')&&this.leave('valid');
}
return $.map(this._invalidated, function(v, i){ return i });
};
Owl.prototype.reset=function(position){
position=this.normalize(position);
if(position===undefined){
return;
}
this._speed=0;
this._current=position;
this.suppress([ 'translate', 'translated' ]);
this.animate(this.coordinates(position));
this.release([ 'translate', 'translated' ]);
};
Owl.prototype.normalize=function(position, relative){
var n=this._items.length,
m=relative ? 0:this._clones.length;
if(!this.isNumeric(position)||n < 1){
position=undefined;
}else if(position < 0||position >=n + m){
position=((position - m / 2) % n + n) % n + m / 2;
}
return position;
};
Owl.prototype.relative=function(position){
position -=this._clones.length / 2;
return this.normalize(position, true);
};
Owl.prototype.maximum=function(relative){
var settings=this.settings,
maximum=this._coordinates.length,
iterator,
reciprocalItemsWidth,
elementWidth;
if(settings.loop){
maximum=this._clones.length / 2 + this._items.length - 1;
}else if(settings.autoWidth||settings.merge){
iterator=this._items.length;
if(iterator){
reciprocalItemsWidth=this._items[--iterator].width();
elementWidth=this.$element.width();
while (iterator--){
reciprocalItemsWidth +=this._items[iterator].width() + this.settings.margin;
if(reciprocalItemsWidth > elementWidth){
break;
}}
}
maximum=iterator + 1;
}else if(settings.center){
maximum=this._items.length - 1;
}else{
maximum=this._items.length - settings.items;
}
if(relative){
maximum -=this._clones.length / 2;
}
return Math.max(maximum, 0);
};
Owl.prototype.minimum=function(relative){
return relative ? 0:this._clones.length / 2;
};
Owl.prototype.items=function(position){
if(position===undefined){
return this._items.slice();
}
position=this.normalize(position, true);
return this._items[position];
};
Owl.prototype.mergers=function(position){
if(position===undefined){
return this._mergers.slice();
}
position=this.normalize(position, true);
return this._mergers[position];
};
Owl.prototype.clones=function(position){
var odd=this._clones.length / 2,
even=odd + this._items.length,
map=function(index){ return index % 2===0 ? even + index / 2:odd - (index + 1) / 2 };
if(position===undefined){
return $.map(this._clones, function(v, i){ return map(i) });
}
return $.map(this._clones, function(v, i){ return v===position ? map(i):null });
};
Owl.prototype.speed=function(speed){
if(speed!==undefined){
this._speed=speed;
}
return this._speed;
};
Owl.prototype.coordinates=function(position){
var multiplier=1,
newPosition=position - 1,
coordinate;
if(position===undefined){
return $.map(this._coordinates, $.proxy(function(coordinate, index){
return this.coordinates(index);
}, this));
}
if(this.settings.center){
if(this.settings.rtl){
multiplier=-1;
newPosition=position + 1;
}
coordinate=this._coordinates[position];
coordinate +=(this.width() - coordinate + (this._coordinates[newPosition]||0)) / 2 * multiplier;
}else{
coordinate=this._coordinates[newPosition]||0;
}
coordinate=Math.ceil(coordinate);
return coordinate;
};
Owl.prototype.duration=function(from, to, factor){
if(factor===0){
return 0;
}
return Math.min(Math.max(Math.abs(to - from), 1), 6) * Math.abs((factor||this.settings.smartSpeed));
};
Owl.prototype.to=function(position, speed){
var current=this.current(),
revert=null,
distance=position - this.relative(current),
direction=(distance > 0) - (distance < 0),
items=this._items.length,
minimum=this.minimum(),
maximum=this.maximum();
if(this.settings.loop){
if(!this.settings.rewind&&Math.abs(distance) > items / 2){
distance +=direction * -1 * items;
}
position=current + distance;
revert=((position - minimum) % items + items) % items + minimum;
if(revert!==position&&revert - distance <=maximum&&revert - distance > 0){
current=revert - distance;
position=revert;
this.reset(current);
}}else if(this.settings.rewind){
maximum +=1;
position=(position % maximum + maximum) % maximum;
}else{
position=Math.max(minimum, Math.min(maximum, position));
}
this.speed(this.duration(current, position, speed));
this.current(position);
if(this.isVisible()){
this.update();
}};
Owl.prototype.next=function(speed){
speed=speed||false;
this.to(this.relative(this.current()) + 1, speed);
};
Owl.prototype.prev=function(speed){
speed=speed||false;
this.to(this.relative(this.current()) - 1, speed);
};
Owl.prototype.onTransitionEnd=function(event){
if(event!==undefined){
event.stopPropagation();
if((event.target||event.srcElement||event.originalTarget)!==this.$stage.get(0)){
return false;
}}
this.leave('animating');
this.trigger('translated');
};
Owl.prototype.viewport=function(){
var width;
if(this.options.responsiveBaseElement!==window){
width=$(this.options.responsiveBaseElement).width();
}else if(window.innerWidth){
width=window.innerWidth;
}else if(document.documentElement&&document.documentElement.clientWidth){
width=document.documentElement.clientWidth;
}else{
console.warn('Can not detect viewport width.');
}
return width;
};
Owl.prototype.replace=function(content){
this.$stage.empty();
this._items=[];
if(content){
content=(content instanceof jQuery) ? content:$(content);
}
if(this.settings.nestedItemSelector){
content=content.find('.' + this.settings.nestedItemSelector);
}
content.filter(function(){
return this.nodeType===1;
}).each($.proxy(function(index, item){
item=this.prepare(item);
this.$stage.append(item);
this._items.push(item);
this._mergers.push(item.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1||1);
}, this));
this.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition:0);
this.invalidate('items');
};
Owl.prototype.add=function(content, position){
var current=this.relative(this._current);
position=position===undefined ? this._items.length:this.normalize(position, true);
content=content instanceof jQuery ? content:$(content);
this.trigger('add', { content: content, position: position });
content=this.prepare(content);
if(this._items.length===0||position===this._items.length){
this._items.length===0&&this.$stage.append(content);
this._items.length!==0&&this._items[position - 1].after(content);
this._items.push(content);
this._mergers.push(content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1||1);
}else{
this._items[position].before(content);
this._items.splice(position, 0, content);
this._mergers.splice(position, 0, content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1||1);
}
this._items[current]&&this.reset(this._items[current].index());
this.invalidate('items');
this.trigger('added', { content: content, position: position });
};
Owl.prototype.remove=function(position){
position=this.normalize(position, true);
if(position===undefined){
return;
}
this.trigger('remove', { content: this._items[position], position: position });
this._items[position].remove();
this._items.splice(position, 1);
this._mergers.splice(position, 1);
this.invalidate('items');
this.trigger('removed', { content: null, position: position });
};
Owl.prototype.preloadAutoWidthImages=function(images){
images.each($.proxy(function(i, element){
this.enter('pre-loading');
element=$(element);
$(new Image()).one('load', $.proxy(function(e){
element.attr('src', e.target.src);
element.css('opacity', 1);
this.leave('pre-loading');
!this.is('pre-loading')&&!this.is('initializing')&&this.refresh();
}, this)).attr('src', element.attr('src')||element.attr('data-src')||element.attr('data-src-retina'));
}, this));
};
Owl.prototype.destroy=function(){
this.$element.off('.owl.core');
this.$stage.off('.owl.core');
$(document).off('.owl.core');
if(this.settings.responsive!==false){
window.clearTimeout(this.resizeTimer);
this.off(window, 'resize', this._handlers.onThrottledResize);
}
for (var i in this._plugins){
this._plugins[i].destroy();
}
this.$stage.children('.cloned').remove();
this.$stage.unwrap();
this.$stage.children().contents().unwrap();
this.$stage.children().unwrap();
this.$stage.remove();
this.$element
.removeClass(this.options.refreshClass)
.removeClass(this.options.loadingClass)
.removeClass(this.options.loadedClass)
.removeClass(this.options.rtlClass)
.removeClass(this.options.dragClass)
.removeClass(this.options.grabClass)
.attr('class', this.$element.attr('class').replace(new RegExp(this.options.responsiveClass + '-\\S+\\s', 'g'), ''))
.removeData('owl.carousel');
};
Owl.prototype.op=function(a, o, b){
var rtl=this.settings.rtl;
switch (o){
case '<':
return rtl ? a > b:a < b;
case '>':
return rtl ? a < b:a > b;
case '>=':
return rtl ? a <=b:a >=b;
case '<=':
return rtl ? a >=b:a <=b;
default:
break;
}};
Owl.prototype.on=function(element, event, listener, capture){
if(element.addEventListener){
element.addEventListener(event, listener, capture);
}else if(element.attachEvent){
element.attachEvent('on' + event, listener);
}};
Owl.prototype.off=function(element, event, listener, capture){
if(element.removeEventListener){
element.removeEventListener(event, listener, capture);
}else if(element.detachEvent){
element.detachEvent('on' + event, listener);
}};
Owl.prototype.trigger=function(name, data, namespace, state, enter){
var status={
item: { count: this._items.length, index: this.current() }}, handler=$.camelCase($.grep([ 'on', name, namespace ], function(v){ return v })
.join('-').toLowerCase()
), event=$.Event([ name, 'owl', namespace||'carousel' ].join('.').toLowerCase(),
$.extend({ relatedTarget: this }, status, data)
);
if(!this._supress[name]){
$.each(this._plugins, function(name, plugin){
if(plugin.onTrigger){
plugin.onTrigger(event);
}});
this.register({ type: Owl.Type.Event, name: name });
this.$element.trigger(event);
if(this.settings&&typeof this.settings[handler]==='function'){
this.settings[handler].call(this, event);
}}
return event;
};
Owl.prototype.enter=function(name){
$.each([ name ].concat(this._states.tags[name]||[]), $.proxy(function(i, name){
if(this._states.current[name]===undefined){
this._states.current[name]=0;
}
this._states.current[name]++;
}, this));
};
Owl.prototype.leave=function(name){
$.each([ name ].concat(this._states.tags[name]||[]), $.proxy(function(i, name){
this._states.current[name]--;
}, this));
};
Owl.prototype.register=function(object){
if(object.type===Owl.Type.Event){
if(!$.event.special[object.name]){
$.event.special[object.name]={};}
if(!$.event.special[object.name].owl){
var _default=$.event.special[object.name]._default;
$.event.special[object.name]._default=function(e){
if(_default&&_default.apply&&(!e.namespace||e.namespace.indexOf('owl')===-1)){
return _default.apply(this, arguments);
}
return e.namespace&&e.namespace.indexOf('owl') > -1;
};
$.event.special[object.name].owl=true;
}}else if(object.type===Owl.Type.State){
if(!this._states.tags[object.name]){
this._states.tags[object.name]=object.tags;
}else{
this._states.tags[object.name]=this._states.tags[object.name].concat(object.tags);
}
this._states.tags[object.name]=$.grep(this._states.tags[object.name], $.proxy(function(tag, i){
return $.inArray(tag, this._states.tags[object.name])===i;
}, this));
}};
Owl.prototype.suppress=function(events){
$.each(events, $.proxy(function(index, event){
this._supress[event]=true;
}, this));
};
Owl.prototype.release=function(events){
$.each(events, $.proxy(function(index, event){
delete this._supress[event];
}, this));
};
Owl.prototype.pointer=function(event){
var result={ x: null, y: null };
event=event.originalEvent||event||window.event;
event=event.touches&&event.touches.length ?
event.touches[0]:event.changedTouches&&event.changedTouches.length ?
event.changedTouches[0]:event;
if(event.pageX){
result.x=event.pageX;
result.y=event.pageY;
}else{
result.x=event.clientX;
result.y=event.clientY;
}
return result;
};
Owl.prototype.isNumeric=function(number){
return !isNaN(parseFloat(number));
};
Owl.prototype.difference=function(first, second){
return {
x: first.x - second.x,
y: first.y - second.y
};};
$.fn.owlCarousel=function(option){
var args=Array.prototype.slice.call(arguments, 1);
return this.each(function(){
var $this=$(this),
data=$this.data('owl.carousel');
if(!data){
data=new Owl(this, typeof option=='object'&&option);
$this.data('owl.carousel', data);
$.each([
'next', 'prev', 'to', 'destroy', 'refresh', 'replace', 'add', 'remove'
], function(i, event){
data.register({ type: Owl.Type.Event, name: event });
data.$element.on(event + '.owl.carousel.core', $.proxy(function(e){
if(e.namespace&&e.relatedTarget!==this){
this.suppress([ event ]);
data[event].apply(this, [].slice.call(arguments, 1));
this.release([ event ]);
}}, data));
});
}
if(typeof option=='string'&&option.charAt(0)!=='_'){
data[option].apply(data, args);
}});
};
$.fn.owlCarousel.Constructor=Owl;
})(window.Zepto||window.jQuery, window, document);
;(function($, window, document, undefined){
var AutoRefresh=function(carousel){
this._core=carousel;
this._interval=null;
this._visible=null;
this._handlers={
'initialized.owl.carousel': $.proxy(function(e){
if(e.namespace&&this._core.settings.autoRefresh){
this.watch();
}}, this)
};
this._core.options=$.extend({}, AutoRefresh.Defaults, this._core.options);
this._core.$element.on(this._handlers);
};
AutoRefresh.Defaults={
autoRefresh: true,
autoRefreshInterval: 500
};
AutoRefresh.prototype.watch=function(){
if(this._interval){
return;
}
this._visible=this._core.isVisible();
this._interval=window.setInterval($.proxy(this.refresh, this), this._core.settings.autoRefreshInterval);
};
AutoRefresh.prototype.refresh=function(){
if(this._core.isVisible()===this._visible){
return;
}
this._visible = !this._visible;
this._core.$element.toggleClass('owl-hidden', !this._visible);
this._visible&&(this._core.invalidate('width')&&this._core.refresh());
};
AutoRefresh.prototype.destroy=function(){
var handler, property;
window.clearInterval(this._interval);
for (handler in this._handlers){
this._core.$element.off(handler, this._handlers[handler]);
}
for (property in Object.getOwnPropertyNames(this)){
typeof this[property]!='function'&&(this[property]=null);
}};
$.fn.owlCarousel.Constructor.Plugins.AutoRefresh=AutoRefresh;
})(window.Zepto||window.jQuery, window, document);
;(function($, window, document, undefined){
var Lazy=function(carousel){
this._core=carousel;
this._loaded=[];
this._handlers={
'initialized.owl.carousel change.owl.carousel resized.owl.carousel': $.proxy(function(e){
if(!e.namespace){
return;
}
if(!this._core.settings||!this._core.settings.lazyLoad){
return;
}
if((e.property&&e.property.name=='position')||e.type=='initialized'){
var settings=this._core.settings,
n=(settings.center&&Math.ceil(settings.items / 2)||settings.items),
i=((settings.center&&n * -1)||0),
position=(e.property&&e.property.value!==undefined ? e.property.value:this._core.current()) + i,
clones=this._core.clones().length,
load=$.proxy(function(i, v){ this.load(v) }, this);
if(settings.lazyLoadEager > 0){
n +=settings.lazyLoadEager;
if(settings.loop){
position -=settings.lazyLoadEager;
n++;
}}
while (i++ < n){
this.load(clones / 2 + this._core.relative(position));
clones&&$.each(this._core.clones(this._core.relative(position)), load);
position++;
}}
}, this)
};
this._core.options=$.extend({}, Lazy.Defaults, this._core.options);
this._core.$element.on(this._handlers);
};
Lazy.Defaults={
lazyLoad: false,
lazyLoadEager: 0
};
Lazy.prototype.load=function(position){
var $item=this._core.$stage.children().eq(position),
$elements=$item&&$item.find('.owl-lazy');
if(!$elements||$.inArray($item.get(0), this._loaded) > -1){
return;
}
$elements.each($.proxy(function(index, element){
var $element=$(element), image,
url=(window.devicePixelRatio > 1&&$element.attr('data-src-retina'))||$element.attr('data-src')||$element.attr('data-srcset');
this._core.trigger('load', { element: $element, url: url }, 'lazy');
if($element.is('img')){
$element.one('load.owl.lazy', $.proxy(function(){
$element.css('opacity', 1);
this._core.trigger('loaded', { element: $element, url: url }, 'lazy');
}, this)).attr('src', url);
}else if($element.is('source')){
$element.one('load.owl.lazy', $.proxy(function(){
this._core.trigger('loaded', { element: $element, url: url }, 'lazy');
}, this)).attr('srcset', url);
}else{
image=new Image();
image.onload=$.proxy(function(){
$element.css({
'background-image': 'url("' + url + '")',
'opacity': '1'
});
this._core.trigger('loaded', { element: $element, url: url }, 'lazy');
}, this);
image.src=url;
}}, this));
this._loaded.push($item.get(0));
};
Lazy.prototype.destroy=function(){
var handler, property;
for (handler in this.handlers){
this._core.$element.off(handler, this.handlers[handler]);
}
for (property in Object.getOwnPropertyNames(this)){
typeof this[property]!='function'&&(this[property]=null);
}};
$.fn.owlCarousel.Constructor.Plugins.Lazy=Lazy;
})(window.Zepto||window.jQuery, window, document);
;(function($, window, document, undefined){
var AutoHeight=function(carousel){
this._core=carousel;
this._previousHeight=null;
this._handlers={
'initialized.owl.carousel refreshed.owl.carousel': $.proxy(function(e){
if(e.namespace&&this._core.settings.autoHeight){
this.update();
}}, this),
'changed.owl.carousel': $.proxy(function(e){
if(e.namespace&&this._core.settings.autoHeight&&e.property.name==='position'){
this.update();
}}, this),
'loaded.owl.lazy': $.proxy(function(e){
if(e.namespace&&this._core.settings.autoHeight
&& e.element.closest('.' + this._core.settings.itemClass).index()===this._core.current()){
this.update();
}}, this)
};
this._core.options=$.extend({}, AutoHeight.Defaults, this._core.options);
this._core.$element.on(this._handlers);
this._intervalId=null;
var refThis=this;
$(window).on('load', function(){
if(refThis._core.settings.autoHeight){
refThis.update();
}});
$(window).resize(function(){
if(refThis._core.settings.autoHeight){
if(refThis._intervalId!=null){
clearTimeout(refThis._intervalId);
}
refThis._intervalId=setTimeout(function(){
refThis.update();
}, 250);
}});
};
AutoHeight.Defaults={
autoHeight: false,
autoHeightClass: 'owl-height'
};
AutoHeight.prototype.update=function(){
var start=this._core._current,
end=start + this._core.settings.items,
lazyLoadEnabled=this._core.settings.lazyLoad,
visible=this._core.$stage.children().toArray().slice(start, end),
heights=[],
maxheight=0;
$.each(visible, function(index, item){
heights.push($(item).height());
});
maxheight=Math.max.apply(null, heights);
if(maxheight <=1&&lazyLoadEnabled&&this._previousHeight){
maxheight=this._previousHeight;
}
this._previousHeight=maxheight;
this._core.$stage.parent()
.height(maxheight)
.addClass(this._core.settings.autoHeightClass);
};
AutoHeight.prototype.destroy=function(){
var handler, property;
for (handler in this._handlers){
this._core.$element.off(handler, this._handlers[handler]);
}
for (property in Object.getOwnPropertyNames(this)){
typeof this[property]!=='function'&&(this[property]=null);
}};
$.fn.owlCarousel.Constructor.Plugins.AutoHeight=AutoHeight;
})(window.Zepto||window.jQuery, window, document);
;(function($, window, document, undefined){
var Video=function(carousel){
this._core=carousel;
this._videos={};
this._playing=null;
this._handlers={
'initialized.owl.carousel': $.proxy(function(e){
if(e.namespace){
this._core.register({ type: 'state', name: 'playing', tags: [ 'interacting' ] });
}}, this),
'resize.owl.carousel': $.proxy(function(e){
if(e.namespace&&this._core.settings.video&&this.isInFullScreen()){
e.preventDefault();
}}, this),
'refreshed.owl.carousel': $.proxy(function(e){
if(e.namespace&&this._core.is('resizing')){
this._core.$stage.find('.cloned .owl-video-frame').remove();
}}, this),
'changed.owl.carousel': $.proxy(function(e){
if(e.namespace&&e.property.name==='position'&&this._playing){
this.stop();
}}, this),
'prepared.owl.carousel': $.proxy(function(e){
if(!e.namespace){
return;
}
var $element=$(e.content).find('.owl-video');
if($element.length){
$element.css('display', 'none');
this.fetch($element, $(e.content));
}}, this)
};
this._core.options=$.extend({}, Video.Defaults, this._core.options);
this._core.$element.on(this._handlers);
this._core.$element.on('click.owl.video', '.owl-video-play-icon', $.proxy(function(e){
this.play(e);
}, this));
};
Video.Defaults={
video: false,
videoHeight: false,
videoWidth: false
};
Video.prototype.fetch=function(target, item){
var type=(function(){
if(target.attr('data-vimeo-id')){
return 'vimeo';
}else if(target.attr('data-vzaar-id')){
return 'vzaar'
}else{
return 'youtube';
}})(),
id=target.attr('data-vimeo-id')||target.attr('data-youtube-id')||target.attr('data-vzaar-id'),
width=target.attr('data-width')||this._core.settings.videoWidth,
height=target.attr('data-height')||this._core.settings.videoHeight,
url=target.attr('href');
if(url){
id=url.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/);
if(id[3].indexOf('youtu') > -1){
type='youtube';
}else if(id[3].indexOf('vimeo') > -1){
type='vimeo';
}else if(id[3].indexOf('vzaar') > -1){
type='vzaar';
}else{
throw new Error('Video URL not supported.');
}
id=id[6];
}else{
throw new Error('Missing video URL.');
}
this._videos[url]={
type: type,
id: id,
width: width,
height: height
};
item.attr('data-video', url);
this.thumbnail(target, this._videos[url]);
};
Video.prototype.thumbnail=function(target, video){
var tnLink,
icon,
path,
dimensions=video.width&&video.height ? 'width:' + video.width + 'px;height:' + video.height + 'px;':'',
customTn=target.find('img'),
srcType='src',
lazyClass='',
settings=this._core.settings,
create=function(path){
icon='<div class="owl-video-play-icon"></div>';
if(settings.lazyLoad){
tnLink=$('<div/>',{
"class": 'owl-video-tn ' + lazyClass,
"srcType": path
});
}else{
tnLink=$('<div/>', {
"class": "owl-video-tn",
"style": 'opacity:1;background-image:url(' + path + ')'
});
}
target.after(tnLink);
target.after(icon);
};
target.wrap($('<div/>', {
"class": "owl-video-wrapper",
"style": dimensions
}));
if(this._core.settings.lazyLoad){
srcType='data-src';
lazyClass='owl-lazy';
}
if(customTn.length){
create(customTn.attr(srcType));
customTn.remove();
return false;
}
if(video.type==='youtube'){
path="//img.youtube.com/vi/" + video.id + "/hqdefault.jpg";
create(path);
}else if(video.type==='vimeo'){
$.ajax({
type: 'GET',
url: '//vimeo.com/api/v2/video/' + video.id + '.json',
jsonp: 'callback',
dataType: 'jsonp',
success: function(data){
path=data[0].thumbnail_large;
create(path);
}});
}else if(video.type==='vzaar'){
$.ajax({
type: 'GET',
url: '//vzaar.com/api/videos/' + video.id + '.json',
jsonp: 'callback',
dataType: 'jsonp',
success: function(data){
path=data.framegrab_url;
create(path);
}});
}};
Video.prototype.stop=function(){
this._core.trigger('stop', null, 'video');
this._playing.find('.owl-video-frame').remove();
this._playing.removeClass('owl-video-playing');
this._playing=null;
this._core.leave('playing');
this._core.trigger('stopped', null, 'video');
};
Video.prototype.play=function(event){
var target=$(event.target),
item=target.closest('.' + this._core.settings.itemClass),
video=this._videos[item.attr('data-video')],
width=video.width||'100%',
height=video.height||this._core.$stage.height(),
html,
iframe;
if(this._playing){
return;
}
this._core.enter('playing');
this._core.trigger('play', null, 'video');
item=this._core.items(this._core.relative(item.index()));
this._core.reset(item.index());
html=$('<iframe frameborder="0" allowfullscreen mozallowfullscreen webkitAllowFullScreen ></iframe>');
html.attr('height', height);
html.attr('width', width);
if(video.type==='youtube'){
html.attr('src', '//www.youtube.com/embed/' + video.id + '?autoplay=1&rel=0&v=' + video.id);
}else if(video.type==='vimeo'){
html.attr('src', '//player.vimeo.com/video/' + video.id + '?autoplay=1');
}else if(video.type==='vzaar'){
html.attr('src', '//view.vzaar.com/' + video.id + '/player?autoplay=true');
}
iframe=$(html).wrap('<div class="owl-video-frame" />').insertAfter(item.find('.owl-video'));
this._playing=item.addClass('owl-video-playing');
};
Video.prototype.isInFullScreen=function(){
var element=document.fullscreenElement||document.mozFullScreenElement ||
document.webkitFullscreenElement;
return element&&$(element).parent().hasClass('owl-video-frame');
};
Video.prototype.destroy=function(){
var handler, property;
this._core.$element.off('click.owl.video');
for (handler in this._handlers){
this._core.$element.off(handler, this._handlers[handler]);
}
for (property in Object.getOwnPropertyNames(this)){
typeof this[property]!='function'&&(this[property]=null);
}};
$.fn.owlCarousel.Constructor.Plugins.Video=Video;
})(window.Zepto||window.jQuery, window, document);
;(function($, window, document, undefined){
var Animate=function(scope){
this.core=scope;
this.core.options=$.extend({}, Animate.Defaults, this.core.options);
this.swapping=true;
this.previous=undefined;
this.next=undefined;
this.handlers={
'change.owl.carousel': $.proxy(function(e){
if(e.namespace&&e.property.name=='position'){
this.previous=this.core.current();
this.next=e.property.value;
}}, this),
'drag.owl.carousel dragged.owl.carousel translated.owl.carousel': $.proxy(function(e){
if(e.namespace){
this.swapping=e.type=='translated';
}}, this),
'translate.owl.carousel': $.proxy(function(e){
if(e.namespace&&this.swapping&&(this.core.options.animateOut||this.core.options.animateIn)){
this.swap();
}}, this)
};
this.core.$element.on(this.handlers);
};
Animate.Defaults={
animateOut: false,
animateIn: false
};
Animate.prototype.swap=function(){
if(this.core.settings.items!==1){
return;
}
if(!$.support.animation||!$.support.transition){
return;
}
this.core.speed(0);
var left,
clear=$.proxy(this.clear, this),
previous=this.core.$stage.children().eq(this.previous),
next=this.core.$stage.children().eq(this.next),
incoming=this.core.settings.animateIn,
outgoing=this.core.settings.animateOut;
if(this.core.current()===this.previous){
return;
}
if(outgoing){
left=this.core.coordinates(this.previous) - this.core.coordinates(this.next);
previous.one($.support.animation.end, clear)
.css({ 'left': left + 'px' })
.addClass('animated owl-animated-out')
.addClass(outgoing);
}
if(incoming){
next.one($.support.animation.end, clear)
.addClass('animated owl-animated-in')
.addClass(incoming);
}};
Animate.prototype.clear=function(e){
$(e.target).css({ 'left': '' })
.removeClass('animated owl-animated-out owl-animated-in')
.removeClass(this.core.settings.animateIn)
.removeClass(this.core.settings.animateOut);
this.core.onTransitionEnd();
};
Animate.prototype.destroy=function(){
var handler, property;
for (handler in this.handlers){
this.core.$element.off(handler, this.handlers[handler]);
}
for (property in Object.getOwnPropertyNames(this)){
typeof this[property]!='function'&&(this[property]=null);
}};
$.fn.owlCarousel.Constructor.Plugins.Animate=Animate;
})(window.Zepto||window.jQuery, window, document);
;(function($, window, document, undefined){
var Autoplay=function(carousel){
this._core=carousel;
this._call=null;
this._time=0;
this._timeout=0;
this._paused=true;
this._handlers={
'changed.owl.carousel': $.proxy(function(e){
if(e.namespace&&e.property.name==='settings'){
if(this._core.settings.autoplay){
this.play();
}else{
this.stop();
}}else if(e.namespace&&e.property.name==='position'&&this._paused){
this._time=0;
}}, this),
'initialized.owl.carousel': $.proxy(function(e){
if(e.namespace&&this._core.settings.autoplay){
this.play();
}}, this),
'play.owl.autoplay': $.proxy(function(e, t, s){
if(e.namespace){
this.play(t, s);
}}, this),
'stop.owl.autoplay': $.proxy(function(e){
if(e.namespace){
this.stop();
}}, this),
'mouseover.owl.autoplay': $.proxy(function(){
if(this._core.settings.autoplayHoverPause&&this._core.is('rotating')){
this.pause();
}}, this),
'mouseleave.owl.autoplay': $.proxy(function(){
if(this._core.settings.autoplayHoverPause&&this._core.is('rotating')){
this.play();
}}, this),
'touchstart.owl.core': $.proxy(function(){
if(this._core.settings.autoplayHoverPause&&this._core.is('rotating')){
this.pause();
}}, this),
'touchend.owl.core': $.proxy(function(){
if(this._core.settings.autoplayHoverPause){
this.play();
}}, this)
};
this._core.$element.on(this._handlers);
this._core.options=$.extend({}, Autoplay.Defaults, this._core.options);
};
Autoplay.Defaults={
autoplay: false,
autoplayTimeout: 5000,
autoplayHoverPause: false,
autoplaySpeed: false
};
Autoplay.prototype._next=function(speed){
this._call=window.setTimeout($.proxy(this._next, this, speed),
this._timeout * (Math.round(this.read() / this._timeout) + 1) - this.read()
);
if(this._core.is('interacting')||document.hidden){
return;
}
this._core.next(speed||this._core.settings.autoplaySpeed);
}
Autoplay.prototype.read=function(){
return new Date().getTime() - this._time;
};
Autoplay.prototype.play=function(timeout, speed){
var elapsed;
if(!this._core.is('rotating')){
this._core.enter('rotating');
}
timeout=timeout||this._core.settings.autoplayTimeout;
elapsed=Math.min(this._time % (this._timeout||timeout), timeout);
if(this._paused){
this._time=this.read();
this._paused=false;
}else{
window.clearTimeout(this._call);
}
this._time +=this.read() % timeout - elapsed;
this._timeout=timeout;
this._call=window.setTimeout($.proxy(this._next, this, speed), timeout - elapsed);
};
Autoplay.prototype.stop=function(){
if(this._core.is('rotating')){
this._time=0;
this._paused=true;
window.clearTimeout(this._call);
this._core.leave('rotating');
}};
Autoplay.prototype.pause=function(){
if(this._core.is('rotating')&&!this._paused){
this._time=this.read();
this._paused=true;
window.clearTimeout(this._call);
}};
Autoplay.prototype.destroy=function(){
var handler, property;
this.stop();
for (handler in this._handlers){
this._core.$element.off(handler, this._handlers[handler]);
}
for (property in Object.getOwnPropertyNames(this)){
typeof this[property]!='function'&&(this[property]=null);
}};
$.fn.owlCarousel.Constructor.Plugins.autoplay=Autoplay;
})(window.Zepto||window.jQuery, window, document);
;(function($, window, document, undefined){
'use strict';
var Navigation=function(carousel){
this._core=carousel;
this._initialized=false;
this._pages=[];
this._controls={};
this._templates=[];
this.$element=this._core.$element;
this._overrides={
next: this._core.next,
prev: this._core.prev,
to: this._core.to
};
this._handlers={
'prepared.owl.carousel': $.proxy(function(e){
if(e.namespace&&this._core.settings.dotsData){
this._templates.push('<div class="' + this._core.settings.dotClass + '">' +
$(e.content).find('[data-dot]').addBack('[data-dot]').attr('data-dot') + '</div>');
}}, this),
'added.owl.carousel': $.proxy(function(e){
if(e.namespace&&this._core.settings.dotsData){
this._templates.splice(e.position, 0, this._templates.pop());
}}, this),
'remove.owl.carousel': $.proxy(function(e){
if(e.namespace&&this._core.settings.dotsData){
this._templates.splice(e.position, 1);
}}, this),
'changed.owl.carousel': $.proxy(function(e){
if(e.namespace&&e.property.name=='position'){
this.draw();
}}, this),
'initialized.owl.carousel': $.proxy(function(e){
if(e.namespace&&!this._initialized){
this._core.trigger('initialize', null, 'navigation');
this.initialize();
this.update();
this.draw();
this._initialized=true;
this._core.trigger('initialized', null, 'navigation');
}}, this),
'refreshed.owl.carousel': $.proxy(function(e){
if(e.namespace&&this._initialized){
this._core.trigger('refresh', null, 'navigation');
this.update();
this.draw();
this._core.trigger('refreshed', null, 'navigation');
}}, this)
};
this._core.options=$.extend({}, Navigation.Defaults, this._core.options);
this.$element.on(this._handlers);
};
Navigation.Defaults={
nav: false,
navText: [
'<span aria-label="' + 'Previous' + '">&#x2039;</span>',
'<span aria-label="' + 'Next' + '">&#x203a;</span>'
],
navSpeed: false,
navElement: 'button type="button" role="presentation"',
navContainer: false,
navContainerClass: 'owl-nav',
navClass: [
'owl-prev',
'owl-next'
],
slideBy: 1,
dotClass: 'owl-dot',
dotsClass: 'owl-dots',
dots: true,
dotsEach: false,
dotsData: false,
dotsSpeed: false,
dotsContainer: false
};
Navigation.prototype.initialize=function(){
var override,
settings=this._core.settings;
this._controls.$relative=(settings.navContainer ? $(settings.navContainer)
: $('<div>').addClass(settings.navContainerClass).appendTo(this.$element)).addClass('disabled');
this._controls.$previous=$('<' + settings.navElement + '>')
.addClass(settings.navClass[0])
.html(settings.navText[0])
.prependTo(this._controls.$relative)
.on('click', $.proxy(function(e){
this.prev(settings.navSpeed);
}, this));
this._controls.$next=$('<' + settings.navElement + '>')
.addClass(settings.navClass[1])
.html(settings.navText[1])
.appendTo(this._controls.$relative)
.on('click', $.proxy(function(e){
this.next(settings.navSpeed);
}, this));
if(!settings.dotsData){
this._templates=[ $('<button role="button">')
.addClass(settings.dotClass)
.append($('<span>'))
.prop('outerHTML') ];
}
this._controls.$absolute=(settings.dotsContainer ? $(settings.dotsContainer)
: $('<div>').addClass(settings.dotsClass).appendTo(this.$element)).addClass('disabled');
this._controls.$absolute.on('click', 'button', $.proxy(function(e){
var index=$(e.target).parent().is(this._controls.$absolute)
? $(e.target).index():$(e.target).parent().index();
e.preventDefault();
this.to(index, settings.dotsSpeed);
}, this));
/*$el.on('focusin', function(){
$(document).off(".carousel");
$(document).on('keydown.carousel', function(e){
if(e.keyCode==37){
$el.trigger('prev.owl')
}
if(e.keyCode==39){
$el.trigger('next.owl')
}});
});*/
for (override in this._overrides){
this._core[override]=$.proxy(this[override], this);
}};
Navigation.prototype.destroy=function(){
var handler, control, property, override, settings;
settings=this._core.settings;
for (handler in this._handlers){
this.$element.off(handler, this._handlers[handler]);
}
for (control in this._controls){
if(control==='$relative'&&settings.navContainer){
this._controls[control].html('');
}else{
this._controls[control].remove();
}}
for (override in this.overides){
this._core[override]=this._overrides[override];
}
for (property in Object.getOwnPropertyNames(this)){
typeof this[property]!='function'&&(this[property]=null);
}};
Navigation.prototype.update=function(){
var i, j, k,
lower=this._core.clones().length / 2,
upper=lower + this._core.items().length,
maximum=this._core.maximum(true),
settings=this._core.settings,
size=settings.center||settings.autoWidth||settings.dotsData
? 1:settings.dotsEach||settings.items;
if(settings.slideBy!=='page'){
settings.slideBy=Math.min(settings.slideBy, settings.items);
}
if(settings.dots||settings.slideBy=='page'){
this._pages=[];
for (i=lower, j=0, k=0; i < upper; i++){
if(j >=size||j===0){
this._pages.push({
start: Math.min(maximum, i - lower),
end: i - lower + size - 1
});
if(Math.min(maximum, i - lower)===maximum){
break;
}
j=0, ++k;
}
j +=this._core.mergers(this._core.relative(i));
}}
};
Navigation.prototype.draw=function(){
var difference,
settings=this._core.settings,
disabled=this._core.items().length <=settings.items,
index=this._core.relative(this._core.current()),
loop=settings.loop||settings.rewind;
this._controls.$relative.toggleClass('disabled', !settings.nav||disabled);
if(settings.nav){
this._controls.$previous.toggleClass('disabled', !loop&&index <=this._core.minimum(true));
this._controls.$next.toggleClass('disabled', !loop&&index >=this._core.maximum(true));
}
this._controls.$absolute.toggleClass('disabled', !settings.dots||disabled);
if(settings.dots){
difference=this._pages.length - this._controls.$absolute.children().length;
if(settings.dotsData&&difference!==0){
this._controls.$absolute.html(this._templates.join(''));
}else if(difference > 0){
this._controls.$absolute.append(new Array(difference + 1).join(this._templates[0]));
}else if(difference < 0){
this._controls.$absolute.children().slice(difference).remove();
}
this._controls.$absolute.find('.active').removeClass('active');
this._controls.$absolute.children().eq($.inArray(this.current(), this._pages)).addClass('active');
}};
Navigation.prototype.onTrigger=function(event){
var settings=this._core.settings;
event.page={
index: $.inArray(this.current(), this._pages),
count: this._pages.length,
size: settings&&(settings.center||settings.autoWidth||settings.dotsData
? 1:settings.dotsEach||settings.items)
};};
Navigation.prototype.current=function(){
var current=this._core.relative(this._core.current());
return $.grep(this._pages, $.proxy(function(page, index){
return page.start <=current&&page.end >=current;
}, this)).pop();
};
Navigation.prototype.getPosition=function(successor){
var position, length,
settings=this._core.settings;
if(settings.slideBy=='page'){
position=$.inArray(this.current(), this._pages);
length=this._pages.length;
successor ? ++position:--position;
position=this._pages[((position % length) + length) % length].start;
}else{
position=this._core.relative(this._core.current());
length=this._core.items().length;
successor ? position +=settings.slideBy:position -=settings.slideBy;
}
return position;
};
Navigation.prototype.next=function(speed){
$.proxy(this._overrides.to, this._core)(this.getPosition(true), speed);
};
Navigation.prototype.prev=function(speed){
$.proxy(this._overrides.to, this._core)(this.getPosition(false), speed);
};
Navigation.prototype.to=function(position, speed, standard){
var length;
if(!standard&&this._pages.length){
length=this._pages.length;
$.proxy(this._overrides.to, this._core)(this._pages[((position % length) + length) % length].start, speed);
}else{
$.proxy(this._overrides.to, this._core)(position, speed);
}};
$.fn.owlCarousel.Constructor.Plugins.Navigation=Navigation;
})(window.Zepto||window.jQuery, window, document);
;(function($, window, document, undefined){
'use strict';
var Hash=function(carousel){
this._core=carousel;
this._hashes={};
this.$element=this._core.$element;
this._handlers={
'initialized.owl.carousel': $.proxy(function(e){
if(e.namespace&&this._core.settings.startPosition==='URLHash'){
$(window).trigger('hashchange.owl.navigation');
}}, this),
'prepared.owl.carousel': $.proxy(function(e){
if(e.namespace){
var hash=$(e.content).find('[data-hash]').addBack('[data-hash]').attr('data-hash');
if(!hash){
return;
}
this._hashes[hash]=e.content;
}}, this),
'changed.owl.carousel': $.proxy(function(e){
if(e.namespace&&e.property.name==='position'){
var current=this._core.items(this._core.relative(this._core.current())),
hash=$.map(this._hashes, function(item, hash){
return item===current ? hash:null;
}).join();
if(!hash||window.location.hash.slice(1)===hash){
return;
}
window.location.hash=hash;
}}, this)
};
this._core.options=$.extend({}, Hash.Defaults, this._core.options);
this.$element.on(this._handlers);
$(window).on('hashchange.owl.navigation', $.proxy(function(e){
var hash=window.location.hash.substring(1),
items=this._core.$stage.children(),
position=this._hashes[hash]&&items.index(this._hashes[hash]);
if(position===undefined||position===this._core.current()){
return;
}
this._core.to(this._core.relative(position), false, true);
}, this));
};
Hash.Defaults={
URLhashListener: false
};
Hash.prototype.destroy=function(){
var handler, property;
$(window).off('hashchange.owl.navigation');
for (handler in this._handlers){
this._core.$element.off(handler, this._handlers[handler]);
}
for (property in Object.getOwnPropertyNames(this)){
typeof this[property]!='function'&&(this[property]=null);
}};
$.fn.owlCarousel.Constructor.Plugins.Hash=Hash;
})(window.Zepto||window.jQuery, window, document);
;(function($, window, document, undefined){
var style=$('<support>').get(0).style,
prefixes='Webkit Moz O ms'.split(' '),
events={
transition: {
end: {
WebkitTransition: 'webkitTransitionEnd',
MozTransition: 'transitionend',
OTransition: 'oTransitionEnd',
transition: 'transitionend'
}},
animation: {
end: {
WebkitAnimation: 'webkitAnimationEnd',
MozAnimation: 'animationend',
OAnimation: 'oAnimationEnd',
animation: 'animationend'
}}
},
tests={
csstransforms: function(){
return !!test('transform');
},
csstransforms3d: function(){
return !!test('perspective');
},
csstransitions: function(){
return !!test('transition');
},
cssanimations: function(){
return !!test('animation');
}};
function test(property, prefixed){
var result=false,
upper=property.charAt(0).toUpperCase() + property.slice(1);
$.each((property + ' ' + prefixes.join(upper + ' ') + upper).split(' '), function(i, property){
if(style[property]!==undefined){
result=prefixed ? property:true;
return false;
}});
return result;
}
function prefixed(property){
return test(property, true);
}
if(tests.csstransitions()){
$.support.transition=new String(prefixed('transition'))
$.support.transition.end=events.transition.end[ $.support.transition ];
}
if(tests.cssanimations()){
$.support.animation=new String(prefixed('animation'))
$.support.animation.end=events.animation.end[ $.support.animation ];
}
if(tests.csstransforms()){
$.support.transform=new String(prefixed('transform'));
$.support.transform3d=tests.csstransforms3d();
}})(window.Zepto||window.jQuery, window, document);
!function(t,e){"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,(function(){function t(){}let e=t.prototype;return e.on=function(t,e){if(!t||!e)return this;let i=this._events=this._events||{},s=i[t]=i[t]||[];return s.includes(e)||s.push(e),this},e.once=function(t,e){if(!t||!e)return this;this.on(t,e);let i=this._onceEvents=this._onceEvents||{};return(i[t]=i[t]||{})[e]=!0,this},e.off=function(t,e){let i=this._events&&this._events[t];if(!i||!i.length)return this;let s=i.indexOf(e);return-1!=s&&i.splice(s,1),this},e.emitEvent=function(t,e){let i=this._events&&this._events[t];if(!i||!i.length)return this;i=i.slice(0),e=e||[];let s=this._onceEvents&&this._onceEvents[t];for(let n of i){s&&s[n]&&(this.off(t,n),delete s[n]),n.apply(this,e)}return this},e.allOff=function(){return delete this._events,delete this._onceEvents,this},t})),
function(t,e){"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter")):t.imagesLoaded=e(t,t.EvEmitter)}("undefined"!=typeof window?window:this,(function(t,e){let i=t.jQuery,s=t.console;function n(t,e,o){if(!(this instanceof n))return new n(t,e,o);let r=t;var h;("string"==typeof t&&(r=document.querySelectorAll(t)),r)?(this.elements=(h=r,Array.isArray(h)?h:"object"==typeof h&&"number"==typeof h.length?[...h]:[h]),this.options={},"function"==typeof e?o=e:Object.assign(this.options,e),o&&this.on("always",o),this.getImages(),i&&(this.jqDeferred=new i.Deferred),setTimeout(this.check.bind(this))):s.error(`Bad element for imagesLoaded ${r||t}`)}n.prototype=Object.create(e.prototype),n.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)};const o=[1,9,11];n.prototype.addElementImages=function(t){"IMG"===t.nodeName&&this.addImage(t),!0===this.options.background&&this.addElementBackgroundImages(t);let{nodeType:e}=t;if(!e||!o.includes(e))return;let i=t.querySelectorAll("img");for(let t of i)this.addImage(t);if("string"==typeof this.options.background){let e=t.querySelectorAll(this.options.background);for(let t of e)this.addElementBackgroundImages(t)}};const r=/url\((['"])?(.*?)\1\)/gi;function h(t){this.img=t}function d(t,e){this.url=t,this.element=e,this.img=new Image}return n.prototype.addElementBackgroundImages=function(t){let e=getComputedStyle(t);if(!e)return;let i=r.exec(e.backgroundImage);for(;null!==i;){let s=i&&i[2];s&&this.addBackground(s,t),i=r.exec(e.backgroundImage)}},n.prototype.addImage=function(t){let e=new h(t);this.images.push(e)},n.prototype.addBackground=function(t,e){let i=new d(t,e);this.images.push(i)},n.prototype.check=function(){if(this.progressedCount=0,this.hasAnyBroken=!1,!this.images.length)return void this.complete();let t=(t,e,i)=>{setTimeout((()=>{this.progress(t,e,i)}))};this.images.forEach((function(e){e.once("progress",t),e.check()}))},n.prototype.progress=function(t,e,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!t.isLoaded,this.emitEvent("progress",[this,t,e]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,t),this.progressedCount===this.images.length&&this.complete(),this.options.debug&&s&&s.log(`progress: ${i}`,t,e)},n.prototype.complete=function(){let t=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(t,[this]),this.emitEvent("always",[this]),this.jqDeferred){let t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},h.prototype=Object.create(e.prototype),h.prototype.check=function(){this.getIsImageComplete()?this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.img.crossOrigin&&(this.proxyImage.crossOrigin=this.img.crossOrigin),this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.proxyImage.src=this.img.currentSrc||this.img.src)},h.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth},h.prototype.confirm=function(t,e){this.isLoaded=t;let{parentNode:i}=this.img,s="PICTURE"===i.nodeName?i:this.img;this.emitEvent("progress",[this,s,e])},h.prototype.handleEvent=function(t){let e="on"+t.type;this[e]&&this[e](t)},h.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},h.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},h.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},d.prototype=Object.create(h.prototype),d.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url,this.getIsImageComplete()&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},d.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},d.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.element,e])},n.makeJQueryPlugin=function(e){(e=e||t.jQuery)&&(i=e,i.fn.imagesLoaded=function(t,e){return new n(this,t,e).jqDeferred.promise(i(this))})},n.makeJQueryPlugin(),n}));
!function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,r,a){function h(t,e,n){var o,r="$()."+i+'("'+e+'")';return t.each(function(t,h){var u=a.data(h,i);if(!u)return void s(i+" not initialized. Cannot call methods, i.e. "+r);var d=u[e];if(!d||"_"==e.charAt(0))return void s(r+" is not a valid method");var l=d.apply(u,n);o=void 0===o?l:o}),void 0!==o?o:t}function u(t,e){t.each(function(t,n){var o=a.data(n,i);o?(o.option(e),o._init()):(o=new r(n,e),a.data(n,i,o))})}a=a||e||t.jQuery,a&&(r.prototype.option||(r.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=o.call(arguments,1);return h(this,t,e)}return u(this,t),this},n(a))}function n(t){!t||t&&t.bridget||(t.bridget=i)}var o=Array.prototype.slice,r=t.console,s="undefined"==typeof r?function(){}:function(t){r.error(t)};return n(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var n=this._onceEvents&&this._onceEvents[t],o=0;o<i.length;o++){var r=i[o],s=n&&n[r];s&&(this.off(t,r),delete n[r]),r.apply(this,e)}return this}},e.allOff=function(){delete this._events,delete this._onceEvents},t}),function(t,e){"function"==typeof define&&define.amd?define("get-size/get-size",e):"object"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){"use strict";function t(t){var e=parseFloat(t),i=-1==t.indexOf("%")&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;u>e;e++){var i=h[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}function o(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);s=200==Math.round(t(o.width)),r.isBoxSizeOuter=s,i.removeChild(e)}}function r(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var r=n(e);if("none"==r.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==r.boxSizing,l=0;u>l;l++){var c=h[l],f=r[c],m=parseFloat(f);a[c]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,g=a.paddingTop+a.paddingBottom,y=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,E=d&&s,b=t(r.width);b!==!1&&(a.width=b+(E?0:p+_));var x=t(r.height);return x!==!1&&(a.height=x+(E?0:g+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(g+z),a.outerWidth=a.width+y,a.outerHeight=a.height+v,a}}var s,a="undefined"==typeof console?e:function(t){console.error(t)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],u=h.length,d=!1;return r}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;i<e.length;i++){var n=e[i],o=n+"MatchesSelector";if(t[o])return o}}();return function(e,i){return e[t](i)}}),function(t,e){"function"==typeof define&&define.amd?define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("desandro-matches-selector")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e};var n=Array.prototype.slice;i.makeArray=function(t){if(Array.isArray(t))return t;if(null===t||void 0===t)return[];var e="object"==typeof t&&"number"==typeof t.length;return e?n.call(t):[t]},i.removeFrom=function(t,e){var i=t.indexOf(e);-1!=i&&t.splice(i,1)},i.getParent=function(t,i){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return"string"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,n){t=i.makeArray(t);var o=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!n)return void o.push(t);e(t,n)&&o.push(t);for(var i=t.querySelectorAll(n),r=0;r<i.length;r++)o.push(i[r])}}),o},i.debounceMethod=function(t,e,i){i=i||100;var n=t.prototype[e],o=e+"Timeout";t.prototype[e]=function(){var t=this[o];clearTimeout(t);var e=arguments,r=this;this[o]=setTimeout(function(){n.apply(r,e),delete r[o]},i)}},i.docReady=function(t){var e=document.readyState;"complete"==e||"interactive"==e?setTimeout(t):document.addEventListener("DOMContentLoaded",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+"-"+i}).toLowerCase()};var o=t.console;return i.htmlInit=function(e,n){i.docReady(function(){var r=i.toDashed(n),s="data-"+r,a=document.querySelectorAll("["+s+"]"),h=document.querySelectorAll(".js-"+r),u=i.makeArray(a).concat(i.makeArray(h)),d=s+"-options",l=t.jQuery;u.forEach(function(t){var i,r=t.getAttribute(s)||t.getAttribute(d);try{i=r&&JSON.parse(r)}catch(a){return void(o&&o.error("Error parsing "+s+" on "+t.className+": "+a))}var h=new e(t,i);l&&l.data(t,n,h)})})},i}),function(t,e){"function"==typeof define&&define.amd?define("outlayer/item",["ev-emitter/ev-emitter","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("ev-emitter"),require("get-size")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){"use strict";function i(t){for(var e in t)return!1;return e=null,!0}function n(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function o(t){return t.replace(/([A-Z])/g,function(t){return"-"+t.toLowerCase()})}var r=document.documentElement.style,s="string"==typeof r.transition?"transition":"WebkitTransition",a="string"==typeof r.transform?"transform":"WebkitTransform",h={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[s],u={transform:a,transition:s,transitionDuration:s+"Duration",transitionProperty:s+"Property",transitionDelay:s+"Delay"},d=n.prototype=Object.create(t.prototype);d.constructor=n,d._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},d.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},d.getSize=function(){this.size=e(this.element)},d.css=function(t){var e=this.element.style;for(var i in t){var n=u[i]||i;e[n]=t[i]}},d.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption("originLeft"),i=this.layout._getOption("originTop"),n=t[e?"left":"right"],o=t[i?"top":"bottom"],r=parseFloat(n),s=parseFloat(o),a=this.layout.size;-1!=n.indexOf("%")&&(r=r/100*a.width),-1!=o.indexOf("%")&&(s=s/100*a.height),r=isNaN(r)?0:r,s=isNaN(s)?0:s,r-=e?a.paddingLeft:a.paddingRight,s-=i?a.paddingTop:a.paddingBottom,this.position.x=r,this.position.y=s},d.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop"),o=i?"paddingLeft":"paddingRight",r=i?"left":"right",s=i?"right":"left",a=this.position.x+t[o];e[r]=this.getXValue(a),e[s]="";var h=n?"paddingTop":"paddingBottom",u=n?"top":"bottom",d=n?"bottom":"top",l=this.position.y+t[h];e[u]=this.getYValue(l),e[d]="",this.css(e),this.emitEvent("layout",[this])},d.getXValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+"%":t+"px"},d.getYValue=function(t){var e=this.layout._getOption("horizontal");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+"%":t+"px"},d._transitionTo=function(t,e){this.getPosition();var i=this.position.x,n=this.position.y,o=t==this.position.x&&e==this.position.y;if(this.setPosition(t,e),o&&!this.isTransitioning)return void this.layoutPosition();var r=t-i,s=e-n,a={};a.transform=this.getTranslate(r,s),this.transition({to:a,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},d.getTranslate=function(t,e){var i=this.layout._getOption("originLeft"),n=this.layout._getOption("originTop");return t=i?t:-t,e=n?e:-e,"translate3d("+t+"px, "+e+"px, 0)"},d.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},d.moveTo=d._transitionTo,d.setPosition=function(t,e){this.position.x=parseFloat(t),this.position.y=parseFloat(e)},d._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},d.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var n=this.element.offsetHeight;n=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var l="opacity,"+o(a);d.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t="number"==typeof t?t+"ms":t,this.css({transitionProperty:l,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(h,this,!1)}},d.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},d.onotransitionend=function(t){this.ontransitionend(t)};var c={"-webkit-transform":"transform"};d.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,n=c[t.propertyName]||t.propertyName;if(delete e.ingProperties[n],i(e.ingProperties)&&this.disableTransition(),n in e.clean&&(this.element.style[t.propertyName]="",delete e.clean[n]),n in e.onEnd){var o=e.onEnd[n];o.call(this),delete e.onEnd[n]}this.emitEvent("transitionEnd",[this])}},d.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(h,this,!1),this.isTransitioning=!1},d._removeStyles=function(t){var e={};for(var i in t)e[i]="";this.css(e)};var f={transitionProperty:"",transitionDuration:"",transitionDelay:""};return d.removeTransitionStyles=function(){this.css(f)},d.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+"ms"},d.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:""}),this.emitEvent("remove",[this])},d.remove=function(){return s&&parseFloat(this.layout.options.transitionDuration)?(this.once("transitionEnd",function(){this.removeElem()}),void this.hide()):void this.removeElem()},d.reveal=function(){delete this.isHidden,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("visibleStyle");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},d.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent("reveal")},d.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return"opacity";for(var i in e)return i},d.hide=function(){this.isHidden=!0,this.css({display:""});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty("hiddenStyle");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},d.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:"none"}),this.emitEvent("hide"))},d.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},n}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("outlayer/outlayer",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./item"],function(i,n,o,r){return e(t,i,n,o,r)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./item")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,n,o){"use strict";function r(t,e){var i=n.getQueryElement(t);if(!i)return void(h&&h.error("Bad element for "+this.constructor.namespace+": "+(i||t)));this.element=i,u&&(this.$element=u(this.element)),this.options=n.extend({},this.constructor.defaults),this.option(e);var o=++l;this.element.outlayerGUID=o,c[o]=this,this._create();var r=this._getOption("initLayout");r&&this.layout()}function s(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if("number"==typeof t)return t;var e=t.match(/(^\d*\.?\d*)(\w*)/),i=e&&e[1],n=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var o=m[n]||1;return i*o}var h=t.console,u=t.jQuery,d=function(){},l=0,c={};r.namespace="outlayer",r.Item=o,r.defaults={containerStyle:{position:"relative"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}};var f=r.prototype;n.extend(f,e.prototype),f.option=function(t){n.extend(this.options,t)},f._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},r.compatOptions={initLayout:"isInitLayout",horizontal:"isHorizontal",layoutInstant:"isLayoutInstant",originLeft:"isOriginLeft",originTop:"isOriginTop",resize:"isResizeBound",resizeContainer:"isResizingContainer"},f._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),n.extend(this.element.style,this.options.containerStyle);var t=this._getOption("resize");t&&this.bindResize()},f.reloadItems=function(){this.items=this._itemize(this.element.children)},f._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,n=[],o=0;o<e.length;o++){var r=e[o],s=new i(r,this);n.push(s)}return n},f._filterFindItemElements=function(t){return n.filterFindElements(t,this.options.itemSelector)},f.getItemElements=function(){return this.items.map(function(t){return t.element})},f.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption("layoutInstant"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},f._init=f.layout,f._resetLayout=function(){this.getSize()},f.getSize=function(){this.size=i(this.element)},f._getMeasurement=function(t,e){var n,o=this.options[t];o?("string"==typeof o?n=this.element.querySelector(o):o instanceof HTMLElement&&(n=o),this[t]=n?i(n)[e]:o):this[t]=0},f.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},f._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},f._layoutItems=function(t,e){if(this._emitCompleteOnItems("layout",t),t&&t.length){var i=[];t.forEach(function(t){var n=this._getItemLayoutPosition(t);n.item=t,n.isInstant=e||t.isLayoutInstant,i.push(n)},this),this._processLayoutQueue(i)}},f._getItemLayoutPosition=function(){return{x:0,y:0}},f._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},f.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},f._positionItem=function(t,e,i,n,o){n?t.goTo(e,i):(t.stagger(o*this.stagger),t.moveTo(e,i))},f._postLayout=function(){this.resizeContainer()},f.resizeContainer=function(){var t=this._getOption("resizeContainer");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},f._getContainerSize=d,f._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?"width":"height"]=t+"px"}},f._emitCompleteOnItems=function(t,e){function i(){o.dispatchEvent(t+"Complete",null,[e])}function n(){s++,s==r&&i()}var o=this,r=e.length;if(!e||!r)return void i();var s=0;e.forEach(function(e){e.once(t,n)})},f.dispatchEvent=function(t,e,i){var n=e?[e].concat(i):i;if(this.emitEvent(t,n),u)if(this.$element=this.$element||u(this.element),e){var o=u.Event(e);o.type=t,this.$element.trigger(o,i)}else this.$element.trigger(t,i)},f.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},f.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},f.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},f.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){n.removeFrom(this.stamps,t),this.unignore(t)},this)},f._find=function(t){return t?("string"==typeof t&&(t=this.element.querySelectorAll(t)),t=n.makeArray(t)):void 0},f._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},f._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},f._manageStamp=d,f._getElementOffset=function(t){var e=t.getBoundingClientRect(),n=this._boundingRect,o=i(t),r={left:e.left-n.left-o.marginLeft,top:e.top-n.top-o.marginTop,right:n.right-e.right-o.marginRight,bottom:n.bottom-e.bottom-o.marginBottom};return r},f.handleEvent=n.handleEvent,f.bindResize=function(){t.addEventListener("resize",this),this.isResizeBound=!0},f.unbindResize=function(){t.removeEventListener("resize",this),this.isResizeBound=!1},f.onresize=function(){this.resize()},n.debounceMethod(r,"onresize",100),f.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},f.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},f.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},f.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},f.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},f.reveal=function(t){if(this._emitCompleteOnItems("reveal",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},f.hide=function(t){if(this._emitCompleteOnItems("hide",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},f.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},f.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},f.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},f.getItems=function(t){t=n.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},f.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems("remove",e),e&&e.length&&e.forEach(function(t){t.remove(),n.removeFrom(this.items,t)},this)},f.destroy=function(){var t=this.element.style;t.height="",t.position="",t.width="",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete c[e],delete this.element.outlayerGUID,u&&u.removeData(this.element,this.constructor.namespace)},r.data=function(t){t=n.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&c[e]},r.create=function(t,e){var i=s(r);return i.defaults=n.extend({},r.defaults),n.extend(i.defaults,e),i.compatOptions=n.extend({},r.compatOptions),i.namespace=t,i.data=r.data,i.Item=s(o),n.htmlInit(i,t),u&&u.bridget&&u.bridget(t,i),i};var m={ms:1,s:1e3};return r.Item=o,r}),function(t,e){"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size"],e):"object"==typeof module&&module.exports?module.exports=e(require("outlayer"),require("get-size")):t.Masonry=e(t.Outlayer,t.getSize)}(window,function(t,e){var i=t.create("masonry");i.compatOptions.fitWidth="isFitWidth";var n=i.prototype;return n._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},n.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}var n=this.columnWidth+=this.gutter,o=this.containerWidth+this.gutter,r=o/n,s=n-o%n,a=s&&1>s?"round":"floor";r=Math[a](r),this.cols=Math.max(r,1)},n.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,n=e(i);this.containerWidth=n&&n.innerWidth},n._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&1>e?"round":"ceil",n=Math[i](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var o=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",r=this[o](n,t),s={x:this.columnWidth*r.col,y:r.y},a=r.y+t.size.outerHeight,h=n+r.col,u=r.col;h>u;u++)this.colYs[u]=a;return s},n._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},n._getTopColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,n=0;i>n;n++)e[n]=this._getColGroupY(n,t);return e},n._getColGroupY=function(t,e){if(2>e)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},n._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,n=t>1&&i+t>this.cols;i=n?0:i;var o=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=o?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},n._manageStamp=function(t){var i=e(t),n=this._getElementOffset(t),o=this._getOption("originLeft"),r=o?n.left:n.right,s=r+i.outerWidth,a=Math.floor(r/this.columnWidth);a=Math.max(0,a);var h=Math.floor(s/this.columnWidth);h-=s%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var u=this._getOption("originTop"),d=(u?n.top:n.bottom)+i.outerHeight,l=a;h>=l;l++)this.colYs[l]=Math.max(d,this.colYs[l])},n._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},n._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},n.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i});
!function(a){"use strict";var b=a.Masonry;b.prototype._remapV2Options=function(){this._remapOption("gutterWidth","gutter"),this._remapOption("isResizable","isResizeBound"),this._remapOption("isRTL","isOriginLeft",function(a){return!a});var a=this.options.isAnimated;if(void 0!==a&&(this.options.transitionDuration=a?this.options.transitionDuration:0),void 0===a||a){var b=this.options.animationOptions,c=b&&b.duration;c&&(this.options.transitionDuration="string"==typeof c?c:c+"ms")}},b.prototype._remapOption=function(a,b,c){var d=this.options[a];void 0!==d&&(this.options[b]=c?c(d):d)};var c=b.prototype._create;b.prototype._create=function(){var a=this;this._remapV2Options(),c.apply(this,arguments),setTimeout(function(){jQuery(a.element).addClass("masonry")},0)};var d=b.prototype.layout;b.prototype.layout=function(){this._remapV2Options(),d.apply(this,arguments)};var e=b.prototype.option;b.prototype.option=function(){e.apply(this,arguments),this._remapV2Options()};var f=b.prototype._itemize;b.prototype._itemize=function(a){var b=f.apply(this,arguments);return jQuery(a).addClass("masonry-brick"),b};var g=b.prototype.measureColumns;b.prototype.measureColumns=function(){var a=this.options.columnWidth;a&&"function"==typeof a&&(this.getContainerWidth(),this.columnWidth=a(this.containerWidth)),g.apply(this,arguments)},b.prototype.reload=function(){this.reloadItems.apply(this,arguments),this.layout.apply(this)};var h=b.prototype.destroy;b.prototype.destroy=function(){var a=this.getItemElements();jQuery(this.element).removeClass("masonry"),jQuery(a).removeClass("masonry-brick"),h.apply(this,arguments)}}(window);
! function(e, t){
"object"==typeof exports&&"object"==typeof module ? module.exports=t():"function"==typeof define&&define.amd ? define([], t):"object"==typeof exports ? exports.AOS=t():e.AOS=t()
}(this, function(){
return function(e){
function t(o){
if(n[o]) return n[o].exports;
var i=n[o]={
exports: {},
id: o,
loaded: !1
};
return e[o].call(i.exports, i, i.exports, t), i.loaded = !0, i.exports
}
var n={};
return t.m=e, t.c=n, t.p="dist/", t(0)
}([function(e, t, n){
"use strict";
function o(e){
return e&&e.__esModule ? e:{
default: e
}}
var i=Object.assign||function(e){
for (var t=1; t < arguments.length; t++){
var n=arguments[t];
for (var o in n) Object.prototype.hasOwnProperty.call(n, o)&&(e[o]=n[o])
}
return e
},
r=n(1),
a=(o(r), n(6)),
u=o(a),
c=n(7),
f=o(c),
s=n(8),
d=o(s),
l=n(9),
p=o(l),
m=n(10),
b=o(m),
v=n(11),
y=o(v),
g=n(14),
h=o(g),
w=[],
k = !1,
x={
offset: 120,
delay: 0,
easing: "ease",
duration: 400,
disable: !1,
once: !1,
startEvent: "DOMContentLoaded",
throttleDelay: 99,
debounceDelay: 50,
disableMutationObserver: !1
},
j=function(){
var e=arguments.length > 0&&void 0!==arguments[0]&&arguments[0];
if(e&&(k = !0), k) return w=(0, y.default)(w, x), (0, b.default)(w, x.once), w
},
O=function(){
w=(0, h.default)(), j()
},
_=function(){
w.forEach(function(e, t){
e.node.removeAttribute("data-aos"), e.node.removeAttribute("data-aos-easing"), e.node.removeAttribute("data-aos-duration"), e.node.removeAttribute("data-aos-delay")
})
},
S=function(e){
return e===!0||"mobile"===e&&p.default.mobile()||"phone"===e&&p.default.phone()||"tablet"===e&&p.default.tablet()||"function"==typeof e&&e()===!0
},
z=function(e){
x=i(x, e), w=(0, h.default)();
var t=document.all&&!window.atob;
return S(x.disable)||t ? _():(document.querySelector("body").setAttribute("data-aos-easing", x.easing), document.querySelector("body").setAttribute("data-aos-duration", x.duration), document.querySelector("body").setAttribute("data-aos-delay", x.delay), "DOMContentLoaded"===x.startEvent&&["complete", "interactive"].indexOf(document.readyState) > -1 ? j(!0):"load"===x.startEvent ? window.addEventListener(x.startEvent, function(){
j(!0)
}):document.addEventListener(x.startEvent, function(){
j(!0)
}), window.addEventListener("resize", (0, f.default)(j, x.debounceDelay, !0)), window.addEventListener("orientationchange", (0, f.default)(j, x.debounceDelay, !0)), window.addEventListener("scroll", (0, u.default)(function(){
(0, b.default)(w, x.once)
}, x.throttleDelay)), x.disableMutationObserver||(0, d.default)("[data-aos]", O), w)
};
e.exports={
init: z,
refresh: j,
refreshHard: O
}}, function(e, t){}, , , , , function(e, t){
(function(t){
"use strict";
function n(e, t, n){
function o(t){
var n=b,
o=v;
return b=v = void 0, k=t, g=e.apply(o, n)
}
function r(e){
return k=e, h=setTimeout(s, t), _ ? o(e):g
}
function a(e){
var n=e - w,
o=e - k,
i=t - n;
return S ? j(i, y - o):i
}
function c(e){
var n=e - w,
o=e - k;
return void 0===w||n >=t||n < 0||S&&o >=y
}
function s(){
var e=O();
return c(e) ? d(e):void(h=setTimeout(s, a(e)))
}
function d(e){
return h=void 0, z&&b ? o(e):(b=v = void 0, g)
}
function l(){
void 0!==h&&clearTimeout(h), k=0, b=w = v=h = void 0
}
function p(){
return void 0===h ? g:d(O())
}
function m(){
var e=O(),
n=c(e);
if(b=arguments, v=this, w=e, n){
if(void 0===h) return r(w);
if(S) return h=setTimeout(s, t), o(w)
}
return void 0===h&&(h=setTimeout(s, t)), g
}
var b, v, y, g, h, w, k=0,
_ = !1,
S = !1,
z = !0;
if("function"!=typeof e) throw new TypeError(f);
return t=u(t)||0, i(n)&&(_ = !!n.leading, S="maxWait" in n, y=S ? x(u(n.maxWait)||0, t):y, z="trailing" in n ? !!n.trailing:z), m.cancel=l, m.flush=p, m
}
function o(e, t, o){
var r = !0,
a = !0;
if("function"!=typeof e) throw new TypeError(f);
return i(o)&&(r="leading" in o ? !!o.leading:r, a="trailing" in o ? !!o.trailing:a), n(e, t, {
leading: r,
maxWait: t,
trailing: a
})
}
function i(e){
var t="undefined"==typeof e ? "undefined":c(e);
return !!e&&("object"==t||"function"==t)
}
function r(e){
return !!e&&"object"==("undefined"==typeof e ? "undefined":c(e))
}
function a(e){
return "symbol"==("undefined"==typeof e ? "undefined":c(e))||r(e)&&k.call(e)==d
}
function u(e){
if("number"==typeof e) return e;
if(a(e)) return s;
if(i(e)){
var t="function"==typeof e.valueOf ? e.valueOf():e;
e=i(t) ? t + "":t
}
if("string"!=typeof e) return 0===e ? e:+e;
e=e.replace(l, "");
var n=m.test(e);
return n||b.test(e) ? v(e.slice(2), n ? 2:8):p.test(e) ? s:+e
}
var c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator ? function(e){
return typeof e
}:function(e){
return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype ? "symbol":typeof e
},
f="Expected a function",
s=NaN,
d="[object Symbol]",
l=/^\s+|\s+$/g,
p=/^[-+]0x[0-9a-f]+$/i,
m=/^0b[01]+$/i,
b=/^0o[0-7]+$/i,
v=parseInt,
y="object"==("undefined"==typeof t ? "undefined":c(t))&&t && t.Object===Object&&t,
g="object"==("undefined"==typeof self ? "undefined":c(self))&&self&&self.Object===Object&&self,
h=y||g || Function("return this")(),
w=Object.prototype,
k=w.toString,
x=Math.max,
j=Math.min,
O=function(){
return h.Date.now()
};
e.exports=o
}).call(t, function(){
return this
}())
}, function(e, t){
(function(t){
"use strict";
function n(e, t, n){
function i(t){
var n=b,
o=v;
return b=v = void 0, O=t, g=e.apply(o, n)
}
function r(e){
return O=e, h=setTimeout(s, t), _ ? i(e):g
}
function u(e){
var n=e - w,
o=e - O,
i=t - n;
return S ? x(i, y - o):i
}
function f(e){
var n=e - w,
o=e - O;
return void 0===w||n >=t||n < 0||S&&o >=y
}
function s(){
var e=j();
return f(e) ? d(e):void(h=setTimeout(s, u(e)))
}
function d(e){
return h=void 0, z&&b ? i(e):(b=v = void 0, g)
}
function l(){
void 0!==h&&clearTimeout(h), O=0, b=w = v=h = void 0
}
function p(){
return void 0===h ? g:d(j())
}
function m(){
var e=j(),
n=f(e);
if(b=arguments, v=this, w=e, n){
if(void 0===h) return r(w);
if(S) return h=setTimeout(s, t), i(w)
}
return void 0===h&&(h=setTimeout(s, t)), g
}
var b, v, y, g, h, w, O=0,
_ = !1,
S = !1,
z = !0;
if("function"!=typeof e) throw new TypeError(c);
return t=a(t)||0, o(n)&&(_ = !!n.leading, S="maxWait" in n, y=S ? k(a(n.maxWait)||0, t):y, z="trailing" in n ? !!n.trailing:z), m.cancel=l, m.flush=p, m
}
function o(e){
var t="undefined"==typeof e ? "undefined":u(e);
return !!e&&("object"==t||"function"==t)
}
function i(e){
return !!e&&"object"==("undefined"==typeof e ? "undefined":u(e))
}
function r(e){
return "symbol"==("undefined"==typeof e ? "undefined":u(e))||i(e)&&w.call(e)==s
}
function a(e){
if("number"==typeof e) return e;
if(r(e)) return f;
if(o(e)){
var t="function"==typeof e.valueOf ? e.valueOf():e;
e=o(t) ? t + "":t
}
if("string"!=typeof e) return 0===e ? e:+e;
e=e.replace(d, "");
var n=p.test(e);
return n||m.test(e) ? b(e.slice(2), n ? 2:8):l.test(e) ? f:+e
}
var u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator ? function(e){
return typeof e
}:function(e){
return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype ? "symbol":typeof e
},
c="Expected a function",
f=NaN,
s="[object Symbol]",
d=/^\s+|\s+$/g,
l=/^[-+]0x[0-9a-f]+$/i,
p=/^0b[01]+$/i,
m=/^0o[0-7]+$/i,
b=parseInt,
v="object"==("undefined"==typeof t ? "undefined":u(t))&&t && t.Object===Object&&t,
y="object"==("undefined"==typeof self ? "undefined":u(self))&&self&&self.Object===Object&&self,
g=v||y || Function("return this")(),
h=Object.prototype,
w=h.toString,
k=Math.max,
x=Math.min,
j=function(){
return g.Date.now()
};
e.exports=n
}).call(t, function(){
return this
}())
}, function(e, t){
"use strict";
function n(e, t){
var n=window.document,
r=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver,
a=new r(o);
i=t, a.observe(n.documentElement, {
childList: !0,
subtree: !0,
removedNodes: !0
})
}
function o(e){
e&&e.forEach(function(e){
var t=Array.prototype.slice.call(e.addedNodes),
n=Array.prototype.slice.call(e.removedNodes),
o=t.concat(n).filter(function(e){
return e.hasAttribute&&e.hasAttribute("data-aos")
}).length;
o&&i()
})
}
Object.defineProperty(t, "__esModule", {
value: !0
});
var i=function(){};
t.default=n
}, function(e, t){
"use strict";
function n(e, t){
if(!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
function o(){
return navigator.userAgent||navigator.vendor||window.opera||""
}
Object.defineProperty(t, "__esModule", {
value: !0
});
var i=function(){
function e(e, t){
for (var n=0; n < t.length; n++){
var o=t[n];
o.enumerable=o.enumerable||!1, o.configurable = !0, "value" in o&&(o.writable = !0), Object.defineProperty(e, o.key, o)
}}
return function(t, n, o){
return n&&e(t.prototype, n), o&&e(t, o), t
}}(),
r=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm(os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,
a=/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s)|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp(i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac(|\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt(|\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg(g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v)|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v)|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-|)|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i,
u=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm(os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i,
c=/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s)|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp(i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac(|\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt(|\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg(g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v)|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v)|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-|)|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i,
f=function(){
function e(){
n(this, e)
}
return i(e, [{
key: "phone",
value: function(){
var e=o();
return !(!r.test(e)&&!a.test(e.substr(0, 4)))
}}, {
key: "mobile",
value: function(){
var e=o();
return !(!u.test(e)&&!c.test(e.substr(0, 4)))
}}, {
key: "tablet",
value: function(){
return this.mobile()&&!this.phone()
}}]), e
}();
t.default=new f
}, function(e, t){
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var n=function(e, t, n){
var o=e.node.getAttribute("data-aos-once");
t > e.position ? e.node.classList.add("aos-animate"):"undefined"!=typeof o&&("false"===o||!n&&"true"!==o)&&e.node.classList.remove("aos-animate")
},
o=function(e, t){
var o=window.pageYOffset,
i=window.innerHeight;
e.forEach(function(e, r){
n(e, i + o, t)
})
};
t.default=o
}, function(e, t, n){
"use strict";
function o(e){
return e&&e.__esModule ? e:{
default: e
}}
Object.defineProperty(t, "__esModule", {
value: !0
});
var i=n(12),
r=o(i),
a=function(e, t){
return e.forEach(function(e, n){
e.node.classList.add("aos-init"), e.position=(0, r.default)(e.node, t.offset)
}), e
};
t.default=a
}, function(e, t, n){
"use strict";
function o(e){
return e&&e.__esModule ? e:{
default: e
}}
Object.defineProperty(t, "__esModule", {
value: !0
});
var i=n(13),
r=o(i),
a=function(e, t){
var n=0,
o=0,
i=window.innerHeight,
a={
offset: e.getAttribute("data-aos-offset"),
anchor: e.getAttribute("data-aos-anchor"),
anchorPlacement: e.getAttribute("data-aos-anchor-placement")
};
switch (a.offset&&!isNaN(a.offset)&&(o=parseInt(a.offset)), a.anchor&&document.querySelectorAll(a.anchor)&&(e=document.querySelectorAll(a.anchor)[0]), n=(0, r.default)(e).top, a.anchorPlacement){
case "top-bottom":
break;
case "center-bottom":
n +=e.offsetHeight / 2;
break;
case "bottom-bottom":
n +=e.offsetHeight;
break;
case "top-center":
n +=i / 2;
break;
case "bottom-center":
n +=i / 2 + e.offsetHeight;
break;
case "center-center":
n +=i / 2 + e.offsetHeight / 2;
break;
case "top-top":
n +=i;
break;
case "bottom-top":
n +=e.offsetHeight + i;
break;
case "center-top":
n +=e.offsetHeight / 2 + i
}
return a.anchorPlacement||a.offset||isNaN(t)||(o=t), n + o
};
t.default=a
}, function(e, t){
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var n=function(e){
for (var t=0, n=0; e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);) t +=e.offsetLeft - ("BODY"!=e.tagName ? e.scrollLeft:0), n +=e.offsetTop - ("BODY"!=e.tagName ? e.scrollTop:0), e=e.offsetParent;
return {
top: n,
left: t
}};
t.default=n
}, function(e, t){
"use strict";
Object.defineProperty(t, "__esModule", {
value: !0
});
var n=function(e){
return e=e||document.querySelectorAll("[data-aos]"), Array.prototype.map.call(e, function(e){
return {
node: e
}})
};
t.default=n
}])
});