{"version":3,"sources":["webpack:///./node_modules/react-scrollbars-custom/dist/rsc.esm.js","webpack:///./node_modules/react-draggable/build/cjs/utils/shims.js","webpack:///./node_modules/react-draggable/build/cjs/utils/domFns.js","webpack:///./node_modules/clsx/dist/clsx.m.js","webpack:///./node_modules/react-draggable/build/cjs/utils/positionFns.js","webpack:///./node_modules/react-draggable/build/cjs/utils/log.js","webpack:///./node_modules/react-draggable/build/cjs/cjs.js","webpack:///./node_modules/react-draggable/build/cjs/Draggable.js","webpack:///./node_modules/react-draggable/build/cjs/utils/getPrefix.js","webpack:///./node_modules/react-draggable/build/cjs/DraggableCore.js","webpack:///./node_modules/cnbuilder/dist/index.esm.js","webpack:///./node_modules/zoom-level/dist/zoom-level.esm.js"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","__","this","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","_typeof","obj","Symbol","iterator","AXIS_DIRECTION","TRACK_CLICK_BEHAVIOR","doc","document","isUndef","v","isFun","isNum","renderDivWithRenderer","props","elementRef","renderer","ref","getInnerSize","el","dimension","padding1","padding2","styles","getComputedStyle","boxSizing","Math","max","parseFloat","getInnerHeight","getInnerWidth","calcThumbSize","contentSize","viewportSize","trackSize","minimalSize","maximalSize","thumbSize","min","calcThumbOffset","scroll","calcScrollForThumbOffset","thumbOffset","getScrollbarWidth","force","_cache","createElement","setAttribute","body","appendChild","clientWidth","removeChild","shouldReverseRtlScroll","child","scrollLeft","Emittr","maxHandlers","setMaxHandlers","_handlers","_callEventHandlers","emitter","handlers","args","idx","il","r","k","a","j","jl","__spreadArrays","Reflect","count","TypeError","_maxHandlers","getMaxHandlers","emit","name","_i","isArray","on","handler","_addHandler","prependOn","once","_wrapOnceHandler","prependOnce","off","_removeHandler","removeAllHandlers","eventName","removeHandlers","onceState","fired","wrappedHandler","undefined","event","_onceWrapper","bind","prepend","unshift","push","shift","splice","Loop","RAFLoop","_this","targets","animationFrameID","_isActive","start","cancelAnimationFrame","requestAnimationFrame","rafCallback","stop","addTarget","target","silent","removeTarget","_unmounted","update","defineProperty","get","enumerable","configurable","ScrollbarThumb","_super","initialOffsetX","initialOffsetY","lastDragData","x","y","deltaX","deltaY","lastX","lastY","element","elementRefHack","handleOnDragStart","ev","data","global","prevUserSelect","style","userSelect","prevOnSelectStart","onselectstart","selectStartReplacer","onDragStart","classList","add","handleOnDragStop","handleOnDrag","onDrag","resultData","onDragEnd","remove","handleOnMouseDown","preventDefault","stopPropagation","offsetX","rect","getBoundingClientRect","clientX","touches","left","clientY","top","offsetY","componentDidMount","setState","Error","componentWillUnmount","render","_a","axis","className","X","allowAnyClick","enableUserSelectHack","onMouseDown","onStart","onStop","nodeRef","ScrollbarTrack","handleClick","button","onClick","offset","addEventListener","removeEventListener","holder","position","width","height","wrapper","bottom","right","content","track","common","overflow","borderRadius","background","thumb","cursor","pageZoomLevel","window","passive","ScrollbarContext","parentScrollbar","Scrollbar","getScrollState","scrollValues","scrollState","clientHeight","contentScrollHeight","contentScrollWidth","scrollHeight","scrollWidth","scrollTop","scrollYBlocked","scrollXBlocked","scrollYPossible","scrollXPossible","trackYVisible","trackXVisible","zoomLevel","isRTL","state","noScroll","noScrollY","noScrollX","scrollerElement","permanentTracks","permanentTrackY","permanentTrackX","contentElement","scrollToTop","scrollToLeft","scrollToBottom","scrollToRight","scrollTo","centerAt","direction","prevScrollState","bitmask","native","holderElement","translateContentSizesToHolder","translateContentSizeYToHolder","translateContentSizeXToHolder","trackYElement","display","trackXElement","updaterNative","updaterCustom","forceUpdate","eventEmitter","thumbYElement","trackInnerSize","minimalThumbYSize","minimalThumbSize","maximalThumbYSize","maximalThumbSize","transform","thumbXElement","minimalThumbXSize","maximalThumbXSize","elementRefHolder","elementRefWrapper","wrapperElement","wrapperProps","elementRefScroller","scrollerProps","elementRefContent","contentProps","elementRefTrackX","trackXProps","elementRefTrackY","trackYProps","elementRefThumbX","thumbXProps","elementRefThumbY","thumbYProps","handleTrackXClick","values","_scrollDetection","paddingLeft","trackClickBehavior","STEP","handleTrackYClick","paddingTop","JUMP","handleTrackYMouseWheel","onWheel","disableTracksMousewheelScrolling","disableTrackYMousewheelScrolling","handleTrackXMouseWheel","disableTrackXMousewheelScrolling","handleThumbXDrag","trackRect","paddingRight","handleThumbXDragEnd","handleThumbYDrag","paddingBottom","handleThumbYDragEnd","handleScrollerScroll","_scrollDetectionTO","clearTimeout","setTimeout","_scrollDetectionCallback","scrollDetectionThreshold","rtl","onUpdate","onScroll","onScrollStart","onScrollStop","id","uuid","random","toString","set","calculateStyles","scrollbarWidth","_b","_c","_d","useDefaultStyles","noDefaultStyles","disableTracksWidthCompensation","disableTrackYWidthCompensation","disableTrackXWidthCompensation","padding","minHeight","minWidth","scroller","fallbackScrollbarWidth","momentum","WebkitOverflowScrolling","overflowY","overflowX","marginBottom","Number","trackX","trackY","thumbX","thumbY","mobileNative","componentDidUpdate","prevProps","prevState","createContext","removeTracksWhenNotUsed","removeTrackYWhenNotUsed","removeTrackXWhenNotUsed","propsWrapperProps","propsScrollerProps","propsContentProps","propsTrackXProps","propsTrackYProps","propsThumbXProps","propsThumbYProps","propsScrollbarWidth","children","propsHolderProps","contentProps_1","key","scrollerProps_1","holderChildren","Provider","value","Y","holderProps","contextType","defaultProps","exports","findInArray","array","callback","isFunction","func","num","isNaN","int","parseInt","dontSetMe","propName","componentName","concat","matchesSelector","matchesSelectorAndParentsTo","selector","baseNode","node","parentNode","addEvent","inputOptions","options","_objectSpread","capture","attachEvent","removeEvent","detachEvent","outerHeight","computedStyle","ownerDocument","defaultView","_shims","borderTopWidth","borderBottomWidth","outerWidth","borderLeftWidth","borderRightWidth","innerHeight","innerWidth","offsetXYFromParent","evt","offsetParent","scale","offsetParentRect","createCSSTransform","controlPos","positionOffset","translation","getTranslation","_defineProperty","_getPrefix","browserPrefixToKey","default","createSVGTransform","getTouch","identifier","targetTouches","changedTouches","getTouchIdentifier","addUserSelectStyles","styleEl","getElementById","type","innerHTML","getElementsByTagName","addClassName","removeUserSelectStyles","removeClassName","selection","empty","getSelection","removeAllRanges","nodeInterop","__esModule","cache","_getRequireWildcardCache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","_interopRequireWildcard","WeakMap","cacheBabelInterop","cacheNodeInterop","ownKeys","object","enumerableOnly","keys","symbols","filter","sym","source","forEach","getOwnPropertyDescriptors","defineProperties","writable","matchesSelectorFunc","method","_ref2","unitSuffix","defaultX","defaultY","match","RegExp","replace","toVal","mix","str","tmp","getBoundPosition","draggable","bounds","cloneBounds","findDOMNode","boundNode","ownerWindow","querySelector","HTMLElement","boundNodeEl","nodeStyle","boundNodeStyle","offsetLeft","marginLeft","offsetTop","marginTop","_domFns","marginRight","snapToGrid","grid","pendingX","pendingY","round","canDragX","canDragY","getControlPosition","touchIdentifier","draggableCore","touchObj","createCoreData","isStart","createDraggableData","coreData","_require","Draggable","DraggableCore","module","_DraggableCore","React","_propTypes","_interopRequireDefault","_reactDom","_clsx2","_positionFns","_log","_excluded","_extends","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","_slicedToArray","arr","_arrayWithHoles","_s","_e","_arr","_n","next","done","err","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","slice","from","test","_unsupportedIterableToArray","_nonIterableRest","len","arr2","_defineProperties","descriptor","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","getPrototypeOf","_React$Component","subClass","superClass","_inherits","Constructor","protoProps","staticProps","instance","_classCallCheck","dragging","dragged","uiData","newState","slackX","slackY","_getBoundPosition2","newStateX","newStateY","_this$props$position","defaultPosition","prevPropsPosition","isElementSVG","console","warn","_ref","SVGElement","_this$props$nodeRef$c","_this$props","_this$props$nodeRef","current","_clsx","_this$props2","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","draggableCoreProps","svgTransform","validPosition","transformOpts","onDragStop","cloneElement","Children","only","Component","propTypes","oneOf","oneOfType","shape","number","string","getPrefix","browserPrefixToStyle","prop","prefix","toLowerCase","prefixes","_window$document","_window$document$docu","documentElement","out","shouldCapitalize","toUpperCase","kebabToTitleCase","_default","eventsFor","move","dragEventFor","_len","_key","NaN","thisNode","disabled","Node","handle","cancel","coreEvent","mounted","handleDrag","handleDragStop","_snapToGrid2","MouseEvent","createEvent","initMouseEvent","handleDragStart","onTouchStart","onMouseUp","onTouchEnd","bool","nodeType","arrayOf","f","matches","devicePixelRatio","frames","screen","deviceXDPI","systemXDPI","matchMedia","c"],"mappings":"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","file":"3582cbc582db6b8adee4.js","sourcesContent":["import { cnb } from 'cnbuilder';\nimport * as React from 'react';\nimport { zoomLevel } from 'zoom-level';\nimport { DraggableCore } from 'react-draggable';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nvar doc = (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === \"object\" ? document : null;\nvar isUndef = function isUndef(v) {\n return typeof v === \"undefined\";\n};\nvar isFun = function isFun(v) {\n return typeof v === \"function\";\n};\nvar isNum = function isNum(v) {\n return typeof v === \"number\";\n};\n/**\r\n * @description Will return renderer result if presented, div element otherwise.\r\n * If renderer is presented it'll receive `elementRef` function which should be used as HTMLElement's ref.\r\n *\r\n * @param props {ElementPropsWithElementRefAndRenderer}\r\n * @param elementRef {ElementRef}\r\n */\n\nvar renderDivWithRenderer = function renderDivWithRenderer(props, elementRef) {\n if (isFun(props.renderer)) {\n props.elementRef = elementRef;\n var renderer = props.renderer;\n delete props.renderer;\n return renderer(props);\n }\n\n delete props.elementRef;\n return React.createElement(\"div\", __assign({}, props, {\n ref: elementRef\n }));\n};\n\nvar getInnerSize = function getInnerSize(el, dimension, padding1, padding2) {\n var styles = getComputedStyle(el);\n\n if (styles.boxSizing === \"border-box\") {\n return Math.max(0, (parseFloat(styles[dimension]) || 0) - (parseFloat(styles[padding1]) || 0) - (parseFloat(styles[padding2]) || 0));\n }\n\n return parseFloat(styles[dimension]) || 0;\n};\n/**\r\n * @description Return element's height without padding\r\n */\n\n\nvar getInnerHeight = function getInnerHeight(el) {\n return getInnerSize(el, \"height\", \"paddingTop\", \"paddingBottom\");\n};\n/**\r\n * @description Return element's width without padding\r\n */\n\nvar getInnerWidth = function getInnerWidth(el) {\n return getInnerSize(el, \"width\", \"paddingLeft\", \"paddingRight\");\n};\n/**\r\n * @description Return unique UUID v4\r\n */\n\nvar uuid = function uuid() {\n var uuid = \"\";\n\n for (var i = 0; i < 32; i++) {\n if (i === 8 || i === 20) {\n uuid += \"-\" + (Math.random() * 16 | 0).toString(16);\n } else if (i === 12) {\n uuid += \"-4\";\n } else if (i === 16) {\n uuid += \"-\" + (Math.random() * 16 | 0 & 3 | 8).toString(16);\n } else {\n uuid += (Math.random() * 16 | 0).toString(16);\n }\n }\n\n return uuid;\n};\n/**\r\n * @description Calculate thumb size for given viewport and track parameters\r\n *\r\n * @param {number} contentSize - Scrollable content size\r\n * @param {number} viewportSize - Viewport size\r\n * @param {number} trackSize - Track size thumb can move\r\n * @param {number} minimalSize - Minimal thumb's size\r\n * @param {number} maximalSize - Maximal thumb's size\r\n */\n\nvar calcThumbSize = function calcThumbSize(contentSize, viewportSize, trackSize, minimalSize, maximalSize) {\n if (viewportSize >= contentSize) {\n return 0;\n }\n\n var thumbSize = viewportSize / contentSize * trackSize;\n isNum(maximalSize) && (thumbSize = Math.min(maximalSize, thumbSize));\n isNum(minimalSize) && (thumbSize = Math.max(minimalSize, thumbSize));\n return thumbSize;\n};\n/**\r\n * @description Calculate thumb offset for given viewport, track and thumb parameters\r\n *\r\n * @param {number} contentSize - Scrollable content size\r\n * @param {number} viewportSize - Viewport size\r\n * @param {number} trackSize - Track size thumb can move\r\n * @param {number} thumbSize - Thumb size\r\n * @param {number} scroll - Scroll value to represent\r\n */\n\nvar calcThumbOffset = function calcThumbOffset(contentSize, viewportSize, trackSize, thumbSize, scroll) {\n if (!scroll || !thumbSize || viewportSize >= contentSize) {\n return 0;\n }\n\n return (trackSize - thumbSize) * scroll / (contentSize - viewportSize);\n};\n/**\r\n * @description Calculate scroll for given viewport, track and thumb parameters\r\n *\r\n * @param {number} contentSize - Scrollable content size\r\n * @param {number} viewportSize - Viewport size\r\n * @param {number} trackSize - Track size thumb can move\r\n * @param {number} thumbSize - Thumb size\r\n * @param {number} thumbOffset - Thumb's offset representing the scroll\r\n */\n\nvar calcScrollForThumbOffset = function calcScrollForThumbOffset(contentSize, viewportSize, trackSize, thumbSize, thumbOffset) {\n if (!thumbOffset || !thumbSize || viewportSize >= contentSize) {\n return 0;\n }\n\n return thumbOffset * (contentSize - viewportSize) / (trackSize - thumbSize);\n};\n/**\r\n * @description Returns scrollbar width specific for current environment. Can return undefined if DOM is not ready yet.\r\n */\n\nvar getScrollbarWidth = function getScrollbarWidth(force) {\n if (force === void 0) {\n force = false;\n }\n\n if (!doc) {\n return getScrollbarWidth._cache = 0;\n }\n\n if (!force && !isUndef(getScrollbarWidth._cache)) {\n return getScrollbarWidth._cache;\n }\n\n var el = doc.createElement(\"div\");\n el.setAttribute(\"style\", \"position:absolute;width:100px;height:100px;top:-999px;left:-999px;overflow:scroll;\");\n doc.body.appendChild(el);\n /* istanbul ignore next */\n\n if (el.clientWidth === 0) {\n // Do not even cache this value because there is no calculations. Issue https://github.com/xobotyi/react-scrollbars-custom/issues/123\n doc.body.removeChild(el);\n return;\n }\n\n getScrollbarWidth._cache = 100 - el.clientWidth;\n doc.body.removeChild(el);\n return getScrollbarWidth._cache;\n};\n/**\r\n * @description Detect need of horizontal scroll reverse while RTL.\r\n */\n\nvar shouldReverseRtlScroll = function shouldReverseRtlScroll(force) {\n if (force === void 0) {\n force = false;\n }\n\n if (!force && !isUndef(shouldReverseRtlScroll._cache)) {\n return shouldReverseRtlScroll._cache;\n }\n\n if (!doc) {\n return shouldReverseRtlScroll._cache = false;\n }\n\n var el = doc.createElement(\"div\");\n var child = doc.createElement(\"div\");\n el.appendChild(child);\n el.setAttribute(\"style\", \"position:absolute;width:100px;height:100px;top:-999px;left:-999px;overflow:scroll;direction:rtl\");\n child.setAttribute(\"style\", \"width:1000px;height:1000px\");\n doc.body.appendChild(el);\n el.scrollLeft = -50;\n shouldReverseRtlScroll._cache = el.scrollLeft === -50;\n doc.body.removeChild(el);\n return shouldReverseRtlScroll._cache;\n};\n\nvar Emittr = function () {\n function Emittr(maxHandlers) {\n if (maxHandlers === void 0) {\n maxHandlers = 10;\n }\n\n this.setMaxHandlers(maxHandlers);\n this._handlers = Object.create(null);\n }\n\n Emittr._callEventHandlers = function (emitter, handlers, args) {\n if (!handlers.length) {\n return;\n }\n\n if (handlers.length === 1) {\n Reflect.apply(handlers[0], emitter, args);\n return;\n }\n\n handlers = __spreadArrays(handlers);\n var idx;\n\n for (idx = 0; idx < handlers.length; idx++) {\n Reflect.apply(handlers[idx], emitter, args);\n }\n };\n\n Emittr.prototype.setMaxHandlers = function (count) {\n if (!isNum(count) || count <= 0) {\n throw new TypeError(\"Expected maxHandlers to be a positive number, got '\" + count + \"' of type \" + _typeof(count));\n }\n\n this._maxHandlers = count;\n return this;\n };\n\n Emittr.prototype.getMaxHandlers = function () {\n return this._maxHandlers;\n };\n\n Emittr.prototype.emit = function (name) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n if (_typeof(this._handlers[name]) !== \"object\" || !Array.isArray(this._handlers[name])) {\n return false;\n }\n\n Emittr._callEventHandlers(this, this._handlers[name], args);\n\n return true;\n };\n\n Emittr.prototype.on = function (name, handler) {\n Emittr._addHandler(this, name, handler);\n\n return this;\n };\n\n Emittr.prototype.prependOn = function (name, handler) {\n Emittr._addHandler(this, name, handler, true);\n\n return this;\n };\n\n Emittr.prototype.once = function (name, handler) {\n if (!isFun(handler)) {\n throw new TypeError(\"Expected event handler to be a function, got \" + _typeof(handler));\n }\n\n Emittr._addHandler(this, name, this._wrapOnceHandler(name, handler));\n\n return this;\n };\n\n Emittr.prototype.prependOnce = function (name, handler) {\n if (!isFun(handler)) {\n throw new TypeError(\"Expected event handler to be a function, got \" + _typeof(handler));\n }\n\n Emittr._addHandler(this, name, this._wrapOnceHandler(name, handler), true);\n\n return this;\n };\n\n Emittr.prototype.off = function (name, handler) {\n Emittr._removeHandler(this, name, handler);\n\n return this;\n };\n\n Emittr.prototype.removeAllHandlers = function () {\n var handlers = this._handlers;\n this._handlers = Object.create(null);\n var removeHandlers = handlers[\"removeHandler\"];\n delete handlers[\"removeHandler\"];\n var idx, eventName;\n\n for (eventName in handlers) {\n for (idx = handlers[eventName].length - 1; idx >= 0; idx--) {\n Emittr._callEventHandlers(this, removeHandlers, [eventName, handlers[eventName][idx].handler || handlers[eventName][idx]]);\n }\n }\n\n return this;\n };\n\n Emittr.prototype._wrapOnceHandler = function (name, handler) {\n var onceState = {\n fired: false,\n handler: handler,\n wrappedHandler: undefined,\n emitter: this,\n event: name\n };\n\n var wrappedHandler = Emittr._onceWrapper.bind(onceState);\n\n onceState.wrappedHandler = wrappedHandler;\n wrappedHandler.handler = handler;\n wrappedHandler.event = name;\n return wrappedHandler;\n };\n\n Emittr._addHandler = function (emitter, name, handler, prepend) {\n if (prepend === void 0) {\n prepend = false;\n }\n\n if (!isFun(handler)) {\n throw new TypeError(\"Expected event handler to be a function, got \" + _typeof(handler));\n }\n\n emitter._handlers[name] = emitter._handlers[name] || [];\n emitter.emit(\"addHandler\", name, handler);\n prepend ? emitter._handlers[name].unshift(handler) : emitter._handlers[name].push(handler);\n return emitter;\n };\n\n Emittr._onceWrapper = function _onceWrapper() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (!this.fired) {\n this.fired = true;\n this.emitter.off(this.event, this.wrappedHandler);\n Reflect.apply(this.handler, this.emitter, args);\n }\n };\n\n Emittr._removeHandler = function (emitter, name, handler) {\n if (!isFun(handler)) {\n throw new TypeError(\"Expected event handler to be a function, got \" + _typeof(handler));\n }\n\n if (isUndef(emitter._handlers[name]) || !emitter._handlers[name].length) {\n return emitter;\n }\n\n var idx = -1;\n\n if (emitter._handlers[name].length === 1) {\n if (emitter._handlers[name][0] === handler || emitter._handlers[name][0].handler === handler) {\n idx = 0;\n handler = emitter._handlers[name][0].handler || emitter._handlers[name][0];\n }\n } else {\n for (idx = emitter._handlers[name].length - 1; idx >= 0; idx--) {\n if (emitter._handlers[name][idx] === handler || emitter._handlers[name][idx].handler === handler) {\n handler = emitter._handlers[name][idx].handler || emitter._handlers[name][idx];\n break;\n }\n }\n }\n\n if (idx === -1) {\n return emitter;\n }\n\n idx === 0 ? emitter._handlers[name].shift() : emitter._handlers[name].splice(idx, 1);\n emitter.emit(\"removeHandler\", name, handler);\n return emitter;\n };\n\n return Emittr;\n}();\n\nvar RAFLoop = function () {\n function RAFLoop() {\n var _this = this;\n /**\r\n * @description List of targets to update\r\n */\n\n\n this.targets = [];\n /**\r\n * @description ID of requested animation frame. Valuable only if loop is active and has items to iterate.\r\n */\n\n this.animationFrameID = 0;\n /**\r\n * @description Loop's state.\r\n */\n\n this._isActive = false;\n /**\r\n * @description Start the loop if it wasn't yet.\r\n */\n\n this.start = function () {\n if (!_this._isActive && _this.targets.length) {\n _this._isActive = true;\n _this.animationFrameID && cancelAnimationFrame(_this.animationFrameID);\n _this.animationFrameID = requestAnimationFrame(_this.rafCallback);\n }\n\n return _this;\n };\n /**\r\n * @description Stop the loop if is was active.\r\n */\n\n\n this.stop = function () {\n if (_this._isActive) {\n _this._isActive = false;\n _this.animationFrameID && cancelAnimationFrame(_this.animationFrameID);\n _this.animationFrameID = 0;\n }\n\n return _this;\n };\n /**\r\n * @description Add target to the iteration list if it's not there.\r\n */\n\n\n this.addTarget = function (target, silent) {\n if (silent === void 0) {\n silent = false;\n }\n\n if (_this.targets.indexOf(target) === -1) {\n _this.targets.push(target);\n\n _this.targets.length === 1 && !silent && _this.start();\n }\n\n return _this;\n };\n /**\r\n * @description Remove target from iteration list if it was there.\r\n */\n\n\n this.removeTarget = function (target) {\n var idx = _this.targets.indexOf(target);\n\n if (idx !== -1) {\n _this.targets.splice(idx, 1);\n\n _this.targets.length === 0 && _this.stop();\n }\n\n return _this;\n };\n /**\r\n * @description Callback that called each animation frame.\r\n */\n\n\n this.rafCallback = function () {\n if (!_this._isActive) {\n return 0;\n }\n\n for (var i = 0; i < _this.targets.length; i++) {\n !_this.targets[i]._unmounted && _this.targets[i].update();\n }\n\n return _this.animationFrameID = requestAnimationFrame(_this.rafCallback);\n };\n }\n\n Object.defineProperty(RAFLoop.prototype, \"isActive\", {\n /**\r\n * @description Loop's state.\r\n */\n get: function get() {\n return this._isActive;\n },\n enumerable: false,\n configurable: true\n });\n return RAFLoop;\n}();\nvar Loop = new RAFLoop();\n\nvar AXIS_DIRECTION;\n\n(function (AXIS_DIRECTION) {\n AXIS_DIRECTION[\"X\"] = \"x\";\n AXIS_DIRECTION[\"Y\"] = \"y\";\n})(AXIS_DIRECTION || (AXIS_DIRECTION = {}));\n\nvar TRACK_CLICK_BEHAVIOR;\n\n(function (TRACK_CLICK_BEHAVIOR) {\n TRACK_CLICK_BEHAVIOR[\"JUMP\"] = \"jump\";\n TRACK_CLICK_BEHAVIOR[\"STEP\"] = \"step\";\n})(TRACK_CLICK_BEHAVIOR || (TRACK_CLICK_BEHAVIOR = {}));\n\nvar ScrollbarThumb = function (_super) {\n __extends(ScrollbarThumb, _super);\n\n function ScrollbarThumb() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.initialOffsetX = 0;\n _this.initialOffsetY = 0;\n _this.lastDragData = {\n x: 0,\n y: 0,\n deltaX: 0,\n deltaY: 0,\n lastX: 0,\n lastY: 0\n };\n _this.element = null;\n _this.elementRefHack = React.createRef();\n\n _this.handleOnDragStart = function (ev, data) {\n if (!_this.element) {\n _this.handleOnDragStop(ev, data);\n\n return;\n }\n\n if (global.document) {\n _this.prevUserSelect = global.document.body.style.userSelect;\n global.document.body.style.userSelect = \"none\";\n _this.prevOnSelectStart = global.document.onselectstart;\n global.document.onselectstart = ScrollbarThumb.selectStartReplacer;\n }\n\n _this.props.onDragStart && _this.props.onDragStart(_this.lastDragData = {\n x: data.x - _this.initialOffsetX,\n y: data.y - _this.initialOffsetY,\n lastX: data.lastX - _this.initialOffsetX,\n lastY: data.lastY - _this.initialOffsetY,\n deltaX: data.deltaX,\n deltaY: data.deltaY\n });\n\n _this.element.classList.add(\"dragging\");\n };\n\n _this.handleOnDrag = function (ev, data) {\n if (!_this.element) {\n _this.handleOnDragStop(ev, data);\n\n return;\n }\n\n _this.props.onDrag && _this.props.onDrag(_this.lastDragData = {\n x: data.x - _this.initialOffsetX,\n y: data.y - _this.initialOffsetY,\n lastX: data.lastX - _this.initialOffsetX,\n lastY: data.lastY - _this.initialOffsetY,\n deltaX: data.deltaX,\n deltaY: data.deltaY\n });\n };\n\n _this.handleOnDragStop = function (ev, data) {\n var resultData = data ? {\n x: data.x - _this.initialOffsetX,\n y: data.y - _this.initialOffsetY,\n lastX: data.lastX - _this.initialOffsetX,\n lastY: data.lastY - _this.initialOffsetY,\n deltaX: data.deltaX,\n deltaY: data.deltaY\n } : _this.lastDragData;\n _this.props.onDragEnd && _this.props.onDragEnd(resultData);\n _this.element && _this.element.classList.remove(\"dragging\");\n\n if (global.document) {\n global.document.body.style.userSelect = _this.prevUserSelect;\n global.document.onselectstart = _this.prevOnSelectStart;\n _this.prevOnSelectStart = null;\n }\n\n _this.initialOffsetX = 0;\n _this.initialOffsetY = 0;\n _this.lastDragData = {\n x: 0,\n y: 0,\n deltaX: 0,\n deltaY: 0,\n lastX: 0,\n lastY: 0\n };\n };\n\n _this.handleOnMouseDown = function (ev) {\n if (!_this.element) {\n return;\n }\n\n ev.preventDefault();\n ev.stopPropagation();\n\n if (!isUndef(ev.offsetX)) {\n /* istanbul ignore next */\n _this.initialOffsetX = ev.offsetX;\n /* istanbul ignore next */\n\n _this.initialOffsetY = ev.offsetY;\n } else {\n var rect = _this.element.getBoundingClientRect();\n\n _this.initialOffsetX = (ev.clientX || ev.touches[0].clientX) - rect.left;\n _this.initialOffsetY = (ev.clientY || ev.touches[0].clientY) - rect.top;\n }\n };\n\n _this.elementRef = function (ref) {\n isFun(_this.props.elementRef) && _this.props.elementRef(ref);\n _this.element = ref; // @ts-ignore\n\n _this.elementRefHack[\"current\"] = ref;\n };\n\n return _this;\n }\n\n ScrollbarThumb.prototype.componentDidMount = function () {\n if (!this.element) {\n this.setState(function () {\n throw new Error(\" Element was not created. Possibly you haven't provided HTMLDivElement to renderer's `elementRef` function.\");\n });\n return;\n }\n };\n\n ScrollbarThumb.prototype.componentWillUnmount = function () {\n this.handleOnDragStop();\n this.elementRef(null);\n };\n\n ScrollbarThumb.prototype.render = function () {\n var _a = this.props;\n _a.elementRef;\n var axis = _a.axis;\n _a.onDrag;\n _a.onDragEnd;\n _a.onDragStart;\n var props = __rest(_a, [\"elementRef\", \"axis\", \"onDrag\", \"onDragEnd\", \"onDragStart\"]);\n\n props.className = cnb(\"ScrollbarsCustom-Thumb\", axis === AXIS_DIRECTION.X ? \"ScrollbarsCustom-ThumbX\" : \"ScrollbarsCustom-ThumbY\", props.className);\n\n if (props.renderer) {\n props.axis = axis;\n }\n\n return React.createElement(DraggableCore, {\n allowAnyClick: false,\n enableUserSelectHack: false,\n onMouseDown: this.handleOnMouseDown,\n onDrag: this.handleOnDrag,\n onStart: this.handleOnDragStart,\n onStop: this.handleOnDragStop,\n // ToDo: Fixit!\n // react-draggable developers did not update typings so there is no appropriate prop\n // @ts-ignore\n nodeRef: this.elementRefHack\n }, renderDivWithRenderer(props, this.elementRef));\n };\n\n ScrollbarThumb.selectStartReplacer = function () {\n return false;\n };\n\n return ScrollbarThumb;\n}(React.Component);\n\nvar ScrollbarTrack = function (_super) {\n __extends(ScrollbarTrack, _super);\n\n function ScrollbarTrack() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.element = null;\n\n _this.elementRef = function (ref) {\n isFun(_this.props.elementRef) && _this.props.elementRef(ref);\n _this.element = ref;\n };\n\n _this.handleClick = function (ev) {\n if (!ev || !_this.element || ev.button !== 0) {\n return;\n }\n\n if (isFun(_this.props.onClick) && ev.target === _this.element) {\n if (!isUndef(ev.offsetX)) {\n _this.props.onClick(ev, {\n axis: _this.props.axis,\n offset: _this.props.axis === AXIS_DIRECTION.X ? ev.offsetX : ev.offsetY\n });\n } else {\n // support for old browsers\n\n /* istanbul ignore next */\n var rect = _this.element.getBoundingClientRect();\n /* istanbul ignore next */\n\n\n _this.props.onClick(ev, {\n axis: _this.props.axis,\n offset: _this.props.axis === AXIS_DIRECTION.X ? (ev.clientX || ev.touches[0].clientX) - rect.left : (ev.clientY || ev.touches[0].clientY) - rect.top\n });\n }\n }\n\n return true;\n };\n\n return _this;\n }\n\n ScrollbarTrack.prototype.componentDidMount = function () {\n if (!this.element) {\n this.setState(function () {\n throw new Error(\"Element was not created. Possibly you haven't provided HTMLDivElement to renderer's `elementRef` function.\");\n });\n return;\n }\n\n this.element.addEventListener(\"click\", this.handleClick);\n };\n\n ScrollbarTrack.prototype.componentWillUnmount = function () {\n if (this.element) {\n this.element.removeEventListener(\"click\", this.handleClick);\n this.element = null;\n this.elementRef(null);\n }\n };\n\n ScrollbarTrack.prototype.render = function () {\n var _a = this.props;\n _a.elementRef;\n var axis = _a.axis;\n _a.onClick;\n var props = __rest(_a, [\"elementRef\", \"axis\", \"onClick\"]);\n\n props.className = cnb(\"ScrollbarsCustom-Track\", axis === AXIS_DIRECTION.X ? \"ScrollbarsCustom-TrackX\" : \"ScrollbarsCustom-TrackY\", props.className);\n\n if (props.renderer) {\n props.axis = axis;\n }\n\n return renderDivWithRenderer(props, this.elementRef);\n };\n\n return ScrollbarTrack;\n}(React.Component);\n\nvar style = {\n holder: {\n position: \"relative\",\n width: \"100%\",\n height: \"100%\"\n },\n wrapper: {\n position: \"absolute\",\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n },\n content: {\n boxSizing: \"border-box\"\n },\n track: {\n common: {\n position: \"absolute\",\n overflow: \"hidden\",\n borderRadius: 4,\n background: \"rgba(0,0,0,.1)\",\n userSelect: \"none\"\n },\n x: {\n height: 10,\n width: \"calc(100% - 20px)\",\n bottom: 0,\n left: 10\n },\n y: {\n width: 10,\n height: \"calc(100% - 20px)\",\n top: 10\n }\n },\n thumb: {\n common: {\n cursor: \"pointer\",\n borderRadius: 4,\n background: \"rgba(0,0,0,.4)\"\n },\n x: {\n height: \"100%\",\n width: 0\n },\n y: {\n width: \"100%\",\n height: 0\n }\n }\n};\n\nvar pageZoomLevel = global.window ? zoomLevel() : 1;\nglobal.window && global.window.addEventListener(\"resize\", function () {\n return pageZoomLevel = zoomLevel();\n}, {\n passive: true\n});\nvar ScrollbarContext = React.createContext({\n parentScrollbar: null\n});\n\nvar Scrollbar = function (_super) {\n __extends(Scrollbar, _super);\n\n function Scrollbar(props) {\n var _this = _super.call(this, props) || this;\n /**\r\n * @description Get current scroll-related values.
\r\n * If force if truthy - will recalculate them instead of returning cached values.\r\n *\r\n * @return ScrollState\r\n */\n\n\n _this.getScrollState = function (force) {\n if (force === void 0) {\n force = false;\n }\n\n if (_this.scrollValues && !force) {\n return __assign({}, _this.scrollValues);\n }\n\n var scrollState = {\n clientHeight: 0,\n clientWidth: 0,\n contentScrollHeight: 0,\n contentScrollWidth: 0,\n scrollHeight: 0,\n scrollWidth: 0,\n scrollTop: 0,\n scrollLeft: 0,\n scrollYBlocked: false,\n scrollXBlocked: false,\n scrollYPossible: false,\n scrollXPossible: false,\n trackYVisible: false,\n trackXVisible: false,\n zoomLevel: pageZoomLevel * 1,\n isRTL: undefined\n };\n var props = _this.props;\n scrollState.isRTL = _this.state.isRTL;\n scrollState.scrollYBlocked = props.noScroll || props.noScrollY;\n scrollState.scrollXBlocked = props.noScroll || props.noScrollX;\n\n if (_this.scrollerElement) {\n scrollState.clientHeight = _this.scrollerElement.clientHeight;\n scrollState.clientWidth = _this.scrollerElement.clientWidth;\n scrollState.scrollHeight = _this.scrollerElement.scrollHeight;\n scrollState.scrollWidth = _this.scrollerElement.scrollWidth;\n scrollState.scrollTop = _this.scrollerElement.scrollTop;\n scrollState.scrollLeft = _this.scrollerElement.scrollLeft;\n scrollState.scrollYPossible = !scrollState.scrollYBlocked && scrollState.scrollHeight > scrollState.clientHeight;\n scrollState.scrollXPossible = !scrollState.scrollXBlocked && scrollState.scrollWidth > scrollState.clientWidth;\n scrollState.trackYVisible = scrollState.scrollYPossible || props.permanentTracks || props.permanentTrackY;\n scrollState.trackXVisible = scrollState.scrollXPossible || props.permanentTracks || props.permanentTrackX;\n }\n\n if (_this.contentElement) {\n scrollState.contentScrollHeight = _this.contentElement.scrollHeight;\n scrollState.contentScrollWidth = _this.contentElement.scrollWidth;\n }\n\n return scrollState;\n };\n /**\r\n * @description Scroll to top border\r\n */\n\n\n _this.scrollToTop = function () {\n if (_this.scrollerElement) {\n _this.scrollerElement.scrollTop = 0;\n }\n\n return _this;\n };\n /**\r\n * @description Scroll to left border\r\n */\n\n\n _this.scrollToLeft = function () {\n if (_this.scrollerElement) {\n _this.scrollerElement.scrollLeft = 0;\n }\n\n return _this;\n };\n /**\r\n * @description Scroll to bottom border\r\n */\n\n\n _this.scrollToBottom = function () {\n if (_this.scrollerElement) {\n _this.scrollerElement.scrollTop = _this.scrollerElement.scrollHeight - _this.scrollerElement.clientHeight;\n }\n\n return _this;\n };\n /**\r\n * @description Scroll to right border\r\n */\n\n\n _this.scrollToRight = function () {\n if (_this.scrollerElement) {\n _this.scrollerElement.scrollLeft = _this.scrollerElement.scrollWidth - _this.scrollerElement.clientWidth;\n }\n\n return _this;\n };\n /**\r\n * @description Set the scrolls at given coordinates.
\r\n * If coordinate is undefined - current scroll value will persist.\r\n */\n\n\n _this.scrollTo = function (x, y) {\n if (_this.scrollerElement) {\n isNum(x) && (_this.scrollerElement.scrollLeft = x);\n isNum(y) && (_this.scrollerElement.scrollTop = y);\n }\n\n return _this;\n };\n /**\r\n * @description Center the viewport at given coordinates.
\r\n * If coordinate is undefined - current scroll value will persist.\r\n */\n\n\n _this.centerAt = function (x, y) {\n if (_this.scrollerElement) {\n isNum(x) && (_this.scrollerElement.scrollLeft = x - _this.scrollerElement.clientWidth / 2);\n isNum(y) && (_this.scrollerElement.scrollTop = y - _this.scrollerElement.clientHeight / 2);\n }\n\n return _this;\n };\n\n _this.update = function (force) {\n if (force === void 0) {\n force = false;\n }\n\n if (!_this.scrollerElement) {\n return;\n } // autodetect direction if not defined\n\n\n if (isUndef(_this.state.isRTL)) {\n _this.setState({\n isRTL: getComputedStyle(_this.scrollerElement).direction === \"rtl\"\n });\n\n return _this.getScrollState();\n }\n\n var scrollState = _this.getScrollState(true);\n\n var prevScrollState = __assign({}, _this.scrollValues);\n\n var props = _this.props;\n var bitmask = 0;\n\n if (!force) {\n prevScrollState.clientHeight !== scrollState.clientHeight && (bitmask |= 1 << 0);\n prevScrollState.clientWidth !== scrollState.clientWidth && (bitmask |= 1 << 1);\n prevScrollState.scrollHeight !== scrollState.scrollHeight && (bitmask |= 1 << 2);\n prevScrollState.scrollWidth !== scrollState.scrollWidth && (bitmask |= 1 << 3);\n prevScrollState.scrollTop !== scrollState.scrollTop && (bitmask |= 1 << 4);\n prevScrollState.scrollLeft !== scrollState.scrollLeft && (bitmask |= 1 << 5);\n prevScrollState.scrollYBlocked !== scrollState.scrollYBlocked && (bitmask |= 1 << 6);\n prevScrollState.scrollXBlocked !== scrollState.scrollXBlocked && (bitmask |= 1 << 7);\n prevScrollState.scrollYPossible !== scrollState.scrollYPossible && (bitmask |= 1 << 8);\n prevScrollState.scrollXPossible !== scrollState.scrollXPossible && (bitmask |= 1 << 9);\n prevScrollState.trackYVisible !== scrollState.trackYVisible && (bitmask |= 1 << 10);\n prevScrollState.trackXVisible !== scrollState.trackXVisible && (bitmask |= 1 << 11);\n prevScrollState.isRTL !== scrollState.isRTL && (bitmask |= 1 << 12);\n prevScrollState.contentScrollHeight !== scrollState.contentScrollHeight && (bitmask |= 1 << 13);\n prevScrollState.contentScrollWidth !== scrollState.contentScrollWidth && (bitmask |= 1 << 14);\n prevScrollState.zoomLevel !== scrollState.zoomLevel && (bitmask |= 1 << 15); // if not forced and nothing has changed - skip this update\n\n if (bitmask === 0) {\n return prevScrollState;\n }\n } else {\n bitmask = 32767;\n }\n\n if (!props.native && _this.holderElement) {\n if (bitmask & 1 << 13 && (props.translateContentSizesToHolder || props.translateContentSizeYToHolder)) {\n _this.holderElement.style.height = scrollState.contentScrollHeight + \"px\";\n }\n\n if (bitmask & 1 << 14 && (props.translateContentSizesToHolder || props.translateContentSizeXToHolder)) {\n _this.holderElement.style.width = scrollState.contentScrollWidth + \"px\";\n }\n\n if (props.translateContentSizesToHolder || props.translateContentSizeYToHolder || props.translateContentSizeXToHolder) {\n if (!scrollState.clientHeight && scrollState.contentScrollHeight || !scrollState.clientWidth && scrollState.contentScrollWidth) {\n return;\n }\n }\n } // if scrollbars visibility has changed\n\n\n if (bitmask & 1 << 10 || bitmask & 1 << 11) {\n prevScrollState.scrollYBlocked = scrollState.scrollYBlocked;\n prevScrollState.scrollXBlocked = scrollState.scrollXBlocked;\n prevScrollState.scrollYPossible = scrollState.scrollYPossible;\n prevScrollState.scrollXPossible = scrollState.scrollXPossible;\n\n if (_this.trackYElement && bitmask & 1 << 10) {\n _this.trackYElement.style.display = scrollState.trackYVisible ? \"\" : \"none\";\n }\n\n if (_this.trackXElement && bitmask & 1 << 11) {\n _this.trackXElement.style.display = scrollState.trackXVisible ? \"\" : \"none\";\n }\n\n _this.scrollValues = prevScrollState;\n\n _this.setState({\n trackYVisible: _this.scrollValues.trackYVisible = scrollState.trackYVisible,\n trackXVisible: _this.scrollValues.trackXVisible = scrollState.trackXVisible\n });\n\n return;\n }\n\n (props.native ? _this.updaterNative : _this.updaterCustom)(bitmask, scrollState);\n _this.scrollValues = scrollState;\n\n if (!props.native && bitmask & 1 << 15) {\n getScrollbarWidth(true);\n\n _this.forceUpdate();\n }\n\n _this.eventEmitter.emit(\"update\", __assign({}, scrollState), prevScrollState);\n\n (bitmask & 1 << 4 || bitmask & 1 << 5) && _this.eventEmitter.emit(\"scroll\", __assign({}, scrollState), prevScrollState);\n return _this.scrollValues;\n };\n\n _this.updaterNative = function () {\n // just for future\n return true;\n };\n\n _this.updaterCustom = function (bitmask, scrollValues) {\n var props = _this.props;\n\n if (_this.trackYElement) {\n if (_this.thumbYElement && (bitmask & 1 << 0 || bitmask & 1 << 2 || bitmask & 1 << 4 || bitmask & 1 << 6 || bitmask & 1 << 8)) {\n if (scrollValues.scrollYPossible) {\n var trackInnerSize = getInnerHeight(_this.trackYElement);\n var thumbSize = calcThumbSize(scrollValues.scrollHeight, scrollValues.clientHeight, trackInnerSize, props.minimalThumbYSize || props.minimalThumbSize, props.maximalThumbYSize || props.maximalThumbSize);\n var thumbOffset = calcThumbOffset(scrollValues.scrollHeight, scrollValues.clientHeight, trackInnerSize, thumbSize, scrollValues.scrollTop);\n _this.thumbYElement.style.transform = \"translateY(\" + thumbOffset + \"px)\";\n _this.thumbYElement.style.height = thumbSize + \"px\";\n _this.thumbYElement.style.display = \"\";\n } else {\n _this.thumbYElement.style.transform = \"\";\n _this.thumbYElement.style.height = \"0px\";\n _this.thumbYElement.style.display = \"none\";\n }\n }\n }\n\n if (_this.trackXElement) {\n if (_this.thumbXElement && (bitmask & 1 << 1 || bitmask & 1 << 3 || bitmask & 1 << 5 || bitmask & 1 << 7 || bitmask & 1 << 9 || bitmask & 1 << 12)) {\n if (scrollValues.scrollXPossible) {\n var trackInnerSize = getInnerWidth(_this.trackXElement);\n var thumbSize = calcThumbSize(scrollValues.scrollWidth, scrollValues.clientWidth, trackInnerSize, props.minimalThumbXSize || props.minimalThumbSize, props.maximalThumbXSize || props.maximalThumbSize);\n var thumbOffset = calcThumbOffset(scrollValues.scrollWidth, scrollValues.clientWidth, trackInnerSize, thumbSize, scrollValues.scrollLeft);\n\n if (_this.state.isRTL && shouldReverseRtlScroll()) {\n thumbOffset += trackInnerSize - thumbSize;\n }\n\n _this.thumbXElement.style.transform = \"translateX(\" + thumbOffset + \"px)\";\n _this.thumbXElement.style.width = thumbSize + \"px\";\n _this.thumbXElement.style.display = \"\";\n } else {\n _this.thumbXElement.style.transform = \"\";\n _this.thumbXElement.style.width = \"0px\";\n _this.thumbXElement.style.display = \"none\";\n }\n }\n }\n\n return true;\n };\n\n _this.elementRefHolder = function (ref) {\n _this.holderElement = ref;\n isFun(_this.props.elementRef) && _this.props.elementRef(ref);\n };\n\n _this.elementRefWrapper = function (ref) {\n _this.wrapperElement = ref;\n isFun(_this.props.wrapperProps.elementRef) && _this.props.wrapperProps.elementRef(ref);\n };\n\n _this.elementRefScroller = function (ref) {\n _this.scrollerElement = ref;\n isFun(_this.props.scrollerProps.elementRef) && _this.props.scrollerProps.elementRef(ref);\n };\n\n _this.elementRefContent = function (ref) {\n _this.contentElement = ref;\n isFun(_this.props.contentProps.elementRef) && _this.props.contentProps.elementRef(ref);\n };\n\n _this.elementRefTrackX = function (ref) {\n _this.trackXElement = ref;\n isFun(_this.props.trackXProps.elementRef) && _this.props.trackXProps.elementRef(ref);\n };\n\n _this.elementRefTrackY = function (ref) {\n _this.trackYElement = ref;\n isFun(_this.props.trackYProps.elementRef) && _this.props.trackYProps.elementRef(ref);\n };\n\n _this.elementRefThumbX = function (ref) {\n _this.thumbXElement = ref;\n isFun(_this.props.thumbXProps.elementRef) && _this.props.thumbXProps.elementRef(ref);\n };\n\n _this.elementRefThumbY = function (ref) {\n _this.thumbYElement = ref;\n isFun(_this.props.thumbYProps.elementRef) && _this.props.thumbYProps.elementRef(ref);\n };\n\n _this.handleTrackXClick = function (ev, values) {\n _this.props.trackXProps.onClick && _this.props.trackXProps.onClick(ev, values);\n\n if (!_this.scrollerElement || !_this.trackXElement || !_this.thumbXElement || !_this.scrollValues || !_this.scrollValues.scrollXPossible) {\n return;\n }\n\n _this._scrollDetection();\n\n var thumbSize = _this.thumbXElement.clientWidth;\n var trackInnerSize = getInnerWidth(_this.trackXElement);\n var thumbOffset = (_this.scrollValues.isRTL && shouldReverseRtlScroll() ? values.offset + thumbSize / 2 - trackInnerSize : values.offset - thumbSize / 2) - (parseFloat(getComputedStyle(_this.trackXElement).paddingLeft) || 0);\n var target = calcScrollForThumbOffset(_this.scrollValues.scrollWidth, _this.scrollValues.clientWidth, trackInnerSize, thumbSize, thumbOffset);\n\n if (_this.props.trackClickBehavior === TRACK_CLICK_BEHAVIOR.STEP) {\n target = (_this.scrollValues.isRTL ? _this.scrollValues.scrollLeft > target : _this.scrollValues.scrollLeft < target) ? _this.scrollValues.scrollLeft + _this.scrollValues.clientWidth : _this.scrollValues.scrollLeft - _this.scrollValues.clientWidth;\n }\n\n _this.scrollerElement.scrollLeft = target;\n };\n\n _this.handleTrackYClick = function (ev, values) {\n _this.props.trackYProps.onClick && _this.props.trackYProps.onClick(ev, values);\n\n if (!_this.scrollerElement || !_this.trackYElement || !_this.thumbYElement || !_this.scrollValues || !_this.scrollValues.scrollYPossible) {\n return;\n }\n\n _this._scrollDetection();\n\n var thumbSize = _this.thumbYElement.clientHeight;\n var target = calcScrollForThumbOffset(_this.scrollValues.scrollHeight, _this.scrollValues.clientHeight, getInnerHeight(_this.trackYElement), thumbSize, values.offset - thumbSize / 2) - (parseFloat(getComputedStyle(_this.trackYElement).paddingTop) || 0);\n\n if (_this.props.trackClickBehavior === TRACK_CLICK_BEHAVIOR.JUMP) {\n _this.scrollerElement.scrollTop = target;\n } else {\n _this.scrollerElement.scrollTop = _this.scrollValues.scrollTop < target ? _this.scrollValues.scrollTop + _this.scrollValues.clientHeight : _this.scrollValues.scrollTop - _this.scrollValues.clientHeight;\n }\n };\n\n _this.handleTrackYMouseWheel = function (ev) {\n var props = _this.props;\n props.trackYProps && props.trackYProps.onWheel && props.trackYProps.onWheel(ev);\n\n if (props.disableTracksMousewheelScrolling || props.disableTrackYMousewheelScrolling) {\n return;\n }\n\n _this._scrollDetection();\n\n if (!_this.scrollerElement || _this.scrollValues.scrollYBlocked) {\n return;\n }\n\n _this.scrollTop += ev.deltaY;\n };\n\n _this.handleTrackXMouseWheel = function (ev) {\n var props = _this.props;\n props.trackXProps && props.trackXProps.onWheel && props.trackXProps.onWheel(ev);\n\n if (props.disableTracksMousewheelScrolling || props.disableTrackXMousewheelScrolling) {\n return;\n }\n\n _this._scrollDetection();\n\n if (!_this.scrollerElement || _this.scrollValues.scrollXBlocked) {\n return;\n }\n\n _this.scrollLeft += ev.deltaX;\n };\n\n _this.handleThumbXDrag = function (data) {\n var _a;\n\n if (!_this.trackXElement || !_this.thumbXElement || !_this.scrollerElement || !_this.scrollValues || !_this.scrollValues.scrollXPossible) {\n return;\n }\n\n _this._scrollDetection();\n\n var trackRect = _this.trackXElement.getBoundingClientRect();\n\n var styles = getComputedStyle(_this.trackXElement);\n var paddingLeft = parseFloat(styles.paddingLeft) || 0;\n var paddingRight = parseFloat(styles.paddingRight) || 0;\n var trackInnerSize = trackRect.width - paddingLeft - paddingRight;\n var thumbSize = _this.thumbXElement.clientWidth;\n var offset = _this.scrollValues.isRTL && shouldReverseRtlScroll() ? data.x + thumbSize - trackInnerSize + paddingLeft : data.lastX - paddingLeft;\n _this.scrollerElement.scrollLeft = calcScrollForThumbOffset(_this.scrollValues.scrollWidth, _this.scrollValues.clientWidth, trackInnerSize, thumbSize, offset);\n\n if ((_a = _this.props.thumbXProps) === null || _a === void 0 ? void 0 : _a.onDrag) {\n _this.props.thumbXProps.onDrag(data);\n }\n };\n\n _this.handleThumbXDragEnd = function (data) {\n var _a;\n\n _this.handleThumbXDrag(data);\n\n if ((_a = _this.props.thumbXProps) === null || _a === void 0 ? void 0 : _a.onDragEnd) {\n _this.props.thumbXProps.onDragEnd(data);\n }\n };\n\n _this.handleThumbYDrag = function (data) {\n var _a;\n\n if (!_this.scrollerElement || !_this.trackYElement || !_this.thumbYElement || !_this.scrollValues || !_this.scrollValues.scrollYPossible) {\n return;\n }\n\n _this._scrollDetection();\n\n var trackRect = _this.trackYElement.getBoundingClientRect();\n\n var styles = getComputedStyle(_this.trackYElement);\n var paddingTop = parseFloat(styles.paddingTop) || 0;\n var paddingBottom = parseFloat(styles.paddingBottom) || 0;\n var trackInnerSize = trackRect.height - paddingTop - paddingBottom;\n var thumbSize = _this.thumbYElement.clientHeight;\n var offset = data.y - paddingTop;\n _this.scrollerElement.scrollTop = calcScrollForThumbOffset(_this.scrollValues.scrollHeight, _this.scrollValues.clientHeight, trackInnerSize, thumbSize, offset);\n\n if ((_a = _this.props.thumbYProps) === null || _a === void 0 ? void 0 : _a.onDrag) {\n _this.props.thumbYProps.onDrag(data);\n }\n };\n\n _this.handleThumbYDragEnd = function (data) {\n var _a;\n\n _this.handleThumbYDrag(data);\n\n if ((_a = _this.props.thumbYProps) === null || _a === void 0 ? void 0 : _a.onDragEnd) {\n _this.props.thumbYProps.onDragEnd(data);\n }\n };\n\n _this.handleScrollerScroll = function () {\n _this._scrollDetection();\n };\n\n _this._scrollDetection = function () {\n !_this._scrollDetectionTO && _this.eventEmitter.emit(\"scrollStart\", _this.getScrollState());\n _this._scrollDetectionTO && global.window && global.window.clearTimeout(_this._scrollDetectionTO);\n _this._scrollDetectionTO = global.window ? global.window.setTimeout(_this._scrollDetectionCallback, _this.props.scrollDetectionThreshold || 0) : null;\n };\n\n _this._scrollDetectionCallback = function () {\n _this._scrollDetectionTO = null;\n\n _this.eventEmitter.emit(\"scrollStop\", _this.getScrollState());\n };\n\n _this.state = {\n trackXVisible: false,\n trackYVisible: false,\n isRTL: props.rtl\n };\n _this.scrollValues = _this.getScrollState(true);\n _this.eventEmitter = new Emittr(15);\n props.onUpdate && _this.eventEmitter.on(\"update\", props.onUpdate);\n props.onScroll && _this.eventEmitter.on(\"scroll\", props.onScroll);\n props.onScrollStart && _this.eventEmitter.on(\"scrollStart\", props.onScrollStart);\n props.onScrollStop && _this.eventEmitter.on(\"scrollStop\", props.onScrollStop);\n _this.id = uuid();\n return _this;\n }\n\n Object.defineProperty(Scrollbar.prototype, \"scrollTop\", {\n get: function get() {\n if (this.scrollerElement) {\n return this.scrollerElement.scrollTop;\n }\n\n return 0;\n },\n set: function set(top) {\n if (this.scrollerElement) {\n this.scrollerElement.scrollTop = top;\n this.update();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Scrollbar.prototype, \"scrollLeft\", {\n get: function get() {\n if (this.scrollerElement) {\n return this.scrollerElement.scrollLeft;\n }\n\n return 0;\n },\n set: function set(left) {\n if (this.scrollerElement) {\n this.scrollerElement.scrollLeft = left;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Scrollbar.prototype, \"scrollHeight\", {\n get: function get() {\n if (this.scrollerElement) {\n return this.scrollerElement.scrollHeight;\n }\n\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Scrollbar.prototype, \"scrollWidth\", {\n get: function get() {\n if (this.scrollerElement) {\n return this.scrollerElement.scrollWidth;\n }\n\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Scrollbar.prototype, \"clientHeight\", {\n get: function get() {\n if (this.scrollerElement) {\n return this.scrollerElement.clientHeight;\n }\n\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Scrollbar.prototype, \"clientWidth\", {\n get: function get() {\n if (this.scrollerElement) {\n return this.scrollerElement.clientWidth;\n }\n\n return 0;\n },\n enumerable: false,\n configurable: true\n });\n\n Scrollbar.calculateStyles = function (props, state, scrollValues, scrollbarWidth) {\n var _a, _b, _c, _d;\n\n var useDefaultStyles = !props.noDefaultStyles;\n return {\n holder: __assign(__assign(__assign({}, useDefaultStyles && style.holder), {\n position: \"relative\"\n }), props.style),\n wrapper: __assign(__assign(__assign({}, useDefaultStyles && __assign(__assign(__assign({}, style.wrapper), !props.disableTracksWidthCompensation && !props.disableTrackYWidthCompensation && (_a = {}, _a[state.isRTL ? \"left\" : \"right\"] = state.trackYVisible ? 10 : 0, _a)), !props.disableTracksWidthCompensation && !props.disableTrackXWidthCompensation && {\n bottom: state.trackXVisible ? 10 : 0\n })), props.wrapperProps.style), {\n position: \"absolute\",\n overflow: \"hidden\"\n }),\n content: __assign(__assign(__assign(__assign(__assign({}, useDefaultStyles && style.content), props.translateContentSizesToHolder || props.translateContentSizeYToHolder || props.translateContentSizeXToHolder ? {\n display: \"table-cell\"\n } : {\n padding: 0.05\n }), useDefaultStyles && !(props.translateContentSizesToHolder || props.translateContentSizeYToHolder) && {\n minHeight: \"100%\"\n }), useDefaultStyles && !(props.translateContentSizesToHolder || props.translateContentSizeXToHolder) && {\n minWidth: \"100%\"\n }), props.contentProps.style),\n scroller: __assign(__assign(__assign(__assign((_b = {\n position: \"absolute\",\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n paddingBottom: !scrollbarWidth && scrollValues.scrollXPossible ? props.fallbackScrollbarWidth : undefined\n }, _b[state.isRTL ? \"paddingLeft\" : \"paddingRight\"] = !scrollbarWidth && scrollValues.scrollYPossible ? props.fallbackScrollbarWidth : undefined, _b), props.scrollerProps.style), !isUndef(props.rtl) && {\n direction: props.rtl ? \"rtl\" : \"ltr\"\n }), props.momentum && {\n WebkitOverflowScrolling: \"touch\"\n }), (_c = {\n overflowY: scrollValues.scrollYPossible ? \"scroll\" : \"hidden\",\n overflowX: scrollValues.scrollXPossible ? \"scroll\" : \"hidden\",\n marginBottom: scrollValues.scrollXPossible ? -(scrollbarWidth || props.fallbackScrollbarWidth) - Number(scrollValues.zoomLevel !== 1) : undefined\n }, _c[state.isRTL ? \"marginLeft\" : \"marginRight\"] = scrollValues.scrollYPossible ? -(scrollbarWidth || props.fallbackScrollbarWidth) - Number(scrollValues.zoomLevel !== 1) : undefined, _c)),\n trackX: __assign(__assign(__assign(__assign({}, useDefaultStyles && style.track.common), useDefaultStyles && style.track.x), props.trackXProps.style), !state.trackXVisible && {\n display: \"none\"\n }),\n trackY: __assign(__assign(__assign(__assign(__assign({}, useDefaultStyles && style.track.common), useDefaultStyles && style.track.y), useDefaultStyles && (_d = {}, _d[state.isRTL ? \"left\" : \"right\"] = 0, _d)), props.trackYProps.style), !state.trackYVisible && {\n display: \"none\"\n }),\n thumbX: __assign(__assign(__assign({}, useDefaultStyles && style.thumb.common), useDefaultStyles && style.thumb.x), props.thumbXProps.style),\n thumbY: __assign(__assign(__assign({}, useDefaultStyles && style.thumb.common), useDefaultStyles && style.thumb.y), props.thumbYProps.style)\n };\n };\n\n Scrollbar.prototype.componentDidMount = function () {\n if (!this.scrollerElement) {\n this.setState(function () {\n throw new Error(\"scroller element was not created. Possibly you haven't provided HTMLDivElement to renderer's `elementRef` function.\");\n });\n return;\n }\n\n if (!this.contentElement) {\n this.setState(function () {\n throw new Error(\"content element was not created. Possibly you haven't provided HTMLDivElement to renderer's `elementRef` function.\");\n });\n return;\n }\n\n var props = this.props;\n\n if (!props.native && !props.mobileNative) {\n //ToDo: move native state to the state so it can be synchronized\n if (!this.holderElement) {\n this.setState(function () {\n throw new Error(\"holder element was not created. Possibly you haven't provided HTMLDivElement to renderer's `elementRef` function.\");\n });\n return;\n }\n\n if (!this.wrapperElement) {\n this.setState(function () {\n throw new Error(\"wrapper element was not created. Possibly you haven't provided HTMLDivElement to renderer's `elementRef` function.\");\n });\n return;\n }\n }\n\n Loop.addTarget(this);\n\n if (!isUndef(props.scrollTop)) {\n this.scrollerElement.scrollTop = props.scrollTop;\n }\n\n if (!isUndef(props.scrollLeft)) {\n this.scrollerElement.scrollLeft = props.scrollLeft;\n }\n\n this.update(true);\n };\n\n Scrollbar.prototype.componentWillUnmount = function () {\n Loop.removeTarget(this);\n };\n\n Scrollbar.prototype.componentDidUpdate = function (prevProps, prevState) {\n if (!this.scrollerElement) {\n return;\n }\n\n var props = this.props;\n\n if (props.rtl !== prevProps.rtl && props.rtl !== this.state.isRTL) {\n this.setState({\n isRTL: props.rtl\n });\n }\n\n if (this.state.isRTL !== prevState.isRTL) {\n this.update();\n }\n\n if (!isUndef(props.scrollTop) && props.scrollTop !== this.scrollerElement.scrollTop) {\n this.scrollerElement.scrollTop = props.scrollTop;\n }\n\n if (!isUndef(props.scrollLeft) && props.scrollLeft !== this.scrollerElement.scrollLeft) {\n this.scrollerElement.scrollLeft = props.scrollLeft;\n }\n\n if (prevProps.onUpdate !== props.onUpdate) {\n prevProps.onUpdate && this.eventEmitter.off(\"update\", prevProps.onUpdate);\n props.onUpdate && this.eventEmitter.on(\"update\", props.onUpdate);\n }\n\n if (prevProps.onScroll !== props.onScroll) {\n prevProps.onScroll && this.eventEmitter.off(\"scroll\", prevProps.onScroll);\n props.onScroll && this.eventEmitter.on(\"scroll\", props.onScroll);\n }\n\n if (prevProps.onScrollStart !== props.onScrollStart) {\n prevProps.onScrollStart && this.eventEmitter.off(\"scrollStart\", prevProps.onScrollStart);\n props.onScrollStart && this.eventEmitter.on(\"scrollStart\", props.onScrollStart);\n }\n\n if (prevProps.onScrollStop !== props.onScrollStop) {\n prevProps.onScrollStop && this.eventEmitter.off(\"scrollStop\", prevProps.onScrollStop);\n props.onScrollStop && this.eventEmitter.on(\"scrollStop\", props.onScrollStop);\n }\n };\n\n Scrollbar.prototype.render = function () {\n var _a = this.props,\n createContext = _a.createContext,\n rtl = _a.rtl,\n native = _a.native,\n mobileNative = _a.mobileNative,\n momentum = _a.momentum;\n _a.noDefaultStyles;\n var disableTracksMousewheelScrolling = _a.disableTracksMousewheelScrolling,\n disableTrackXMousewheelScrolling = _a.disableTrackXMousewheelScrolling,\n disableTrackYMousewheelScrolling = _a.disableTrackYMousewheelScrolling;\n _a.disableTracksWidthCompensation;\n _a.disableTrackXWidthCompensation;\n _a.disableTrackYWidthCompensation;\n var noScrollX = _a.noScrollX,\n noScrollY = _a.noScrollY,\n noScroll = _a.noScroll,\n permanentTrackX = _a.permanentTrackX,\n permanentTrackY = _a.permanentTrackY,\n permanentTracks = _a.permanentTracks,\n removeTracksWhenNotUsed = _a.removeTracksWhenNotUsed,\n removeTrackYWhenNotUsed = _a.removeTrackYWhenNotUsed,\n removeTrackXWhenNotUsed = _a.removeTrackXWhenNotUsed;\n _a.minimalThumbSize;\n _a.maximalThumbSize;\n _a.minimalThumbXSize;\n _a.maximalThumbXSize;\n _a.minimalThumbYSize;\n _a.maximalThumbYSize;\n _a.fallbackScrollbarWidth;\n _a.scrollTop;\n _a.scrollLeft;\n _a.trackClickBehavior;\n _a.scrollDetectionThreshold;\n var propsWrapperProps = _a.wrapperProps,\n propsScrollerProps = _a.scrollerProps,\n propsContentProps = _a.contentProps,\n propsTrackXProps = _a.trackXProps,\n propsTrackYProps = _a.trackYProps,\n propsThumbXProps = _a.thumbXProps,\n propsThumbYProps = _a.thumbYProps,\n propsScrollbarWidth = _a.scrollbarWidth;\n _a.elementRef;\n _a.onUpdate;\n _a.onScroll;\n _a.onScrollStart;\n _a.onScrollStop;\n _a.translateContentSizesToHolder;\n _a.translateContentSizeYToHolder;\n _a.translateContentSizeXToHolder;\n var children = _a.children,\n propsHolderProps = __rest(_a, [\"createContext\", \"rtl\", \"native\", \"mobileNative\", \"momentum\", \"noDefaultStyles\", \"disableTracksMousewheelScrolling\", \"disableTrackXMousewheelScrolling\", \"disableTrackYMousewheelScrolling\", \"disableTracksWidthCompensation\", \"disableTrackXWidthCompensation\", \"disableTrackYWidthCompensation\", \"noScrollX\", \"noScrollY\", \"noScroll\", \"permanentTrackX\", \"permanentTrackY\", \"permanentTracks\", \"removeTracksWhenNotUsed\", \"removeTrackYWhenNotUsed\", \"removeTrackXWhenNotUsed\", \"minimalThumbSize\", \"maximalThumbSize\", \"minimalThumbXSize\", \"maximalThumbXSize\", \"minimalThumbYSize\", \"maximalThumbYSize\", \"fallbackScrollbarWidth\", \"scrollTop\", \"scrollLeft\", \"trackClickBehavior\", \"scrollDetectionThreshold\", \"wrapperProps\", \"scrollerProps\", \"contentProps\", \"trackXProps\", \"trackYProps\", \"thumbXProps\", \"thumbYProps\", \"scrollbarWidth\", \"elementRef\", \"onUpdate\", \"onScroll\", \"onScrollStart\", \"onScrollStop\", \"translateContentSizesToHolder\", \"translateContentSizeYToHolder\", \"translateContentSizeXToHolder\", \"children\"]);\n\n var scrollbarWidth = !isUndef(propsScrollbarWidth) ? propsScrollbarWidth : getScrollbarWidth() || 0;\n\n if (native || !scrollbarWidth && mobileNative) {\n this.elementRefHolder(null);\n this.elementRefWrapper(null);\n this.elementRefTrackX(null);\n this.elementRefTrackY(null);\n this.elementRefThumbX(null);\n this.elementRefThumbY(null);\n\n var contentProps_1 = __assign(__assign({}, propsContentProps), {\n key: \"ScrollbarsCustom-Content\",\n className: cnb(\"ScrollbarsCustom-Content\", propsContentProps.className),\n children: children\n });\n\n var scrollerProps_1 = __assign(__assign({}, propsHolderProps), {\n className: cnb(\"ScrollbarsCustom native\", this.state.trackYVisible && \"trackYVisible\", this.state.trackXVisible && \"trackXVisible\", this.state.isRTL && \"rtl\", propsHolderProps.className),\n style: __assign(__assign(__assign(__assign({}, propsHolderProps.style), !isUndef(rtl) && {\n direction: rtl ? \"rtl\" : \"ltr\"\n }), momentum && {\n WebkitOverflowScrolling: \"touch\"\n }), {\n overflowX: noScroll || noScrollX ? \"hidden\" : permanentTracks || permanentTrackX ? \"scroll\" : \"auto\",\n overflowY: noScroll || noScrollY ? \"hidden\" : permanentTracks || permanentTrackY ? \"scroll\" : \"auto\"\n }),\n onScroll: this.handleScrollerScroll,\n children: renderDivWithRenderer(contentProps_1, this.elementRefContent),\n renderer: propsScrollerProps.renderer,\n elementRef: propsScrollerProps.elementRef\n });\n\n return renderDivWithRenderer(scrollerProps_1, this.elementRefScroller);\n }\n\n var styles = Scrollbar.calculateStyles(this.props, this.state, this.scrollValues, scrollbarWidth);\n var holderChildren = [];\n\n var contentProps = __assign(__assign({}, propsContentProps), {\n key: \"ScrollbarsCustom-Content\",\n className: cnb(\"ScrollbarsCustom-Content\", propsContentProps.className),\n style: styles.content,\n children: createContext ? React.createElement(ScrollbarContext.Provider, {\n value: {\n parentScrollbar: this\n },\n children: children\n }) : children\n });\n\n var scrollerProps = __assign(__assign({}, propsScrollerProps), {\n key: \"ScrollbarsCustom-Scroller\",\n className: cnb(\"ScrollbarsCustom-Scroller\", propsScrollerProps.className),\n style: styles.scroller,\n children: renderDivWithRenderer(contentProps, this.elementRefContent),\n onScroll: this.handleScrollerScroll\n });\n\n var wrapperProps = __assign(__assign({}, propsWrapperProps), {\n key: \"ScrollbarsCustom-Wrapper\",\n className: cnb(\"ScrollbarsCustom-Wrapper\", propsWrapperProps.className),\n style: styles.wrapper,\n children: renderDivWithRenderer(scrollerProps, this.elementRefScroller)\n });\n\n holderChildren.push(renderDivWithRenderer(wrapperProps, this.elementRefWrapper));\n\n if (this.state.trackYVisible || !removeTracksWhenNotUsed && !removeTrackYWhenNotUsed) {\n var thumbYProps = __assign(__assign({}, propsThumbYProps), {\n key: \"ScrollbarsCustom-ThumbY\",\n style: styles.thumbY,\n elementRef: this.elementRefThumbY,\n onDrag: this.handleThumbYDrag,\n onDragEnd: this.handleThumbYDragEnd,\n axis: AXIS_DIRECTION.Y\n });\n\n var trackYProps = __assign(__assign(__assign(__assign({}, propsTrackYProps), {\n key: \"ScrollbarsCustom-TrackY\",\n style: styles.trackY,\n elementRef: this.elementRefTrackY,\n onClick: this.handleTrackYClick\n }), (disableTracksMousewheelScrolling || disableTrackYMousewheelScrolling) && {\n onWheel: this.handleTrackYMouseWheel\n }), {\n axis: AXIS_DIRECTION.Y\n });\n\n trackYProps.children = React.createElement(ScrollbarThumb, __assign({}, thumbYProps));\n holderChildren.push(React.createElement(ScrollbarTrack, __assign({}, trackYProps)));\n } else {\n this.elementRefTrackY(null);\n this.elementRefThumbY(null);\n }\n\n if (this.state.trackXVisible || !removeTracksWhenNotUsed && !removeTrackXWhenNotUsed) {\n var thumbXProps = __assign(__assign({}, propsThumbXProps), {\n key: \"ScrollbarsCustom-ThumbX\",\n style: styles.thumbX,\n elementRef: this.elementRefThumbX,\n onDrag: this.handleThumbXDrag,\n onDragEnd: this.handleThumbXDragEnd,\n axis: AXIS_DIRECTION.X\n });\n\n var trackXProps = __assign(__assign(__assign(__assign({}, propsTrackXProps), {\n key: \"ScrollbarsCustom-TrackX\",\n style: styles.trackX,\n elementRef: this.elementRefTrackX,\n onClick: this.handleTrackXClick\n }), (disableTracksMousewheelScrolling || disableTrackXMousewheelScrolling) && {\n onWheel: this.handleTrackXMouseWheel\n }), {\n axis: AXIS_DIRECTION.X\n });\n\n trackXProps.children = React.createElement(ScrollbarThumb, __assign({}, thumbXProps));\n holderChildren.push(React.createElement(ScrollbarTrack, __assign({}, trackXProps)));\n } else {\n this.elementRefTrackX(null);\n this.elementRefThumbX(null);\n }\n\n var holderProps = __assign(__assign({}, propsHolderProps), {\n className: cnb(\"ScrollbarsCustom\", this.state.trackYVisible && \"trackYVisible\", this.state.trackXVisible && \"trackXVisible\", this.state.isRTL && \"rtl\", propsHolderProps.className),\n style: styles.holder,\n children: holderChildren\n });\n\n return renderDivWithRenderer(holderProps, this.elementRefHolder);\n };\n\n Scrollbar.contextType = ScrollbarContext;\n Scrollbar.defaultProps = {\n momentum: true,\n minimalThumbSize: 30,\n fallbackScrollbarWidth: 20,\n trackClickBehavior: TRACK_CLICK_BEHAVIOR.JUMP,\n scrollDetectionThreshold: 100,\n wrapperProps: {},\n scrollerProps: {},\n contentProps: {},\n trackXProps: {},\n trackYProps: {},\n thumbXProps: {},\n thumbYProps: {}\n };\n return Scrollbar;\n}(React.Component);\n\nexport default Scrollbar;\nexport { Scrollbar, ScrollbarContext };\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.findInArray = findInArray;\nexports.isFunction = isFunction;\nexports.isNum = isNum;\nexports.int = int;\nexports.dontSetMe = dontSetMe;\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array\n/*: Array | TouchList*/\n, callback\n/*: Function*/\n)\n/*: any*/\n{\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction isFunction(func\n/*: any*/\n)\n/*: boolean %checks*/\n{\n // $FlowIgnore[method-unbinding]\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nfunction isNum(num\n/*: any*/\n)\n/*: boolean %checks*/\n{\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a\n/*: string*/\n)\n/*: number*/\n{\n return parseInt(a, 10);\n}\n\nfunction dontSetMe(props\n/*: Object*/\n, propName\n/*: string*/\n, componentName\n/*: string*/\n)\n/*: ?Error*/\n{\n if (props[propName]) {\n return new Error(\"Invalid prop \".concat(propName, \" passed to \").concat(componentName, \" - do not set this, set it on the child.\"));\n }\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchesSelector = matchesSelector;\nexports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;\nexports.addEvent = addEvent;\nexports.removeEvent = removeEvent;\nexports.outerHeight = outerHeight;\nexports.outerWidth = outerWidth;\nexports.innerHeight = innerHeight;\nexports.innerWidth = innerWidth;\nexports.offsetXYFromParent = offsetXYFromParent;\nexports.createCSSTransform = createCSSTransform;\nexports.createSVGTransform = createSVGTransform;\nexports.getTranslation = getTranslation;\nexports.getTouch = getTouch;\nexports.getTouchIdentifier = getTouchIdentifier;\nexports.addUserSelectStyles = addUserSelectStyles;\nexports.removeUserSelectStyles = removeUserSelectStyles;\nexports.addClassName = addClassName;\nexports.removeClassName = removeClassName;\n\nvar _shims = require(\"./shims\");\n\nvar _getPrefix = _interopRequireWildcard(require(\"./getPrefix\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar matchesSelectorFunc = '';\n\nfunction matchesSelector(el\n/*: Node*/\n, selector\n/*: string*/\n)\n/*: boolean*/\n{\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {\n // $FlowIgnore: Doesn't think elements are indexable\n return (0, _shims.isFunction)(el[method]);\n });\n } // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n\n\n if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false; // $FlowIgnore: Doesn't think elements are indexable\n\n return el[matchesSelectorFunc](selector);\n} // Works up the tree to the draggable itself attempting to match selector.\n\n\nfunction matchesSelectorAndParentsTo(el\n/*: Node*/\n, selector\n/*: string*/\n, baseNode\n/*: Node*/\n)\n/*: boolean*/\n{\n var node = el;\n\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nfunction addEvent(el\n/*: ?Node*/\n, event\n/*: string*/\n, handler\n/*: Function*/\n, inputOptions\n/*: Object*/\n)\n/*: void*/\n{\n if (!el) return;\n\n var options = _objectSpread({\n capture: true\n }, inputOptions); // $FlowIgnore[method-unbinding]\n\n\n if (el.addEventListener) {\n el.addEventListener(event, handler, options);\n } else if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el\n/*: ?Node*/\n, event\n/*: string*/\n, handler\n/*: Function*/\n, inputOptions\n/*: Object*/\n)\n/*: void*/\n{\n if (!el) return;\n\n var options = _objectSpread({\n capture: true\n }, inputOptions); // $FlowIgnore[method-unbinding]\n\n\n if (el.removeEventListener) {\n el.removeEventListener(event, handler, options);\n } else if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += (0, _shims.int)(computedStyle.borderTopWidth);\n height += (0, _shims.int)(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += (0, _shims.int)(computedStyle.borderLeftWidth);\n width += (0, _shims.int)(computedStyle.borderRightWidth);\n return width;\n}\n\nfunction innerHeight(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n var height = node.clientHeight;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= (0, _shims.int)(computedStyle.paddingTop);\n height -= (0, _shims.int)(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n var width = node.clientWidth;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= (0, _shims.int)(computedStyle.paddingLeft);\n width -= (0, _shims.int)(computedStyle.paddingRight);\n return width;\n}\n/*:: interface EventWithOffset {\n clientX: number, clientY: number\n}*/\n\n\n// Get from offsetParent\nfunction offsetXYFromParent(evt\n/*: EventWithOffset*/\n, offsetParent\n/*: HTMLElement*/\n, scale\n/*: number*/\n)\n/*: ControlPosition*/\n{\n var isBody = offsetParent === offsetParent.ownerDocument.body;\n var offsetParentRect = isBody ? {\n left: 0,\n top: 0\n } : offsetParent.getBoundingClientRect();\n var x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;\n var y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;\n return {\n x: x,\n y: y\n };\n}\n\nfunction createCSSTransform(controlPos\n/*: ControlPosition*/\n, positionOffset\n/*: PositionOffsetControlPosition*/\n)\n/*: Object*/\n{\n var translation = getTranslation(controlPos, positionOffset, 'px');\n return _defineProperty({}, (0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default), translation);\n}\n\nfunction createSVGTransform(controlPos\n/*: ControlPosition*/\n, positionOffset\n/*: PositionOffsetControlPosition*/\n)\n/*: string*/\n{\n var translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\n\nfunction getTranslation(_ref2, positionOffset\n/*: PositionOffsetControlPosition*/\n, unitSuffix\n/*: string*/\n)\n/*: string*/\n{\n var x = _ref2.x,\n y = _ref2.y;\n var translation = \"translate(\".concat(x).concat(unitSuffix, \",\").concat(y).concat(unitSuffix, \")\");\n\n if (positionOffset) {\n var defaultX = \"\".concat(typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix);\n var defaultY = \"\".concat(typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix);\n translation = \"translate(\".concat(defaultX, \", \").concat(defaultY, \")\") + translation;\n }\n\n return translation;\n}\n\nfunction getTouch(e\n/*: MouseTouchEvent*/\n, identifier\n/*: number*/\n)\n/*: ?{clientX: number, clientY: number}*/\n{\n return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, function (t) {\n return identifier === t.identifier;\n }) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, function (t) {\n return identifier === t.identifier;\n });\n}\n\nfunction getTouchIdentifier(e\n/*: MouseTouchEvent*/\n)\n/*: ?number*/\n{\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n} // User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n// Note we're passing `document` b/c we could be iframed\n\n\nfunction addUserSelectStyles(doc\n/*: ?Document*/\n) {\n if (!doc) return;\n var styleEl = doc.getElementById('react-draggable-style-el');\n\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nfunction removeUserSelectStyles(doc\n/*: ?Document*/\n) {\n if (!doc) return;\n\n try {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); // $FlowIgnore: IE\n\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n // Remove selection caused by scroll, unless it's a focused input\n // (we use doc.defaultView in case we're in an iframe)\n var selection = (doc.defaultView || window).getSelection();\n\n if (selection && selection.type !== 'Caret') {\n selection.removeAllRanges();\n }\n }\n } catch (e) {// probably IE\n }\n}\n\nfunction addClassName(el\n/*: HTMLElement*/\n, className\n/*: string*/\n) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\")))) {\n el.className += \" \".concat(className);\n }\n }\n}\n\nfunction removeClassName(el\n/*: HTMLElement*/\n, className\n/*: string*/\n) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\"), 'g'), '');\n }\n}","function toVal(mix) {\n\tvar k, y, str='';\n\n\tif (typeof mix === 'string' || typeof mix === 'number') {\n\t\tstr += mix;\n\t} else if (typeof mix === 'object') {\n\t\tif (Array.isArray(mix)) {\n\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tif (y = toVal(mix[k])) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (k in mix) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\tstr += k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, tmp, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (tmp = arguments[i++]) {\n\t\t\tif (x = toVal(tmp)) {\n\t\t\t\tstr && (str += ' ');\n\t\t\t\tstr += x\n\t\t\t}\n\t\t}\n\t}\n\treturn str;\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getBoundPosition = getBoundPosition;\nexports.snapToGrid = snapToGrid;\nexports.canDragX = canDragX;\nexports.canDragY = canDragY;\nexports.getControlPosition = getControlPosition;\nexports.createCoreData = createCoreData;\nexports.createDraggableData = createDraggableData;\n\nvar _shims = require(\"./shims\");\n\nvar _domFns = require(\"./domFns\");\n\nfunction getBoundPosition(draggable\n/*: Draggable*/\n, x\n/*: number*/\n, y\n/*: number*/\n)\n/*: [number, number]*/\n{\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y]; // Clone new bounds\n\n var bounds = draggable.props.bounds;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n var node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n var ownerDocument = node.ownerDocument;\n var ownerWindow = ownerDocument.defaultView;\n var boundNode;\n\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n\n var boundNodeEl\n /*: HTMLElement*/\n = boundNode; // for Flow, can't seem to refine correctly\n\n var nodeStyle = ownerWindow.getComputedStyle(node);\n var boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl); // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n\n bounds = {\n left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),\n top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),\n right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),\n bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)\n };\n } // Keep x and y below right and bottom limits...\n\n\n if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);\n if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom); // But above left and top limits.\n\n if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);\n if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);\n return [x, y];\n}\n\nfunction snapToGrid(grid\n/*: [number, number]*/\n, pendingX\n/*: number*/\n, pendingY\n/*: number*/\n)\n/*: [number, number]*/\n{\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nfunction canDragX(draggable\n/*: Draggable*/\n)\n/*: boolean*/\n{\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nfunction canDragY(draggable\n/*: Draggable*/\n)\n/*: boolean*/\n{\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n} // Get {x, y} positions from event.\n\n\nfunction getControlPosition(e\n/*: MouseTouchEvent*/\n, touchIdentifier\n/*: ?number*/\n, draggableCore\n/*: DraggableCore*/\n)\n/*: ?ControlPosition*/\n{\n var touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n\n var node = findDOMNode(draggableCore); // User can provide an offsetParent if desired.\n\n var offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);\n} // Create an data object exposed by 's events\n\n\nfunction createCoreData(draggable\n/*: DraggableCore*/\n, x\n/*: number*/\n, y\n/*: number*/\n)\n/*: DraggableData*/\n{\n var state = draggable.state;\n var isStart = !(0, _shims.isNum)(state.lastX);\n var node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: node,\n deltaX: 0,\n deltaY: 0,\n lastX: x,\n lastY: y,\n x: x,\n y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: node,\n deltaX: x - state.lastX,\n deltaY: y - state.lastY,\n lastX: state.lastX,\n lastY: state.lastY,\n x: x,\n y: y\n };\n }\n} // Create an data exposed by 's events\n\n\nfunction createDraggableData(draggable\n/*: Draggable*/\n, coreData\n/*: DraggableData*/\n)\n/*: DraggableData*/\n{\n var scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX / scale,\n y: draggable.state.y + coreData.deltaY / scale,\n deltaX: coreData.deltaX / scale,\n deltaY: coreData.deltaY / scale,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n} // A lot faster than stringify/parse\n\n\nfunction cloneBounds(bounds\n/*: Bounds*/\n)\n/*: Bounds*/\n{\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable\n/*: Draggable | DraggableCore*/\n)\n/*: HTMLElement*/\n{\n var node = draggable.findDOMNode();\n\n if (!node) {\n throw new Error(': Unmounted during event!');\n } // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n\n\n return node;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = log;\n\n/*eslint no-console:0*/\nfunction log() {\n var _console;\n\n if (undefined) (_console = console).log.apply(_console, arguments);\n}","\"use strict\";\n\nvar _require = require('./Draggable'),\n Draggable = _require.default,\n DraggableCore = _require.DraggableCore; // Previous versions of this lib exported as the root export. As to no-// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\n\n\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = DraggableCore;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"DraggableCore\", {\n enumerable: true,\n get: function get() {\n return _DraggableCore.default;\n }\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _clsx2 = _interopRequireDefault(require(\"clsx\"));\n\nvar _domFns = require(\"./utils/domFns\");\n\nvar _positionFns = require(\"./utils/positionFns\");\n\nvar _shims = require(\"./utils/shims\");\n\nvar _DraggableCore = _interopRequireDefault(require(\"./DraggableCore\"));\n\nvar _log = _interopRequireDefault(require(\"./utils/log\"));\n\nvar _excluded = [\"axis\", \"bounds\", \"children\", \"defaultPosition\", \"defaultClassName\", \"defaultClassNameDragging\", \"defaultClassNameDragged\", \"position\", \"positionOffset\", \"scale\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n//\n// Define \n//\nvar Draggable = /*#__PURE__*/function (_React$Component) {\n _inherits(Draggable, _React$Component);\n\n var _super = _createSuper(Draggable);\n\n function Draggable(props\n /*: DraggableProps*/\n ) {\n var _this;\n\n _classCallCheck(this, Draggable);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStart\", function (e, coreData) {\n (0, _log.default)('Draggable: onDragStart: %j', coreData); // Short-circuit if user's callback killed it.\n\n var shouldStart = _this.props.onStart(e, (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData)); // Kills start event on core as well, so move handlers are never bound.\n\n\n if (shouldStart === false) return false;\n\n _this.setState({\n dragging: true,\n dragged: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDrag\", function (e, coreData) {\n if (!_this.state.dragging) return false;\n (0, _log.default)('Draggable: onDrag: %j', coreData);\n var uiData = (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData);\n var newState\n /*: $Shape*/\n = {\n x: uiData.x,\n y: uiData.y\n }; // Keep within bounds.\n\n if (_this.props.bounds) {\n // Save original x and y.\n var x = newState.x,\n y = newState.y; // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n\n newState.x += _this.state.slackX;\n newState.y += _this.state.slackY; // Get bound position. This will ceil/floor the x and y within the boundaries.\n\n var _getBoundPosition = (0, _positionFns.getBoundPosition)(_assertThisInitialized(_this), newState.x, newState.y),\n _getBoundPosition2 = _slicedToArray(_getBoundPosition, 2),\n newStateX = _getBoundPosition2[0],\n newStateY = _getBoundPosition2[1];\n\n newState.x = newStateX;\n newState.y = newStateY; // Recalculate slack by noting how much was shaved by the boundPosition handler.\n\n newState.slackX = _this.state.slackX + (x - newState.x);\n newState.slackY = _this.state.slackY + (y - newState.y); // Update the event we fire to reflect what really happened after bounds took effect.\n\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - _this.state.x;\n uiData.deltaY = newState.y - _this.state.y;\n } // Short-circuit if user's callback killed it.\n\n\n var shouldUpdate = _this.props.onDrag(e, uiData);\n\n if (shouldUpdate === false) return false;\n\n _this.setState(newState);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStop\", function (e, coreData) {\n if (!_this.state.dragging) return false; // Short-circuit if user's callback killed it.\n\n var shouldContinue = _this.props.onStop(e, (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData));\n\n if (shouldContinue === false) return false;\n (0, _log.default)('Draggable: onDragStop: %j', coreData);\n var newState\n /*: $Shape*/\n = {\n dragging: false,\n slackX: 0,\n slackY: 0\n }; // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n\n var controlled = Boolean(_this.props.position);\n\n if (controlled) {\n var _this$props$position = _this.props.position,\n x = _this$props$position.x,\n y = _this$props$position.y;\n newState.x = x;\n newState.y = y;\n }\n\n _this.setState(newState);\n });\n\n _this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n // Whether or not we have been dragged before.\n dragged: false,\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n prevPropsPosition: _objectSpread({}, props.position),\n // Used for compensating for out-of-bounds drags\n slackX: 0,\n slackY: 0,\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n if (props.position && !(props.onDrag || props.onStop)) {\n // eslint-disable-next-line no-console\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + '`position` of this element.');\n }\n\n return _this;\n }\n\n _createClass(Draggable, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if (typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) {\n this.setState({\n isElementSVG: true\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.setState({\n dragging: false\n }); // prevents invariant if unmounted while dragging\n } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n\n }, {\n key: \"findDOMNode\",\n value: function findDOMNode()\n /*: ?HTMLElement*/\n {\n var _this$props$nodeRef$c, _this$props, _this$props$nodeRef;\n\n return (_this$props$nodeRef$c = (_this$props = this.props) === null || _this$props === void 0 ? void 0 : (_this$props$nodeRef = _this$props.nodeRef) === null || _this$props$nodeRef === void 0 ? void 0 : _this$props$nodeRef.current) !== null && _this$props$nodeRef$c !== void 0 ? _this$props$nodeRef$c : _reactDom.default.findDOMNode(this);\n }\n }, {\n key: \"render\",\n value: function render()\n /*: ReactElement*/\n {\n var _clsx;\n\n var _this$props2 = this.props,\n axis = _this$props2.axis,\n bounds = _this$props2.bounds,\n children = _this$props2.children,\n defaultPosition = _this$props2.defaultPosition,\n defaultClassName = _this$props2.defaultClassName,\n defaultClassNameDragging = _this$props2.defaultClassNameDragging,\n defaultClassNameDragged = _this$props2.defaultClassNameDragged,\n position = _this$props2.position,\n positionOffset = _this$props2.positionOffset,\n scale = _this$props2.scale,\n draggableCoreProps = _objectWithoutProperties(_this$props2, _excluded);\n\n var style = {};\n var svgTransform = null; // If this is controlled, we don't want to move it - unless it's dragging.\n\n var controlled = Boolean(position);\n var draggable = !controlled || this.state.dragging;\n var validPosition = position || defaultPosition;\n var transformOpts = {\n // Set left if horizontal drag is enabled\n x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : validPosition.x,\n // Set top if vertical drag is enabled\n y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : validPosition.y\n }; // If this element was SVG, we use the `transform` attribute.\n\n if (this.state.isElementSVG) {\n svgTransform = (0, _domFns.createSVGTransform)(transformOpts, positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = (0, _domFns.createCSSTransform)(transformOpts, positionOffset);\n } // Mark with class while dragging\n\n\n var className = (0, _clsx2.default)(children.props.className || '', defaultClassName, (_clsx = {}, _defineProperty(_clsx, defaultClassNameDragging, this.state.dragging), _defineProperty(_clsx, defaultClassNameDragged, this.state.dragged), _clsx)); // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n\n return /*#__PURE__*/React.createElement(_DraggableCore.default, _extends({}, draggableCoreProps, {\n onStart: this.onDragStart,\n onDrag: this.onDrag,\n onStop: this.onDragStop\n }), /*#__PURE__*/React.cloneElement(React.Children.only(children), {\n className: className,\n style: _objectSpread(_objectSpread({}, children.props.style), style),\n transform: svgTransform\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: // React 16.3+\n // Arity (props, state)\n function getDerivedStateFromProps(_ref, _ref2)\n /*: ?$Shape*/\n {\n var position = _ref.position;\n var prevPropsPosition = _ref2.prevPropsPosition;\n\n // Set x/y if a new position is provided in props that is different than the previous.\n if (position && (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y)) {\n (0, _log.default)('Draggable: getDerivedStateFromProps %j', {\n position: position,\n prevPropsPosition: prevPropsPosition\n });\n return {\n x: position.x,\n y: position.y,\n prevPropsPosition: _objectSpread({}, position)\n };\n }\n\n return null;\n }\n }]);\n\n return Draggable;\n}(React.Component);\n\nexports.default = Draggable;\n\n_defineProperty(Draggable, \"displayName\", 'Draggable');\n\n_defineProperty(Draggable, \"propTypes\", _objectSpread(_objectSpread({}, _DraggableCore.default.propTypes), {}, {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: _propTypes.default.oneOfType([_propTypes.default.shape({\n left: _propTypes.default.number,\n right: _propTypes.default.number,\n top: _propTypes.default.number,\n bottom: _propTypes.default.number\n }), _propTypes.default.string, _propTypes.default.oneOf([false])]),\n defaultClassName: _propTypes.default.string,\n defaultClassNameDragging: _propTypes.default.string,\n defaultClassNameDragged: _propTypes.default.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: _propTypes.default.shape({\n x: _propTypes.default.number,\n y: _propTypes.default.number\n }),\n positionOffset: _propTypes.default.shape({\n x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: _propTypes.default.shape({\n x: _propTypes.default.number,\n y: _propTypes.default.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n}));\n\n_defineProperty(Draggable, \"defaultProps\", _objectSpread(_objectSpread({}, _DraggableCore.default.defaultProps), {}, {\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {\n x: 0,\n y: 0\n },\n scale: 1\n}));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getPrefix = getPrefix;\nexports.browserPrefixToKey = browserPrefixToKey;\nexports.browserPrefixToStyle = browserPrefixToStyle;\nexports.default = void 0;\nvar prefixes = ['Moz', 'Webkit', 'O', 'ms'];\n\nfunction getPrefix()\n/*: string*/\n{\n var _window$document, _window$document$docu;\n\n var prop\n /*: string*/\n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';\n // Ensure we're running in an environment where there is actually a global\n // `window` obj\n if (typeof window === 'undefined') return ''; // If we're in a pseudo-browser server-side environment, this access\n // path may not exist, so bail out if it doesn't.\n\n var style = (_window$document = window.document) === null || _window$document === void 0 ? void 0 : (_window$document$docu = _window$document.documentElement) === null || _window$document$docu === void 0 ? void 0 : _window$document$docu.style;\n if (!style) return '';\n if (prop in style) return '';\n\n for (var i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nfunction browserPrefixToKey(prop\n/*: string*/\n, prefix\n/*: string*/\n)\n/*: string*/\n{\n return prefix ? \"\".concat(prefix).concat(kebabToTitleCase(prop)) : prop;\n}\n\nfunction browserPrefixToStyle(prop\n/*: string*/\n, prefix\n/*: string*/\n)\n/*: string*/\n{\n return prefix ? \"-\".concat(prefix.toLowerCase(), \"-\").concat(prop) : prop;\n}\n\nfunction kebabToTitleCase(str\n/*: string*/\n)\n/*: string*/\n{\n var out = '';\n var shouldCapitalize = true;\n\n for (var i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n\n return out;\n} // Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\n\n\nvar _default = (getPrefix()\n/*: string*/\n);\n\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _domFns = require(\"./utils/domFns\");\n\nvar _positionFns = require(\"./utils/positionFns\");\n\nvar _shims = require(\"./utils/shims\");\n\nvar _log = _interopRequireDefault(require(\"./utils/log\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Simple abstraction for dragging events names.\nvar eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n}; // Default to mouse events.\n\nvar dragEventFor = eventsFor.mouse;\n/*:: type DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};*/\n\n/*:: export type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};*/\n\n/*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/\n\n/*:: export type ControlPosition = {x: number, y: number};*/\n\n/*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/\n\n/*:: export type DraggableCoreDefaultProps = {\n allowAnyClick: boolean,\n disabled: boolean,\n enableUserSelectHack: boolean,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n scale: number,\n};*/\n\n/*:: export type DraggableCoreProps = {\n ...DraggableCoreDefaultProps,\n cancel: string,\n children: ReactElement,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n nodeRef?: ?React.ElementRef,\n};*/\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\nvar DraggableCore = /*#__PURE__*/function (_React$Component) {\n _inherits(DraggableCore, _React$Component);\n\n var _super = _createSuper(DraggableCore);\n\n function DraggableCore() {\n var _this;\n\n _classCallCheck(this, DraggableCore);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN,\n lastY: NaN,\n touchIdentifier: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"handleDragStart\", function (e) {\n // Make it possible to attach event handlers on top of this one.\n _this.props.onMouseDown(e); // Only accept left-clicks.\n\n\n if (!_this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false; // Get nodes. Be sure to grab relative document (could be iframed)\n\n var thisNode = _this.findDOMNode();\n\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n\n var ownerDocument = thisNode.ownerDocument; // Short circuit if handle or cancel prop was provided and selector doesn't match.\n\n if (_this.props.disabled || !(e.target instanceof ownerDocument.defaultView.Node) || _this.props.handle && !(0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.handle, thisNode) || _this.props.cancel && (0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.cancel, thisNode)) {\n return;\n } // Prevent scrolling on mobile devices, like ipad/iphone.\n // Important that this is after handle/cancel.\n\n\n if (e.type === 'touchstart') e.preventDefault(); // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n\n var touchIdentifier = (0, _domFns.getTouchIdentifier)(e);\n\n _this.setState({\n touchIdentifier: touchIdentifier\n }); // Get the current drag point from the event. This is used as the offset.\n\n\n var position = (0, _positionFns.getControlPosition)(e, touchIdentifier, _assertThisInitialized(_this));\n if (position == null) return; // not possible but satisfies flow\n\n var x = position.x,\n y = position.y; // Create an event object with all the data parents need to make a decision here.\n\n var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y);\n (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent); // Call event handler. If it returns explicit false, cancel.\n\n (0, _log.default)('calling', _this.props.onStart);\n\n var shouldUpdate = _this.props.onStart(e, coreEvent);\n\n if (shouldUpdate === false || _this.mounted === false) return; // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n\n if (_this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument); // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n\n _this.setState({\n dragging: true,\n lastX: x,\n lastY: y\n }); // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n\n\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, _this.handleDrag);\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, _this.handleDragStop);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleDrag\", function (e) {\n // Get the current drag point from the event. This is used as the offset.\n var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _assertThisInitialized(_this));\n if (position == null) return;\n var x = position.x,\n y = position.y; // Snap to grid if prop has been provided\n\n if (Array.isArray(_this.props.grid)) {\n var deltaX = x - _this.state.lastX,\n deltaY = y - _this.state.lastY;\n\n var _snapToGrid = (0, _positionFns.snapToGrid)(_this.props.grid, deltaX, deltaY);\n\n var _snapToGrid2 = _slicedToArray(_snapToGrid, 2);\n\n deltaX = _snapToGrid2[0];\n deltaY = _snapToGrid2[1];\n if (!deltaX && !deltaY) return; // skip useless drag\n\n x = _this.state.lastX + deltaX, y = _this.state.lastY + deltaY;\n }\n\n var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y);\n (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent); // Call event handler. If it returns explicit false, trigger end.\n\n var shouldUpdate = _this.props.onDrag(e, coreEvent);\n\n if (shouldUpdate === false || _this.mounted === false) {\n try {\n // $FlowIgnore\n _this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n var event = ((document.createEvent('MouseEvents')\n /*: any*/\n )\n /*: MouseTouchEvent*/\n ); // I see why this insanity was deprecated\n // $FlowIgnore\n\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n\n _this.handleDragStop(event);\n }\n\n return;\n }\n\n _this.setState({\n lastX: x,\n lastY: y\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleDragStop\", function (e) {\n if (!_this.state.dragging) return;\n var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _assertThisInitialized(_this));\n if (position == null) return;\n var x = position.x,\n y = position.y;\n var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y); // Call event handler\n\n var shouldContinue = _this.props.onStop(e, coreEvent);\n\n if (shouldContinue === false || _this.mounted === false) return false;\n\n var thisNode = _this.findDOMNode();\n\n if (thisNode) {\n // Remove user-select hack\n if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument);\n }\n\n (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent); // Reset the el.\n\n _this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n if (thisNode) {\n // Remove event handlers\n (0, _log.default)('DraggableCore: Removing handlers');\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, _this.handleDrag);\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, _this.handleDragStop);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (e) {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return _this.handleDragStart(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseUp\", function (e) {\n dragEventFor = eventsFor.mouse;\n return _this.handleDragStop(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTouchStart\", function (e) {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return _this.handleDragStart(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTouchEnd\", function (e) {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return _this.handleDragStop(e);\n });\n\n return _this;\n }\n\n _createClass(DraggableCore, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mounted = true; // Touch handlers must be added with {passive: false} to be cancelable.\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n\n var thisNode = this.findDOMNode();\n\n if (thisNode) {\n (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false; // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n\n var thisNode = this.findDOMNode();\n\n if (thisNode) {\n var ownerDocument = thisNode.ownerDocument;\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument);\n }\n } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n\n }, {\n key: \"findDOMNode\",\n value: function findDOMNode()\n /*: ?HTMLElement*/\n {\n var _this$props$nodeRef$c, _this$props, _this$props$nodeRef;\n\n return (_this$props$nodeRef$c = (_this$props = this.props) === null || _this$props === void 0 ? void 0 : (_this$props$nodeRef = _this$props.nodeRef) === null || _this$props$nodeRef === void 0 ? void 0 : _this$props$nodeRef.current) !== null && _this$props$nodeRef$c !== void 0 ? _this$props$nodeRef$c : _reactDom.default.findDOMNode(this);\n }\n }, {\n key: \"render\",\n value: function render()\n /*: React.Element*/\n {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onMouseUp: this.onMouseUp,\n // onTouchStart is added on `componentDidMount` so they can be added with\n // {passive: false}, which allows it to cancel. See\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n onTouchEnd: this.onTouchEnd\n });\n }\n }]);\n\n return DraggableCore;\n}(React.Component);\n\nexports.default = DraggableCore;\n\n_defineProperty(DraggableCore, \"displayName\", 'DraggableCore');\n\n_defineProperty(DraggableCore, \"propTypes\", {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: _propTypes.default.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: _propTypes.default.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: _propTypes.default.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function offsetParent(props\n /*: DraggableCoreProps*/\n , propName\n /*: $Keys*/\n ) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: _propTypes.default.arrayOf(_propTypes.default.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: _propTypes.default.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: _propTypes.default.string,\n\n /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.\n * Unfortunately, in order for to work properly, we need raw access\n * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`\n * as in this example:\n *\n * function MyComponent() {\n * const nodeRef = React.useRef(null);\n * return (\n * \n *
Example Target
\n *
\n * );\n * }\n *\n * This can be used for arbitrarily nested components, so long as the ref ends up\n * pointing to the actual child DOM node and not a custom component.\n */\n nodeRef: _propTypes.default.object,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: _propTypes.default.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: _propTypes.default.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: _propTypes.default.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: _propTypes.default.func,\n\n /**\n * `scale`, if set, applies scaling while dragging an element\n */\n scale: _propTypes.default.number,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n});\n\n_defineProperty(DraggableCore, \"defaultProps\", {\n allowAnyClick: false,\n // by default only accept left click\n disabled: false,\n enableUserSelectHack: true,\n onStart: function onStart() {},\n onDrag: function onDrag() {},\n onStop: function onStop() {},\n onMouseDown: function onMouseDown() {},\n scale: 1\n});","var r=Array.isArray,t=function(e){if(\"string\"==typeof e)return e;if(\"object\"!=typeof e)return\"\";var n,f=\"\";if(r(e))for(var o=0;o=t&&!e(\"(min-resolution: \"+i/o+\"dppx)\").matches;)i--;return i}function i(i){if(void 0===i&&(i=window),!i)return 1;if(void 0!==i.devicePixelRatio)return i.devicePixelRatio;var t=i.document.frames;return void 0!==t?void 0!==t.devicePixelRatio?t.devicePixelRatio:t.screen.deviceXDPI/t.screen.systemXDPI:void 0!==i.matchMedia?function(i){for(var t=i.matchMedia,o=10,n=.1,r=1,a=o,c=0;c<4;c++)o=(a=10*e(t,o,n,r))+9,n=a,r*=10;return a/r}(i):1}function t(e,t){var o=(e instanceof Element?getComputedStyle(e).zoom:e.zoom)||1;return i(t)*(\"string\"==typeof o?parseFloat(o):o)}export{t as elementZoomLevel,i as zoomLevel};\n"],"sourceRoot":""}