/*!
  * Bootstrap util.js v4.3.1 (https://getbootstrap.com/)
  * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
  */
(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory(require('jquery')):typeof define==='function'&&define.amd?define(['jquery'],factory):(global=global||self,global.Util=factory(global.jQuery))}(this,function($){'use strict';$=$&&$.hasOwnProperty('default')?$['default']:$;var TRANSITION_END='transitionend';var MAX_UID=1000000;var MILLISECONDS_MULTIPLIER=1000;function toType(obj){return{}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase()}
function getSpecialTransitionEndEvent(){return{bindType:TRANSITION_END,delegateType:TRANSITION_END,handle:function handle(event){if($(event.target).is(this)){return event.handleObj.handler.apply(this,arguments)}
return undefined}}}
function transitionEndEmulator(duration){var _this=this;var called=!1;$(this).one(Util.TRANSITION_END,function(){called=!0});setTimeout(function(){if(!called){Util.triggerTransitionEnd(_this)}},duration);return this}
function setTransitionEndSupport(){$.fn.emulateTransitionEnd=transitionEndEmulator;$.event.special[Util.TRANSITION_END]=getSpecialTransitionEndEvent()}
var Util={TRANSITION_END:'bsTransitionEnd',getUID:function getUID(prefix){do{prefix+=~~(Math.random()*MAX_UID)}while(document.getElementById(prefix));return prefix},getSelectorFromElement:function getSelectorFromElement(element){var selector=element.getAttribute('data-target');if(!selector||selector==='#'){var hrefAttr=element.getAttribute('href');selector=hrefAttr&&hrefAttr!=='#'?hrefAttr.trim():''}
try{return document.querySelector(selector)?selector:null}catch(err){return null}},getTransitionDurationFromElement:function getTransitionDurationFromElement(element){if(!element){return 0}
var transitionDuration=$(element).css('transition-duration');var transitionDelay=$(element).css('transition-delay');var floatTransitionDuration=parseFloat(transitionDuration);var floatTransitionDelay=parseFloat(transitionDelay);if(!floatTransitionDuration&&!floatTransitionDelay){return 0}
transitionDuration=transitionDuration.split(',')[0];transitionDelay=transitionDelay.split(',')[0];return(parseFloat(transitionDuration)+parseFloat(transitionDelay))*MILLISECONDS_MULTIPLIER},reflow:function reflow(element){return element.offsetHeight},triggerTransitionEnd:function triggerTransitionEnd(element){$(element).trigger(TRANSITION_END)},supportsTransitionEnd:function supportsTransitionEnd(){return Boolean(TRANSITION_END)},isElement:function isElement(obj){return(obj[0]||obj).nodeType},typeCheckConfig:function typeCheckConfig(componentName,config,configTypes){for(var property in configTypes){if(Object.prototype.hasOwnProperty.call(configTypes,property)){var expectedTypes=configTypes[property];var value=config[property];var valueType=value&&Util.isElement(value)?'element':toType(value);if(!new RegExp(expectedTypes).test(valueType)){throw new Error(componentName.toUpperCase()+": "+("Option \""+property+"\" provided type \""+valueType+"\" ")+("but expected type \""+expectedTypes+"\"."))}}}},findShadowRoot:function findShadowRoot(element){if(!document.documentElement.attachShadow){return null}
if(typeof element.getRootNode==='function'){var root=element.getRootNode();return root instanceof ShadowRoot?root:null}
if(element instanceof ShadowRoot){return element}
if(!element.parentNode){return null}
return Util.findShadowRoot(element.parentNode)}};setTransitionEndSupport();return Util}))
;