{"version":3,"sources":["../bower_components/popper.js/dist/umd/popper.js","../bower_components/bootstrap-sass/assets/javascripts/bootstrap/transition.js","../bower_components/bootstrap-sass/assets/javascripts/bootstrap/alert.js","../bower_components/bootstrap-sass/assets/javascripts/bootstrap/button.js","../bower_components/bootstrap-sass/assets/javascripts/bootstrap/carousel.js","../bower_components/bootstrap-sass/assets/javascripts/bootstrap/collapse.js","../bower_components/bootstrap-sass/assets/javascripts/bootstrap/dropdown.js","../bower_components/bootstrap-sass/assets/javascripts/bootstrap/modal.js","../bower_components/bootstrap-sass/assets/javascripts/bootstrap/tooltip.js","../bower_components/bootstrap-sass/assets/javascripts/bootstrap/popover.js","../bower_components/bootstrap-sass/assets/javascripts/bootstrap/scrollspy.js","../bower_components/bootstrap-sass/assets/javascripts/bootstrap/tab.js","../bower_components/bootstrap-sass/assets/javascripts/bootstrap/affix.js","../bower_components/ekko-lightbox/dist/ekko-lightbox.js","../assets/scripts/main.js"],"names":["global","factory","exports","module","define","amd","Popper","this","microtaskDebounce","fn","scheduled","i","elem","document","createElement","observer","MutationObserver","observe","attributes","setAttribute","taskDebounce","setTimeout","timeoutDuration","isFunction","functionToCheck","getType","toString","call","getStyleComputedProperty","element","property","nodeType","css","window","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","indexOf","body","_getStyleComputedProp","overflow","overflowX","overflowY","test","getOffsetParent","offsetParent","documentElement","isOffsetContainer","firstElementChild","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","element1root","getScroll","side","arguments","length","undefined","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","top","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","split","getSize","computedStyle","Math","max","isIE10$1","getWindowSizes","height","width","getClientRect","offsets","_extends","getBoundingClientRect","err","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","isIE10","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","relativeOffset","innerWidth","innerHeight","offset","isFixed","getBoundaries","popper","reference","padding","boundariesElement","boundaries","boundariesNode","_getWindowSizes","getArea","_ref","computeAutoPlacement","placement","refRect","rects","sortedAreas","Object","keys","map","key","area","sort","a","b","filteredAreas","filter","_ref2","computedPlacement","variation","getReferenceOffsets","state","commonOffsetParent","getOuterSizes","x","parseFloat","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","prototype","findIndex","prop","value","cur","match","obj","runModifiers","modifiers","data","ends","modifiersToRun","slice","forEach","console","warn","enabled","update","isDestroyed","instance","arrowStyles","flipped","options","flip","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","style","destroy","removeAttribute","disableEventListeners","removeOnDestroy","removeChild","attachToScrollParents","event","callback","scrollParents","isBody","target","addEventListener","passive","push","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","removeEventListeners","removeEventListener","cancelAnimationFrame","isNumeric","n","isNaN","isFinite","setStyles","unit","setAttributes","applyStyle","arrowElement","applyStyleOnLoad","modifierOptions","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","floor","prefixedProperty","willChange","invertTop","invertLeft","x-placement","arrow","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","querySelector","_data$offsets","isVertical","len","sideCapitalized","toLowerCase","altSide","opSide","arrowElementSize","center","popperMarginSide","sideValue","min","round","getOppositeVariation","clockwise","counter","index","validPlacements","concat","reverse","placementOpposite","flipOrder","behavior","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","keepTogether","toValue","str","size","parseOffset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","index2","preventOverflow","priority","primary","escapeWithReference","defineProperty","secondary","shift","shiftvariation","shiftOffsets","hide","bound","inner","subtractLength","nativeHints","isNative","hint","isBrowser","longerTimeoutBrowsers","navigator","userAgent","supportsNativeMutationObserver","debounce","appVersion","classCallCheck","Constructor","TypeError","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","protoProps","staticProps","assign","source","hasOwnProperty","placements","onLoad","Defaults","_this","requestAnimationFrame","bind","jquery","Utils","PopperUtils","$","transitionEnd","el","transEndEventNames","WebkitTransition","MozTransition","OTransition","transition","emulateTransitionEnd","duration","called","$el","one","trigger","support","special","bsTransitionEnd","bindType","delegateType","handle","e","is","handleObj","handler","apply","jQuery","Plugin","option","each","$this","Alert","dismiss","on","close","VERSION","TRANSITION_DURATION","removeElement","$parent","detach","remove","selector","attr","preventDefault","closest","Event","isDefaultPrevented","removeClass","hasClass","old","alert","noConflict","Button","toggle","setState","$element","extend","DEFAULTS","isLoading","loadingText","d","val","resetText","proxy","addClass","removeAttr","changed","$input","toggleClass","button","$btn","first","type","Carousel","action","slide","to","interval","pause","cycle","$indicators","paused","sliding","$active","$items","keyboard","keydown","wrap","tagName","which","prev","next","clearInterval","setInterval","getItemIndex","item","getItemForDirection","direction","active","activeIndex","willWrap","delta","itemIndex","eq","pos","that","$next","isCycling","relatedTarget","slideEvent","$nextIndicator","slidEvent","join","carousel","clickHandler","href","$target","slideIndex","$carousel","getTargetFromTrigger","$trigger","Collapse","id","transitioning","getParent","addAriaAndCollapsedClass","dimension","hasWidth","show","activesData","actives","startEvent","complete","scrollSize","camelCase","isOpen","collapse","clearMenus","backdrop","Dropdown","isActive","insertAfter","stopPropagation","desc","dropdown","_relatedTarget","Modal","$body","$dialog","$backdrop","isShown","originalBodyPad","scrollbarWidth","ignoreBackdropClick","remote","load","BACKDROP_TRANSITION_DURATION","checkScrollbar","setScrollbar","escape","resize","appendTo","adjustDialog","enforceFocus","off","hideModal","has","handleUpdate","resetAdjustments","resetScrollbar","removeBackdrop","animate","doAnimate","currentTarget","focus","callbackRemove","modalIsOverflowing","scrollHeight","paddingLeft","bodyIsOverflowing","paddingRight","fullWindowWidth","documentElementRect","abs","measureScrollbar","bodyPad","parseInt","scrollDiv","className","append","modal","showEvent","Tooltip","timeout","hoverState","inState","init","animation","template","title","delay","container","viewport","getOptions","$viewport","click","hover","constructor","Error","triggers","eventIn","eventOut","enter","leave","_options","fixTitle","getDefaults","getDelegateOptions","defaults","self","tip","clearTimeout","isInStateTrue","hasContent","inDom","ownerDocument","$tip","tipId","getUID","setContent","autoToken","autoPlace","display","getPosition","actualWidth","actualHeight","orgPlacement","viewportDim","calculatedOffset","getCalculatedOffset","applyPlacement","prevHoverState","setOffset","using","getViewportAdjustedDelta","arrowDelta","arrowOffsetPosition","replaceArrow","getTitle","$e","elRect","isSvg","SVGElement","elOffset","scroll","outerDims","viewportPadding","viewportDimensions","topEdgeOffset","bottomEdgeOffset","leftEdgeOffset","rightEdgeOffset","o","random","getElementById","$arrow","enable","disable","toggleEnabled","removeData","tooltip","Popover","content","getContent","popover","ScrollSpy","$scrollElement","targets","activeTarget","process","refresh","getScrollHeight","offsetMethod","offsetBase","isWindow","$href","maxScroll","activate","clear","parents","parentsUntil","scrollspy","$spy","Tab","$ul","$previous","hideEvent","tab","Affix","checkPosition","checkPositionWithEventLoop","affixed","unpin","pinnedOffset","RESET","getState","offsetTop","offsetBottom","targetHeight","initializing","colliderTop","colliderHeight","getPinnedOffset","affix","affixType","_classCallCheck","_createClass","NAME","JQUERY_NO_CONFLICT","Default","footer","showArrows","wrapping","alwaysShowClose","loadingMessage","leftArrow","rightArrow","strings","fail","doc","onShow","onShown","onHide","onHidden","onNavigate","onContentLoaded","Lightbox","config","_config","_$modalArrows","_galleryIndex","_galleryName","_padding","_border","_titleIsShown","_footerIsShown","_wantedWidth","_wantedHeight","_touchstartX","_touchendX","_modalId","_$element","_isBootstrap3","h4","btn","header","dialog","_$modal","_$modalDialog","_$modalContent","_$modalBody","_$modalHeader","_$modalFooter","_$lightboxContainer","_$lightboxBodyOne","_$lightboxBodyTwo","_calculateBorders","_calculatePadding","_$galleryItems","_navigationalBinder","navigateLeft","navigateRight","updateNavigation","_toggleLoading","_handle","_resize","changedTouches","screenX","_swipeGesure","get","navigateTo","$nav","keyCode","src","_isImage","_getYoutubeId","_getVimeoId","_getInstagramId","string","_this2","$toUse","$current","empty","_containerToUse","_updateTitleAndFooter","currentRemote","currentType","_detectRemoteType","_error","_preloadImage","_preloadImageByIndex","_showYoutubeVideo","_showVimeoVideo","_showInstagramVideo","_showHtml5Video","_loadRemoteContent","matches","_totalCssByAttribute","attribute","caption","$containerForElement","query","substr","_showVideoIframe","url","_this3","disableExternalCheck","_isExternal","location","protocol","RegExp","http:","https:","message","error","startIndex","numberOfTimes","$containerForImage","_this4","img","Image","loadingTimeout","onload","image","onerror","widthBorderAndPadding","maxWidth","headerHeight","footerHeight","outerHeight","borderPadding","margins","maxHeight","factor","ceil","_handleUpdate","Exception","_this5","_jQueryInterface","Sage","common","setBackgroundSize","content_height","correct_height","setCurrentLevelTitle","currentLevel","$levelBlock","resetQuiz","game","stop","text","getQuestion","quiz_id","quiz_number","ajax","ajaxurl","dataType","level","beforeSend","success","json","question","additional_information","answer_1","answer_2","answer_3","answer_4","textLength1","fontSize1","font-size","textLength2","fontSize2","textLength3","fontSize3","textLength4","fontSize4","opacity","setCompletionLevel","validateAnswer","quiz_answer","z-index","c","correct","answer","next_quiz_id","next_quiz_number","cor","inc","quiz_correct_value","tot","total_levels","loadLevel","quiz_numbers_html","quiz_form_html","resizeFrontPageBlock","$frontPageBlock","$cW","$cH","$nW","$nH","ekkoLightbox","finalize","home","about_us","UTIL","fire","func","funcname","args","namespace","loadEvents","classnm","ready"],"mappings":"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","file":"main.js","sourcesContent":["/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.12.3\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.Popper = factory());\n}(this, (function () { 'use strict';\n\nvar nativeHints = ['native code', '[object MutationObserverConstructor]'];\n\n/**\n * Determine if a function is implemented natively (as opposed to a polyfill).\n * @method\n * @memberof Popper.Utils\n * @argument {Function | undefined} fn the function to check\n * @returns {Boolean}\n */\nvar isNative = (function (fn) {\n return nativeHints.some(function (hint) {\n return (fn || '').toString().indexOf(hint) > -1;\n });\n});\n\nvar isBrowser = typeof window !== 'undefined';\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var scheduled = false;\n var i = 0;\n var elem = document.createElement('span');\n\n // MutationObserver provides a mechanism for scheduling microtasks, which\n // are scheduled *before* the next task. This gives us a way to debounce\n // a function but ensure it's called *before* the next paint.\n var observer = new MutationObserver(function () {\n fn();\n scheduled = false;\n });\n\n observer.observe(elem, { attributes: true });\n\n return function () {\n if (!scheduled) {\n scheduled = true;\n elem.setAttribute('x-index', i);\n i = i + 1; // don't use compund (+=) because it doesn't get optimized in V8\n }\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\n// It's common for MutationObserver polyfills to be seen in the wild, however\n// these rely on Mutation Events which only occur when an element is connected\n// to the DOM. The algorithm used in this module does not use a connected element,\n// and so we must ensure that a *native* MutationObserver is available.\nvar supportsNativeMutationObserver = isBrowser && isNative(window.MutationObserver);\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsNativeMutationObserver ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element || ['HTML', 'BODY', '#document'].indexOf(element.nodeName) !== -1) {\n return window.document.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n // NOTE: 1 DOM access here\n var offsetParent = element && element.offsetParent;\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return window.document.documentElement;\n }\n\n // .offsetParent will return the closest TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return window.document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = window.document.documentElement;\n var scrollingElement = window.document.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return +styles['border' + sideA + 'Width'].split('px')[0] + +styles['border' + sideB + 'Width'].split('px')[0];\n}\n\n/**\n * Tells if you are running Internet Explorer 10\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean} isIE10\n */\nvar isIE10 = undefined;\n\nvar isIE10$1 = function () {\n if (isIE10 === undefined) {\n isIE10 = navigator.appVersion.indexOf('MSIE 10') !== -1;\n }\n return isIE10;\n};\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE10$1() ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n var body = window.document.body;\n var html = window.document.documentElement;\n var computedStyle = isIE10$1() && window.getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n if (isIE10$1()) {\n try {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } catch (err) {}\n } else {\n rect = element.getBoundingClientRect();\n }\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var isIE10 = isIE10$1();\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = +styles.borderTopWidth.split('px')[0];\n var borderLeftWidth = +styles.borderLeftWidth.split('px')[0];\n\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = +styles.marginTop.split('px')[0];\n var marginLeft = +styles.marginLeft.split('px')[0];\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var html = window.document.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = getScroll(html);\n var scrollLeft = getScroll(html, 'left');\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n // NOTE: 1 DOM access here\n var boundaries = { top: 0, left: 0 };\n var offsetParent = findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(popper));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = window.document.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = window.document.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n boundaries.left += padding;\n boundaries.top += padding;\n boundaries.right -= padding;\n boundaries.bottom -= padding;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var commonOffsetParent = findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier.function) {\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier.function || modifier.fn;\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n data.offsets.popper.position = 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length - 1; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof window.document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.left = '';\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? window : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n window.addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n window.removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger onUpdate callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n window.cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n // floor sides to avoid blurry text\n var offsets = {\n left: Math.floor(popper.left),\n top: Math.floor(popper.top),\n bottom: Math.floor(popper.bottom),\n right: Math.floor(popper.right)\n };\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n top = -offsetParentRect.height + offsets.bottom;\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n left = -offsetParentRect.width + offsets.right;\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjuction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var popperMarginSide = getStyleComputedProperty(data.instance.popper, 'margin' + sideCapitalized).replace('px', '');\n var sideValue = center - getClientRect(data.offsets.popper)[side] - popperMarginSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = {};\n data.offsets.arrow[side] = Math.round(sideValue);\n data.offsets.arrow[altSide] = ''; // make sure to unset any eventual altSide value from the DOM node\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-right` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement);\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unitless, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the height.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * An scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper this makes sure the popper has always a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier, can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near eachothers\n * without leaving any gap between the two. Expecially useful when the arrow is\n * enabled and you want to assure it to point to its reference element.\n * It cares only about the first axis, you can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjuction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations).\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position,\n * the popper will never be placed outside of the defined boundaries\n * (except if keepTogether is enabled)\n */\n boundariesElement: 'viewport'\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define you own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the informations used by Popper.js\n * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements.\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overriden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Whether events (resize, scroll) are initially enabled\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated, this callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Create a new Popper.js instance\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference.jquery ? reference[0] : reference;\n this.popper = popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedule an update, it will run on the next UI update available\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nreturn Popper;\n\n})));\n//# sourceMappingURL=popper.js.map\n","/* ========================================================================\n * Bootstrap: transition.js v3.3.7\n * http://getbootstrap.com/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap')\n\n var transEndEventNames = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] }\n }\n }\n\n return false // explicit for ie8 ( ._.)\n }\n\n // http://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false\n var $el = this\n $(this).one('bsTransitionEnd', function () { called = true })\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n setTimeout(callback, duration)\n return this\n }\n\n $(function () {\n $.support.transition = transitionEnd()\n\n if (!$.support.transition) return\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n }\n }\n })\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: alert.js v3.3.7\n * http://getbootstrap.com/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // ALERT CLASS DEFINITION\n // ======================\n\n var dismiss = '[data-dismiss=\"alert\"]'\n var Alert = function (el) {\n $(el).on('click', dismiss, this.close)\n }\n\n Alert.VERSION = '3.3.7'\n\n Alert.TRANSITION_DURATION = 150\n\n Alert.prototype.close = function (e) {\n var $this = $(this)\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = $(selector === '#' ? [] : selector)\n\n if (e) e.preventDefault()\n\n if (!$parent.length) {\n $parent = $this.closest('.alert')\n }\n\n $parent.trigger(e = $.Event('close.bs.alert'))\n\n if (e.isDefaultPrevented()) return\n\n $parent.removeClass('in')\n\n function removeElement() {\n // detach from parent, fire event then clean up data\n $parent.detach().trigger('closed.bs.alert').remove()\n }\n\n $.support.transition && $parent.hasClass('fade') ?\n $parent\n .one('bsTransitionEnd', removeElement)\n .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n removeElement()\n }\n\n\n // ALERT PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.alert')\n\n if (!data) $this.data('bs.alert', (data = new Alert(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.alert\n\n $.fn.alert = Plugin\n $.fn.alert.Constructor = Alert\n\n\n // ALERT NO CONFLICT\n // =================\n\n $.fn.alert.noConflict = function () {\n $.fn.alert = old\n return this\n }\n\n\n // ALERT DATA-API\n // ==============\n\n $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: button.js v3.3.7\n * http://getbootstrap.com/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // BUTTON PUBLIC CLASS DEFINITION\n // ==============================\n\n var Button = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Button.DEFAULTS, options)\n this.isLoading = false\n }\n\n Button.VERSION = '3.3.7'\n\n Button.DEFAULTS = {\n loadingText: 'loading...'\n }\n\n Button.prototype.setState = function (state) {\n var d = 'disabled'\n var $el = this.$element\n var val = $el.is('input') ? 'val' : 'html'\n var data = $el.data()\n\n state += 'Text'\n\n if (data.resetText == null) $el.data('resetText', $el[val]())\n\n // push to event loop to allow forms to submit\n setTimeout($.proxy(function () {\n $el[val](data[state] == null ? this.options[state] : data[state])\n\n if (state == 'loadingText') {\n this.isLoading = true\n $el.addClass(d).attr(d, d).prop(d, true)\n } else if (this.isLoading) {\n this.isLoading = false\n $el.removeClass(d).removeAttr(d).prop(d, false)\n }\n }, this), 0)\n }\n\n Button.prototype.toggle = function () {\n var changed = true\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n if ($parent.length) {\n var $input = this.$element.find('input')\n if ($input.prop('type') == 'radio') {\n if ($input.prop('checked')) changed = false\n $parent.find('.active').removeClass('active')\n this.$element.addClass('active')\n } else if ($input.prop('type') == 'checkbox') {\n if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n this.$element.toggleClass('active')\n }\n $input.prop('checked', this.$element.hasClass('active'))\n if (changed) $input.trigger('change')\n } else {\n this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n this.$element.toggleClass('active')\n }\n }\n\n\n // BUTTON PLUGIN DEFINITION\n // ========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.button')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n if (option == 'toggle') data.toggle()\n else if (option) data.setState(option)\n })\n }\n\n var old = $.fn.button\n\n $.fn.button = Plugin\n $.fn.button.Constructor = Button\n\n\n // BUTTON NO CONFLICT\n // ==================\n\n $.fn.button.noConflict = function () {\n $.fn.button = old\n return this\n }\n\n\n // BUTTON DATA-API\n // ===============\n\n $(document)\n .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n var $btn = $(e.target).closest('.btn')\n Plugin.call($btn, 'toggle')\n if (!($(e.target).is('input[type=\"radio\"], input[type=\"checkbox\"]'))) {\n // Prevent double click on radios, and the double selections (so cancellation) on checkboxes\n e.preventDefault()\n // The target component still receive the focus\n if ($btn.is('input,button')) $btn.trigger('focus')\n else $btn.find('input:visible,button:visible').first().trigger('focus')\n }\n })\n .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n })\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: carousel.js v3.3.7\n * http://getbootstrap.com/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CAROUSEL CLASS DEFINITION\n // =========================\n\n var Carousel = function (element, options) {\n this.$element = $(element)\n this.$indicators = this.$element.find('.carousel-indicators')\n this.options = options\n this.paused = null\n this.sliding = null\n this.interval = null\n this.$active = null\n this.$items = null\n\n this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n }\n\n Carousel.VERSION = '3.3.7'\n\n Carousel.TRANSITION_DURATION = 600\n\n Carousel.DEFAULTS = {\n interval: 5000,\n pause: 'hover',\n wrap: true,\n keyboard: true\n }\n\n Carousel.prototype.keydown = function (e) {\n if (/input|textarea/i.test(e.target.tagName)) return\n switch (e.which) {\n case 37: this.prev(); break\n case 39: this.next(); break\n default: return\n }\n\n e.preventDefault()\n }\n\n Carousel.prototype.cycle = function (e) {\n e || (this.paused = false)\n\n this.interval && clearInterval(this.interval)\n\n this.options.interval\n && !this.paused\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n return this\n }\n\n Carousel.prototype.getItemIndex = function (item) {\n this.$items = item.parent().children('.item')\n return this.$items.index(item || this.$active)\n }\n\n Carousel.prototype.getItemForDirection = function (direction, active) {\n var activeIndex = this.getItemIndex(active)\n var willWrap = (direction == 'prev' && activeIndex === 0)\n || (direction == 'next' && activeIndex == (this.$items.length - 1))\n if (willWrap && !this.options.wrap) return active\n var delta = direction == 'prev' ? -1 : 1\n var itemIndex = (activeIndex + delta) % this.$items.length\n return this.$items.eq(itemIndex)\n }\n\n Carousel.prototype.to = function (pos) {\n var that = this\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n if (pos > (this.$items.length - 1) || pos < 0) return\n\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n if (activeIndex == pos) return this.pause().cycle()\n\n return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n }\n\n Carousel.prototype.pause = function (e) {\n e || (this.paused = true)\n\n if (this.$element.find('.next, .prev').length && $.support.transition) {\n this.$element.trigger($.support.transition.end)\n this.cycle(true)\n }\n\n this.interval = clearInterval(this.interval)\n\n return this\n }\n\n Carousel.prototype.next = function () {\n if (this.sliding) return\n return this.slide('next')\n }\n\n Carousel.prototype.prev = function () {\n if (this.sliding) return\n return this.slide('prev')\n }\n\n Carousel.prototype.slide = function (type, next) {\n var $active = this.$element.find('.item.active')\n var $next = next || this.getItemForDirection(type, $active)\n var isCycling = this.interval\n var direction = type == 'next' ? 'left' : 'right'\n var that = this\n\n if ($next.hasClass('active')) return (this.sliding = false)\n\n var relatedTarget = $next[0]\n var slideEvent = $.Event('slide.bs.carousel', {\n relatedTarget: relatedTarget,\n direction: direction\n })\n this.$element.trigger(slideEvent)\n if (slideEvent.isDefaultPrevented()) return\n\n this.sliding = true\n\n isCycling && this.pause()\n\n if (this.$indicators.length) {\n this.$indicators.find('.active').removeClass('active')\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n $nextIndicator && $nextIndicator.addClass('active')\n }\n\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n if ($.support.transition && this.$element.hasClass('slide')) {\n $next.addClass(type)\n $next[0].offsetWidth // force reflow\n $active.addClass(direction)\n $next.addClass(direction)\n $active\n .one('bsTransitionEnd', function () {\n $next.removeClass([type, direction].join(' ')).addClass('active')\n $active.removeClass(['active', direction].join(' '))\n that.sliding = false\n setTimeout(function () {\n that.$element.trigger(slidEvent)\n }, 0)\n })\n .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n } else {\n $active.removeClass('active')\n $next.addClass('active')\n this.sliding = false\n this.$element.trigger(slidEvent)\n }\n\n isCycling && this.cycle()\n\n return this\n }\n\n\n // CAROUSEL PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.carousel')\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n var action = typeof option == 'string' ? option : options.slide\n\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n if (typeof option == 'number') data.to(option)\n else if (action) data[action]()\n else if (options.interval) data.pause().cycle()\n })\n }\n\n var old = $.fn.carousel\n\n $.fn.carousel = Plugin\n $.fn.carousel.Constructor = Carousel\n\n\n // CAROUSEL NO CONFLICT\n // ====================\n\n $.fn.carousel.noConflict = function () {\n $.fn.carousel = old\n return this\n }\n\n\n // CAROUSEL DATA-API\n // =================\n\n var clickHandler = function (e) {\n var href\n var $this = $(this)\n var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n if (!$target.hasClass('carousel')) return\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to')\n if (slideIndex) options.interval = false\n\n Plugin.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(document)\n .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n $(window).on('load', function () {\n $('[data-ride=\"carousel\"]').each(function () {\n var $carousel = $(this)\n Plugin.call($carousel, $carousel.data())\n })\n })\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: collapse.js v3.3.7\n * http://getbootstrap.com/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n/* jshint latedef: false */\n\n+function ($) {\n 'use strict';\n\n // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n\n var Collapse = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Collapse.DEFAULTS, options)\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n this.transitioning = null\n\n if (this.options.parent) {\n this.$parent = this.getParent()\n } else {\n this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n }\n\n if (this.options.toggle) this.toggle()\n }\n\n Collapse.VERSION = '3.3.7'\n\n Collapse.TRANSITION_DURATION = 350\n\n Collapse.DEFAULTS = {\n toggle: true\n }\n\n Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width')\n return hasWidth ? 'width' : 'height'\n }\n\n Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return\n\n var activesData\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n if (actives && actives.length) {\n activesData = actives.data('bs.collapse')\n if (activesData && activesData.transitioning) return\n }\n\n var startEvent = $.Event('show.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n if (actives && actives.length) {\n Plugin.call(actives, 'hide')\n activesData || actives.data('bs.collapse', null)\n }\n\n var dimension = this.dimension()\n\n this.$element\n .removeClass('collapse')\n .addClass('collapsing')[dimension](0)\n .attr('aria-expanded', true)\n\n this.$trigger\n .removeClass('collapsed')\n .attr('aria-expanded', true)\n\n this.transitioning = 1\n\n var complete = function () {\n this.$element\n .removeClass('collapsing')\n .addClass('collapse in')[dimension]('')\n this.transitioning = 0\n this.$element\n .trigger('shown.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n this.$element\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n }\n\n Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return\n\n var startEvent = $.Event('hide.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n var dimension = this.dimension()\n\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n this.$element\n .addClass('collapsing')\n .removeClass('collapse in')\n .attr('aria-expanded', false)\n\n this.$trigger\n .addClass('collapsed')\n .attr('aria-expanded', false)\n\n this.transitioning = 1\n\n var complete = function () {\n this.transitioning = 0\n this.$element\n .removeClass('collapsing')\n .addClass('collapse')\n .trigger('hidden.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n this.$element\n [dimension](0)\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n }\n\n Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\n }\n\n Collapse.prototype.getParent = function () {\n return $(this.options.parent)\n .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n .each($.proxy(function (i, element) {\n var $element = $(element)\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n }, this))\n .end()\n }\n\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n var isOpen = $element.hasClass('in')\n\n $element.attr('aria-expanded', isOpen)\n $trigger\n .toggleClass('collapsed', !isOpen)\n .attr('aria-expanded', isOpen)\n }\n\n function getTargetFromTrigger($trigger) {\n var href\n var target = $trigger.attr('data-target')\n || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n return $(target)\n }\n\n\n // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.collapse')\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.collapse\n\n $.fn.collapse = Plugin\n $.fn.collapse.Constructor = Collapse\n\n\n // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old\n return this\n }\n\n\n // COLLAPSE DATA-API\n // =================\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var $this = $(this)\n\n if (!$this.attr('data-target')) e.preventDefault()\n\n var $target = getTargetFromTrigger($this)\n var data = $target.data('bs.collapse')\n var option = data ? 'toggle' : $this.data()\n\n Plugin.call($target, option)\n })\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: dropdown.js v3.3.7\n * http://getbootstrap.com/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop'\n var toggle = '[data-toggle=\"dropdown\"]'\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle)\n }\n\n Dropdown.VERSION = '3.3.7'\n\n function getParent($this) {\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = selector && $(selector)\n\n return $parent && $parent.length ? $parent : $this.parent()\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return\n $(backdrop).remove()\n $(toggle).each(function () {\n var $this = $(this)\n var $parent = getParent($this)\n var relatedTarget = { relatedTarget: this }\n\n if (!$parent.hasClass('open')) return\n\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this.attr('aria-expanded', 'false')\n $parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))\n })\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this)\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n clearMenus()\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div'))\n .addClass('dropdown-backdrop')\n .insertAfter($(this))\n .on('click', clearMenus)\n }\n\n var relatedTarget = { relatedTarget: this }\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this\n .trigger('focus')\n .attr('aria-expanded', 'true')\n\n $parent\n .toggleClass('open')\n .trigger($.Event('shown.bs.dropdown', relatedTarget))\n }\n\n return false\n }\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n var $this = $(this)\n\n e.preventDefault()\n e.stopPropagation()\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\n if (e.which == 27) $parent.find(toggle).trigger('focus')\n return $this.trigger('click')\n }\n\n var desc = ' li:not(.disabled):visible a'\n var $items = $parent.find('.dropdown-menu' + desc)\n\n if (!$items.length) return\n\n var index = $items.index(e.target)\n\n if (e.which == 38 && index > 0) index-- // up\n if (e.which == 40 && index < $items.length - 1) index++ // down\n if (!~index) index = 0\n\n $items.eq(index).trigger('focus')\n }\n\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.dropdown')\n\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.dropdown\n\n $.fn.dropdown = Plugin\n $.fn.dropdown.Constructor = Dropdown\n\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old\n return this\n }\n\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document)\n .on('click.bs.dropdown.data-api', clearMenus)\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: modal.js v3.3.7\n * http://getbootstrap.com/javascript/#modals\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // MODAL CLASS DEFINITION\n // ======================\n\n var Modal = function (element, options) {\n this.options = options\n this.$body = $(document.body)\n this.$element = $(element)\n this.$dialog = this.$element.find('.modal-dialog')\n this.$backdrop = null\n this.isShown = null\n this.originalBodyPad = null\n this.scrollbarWidth = 0\n this.ignoreBackdropClick = false\n\n if (this.options.remote) {\n this.$element\n .find('.modal-content')\n .load(this.options.remote, $.proxy(function () {\n this.$element.trigger('loaded.bs.modal')\n }, this))\n }\n }\n\n Modal.VERSION = '3.3.7'\n\n Modal.TRANSITION_DURATION = 300\n Modal.BACKDROP_TRANSITION_DURATION = 150\n\n Modal.DEFAULTS = {\n backdrop: true,\n keyboard: true,\n show: true\n }\n\n Modal.prototype.toggle = function (_relatedTarget) {\n return this.isShown ? this.hide() : this.show(_relatedTarget)\n }\n\n Modal.prototype.show = function (_relatedTarget) {\n var that = this\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n this.$element.trigger(e)\n\n if (this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = true\n\n this.checkScrollbar()\n this.setScrollbar()\n this.$body.addClass('modal-open')\n\n this.escape()\n this.resize()\n\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n })\n })\n\n this.backdrop(function () {\n var transition = $.support.transition && that.$element.hasClass('fade')\n\n if (!that.$element.parent().length) {\n that.$element.appendTo(that.$body) // don't move modals dom position\n }\n\n that.$element\n .show()\n .scrollTop(0)\n\n that.adjustDialog()\n\n if (transition) {\n that.$element[0].offsetWidth // force reflow\n }\n\n that.$element.addClass('in')\n\n that.enforceFocus()\n\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n transition ?\n that.$dialog // wait for modal to slide in\n .one('bsTransitionEnd', function () {\n that.$element.trigger('focus').trigger(e)\n })\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n that.$element.trigger('focus').trigger(e)\n })\n }\n\n Modal.prototype.hide = function (e) {\n if (e) e.preventDefault()\n\n e = $.Event('hide.bs.modal')\n\n this.$element.trigger(e)\n\n if (!this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = false\n\n this.escape()\n this.resize()\n\n $(document).off('focusin.bs.modal')\n\n this.$element\n .removeClass('in')\n .off('click.dismiss.bs.modal')\n .off('mouseup.dismiss.bs.modal')\n\n this.$dialog.off('mousedown.dismiss.bs.modal')\n\n $.support.transition && this.$element.hasClass('fade') ?\n this.$element\n .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n this.hideModal()\n }\n\n Modal.prototype.enforceFocus = function () {\n $(document)\n .off('focusin.bs.modal') // guard against infinite focus loop\n .on('focusin.bs.modal', $.proxy(function (e) {\n if (document !== e.target &&\n this.$element[0] !== e.target &&\n !this.$element.has(e.target).length) {\n this.$element.trigger('focus')\n }\n }, this))\n }\n\n Modal.prototype.escape = function () {\n if (this.isShown && this.options.keyboard) {\n this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n e.which == 27 && this.hide()\n }, this))\n } else if (!this.isShown) {\n this.$element.off('keydown.dismiss.bs.modal')\n }\n }\n\n Modal.prototype.resize = function () {\n if (this.isShown) {\n $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n } else {\n $(window).off('resize.bs.modal')\n }\n }\n\n Modal.prototype.hideModal = function () {\n var that = this\n this.$element.hide()\n this.backdrop(function () {\n that.$body.removeClass('modal-open')\n that.resetAdjustments()\n that.resetScrollbar()\n that.$element.trigger('hidden.bs.modal')\n })\n }\n\n Modal.prototype.removeBackdrop = function () {\n this.$backdrop && this.$backdrop.remove()\n this.$backdrop = null\n }\n\n Modal.prototype.backdrop = function (callback) {\n var that = this\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n if (this.isShown && this.options.backdrop) {\n var doAnimate = $.support.transition && animate\n\n this.$backdrop = $(document.createElement('div'))\n .addClass('modal-backdrop ' + animate)\n .appendTo(this.$body)\n\n this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n if (this.ignoreBackdropClick) {\n this.ignoreBackdropClick = false\n return\n }\n if (e.target !== e.currentTarget) return\n this.options.backdrop == 'static'\n ? this.$element[0].focus()\n : this.hide()\n }, this))\n\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n this.$backdrop.addClass('in')\n\n if (!callback) return\n\n doAnimate ?\n this.$backdrop\n .one('bsTransitionEnd', callback)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callback()\n\n } else if (!this.isShown && this.$backdrop) {\n this.$backdrop.removeClass('in')\n\n var callbackRemove = function () {\n that.removeBackdrop()\n callback && callback()\n }\n $.support.transition && this.$element.hasClass('fade') ?\n this.$backdrop\n .one('bsTransitionEnd', callbackRemove)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callbackRemove()\n\n } else if (callback) {\n callback()\n }\n }\n\n // these following methods are used to handle overflowing modals\n\n Modal.prototype.handleUpdate = function () {\n this.adjustDialog()\n }\n\n Modal.prototype.adjustDialog = function () {\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n this.$element.css({\n paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n })\n }\n\n Modal.prototype.resetAdjustments = function () {\n this.$element.css({\n paddingLeft: '',\n paddingRight: ''\n })\n }\n\n Modal.prototype.checkScrollbar = function () {\n var fullWindowWidth = window.innerWidth\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n var documentElementRect = document.documentElement.getBoundingClientRect()\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n }\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n this.scrollbarWidth = this.measureScrollbar()\n }\n\n Modal.prototype.setScrollbar = function () {\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n this.originalBodyPad = document.body.style.paddingRight || ''\n if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\n }\n\n Modal.prototype.resetScrollbar = function () {\n this.$body.css('padding-right', this.originalBodyPad)\n }\n\n Modal.prototype.measureScrollbar = function () { // thx walsh\n var scrollDiv = document.createElement('div')\n scrollDiv.className = 'modal-scrollbar-measure'\n this.$body.append(scrollDiv)\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n this.$body[0].removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // MODAL PLUGIN DEFINITION\n // =======================\n\n function Plugin(option, _relatedTarget) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.modal')\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n if (typeof option == 'string') data[option](_relatedTarget)\n else if (options.show) data.show(_relatedTarget)\n })\n }\n\n var old = $.fn.modal\n\n $.fn.modal = Plugin\n $.fn.modal.Constructor = Modal\n\n\n // MODAL NO CONFLICT\n // =================\n\n $.fn.modal.noConflict = function () {\n $.fn.modal = old\n return this\n }\n\n\n // MODAL DATA-API\n // ==============\n\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n if ($this.is('a')) e.preventDefault()\n\n $target.one('show.bs.modal', function (showEvent) {\n if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n $target.one('hidden.bs.modal', function () {\n $this.is(':visible') && $this.trigger('focus')\n })\n })\n Plugin.call($target, option, this)\n })\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: tooltip.js v3.3.7\n * http://getbootstrap.com/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n\n var Tooltip = function (element, options) {\n this.type = null\n this.options = null\n this.enabled = null\n this.timeout = null\n this.hoverState = null\n this.$element = null\n this.inState = null\n\n this.init('tooltip', element, options)\n }\n\n Tooltip.VERSION = '3.3.7'\n\n Tooltip.TRANSITION_DURATION = 150\n\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '<div class=\"tooltip\" role=\"tooltip\"><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n container: false,\n viewport: {\n selector: 'body',\n padding: 0\n }\n }\n\n Tooltip.prototype.init = function (type, element, options) {\n this.enabled = true\n this.type = type\n this.$element = $(element)\n this.options = this.getOptions(options)\n this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n this.inState = { click: false, hover: false, focus: false }\n\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n }\n\n var triggers = this.options.trigger.split(' ')\n\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i]\n\n if (trigger == 'click') {\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n } else if (trigger != 'manual') {\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n }\n }\n\n this.options.selector ?\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n this.fixTitle()\n }\n\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS\n }\n\n Tooltip.prototype.getOptions = function (options) {\n options = $.extend({}, this.getDefaults(), this.$element.data(), options)\n\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n }\n }\n\n return options\n }\n\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {}\n var defaults = this.getDefaults()\n\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value\n })\n\n return options\n }\n\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n }\n\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\n self.hoverState = 'in'\n return\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'in'\n\n if (!self.options.delay || !self.options.delay.show) return self.show()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show()\n }, self.options.delay.show)\n }\n\n Tooltip.prototype.isInStateTrue = function () {\n for (var key in this.inState) {\n if (this.inState[key]) return true\n }\n\n return false\n }\n\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n }\n\n if (self.isInStateTrue()) return\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'out'\n\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide()\n }, self.options.delay.hide)\n }\n\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type)\n\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e)\n\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n if (e.isDefaultPrevented() || !inDom) return\n var that = this\n\n var $tip = this.tip()\n\n var tipId = this.getUID(this.type)\n\n this.setContent()\n $tip.attr('id', tipId)\n this.$element.attr('aria-describedby', tipId)\n\n if (this.options.animation) $tip.addClass('fade')\n\n var placement = typeof this.options.placement == 'function' ?\n this.options.placement.call(this, $tip[0], this.$element[0]) :\n this.options.placement\n\n var autoToken = /\\s?auto?\\s?/i\n var autoPlace = autoToken.test(placement)\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n $tip\n .detach()\n .css({ top: 0, left: 0, display: 'block' })\n .addClass(placement)\n .data('bs.' + this.type, this)\n\n this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\n this.$element.trigger('inserted.bs.' + this.type)\n\n var pos = this.getPosition()\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (autoPlace) {\n var orgPlacement = placement\n var viewportDim = this.getPosition(this.$viewport)\n\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\n placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\n placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\n placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\n placement\n\n $tip\n .removeClass(orgPlacement)\n .addClass(placement)\n }\n\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n this.applyPlacement(calculatedOffset, placement)\n\n var complete = function () {\n var prevHoverState = that.hoverState\n that.$element.trigger('shown.bs.' + that.type)\n that.hoverState = null\n\n if (prevHoverState == 'out') that.leave(that)\n }\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n }\n }\n\n Tooltip.prototype.applyPlacement = function (offset, placement) {\n var $tip = this.tip()\n var width = $tip[0].offsetWidth\n var height = $tip[0].offsetHeight\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt($tip.css('margin-top'), 10)\n var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0\n if (isNaN(marginLeft)) marginLeft = 0\n\n offset.top += marginTop\n offset.left += marginLeft\n\n // $.fn.offset doesn't round pixel values\n // so we use setOffset directly with our own function B-0\n $.offset.setOffset($tip[0], $.extend({\n using: function (props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n })\n }\n }, offset), 0)\n\n $tip.addClass('in')\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight\n }\n\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n if (delta.left) offset.left += delta.left\n else offset.top += delta.top\n\n var isVertical = /top|bottom/.test(placement)\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n $tip.offset(offset)\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n }\n\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n this.arrow()\n .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isVertical ? 'top' : 'left', '')\n }\n\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n\n $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\n $tip.removeClass('fade in top bottom left right')\n }\n\n Tooltip.prototype.hide = function (callback) {\n var that = this\n var $tip = $(this.$tip)\n var e = $.Event('hide.bs.' + this.type)\n\n function complete() {\n if (that.hoverState != 'in') $tip.detach()\n if (that.$element) { // TODO: Check whether guarding this code with this `if` is really necessary.\n that.$element\n .removeAttr('aria-describedby')\n .trigger('hidden.bs.' + that.type)\n }\n callback && callback()\n }\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n $tip.removeClass('in')\n\n $.support.transition && $tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n\n this.hoverState = null\n\n return this\n }\n\n Tooltip.prototype.fixTitle = function () {\n var $e = this.$element\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n }\n }\n\n Tooltip.prototype.hasContent = function () {\n return this.getTitle()\n }\n\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element\n\n var el = $element[0]\n var isBody = el.tagName == 'BODY'\n\n var elRect = el.getBoundingClientRect()\n if (elRect.width == null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n }\n var isSvg = window.SVGElement && el instanceof window.SVGElement\n // Avoid using $.offset() on SVGs since it gives incorrect results in jQuery 3.\n // See https://github.com/twbs/bootstrap/issues/20280\n var elOffset = isBody ? { top: 0, left: 0 } : (isSvg ? null : $element.offset())\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n return $.extend({}, elRect, scroll, outerDims, elOffset)\n }\n\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n }\n\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 }\n if (!this.$viewport) return delta\n\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n var viewportDimensions = this.getPosition(this.$viewport)\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n }\n } else {\n var leftEdgeOffset = pos.left - viewportPadding\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n }\n }\n\n return delta\n }\n\n Tooltip.prototype.getTitle = function () {\n var title\n var $e = this.$element\n var o = this.options\n\n title = $e.attr('data-original-title')\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\n\n return title\n }\n\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000)\n while (document.getElementById(prefix))\n return prefix\n }\n\n Tooltip.prototype.tip = function () {\n if (!this.$tip) {\n this.$tip = $(this.options.template)\n if (this.$tip.length != 1) {\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n }\n }\n return this.$tip\n }\n\n Tooltip.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n }\n\n Tooltip.prototype.enable = function () {\n this.enabled = true\n }\n\n Tooltip.prototype.disable = function () {\n this.enabled = false\n }\n\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled\n }\n\n Tooltip.prototype.toggle = function (e) {\n var self = this\n if (e) {\n self = $(e.currentTarget).data('bs.' + this.type)\n if (!self) {\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n $(e.currentTarget).data('bs.' + this.type, self)\n }\n }\n\n if (e) {\n self.inState.click = !self.inState.click\n if (self.isInStateTrue()) self.enter(self)\n else self.leave(self)\n } else {\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n }\n }\n\n Tooltip.prototype.destroy = function () {\n var that = this\n clearTimeout(this.timeout)\n this.hide(function () {\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\n if (that.$tip) {\n that.$tip.detach()\n }\n that.$tip = null\n that.$arrow = null\n that.$viewport = null\n that.$element = null\n })\n }\n\n\n // TOOLTIP PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tooltip')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tooltip\n\n $.fn.tooltip = Plugin\n $.fn.tooltip.Constructor = Tooltip\n\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old\n return this\n }\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: popover.js v3.3.7\n * http://getbootstrap.com/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // POPOVER PUBLIC CLASS DEFINITION\n // ===============================\n\n var Popover = function (element, options) {\n this.init('popover', element, options)\n }\n\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n Popover.VERSION = '3.3.7'\n\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\"><div class=\"arrow\"></div><h3 class=\"popover-title\"></h3><div class=\"popover-content\"></div></div>'\n })\n\n\n // NOTE: POPOVER EXTENDS tooltip.js\n // ================================\n\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n Popover.prototype.constructor = Popover\n\n Popover.prototype.getDefaults = function () {\n return Popover.DEFAULTS\n }\n\n Popover.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n var content = this.getContent()\n\n $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\n $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\n this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\n ](content)\n\n $tip.removeClass('fade top bottom left right in')\n\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n // this manually by checking the contents.\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n }\n\n Popover.prototype.hasContent = function () {\n return this.getTitle() || this.getContent()\n }\n\n Popover.prototype.getContent = function () {\n var $e = this.$element\n var o = this.options\n\n return $e.attr('data-content')\n || (typeof o.content == 'function' ?\n o.content.call($e[0]) :\n o.content)\n }\n\n Popover.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n }\n\n\n // POPOVER PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.popover')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.popover\n\n $.fn.popover = Plugin\n $.fn.popover.Constructor = Popover\n\n\n // POPOVER NO CONFLICT\n // ===================\n\n $.fn.popover.noConflict = function () {\n $.fn.popover = old\n return this\n }\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: scrollspy.js v3.3.7\n * http://getbootstrap.com/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // SCROLLSPY CLASS DEFINITION\n // ==========================\n\n function ScrollSpy(element, options) {\n this.$body = $(document.body)\n this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\n this.selector = (this.options.target || '') + ' .nav li > a'\n this.offsets = []\n this.targets = []\n this.activeTarget = null\n this.scrollHeight = 0\n\n this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n this.refresh()\n this.process()\n }\n\n ScrollSpy.VERSION = '3.3.7'\n\n ScrollSpy.DEFAULTS = {\n offset: 10\n }\n\n ScrollSpy.prototype.getScrollHeight = function () {\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n }\n\n ScrollSpy.prototype.refresh = function () {\n var that = this\n var offsetMethod = 'offset'\n var offsetBase = 0\n\n this.offsets = []\n this.targets = []\n this.scrollHeight = this.getScrollHeight()\n\n if (!$.isWindow(this.$scrollElement[0])) {\n offsetMethod = 'position'\n offsetBase = this.$scrollElement.scrollTop()\n }\n\n this.$body\n .find(this.selector)\n .map(function () {\n var $el = $(this)\n var href = $el.data('target') || $el.attr('href')\n var $href = /^#./.test(href) && $(href)\n\n return ($href\n && $href.length\n && $href.is(':visible')\n && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n })\n .sort(function (a, b) { return a[0] - b[0] })\n .each(function () {\n that.offsets.push(this[0])\n that.targets.push(this[1])\n })\n }\n\n ScrollSpy.prototype.process = function () {\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\n var scrollHeight = this.getScrollHeight()\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\n var offsets = this.offsets\n var targets = this.targets\n var activeTarget = this.activeTarget\n var i\n\n if (this.scrollHeight != scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n }\n\n if (activeTarget && scrollTop < offsets[0]) {\n this.activeTarget = null\n return this.clear()\n }\n\n for (i = offsets.length; i--;) {\n activeTarget != targets[i]\n && scrollTop >= offsets[i]\n && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n && this.activate(targets[i])\n }\n }\n\n ScrollSpy.prototype.activate = function (target) {\n this.activeTarget = target\n\n this.clear()\n\n var selector = this.selector +\n '[data-target=\"' + target + '\"],' +\n this.selector + '[href=\"' + target + '\"]'\n\n var active = $(selector)\n .parents('li')\n .addClass('active')\n\n if (active.parent('.dropdown-menu').length) {\n active = active\n .closest('li.dropdown')\n .addClass('active')\n }\n\n active.trigger('activate.bs.scrollspy')\n }\n\n ScrollSpy.prototype.clear = function () {\n $(this.selector)\n .parentsUntil(this.options.target, '.active')\n .removeClass('active')\n }\n\n\n // SCROLLSPY PLUGIN DEFINITION\n // ===========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.scrollspy')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.scrollspy\n\n $.fn.scrollspy = Plugin\n $.fn.scrollspy.Constructor = ScrollSpy\n\n\n // SCROLLSPY NO CONFLICT\n // =====================\n\n $.fn.scrollspy.noConflict = function () {\n $.fn.scrollspy = old\n return this\n }\n\n\n // SCROLLSPY DATA-API\n // ==================\n\n $(window).on('load.bs.scrollspy.data-api', function () {\n $('[data-spy=\"scroll\"]').each(function () {\n var $spy = $(this)\n Plugin.call($spy, $spy.data())\n })\n })\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: tab.js v3.3.7\n * http://getbootstrap.com/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TAB CLASS DEFINITION\n // ====================\n\n var Tab = function (element) {\n // jscs:disable requireDollarBeforejQueryAssignment\n this.element = $(element)\n // jscs:enable requireDollarBeforejQueryAssignment\n }\n\n Tab.VERSION = '3.3.7'\n\n Tab.TRANSITION_DURATION = 150\n\n Tab.prototype.show = function () {\n var $this = this.element\n var $ul = $this.closest('ul:not(.dropdown-menu)')\n var selector = $this.data('target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n if ($this.parent('li').hasClass('active')) return\n\n var $previous = $ul.find('.active:last a')\n var hideEvent = $.Event('hide.bs.tab', {\n relatedTarget: $this[0]\n })\n var showEvent = $.Event('show.bs.tab', {\n relatedTarget: $previous[0]\n })\n\n $previous.trigger(hideEvent)\n $this.trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n var $target = $(selector)\n\n this.activate($this.closest('li'), $ul)\n this.activate($target, $target.parent(), function () {\n $previous.trigger({\n type: 'hidden.bs.tab',\n relatedTarget: $this[0]\n })\n $this.trigger({\n type: 'shown.bs.tab',\n relatedTarget: $previous[0]\n })\n })\n }\n\n Tab.prototype.activate = function (element, container, callback) {\n var $active = container.find('> .active')\n var transition = callback\n && $.support.transition\n && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n function next() {\n $active\n .removeClass('active')\n .find('> .dropdown-menu > .active')\n .removeClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', false)\n\n element\n .addClass('active')\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n\n if (transition) {\n element[0].offsetWidth // reflow for transition\n element.addClass('in')\n } else {\n element.removeClass('fade')\n }\n\n if (element.parent('.dropdown-menu').length) {\n element\n .closest('li.dropdown')\n .addClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n }\n\n callback && callback()\n }\n\n $active.length && transition ?\n $active\n .one('bsTransitionEnd', next)\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n next()\n\n $active.removeClass('in')\n }\n\n\n // TAB PLUGIN DEFINITION\n // =====================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tab')\n\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tab\n\n $.fn.tab = Plugin\n $.fn.tab.Constructor = Tab\n\n\n // TAB NO CONFLICT\n // ===============\n\n $.fn.tab.noConflict = function () {\n $.fn.tab = old\n return this\n }\n\n\n // TAB DATA-API\n // ============\n\n var clickHandler = function (e) {\n e.preventDefault()\n Plugin.call($(this), 'show')\n }\n\n $(document)\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: affix.js v3.3.7\n * http://getbootstrap.com/javascript/#affix\n * ========================================================================\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // AFFIX CLASS DEFINITION\n // ======================\n\n var Affix = function (element, options) {\n this.options = $.extend({}, Affix.DEFAULTS, options)\n\n this.$target = $(this.options.target)\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\n this.$element = $(element)\n this.affixed = null\n this.unpin = null\n this.pinnedOffset = null\n\n this.checkPosition()\n }\n\n Affix.VERSION = '3.3.7'\n\n Affix.RESET = 'affix affix-top affix-bottom'\n\n Affix.DEFAULTS = {\n offset: 0,\n target: window\n }\n\n Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n var targetHeight = this.$target.height()\n\n if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n if (this.affixed == 'bottom') {\n if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n }\n\n var initializing = this.affixed == null\n var colliderTop = initializing ? scrollTop : position.top\n var colliderHeight = initializing ? targetHeight : height\n\n if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n return false\n }\n\n Affix.prototype.getPinnedOffset = function () {\n if (this.pinnedOffset) return this.pinnedOffset\n this.$element.removeClass(Affix.RESET).addClass('affix')\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n return (this.pinnedOffset = position.top - scrollTop)\n }\n\n Affix.prototype.checkPositionWithEventLoop = function () {\n setTimeout($.proxy(this.checkPosition, this), 1)\n }\n\n Affix.prototype.checkPosition = function () {\n if (!this.$element.is(':visible')) return\n\n var height = this.$element.height()\n var offset = this.options.offset\n var offsetTop = offset.top\n var offsetBottom = offset.bottom\n var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n if (this.affixed != affix) {\n if (this.unpin != null) this.$element.css('top', '')\n\n var affixType = 'affix' + (affix ? '-' + affix : '')\n var e = $.Event(affixType + '.bs.affix')\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n this.affixed = affix\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n this.$element\n .removeClass(Affix.RESET)\n .addClass(affixType)\n .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n }\n\n if (affix == 'bottom') {\n this.$element.offset({\n top: scrollHeight - height - offsetBottom\n })\n }\n }\n\n\n // AFFIX PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.affix')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.affix\n\n $.fn.affix = Plugin\n $.fn.affix.Constructor = Affix\n\n\n // AFFIX NO CONFLICT\n // =================\n\n $.fn.affix.noConflict = function () {\n $.fn.affix = old\n return this\n }\n\n\n // AFFIX DATA-API\n // ==============\n\n $(window).on('load', function () {\n $('[data-spy=\"affix\"]').each(function () {\n var $spy = $(this)\n var data = $spy.data()\n\n data.offset = data.offset || {}\n\n if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n if (data.offsetTop != null) data.offset.top = data.offsetTop\n\n Plugin.call($spy, data)\n })\n })\n\n}(jQuery);\n","/*!\n * Lightbox for Bootstrap by @ashleydw\n * https://github.com/ashleydw/lightbox\n *\n * License: https://github.com/ashleydw/lightbox/blob/master/LICENSE\n */\n+function ($) {\n\n'use strict';\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nvar Lightbox = (function ($) {\n\n\tvar NAME = 'ekkoLightbox';\n\tvar JQUERY_NO_CONFLICT = $.fn[NAME];\n\n\tvar Default = {\n\t\ttitle: '',\n\t\tfooter: '',\n\t\tshowArrows: true, //display the left / right arrows or not\n\t\twrapping: true, //if true, gallery loops infinitely\n\t\ttype: null, //force the lightbox into image / youtube mode. if null, or not image|youtube|vimeo; detect it\n\t\talwaysShowClose: false, //always show the close button, even if there is no title\n\t\tloadingMessage: '<div class=\"ekko-lightbox-loader\"><div><div></div><div></div></div></div>', // http://tobiasahlin.com/spinkit/\n\t\tleftArrow: '<span>❮</span>',\n\t\trightArrow: '<span>❯</span>',\n\t\tstrings: {\n\t\t\tclose: 'Close',\n\t\t\tfail: 'Failed to load image:',\n\t\t\ttype: 'Could not detect remote target type. Force the type using data-type'\n\t\t},\n\t\tdoc: document, // if in an iframe can specify top.document\n\t\tonShow: function onShow() {},\n\t\tonShown: function onShown() {},\n\t\tonHide: function onHide() {},\n\t\tonHidden: function onHidden() {},\n\t\tonNavigate: function onNavigate() {},\n\t\tonContentLoaded: function onContentLoaded() {}\n\t};\n\n\tvar Lightbox = (function () {\n\t\t_createClass(Lightbox, null, [{\n\t\t\tkey: 'Default',\n\n\t\t\t/**\n \n Class properties:\n \n _$element: null -> the <a> element currently being displayed\n _$modal: The bootstrap modal generated\n _$modalDialog: The .modal-dialog\n _$modalContent: The .modal-content\n _$modalBody: The .modal-body\n _$modalHeader: The .modal-header\n _$modalFooter: The .modal-footer\n _$lightboxContainerOne: Container of the first lightbox element\n _$lightboxContainerTwo: Container of the second lightbox element\n _$lightboxBody: First element in the container\n _$modalArrows: The overlayed arrows container\n \t _$galleryItems: Other <a>'s available for this gallery\n _galleryName: Name of the current data('gallery') showing\n _galleryIndex: The current index of the _$galleryItems being shown\n \t _config: {} the options for the modal\n _modalId: unique id for the current lightbox\n _padding / _border: CSS properties for the modal container; these are used to calculate the available space for the content\n \t */\n\n\t\t\tget: function get() {\n\t\t\t\treturn Default;\n\t\t\t}\n\t\t}]);\n\n\t\tfunction Lightbox($element, config) {\n\t\t\tvar _this = this;\n\n\t\t\t_classCallCheck(this, Lightbox);\n\n\t\t\tthis._config = $.extend({}, Default, config);\n\t\t\tthis._$modalArrows = null;\n\t\t\tthis._galleryIndex = 0;\n\t\t\tthis._galleryName = null;\n\t\t\tthis._padding = null;\n\t\t\tthis._border = null;\n\t\t\tthis._titleIsShown = false;\n\t\t\tthis._footerIsShown = false;\n\t\t\tthis._wantedWidth = 0;\n\t\t\tthis._wantedHeight = 0;\n\t\t\tthis._touchstartX = 0;\n\t\t\tthis._touchendX = 0;\n\n\t\t\tthis._modalId = 'ekkoLightbox-' + Math.floor(Math.random() * 1000 + 1);\n\t\t\tthis._$element = $element instanceof jQuery ? $element : $($element);\n\n\t\t\tthis._isBootstrap3 = $.fn.modal.Constructor.VERSION[0] == 3;\n\n\t\t\tvar h4 = '<h4 class=\"modal-title\">' + (this._config.title || \" \") + '</h4>';\n\t\t\tvar btn = '<button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"' + this._config.strings.close + '\"><span aria-hidden=\"true\">×</span></button>';\n\n\t\t\tvar header = '<div class=\"modal-header' + (this._config.title || this._config.alwaysShowClose ? '' : ' hide') + '\">' + (this._isBootstrap3 ? btn + h4 : h4 + btn) + '</div>';\n\t\t\tvar footer = '<div class=\"modal-footer' + (this._config.footer ? '' : ' hide') + '\">' + (this._config.footer || \" \") + '</div>';\n\t\t\tvar body = '<div class=\"modal-body\"><div class=\"ekko-lightbox-container\"><div class=\"ekko-lightbox-item fade in show\"></div><div class=\"ekko-lightbox-item fade\"></div></div></div>';\n\t\t\tvar dialog = '<div class=\"modal-dialog\" role=\"document\"><div class=\"modal-content\">' + header + body + footer + '</div></div>';\n\t\t\t$(this._config.doc.body).append('<div id=\"' + this._modalId + '\" class=\"ekko-lightbox modal fade\" tabindex=\"-1\" tabindex=\"-1\" role=\"dialog\" aria-hidden=\"true\">' + dialog + '</div>');\n\n\t\t\tthis._$modal = $('#' + this._modalId, this._config.doc);\n\t\t\tthis._$modalDialog = this._$modal.find('.modal-dialog').first();\n\t\t\tthis._$modalContent = this._$modal.find('.modal-content').first();\n\t\t\tthis._$modalBody = this._$modal.find('.modal-body').first();\n\t\t\tthis._$modalHeader = this._$modal.find('.modal-header').first();\n\t\t\tthis._$modalFooter = this._$modal.find('.modal-footer').first();\n\n\t\t\tthis._$lightboxContainer = this._$modalBody.find('.ekko-lightbox-container').first();\n\t\t\tthis._$lightboxBodyOne = this._$lightboxContainer.find('> div:first-child').first();\n\t\t\tthis._$lightboxBodyTwo = this._$lightboxContainer.find('> div:last-child').first();\n\n\t\t\tthis._border = this._calculateBorders();\n\t\t\tthis._padding = this._calculatePadding();\n\n\t\t\tthis._galleryName = this._$element.data('gallery');\n\t\t\tif (this._galleryName) {\n\t\t\t\tthis._$galleryItems = $(document.body).find('*[data-gallery=\"' + this._galleryName + '\"]');\n\t\t\t\tthis._galleryIndex = this._$galleryItems.index(this._$element);\n\t\t\t\t$(document).on('keydown.ekkoLightbox', this._navigationalBinder.bind(this));\n\n\t\t\t\t// add the directional arrows to the modal\n\t\t\t\tif (this._config.showArrows && this._$galleryItems.length > 1) {\n\t\t\t\t\tthis._$lightboxContainer.append('<div class=\"ekko-lightbox-nav-overlay\"><a href=\"#\">' + this._config.leftArrow + '</a><a href=\"#\">' + this._config.rightArrow + '</a></div>');\n\t\t\t\t\tthis._$modalArrows = this._$lightboxContainer.find('div.ekko-lightbox-nav-overlay').first();\n\t\t\t\t\tthis._$lightboxContainer.on('click', 'a:first-child', function (event) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn _this.navigateLeft();\n\t\t\t\t\t});\n\t\t\t\t\tthis._$lightboxContainer.on('click', 'a:last-child', function (event) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\treturn _this.navigateRight();\n\t\t\t\t\t});\n\t\t\t\t\tthis.updateNavigation();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis._$modal.on('show.bs.modal', this._config.onShow.bind(this)).on('shown.bs.modal', function () {\n\t\t\t\t_this._toggleLoading(true);\n\t\t\t\t_this._handle();\n\t\t\t\treturn _this._config.onShown.call(_this);\n\t\t\t}).on('hide.bs.modal', this._config.onHide.bind(this)).on('hidden.bs.modal', function () {\n\t\t\t\tif (_this._galleryName) {\n\t\t\t\t\t$(document).off('keydown.ekkoLightbox');\n\t\t\t\t\t$(window).off('resize.ekkoLightbox');\n\t\t\t\t}\n\t\t\t\t_this._$modal.remove();\n\t\t\t\treturn _this._config.onHidden.call(_this);\n\t\t\t}).modal(this._config);\n\n\t\t\t$(window).on('resize.ekkoLightbox', function () {\n\t\t\t\t_this._resize(_this._wantedWidth, _this._wantedHeight);\n\t\t\t});\n\t\t\tthis._$lightboxContainer.on('touchstart', function () {\n\t\t\t\t_this._touchstartX = event.changedTouches[0].screenX;\n\t\t\t}).on('touchend', function () {\n\t\t\t\t_this._touchendX = event.changedTouches[0].screenX;\n\t\t\t\t_this._swipeGesure();\n\t\t\t});\n\t\t}\n\n\t\t_createClass(Lightbox, [{\n\t\t\tkey: 'element',\n\t\t\tvalue: function element() {\n\t\t\t\treturn this._$element;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'modal',\n\t\t\tvalue: function modal() {\n\t\t\t\treturn this._$modal;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'navigateTo',\n\t\t\tvalue: function navigateTo(index) {\n\n\t\t\t\tif (index < 0 || index > this._$galleryItems.length - 1) return this;\n\n\t\t\t\tthis._galleryIndex = index;\n\n\t\t\t\tthis.updateNavigation();\n\n\t\t\t\tthis._$element = $(this._$galleryItems.get(this._galleryIndex));\n\t\t\t\tthis._handle();\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'navigateLeft',\n\t\t\tvalue: function navigateLeft() {\n\n\t\t\t\tif (!this._$galleryItems) return;\n\n\t\t\t\tif (this._$galleryItems.length === 1) return;\n\n\t\t\t\tif (this._galleryIndex === 0) {\n\t\t\t\t\tif (this._config.wrapping) this._galleryIndex = this._$galleryItems.length - 1;else return;\n\t\t\t\t} else //circular\n\t\t\t\t\tthis._galleryIndex--;\n\n\t\t\t\tthis._config.onNavigate.call(this, 'left', this._galleryIndex);\n\t\t\t\treturn this.navigateTo(this._galleryIndex);\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'navigateRight',\n\t\t\tvalue: function navigateRight() {\n\n\t\t\t\tif (!this._$galleryItems) return;\n\n\t\t\t\tif (this._$galleryItems.length === 1) return;\n\n\t\t\t\tif (this._galleryIndex === this._$galleryItems.length - 1) {\n\t\t\t\t\tif (this._config.wrapping) this._galleryIndex = 0;else return;\n\t\t\t\t} else //circular\n\t\t\t\t\tthis._galleryIndex++;\n\n\t\t\t\tthis._config.onNavigate.call(this, 'right', this._galleryIndex);\n\t\t\t\treturn this.navigateTo(this._galleryIndex);\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'updateNavigation',\n\t\t\tvalue: function updateNavigation() {\n\t\t\t\tif (!this._config.wrapping) {\n\t\t\t\t\tvar $nav = this._$lightboxContainer.find('div.ekko-lightbox-nav-overlay');\n\t\t\t\t\tif (this._galleryIndex === 0) $nav.find('a:first-child').addClass('disabled');else $nav.find('a:first-child').removeClass('disabled');\n\n\t\t\t\t\tif (this._galleryIndex === this._$galleryItems.length - 1) $nav.find('a:last-child').addClass('disabled');else $nav.find('a:last-child').removeClass('disabled');\n\t\t\t\t}\n\t\t\t}\n\t\t}, {\n\t\t\tkey: 'close',\n\t\t\tvalue: function close() {\n\t\t\t\treturn this._$modal.modal('hide');\n\t\t\t}\n\n\t\t\t// helper private methods\n\t\t}, {\n\t\t\tkey: '_navigationalBinder',\n\t\t\tvalue: function _navigationalBinder(event) {\n\t\t\t\tevent = event || window.event;\n\t\t\t\tif (event.keyCode === 39) return this.navigateRight();\n\t\t\t\tif (event.keyCode === 37) return this.navigateLeft();\n\t\t\t}\n\n\t\t\t// type detection private methods\n\t\t}, {\n\t\t\tkey: '_detectRemoteType',\n\t\t\tvalue: function _detectRemoteType(src, type) {\n\n\t\t\t\ttype = type || false;\n\n\t\t\t\tif (!type && this._isImage(src)) type = 'image';\n\t\t\t\tif (!type && this._getYoutubeId(src)) type = 'youtube';\n\t\t\t\tif (!type && this._getVimeoId(src)) type = 'vimeo';\n\t\t\t\tif (!type && this._getInstagramId(src)) type = 'instagram';\n\n\t\t\t\tif (!type || ['image', 'youtube', 'vimeo', 'instagram', 'video', 'url'].indexOf(type) < 0) type = 'url';\n\n\t\t\t\treturn type;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_isImage',\n\t\t\tvalue: function _isImage(string) {\n\t\t\t\treturn string && string.match(/(^data:image\\/.*,)|(\\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\\?|#).*)?$)/i);\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_containerToUse',\n\t\t\tvalue: function _containerToUse() {\n\t\t\t\tvar _this2 = this;\n\n\t\t\t\t// if currently showing an image, fade it out and remove\n\t\t\t\tvar $toUse = this._$lightboxBodyTwo;\n\t\t\t\tvar $current = this._$lightboxBodyOne;\n\n\t\t\t\tif (this._$lightboxBodyTwo.hasClass('in')) {\n\t\t\t\t\t$toUse = this._$lightboxBodyOne;\n\t\t\t\t\t$current = this._$lightboxBodyTwo;\n\t\t\t\t}\n\n\t\t\t\t$current.removeClass('in show');\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tif (!_this2._$lightboxBodyTwo.hasClass('in')) _this2._$lightboxBodyTwo.empty();\n\t\t\t\t\tif (!_this2._$lightboxBodyOne.hasClass('in')) _this2._$lightboxBodyOne.empty();\n\t\t\t\t}, 500);\n\n\t\t\t\t$toUse.addClass('in show');\n\t\t\t\treturn $toUse;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_handle',\n\t\t\tvalue: function _handle() {\n\n\t\t\t\tvar $toUse = this._containerToUse();\n\t\t\t\tthis._updateTitleAndFooter();\n\n\t\t\t\tvar currentRemote = this._$element.attr('data-remote') || this._$element.attr('href');\n\t\t\t\tvar currentType = this._detectRemoteType(currentRemote, this._$element.attr('data-type') || false);\n\n\t\t\t\tif (['image', 'youtube', 'vimeo', 'instagram', 'video', 'url'].indexOf(currentType) < 0) return this._error(this._config.strings.type);\n\n\t\t\t\tswitch (currentType) {\n\t\t\t\t\tcase 'image':\n\t\t\t\t\t\tthis._preloadImage(currentRemote, $toUse);\n\t\t\t\t\t\tthis._preloadImageByIndex(this._galleryIndex, 3);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'youtube':\n\t\t\t\t\t\tthis._showYoutubeVideo(currentRemote, $toUse);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'vimeo':\n\t\t\t\t\t\tthis._showVimeoVideo(this._getVimeoId(currentRemote), $toUse);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'instagram':\n\t\t\t\t\t\tthis._showInstagramVideo(this._getInstagramId(currentRemote), $toUse);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'video':\n\t\t\t\t\t\tthis._showHtml5Video(currentRemote, $toUse);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t// url\n\t\t\t\t\t\tthis._loadRemoteContent(currentRemote, $toUse);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_getYoutubeId',\n\t\t\tvalue: function _getYoutubeId(string) {\n\t\t\t\tif (!string) return false;\n\t\t\t\tvar matches = string.match(/^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/);\n\t\t\t\treturn matches && matches[2].length === 11 ? matches[2] : false;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_getVimeoId',\n\t\t\tvalue: function _getVimeoId(string) {\n\t\t\t\treturn string && string.indexOf('vimeo') > 0 ? string : false;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_getInstagramId',\n\t\t\tvalue: function _getInstagramId(string) {\n\t\t\t\treturn string && string.indexOf('instagram') > 0 ? string : false;\n\t\t\t}\n\n\t\t\t// layout private methods\n\t\t}, {\n\t\t\tkey: '_toggleLoading',\n\t\t\tvalue: function _toggleLoading(show) {\n\t\t\t\tshow = show || false;\n\t\t\t\tif (show) {\n\t\t\t\t\tthis._$modalDialog.css('display', 'none');\n\t\t\t\t\tthis._$modal.removeClass('in show');\n\t\t\t\t\t$('.modal-backdrop').append(this._config.loadingMessage);\n\t\t\t\t} else {\n\t\t\t\t\tthis._$modalDialog.css('display', 'block');\n\t\t\t\t\tthis._$modal.addClass('in show');\n\t\t\t\t\t$('.modal-backdrop').find('.ekko-lightbox-loader').remove();\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_calculateBorders',\n\t\t\tvalue: function _calculateBorders() {\n\t\t\t\treturn {\n\t\t\t\t\ttop: this._totalCssByAttribute('border-top-width'),\n\t\t\t\t\tright: this._totalCssByAttribute('border-right-width'),\n\t\t\t\t\tbottom: this._totalCssByAttribute('border-bottom-width'),\n\t\t\t\t\tleft: this._totalCssByAttribute('border-left-width')\n\t\t\t\t};\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_calculatePadding',\n\t\t\tvalue: function _calculatePadding() {\n\t\t\t\treturn {\n\t\t\t\t\ttop: this._totalCssByAttribute('padding-top'),\n\t\t\t\t\tright: this._totalCssByAttribute('padding-right'),\n\t\t\t\t\tbottom: this._totalCssByAttribute('padding-bottom'),\n\t\t\t\t\tleft: this._totalCssByAttribute('padding-left')\n\t\t\t\t};\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_totalCssByAttribute',\n\t\t\tvalue: function _totalCssByAttribute(attribute) {\n\t\t\t\treturn parseInt(this._$modalDialog.css(attribute), 10) + parseInt(this._$modalContent.css(attribute), 10) + parseInt(this._$modalBody.css(attribute), 10);\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_updateTitleAndFooter',\n\t\t\tvalue: function _updateTitleAndFooter() {\n\t\t\t\tvar title = this._$element.data('title') || \"\";\n\t\t\t\tvar caption = this._$element.data('footer') || \"\";\n\n\t\t\t\tthis._titleIsShown = false;\n\t\t\t\tif (title || this._config.alwaysShowClose) {\n\t\t\t\t\tthis._titleIsShown = true;\n\t\t\t\t\tthis._$modalHeader.css('display', '').find('.modal-title').html(title || \" \");\n\t\t\t\t} else this._$modalHeader.css('display', 'none');\n\n\t\t\t\tthis._footerIsShown = false;\n\t\t\t\tif (caption) {\n\t\t\t\t\tthis._footerIsShown = true;\n\t\t\t\t\tthis._$modalFooter.css('display', '').html(caption);\n\t\t\t\t} else this._$modalFooter.css('display', 'none');\n\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_showYoutubeVideo',\n\t\t\tvalue: function _showYoutubeVideo(remote, $containerForElement) {\n\t\t\t\tvar id = this._getYoutubeId(remote);\n\t\t\t\tvar query = remote.indexOf('&') > 0 ? remote.substr(remote.indexOf('&')) : '';\n\t\t\t\tvar width = this._$element.data('width') || 560;\n\t\t\t\tvar height = this._$element.data('height') || width / (560 / 315);\n\t\t\t\treturn this._showVideoIframe('//www.youtube.com/embed/' + id + '?badge=0&autoplay=1&html5=1' + query, width, height, $containerForElement);\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_showVimeoVideo',\n\t\t\tvalue: function _showVimeoVideo(id, $containerForElement) {\n\t\t\t\tvar width = this._$element.data('width') || 500;\n\t\t\t\tvar height = this._$element.data('height') || width / (560 / 315);\n\t\t\t\treturn this._showVideoIframe(id + '?autoplay=1', width, height, $containerForElement);\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_showInstagramVideo',\n\t\t\tvalue: function _showInstagramVideo(id, $containerForElement) {\n\t\t\t\t// instagram load their content into iframe's so this can be put straight into the element\n\t\t\t\tvar width = this._$element.data('width') || 612;\n\t\t\t\tvar height = width + 80;\n\t\t\t\tid = id.substr(-1) !== '/' ? id + '/' : id; // ensure id has trailing slash\n\t\t\t\t$containerForElement.html('<iframe width=\"' + width + '\" height=\"' + height + '\" src=\"' + id + 'embed/\" frameborder=\"0\" allowfullscreen></iframe>');\n\t\t\t\tthis._resize(width, height);\n\t\t\t\tthis._config.onContentLoaded.call(this);\n\t\t\t\tif (this._$modalArrows) //hide the arrows when showing video\n\t\t\t\t\tthis._$modalArrows.css('display', 'none');\n\t\t\t\tthis._toggleLoading(false);\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_showVideoIframe',\n\t\t\tvalue: function _showVideoIframe(url, width, height, $containerForElement) {\n\t\t\t\t// should be used for videos only. for remote content use loadRemoteContent (data-type=url)\n\t\t\t\theight = height || width; // default to square\n\t\t\t\t$containerForElement.html('<div class=\"embed-responsive embed-responsive-16by9\"><iframe width=\"' + width + '\" height=\"' + height + '\" src=\"' + url + '\" frameborder=\"0\" allowfullscreen class=\"embed-responsive-item\"></iframe></div>');\n\t\t\t\tthis._resize(width, height);\n\t\t\t\tthis._config.onContentLoaded.call(this);\n\t\t\t\tif (this._$modalArrows) this._$modalArrows.css('display', 'none'); //hide the arrows when showing video\n\t\t\t\tthis._toggleLoading(false);\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_showHtml5Video',\n\t\t\tvalue: function _showHtml5Video(url, $containerForElement) {\n\t\t\t\t// should be used for videos only. for remote content use loadRemoteContent (data-type=url)\n\t\t\t\tvar width = this._$element.data('width') || 560;\n\t\t\t\tvar height = this._$element.data('height') || width / (560 / 315);\n\t\t\t\t$containerForElement.html('<div class=\"embed-responsive embed-responsive-16by9\"><video width=\"' + width + '\" height=\"' + height + '\" src=\"' + url + '\" preload=\"auto\" autoplay controls class=\"embed-responsive-item\"></video></div>');\n\t\t\t\tthis._resize(width, height);\n\t\t\t\tthis._config.onContentLoaded.call(this);\n\t\t\t\tif (this._$modalArrows) this._$modalArrows.css('display', 'none'); //hide the arrows when showing video\n\t\t\t\tthis._toggleLoading(false);\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_loadRemoteContent',\n\t\t\tvalue: function _loadRemoteContent(url, $containerForElement) {\n\t\t\t\tvar _this3 = this;\n\n\t\t\t\tvar width = this._$element.data('width') || 560;\n\t\t\t\tvar height = this._$element.data('height') || 560;\n\n\t\t\t\tvar disableExternalCheck = this._$element.data('disableExternalCheck') || false;\n\t\t\t\tthis._toggleLoading(false);\n\n\t\t\t\t// external urls are loading into an iframe\n\t\t\t\t// local ajax can be loaded into the container itself\n\t\t\t\tif (!disableExternalCheck && !this._isExternal(url)) {\n\t\t\t\t\t$containerForElement.load(url, $.proxy(function () {\n\t\t\t\t\t\treturn _this3._$element.trigger('loaded.bs.modal');l;\n\t\t\t\t\t}));\n\t\t\t\t} else {\n\t\t\t\t\t$containerForElement.html('<iframe src=\"' + url + '\" frameborder=\"0\" allowfullscreen></iframe>');\n\t\t\t\t\tthis._config.onContentLoaded.call(this);\n\t\t\t\t}\n\n\t\t\t\tif (this._$modalArrows) //hide the arrows when remote content\n\t\t\t\t\tthis._$modalArrows.css('display', 'none');\n\n\t\t\t\tthis._resize(width, height);\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_isExternal',\n\t\t\tvalue: function _isExternal(url) {\n\t\t\t\tvar match = url.match(/^([^:\\/?#]+:)?(?:\\/\\/([^\\/?#]*))?([^?#]+)?(\\?[^#]*)?(#.*)?/);\n\t\t\t\tif (typeof match[1] === \"string\" && match[1].length > 0 && match[1].toLowerCase() !== location.protocol) return true;\n\n\t\t\t\tif (typeof match[2] === \"string\" && match[2].length > 0 && match[2].replace(new RegExp(':(' + ({\n\t\t\t\t\t\"http:\": 80,\n\t\t\t\t\t\"https:\": 443\n\t\t\t\t})[location.protocol] + ')?$'), \"\") !== location.host) return true;\n\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_error',\n\t\t\tvalue: function _error(message) {\n\t\t\t\tconsole.error(message);\n\t\t\t\tthis._containerToUse().html(message);\n\t\t\t\tthis._resize(300, 300);\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_preloadImageByIndex',\n\t\t\tvalue: function _preloadImageByIndex(startIndex, numberOfTimes) {\n\n\t\t\t\tif (!this._$galleryItems) return;\n\n\t\t\t\tvar next = $(this._$galleryItems.get(startIndex), false);\n\t\t\t\tif (typeof next == 'undefined') return;\n\n\t\t\t\tvar src = next.attr('data-remote') || next.attr('href');\n\t\t\t\tif (next.attr('data-type') === 'image' || this._isImage(src)) this._preloadImage(src, false);\n\n\t\t\t\tif (numberOfTimes > 0) return this._preloadImageByIndex(startIndex + 1, numberOfTimes - 1);\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_preloadImage',\n\t\t\tvalue: function _preloadImage(src, $containerForImage) {\n\t\t\t\tvar _this4 = this;\n\n\t\t\t\t$containerForImage = $containerForImage || false;\n\n\t\t\t\tvar img = new Image();\n\t\t\t\tif ($containerForImage) {\n\t\t\t\t\t(function () {\n\n\t\t\t\t\t\t// if loading takes > 200ms show a loader\n\t\t\t\t\t\tvar loadingTimeout = setTimeout(function () {\n\t\t\t\t\t\t\t$containerForImage.append(_this4._config.loadingMessage);\n\t\t\t\t\t\t}, 200);\n\n\t\t\t\t\t\timg.onload = function () {\n\t\t\t\t\t\t\tif (loadingTimeout) clearTimeout(loadingTimeout);\n\t\t\t\t\t\t\tloadingTimeout = null;\n\t\t\t\t\t\t\tvar image = $('<img />');\n\t\t\t\t\t\t\timage.attr('src', img.src);\n\t\t\t\t\t\t\timage.addClass('img-fluid');\n\n\t\t\t\t\t\t\t// backward compatibility for bootstrap v3\n\t\t\t\t\t\t\timage.css('width', '100%');\n\n\t\t\t\t\t\t\t$containerForImage.html(image);\n\t\t\t\t\t\t\tif (_this4._$modalArrows) _this4._$modalArrows.css('display', ''); // remove display to default to css property\n\n\t\t\t\t\t\t\t_this4._resize(img.width, img.height);\n\t\t\t\t\t\t\t_this4._toggleLoading(false);\n\t\t\t\t\t\t\treturn _this4._config.onContentLoaded.call(_this4);\n\t\t\t\t\t\t};\n\t\t\t\t\t\timg.onerror = function () {\n\t\t\t\t\t\t\t_this4._toggleLoading(false);\n\t\t\t\t\t\t\treturn _this4._error(_this4._config.strings.fail + (' ' + src));\n\t\t\t\t\t\t};\n\t\t\t\t\t})();\n\t\t\t\t}\n\n\t\t\t\timg.src = src;\n\t\t\t\treturn img;\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_swipeGesure',\n\t\t\tvalue: function _swipeGesure() {\n\t\t\t\tif (this._touchendX < this._touchstartX) {\n\t\t\t\t\treturn this.navigateRight();\n\t\t\t\t}\n\t\t\t\tif (this._touchendX > this._touchstartX) {\n\t\t\t\t\treturn this.navigateLeft();\n\t\t\t\t}\n\t\t\t}\n\t\t}, {\n\t\t\tkey: '_resize',\n\t\t\tvalue: function _resize(width, height) {\n\n\t\t\t\theight = height || width;\n\t\t\t\tthis._wantedWidth = width;\n\t\t\t\tthis._wantedHeight = height;\n\n\t\t\t\t// if width > the available space, scale down the expected width and height\n\t\t\t\tvar widthBorderAndPadding = this._padding.left + this._padding.right + this._border.left + this._border.right;\n\t\t\t\tvar maxWidth = Math.min(width + widthBorderAndPadding, this._config.doc.body.clientWidth);\n\t\t\t\tif (width + widthBorderAndPadding > maxWidth) {\n\t\t\t\t\theight = (maxWidth - widthBorderAndPadding) / width * height;\n\t\t\t\t\twidth = maxWidth;\n\t\t\t\t} else width = width + widthBorderAndPadding;\n\n\t\t\t\tvar headerHeight = 0,\n\t\t\t\t footerHeight = 0;\n\n\t\t\t\t// as the resize is performed the modal is show, the calculate might fail\n\t\t\t\t// if so, default to the default sizes\n\t\t\t\tif (this._footerIsShown) footerHeight = this._$modalFooter.outerHeight(true) || 55;\n\n\t\t\t\tif (this._titleIsShown) headerHeight = this._$modalHeader.outerHeight(true) || 67;\n\n\t\t\t\tvar borderPadding = this._padding.top + this._padding.bottom + this._border.bottom + this._border.top;\n\n\t\t\t\t//calculated each time as resizing the window can cause them to change due to Bootstraps fluid margins\n\t\t\t\tvar margins = parseFloat(this._$modalDialog.css('margin-top')) + parseFloat(this._$modalDialog.css('margin-bottom'));\n\n\t\t\t\tvar maxHeight = Math.min(height, $(window).height() - borderPadding - margins - headerHeight - footerHeight);\n\t\t\t\tif (height > maxHeight) {\n\t\t\t\t\t// if height > the available height, scale down the width\n\t\t\t\t\tvar factor = Math.min(maxHeight / height, 1);\n\t\t\t\t\twidth = Math.ceil(factor * width);\n\t\t\t\t}\n\n\t\t\t\tthis._$lightboxContainer.css('height', maxHeight);\n\t\t\t\tthis._$modalDialog.css('width', 'auto').css('maxWidth', width);\n\n\t\t\t\tvar modal = this._$modal.data('bs.modal');\n\t\t\t\tif (modal) {\n\t\t\t\t\t// v4 method is mistakenly protected\n\t\t\t\t\ttry {\n\t\t\t\t\t\tmodal._handleUpdate();\n\t\t\t\t\t} catch (Exception) {\n\t\t\t\t\t\tmodal.handleUpdate();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}], [{\n\t\t\tkey: '_jQueryInterface',\n\t\t\tvalue: function _jQueryInterface(config) {\n\t\t\t\tvar _this5 = this;\n\n\t\t\t\tconfig = config || {};\n\t\t\t\treturn this.each(function () {\n\t\t\t\t\tvar $this = $(_this5);\n\t\t\t\t\tvar _config = $.extend({}, Lightbox.Default, $this.data(), typeof config === 'object' && config);\n\n\t\t\t\t\tnew Lightbox(_this5, _config);\n\t\t\t\t});\n\t\t\t}\n\t\t}]);\n\n\t\treturn Lightbox;\n\t})();\n\n\t$.fn[NAME] = Lightbox._jQueryInterface;\n\t$.fn[NAME].Constructor = Lightbox;\n\t$.fn[NAME].noConflict = function () {\n\t\t$.fn[NAME] = JQUERY_NO_CONFLICT;\n\t\treturn Lightbox._jQueryInterface;\n\t};\n\n\treturn Lightbox;\n})(jQuery);\n//# sourceMappingURL=ekko-lightbox.js.map\n\n}(jQuery);\n","/* ========================================================================\n * DOM-based Routing\n * Based on http://goo.gl/EUTi53 by Paul Irish\n *\n * Only fires on body classes that match. If a body class contains a dash,\n * replace the dash with an underscore when adding it to the object below.\n *\n * .noConflict()\n * The routing is enclosed within an anonymous function so that you can\n * always reference jQuery with $, even when in .noConflict() mode.\n * ======================================================================== */\n\n(function ($) {\n\n // Use this variable to set up the common and page specific functions. If you\n // rename this variable, you will also need to rename the namespace below.\n var Sage = {\n // All pages\n 'common': {\n init: function () {\n\n $(document).on('click', '[data-toggle=\"lightbox\"]', function(event) {\n event.preventDefault();\n $(this).ekkoLightbox();\n });\n\n // === Quiz Game functions === START === */\n function setBackgroundSize() {\n var content_height = $('.entry-background').height() - (40 + 280) - 265;\n var correct_height = Math.ceil(content_height / 176) * 176;\n $('.entry-background-middle').height(correct_height + 176);\n }\n\n function setCurrentLevelTitle(currentLevel) {\n currentLevel = parseInt(currentLevel) || 1;\n var $levelBlock = $('.row-level .current-level-block');\n\n $levelBlock.find('.current-level').hide(0);\n $levelBlock.find('.current-level-' + currentLevel).show(0);\n }\n\n function resetQuiz(game) {\n if (game === true) {\n $('.row-game').hide();\n } else {\n $('.row-question').hide();\n }\n $('.row-question').stop(true, true);\n $('.question-answer-box').removeClass('selected');\n $('.row-game .game-star').removeClass('complete');\n $('.row-game .game-progress-correct').text('0');\n $('.row-game .quiz-number').removeClass('complete');\n $('.row-question .question-form input[name=\"quiz_id\"]').val(0);\n $('.row-question .question-form input[name=\"quiz_answer\"]').val(0);\n $('.row-question .question-form input[name=\"quiz_number\"]').val(0);\n $('.row-next').hide();\n $('.row-game .quiz-button-start').show();\n }\n\n function getQuestion(quiz_id, quiz_number) {\n $.ajax({\n type: 'POST',\n url: ajaxurl,\n dataType: 'JSON',\n data: {\n 'action': 'get_question',\n 'quiz_id': quiz_id,\n 'level': $('.row-game .col-quiz .level-form input[name=\"level\"]').val()\n },\n beforeSend: function () {\n resetQuiz(true);\n },\n success: function (json) {\n if (json && json.id) {\n $('.row-question .question-image').empty();\n if (json.image !== null && json.image.length) {\n $('.row-question .question-image').html('<img src=\"' + json.image + '\" />');\n }\n $('.row-question .question-form input[name=\"quiz_id\"]').val(json.id);\n $('.row-question .question-form input[name=\"quiz_number\"]').val(quiz_number);\n $('.row-question .question-content').text(json.question);\n $('.row-question .question-information').text(json.additional_information);\n $('.row-question .question-answer-1').text(json.answer_1);\n $('.row-question .question-answer-2').text(json.answer_2);\n $('.row-question .question-answer-3').text(json.answer_3);\n $('.row-question .question-answer-4').text(json.answer_4);\n\n var textLength1 = parseInt($('.row-question .question-answer-1').text().length);\n var fontSize1 = Math.ceil(18 - (textLength1 / 45));\n $('.row-question .question-answer-1').css({'font-size': fontSize1 + 'px'});\n if (textLength1 === 0) {\n $('.row-question .question-answer-1').closest('.question-answer-box').hide(0);\n } else {\n $('.row-question .question-answer-1').closest('.question-answer-box').show(0);\n }\n\n var textLength2 = parseInt($('.row-question .question-answer-2').text().length);\n var fontSize2 = Math.ceil(18 - (textLength2 / 45));\n $('.row-question .question-answer-2').css({'font-size': fontSize2 + 'px'});\n if (textLength2 === 0) {\n $('.row-question .question-answer-2').closest('.question-answer-box').hide(0);\n } else {\n $('.row-question .question-answer-2').closest('.question-answer-box').show(0);\n }\n\n var textLength3 = parseInt($('.row-question .question-answer-3').text().length);\n var fontSize3 = Math.ceil(18 - (textLength3 / 45));\n $('.row-question .question-answer-3').css({'font-size': fontSize3 + 'px'});\n if (textLength3 === 0) {\n $('.row-question .question-answer-3').closest('.question-answer-box').hide(0);\n } else {\n $('.row-question .question-answer-3').closest('.question-answer-box').show(0);\n }\n\n var textLength4 = parseInt($('.row-question .question-answer-4').text().length);\n var fontSize4 = Math.ceil(18 - (textLength4 / 45));\n $('.row-question .question-answer-4').css({'font-size': fontSize4 + 'px'});\n if (textLength4 === 0) {\n $('.row-question .question-answer-4').closest('.question-answer-box').hide(0);\n } else {\n $('.row-question .question-answer-4').closest('.question-answer-box').show(0);\n }\n\n $('.row-question').css({display: 'block', opacity: 0}).animate({opacity: 1}, 1000);\n\n setBackgroundSize();\n setTimeout(function() {\n setBackgroundSize();\n }, 1001);\n }\n setBackgroundSize();\n }\n });\n }\n\n function setCompletionLevel(level) {\n level = parseInt(level) || 0;\n if (level >= 1) {\n $('.row-game .col-stars .game-star').eq(0).addClass('complete');\n }\n if (level >= 2) {\n $('.row-game .col-stars .game-star').eq(1).addClass('complete');\n }\n if (level >= 3) {\n $('.row-game .col-stars .game-star').eq(2).addClass('complete');\n }\n if (level >= 4) {\n $('.row-game .col-stars .game-star').eq(3).addClass('complete');\n }\n if (level >= 5) {\n $('.row-game .col-stars .game-star').eq(4).addClass('complete');\n }\n if (level >= 6) {\n $('.row-game .col-stars .game-star').eq(5).addClass('complete');\n }\n if (level >= 7) {\n $('.row-game .col-stars .game-star').eq(6).addClass('complete');\n }\n }\n\n var total_levels = 7;\n\n function validateAnswer(quiz_id, quiz_answer) {\n if (quiz_id > 0 && quiz_answer > 0) {\n var level = parseInt($('.row-game .col-quiz .level-form input[name=\"level\"]').val());\n $.ajax({\n type: 'POST',\n url: ajaxurl,\n dataType: 'JSON',\n data: {\n 'action': 'validate_question_answer',\n 'quiz_id': quiz_id,\n 'quiz_answer': quiz_answer,\n 'level': level\n },\n success: function (json) {\n $('.question-button-next').css({'z-index': -9999});\n var c = 0;\n if (json && json.id) {\n if (json.correct === true) {\n c = 1;\n }\n }\n $('.level-form input[name=\"correct_' + quiz_id + '\"]').val(c);\n $('.level-form input[name=\"selected_' + quiz_id + '\"]').val(quiz_answer);\n\n $('.question-answer-box .fa').hide();\n $('.hidden-overlay').show();\n for (var a = 1; a <= 4; a+=1) {\n if (a === json.answer) {\n $('.question-answer-box .correct-' + a).show();\n } else {\n $('.question-answer-box .incorrect-' + a).show();\n }\n }\n\n setTimeout(function() {\n $('.question-button-next').css({'z-index': 1});\n $('.question-answer-box .fa').hide();\n $('.hidden-overlay').hide();\n var quiz_number = parseInt($('.row-question .question-form input[name=\"quiz_number\"]').val());\n /* Index starts from zero */\n var next_quiz_id = $('.row-game .quiz-number').eq(quiz_number).data('quizId');\n var next_quiz_number = $('.row-game .quiz-number').eq(quiz_number).data('quizNumber');\n if (next_quiz_number !== undefined) {\n /* Next Question */\n getQuestion(next_quiz_id, next_quiz_number);\n } else {\n /* Last Question, Calculate Results */\n var cor = 0;\n var inc = 0;\n $('.row-game .quiz-number').each(function (i, obj) {\n var elem = $(this);\n var quiz_id = elem.data('quizId');\n var quiz_correct_value = $('.row-game .col-quiz .level-form input[name=\"correct_' + quiz_id + '\"]').val();\n quiz_correct_value = parseInt(quiz_correct_value);\n if (quiz_correct_value === 1) {\n elem.addClass('complete');\n cor += 1;\n } else {\n inc += 1;\n }\n });\n var tot = cor + inc;\n // var per = Math.ceil((cor / tot) * 100); // Old completion logic\n setCompletionLevel(level);\n\n $('.row-game .game-progress-correct').text(cor);\n $('.row-game .game-progress-total').text(tot);\n $('.row-game .quiz-button-start').hide();\n $('.row-question').hide();\n $('.row-game').css({display: 'block', opacity: 0}).animate({opacity: 1}, 1000);\n if (level < total_levels) {\n $('.row-next').css({display: 'block', opacity: 0}).animate({opacity: 1}, 1000);\n $('.row-next .row-next-option').hide();\n $('.row-next .row-next-option-' + (level+1)).show();\n }\n if (level > 1) {\n $('.row-reset').css({display: 'block', opacity: 0}).animate({opacity: 1}, 1000);\n }\n }\n setBackgroundSize();\n }, 1700);\n }\n });\n }\n }\n\n function loadLevel(level) {\n $('.row-game').css({opacity: 1}).animate({opacity: 0}, 1000, function () {\n $('.row-game').css({display: 'none'});\n });\n $('.row-next').css({opacity: 1}).animate({opacity: 0}, 1000, function () {\n $('.row-game').css({display: 'none'});\n $.ajax({\n type: 'POST',\n url: ajaxurl,\n dataType: 'JSON',\n data: {\n 'action': 'get_level',\n 'level': parseInt(level)\n },\n success: function (json) {\n if (json) {\n var quiz_numbers_html = '';\n var quiz_form_html = '';\n quiz_form_html += '<input type=\"hidden\" name=\"level\" value=\"' + level + '\">';\n $.each(json, function (index, value) {\n quiz_numbers_html += '<div data-quiz-id=\"' + value + '\" data-quiz-number=\"' + (index + 1) + '\" class=\"quiz-number\">' + (index + 1) + '</div>';\n quiz_form_html += '<input type=\"hidden\" name=\"correct_' + value + '\" value=\"0\">';\n quiz_form_html += '<input type=\"hidden\" name=\"selected_' + value + '\" value=\"0\">';\n });\n $('.row-game .col-quiz .level-questions-list').html(quiz_numbers_html);\n $('.row-game .col-quiz .level-form').html(quiz_form_html);\n $('.row-game .col-progress .game-progress-total').text(json.length);\n resetQuiz(false);\n setCompletionLevel(level - 1);\n $('.row-game').css({display: 'block', opacity: 0}).animate({opacity: 1}, 1000);\n if (level > 1) {\n $('.row-reset').css({display: 'block', opacity: 0}).animate({opacity: 1}, 1000);\n }\n }\n setBackgroundSize();\n }\n });\n setCurrentLevelTitle(level);\n });\n $('.row-question').hide();\n }\n\n $(document).on('click', '.question-answer-box', function () {\n $('.question-answer-box').removeClass('selected');\n $(this).addClass('selected');\n $('.row-question .question-form input[name=\"quiz_answer\"]').val($(this).data('answer'));\n });\n\n $(function() {\n setBackgroundSize();\n setCurrentLevelTitle(1);\n });\n\n $(window).resize(function() {\n setBackgroundSize();\n });\n\n $(document).on('click', '.row-game .quiz-button-start', function (event) {\n event.preventDefault();\n var quiz_id = $('.row-game .quiz-number').eq(0).data('quizId');\n var quiz_number = $('.row-game .quiz-number').eq(0).data('quizNumber');\n getQuestion(quiz_id, quiz_number);\n $('.row-reset').css({opacity: 1}).animate({opacity: 0}, 1000, function () {\n $('.row-reset').css({display: 'none'});\n });\n });\n\n $(document).on('click', '.row-game .quiz-button-reset', function (event) {\n event.preventDefault();\n resetQuiz(false);\n });\n\n $(document).on('click', '.row-next .next-level-box', function (event) {\n event.preventDefault();\n var level = parseInt($('.row-game .col-quiz .level-form input[name=\"level\"]').val());\n level += 1;\n loadLevel(level);\n });\n\n $(document).on('click', '.row-reset .reset-game-box', function (event) {\n event.preventDefault();\n var level = 1;\n loadLevel(level);\n $('.row-reset').css({opacity: 1}).animate({opacity: 0}, 1000, function () {\n $('.row-reset').css({display: 'none'});\n });\n });\n\n $(document).on('click', '.row-question .question-button-next', function (event) {\n var quiz_id = parseInt($('.row-question .question-form input[name=\"quiz_id\"]').val());\n var quiz_number = parseInt($('.row-question .question-form input[name=\"quiz_number\"]').val());\n var quiz_answer = parseInt($('.row-question .question-form input[name=\"quiz_answer\"]').val());\n if (quiz_id > 0 && quiz_number > 0 && quiz_answer > 0) {\n $('.level-form input[name=\"correct_' + quiz_id + '\"]').val(0);\n $('.level-form input[name=\"selected_' + quiz_id + '\"]').val(quiz_answer);\n validateAnswer(quiz_id, quiz_answer);\n } else {\n $('.question-answer').addClass('shake shake-constant');\n setTimeout(function() {\n $('.question-answer').removeClass('shake shake-constant');\n }, 300);\n }\n });\n\n // === Quiz Game functions === END === */\n\n // All pages background size\n var content_height = $('.entry-background').height() - (40 + 280) - 265;\n var correct_height = Math.ceil(content_height / 176) * 176;\n $('.entry-background-middle').height(correct_height + 176);\n\n function resizeFrontPageBlock() {\n var $frontPageBlock = $('.front-page-container');\n if ($frontPageBlock.length) {\n if ($(window).width() > 991) {\n var $cW = $(window).width() - 30;\n var $cH = $(window).height() - (75 + 40 + 30);\n var $nW = $cW;\n var $nH = $cW * (580 / 676);\n if ($nH > $cH) {\n $nW = $cH * (676 / 580);\n $nH = $cH;\n }\n $nW = Math.round($nW) + 'px';\n $nH = Math.round($nH) + 'px';\n $frontPageBlock.css({\n 'width': $nW,\n 'height': $nH\n });\n } else {\n $frontPageBlock.css({\n 'width': 'auto',\n 'height': 'auto'\n });\n }\n }\n }\n\n resizeFrontPageBlock();\n\n $(window).resize(function() {\n resizeFrontPageBlock();\n });\n\n },\n\n finalize: function () {\n // JavaScript to be fired on all pages, after page specific JS is fired\n }\n },\n // Home page\n 'home': {\n init: function () {\n // JavaScript to be fired on the home page\n },\n finalize: function () {\n // JavaScript to be fired on the home page, after the init JS\n }\n },\n // About us page, note the change from about-us to about_us.\n 'about_us': {\n init: function () {\n // JavaScript to be fired on the about us page\n }\n }\n };\n\n // The routing fires all common scripts, followed by the page specific scripts.\n // Add additional events for more control over timing e.g. a finalize event\n var UTIL = {\n fire: function (func, funcname, args) {\n var fire;\n var namespace = Sage;\n funcname = (funcname === undefined) ? 'init' : funcname;\n fire = func !== '';\n fire = fire && namespace[func];\n fire = fire && typeof namespace[func][funcname] === 'function';\n\n if (fire) {\n namespace[func][funcname](args);\n }\n },\n loadEvents: function () {\n // Fire common init JS\n UTIL.fire('common');\n\n // Fire page-specific init JS, and then finalize JS\n $.each(document.body.className.replace(/-/g, '_').split(/\\s+/), function (i, classnm) {\n UTIL.fire(classnm);\n UTIL.fire(classnm, 'finalize');\n });\n\n // Fire common finalize JS\n UTIL.fire('common', 'finalize');\n }\n };\n\n // Load Events\n $(document).ready(UTIL.loadEvents);\n\n})(jQuery); // Fully reference jQuery after this point.\n"],"sourceRoot":"assets/scripts/"}