| Server IP : 104.21.80.248 / Your IP : 172.71.28.155 Web Server : Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30 System : Windows NT WIN-ECQAAA40806 6.2 build 9200 (Windows Server 2012 Standard Edition) i586 User : SYSTEM ( 0) PHP Version : 5.6.30 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /Inetpub/www/myschool/triamudom/tuprblearn/theme/boost/amd/build/ |
Upload File : |
{"version":3,"sources":["../src/tether.js"],"names":["root","factory","define","amd","exports","module","require","Tether","_createClass","defineProperties","target","props","i","descriptor","length","enumerable","configurable","writable","Object","defineProperty","key","Constructor","protoProps","staticProps","prototype","_classCallCheck","instance","TypeError","TetherBase","modules","zeroElement","getActualBoundingClientRect","node","boundingRect","getBoundingClientRect","rect","k","ownerDocument","document","_frameElement","defaultView","frameElement","frameRect","top","bottom","left","right","getScrollParents","el","computedStyle","getComputedStyle","position","parents","parent","parentNode","nodeType","style","err","push","_style","overflow","overflowX","overflowY","test","indexOf","body","uniqueId","id","zeroPosCache","getOrigin","createElement","setAttribute","extend","appendChild","getAttribute","defer","removeUtilElements","removeChild","getBounds","doc","documentElement","docEl","box","origin","width","scrollWidth","height","scrollHeight","clientTop","clientLeft","clientWidth","clientHeight","getOffsetParent","offsetParent","getScrollBarSize","inner","outer","pointerEvents","visibility","widthContained","offsetWidth","widthScroll","out","arguments","args","Array","apply","slice","forEach","obj","hasOwnProperty","call","removeClass","name","classList","split","cls","trim","remove","regex","RegExp","join","className","getClassName","replace","setClassName","addClass","add","hasClass","contains","SVGAnimatedString","baseVal","updateClasses","all","deferred","fn","flush","pop","Evented","value","event","handler","ctx","once","bindings","on","splice","_len","_key","_bindings$event$i","context","Utils","_slicedToArray","sliceIterator","arr","_arr","_n","_d","_e","_i","Symbol","iterator","_s","next","done","isArray","_get","_x6","_x7","_x8","_again","_function","object","property","receiver","Function","desc","getOwnPropertyDescriptor","getPrototypeOf","getter","get","_inherits","subClass","superClass","create","constructor","setPrototypeOf","__proto__","Error","_TetherBase$Utils","within","a","b","diff","transformKey","transforms","tethers","tether","now","performance","Date","lastCall","lastDuration","pendingTimeout","tick","Math","min","setTimeout","clearTimeout","window","addEventListener","MIRROR_LR","center","MIRROR_TB","middle","OFFSET_MAP","autoToFixedAttachment","attachment","relativeToAttachment","attachmentToOffset","addOffset","offsets","_ref","parseFloat","offsetToPx","offset","size","parseOffset","_value$split","_value$split2","parseAttachment","TetherClass","_Evented","options","_this","bind","history","setOptions","initialize","classes","classPrefix","_this2","pos","targetOffset","targetAttachment","_options","element","targetModifier","jquery","querySelector","getClass","addTargetClasses","scrollParents","disable","enabled","enable","pageYOffset","pageXOffset","innerHeight","innerWidth","bounds","hasBottomScroll","scrollBottom","borderTopWidth","borderBottomWidth","borderLeftWidth","fitAdj","pow","max","scrollPercentage","scrollTop","_cache","_this3","_this4","removeEventListener","_this5","elementAttach","targetAttach","_this6","_addAttachClasses","side","_this7","flushChanges","clearCache","updateAttachClasses","elementPos","cache","lastSize","_lastSize","targetPos","getTargetBounds","targetSize","manualOffset","manualTargetOffset","_module2","ret","scrollbarSize","page","viewport","win","parentElement","optimizations","moveElement","offsetPosition","offsetParentStyle","offsetParentSize","offsetBorder","toLowerCase","scrollLeft","move","unshift","_this8","same","type","found","point","css","transcribe","_same","_pos","hasOptimizations","gpu","yPos","xPos","round","moved","offsetParentIsBody","currentNode","tagName","writeCSS","write","val","elVal","BOUNDS_FORMAT","getBoundingRect","to","toUpperCase","substr","constraints","targetHeight","targetWidth","allClasses","constraint","outOfBoundsClass","pinnedClass","addClasses","tAttachment","eAttachment","pin","changeAttachX","changeAttachY","_attachment$split","_attachment$split2","map","p","pinned","oob","oobClass","trigger","abutted","targetPosSide","shift","shiftTop","shiftLeft","_shift","_shift2"],"mappings":"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","sourcesContent":["/*! tether 1.3.3 */\n\n(function(root, factory) {\n if (typeof define === 'function' && define.amd) {\n define(factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require, exports, module);\n } else {\n root.Tether = factory();\n }\n}(this, function(require, exports, module) {\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 TetherBase = undefined;\nif (typeof TetherBase === 'undefined') {\n TetherBase = { modules: [] };\n}\n\nvar zeroElement = null;\n\n// Same as native getBoundingClientRect, except it takes into account parent <frame> offsets\n// if the element lies within a nested document (<frame> or <iframe>-like).\nfunction getActualBoundingClientRect(node) {\n var boundingRect = node.getBoundingClientRect();\n\n // The original object returned by getBoundingClientRect is immutable, so we clone it\n // We can't use extend because the properties are not considered part of the object by hasOwnProperty in IE9\n var rect = {};\n for (var k in boundingRect) {\n rect[k] = boundingRect[k];\n }\n\n if (node.ownerDocument !== document) {\n var _frameElement = node.ownerDocument.defaultView.frameElement;\n if (_frameElement) {\n var frameRect = getActualBoundingClientRect(_frameElement);\n rect.top += frameRect.top;\n rect.bottom += frameRect.top;\n rect.left += frameRect.left;\n rect.right += frameRect.left;\n }\n }\n\n return rect;\n}\n\nfunction getScrollParents(el) {\n // In firefox if the el is inside an iframe with display: none; window.getComputedStyle() will return null;\n // https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n var computedStyle = getComputedStyle(el) || {};\n var position = computedStyle.position;\n var parents = [];\n\n if (position === 'fixed') {\n return [el];\n }\n\n var parent = el;\n while ((parent = parent.parentNode) && parent && parent.nodeType === 1) {\n var style = undefined;\n try {\n style = getComputedStyle(parent);\n } catch (err) {}\n\n if (typeof style === 'undefined' || style === null) {\n parents.push(parent);\n return parents;\n }\n\n var _style = style;\n var overflow = _style.overflow;\n var overflowX = _style.overflowX;\n var overflowY = _style.overflowY;\n\n if (/(auto|scroll)/.test(overflow + overflowY + overflowX)) {\n if (position !== 'absolute' || ['relative', 'absolute', 'fixed'].indexOf(style.position) >= 0) {\n parents.push(parent);\n }\n }\n }\n\n parents.push(el.ownerDocument.body);\n\n // If the node is within a frame, account for the parent window scroll\n if (el.ownerDocument !== document) {\n parents.push(el.ownerDocument.defaultView);\n }\n\n return parents;\n}\n\nvar uniqueId = (function () {\n var id = 0;\n return function () {\n return ++id;\n };\n})();\n\nvar zeroPosCache = {};\nvar getOrigin = function getOrigin() {\n // getBoundingClientRect is unfortunately too accurate. It introduces a pixel or two of\n // jitter as the user scrolls that messes with our ability to detect if two positions\n // are equivilant or not. We place an element at the top left of the page that will\n // get the same jitter, so we can cancel the two out.\n var node = zeroElement;\n if (!node) {\n node = document.createElement('div');\n node.setAttribute('data-tether-id', uniqueId());\n extend(node.style, {\n top: 0,\n left: 0,\n position: 'absolute'\n });\n\n document.body.appendChild(node);\n\n zeroElement = node;\n }\n\n var id = node.getAttribute('data-tether-id');\n if (typeof zeroPosCache[id] === 'undefined') {\n zeroPosCache[id] = getActualBoundingClientRect(node);\n\n // Clear the cache when this position call is done\n defer(function () {\n delete zeroPosCache[id];\n });\n }\n\n return zeroPosCache[id];\n};\n\nfunction removeUtilElements() {\n if (zeroElement) {\n document.body.removeChild(zeroElement);\n }\n zeroElement = null;\n};\n\nfunction getBounds(el) {\n var doc = undefined;\n if (el === document) {\n doc = document;\n el = document.documentElement;\n } else {\n doc = el.ownerDocument;\n }\n\n var docEl = doc.documentElement;\n\n var box = getActualBoundingClientRect(el);\n\n var origin = getOrigin();\n\n box.top -= origin.top;\n box.left -= origin.left;\n\n if (typeof box.width === 'undefined') {\n box.width = document.body.scrollWidth - box.left - box.right;\n }\n if (typeof box.height === 'undefined') {\n box.height = document.body.scrollHeight - box.top - box.bottom;\n }\n\n box.top = box.top - docEl.clientTop;\n box.left = box.left - docEl.clientLeft;\n box.right = doc.body.clientWidth - box.width - box.left;\n box.bottom = doc.body.clientHeight - box.height - box.top;\n\n return box;\n}\n\nfunction getOffsetParent(el) {\n return el.offsetParent || document.documentElement;\n}\n\nfunction getScrollBarSize() {\n var inner = document.createElement('div');\n inner.style.width = '100%';\n inner.style.height = '200px';\n\n var outer = document.createElement('div');\n extend(outer.style, {\n position: 'absolute',\n top: 0,\n left: 0,\n pointerEvents: 'none',\n visibility: 'hidden',\n width: '200px',\n height: '150px',\n overflow: 'hidden'\n });\n\n outer.appendChild(inner);\n\n document.body.appendChild(outer);\n\n var widthContained = inner.offsetWidth;\n outer.style.overflow = 'scroll';\n var widthScroll = inner.offsetWidth;\n\n if (widthContained === widthScroll) {\n widthScroll = outer.clientWidth;\n }\n\n document.body.removeChild(outer);\n\n var width = widthContained - widthScroll;\n\n return { width: width, height: width };\n}\n\nfunction extend() {\n var out = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n var args = [];\n\n Array.prototype.push.apply(args, arguments);\n\n args.slice(1).forEach(function (obj) {\n if (obj) {\n for (var key in obj) {\n if (({}).hasOwnProperty.call(obj, key)) {\n out[key] = obj[key];\n }\n }\n }\n });\n\n return out;\n}\n\nfunction removeClass(el, name) {\n if (typeof el.classList !== 'undefined') {\n name.split(' ').forEach(function (cls) {\n if (cls.trim()) {\n el.classList.remove(cls);\n }\n });\n } else {\n var regex = new RegExp('(^| )' + name.split(' ').join('|') + '( |$)', 'gi');\n var className = getClassName(el).replace(regex, ' ');\n setClassName(el, className);\n }\n}\n\nfunction addClass(el, name) {\n if (typeof el.classList !== 'undefined') {\n name.split(' ').forEach(function (cls) {\n if (cls.trim()) {\n el.classList.add(cls);\n }\n });\n } else {\n removeClass(el, name);\n var cls = getClassName(el) + (' ' + name);\n setClassName(el, cls);\n }\n}\n\nfunction hasClass(el, name) {\n if (typeof el.classList !== 'undefined') {\n return el.classList.contains(name);\n }\n var className = getClassName(el);\n return new RegExp('(^| )' + name + '( |$)', 'gi').test(className);\n}\n\nfunction getClassName(el) {\n // Can't use just SVGAnimatedString here since nodes within a Frame in IE have\n // completely separately SVGAnimatedString base classes\n if (el.className instanceof el.ownerDocument.defaultView.SVGAnimatedString) {\n return el.className.baseVal;\n }\n return el.className;\n}\n\nfunction setClassName(el, className) {\n el.setAttribute('class', className);\n}\n\nfunction updateClasses(el, add, all) {\n // Of the set of 'all' classes, we need the 'add' classes, and only the\n // 'add' classes to be set.\n all.forEach(function (cls) {\n if (add.indexOf(cls) === -1 && hasClass(el, cls)) {\n removeClass(el, cls);\n }\n });\n\n add.forEach(function (cls) {\n if (!hasClass(el, cls)) {\n addClass(el, cls);\n }\n });\n}\n\nvar deferred = [];\n\nvar defer = function defer(fn) {\n deferred.push(fn);\n};\n\nvar flush = function flush() {\n var fn = undefined;\n while (fn = deferred.pop()) {\n fn();\n }\n};\n\nvar Evented = (function () {\n function Evented() {\n _classCallCheck(this, Evented);\n }\n\n _createClass(Evented, [{\n key: 'on',\n value: function on(event, handler, ctx) {\n var once = arguments.length <= 3 || arguments[3] === undefined ? false : arguments[3];\n\n if (typeof this.bindings === 'undefined') {\n this.bindings = {};\n }\n if (typeof this.bindings[event] === 'undefined') {\n this.bindings[event] = [];\n }\n this.bindings[event].push({ handler: handler, ctx: ctx, once: once });\n }\n }, {\n key: 'once',\n value: function once(event, handler, ctx) {\n this.on(event, handler, ctx, true);\n }\n }, {\n key: 'off',\n value: function off(event, handler) {\n if (typeof this.bindings === 'undefined' || typeof this.bindings[event] === 'undefined') {\n return;\n }\n\n if (typeof handler === 'undefined') {\n delete this.bindings[event];\n } else {\n var i = 0;\n while (i < this.bindings[event].length) {\n if (this.bindings[event][i].handler === handler) {\n this.bindings[event].splice(i, 1);\n } else {\n ++i;\n }\n }\n }\n }\n }, {\n key: 'trigger',\n value: function trigger(event) {\n if (typeof this.bindings !== 'undefined' && this.bindings[event]) {\n var i = 0;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n while (i < this.bindings[event].length) {\n var _bindings$event$i = this.bindings[event][i];\n var handler = _bindings$event$i.handler;\n var ctx = _bindings$event$i.ctx;\n var once = _bindings$event$i.once;\n\n var context = ctx;\n if (typeof context === 'undefined') {\n context = this;\n }\n\n handler.apply(context, args);\n\n if (once) {\n this.bindings[event].splice(i, 1);\n } else {\n ++i;\n }\n }\n }\n }\n }]);\n\n return Evented;\n})();\n\nTetherBase.Utils = {\n getActualBoundingClientRect: getActualBoundingClientRect,\n getScrollParents: getScrollParents,\n getBounds: getBounds,\n getOffsetParent: getOffsetParent,\n extend: extend,\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n updateClasses: updateClasses,\n defer: defer,\n flush: flush,\n uniqueId: uniqueId,\n Evented: Evented,\n getScrollBarSize: getScrollBarSize,\n removeUtilElements: removeUtilElements\n};\n/* globals TetherBase, performance */\n\n'use strict';\n\nvar _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();\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\nvar _get = function get(_x6, _x7, _x8) { var _again = true; _function: while (_again) { var object = _x6, property = _x7, receiver = _x8; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x6 = parent; _x7 = property; _x8 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nif (typeof TetherBase === 'undefined') {\n throw new Error('You must include the utils.js file before tether.js');\n}\n\nvar _TetherBase$Utils = TetherBase.Utils;\nvar getScrollParents = _TetherBase$Utils.getScrollParents;\nvar getBounds = _TetherBase$Utils.getBounds;\nvar getOffsetParent = _TetherBase$Utils.getOffsetParent;\nvar extend = _TetherBase$Utils.extend;\nvar addClass = _TetherBase$Utils.addClass;\nvar removeClass = _TetherBase$Utils.removeClass;\nvar updateClasses = _TetherBase$Utils.updateClasses;\nvar defer = _TetherBase$Utils.defer;\nvar flush = _TetherBase$Utils.flush;\nvar getScrollBarSize = _TetherBase$Utils.getScrollBarSize;\nvar removeUtilElements = _TetherBase$Utils.removeUtilElements;\n\nfunction within(a, b) {\n var diff = arguments.length <= 2 || arguments[2] === undefined ? 1 : arguments[2];\n\n return a + diff >= b && b >= a - diff;\n}\n\nvar transformKey = (function () {\n if (typeof document === 'undefined') {\n return '';\n }\n var el = document.createElement('div');\n\n var transforms = ['transform', 'WebkitTransform', 'OTransform', 'MozTransform', 'msTransform'];\n for (var i = 0; i < transforms.length; ++i) {\n var key = transforms[i];\n if (el.style[key] !== undefined) {\n return key;\n }\n }\n})();\n\nvar tethers = [];\n\nvar position = function position() {\n tethers.forEach(function (tether) {\n tether.position(false);\n });\n flush();\n};\n\nfunction now() {\n if (typeof performance !== 'undefined' && typeof performance.now !== 'undefined') {\n return performance.now();\n }\n return +new Date();\n}\n\n(function () {\n var lastCall = null;\n var lastDuration = null;\n var pendingTimeout = null;\n\n var tick = function tick() {\n if (typeof lastDuration !== 'undefined' && lastDuration > 16) {\n // We voluntarily throttle ourselves if we can't manage 60fps\n lastDuration = Math.min(lastDuration - 16, 250);\n\n // Just in case this is the last event, remember to position just once more\n pendingTimeout = setTimeout(tick, 250);\n return;\n }\n\n if (typeof lastCall !== 'undefined' && now() - lastCall < 10) {\n // Some browsers call events a little too frequently, refuse to run more than is reasonable\n return;\n }\n\n if (pendingTimeout != null) {\n clearTimeout(pendingTimeout);\n pendingTimeout = null;\n }\n\n lastCall = now();\n position();\n lastDuration = now() - lastCall;\n };\n\n if (typeof window !== 'undefined' && typeof window.addEventListener !== 'undefined') {\n ['resize', 'scroll', 'touchmove'].forEach(function (event) {\n window.addEventListener(event, tick);\n });\n }\n})();\n\nvar MIRROR_LR = {\n center: 'center',\n left: 'right',\n right: 'left'\n};\n\nvar MIRROR_TB = {\n middle: 'middle',\n top: 'bottom',\n bottom: 'top'\n};\n\nvar OFFSET_MAP = {\n top: 0,\n left: 0,\n middle: '50%',\n center: '50%',\n bottom: '100%',\n right: '100%'\n};\n\nvar autoToFixedAttachment = function autoToFixedAttachment(attachment, relativeToAttachment) {\n var left = attachment.left;\n var top = attachment.top;\n\n if (left === 'auto') {\n left = MIRROR_LR[relativeToAttachment.left];\n }\n\n if (top === 'auto') {\n top = MIRROR_TB[relativeToAttachment.top];\n }\n\n return { left: left, top: top };\n};\n\nvar attachmentToOffset = function attachmentToOffset(attachment) {\n var left = attachment.left;\n var top = attachment.top;\n\n if (typeof OFFSET_MAP[attachment.left] !== 'undefined') {\n left = OFFSET_MAP[attachment.left];\n }\n\n if (typeof OFFSET_MAP[attachment.top] !== 'undefined') {\n top = OFFSET_MAP[attachment.top];\n }\n\n return { left: left, top: top };\n};\n\nfunction addOffset() {\n var out = { top: 0, left: 0 };\n\n for (var _len = arguments.length, offsets = Array(_len), _key = 0; _key < _len; _key++) {\n offsets[_key] = arguments[_key];\n }\n\n offsets.forEach(function (_ref) {\n var top = _ref.top;\n var left = _ref.left;\n\n if (typeof top === 'string') {\n top = parseFloat(top, 10);\n }\n if (typeof left === 'string') {\n left = parseFloat(left, 10);\n }\n\n out.top += top;\n out.left += left;\n });\n\n return out;\n}\n\nfunction offsetToPx(offset, size) {\n if (typeof offset.left === 'string' && offset.left.indexOf('%') !== -1) {\n offset.left = parseFloat(offset.left, 10) / 100 * size.width;\n }\n if (typeof offset.top === 'string' && offset.top.indexOf('%') !== -1) {\n offset.top = parseFloat(offset.top, 10) / 100 * size.height;\n }\n\n return offset;\n}\n\nvar parseOffset = function parseOffset(value) {\n var _value$split = value.split(' ');\n\n var _value$split2 = _slicedToArray(_value$split, 2);\n\n var top = _value$split2[0];\n var left = _value$split2[1];\n\n return { top: top, left: left };\n};\nvar parseAttachment = parseOffset;\n\nvar TetherClass = (function (_Evented) {\n _inherits(TetherClass, _Evented);\n\n function TetherClass(options) {\n var _this = this;\n\n _classCallCheck(this, TetherClass);\n\n _get(Object.getPrototypeOf(TetherClass.prototype), 'constructor', this).call(this);\n this.position = this.position.bind(this);\n\n tethers.push(this);\n\n this.history = [];\n\n this.setOptions(options, false);\n\n TetherBase.modules.forEach(function (module) {\n if (typeof module.initialize !== 'undefined') {\n module.initialize.call(_this);\n }\n });\n\n this.position();\n }\n\n _createClass(TetherClass, [{\n key: 'getClass',\n value: function getClass() {\n var key = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0];\n var classes = this.options.classes;\n\n if (typeof classes !== 'undefined' && classes[key]) {\n return this.options.classes[key];\n } else if (this.options.classPrefix) {\n return this.options.classPrefix + '-' + key;\n } else {\n return key;\n }\n }\n }, {\n key: 'setOptions',\n value: function setOptions(options) {\n var _this2 = this;\n\n var pos = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];\n\n var defaults = {\n offset: '0 0',\n targetOffset: '0 0',\n targetAttachment: 'auto auto',\n classPrefix: 'tether'\n };\n\n this.options = extend(defaults, options);\n\n var _options = this.options;\n var element = _options.element;\n var target = _options.target;\n var targetModifier = _options.targetModifier;\n\n this.element = element;\n this.target = target;\n this.targetModifier = targetModifier;\n\n if (this.target === 'viewport') {\n this.target = document.body;\n this.targetModifier = 'visible';\n } else if (this.target === 'scroll-handle') {\n this.target = document.body;\n this.targetModifier = 'scroll-handle';\n }\n\n ['element', 'target'].forEach(function (key) {\n if (typeof _this2[key] === 'undefined') {\n throw new Error('Tether Error: Both element and target must be defined');\n }\n\n if (typeof _this2[key].jquery !== 'undefined') {\n _this2[key] = _this2[key][0];\n } else if (typeof _this2[key] === 'string') {\n _this2[key] = document.querySelector(_this2[key]);\n }\n });\n\n addClass(this.element, this.getClass('element'));\n if (!(this.options.addTargetClasses === false)) {\n addClass(this.target, this.getClass('target'));\n }\n\n if (!this.options.attachment) {\n throw new Error('Tether Error: You must provide an attachment');\n }\n\n this.targetAttachment = parseAttachment(this.options.targetAttachment);\n this.attachment = parseAttachment(this.options.attachment);\n this.offset = parseOffset(this.options.offset);\n this.targetOffset = parseOffset(this.options.targetOffset);\n\n if (typeof this.scrollParents !== 'undefined') {\n this.disable();\n }\n\n if (this.targetModifier === 'scroll-handle') {\n this.scrollParents = [this.target];\n } else {\n this.scrollParents = getScrollParents(this.target);\n }\n\n if (!(this.options.enabled === false)) {\n this.enable(pos);\n }\n }\n }, {\n key: 'getTargetBounds',\n value: function getTargetBounds() {\n if (typeof this.targetModifier !== 'undefined') {\n if (this.targetModifier === 'visible') {\n if (this.target === document.body) {\n return { top: pageYOffset, left: pageXOffset, height: innerHeight, width: innerWidth };\n } else {\n var bounds = getBounds(this.target);\n\n var out = {\n height: bounds.height,\n width: bounds.width,\n top: bounds.top,\n left: bounds.left\n };\n\n out.height = Math.min(out.height, bounds.height - (pageYOffset - bounds.top));\n out.height = Math.min(out.height, bounds.height - (bounds.top + bounds.height - (pageYOffset + innerHeight)));\n out.height = Math.min(innerHeight, out.height);\n out.height -= 2;\n\n out.width = Math.min(out.width, bounds.width - (pageXOffset - bounds.left));\n out.width = Math.min(out.width, bounds.width - (bounds.left + bounds.width - (pageXOffset + innerWidth)));\n out.width = Math.min(innerWidth, out.width);\n out.width -= 2;\n\n if (out.top < pageYOffset) {\n out.top = pageYOffset;\n }\n if (out.left < pageXOffset) {\n out.left = pageXOffset;\n }\n\n return out;\n }\n } else if (this.targetModifier === 'scroll-handle') {\n var bounds = undefined;\n var target = this.target;\n if (target === document.body) {\n target = document.documentElement;\n\n bounds = {\n left: pageXOffset,\n top: pageYOffset,\n height: innerHeight,\n width: innerWidth\n };\n } else {\n bounds = getBounds(target);\n }\n\n var style = getComputedStyle(target);\n\n var hasBottomScroll = target.scrollWidth > target.clientWidth || [style.overflow, style.overflowX].indexOf('scroll') >= 0 || this.target !== document.body;\n\n var scrollBottom = 0;\n if (hasBottomScroll) {\n scrollBottom = 15;\n }\n\n var height = bounds.height - parseFloat(style.borderTopWidth) - parseFloat(style.borderBottomWidth) - scrollBottom;\n\n var out = {\n width: 15,\n height: height * 0.975 * (height / target.scrollHeight),\n left: bounds.left + bounds.width - parseFloat(style.borderLeftWidth) - 15\n };\n\n var fitAdj = 0;\n if (height < 408 && this.target === document.body) {\n fitAdj = -0.00011 * Math.pow(height, 2) - 0.00727 * height + 22.58;\n }\n\n if (this.target !== document.body) {\n out.height = Math.max(out.height, 24);\n }\n\n var scrollPercentage = this.target.scrollTop / (target.scrollHeight - height);\n out.top = scrollPercentage * (height - out.height - fitAdj) + bounds.top + parseFloat(style.borderTopWidth);\n\n if (this.target === document.body) {\n out.height = Math.max(out.height, 24);\n }\n\n return out;\n }\n } else {\n return getBounds(this.target);\n }\n }\n }, {\n key: 'clearCache',\n value: function clearCache() {\n this._cache = {};\n }\n }, {\n key: 'cache',\n value: function cache(k, getter) {\n // More than one module will often need the same DOM info, so\n // we keep a cache which is cleared on each position call\n if (typeof this._cache === 'undefined') {\n this._cache = {};\n }\n\n if (typeof this._cache[k] === 'undefined') {\n this._cache[k] = getter.call(this);\n }\n\n return this._cache[k];\n }\n }, {\n key: 'enable',\n value: function enable() {\n var _this3 = this;\n\n var pos = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];\n\n if (!(this.options.addTargetClasses === false)) {\n addClass(this.target, this.getClass('enabled'));\n }\n addClass(this.element, this.getClass('enabled'));\n this.enabled = true;\n\n this.scrollParents.forEach(function (parent) {\n if (parent !== _this3.target.ownerDocument) {\n parent.addEventListener('scroll', _this3.position);\n }\n });\n\n if (pos) {\n this.position();\n }\n }\n }, {\n key: 'disable',\n value: function disable() {\n var _this4 = this;\n\n removeClass(this.target, this.getClass('enabled'));\n removeClass(this.element, this.getClass('enabled'));\n this.enabled = false;\n\n if (typeof this.scrollParents !== 'undefined') {\n this.scrollParents.forEach(function (parent) {\n parent.removeEventListener('scroll', _this4.position);\n });\n }\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n var _this5 = this;\n\n this.disable();\n\n tethers.forEach(function (tether, i) {\n if (tether === _this5) {\n tethers.splice(i, 1);\n }\n });\n\n // Remove any elements we were using for convenience from the DOM\n if (tethers.length === 0) {\n removeUtilElements();\n }\n }\n }, {\n key: 'updateAttachClasses',\n value: function updateAttachClasses(elementAttach, targetAttach) {\n var _this6 = this;\n\n elementAttach = elementAttach || this.attachment;\n targetAttach = targetAttach || this.targetAttachment;\n var sides = ['left', 'top', 'bottom', 'right', 'middle', 'center'];\n\n if (typeof this._addAttachClasses !== 'undefined' && this._addAttachClasses.length) {\n // updateAttachClasses can be called more than once in a position call, so\n // we need to clean up after ourselves such that when the last defer gets\n // ran it doesn't add any extra classes from previous calls.\n this._addAttachClasses.splice(0, this._addAttachClasses.length);\n }\n\n if (typeof this._addAttachClasses === 'undefined') {\n this._addAttachClasses = [];\n }\n var add = this._addAttachClasses;\n\n if (elementAttach.top) {\n add.push(this.getClass('element-attached') + '-' + elementAttach.top);\n }\n if (elementAttach.left) {\n add.push(this.getClass('element-attached') + '-' + elementAttach.left);\n }\n if (targetAttach.top) {\n add.push(this.getClass('target-attached') + '-' + targetAttach.top);\n }\n if (targetAttach.left) {\n add.push(this.getClass('target-attached') + '-' + targetAttach.left);\n }\n\n var all = [];\n sides.forEach(function (side) {\n all.push(_this6.getClass('element-attached') + '-' + side);\n all.push(_this6.getClass('target-attached') + '-' + side);\n });\n\n defer(function () {\n if (!(typeof _this6._addAttachClasses !== 'undefined')) {\n return;\n }\n\n updateClasses(_this6.element, _this6._addAttachClasses, all);\n if (!(_this6.options.addTargetClasses === false)) {\n updateClasses(_this6.target, _this6._addAttachClasses, all);\n }\n\n delete _this6._addAttachClasses;\n });\n }\n }, {\n key: 'position',\n value: function position() {\n var _this7 = this;\n\n var flushChanges = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];\n\n // flushChanges commits the changes immediately, leave true unless you are positioning multiple\n // tethers (in which case call Tether.Utils.flush yourself when you're done)\n\n if (!this.enabled) {\n return;\n }\n\n this.clearCache();\n\n // Turn 'auto' attachments into the appropriate corner or edge\n var targetAttachment = autoToFixedAttachment(this.targetAttachment, this.attachment);\n\n this.updateAttachClasses(this.attachment, targetAttachment);\n\n var elementPos = this.cache('element-bounds', function () {\n return getBounds(_this7.element);\n });\n\n var width = elementPos.width;\n var height = elementPos.height;\n\n if (width === 0 && height === 0 && typeof this.lastSize !== 'undefined') {\n var _lastSize = this.lastSize;\n\n // We cache the height and width to make it possible to position elements that are\n // getting hidden.\n width = _lastSize.width;\n height = _lastSize.height;\n } else {\n this.lastSize = { width: width, height: height };\n }\n\n var targetPos = this.cache('target-bounds', function () {\n return _this7.getTargetBounds();\n });\n var targetSize = targetPos;\n\n // Get an actual px offset from the attachment\n var offset = offsetToPx(attachmentToOffset(this.attachment), { width: width, height: height });\n var targetOffset = offsetToPx(attachmentToOffset(targetAttachment), targetSize);\n\n var manualOffset = offsetToPx(this.offset, { width: width, height: height });\n var manualTargetOffset = offsetToPx(this.targetOffset, targetSize);\n\n // Add the manually provided offset\n offset = addOffset(offset, manualOffset);\n targetOffset = addOffset(targetOffset, manualTargetOffset);\n\n // It's now our goal to make (element position + offset) == (target position + target offset)\n var left = targetPos.left + targetOffset.left - offset.left;\n var top = targetPos.top + targetOffset.top - offset.top;\n\n for (var i = 0; i < TetherBase.modules.length; ++i) {\n var _module2 = TetherBase.modules[i];\n var ret = _module2.position.call(this, {\n left: left,\n top: top,\n targetAttachment: targetAttachment,\n targetPos: targetPos,\n elementPos: elementPos,\n offset: offset,\n targetOffset: targetOffset,\n manualOffset: manualOffset,\n manualTargetOffset: manualTargetOffset,\n scrollbarSize: scrollbarSize,\n attachment: this.attachment\n });\n\n if (ret === false) {\n return false;\n } else if (typeof ret === 'undefined' || typeof ret !== 'object') {\n continue;\n } else {\n top = ret.top;\n left = ret.left;\n }\n }\n\n // We describe the position three different ways to give the optimizer\n // a chance to decide the best possible way to position the element\n // with the fewest repaints.\n var next = {\n // It's position relative to the page (absolute positioning when\n // the element is a child of the body)\n page: {\n top: top,\n left: left\n },\n\n // It's position relative to the viewport (fixed positioning)\n viewport: {\n top: top - pageYOffset,\n bottom: pageYOffset - top - height + innerHeight,\n left: left - pageXOffset,\n right: pageXOffset - left - width + innerWidth\n }\n };\n\n var doc = this.target.ownerDocument;\n var win = doc.defaultView;\n\n var scrollbarSize = undefined;\n if (doc.body.scrollWidth > win.innerWidth) {\n scrollbarSize = this.cache('scrollbar-size', getScrollBarSize);\n next.viewport.bottom -= scrollbarSize.height;\n }\n\n if (doc.body.scrollHeight > win.innerHeight) {\n scrollbarSize = this.cache('scrollbar-size', getScrollBarSize);\n next.viewport.right -= scrollbarSize.width;\n }\n\n if (['', 'static'].indexOf(doc.body.style.position) === -1 || ['', 'static'].indexOf(doc.body.parentElement.style.position) === -1) {\n // Absolute positioning in the body will be relative to the page, not the 'initial containing block'\n next.page.bottom = doc.body.scrollHeight - top - height;\n next.page.right = doc.body.scrollWidth - left - width;\n }\n\n if (typeof this.options.optimizations !== 'undefined' && this.options.optimizations.moveElement !== false && !(typeof this.targetModifier !== 'undefined')) {\n (function () {\n var offsetParent = _this7.cache('target-offsetparent', function () {\n return getOffsetParent(_this7.target);\n });\n var offsetPosition = _this7.cache('target-offsetparent-bounds', function () {\n return getBounds(offsetParent);\n });\n var offsetParentStyle = getComputedStyle(offsetParent);\n var offsetParentSize = offsetPosition;\n\n var offsetBorder = {};\n ['Top', 'Left', 'Bottom', 'Right'].forEach(function (side) {\n offsetBorder[side.toLowerCase()] = parseFloat(offsetParentStyle['border' + side + 'Width']);\n });\n\n offsetPosition.right = doc.body.scrollWidth - offsetPosition.left - offsetParentSize.width + offsetBorder.right;\n offsetPosition.bottom = doc.body.scrollHeight - offsetPosition.top - offsetParentSize.height + offsetBorder.bottom;\n\n if (next.page.top >= offsetPosition.top + offsetBorder.top && next.page.bottom >= offsetPosition.bottom) {\n if (next.page.left >= offsetPosition.left + offsetBorder.left && next.page.right >= offsetPosition.right) {\n // We're within the visible part of the target's scroll parent\n var scrollTop = offsetParent.scrollTop;\n var scrollLeft = offsetParent.scrollLeft;\n\n // It's position relative to the target's offset parent (absolute positioning when\n // the element is moved to be a child of the target's offset parent).\n next.offset = {\n top: next.page.top - offsetPosition.top + scrollTop - offsetBorder.top,\n left: next.page.left - offsetPosition.left + scrollLeft - offsetBorder.left\n };\n }\n }\n })();\n }\n\n // We could also travel up the DOM and try each containing context, rather than only\n // looking at the body, but we're gonna get diminishing returns.\n\n this.move(next);\n\n this.history.unshift(next);\n\n if (this.history.length > 3) {\n this.history.pop();\n }\n\n if (flushChanges) {\n flush();\n }\n\n return true;\n }\n\n // THE ISSUE\n }, {\n key: 'move',\n value: function move(pos) {\n var _this8 = this;\n\n if (!(typeof this.element.parentNode !== 'undefined')) {\n return;\n }\n\n var same = {};\n\n for (var type in pos) {\n same[type] = {};\n\n for (var key in pos[type]) {\n var found = false;\n\n for (var i = 0; i < this.history.length; ++i) {\n var point = this.history[i];\n if (typeof point[type] !== 'undefined' && !within(point[type][key], pos[type][key])) {\n found = true;\n break;\n }\n }\n\n if (!found) {\n same[type][key] = true;\n }\n }\n }\n\n var css = { top: '', left: '', right: '', bottom: '' };\n\n var transcribe = function transcribe(_same, _pos) {\n var hasOptimizations = typeof _this8.options.optimizations !== 'undefined';\n var gpu = hasOptimizations ? _this8.options.optimizations.gpu : null;\n if (gpu !== false) {\n var yPos = undefined,\n xPos = undefined;\n if (_same.top) {\n css.top = 0;\n yPos = _pos.top;\n } else {\n css.bottom = 0;\n yPos = -_pos.bottom;\n }\n\n if (_same.left) {\n css.left = 0;\n xPos = _pos.left;\n } else {\n css.right = 0;\n xPos = -_pos.right;\n }\n\n css[transformKey] = 'translateX(' + Math.round(xPos) + 'px) translateY(' + Math.round(yPos) + 'px)';\n\n if (transformKey !== 'msTransform') {\n // The Z transform will keep this in the GPU (faster, and prevents artifacts),\n // but IE9 doesn't support 3d transforms and will choke.\n css[transformKey] += \" translateZ(0)\";\n }\n } else {\n if (_same.top) {\n css.top = _pos.top + 'px';\n } else {\n css.bottom = _pos.bottom + 'px';\n }\n\n if (_same.left) {\n css.left = _pos.left + 'px';\n } else {\n css.right = _pos.right + 'px';\n }\n }\n };\n\n var moved = false;\n if ((same.page.top || same.page.bottom) && (same.page.left || same.page.right)) {\n css.position = 'absolute';\n transcribe(same.page, pos.page);\n } else if ((same.viewport.top || same.viewport.bottom) && (same.viewport.left || same.viewport.right)) {\n css.position = 'fixed';\n transcribe(same.viewport, pos.viewport);\n } else if (typeof same.offset !== 'undefined' && same.offset.top && same.offset.left) {\n (function () {\n css.position = 'absolute';\n var offsetParent = _this8.cache('target-offsetparent', function () {\n return getOffsetParent(_this8.target);\n });\n\n if (getOffsetParent(_this8.element) !== offsetParent) {\n defer(function () {\n _this8.element.parentNode.removeChild(_this8.element);\n offsetParent.appendChild(_this8.element);\n });\n }\n\n transcribe(same.offset, pos.offset);\n moved = true;\n })();\n } else {\n css.position = 'absolute';\n transcribe({ top: true, left: true }, pos.page);\n }\n\n if (!moved) {\n var offsetParentIsBody = true;\n var currentNode = this.element.parentNode;\n while (currentNode && currentNode.nodeType === 1 && currentNode.tagName !== 'BODY') {\n if (getComputedStyle(currentNode).position !== 'static') {\n offsetParentIsBody = false;\n break;\n }\n\n currentNode = currentNode.parentNode;\n }\n\n if (!offsetParentIsBody) {\n this.element.parentNode.removeChild(this.element);\n this.element.ownerDocument.body.appendChild(this.element);\n }\n }\n\n // Any css change will trigger a repaint, so let's avoid one if nothing changed\n var writeCSS = {};\n var write = false;\n for (var key in css) {\n var val = css[key];\n var elVal = this.element.style[key];\n\n if (elVal !== val) {\n write = true;\n writeCSS[key] = val;\n }\n }\n\n if (write) {\n defer(function () {\n extend(_this8.element.style, writeCSS);\n });\n }\n }\n }]);\n\n return TetherClass;\n})(Evented);\n\nTetherClass.modules = [];\n\nTetherBase.position = position;\n\nvar Tether = extend(TetherClass, TetherBase);\n/* globals TetherBase */\n\n'use strict';\n\nvar _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();\n\nvar _TetherBase$Utils = TetherBase.Utils;\nvar getBounds = _TetherBase$Utils.getBounds;\nvar extend = _TetherBase$Utils.extend;\nvar updateClasses = _TetherBase$Utils.updateClasses;\nvar defer = _TetherBase$Utils.defer;\n\nvar BOUNDS_FORMAT = ['left', 'top', 'right', 'bottom'];\n\nfunction getBoundingRect(tether, to) {\n if (to === 'scrollParent') {\n to = tether.scrollParents[0];\n } else if (to === 'window') {\n to = [pageXOffset, pageYOffset, innerWidth + pageXOffset, innerHeight + pageYOffset];\n }\n\n if (to === document) {\n to = to.documentElement;\n }\n\n if (typeof to.nodeType !== 'undefined') {\n (function () {\n var node = to;\n var size = getBounds(to);\n var pos = size;\n var style = getComputedStyle(to);\n\n to = [pos.left, pos.top, size.width + pos.left, size.height + pos.top];\n\n // Account any parent Frames scroll offset\n if (node.ownerDocument !== document) {\n var win = node.ownerDocument.defaultView;\n to[0] += win.pageXOffset;\n to[1] += win.pageYOffset;\n to[2] += win.pageXOffset;\n to[3] += win.pageYOffset;\n }\n\n BOUNDS_FORMAT.forEach(function (side, i) {\n side = side[0].toUpperCase() + side.substr(1);\n if (side === 'Top' || side === 'Left') {\n to[i] += parseFloat(style['border' + side + 'Width']);\n } else {\n to[i] -= parseFloat(style['border' + side + 'Width']);\n }\n });\n })();\n }\n\n return to;\n}\n\nTetherBase.modules.push({\n position: function position(_ref) {\n var _this = this;\n\n var top = _ref.top;\n var left = _ref.left;\n var targetAttachment = _ref.targetAttachment;\n\n if (!this.options.constraints) {\n return true;\n }\n\n var _cache = this.cache('element-bounds', function () {\n return getBounds(_this.element);\n });\n\n var height = _cache.height;\n var width = _cache.width;\n\n if (width === 0 && height === 0 && typeof this.lastSize !== 'undefined') {\n var _lastSize = this.lastSize;\n\n // Handle the item getting hidden as a result of our positioning without glitching\n // the classes in and out\n width = _lastSize.width;\n height = _lastSize.height;\n }\n\n var targetSize = this.cache('target-bounds', function () {\n return _this.getTargetBounds();\n });\n\n var targetHeight = targetSize.height;\n var targetWidth = targetSize.width;\n\n var allClasses = [this.getClass('pinned'), this.getClass('out-of-bounds')];\n\n this.options.constraints.forEach(function (constraint) {\n var outOfBoundsClass = constraint.outOfBoundsClass;\n var pinnedClass = constraint.pinnedClass;\n\n if (outOfBoundsClass) {\n allClasses.push(outOfBoundsClass);\n }\n if (pinnedClass) {\n allClasses.push(pinnedClass);\n }\n });\n\n allClasses.forEach(function (cls) {\n ['left', 'top', 'right', 'bottom'].forEach(function (side) {\n allClasses.push(cls + '-' + side);\n });\n });\n\n var addClasses = [];\n\n var tAttachment = extend({}, targetAttachment);\n var eAttachment = extend({}, this.attachment);\n\n this.options.constraints.forEach(function (constraint) {\n var to = constraint.to;\n var attachment = constraint.attachment;\n var pin = constraint.pin;\n\n if (typeof attachment === 'undefined') {\n attachment = '';\n }\n\n var changeAttachX = undefined,\n changeAttachY = undefined;\n if (attachment.indexOf(' ') >= 0) {\n var _attachment$split = attachment.split(' ');\n\n var _attachment$split2 = _slicedToArray(_attachment$split, 2);\n\n changeAttachY = _attachment$split2[0];\n changeAttachX = _attachment$split2[1];\n } else {\n changeAttachX = changeAttachY = attachment;\n }\n\n var bounds = getBoundingRect(_this, to);\n\n if (changeAttachY === 'target' || changeAttachY === 'both') {\n if (top < bounds[1] && tAttachment.top === 'top') {\n top += targetHeight;\n tAttachment.top = 'bottom';\n }\n\n if (top + height > bounds[3] && tAttachment.top === 'bottom') {\n top -= targetHeight;\n tAttachment.top = 'top';\n }\n }\n\n if (changeAttachY === 'together') {\n if (tAttachment.top === 'top') {\n if (eAttachment.top === 'bottom' && top < bounds[1]) {\n top += targetHeight;\n tAttachment.top = 'bottom';\n\n top += height;\n eAttachment.top = 'top';\n } else if (eAttachment.top === 'top' && top + height > bounds[3] && top - (height - targetHeight) >= bounds[1]) {\n top -= height - targetHeight;\n tAttachment.top = 'bottom';\n\n eAttachment.top = 'bottom';\n }\n }\n\n if (tAttachment.top === 'bottom') {\n if (eAttachment.top === 'top' && top + height > bounds[3]) {\n top -= targetHeight;\n tAttachment.top = 'top';\n\n top -= height;\n eAttachment.top = 'bottom';\n } else if (eAttachment.top === 'bottom' && top < bounds[1] && top + (height * 2 - targetHeight) <= bounds[3]) {\n top += height - targetHeight;\n tAttachment.top = 'top';\n\n eAttachment.top = 'top';\n }\n }\n\n if (tAttachment.top === 'middle') {\n if (top + height > bounds[3] && eAttachment.top === 'top') {\n top -= height;\n eAttachment.top = 'bottom';\n } else if (top < bounds[1] && eAttachment.top === 'bottom') {\n top += height;\n eAttachment.top = 'top';\n }\n }\n }\n\n if (changeAttachX === 'target' || changeAttachX === 'both') {\n if (left < bounds[0] && tAttachment.left === 'left') {\n left += targetWidth;\n tAttachment.left = 'right';\n }\n\n if (left + width > bounds[2] && tAttachment.left === 'right') {\n left -= targetWidth;\n tAttachment.left = 'left';\n }\n }\n\n if (changeAttachX === 'together') {\n if (left < bounds[0] && tAttachment.left === 'left') {\n if (eAttachment.left === 'right') {\n left += targetWidth;\n tAttachment.left = 'right';\n\n left += width;\n eAttachment.left = 'left';\n } else if (eAttachment.left === 'left') {\n left += targetWidth;\n tAttachment.left = 'right';\n\n left -= width;\n eAttachment.left = 'right';\n }\n } else if (left + width > bounds[2] && tAttachment.left === 'right') {\n if (eAttachment.left === 'left') {\n left -= targetWidth;\n tAttachment.left = 'left';\n\n left -= width;\n eAttachment.left = 'right';\n } else if (eAttachment.left === 'right') {\n left -= targetWidth;\n tAttachment.left = 'left';\n\n left += width;\n eAttachment.left = 'left';\n }\n } else if (tAttachment.left === 'center') {\n if (left + width > bounds[2] && eAttachment.left === 'left') {\n left -= width;\n eAttachment.left = 'right';\n } else if (left < bounds[0] && eAttachment.left === 'right') {\n left += width;\n eAttachment.left = 'left';\n }\n }\n }\n\n if (changeAttachY === 'element' || changeAttachY === 'both') {\n if (top < bounds[1] && eAttachment.top === 'bottom') {\n top += height;\n eAttachment.top = 'top';\n }\n\n if (top + height > bounds[3] && eAttachment.top === 'top') {\n top -= height;\n eAttachment.top = 'bottom';\n }\n }\n\n if (changeAttachX === 'element' || changeAttachX === 'both') {\n if (left < bounds[0]) {\n if (eAttachment.left === 'right') {\n left += width;\n eAttachment.left = 'left';\n } else if (eAttachment.left === 'center') {\n left += width / 2;\n eAttachment.left = 'left';\n }\n }\n\n if (left + width > bounds[2]) {\n if (eAttachment.left === 'left') {\n left -= width;\n eAttachment.left = 'right';\n } else if (eAttachment.left === 'center') {\n left -= width / 2;\n eAttachment.left = 'right';\n }\n }\n }\n\n if (typeof pin === 'string') {\n pin = pin.split(',').map(function (p) {\n return p.trim();\n });\n } else if (pin === true) {\n pin = ['top', 'left', 'right', 'bottom'];\n }\n\n pin = pin || [];\n\n var pinned = [];\n var oob = [];\n\n if (top < bounds[1]) {\n if (pin.indexOf('top') >= 0) {\n top = bounds[1];\n pinned.push('top');\n } else {\n oob.push('top');\n }\n }\n\n if (top + height > bounds[3]) {\n if (pin.indexOf('bottom') >= 0) {\n top = bounds[3] - height;\n pinned.push('bottom');\n } else {\n oob.push('bottom');\n }\n }\n\n if (left < bounds[0]) {\n if (pin.indexOf('left') >= 0) {\n left = bounds[0];\n pinned.push('left');\n } else {\n oob.push('left');\n }\n }\n\n if (left + width > bounds[2]) {\n if (pin.indexOf('right') >= 0) {\n left = bounds[2] - width;\n pinned.push('right');\n } else {\n oob.push('right');\n }\n }\n\n if (pinned.length) {\n (function () {\n var pinnedClass = undefined;\n if (typeof _this.options.pinnedClass !== 'undefined') {\n pinnedClass = _this.options.pinnedClass;\n } else {\n pinnedClass = _this.getClass('pinned');\n }\n\n addClasses.push(pinnedClass);\n pinned.forEach(function (side) {\n addClasses.push(pinnedClass + '-' + side);\n });\n })();\n }\n\n if (oob.length) {\n (function () {\n var oobClass = undefined;\n if (typeof _this.options.outOfBoundsClass !== 'undefined') {\n oobClass = _this.options.outOfBoundsClass;\n } else {\n oobClass = _this.getClass('out-of-bounds');\n }\n\n addClasses.push(oobClass);\n oob.forEach(function (side) {\n addClasses.push(oobClass + '-' + side);\n });\n })();\n }\n\n if (pinned.indexOf('left') >= 0 || pinned.indexOf('right') >= 0) {\n eAttachment.left = tAttachment.left = false;\n }\n if (pinned.indexOf('top') >= 0 || pinned.indexOf('bottom') >= 0) {\n eAttachment.top = tAttachment.top = false;\n }\n\n if (tAttachment.top !== targetAttachment.top || tAttachment.left !== targetAttachment.left || eAttachment.top !== _this.attachment.top || eAttachment.left !== _this.attachment.left) {\n _this.updateAttachClasses(eAttachment, tAttachment);\n _this.trigger('update', {\n attachment: eAttachment,\n targetAttachment: tAttachment\n });\n }\n });\n\n defer(function () {\n if (!(_this.options.addTargetClasses === false)) {\n updateClasses(_this.target, addClasses, allClasses);\n }\n updateClasses(_this.element, addClasses, allClasses);\n });\n\n return { top: top, left: left };\n }\n});\n/* globals TetherBase */\n\n'use strict';\n\nvar _TetherBase$Utils = TetherBase.Utils;\nvar getBounds = _TetherBase$Utils.getBounds;\nvar updateClasses = _TetherBase$Utils.updateClasses;\nvar defer = _TetherBase$Utils.defer;\n\nTetherBase.modules.push({\n position: function position(_ref) {\n var _this = this;\n\n var top = _ref.top;\n var left = _ref.left;\n\n var _cache = this.cache('element-bounds', function () {\n return getBounds(_this.element);\n });\n\n var height = _cache.height;\n var width = _cache.width;\n\n var targetPos = this.getTargetBounds();\n\n var bottom = top + height;\n var right = left + width;\n\n var abutted = [];\n if (top <= targetPos.bottom && bottom >= targetPos.top) {\n ['left', 'right'].forEach(function (side) {\n var targetPosSide = targetPos[side];\n if (targetPosSide === left || targetPosSide === right) {\n abutted.push(side);\n }\n });\n }\n\n if (left <= targetPos.right && right >= targetPos.left) {\n ['top', 'bottom'].forEach(function (side) {\n var targetPosSide = targetPos[side];\n if (targetPosSide === top || targetPosSide === bottom) {\n abutted.push(side);\n }\n });\n }\n\n var allClasses = [];\n var addClasses = [];\n\n var sides = ['left', 'top', 'right', 'bottom'];\n allClasses.push(this.getClass('abutted'));\n sides.forEach(function (side) {\n allClasses.push(_this.getClass('abutted') + '-' + side);\n });\n\n if (abutted.length) {\n addClasses.push(this.getClass('abutted'));\n }\n\n abutted.forEach(function (side) {\n addClasses.push(_this.getClass('abutted') + '-' + side);\n });\n\n defer(function () {\n if (!(_this.options.addTargetClasses === false)) {\n updateClasses(_this.target, addClasses, allClasses);\n }\n updateClasses(_this.element, addClasses, allClasses);\n });\n\n return true;\n }\n});\n/* globals TetherBase */\n\n'use strict';\n\nvar _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();\n\nTetherBase.modules.push({\n position: function position(_ref) {\n var top = _ref.top;\n var left = _ref.left;\n\n if (!this.options.shift) {\n return;\n }\n\n var shift = this.options.shift;\n if (typeof this.options.shift === 'function') {\n shift = this.options.shift.call(this, { top: top, left: left });\n }\n\n var shiftTop = undefined,\n shiftLeft = undefined;\n if (typeof shift === 'string') {\n shift = shift.split(' ');\n shift[1] = shift[1] || shift[0];\n\n var _shift = shift;\n\n var _shift2 = _slicedToArray(_shift, 2);\n\n shiftTop = _shift2[0];\n shiftLeft = _shift2[1];\n\n shiftTop = parseFloat(shiftTop, 10);\n shiftLeft = parseFloat(shiftLeft, 10);\n } else {\n shiftTop = shift.top;\n shiftLeft = shift.left;\n }\n\n top += shiftTop;\n left += shiftLeft;\n\n return { top: top, left: left };\n }\n});\nreturn Tether;\n\n}));\n"],"file":"tether.min.js"}