{"version":3,"file":"dom-lib-25264c45.js","sources":["../../node_modules/dom-lib/esm/on.js","../../node_modules/dom-lib/esm/utils/emptyFunction.js","../../node_modules/dom-lib/esm/utils/UserAgent.js","../../node_modules/dom-lib/esm/canUseDOM.js","../../node_modules/dom-lib/esm/utils/isEventSupported.js","../../node_modules/dom-lib/esm/utils/normalizeWheel.js","../../node_modules/dom-lib/esm/utils/getGlobal.js","../../node_modules/dom-lib/esm/requestAnimationFramePolyfill.js","../../node_modules/dom-lib/esm/WheelHandler.js","../../node_modules/dom-lib/esm/cancelAnimationFramePolyfill.js","../../node_modules/dom-lib/esm/DOMMouseMoveTracker.js","../../node_modules/dom-lib/esm/hasClass.js","../../node_modules/dom-lib/esm/addClass.js","../../node_modules/dom-lib/esm/removeClass.js","../../node_modules/dom-lib/esm/ownerDocument.js","../../node_modules/dom-lib/esm/getWindow.js","../../node_modules/dom-lib/esm/getContainer.js","../../node_modules/dom-lib/esm/contains.js","../../node_modules/dom-lib/esm/scrollTop.js","../../node_modules/dom-lib/esm/scrollLeft.js","../../node_modules/dom-lib/esm/getOffset.js","../../node_modules/dom-lib/esm/nodeName.js","../../node_modules/dom-lib/esm/utils/stringFormatter.js","../../node_modules/dom-lib/esm/utils/camelizeStyleName.js","../../node_modules/dom-lib/esm/utils/getComputedStyle.js","../../node_modules/dom-lib/esm/utils/hyphenateStyleName.js","../../node_modules/dom-lib/esm/getStyle.js","../../node_modules/dom-lib/esm/getOffsetParent.js","../../node_modules/dom-lib/esm/getPosition.js","../../node_modules/dom-lib/esm/getHeight.js","../../node_modules/dom-lib/esm/getWidth.js","../../node_modules/dom-lib/esm/removeStyle.js","../../node_modules/dom-lib/esm/addStyle.js","../../node_modules/dom-lib/esm/utils/getVendorPrefixedName.js","../../node_modules/dom-lib/esm/utils/BrowserSupportCore.js","../../node_modules/dom-lib/esm/translateDOMPositionXY.js","../../node_modules/dom-lib/esm/getTransitionProperties.js","../../node_modules/dom-lib/esm/getTransitionEnd.js"],"sourcesContent":["/**\n * Bind `target` event `eventName`'s callback `listener`.\n * @param target The DOM element\n * @param eventType The event name\n * @param listener The event listener\n * @param options The event options\n * @returns The event listener\n */\nexport default function on(target, eventType, listener, options) {\n if (options === void 0) {\n options = false;\n }\n\n target.addEventListener(eventType, listener, options);\n return {\n off: function off() {\n target.removeEventListener(eventType, listener, options);\n }\n };\n}","var _this = this;\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\nfunction emptyFunction() {}\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\nemptyFunction.thatReturnsThis = function () {\n return _this;\n};\n\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nexport default emptyFunction;","var populated = false; // Browsers\n\nvar _ie;\n\nvar _firefox;\n\nvar _opera;\n\nvar _webkit;\n\nvar _chrome; // Actual IE browser for compatibility mode\n\n\nvar ieRealVersion; // Platforms\n\nvar _osx;\n\nvar _windows;\n\nvar _linux;\n\nvar _android; // Architectures\n\n\nvar win64; // Devices\n\nvar _iphone;\n\nvar _ipad;\n\nvar _native;\n\nvar _mobile;\n\nfunction populate() {\n if (populated) {\n return;\n }\n\n populated = true; // To work around buggy JS libraries that can't handle multi-digit\n // version numbers, Opera 10's user agent string claims it's Opera\n // 9, then later includes a Version/X.Y field:\n //\n // Opera/9.80 (foo) Presto/2.2.15 Version/10.10\n\n var uas = navigator.userAgent;\n var agent = /(?:MSIE.(\\d+\\.\\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\\d+\\.\\d+))|(?:Opera(?:.+Version.|.)(\\d+\\.\\d+))|(?:AppleWebKit.(\\d+(?:\\.\\d+)?))|(?:Trident\\/\\d+\\.\\d+.*rv:(\\d+\\.\\d+))/.exec(uas);\n var os = /(Mac OS X)|(Windows)|(Linux)/.exec(uas);\n _iphone = /\\b(iPhone|iP[ao]d)/.exec(uas);\n _ipad = /\\b(iP[ao]d)/.exec(uas);\n _android = /Android/i.exec(uas);\n _native = /FBAN\\/\\w+;/i.exec(uas);\n _mobile = /Mobile/i.exec(uas); // Note that the IE team blog would have you believe you should be checking\n // for 'Win64; x64'. But MSDN then reveals that you can actually be coming\n // from either x64 or ia64; so ultimately, you should just check for Win64\n // as in indicator of whether you're in 64-bit IE. 32-bit IE on 64-bit\n // Windows will send 'WOW64' instead.\n\n win64 = !!/Win64/.exec(uas);\n\n if (agent) {\n if (agent[1]) {\n _ie = parseFloat(agent[1]);\n } else {\n _ie = agent[5] ? parseFloat(agent[5]) : NaN;\n } // IE compatibility mode\n // @ts-ignore\n\n\n if (_ie && document && document.documentMode) {\n // @ts-ignore\n _ie = document.documentMode;\n } // grab the \"true\" ie version from the trident token if available\n\n\n var trident = /(?:Trident\\/(\\d+.\\d+))/.exec(uas);\n ieRealVersion = trident ? parseFloat(trident[1]) + 4 : _ie;\n _firefox = agent[2] ? parseFloat(agent[2]) : NaN;\n _opera = agent[3] ? parseFloat(agent[3]) : NaN;\n _webkit = agent[4] ? parseFloat(agent[4]) : NaN;\n\n if (_webkit) {\n // We do not add the regexp to the above test, because it will always\n // match 'safari' only since 'AppleWebKit' appears before 'Chrome' in\n // the userAgent string.\n agent = /(?:Chrome\\/(\\d+\\.\\d+))/.exec(uas);\n _chrome = agent && agent[1] ? parseFloat(agent[1]) : NaN;\n } else {\n _chrome = NaN;\n }\n } else {\n _ie = NaN;\n _firefox = NaN;\n _opera = NaN;\n _chrome = NaN;\n _webkit = NaN;\n }\n\n if (os) {\n if (os[1]) {\n // Detect OS X version. If no version number matches, set osx to true.\n // Version examples: 10, 10_6_1, 10.7\n // Parses version number as a float, taking only first two sets of\n // digits. If only one set of digits is found, returns just the major\n // version number.\n var ver = /(?:Mac OS X (\\d+(?:[._]\\d+)?))/.exec(uas);\n _osx = ver ? parseFloat(ver[1].replace('_', '.')) : true;\n } else {\n _osx = false;\n }\n\n _windows = !!os[2];\n _linux = !!os[3];\n } else {\n _osx = false;\n _windows = false;\n _linux = false;\n }\n}\n/**\n * @deprecated\n */\n\n\nvar UserAgent = {\n /**\n * Check if the UA is Internet Explorer.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n ie: function ie() {\n return populate() || _ie;\n },\n\n /**\n * Check if we're in Internet Explorer compatibility mode.\n *\n * @return bool true if in compatibility mode, false if\n * not compatibility mode or not ie\n */\n ieCompatibilityMode: function ieCompatibilityMode() {\n return populate() || ieRealVersion > _ie;\n },\n\n /**\n * Whether the browser is 64-bit IE. Really, this is kind of weak sauce; we\n * only need this because Skype can't handle 64-bit IE yet. We need to remove\n * this when we don't need it -- tracked by #601957.\n */\n ie64: function ie64() {\n return UserAgent.ie() && win64;\n },\n\n /**\n * Check if the UA is Firefox.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n firefox: function firefox() {\n return populate() || _firefox;\n },\n\n /**\n * Check if the UA is Opera.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n opera: function opera() {\n return populate() || _opera;\n },\n\n /**\n * Check if the UA is WebKit.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n webkit: function webkit() {\n return populate() || _webkit;\n },\n\n /**\n * For Push\n * WILL BE REMOVED VERY SOON. Use UserAgent_DEPRECATED.webkit\n */\n safari: function safari() {\n return UserAgent.webkit();\n },\n\n /**\n * Check if the UA is a Chrome browser.\n *\n *\n * @return float|NaN Version number (if match) or NaN.\n */\n chrome: function chrome() {\n return populate() || _chrome;\n },\n\n /**\n * Check if the user is running Windows.\n *\n * @return bool `true' if the user's OS is Windows.\n */\n windows: function windows() {\n return populate() || _windows;\n },\n\n /**\n * Check if the user is running Mac OS X.\n *\n * @return float|bool Returns a float if a version number is detected,\n * otherwise true/false.\n */\n osx: function osx() {\n return populate() || _osx;\n },\n\n /**\n * Check if the user is running Linux.\n *\n * @return bool `true' if the user's OS is some flavor of Linux.\n */\n linux: function linux() {\n return populate() || _linux;\n },\n\n /**\n * Check if the user is running on an iPhone or iPod platform.\n *\n * @return bool `true' if the user is running some flavor of the\n * iPhone OS.\n */\n iphone: function iphone() {\n return populate() || _iphone;\n },\n mobile: function mobile() {\n return populate() || _iphone || _ipad || _android || _mobile;\n },\n // webviews inside of the native apps\n nativeApp: function nativeApp() {\n return populate() || _native;\n },\n android: function android() {\n return populate() || _android;\n },\n ipad: function ipad() {\n return populate() || _ipad;\n }\n};\nexport default UserAgent;","/**\n * Checks if the current environment is in the browser and can access and modify the DOM.\n */\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport default canUseDOM;","import canUseDOM from \"../canUseDOM.js\";\nvar useHasFeature;\n\nif (canUseDOM) {\n useHasFeature = document.implementation && document.implementation.hasFeature && // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true;\n}\n\nfunction isEventSupported(eventNameSuffix, capture) {\n if (!canUseDOM || capture && !('addEventListener' in document)) {\n return false;\n }\n\n var eventName = \"on\" + eventNameSuffix;\n var isSupported = (eventName in document);\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nexport default isEventSupported;","import UserAgent from \"./UserAgent.js\";\nimport isEventSupported from \"./isEventSupported.js\"; // Reasonable defaults\n\nvar PIXEL_STEP = 10;\nvar LINE_HEIGHT = 40;\nvar PAGE_HEIGHT = 800;\n\nfunction normalizeWheel(event) {\n var sX = 0;\n var sY = 0; // spinX, spinY\n\n var pX = 0;\n var pY = 0; // pixelX, pixelY\n // Legacy\n\n if ('detail' in event) {\n sY = event.detail;\n }\n\n if ('wheelDelta' in event) {\n sY = -event.wheelDelta / 120;\n }\n\n if ('wheelDeltaY' in event) {\n sY = -event.wheelDeltaY / 120;\n }\n\n if ('wheelDeltaX' in event) {\n sX = -event.wheelDeltaX / 120;\n } // side scrolling on FF with DOMMouseScroll\n\n\n if ('axis' in event && event.axis === event.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in event) {\n pY = event.deltaY;\n }\n\n if ('deltaX' in event) {\n pX = event.deltaX;\n }\n\n if ((pX || pY) && event.deltaMode) {\n if (event.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n } // Fall-back if spin cannot be determined\n\n\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n}\n/**\n * The best combination if you prefer spinX + spinY normalization. It favors\n * the older DOMMouseScroll for Firefox, as FF does not include wheelDelta with\n * 'wheel' event, making spin speed determination impossible.\n */\n\n\nnormalizeWheel.getEventType = function () {\n if (UserAgent.firefox()) {\n return 'DOMMouseScroll';\n }\n\n return isEventSupported('wheel') ? 'wheel' : 'mousewheel';\n};\n\nexport default normalizeWheel;","// the only reliable means to get the global object is\n// `Function('return this')()`\n// However, this causes CSP violations in Chrome apps.\n// https://github.com/tc39/proposal-global\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n\n if (typeof self !== 'undefined') {\n return self;\n }\n\n if (typeof window !== 'undefined') {\n return window;\n }\n\n throw new Error('unable to locate global object');\n}\n\nexport default getGlobal;","import emptyFunction from \"./utils/emptyFunction.js\";\nimport getGlobal from \"./utils/getGlobal.js\";\nvar g = getGlobal();\nvar lastTime = 0;\n\nfunction _setTimeout(callback) {\n var currTime = Date.now();\n var timeDelay = Math.max(0, 16 - (currTime - lastTime));\n lastTime = currTime + timeDelay;\n return g.setTimeout(function () {\n callback(Date.now());\n }, timeDelay);\n}\n/**\n * @deprecated Use `requestAnimationFrame` instead.\n */\n\n\nvar requestAnimationFramePolyfill = g.requestAnimationFrame || _setTimeout; // Works around a rare bug in Safari 6 where the first request is never invoked.\n\nrequestAnimationFramePolyfill(emptyFunction);\nexport default requestAnimationFramePolyfill;","import emptyFunction from \"./utils/emptyFunction.js\";\nimport normalizeWheel from \"./utils/normalizeWheel.js\";\nimport requestAnimationFramePolyfill from \"./requestAnimationFramePolyfill.js\";\n\nvar swapWheelAxis = function swapWheelAxis(normalizedEvent) {\n return {\n spinX: normalizedEvent.spinY,\n spinY: normalizedEvent.spinX,\n pixelX: normalizedEvent.pixelY,\n pixelY: normalizedEvent.pixelX\n };\n};\n/**\n * Used to handle scrolling trackpad and mouse wheel events.\n */\n\n\nvar WheelHandler = /*#__PURE__*/function () {\n function WheelHandler(onWheel, handleScrollX, handleScrollY, stopPropagation) {\n this.animationFrameID = null;\n this.deltaX = 0;\n this.deltaY = 0;\n this.handleScrollX = null;\n this.handleScrollY = null;\n this.stopPropagation = null;\n this.onWheelCallback = null;\n this.didWheel = this.didWheel.bind(this);\n\n if (typeof handleScrollX !== 'function') {\n handleScrollX = handleScrollX ? emptyFunction.thatReturnsTrue : emptyFunction.thatReturnsFalse;\n }\n\n if (typeof handleScrollY !== 'function') {\n handleScrollY = handleScrollY ? emptyFunction.thatReturnsTrue : emptyFunction.thatReturnsFalse;\n }\n\n if (typeof stopPropagation !== 'function') {\n stopPropagation = stopPropagation ? emptyFunction.thatReturnsTrue : emptyFunction.thatReturnsFalse;\n }\n\n this.handleScrollX = handleScrollX;\n this.handleScrollY = handleScrollY;\n this.stopPropagation = stopPropagation;\n this.onWheelCallback = onWheel;\n this.onWheel = this.onWheel.bind(this);\n }\n /**\n * Binds the wheel handler.\n * @param event The wheel event.\n */\n\n\n var _proto = WheelHandler.prototype;\n\n _proto.onWheel = function onWheel(event) {\n var normalizedEvent = normalizeWheel(event); // on some platforms (e.g. Win10), browsers do not automatically swap deltas for horizontal scroll\n\n if (navigator.platform !== 'MacIntel' && event.shiftKey) {\n normalizedEvent = swapWheelAxis(normalizedEvent);\n }\n\n var deltaX = this.deltaX + normalizedEvent.pixelX;\n var deltaY = this.deltaY + normalizedEvent.pixelY;\n var handleScrollX = this.handleScrollX(deltaX, deltaY);\n var handleScrollY = this.handleScrollY(deltaY, deltaX);\n\n if (!handleScrollX && !handleScrollY) {\n return;\n }\n\n this.deltaX += handleScrollX ? normalizedEvent.pixelX : 0;\n this.deltaY += handleScrollY ? normalizedEvent.pixelY : 0;\n event.preventDefault();\n var changed;\n\n if (this.deltaX !== 0 || this.deltaY !== 0) {\n if (this.stopPropagation()) {\n event.stopPropagation();\n }\n\n changed = true;\n }\n\n if (changed === true && this.animationFrameID === null) {\n this.animationFrameID = requestAnimationFramePolyfill(this.didWheel);\n }\n }\n /**\n * Fires a callback if the wheel event has changed.\n */\n ;\n\n _proto.didWheel = function didWheel() {\n this.animationFrameID = null;\n this.onWheelCallback(this.deltaX, this.deltaY);\n this.deltaX = 0;\n this.deltaY = 0;\n };\n\n return WheelHandler;\n}();\n\nexport default WheelHandler;","import getGlobal from \"./utils/getGlobal.js\";\nvar g = getGlobal();\n/**\n * @deprecated use `cancelAnimationFrame` instead\n */\n\nvar cancelAnimationFramePolyfill = g.cancelAnimationFrame || g.clearTimeout;\nexport default cancelAnimationFramePolyfill;","/**\n * Source code reference from:\n * https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/dom/DOMMouseMoveTracker.js\n */\nimport on from \"./on.js\";\nimport cancelAnimationFramePolyfill from \"./cancelAnimationFramePolyfill.js\";\nimport requestAnimationFramePolyfill from \"./requestAnimationFramePolyfill.js\";\n/**\n * Mouse drag tracker, get the coordinate value where the mouse moves in time.\n *\n * ```typescript\n * const tracker = new DOMMouseMoveTracker(\n * onMove:(deltaX: number, deltaY: number, moveEvent: Object) => void,\n * onMoveEnd:() => void,\n * container: HTMLElement\n * );\n * ```\n */\n\nvar DOMMouseMoveTracker = /*#__PURE__*/function () {\n /**\n * onMove is the callback that will be called on every mouse move.\n * onMoveEnd is called on mouse up when movement has ended.\n */\n function DOMMouseMoveTracker(onMove, onMoveEnd, domNode) {\n var _this = this;\n\n this.isDraggingStatus = false;\n this.animationFrameID = null;\n this.domNode = void 0;\n this.onMove = null;\n this.onMoveEnd = null;\n this.eventMoveToken = null;\n this.eventUpToken = null;\n this.moveEvent = null;\n this.deltaX = 0;\n this.deltaY = 0;\n this.x = 0;\n this.y = 0;\n\n this.isDragging = function () {\n return _this.isDraggingStatus;\n };\n\n this.onMouseMove = function (event) {\n var x = event.clientX;\n var y = event.clientY;\n _this.deltaX += x - _this.x;\n _this.deltaY += y - _this.y;\n\n if (_this.animationFrameID === null) {\n // The mouse may move faster then the animation frame does.\n // Use `requestAnimationFramePolyfill` to avoid over-updating.\n _this.animationFrameID = requestAnimationFramePolyfill(_this.didMouseMove);\n }\n\n _this.x = x;\n _this.y = y;\n _this.moveEvent = event;\n event.preventDefault();\n };\n\n this.didMouseMove = function () {\n _this.animationFrameID = null;\n\n _this.onMove(_this.deltaX, _this.deltaY, _this.moveEvent);\n\n _this.deltaX = 0;\n _this.deltaY = 0;\n };\n\n this.onMouseUp = function (event) {\n if (_this.animationFrameID) {\n _this.didMouseMove();\n }\n\n _this.onMoveEnd && _this.onMoveEnd(event);\n };\n\n this.domNode = domNode;\n this.onMove = onMove;\n this.onMoveEnd = onMoveEnd;\n }\n /**\n * This is to set up the listeners for listening to mouse move\n * and mouse up signaling the movement has ended. Please note that these\n * listeners are added at the document.body level. It takes in an event\n * in order to grab inital state.\n */\n\n\n var _proto = DOMMouseMoveTracker.prototype;\n\n _proto.captureMouseMoves = function captureMouseMoves(event) {\n if (!this.eventMoveToken && !this.eventUpToken) {\n this.eventMoveToken = on(this.domNode, 'mousemove', this.onMouseMove);\n this.eventUpToken = on(this.domNode, 'mouseup', this.onMouseUp);\n }\n\n if (!this.isDraggingStatus) {\n this.deltaX = 0;\n this.deltaY = 0;\n this.isDraggingStatus = true;\n this.x = event.clientX;\n this.y = event.clientY;\n }\n\n event.preventDefault();\n }\n /**\n * These releases all of the listeners on document.body.\n */\n ;\n\n _proto.releaseMouseMoves = function releaseMouseMoves() {\n if (this.eventMoveToken) {\n this.eventMoveToken.off();\n this.eventMoveToken = null;\n }\n\n if (this.eventUpToken) {\n this.eventUpToken.off();\n this.eventUpToken = null;\n }\n\n if (this.animationFrameID !== null) {\n cancelAnimationFramePolyfill(this.animationFrameID);\n this.animationFrameID = null;\n }\n\n if (this.isDraggingStatus) {\n this.isDraggingStatus = false;\n this.x = 0;\n this.y = 0;\n }\n }\n /**\n * Returns whether or not if the mouse movement is being tracked.\n */\n ;\n\n return DOMMouseMoveTracker;\n}();\n\nexport default DOMMouseMoveTracker;","/**\n * Check whether an element has a specific class\n *\n * @param target The element to be checked\n * @param className The class to be checked\n *\n * @returns `true` if the element has the class, `false` otherwise\n */\nexport default function hasClass(target, className) {\n if (target.classList) {\n return !!className && target.classList.contains(className);\n }\n\n return (\" \" + target.className + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","import hasClass from \"./hasClass.js\";\n/**\n * Adds specific class to a given element\n *\n * @param target The element to add class to\n * @param className The class to be added\n *\n * @returns The target element\n */\n\nexport default function addClass(target, className) {\n if (className) {\n if (target.classList) {\n target.classList.add(className);\n } else if (!hasClass(target, className)) {\n target.className = target.className + \" \" + className;\n }\n }\n\n return target;\n}","/**\n * Remove a class from a given element\n *\n * @param target The element to remove the class from\n * @param className The class to be removed\n *\n * @returns The target element\n */\nexport default function removeClass(target, className) {\n if (className) {\n if (target.classList) {\n target.classList.remove(className);\n } else {\n target.className = target.className.replace(new RegExp(\"(^|\\\\s)\" + className + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ') // multiple spaces to one\n .replace(/^\\s*|\\s*$/g, ''); // trim the ends\n }\n }\n\n return target;\n}","/**\n * Returns the top-level document object of the node.\n * @param node The DOM element\n * @returns The top-level document object of the node\n */\nexport default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","/**\n * Get the Window object of browser\n * @param node The DOM element\n * @returns The Window object of browser\n */\nexport default function getWindow(node) {\n if (node === (node === null || node === void 0 ? void 0 : node.window)) {\n return node;\n }\n\n return (node === null || node === void 0 ? void 0 : node.nodeType) === 9 ? (node === null || node === void 0 ? void 0 : node.defaultView) || (node === null || node === void 0 ? void 0 : node.parentWindow) : null;\n}","/**\n * Get a DOM container\n * @param container\n * @param defaultContainer\n * @returns\n */\nexport default function getContainer(container, defaultContainer) {\n container = typeof container === 'function' ? container() : container;\n return container || defaultContainer;\n}","import canUseDOM from \"./canUseDOM.js\";\n\nvar fallback = function fallback(context, node) {\n if (!node) return false;\n\n do {\n if (node === context) {\n return true;\n }\n } while (node.parentNode && (node = node.parentNode));\n\n return false;\n};\n/**\n * Checks if an element contains another given element.\n *\n * @param context The context element\n * @param node The element to check\n * @returns `true` if the given element is contained, `false` otherwise\n */\n\n\nvar contains = function contains(context, node) {\n if (!node) return false;\n\n if (context.contains) {\n return context.contains(node);\n } else if (context.compareDocumentPosition) {\n return context === node || !!(context.compareDocumentPosition(node) & 16);\n }\n\n return fallback(context, node);\n};\n\nexport default (function () {\n return canUseDOM ? contains : fallback;\n})();","import getWindow from \"./getWindow.js\";\n/**\n * Gets the number of pixels that an element's content is scrolled vertically.\n * @param node The DOM element\n */\n\nfunction scrollTop(node, val) {\n var win = getWindow(node);\n var top = node.scrollTop;\n var left = 0;\n\n if (win) {\n top = win.pageYOffset;\n left = win.pageXOffset;\n }\n\n if (val !== undefined) {\n if (win) {\n win.scrollTo(left, val);\n } else {\n node.scrollTop = val;\n }\n }\n\n return top;\n}\n\nexport default scrollTop;","import getWindow from \"./getWindow.js\";\n/**\n * Gets the number of pixels to scroll the element's content from the left edge.\n * @param node The DOM element\n */\n\nfunction scrollLeft(node, val) {\n var win = getWindow(node);\n var left = node.scrollLeft;\n var top = 0;\n\n if (win) {\n left = win.pageXOffset;\n top = win.pageYOffset;\n }\n\n if (val !== undefined) {\n if (win) {\n win.scrollTo(val, top);\n } else {\n node.scrollLeft = val;\n }\n }\n\n return left;\n}\n\nexport default scrollLeft;","import ownerDocument from \"./ownerDocument.js\";\nimport getWindow from \"./getWindow.js\";\nimport contains from \"./contains.js\";\n\n/**\n * Get the offset of a DOM element\n * @param node The DOM element\n * @returns The offset of the DOM element\n */\nexport default function getOffset(node) {\n var doc = ownerDocument(node);\n var win = getWindow(doc);\n var docElem = doc && doc.documentElement;\n var box = {\n top: 0,\n left: 0,\n height: 0,\n width: 0\n };\n\n if (!doc) {\n return null;\n } // Make sure it's not a disconnected DOM node\n\n\n if (!contains(docElem, node)) {\n return box;\n }\n\n if ((node === null || node === void 0 ? void 0 : node.getBoundingClientRect) !== undefined) {\n box = node.getBoundingClientRect();\n }\n\n if ((box.width || box.height) && docElem && win) {\n box = {\n top: box.top + (win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0),\n left: box.left + (win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0),\n width: (box.width === null ? node.offsetWidth : box.width) || 0,\n height: (box.height === null ? node.offsetHeight : box.height) || 0\n };\n }\n\n return box;\n}","/**\n * Get the name of the DOM element\n * @param node The DOM element\n * @returns The name of the DOM element\n */\nexport default function nodeName(node) {\n var _node$nodeName;\n\n return (node === null || node === void 0 ? void 0 : node.nodeName) && (node === null || node === void 0 ? void 0 : (_node$nodeName = node.nodeName) === null || _node$nodeName === void 0 ? void 0 : _node$nodeName.toLowerCase());\n}","/* eslint-disable */\n\n/**\n * @example\n * underscoreName('getList');\n * => get_list\n */\nexport function underscore(string) {\n return string.replace(/([A-Z])/g, '_$1').toLowerCase();\n}\n/**\n * @example\n * camelize('font-size');\n * => fontSize\n */\n\nexport function camelize(string) {\n return string.replace(/\\-(\\w)/g, function (_char) {\n return _char.slice(1).toUpperCase();\n });\n}\n/**\n * @example\n * camelize('fontSize');\n * => font-size\n */\n\nexport function hyphenate(string) {\n return string.replace(/([A-Z])/g, '-$1').toLowerCase();\n}\n/**\n * @example\n * merge('{0} - A front-end {1} ','Suite','framework');\n * => Suite - A front-end framework\n */\n\nexport function merge(pattern) {\n var pointer = 0,\n i;\n\n for (i = 1; i < arguments.length; i += 1) {\n pattern = pattern.split(\"{\" + pointer + \"}\").join(arguments[i]);\n pointer += 1;\n }\n\n return pattern;\n}","import { camelize } from \"./stringFormatter.js\";\nvar msPattern = /^-ms-/;\nexport default function camelizeStyleName(name) {\n // The `-ms` prefix is converted to lowercase `ms`.\n // http://www.andismith.com/blog/2012/02/modernizr-prefixed/\n return camelize(name.replace(msPattern, 'ms-'));\n}","export default (function (node) {\n if (!node) {\n throw new TypeError('No Element passed to `getComputedStyle()`');\n }\n\n var doc = node.ownerDocument;\n\n if ('defaultView' in doc) {\n if (doc.defaultView.opener) {\n return node.ownerDocument.defaultView.getComputedStyle(node, null);\n }\n\n return window.getComputedStyle(node, null);\n }\n\n return null;\n});","import { hyphenate } from \"./stringFormatter.js\";\nvar msPattern = /^ms-/;\nexport default (function (string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n});","import camelizeStyleName from \"./utils/camelizeStyleName.js\";\nimport getComputedStyle from \"./utils/getComputedStyle.js\";\nimport hyphenateStyleName from \"./utils/hyphenateStyleName.js\";\n/**\n * Gets the value for a style property\n * @param node The DOM element\n * @param property The style property\n * @returns The value of the style property\n */\n\nexport default function getStyle(node, property) {\n if (property) {\n var value = node.style[camelizeStyleName(property)];\n\n if (value) {\n return value;\n }\n\n var styles = getComputedStyle(node);\n\n if (styles) {\n return styles.getPropertyValue(hyphenateStyleName(property));\n }\n }\n\n return node.style || getComputedStyle(node);\n}","import ownerDocument from \"./ownerDocument.js\";\nimport nodeName from \"./nodeName.js\";\nimport getStyle from \"./getStyle.js\";\n/**\n * Get the offset parent of a DOM element\n * @param node The DOM element\n * @returns The offset parent of the DOM element\n */\n\nexport default function getOffsetParent(node) {\n var doc = ownerDocument(node);\n var offsetParent = node === null || node === void 0 ? void 0 : node.offsetParent;\n\n while (offsetParent && nodeName(node) !== 'html' && getStyle(offsetParent, 'position') === 'static') {\n offsetParent = offsetParent.offsetParent;\n }\n\n return offsetParent || doc.documentElement;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getOffset from \"./getOffset.js\";\nimport getStyle from \"./getStyle.js\";\nimport scrollTop from \"./scrollTop.js\";\nimport scrollLeft from \"./scrollLeft.js\";\nimport nodeName from \"./nodeName.js\";\n/**\n * Get the position of a DOM element\n * @param node The DOM element\n * @param offsetParent The offset parent of the DOM element\n * @param calcMargin Whether to calculate the margin\n * @returns The position of the DOM element\n */\n\nexport default function getPosition(node, offsetParent, calcMargin) {\n if (calcMargin === void 0) {\n calcMargin = true;\n }\n\n var parentOffset = {\n top: 0,\n left: 0\n };\n var offset = null; // Fixed elements are offset from window (parentOffset = {top:0, left: 0},\n // because it is its only offset parent\n\n if (getStyle(node, 'position') === 'fixed') {\n offset = node.getBoundingClientRect();\n } else {\n offsetParent = offsetParent || getOffsetParent(node);\n offset = getOffset(node);\n\n if (nodeName(offsetParent) !== 'html') {\n var nextParentOffset = getOffset(offsetParent);\n\n if (nextParentOffset) {\n parentOffset.top = nextParentOffset.top;\n parentOffset.left = nextParentOffset.left;\n }\n }\n\n parentOffset.top += parseInt(getStyle(offsetParent, 'borderTopWidth'), 10) - scrollTop(offsetParent) || 0;\n parentOffset.left += parseInt(getStyle(offsetParent, 'borderLeftWidth'), 10) - scrollLeft(offsetParent) || 0;\n } // Subtract parent offsets and node margins\n\n\n if (offset) {\n var marginTop = calcMargin ? parseInt(getStyle(node, 'marginTop'), 10) || 0 : 0;\n var marginLeft = calcMargin ? parseInt(getStyle(node, 'marginLeft'), 10) || 0 : 0;\n return _extends({}, offset, {\n top: offset.top - parentOffset.top - marginTop,\n left: offset.left - parentOffset.left - marginLeft\n });\n }\n\n return null;\n}","import getWindow from \"./getWindow.js\";\nimport getOffset from \"./getOffset.js\";\n/**\n * Get the height of a DOM element\n * @param node The DOM element\n * @param client Whether to get the client height\n * @returns The height of the DOM element\n */\n\nexport default function getHeight(node, client) {\n var win = getWindow(node);\n\n if (win) {\n return win.innerHeight;\n }\n\n return client ? node.clientHeight : getOffset(node).height;\n}","import getWindow from \"./getWindow.js\";\nimport getOffset from \"./getOffset.js\";\n/**\n * Get the width of a DOM element\n * @param node The DOM element\n * @param client Whether to get the client width\n * @returns The width of the DOM element\n */\n\nexport default function getWidth(node, client) {\n var win = getWindow(node);\n\n if (win) {\n return win.innerWidth;\n }\n\n if (client) {\n return node.clientWidth;\n }\n\n var offset = getOffset(node);\n return offset ? offset.width : 0;\n}","function _removeStyle(node, key) {\n var _style, _style$removeProperty;\n\n (_style = node.style) === null || _style === void 0 ? void 0 : (_style$removeProperty = _style.removeProperty) === null || _style$removeProperty === void 0 ? void 0 : _style$removeProperty.call(_style, key);\n}\n/**\n * Remove a style property from a DOM element\n * @param node The DOM element\n * @param keys key(s) typeof [string , array]\n */\n\n\nexport default function removeStyle(node, keys) {\n if (typeof keys === 'string') {\n _removeStyle(node, keys);\n } else if (Array.isArray(keys)) {\n keys.forEach(function (key) {\n return _removeStyle(node, key);\n });\n }\n}","import hyphenateStyleName from \"./utils/hyphenateStyleName.js\";\nimport removeStyle from \"./removeStyle.js\";\n\nfunction addStyle(node, property, value) {\n var css = '';\n var props = property;\n\n if (typeof property === 'string') {\n if (value === undefined) {\n throw new Error('value is undefined');\n }\n\n (props = {})[property] = value;\n }\n\n if (typeof props === 'object') {\n for (var _key in props) {\n if (Object.prototype.hasOwnProperty.call(props, _key)) {\n if (!props[_key] && props[_key] !== 0) {\n removeStyle(node, hyphenateStyleName(_key));\n } else {\n css += hyphenateStyleName(_key) + \":\" + props[_key] + \";\";\n }\n }\n }\n }\n\n node.style.cssText += \";\" + css;\n}\n\nexport default addStyle;","import canUseDOM from \"../canUseDOM.js\";\nimport { camelize } from \"./stringFormatter.js\";\nvar memoized = {};\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\nvar prefixRegex = new RegExp(\"^(\" + prefixes.join('|') + \")\");\nvar testStyle = canUseDOM ? document.createElement('div').style : {};\n\nfunction getWithPrefix(name) {\n for (var i = 0; i < prefixes.length; i += 1) {\n var prefixedName = prefixes[i] + name;\n\n if (prefixedName in testStyle) {\n return prefixedName;\n }\n }\n\n return null;\n}\n/**\n * @param {string} property Name of a css property to check for.\n * @return {?string} property name supported in the browser, or null if not\n * supported.\n */\n\n\nfunction getVendorPrefixedName(property) {\n var name = camelize(property);\n\n if (memoized[name] === undefined) {\n var capitalizedName = name.charAt(0).toUpperCase() + name.slice(1);\n\n if (prefixRegex.test(capitalizedName)) {\n throw new Error(\"getVendorPrefixedName must only be called with unprefixed\\n CSS property names. It was called with \" + property);\n }\n\n memoized[name] = name in testStyle ? name : getWithPrefix(capitalizedName);\n }\n\n return memoized[name] || name;\n}\n\nexport default getVendorPrefixedName;","import getVendorPrefixedName from \"./getVendorPrefixedName.js\";\nexport default {\n /**\n * @return {bool} True if browser supports css animations.\n */\n hasCSSAnimations: function hasCSSAnimations() {\n return !!getVendorPrefixedName('animationName');\n },\n\n /**\n * @return {bool} True if browser supports css transforms.\n */\n hasCSSTransforms: function hasCSSTransforms() {\n return !!getVendorPrefixedName('transform');\n },\n\n /**\n * @return {bool} True if browser supports css 3d transforms.\n */\n hasCSS3DTransforms: function hasCSS3DTransforms() {\n return !!getVendorPrefixedName('perspective');\n },\n\n /**\n * @return {bool} True if browser supports css transitions.\n */\n hasCSSTransitions: function hasCSSTransitions() {\n return !!getVendorPrefixedName('transition');\n }\n};","/**\n * Source code reference from:\n * https://github.com/facebook/fbjs/blob/d308fa83c9/packages/fbjs/src/dom/translateDOMPositionXY.js\n */\nimport BrowserSupportCore from \"./utils/BrowserSupportCore.js\";\nimport getVendorPrefixedName from \"./utils/getVendorPrefixedName.js\";\nimport getGlobal from \"./utils/getGlobal.js\";\nvar g = getGlobal();\nvar TRANSFORM = getVendorPrefixedName('transform');\nvar BACKFACE_VISIBILITY = getVendorPrefixedName('backfaceVisibility');\n\nvar appendLeftAndTop = function appendLeftAndTop(style, x, y) {\n if (x === void 0) {\n x = 0;\n }\n\n if (y === void 0) {\n y = 0;\n }\n\n style.left = x + \"px\";\n style.top = y + \"px\";\n return style;\n};\n\nvar appendTranslate = function appendTranslate(style, x, y) {\n if (x === void 0) {\n x = 0;\n }\n\n if (y === void 0) {\n y = 0;\n }\n\n style[TRANSFORM] = \"translate(\" + x + \"px,\" + y + \"px)\";\n return style;\n};\n\nvar appendTranslate3d = function appendTranslate3d(style, x, y) {\n if (x === void 0) {\n x = 0;\n }\n\n if (y === void 0) {\n y = 0;\n }\n\n style[TRANSFORM] = \"translate3d(\" + x + \"px,\" + y + \"px,0)\";\n style[BACKFACE_VISIBILITY] = 'hidden';\n return style;\n};\n\nexport var getTranslateDOMPositionXY = function getTranslateDOMPositionXY(conf) {\n var _ref = conf || {},\n _ref$enableTransform = _ref.enableTransform,\n enableTransform = _ref$enableTransform === void 0 ? true : _ref$enableTransform,\n _ref$enable3DTransfor = _ref.enable3DTransform,\n enable3DTransform = _ref$enable3DTransfor === void 0 ? true : _ref$enable3DTransfor,\n forceUseTransform = _ref.forceUseTransform;\n\n if (forceUseTransform) {\n return conf.enable3DTransform ? appendTranslate3d : appendTranslate;\n }\n\n if (BrowserSupportCore.hasCSSTransforms() && enableTransform) {\n var ua = g.window ? g.window.navigator.userAgent : 'UNKNOWN';\n var isSafari = /Safari\\//.test(ua) && !/Chrome\\//.test(ua); // It appears that Safari messes up the composition order\n // of GPU-accelerated layers\n // (see bug https://bugs.webkit.org/show_bug.cgi?id=61824).\n // Use 2D translation instead.\n\n if (!isSafari && BrowserSupportCore.hasCSS3DTransforms() && enable3DTransform) {\n return appendTranslate3d;\n }\n\n return appendTranslate;\n }\n\n return appendLeftAndTop;\n};\nvar translateDOMPositionXY = getTranslateDOMPositionXY();\nexport default translateDOMPositionXY;","import canUseDOM from \"./canUseDOM.js\";\n\nfunction getTransitionProperties() {\n if (!canUseDOM) {\n return {};\n }\n\n var vendorMap = {\n O: function O(e) {\n return \"o\" + e.toLowerCase();\n },\n Moz: function Moz(e) {\n return e.toLowerCase();\n },\n Webkit: function Webkit(e) {\n return \"webkit\" + e;\n },\n ms: function ms(e) {\n return \"MS\" + e;\n }\n };\n var vendors = Object.keys(vendorMap);\n var style = document.createElement('div').style;\n var tempTransitionEnd;\n var tempPrefix = '';\n\n for (var i = 0; i < vendors.length; i += 1) {\n var vendor = vendors[i];\n\n if (vendor + \"TransitionProperty\" in style) {\n tempPrefix = \"-\" + vendor.toLowerCase();\n tempTransitionEnd = vendorMap[vendor]('TransitionEnd');\n break;\n }\n }\n\n if (!tempTransitionEnd && 'transitionProperty' in style) {\n tempTransitionEnd = 'transitionend';\n }\n\n style = null;\n\n var addPrefix = function addPrefix(name) {\n return tempPrefix + \"-\" + name;\n };\n\n return {\n end: tempTransitionEnd,\n backfaceVisibility: addPrefix('backface-visibility'),\n transform: addPrefix('transform'),\n property: addPrefix('transition-property'),\n timing: addPrefix('transition-timing-function'),\n delay: addPrefix('transition-delay'),\n duration: addPrefix('transition-duration')\n };\n}\n\nexport default getTransitionProperties;","import getTransitionProperties from \"./getTransitionProperties.js\";\nexport default function getTransitionEnd() {\n return getTransitionProperties().end;\n}"],"names":["on","target","eventType","listener","options","_this","this","makeEmptyFunction","arg","emptyFunction","populated","_ie","_firefox","_opera","_webkit","_chrome","ieRealVersion","_osx","_windows","_linux","_android","win64","_iphone","_ipad","_native","_mobile","populate","uas","agent","os","trident","ver","UserAgent","canUseDOM","useHasFeature","isEventSupported","eventNameSuffix","capture","eventName","isSupported","element","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","normalizeWheel","event","sX","sY","pX","pY","getGlobal","g","lastTime","_setTimeout","callback","currTime","timeDelay","requestAnimationFramePolyfill","swapWheelAxis","normalizedEvent","WheelHandler","onWheel","handleScrollX","handleScrollY","stopPropagation","_proto","deltaX","deltaY","changed","cancelAnimationFramePolyfill","DOMMouseMoveTracker","onMove","onMoveEnd","domNode","x","y","hasClass","className","addClass","removeClass","ownerDocument","node","getWindow","getContainer","container","defaultContainer","fallback","context","contains","contains$1","scrollTop","val","win","top","left","scrollLeft","getOffset","doc","docElem","box","nodeName","_node$nodeName","camelize","string","_char","hyphenate","msPattern","camelizeStyleName","name","getComputedStyle","hyphenateStyleName","getStyle","property","value","styles","getOffsetParent","offsetParent","getPosition","calcMargin","parentOffset","offset","nextParentOffset","marginTop","marginLeft","_extends","getHeight","client","getWidth","_removeStyle","key","_style","_style$removeProperty","removeStyle","keys","addStyle","css","props","_key","memoized","prefixes","prefixRegex","testStyle","getWithPrefix","i","prefixedName","getVendorPrefixedName","capitalizedName","BrowserSupportCore","TRANSFORM","BACKFACE_VISIBILITY","appendLeftAndTop","style","appendTranslate","appendTranslate3d","getTranslateDOMPositionXY","conf","_ref","_ref$enableTransform","enableTransform","_ref$enable3DTransfor","enable3DTransform","forceUseTransform","ua","isSafari","getTransitionProperties","vendorMap","e","vendors","tempTransitionEnd","tempPrefix","vendor","addPrefix","getTransitionEnd"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37]}