@opensumi/ide-components 3.1.5-next-1721624769.0 → 3.1.5-next-1721876529.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -4509,102 +4509,102 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
4509
4509
 
4510
4510
  /***/ }),
4511
4511
 
4512
- /***/ "../../node_modules/react-custom-scrollbars/lib/Scrollbars/defaultRenderElements.js":
4513
- /*!******************************************************************************************!*\
4514
- !*** ../../node_modules/react-custom-scrollbars/lib/Scrollbars/defaultRenderElements.js ***!
4515
- \******************************************************************************************/
4512
+ /***/ "../../node_modules/react-custom-scrollbars-2/lib/Scrollbars/defaultRenderElements.js":
4513
+ /*!********************************************************************************************!*\
4514
+ !*** ../../node_modules/react-custom-scrollbars-2/lib/Scrollbars/defaultRenderElements.js ***!
4515
+ \********************************************************************************************/
4516
4516
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4517
4517
 
4518
4518
  "use strict";
4519
- eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _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; };\n\nexports.renderViewDefault = renderViewDefault;\nexports.renderTrackHorizontalDefault = renderTrackHorizontalDefault;\nexports.renderTrackVerticalDefault = renderTrackVerticalDefault;\nexports.renderThumbHorizontalDefault = renderThumbHorizontalDefault;\nexports.renderThumbVerticalDefault = renderThumbVerticalDefault;\n\nvar _react = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n/* eslint-disable react/prop-types */\n\nfunction renderViewDefault(props) {\n return _react2[\"default\"].createElement('div', props);\n}\n\nfunction renderTrackHorizontalDefault(_ref) {\n var style = _ref.style,\n props = _objectWithoutProperties(_ref, ['style']);\n\n var finalStyle = _extends({}, style, {\n right: 2,\n bottom: 2,\n left: 2,\n borderRadius: 3\n });\n return _react2[\"default\"].createElement('div', _extends({ style: finalStyle }, props));\n}\n\nfunction renderTrackVerticalDefault(_ref2) {\n var style = _ref2.style,\n props = _objectWithoutProperties(_ref2, ['style']);\n\n var finalStyle = _extends({}, style, {\n right: 2,\n bottom: 2,\n top: 2,\n borderRadius: 3\n });\n return _react2[\"default\"].createElement('div', _extends({ style: finalStyle }, props));\n}\n\nfunction renderThumbHorizontalDefault(_ref3) {\n var style = _ref3.style,\n props = _objectWithoutProperties(_ref3, ['style']);\n\n var finalStyle = _extends({}, style, {\n cursor: 'pointer',\n borderRadius: 'inherit',\n backgroundColor: 'rgba(0,0,0,.2)'\n });\n return _react2[\"default\"].createElement('div', _extends({ style: finalStyle }, props));\n}\n\nfunction renderThumbVerticalDefault(_ref4) {\n var style = _ref4.style,\n props = _objectWithoutProperties(_ref4, ['style']);\n\n var finalStyle = _extends({}, style, {\n cursor: 'pointer',\n borderRadius: 'inherit',\n backgroundColor: 'rgba(0,0,0,.2)'\n });\n return _react2[\"default\"].createElement('div', _extends({ style: finalStyle }, props));\n}\n\n//# sourceURL=webpack://@opensumi/ide-components/../../node_modules/react-custom-scrollbars/lib/Scrollbars/defaultRenderElements.js?");
4519
+ eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _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; };\n\nexports.renderViewDefault = renderViewDefault;\nexports.renderTrackHorizontalDefault = renderTrackHorizontalDefault;\nexports.renderTrackVerticalDefault = renderTrackVerticalDefault;\nexports.renderThumbHorizontalDefault = renderThumbHorizontalDefault;\nexports.renderThumbVerticalDefault = renderThumbVerticalDefault;\n\nvar _react = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n/* eslint-disable react/prop-types */\n\nfunction renderViewDefault(props) {\n return _react2[\"default\"].createElement('div', props);\n}\n\nfunction renderTrackHorizontalDefault(_ref) {\n var style = _ref.style,\n props = _objectWithoutProperties(_ref, ['style']);\n\n var finalStyle = _extends({}, style, {\n right: 2,\n bottom: 2,\n left: 2,\n borderRadius: 3\n });\n return _react2[\"default\"].createElement('div', _extends({ style: finalStyle }, props));\n}\n\nfunction renderTrackVerticalDefault(_ref2) {\n var style = _ref2.style,\n props = _objectWithoutProperties(_ref2, ['style']);\n\n var finalStyle = _extends({}, style, {\n right: 2,\n bottom: 2,\n top: 2,\n borderRadius: 3\n });\n return _react2[\"default\"].createElement('div', _extends({ style: finalStyle }, props));\n}\n\nfunction renderThumbHorizontalDefault(_ref3) {\n var style = _ref3.style,\n props = _objectWithoutProperties(_ref3, ['style']);\n\n var finalStyle = _extends({}, style, {\n cursor: 'pointer',\n borderRadius: 'inherit',\n backgroundColor: 'rgba(0,0,0,.2)'\n });\n return _react2[\"default\"].createElement('div', _extends({ style: finalStyle }, props));\n}\n\nfunction renderThumbVerticalDefault(_ref4) {\n var style = _ref4.style,\n props = _objectWithoutProperties(_ref4, ['style']);\n\n var finalStyle = _extends({}, style, {\n cursor: 'pointer',\n borderRadius: 'inherit',\n backgroundColor: 'rgba(0,0,0,.2)'\n });\n return _react2[\"default\"].createElement('div', _extends({ style: finalStyle }, props));\n}\n\n//# sourceURL=webpack://@opensumi/ide-components/../../node_modules/react-custom-scrollbars-2/lib/Scrollbars/defaultRenderElements.js?");
4520
4520
 
4521
4521
  /***/ }),
4522
4522
 
4523
- /***/ "../../node_modules/react-custom-scrollbars/lib/Scrollbars/index.js":
4524
- /*!**************************************************************************!*\
4525
- !*** ../../node_modules/react-custom-scrollbars/lib/Scrollbars/index.js ***!
4526
- \**************************************************************************/
4523
+ /***/ "../../node_modules/react-custom-scrollbars-2/lib/Scrollbars/index.js":
4524
+ /*!****************************************************************************!*\
4525
+ !*** ../../node_modules/react-custom-scrollbars-2/lib/Scrollbars/index.js ***!
4526
+ \****************************************************************************/
4527
4527
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4528
4528
 
4529
4529
  "use strict";
4530
- eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _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; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _raf2 = __webpack_require__(/*! raf */ \"../../node_modules/raf/index.js\");\n\nvar _raf3 = _interopRequireDefault(_raf2);\n\nvar _domCss = __webpack_require__(/*! dom-css */ \"../../node_modules/dom-css/index.js\");\n\nvar _domCss2 = _interopRequireDefault(_domCss);\n\nvar _react = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n\nvar _propTypes = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _isString = __webpack_require__(/*! ../utils/isString */ \"../../node_modules/react-custom-scrollbars/lib/utils/isString.js\");\n\nvar _isString2 = _interopRequireDefault(_isString);\n\nvar _getScrollbarWidth = __webpack_require__(/*! ../utils/getScrollbarWidth */ \"../../node_modules/react-custom-scrollbars/lib/utils/getScrollbarWidth.js\");\n\nvar _getScrollbarWidth2 = _interopRequireDefault(_getScrollbarWidth);\n\nvar _returnFalse = __webpack_require__(/*! ../utils/returnFalse */ \"../../node_modules/react-custom-scrollbars/lib/utils/returnFalse.js\");\n\nvar _returnFalse2 = _interopRequireDefault(_returnFalse);\n\nvar _getInnerWidth = __webpack_require__(/*! ../utils/getInnerWidth */ \"../../node_modules/react-custom-scrollbars/lib/utils/getInnerWidth.js\");\n\nvar _getInnerWidth2 = _interopRequireDefault(_getInnerWidth);\n\nvar _getInnerHeight = __webpack_require__(/*! ../utils/getInnerHeight */ \"../../node_modules/react-custom-scrollbars/lib/utils/getInnerHeight.js\");\n\nvar _getInnerHeight2 = _interopRequireDefault(_getInnerHeight);\n\nvar _styles = __webpack_require__(/*! ./styles */ \"../../node_modules/react-custom-scrollbars/lib/Scrollbars/styles.js\");\n\nvar _defaultRenderElements = __webpack_require__(/*! ./defaultRenderElements */ \"../../node_modules/react-custom-scrollbars/lib/Scrollbars/defaultRenderElements.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Scrollbars = function (_Component) {\n _inherits(Scrollbars, _Component);\n\n function Scrollbars(props) {\n var _ref;\n\n _classCallCheck(this, Scrollbars);\n\n for (var _len = arguments.length, rest = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n var _this = _possibleConstructorReturn(this, (_ref = Scrollbars.__proto__ || Object.getPrototypeOf(Scrollbars)).call.apply(_ref, [this, props].concat(rest)));\n\n _this.getScrollLeft = _this.getScrollLeft.bind(_this);\n _this.getScrollTop = _this.getScrollTop.bind(_this);\n _this.getScrollWidth = _this.getScrollWidth.bind(_this);\n _this.getScrollHeight = _this.getScrollHeight.bind(_this);\n _this.getClientWidth = _this.getClientWidth.bind(_this);\n _this.getClientHeight = _this.getClientHeight.bind(_this);\n _this.getValues = _this.getValues.bind(_this);\n _this.getThumbHorizontalWidth = _this.getThumbHorizontalWidth.bind(_this);\n _this.getThumbVerticalHeight = _this.getThumbVerticalHeight.bind(_this);\n _this.getScrollLeftForOffset = _this.getScrollLeftForOffset.bind(_this);\n _this.getScrollTopForOffset = _this.getScrollTopForOffset.bind(_this);\n\n _this.scrollLeft = _this.scrollLeft.bind(_this);\n _this.scrollTop = _this.scrollTop.bind(_this);\n _this.scrollToLeft = _this.scrollToLeft.bind(_this);\n _this.scrollToTop = _this.scrollToTop.bind(_this);\n _this.scrollToRight = _this.scrollToRight.bind(_this);\n _this.scrollToBottom = _this.scrollToBottom.bind(_this);\n\n _this.handleTrackMouseEnter = _this.handleTrackMouseEnter.bind(_this);\n _this.handleTrackMouseLeave = _this.handleTrackMouseLeave.bind(_this);\n _this.handleHorizontalTrackMouseDown = _this.handleHorizontalTrackMouseDown.bind(_this);\n _this.handleVerticalTrackMouseDown = _this.handleVerticalTrackMouseDown.bind(_this);\n _this.handleHorizontalThumbMouseDown = _this.handleHorizontalThumbMouseDown.bind(_this);\n _this.handleVerticalThumbMouseDown = _this.handleVerticalThumbMouseDown.bind(_this);\n _this.handleWindowResize = _this.handleWindowResize.bind(_this);\n _this.handleScroll = _this.handleScroll.bind(_this);\n _this.handleDrag = _this.handleDrag.bind(_this);\n _this.handleDragEnd = _this.handleDragEnd.bind(_this);\n\n _this.state = {\n didMountUniversal: false\n };\n return _this;\n }\n\n _createClass(Scrollbars, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.addListeners();\n this.update();\n this.componentDidMountUniversal();\n }\n }, {\n key: 'componentDidMountUniversal',\n value: function componentDidMountUniversal() {\n // eslint-disable-line react/sort-comp\n var universal = this.props.universal;\n\n if (!universal) return;\n this.setState({ didMountUniversal: true });\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n this.update();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.removeListeners();\n (0, _raf2.cancel)(this.requestFrame);\n clearTimeout(this.hideTracksTimeout);\n clearInterval(this.detectScrollingInterval);\n }\n }, {\n key: 'getScrollLeft',\n value: function getScrollLeft() {\n if (!this.view) return 0;\n return this.view.scrollLeft;\n }\n }, {\n key: 'getScrollTop',\n value: function getScrollTop() {\n if (!this.view) return 0;\n return this.view.scrollTop;\n }\n }, {\n key: 'getScrollWidth',\n value: function getScrollWidth() {\n if (!this.view) return 0;\n return this.view.scrollWidth;\n }\n }, {\n key: 'getScrollHeight',\n value: function getScrollHeight() {\n if (!this.view) return 0;\n return this.view.scrollHeight;\n }\n }, {\n key: 'getClientWidth',\n value: function getClientWidth() {\n if (!this.view) return 0;\n return this.view.clientWidth;\n }\n }, {\n key: 'getClientHeight',\n value: function getClientHeight() {\n if (!this.view) return 0;\n return this.view.clientHeight;\n }\n }, {\n key: 'getValues',\n value: function getValues() {\n var _ref2 = this.view || {},\n _ref2$scrollLeft = _ref2.scrollLeft,\n scrollLeft = _ref2$scrollLeft === undefined ? 0 : _ref2$scrollLeft,\n _ref2$scrollTop = _ref2.scrollTop,\n scrollTop = _ref2$scrollTop === undefined ? 0 : _ref2$scrollTop,\n _ref2$scrollWidth = _ref2.scrollWidth,\n scrollWidth = _ref2$scrollWidth === undefined ? 0 : _ref2$scrollWidth,\n _ref2$scrollHeight = _ref2.scrollHeight,\n scrollHeight = _ref2$scrollHeight === undefined ? 0 : _ref2$scrollHeight,\n _ref2$clientWidth = _ref2.clientWidth,\n clientWidth = _ref2$clientWidth === undefined ? 0 : _ref2$clientWidth,\n _ref2$clientHeight = _ref2.clientHeight,\n clientHeight = _ref2$clientHeight === undefined ? 0 : _ref2$clientHeight;\n\n return {\n left: scrollLeft / (scrollWidth - clientWidth) || 0,\n top: scrollTop / (scrollHeight - clientHeight) || 0,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollWidth: scrollWidth,\n scrollHeight: scrollHeight,\n clientWidth: clientWidth,\n clientHeight: clientHeight\n };\n }\n }, {\n key: 'getThumbHorizontalWidth',\n value: function getThumbHorizontalWidth() {\n var _props = this.props,\n thumbSize = _props.thumbSize,\n thumbMinSize = _props.thumbMinSize;\n var _view = this.view,\n scrollWidth = _view.scrollWidth,\n clientWidth = _view.clientWidth;\n\n var trackWidth = (0, _getInnerWidth2[\"default\"])(this.trackHorizontal);\n var width = Math.ceil(clientWidth / scrollWidth * trackWidth);\n if (trackWidth === width) return 0;\n if (thumbSize) return thumbSize;\n return Math.max(width, thumbMinSize);\n }\n }, {\n key: 'getThumbVerticalHeight',\n value: function getThumbVerticalHeight() {\n var _props2 = this.props,\n thumbSize = _props2.thumbSize,\n thumbMinSize = _props2.thumbMinSize;\n var _view2 = this.view,\n scrollHeight = _view2.scrollHeight,\n clientHeight = _view2.clientHeight;\n\n var trackHeight = (0, _getInnerHeight2[\"default\"])(this.trackVertical);\n var height = Math.ceil(clientHeight / scrollHeight * trackHeight);\n if (trackHeight === height) return 0;\n if (thumbSize) return thumbSize;\n return Math.max(height, thumbMinSize);\n }\n }, {\n key: 'getScrollLeftForOffset',\n value: function getScrollLeftForOffset(offset) {\n var _view3 = this.view,\n scrollWidth = _view3.scrollWidth,\n clientWidth = _view3.clientWidth;\n\n var trackWidth = (0, _getInnerWidth2[\"default\"])(this.trackHorizontal);\n var thumbWidth = this.getThumbHorizontalWidth();\n return offset / (trackWidth - thumbWidth) * (scrollWidth - clientWidth);\n }\n }, {\n key: 'getScrollTopForOffset',\n value: function getScrollTopForOffset(offset) {\n var _view4 = this.view,\n scrollHeight = _view4.scrollHeight,\n clientHeight = _view4.clientHeight;\n\n var trackHeight = (0, _getInnerHeight2[\"default\"])(this.trackVertical);\n var thumbHeight = this.getThumbVerticalHeight();\n return offset / (trackHeight - thumbHeight) * (scrollHeight - clientHeight);\n }\n }, {\n key: 'scrollLeft',\n value: function scrollLeft() {\n var left = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (!this.view) return;\n this.view.scrollLeft = left;\n }\n }, {\n key: 'scrollTop',\n value: function scrollTop() {\n var top = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (!this.view) return;\n this.view.scrollTop = top;\n }\n }, {\n key: 'scrollToLeft',\n value: function scrollToLeft() {\n if (!this.view) return;\n this.view.scrollLeft = 0;\n }\n }, {\n key: 'scrollToTop',\n value: function scrollToTop() {\n if (!this.view) return;\n this.view.scrollTop = 0;\n }\n }, {\n key: 'scrollToRight',\n value: function scrollToRight() {\n if (!this.view) return;\n this.view.scrollLeft = this.view.scrollWidth;\n }\n }, {\n key: 'scrollToBottom',\n value: function scrollToBottom() {\n if (!this.view) return;\n this.view.scrollTop = this.view.scrollHeight;\n }\n }, {\n key: 'addListeners',\n value: function addListeners() {\n /* istanbul ignore if */\n if (typeof document === 'undefined' || !this.view) return;\n var view = this.view,\n trackHorizontal = this.trackHorizontal,\n trackVertical = this.trackVertical,\n thumbHorizontal = this.thumbHorizontal,\n thumbVertical = this.thumbVertical;\n\n view.addEventListener('scroll', this.handleScroll);\n if (!(0, _getScrollbarWidth2[\"default\"])()) return;\n trackHorizontal.addEventListener('mouseenter', this.handleTrackMouseEnter);\n trackHorizontal.addEventListener('mouseleave', this.handleTrackMouseLeave);\n trackHorizontal.addEventListener('mousedown', this.handleHorizontalTrackMouseDown);\n trackVertical.addEventListener('mouseenter', this.handleTrackMouseEnter);\n trackVertical.addEventListener('mouseleave', this.handleTrackMouseLeave);\n trackVertical.addEventListener('mousedown', this.handleVerticalTrackMouseDown);\n thumbHorizontal.addEventListener('mousedown', this.handleHorizontalThumbMouseDown);\n thumbVertical.addEventListener('mousedown', this.handleVerticalThumbMouseDown);\n window.addEventListener('resize', this.handleWindowResize);\n }\n }, {\n key: 'removeListeners',\n value: function removeListeners() {\n /* istanbul ignore if */\n if (typeof document === 'undefined' || !this.view) return;\n var view = this.view,\n trackHorizontal = this.trackHorizontal,\n trackVertical = this.trackVertical,\n thumbHorizontal = this.thumbHorizontal,\n thumbVertical = this.thumbVertical;\n\n view.removeEventListener('scroll', this.handleScroll);\n if (!(0, _getScrollbarWidth2[\"default\"])()) return;\n trackHorizontal.removeEventListener('mouseenter', this.handleTrackMouseEnter);\n trackHorizontal.removeEventListener('mouseleave', this.handleTrackMouseLeave);\n trackHorizontal.removeEventListener('mousedown', this.handleHorizontalTrackMouseDown);\n trackVertical.removeEventListener('mouseenter', this.handleTrackMouseEnter);\n trackVertical.removeEventListener('mouseleave', this.handleTrackMouseLeave);\n trackVertical.removeEventListener('mousedown', this.handleVerticalTrackMouseDown);\n thumbHorizontal.removeEventListener('mousedown', this.handleHorizontalThumbMouseDown);\n thumbVertical.removeEventListener('mousedown', this.handleVerticalThumbMouseDown);\n window.removeEventListener('resize', this.handleWindowResize);\n // Possibly setup by `handleDragStart`\n this.teardownDragging();\n }\n }, {\n key: 'handleScroll',\n value: function handleScroll(event) {\n var _this2 = this;\n\n var _props3 = this.props,\n onScroll = _props3.onScroll,\n onScrollFrame = _props3.onScrollFrame;\n\n if (onScroll) onScroll(event);\n this.update(function (values) {\n var scrollLeft = values.scrollLeft,\n scrollTop = values.scrollTop;\n\n _this2.viewScrollLeft = scrollLeft;\n _this2.viewScrollTop = scrollTop;\n if (onScrollFrame) onScrollFrame(values);\n });\n this.detectScrolling();\n }\n }, {\n key: 'handleScrollStart',\n value: function handleScrollStart() {\n var onScrollStart = this.props.onScrollStart;\n\n if (onScrollStart) onScrollStart();\n this.handleScrollStartAutoHide();\n }\n }, {\n key: 'handleScrollStartAutoHide',\n value: function handleScrollStartAutoHide() {\n var autoHide = this.props.autoHide;\n\n if (!autoHide) return;\n this.showTracks();\n }\n }, {\n key: 'handleScrollStop',\n value: function handleScrollStop() {\n var onScrollStop = this.props.onScrollStop;\n\n if (onScrollStop) onScrollStop();\n this.handleScrollStopAutoHide();\n }\n }, {\n key: 'handleScrollStopAutoHide',\n value: function handleScrollStopAutoHide() {\n var autoHide = this.props.autoHide;\n\n if (!autoHide) return;\n this.hideTracks();\n }\n }, {\n key: 'handleWindowResize',\n value: function handleWindowResize() {\n this.update();\n }\n }, {\n key: 'handleHorizontalTrackMouseDown',\n value: function handleHorizontalTrackMouseDown(event) {\n event.preventDefault();\n var target = event.target,\n clientX = event.clientX;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n targetLeft = _target$getBoundingCl.left;\n\n var thumbWidth = this.getThumbHorizontalWidth();\n var offset = Math.abs(targetLeft - clientX) - thumbWidth / 2;\n this.view.scrollLeft = this.getScrollLeftForOffset(offset);\n }\n }, {\n key: 'handleVerticalTrackMouseDown',\n value: function handleVerticalTrackMouseDown(event) {\n event.preventDefault();\n var target = event.target,\n clientY = event.clientY;\n\n var _target$getBoundingCl2 = target.getBoundingClientRect(),\n targetTop = _target$getBoundingCl2.top;\n\n var thumbHeight = this.getThumbVerticalHeight();\n var offset = Math.abs(targetTop - clientY) - thumbHeight / 2;\n this.view.scrollTop = this.getScrollTopForOffset(offset);\n }\n }, {\n key: 'handleHorizontalThumbMouseDown',\n value: function handleHorizontalThumbMouseDown(event) {\n event.preventDefault();\n this.handleDragStart(event);\n var target = event.target,\n clientX = event.clientX;\n var offsetWidth = target.offsetWidth;\n\n var _target$getBoundingCl3 = target.getBoundingClientRect(),\n left = _target$getBoundingCl3.left;\n\n this.prevPageX = offsetWidth - (clientX - left);\n }\n }, {\n key: 'handleVerticalThumbMouseDown',\n value: function handleVerticalThumbMouseDown(event) {\n event.preventDefault();\n this.handleDragStart(event);\n var target = event.target,\n clientY = event.clientY;\n var offsetHeight = target.offsetHeight;\n\n var _target$getBoundingCl4 = target.getBoundingClientRect(),\n top = _target$getBoundingCl4.top;\n\n this.prevPageY = offsetHeight - (clientY - top);\n }\n }, {\n key: 'setupDragging',\n value: function setupDragging() {\n (0, _domCss2[\"default\"])(document.body, _styles.disableSelectStyle);\n document.addEventListener('mousemove', this.handleDrag);\n document.addEventListener('mouseup', this.handleDragEnd);\n document.onselectstart = _returnFalse2[\"default\"];\n }\n }, {\n key: 'teardownDragging',\n value: function teardownDragging() {\n (0, _domCss2[\"default\"])(document.body, _styles.disableSelectStyleReset);\n document.removeEventListener('mousemove', this.handleDrag);\n document.removeEventListener('mouseup', this.handleDragEnd);\n document.onselectstart = undefined;\n }\n }, {\n key: 'handleDragStart',\n value: function handleDragStart(event) {\n this.dragging = true;\n event.stopImmediatePropagation();\n this.setupDragging();\n }\n }, {\n key: 'handleDrag',\n value: function handleDrag(event) {\n if (this.prevPageX) {\n var clientX = event.clientX;\n\n var _trackHorizontal$getB = this.trackHorizontal.getBoundingClientRect(),\n trackLeft = _trackHorizontal$getB.left;\n\n var thumbWidth = this.getThumbHorizontalWidth();\n var clickPosition = thumbWidth - this.prevPageX;\n var offset = -trackLeft + clientX - clickPosition;\n this.view.scrollLeft = this.getScrollLeftForOffset(offset);\n }\n if (this.prevPageY) {\n var clientY = event.clientY;\n\n var _trackVertical$getBou = this.trackVertical.getBoundingClientRect(),\n trackTop = _trackVertical$getBou.top;\n\n var thumbHeight = this.getThumbVerticalHeight();\n var _clickPosition = thumbHeight - this.prevPageY;\n var _offset = -trackTop + clientY - _clickPosition;\n this.view.scrollTop = this.getScrollTopForOffset(_offset);\n }\n return false;\n }\n }, {\n key: 'handleDragEnd',\n value: function handleDragEnd() {\n this.dragging = false;\n this.prevPageX = this.prevPageY = 0;\n this.teardownDragging();\n this.handleDragEndAutoHide();\n }\n }, {\n key: 'handleDragEndAutoHide',\n value: function handleDragEndAutoHide() {\n var autoHide = this.props.autoHide;\n\n if (!autoHide) return;\n this.hideTracks();\n }\n }, {\n key: 'handleTrackMouseEnter',\n value: function handleTrackMouseEnter() {\n this.trackMouseOver = true;\n this.handleTrackMouseEnterAutoHide();\n }\n }, {\n key: 'handleTrackMouseEnterAutoHide',\n value: function handleTrackMouseEnterAutoHide() {\n var autoHide = this.props.autoHide;\n\n if (!autoHide) return;\n this.showTracks();\n }\n }, {\n key: 'handleTrackMouseLeave',\n value: function handleTrackMouseLeave() {\n this.trackMouseOver = false;\n this.handleTrackMouseLeaveAutoHide();\n }\n }, {\n key: 'handleTrackMouseLeaveAutoHide',\n value: function handleTrackMouseLeaveAutoHide() {\n var autoHide = this.props.autoHide;\n\n if (!autoHide) return;\n this.hideTracks();\n }\n }, {\n key: 'showTracks',\n value: function showTracks() {\n clearTimeout(this.hideTracksTimeout);\n (0, _domCss2[\"default\"])(this.trackHorizontal, { opacity: 1 });\n (0, _domCss2[\"default\"])(this.trackVertical, { opacity: 1 });\n }\n }, {\n key: 'hideTracks',\n value: function hideTracks() {\n var _this3 = this;\n\n if (this.dragging) return;\n if (this.scrolling) return;\n if (this.trackMouseOver) return;\n var autoHideTimeout = this.props.autoHideTimeout;\n\n clearTimeout(this.hideTracksTimeout);\n this.hideTracksTimeout = setTimeout(function () {\n (0, _domCss2[\"default\"])(_this3.trackHorizontal, { opacity: 0 });\n (0, _domCss2[\"default\"])(_this3.trackVertical, { opacity: 0 });\n }, autoHideTimeout);\n }\n }, {\n key: 'detectScrolling',\n value: function detectScrolling() {\n var _this4 = this;\n\n if (this.scrolling) return;\n this.scrolling = true;\n this.handleScrollStart();\n this.detectScrollingInterval = setInterval(function () {\n if (_this4.lastViewScrollLeft === _this4.viewScrollLeft && _this4.lastViewScrollTop === _this4.viewScrollTop) {\n clearInterval(_this4.detectScrollingInterval);\n _this4.scrolling = false;\n _this4.handleScrollStop();\n }\n _this4.lastViewScrollLeft = _this4.viewScrollLeft;\n _this4.lastViewScrollTop = _this4.viewScrollTop;\n }, 100);\n }\n }, {\n key: 'raf',\n value: function raf(callback) {\n var _this5 = this;\n\n if (this.requestFrame) _raf3[\"default\"].cancel(this.requestFrame);\n this.requestFrame = (0, _raf3[\"default\"])(function () {\n _this5.requestFrame = undefined;\n callback();\n });\n }\n }, {\n key: 'update',\n value: function update(callback) {\n var _this6 = this;\n\n this.raf(function () {\n return _this6._update(callback);\n });\n }\n }, {\n key: '_update',\n value: function _update(callback) {\n var _props4 = this.props,\n onUpdate = _props4.onUpdate,\n hideTracksWhenNotNeeded = _props4.hideTracksWhenNotNeeded;\n\n var values = this.getValues();\n if ((0, _getScrollbarWidth2[\"default\"])()) {\n var scrollLeft = values.scrollLeft,\n clientWidth = values.clientWidth,\n scrollWidth = values.scrollWidth;\n\n var trackHorizontalWidth = (0, _getInnerWidth2[\"default\"])(this.trackHorizontal);\n var thumbHorizontalWidth = this.getThumbHorizontalWidth();\n var thumbHorizontalX = scrollLeft / (scrollWidth - clientWidth) * (trackHorizontalWidth - thumbHorizontalWidth);\n var thumbHorizontalStyle = {\n width: thumbHorizontalWidth,\n transform: 'translateX(' + thumbHorizontalX + 'px)'\n };\n var scrollTop = values.scrollTop,\n clientHeight = values.clientHeight,\n scrollHeight = values.scrollHeight;\n\n var trackVerticalHeight = (0, _getInnerHeight2[\"default\"])(this.trackVertical);\n var thumbVerticalHeight = this.getThumbVerticalHeight();\n var thumbVerticalY = scrollTop / (scrollHeight - clientHeight) * (trackVerticalHeight - thumbVerticalHeight);\n var thumbVerticalStyle = {\n height: thumbVerticalHeight,\n transform: 'translateY(' + thumbVerticalY + 'px)'\n };\n if (hideTracksWhenNotNeeded) {\n var trackHorizontalStyle = {\n visibility: scrollWidth > clientWidth ? 'visible' : 'hidden'\n };\n var trackVerticalStyle = {\n visibility: scrollHeight > clientHeight ? 'visible' : 'hidden'\n };\n (0, _domCss2[\"default\"])(this.trackHorizontal, trackHorizontalStyle);\n (0, _domCss2[\"default\"])(this.trackVertical, trackVerticalStyle);\n }\n (0, _domCss2[\"default\"])(this.thumbHorizontal, thumbHorizontalStyle);\n (0, _domCss2[\"default\"])(this.thumbVertical, thumbVerticalStyle);\n }\n if (onUpdate) onUpdate(values);\n if (typeof callback !== 'function') return;\n callback(values);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this7 = this;\n\n var scrollbarWidth = (0, _getScrollbarWidth2[\"default\"])();\n /* eslint-disable no-unused-vars */\n\n var _props5 = this.props,\n onScroll = _props5.onScroll,\n onScrollFrame = _props5.onScrollFrame,\n onScrollStart = _props5.onScrollStart,\n onScrollStop = _props5.onScrollStop,\n onUpdate = _props5.onUpdate,\n renderView = _props5.renderView,\n renderTrackHorizontal = _props5.renderTrackHorizontal,\n renderTrackVertical = _props5.renderTrackVertical,\n renderThumbHorizontal = _props5.renderThumbHorizontal,\n renderThumbVertical = _props5.renderThumbVertical,\n tagName = _props5.tagName,\n hideTracksWhenNotNeeded = _props5.hideTracksWhenNotNeeded,\n autoHide = _props5.autoHide,\n autoHideTimeout = _props5.autoHideTimeout,\n autoHideDuration = _props5.autoHideDuration,\n thumbSize = _props5.thumbSize,\n thumbMinSize = _props5.thumbMinSize,\n universal = _props5.universal,\n autoHeight = _props5.autoHeight,\n autoHeightMin = _props5.autoHeightMin,\n autoHeightMax = _props5.autoHeightMax,\n style = _props5.style,\n children = _props5.children,\n props = _objectWithoutProperties(_props5, ['onScroll', 'onScrollFrame', 'onScrollStart', 'onScrollStop', 'onUpdate', 'renderView', 'renderTrackHorizontal', 'renderTrackVertical', 'renderThumbHorizontal', 'renderThumbVertical', 'tagName', 'hideTracksWhenNotNeeded', 'autoHide', 'autoHideTimeout', 'autoHideDuration', 'thumbSize', 'thumbMinSize', 'universal', 'autoHeight', 'autoHeightMin', 'autoHeightMax', 'style', 'children']);\n /* eslint-enable no-unused-vars */\n\n var didMountUniversal = this.state.didMountUniversal;\n\n\n var containerStyle = _extends({}, _styles.containerStyleDefault, autoHeight && _extends({}, _styles.containerStyleAutoHeight, {\n minHeight: autoHeightMin,\n maxHeight: autoHeightMax\n }), style);\n\n var viewStyle = _extends({}, _styles.viewStyleDefault, {\n // Hide scrollbars by setting a negative margin\n marginRight: scrollbarWidth ? -scrollbarWidth : 0,\n marginBottom: scrollbarWidth ? -scrollbarWidth : 0\n }, autoHeight && _extends({}, _styles.viewStyleAutoHeight, {\n // Add scrollbarWidth to autoHeight in order to compensate negative margins\n minHeight: (0, _isString2[\"default\"])(autoHeightMin) ? 'calc(' + autoHeightMin + ' + ' + scrollbarWidth + 'px)' : autoHeightMin + scrollbarWidth,\n maxHeight: (0, _isString2[\"default\"])(autoHeightMax) ? 'calc(' + autoHeightMax + ' + ' + scrollbarWidth + 'px)' : autoHeightMax + scrollbarWidth\n }), autoHeight && universal && !didMountUniversal && {\n minHeight: autoHeightMin,\n maxHeight: autoHeightMax\n }, universal && !didMountUniversal && _styles.viewStyleUniversalInitial);\n\n var trackAutoHeightStyle = {\n transition: 'opacity ' + autoHideDuration + 'ms',\n opacity: 0\n };\n\n var trackHorizontalStyle = _extends({}, _styles.trackHorizontalStyleDefault, autoHide && trackAutoHeightStyle, (!scrollbarWidth || universal && !didMountUniversal) && {\n display: 'none'\n });\n\n var trackVerticalStyle = _extends({}, _styles.trackVerticalStyleDefault, autoHide && trackAutoHeightStyle, (!scrollbarWidth || universal && !didMountUniversal) && {\n display: 'none'\n });\n\n return (0, _react.createElement)(tagName, _extends({}, props, { style: containerStyle, ref: function ref(_ref3) {\n _this7.container = _ref3;\n } }), [(0, _react.cloneElement)(renderView({ style: viewStyle }), { key: 'view', ref: function ref(_ref4) {\n _this7.view = _ref4;\n } }, children), (0, _react.cloneElement)(renderTrackHorizontal({ style: trackHorizontalStyle }), { key: 'trackHorizontal', ref: function ref(_ref5) {\n _this7.trackHorizontal = _ref5;\n } }, (0, _react.cloneElement)(renderThumbHorizontal({ style: _styles.thumbHorizontalStyleDefault }), { ref: function ref(_ref6) {\n _this7.thumbHorizontal = _ref6;\n } })), (0, _react.cloneElement)(renderTrackVertical({ style: trackVerticalStyle }), { key: 'trackVertical', ref: function ref(_ref7) {\n _this7.trackVertical = _ref7;\n } }, (0, _react.cloneElement)(renderThumbVertical({ style: _styles.thumbVerticalStyleDefault }), { ref: function ref(_ref8) {\n _this7.thumbVertical = _ref8;\n } }))]);\n }\n }]);\n\n return Scrollbars;\n}(_react.Component);\n\nexports[\"default\"] = Scrollbars;\n\n\nScrollbars.propTypes = {\n onScroll: _propTypes2[\"default\"].func,\n onScrollFrame: _propTypes2[\"default\"].func,\n onScrollStart: _propTypes2[\"default\"].func,\n onScrollStop: _propTypes2[\"default\"].func,\n onUpdate: _propTypes2[\"default\"].func,\n renderView: _propTypes2[\"default\"].func,\n renderTrackHorizontal: _propTypes2[\"default\"].func,\n renderTrackVertical: _propTypes2[\"default\"].func,\n renderThumbHorizontal: _propTypes2[\"default\"].func,\n renderThumbVertical: _propTypes2[\"default\"].func,\n tagName: _propTypes2[\"default\"].string,\n thumbSize: _propTypes2[\"default\"].number,\n thumbMinSize: _propTypes2[\"default\"].number,\n hideTracksWhenNotNeeded: _propTypes2[\"default\"].bool,\n autoHide: _propTypes2[\"default\"].bool,\n autoHideTimeout: _propTypes2[\"default\"].number,\n autoHideDuration: _propTypes2[\"default\"].number,\n autoHeight: _propTypes2[\"default\"].bool,\n autoHeightMin: _propTypes2[\"default\"].oneOfType([_propTypes2[\"default\"].number, _propTypes2[\"default\"].string]),\n autoHeightMax: _propTypes2[\"default\"].oneOfType([_propTypes2[\"default\"].number, _propTypes2[\"default\"].string]),\n universal: _propTypes2[\"default\"].bool,\n style: _propTypes2[\"default\"].object,\n children: _propTypes2[\"default\"].node\n};\n\nScrollbars.defaultProps = {\n renderView: _defaultRenderElements.renderViewDefault,\n renderTrackHorizontal: _defaultRenderElements.renderTrackHorizontalDefault,\n renderTrackVertical: _defaultRenderElements.renderTrackVerticalDefault,\n renderThumbHorizontal: _defaultRenderElements.renderThumbHorizontalDefault,\n renderThumbVertical: _defaultRenderElements.renderThumbVerticalDefault,\n tagName: 'div',\n thumbMinSize: 30,\n hideTracksWhenNotNeeded: false,\n autoHide: false,\n autoHideTimeout: 1000,\n autoHideDuration: 200,\n autoHeight: false,\n autoHeightMin: 0,\n autoHeightMax: 200,\n universal: false\n};\n\n//# sourceURL=webpack://@opensumi/ide-components/../../node_modules/react-custom-scrollbars/lib/Scrollbars/index.js?");
4530
+ eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n\nvar _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; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _raf2 = __webpack_require__(/*! raf */ \"../../node_modules/raf/index.js\");\n\nvar _raf3 = _interopRequireDefault(_raf2);\n\nvar _domCss = __webpack_require__(/*! dom-css */ \"../../node_modules/dom-css/index.js\");\n\nvar _domCss2 = _interopRequireDefault(_domCss);\n\nvar _react = __webpack_require__(/*! react */ \"../../node_modules/react/index.js\");\n\nvar _propTypes = __webpack_require__(/*! prop-types */ \"../../node_modules/prop-types/index.js\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _isString = __webpack_require__(/*! ../utils/isString */ \"../../node_modules/react-custom-scrollbars-2/lib/utils/isString.js\");\n\nvar _isString2 = _interopRequireDefault(_isString);\n\nvar _getScrollbarWidth = __webpack_require__(/*! ../utils/getScrollbarWidth */ \"../../node_modules/react-custom-scrollbars-2/lib/utils/getScrollbarWidth.js\");\n\nvar _getScrollbarWidth2 = _interopRequireDefault(_getScrollbarWidth);\n\nvar _returnFalse = __webpack_require__(/*! ../utils/returnFalse */ \"../../node_modules/react-custom-scrollbars-2/lib/utils/returnFalse.js\");\n\nvar _returnFalse2 = _interopRequireDefault(_returnFalse);\n\nvar _getInnerWidth = __webpack_require__(/*! ../utils/getInnerWidth */ \"../../node_modules/react-custom-scrollbars-2/lib/utils/getInnerWidth.js\");\n\nvar _getInnerWidth2 = _interopRequireDefault(_getInnerWidth);\n\nvar _getInnerHeight = __webpack_require__(/*! ../utils/getInnerHeight */ \"../../node_modules/react-custom-scrollbars-2/lib/utils/getInnerHeight.js\");\n\nvar _getInnerHeight2 = _interopRequireDefault(_getInnerHeight);\n\nvar _styles = __webpack_require__(/*! ./styles */ \"../../node_modules/react-custom-scrollbars-2/lib/Scrollbars/styles.js\");\n\nvar _defaultRenderElements = __webpack_require__(/*! ./defaultRenderElements */ \"../../node_modules/react-custom-scrollbars-2/lib/Scrollbars/defaultRenderElements.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Scrollbars = function (_Component) {\n _inherits(Scrollbars, _Component);\n\n function Scrollbars(props) {\n var _ref;\n\n _classCallCheck(this, Scrollbars);\n\n for (var _len = arguments.length, rest = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n var _this = _possibleConstructorReturn(this, (_ref = Scrollbars.__proto__ || Object.getPrototypeOf(Scrollbars)).call.apply(_ref, [this, props].concat(rest)));\n\n _this.getScrollLeft = _this.getScrollLeft.bind(_this);\n _this.getScrollTop = _this.getScrollTop.bind(_this);\n _this.getScrollWidth = _this.getScrollWidth.bind(_this);\n _this.getScrollHeight = _this.getScrollHeight.bind(_this);\n _this.getClientWidth = _this.getClientWidth.bind(_this);\n _this.getClientHeight = _this.getClientHeight.bind(_this);\n _this.getValues = _this.getValues.bind(_this);\n _this.getThumbHorizontalWidth = _this.getThumbHorizontalWidth.bind(_this);\n _this.getThumbVerticalHeight = _this.getThumbVerticalHeight.bind(_this);\n _this.getScrollLeftForOffset = _this.getScrollLeftForOffset.bind(_this);\n _this.getScrollTopForOffset = _this.getScrollTopForOffset.bind(_this);\n\n _this.scrollLeft = _this.scrollLeft.bind(_this);\n _this.scrollTop = _this.scrollTop.bind(_this);\n _this.scrollToLeft = _this.scrollToLeft.bind(_this);\n _this.scrollToTop = _this.scrollToTop.bind(_this);\n _this.scrollToRight = _this.scrollToRight.bind(_this);\n _this.scrollToBottom = _this.scrollToBottom.bind(_this);\n\n _this.handleTrackMouseEnter = _this.handleTrackMouseEnter.bind(_this);\n _this.handleTrackMouseLeave = _this.handleTrackMouseLeave.bind(_this);\n _this.handleHorizontalTrackMouseDown = _this.handleHorizontalTrackMouseDown.bind(_this);\n _this.handleVerticalTrackMouseDown = _this.handleVerticalTrackMouseDown.bind(_this);\n _this.handleHorizontalThumbMouseDown = _this.handleHorizontalThumbMouseDown.bind(_this);\n _this.handleVerticalThumbMouseDown = _this.handleVerticalThumbMouseDown.bind(_this);\n _this.handleWindowResize = _this.handleWindowResize.bind(_this);\n _this.handleScroll = _this.handleScroll.bind(_this);\n _this.handleDrag = _this.handleDrag.bind(_this);\n _this.handleDragEnd = _this.handleDragEnd.bind(_this);\n\n _this.state = {\n didMountUniversal: false\n };\n return _this;\n }\n\n _createClass(Scrollbars, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.addListeners();\n this.update();\n this.componentDidMountUniversal();\n }\n }, {\n key: 'componentDidMountUniversal',\n value: function componentDidMountUniversal() {\n // eslint-disable-line react/sort-comp\n var universal = this.props.universal;\n\n if (!universal) return;\n this.setState({ didMountUniversal: true });\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n this.update();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.removeListeners();\n (0, _raf2.cancel)(this.requestFrame);\n clearTimeout(this.hideTracksTimeout);\n clearInterval(this.detectScrollingInterval);\n }\n }, {\n key: 'getScrollLeft',\n value: function getScrollLeft() {\n if (!this.view) return 0;\n return this.view.scrollLeft;\n }\n }, {\n key: 'getScrollTop',\n value: function getScrollTop() {\n if (!this.view) return 0;\n return this.view.scrollTop;\n }\n }, {\n key: 'getScrollWidth',\n value: function getScrollWidth() {\n if (!this.view) return 0;\n return this.view.scrollWidth;\n }\n }, {\n key: 'getScrollHeight',\n value: function getScrollHeight() {\n if (!this.view) return 0;\n return this.view.scrollHeight;\n }\n }, {\n key: 'getClientWidth',\n value: function getClientWidth() {\n if (!this.view) return 0;\n return this.view.clientWidth;\n }\n }, {\n key: 'getClientHeight',\n value: function getClientHeight() {\n if (!this.view) return 0;\n return this.view.clientHeight;\n }\n }, {\n key: 'getValues',\n value: function getValues() {\n var _ref2 = this.view || {},\n _ref2$scrollLeft = _ref2.scrollLeft,\n scrollLeft = _ref2$scrollLeft === undefined ? 0 : _ref2$scrollLeft,\n _ref2$scrollTop = _ref2.scrollTop,\n scrollTop = _ref2$scrollTop === undefined ? 0 : _ref2$scrollTop,\n _ref2$scrollWidth = _ref2.scrollWidth,\n scrollWidth = _ref2$scrollWidth === undefined ? 0 : _ref2$scrollWidth,\n _ref2$scrollHeight = _ref2.scrollHeight,\n scrollHeight = _ref2$scrollHeight === undefined ? 0 : _ref2$scrollHeight,\n _ref2$clientWidth = _ref2.clientWidth,\n clientWidth = _ref2$clientWidth === undefined ? 0 : _ref2$clientWidth,\n _ref2$clientHeight = _ref2.clientHeight,\n clientHeight = _ref2$clientHeight === undefined ? 0 : _ref2$clientHeight;\n\n return {\n left: scrollLeft / (scrollWidth - clientWidth) || 0,\n top: scrollTop / (scrollHeight - clientHeight) || 0,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollWidth: scrollWidth,\n scrollHeight: scrollHeight,\n clientWidth: clientWidth,\n clientHeight: clientHeight\n };\n }\n }, {\n key: 'getThumbHorizontalWidth',\n value: function getThumbHorizontalWidth() {\n var _props = this.props,\n thumbSize = _props.thumbSize,\n thumbMinSize = _props.thumbMinSize;\n var _view = this.view,\n scrollWidth = _view.scrollWidth,\n clientWidth = _view.clientWidth;\n\n var trackWidth = (0, _getInnerWidth2[\"default\"])(this.trackHorizontal);\n var width = Math.ceil(clientWidth / scrollWidth * trackWidth);\n if (trackWidth <= width) return 0;\n if (thumbSize) return thumbSize;\n return Math.max(width, thumbMinSize);\n }\n }, {\n key: 'getThumbVerticalHeight',\n value: function getThumbVerticalHeight() {\n var _props2 = this.props,\n thumbSize = _props2.thumbSize,\n thumbMinSize = _props2.thumbMinSize;\n var _view2 = this.view,\n scrollHeight = _view2.scrollHeight,\n clientHeight = _view2.clientHeight;\n\n var trackHeight = (0, _getInnerHeight2[\"default\"])(this.trackVertical);\n var height = Math.ceil(clientHeight / scrollHeight * trackHeight);\n if (trackHeight <= height) return 0;\n if (thumbSize) return thumbSize;\n return Math.max(height, thumbMinSize);\n }\n }, {\n key: 'getScrollLeftForOffset',\n value: function getScrollLeftForOffset(offset) {\n var _view3 = this.view,\n scrollWidth = _view3.scrollWidth,\n clientWidth = _view3.clientWidth;\n\n var trackWidth = (0, _getInnerWidth2[\"default\"])(this.trackHorizontal);\n var thumbWidth = this.getThumbHorizontalWidth();\n return offset / (trackWidth - thumbWidth) * (scrollWidth - clientWidth);\n }\n }, {\n key: 'getScrollTopForOffset',\n value: function getScrollTopForOffset(offset) {\n var _view4 = this.view,\n scrollHeight = _view4.scrollHeight,\n clientHeight = _view4.clientHeight;\n\n var trackHeight = (0, _getInnerHeight2[\"default\"])(this.trackVertical);\n var thumbHeight = this.getThumbVerticalHeight();\n return offset / (trackHeight - thumbHeight) * (scrollHeight - clientHeight);\n }\n }, {\n key: 'scrollLeft',\n value: function scrollLeft() {\n var left = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (!this.view) return;\n this.view.scrollLeft = left;\n }\n }, {\n key: 'scrollTop',\n value: function scrollTop() {\n var top = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (!this.view) return;\n this.view.scrollTop = top;\n }\n }, {\n key: 'scrollToLeft',\n value: function scrollToLeft() {\n if (!this.view) return;\n this.view.scrollLeft = 0;\n }\n }, {\n key: 'scrollToTop',\n value: function scrollToTop() {\n if (!this.view) return;\n this.view.scrollTop = 0;\n }\n }, {\n key: 'scrollToRight',\n value: function scrollToRight() {\n if (!this.view) return;\n this.view.scrollLeft = this.view.scrollWidth;\n }\n }, {\n key: 'scrollToBottom',\n value: function scrollToBottom() {\n if (!this.view) return;\n this.view.scrollTop = this.view.scrollHeight;\n }\n }, {\n key: 'addListeners',\n value: function addListeners() {\n /* istanbul ignore if */\n if (typeof document === 'undefined' || !this.view) return;\n var view = this.view,\n trackHorizontal = this.trackHorizontal,\n trackVertical = this.trackVertical,\n thumbHorizontal = this.thumbHorizontal,\n thumbVertical = this.thumbVertical;\n\n view.addEventListener('scroll', this.handleScroll);\n if (!(0, _getScrollbarWidth2[\"default\"])()) return;\n trackHorizontal.addEventListener('mouseenter', this.handleTrackMouseEnter);\n trackHorizontal.addEventListener('mouseleave', this.handleTrackMouseLeave);\n trackHorizontal.addEventListener('mousedown', this.handleHorizontalTrackMouseDown);\n trackVertical.addEventListener('mouseenter', this.handleTrackMouseEnter);\n trackVertical.addEventListener('mouseleave', this.handleTrackMouseLeave);\n trackVertical.addEventListener('mousedown', this.handleVerticalTrackMouseDown);\n thumbHorizontal.addEventListener('mousedown', this.handleHorizontalThumbMouseDown);\n thumbVertical.addEventListener('mousedown', this.handleVerticalThumbMouseDown);\n window.addEventListener('resize', this.handleWindowResize);\n }\n }, {\n key: 'removeListeners',\n value: function removeListeners() {\n /* istanbul ignore if */\n if (typeof document === 'undefined' || !this.view) return;\n var view = this.view,\n trackHorizontal = this.trackHorizontal,\n trackVertical = this.trackVertical,\n thumbHorizontal = this.thumbHorizontal,\n thumbVertical = this.thumbVertical;\n\n view.removeEventListener('scroll', this.handleScroll);\n if (!(0, _getScrollbarWidth2[\"default\"])()) return;\n trackHorizontal.removeEventListener('mouseenter', this.handleTrackMouseEnter);\n trackHorizontal.removeEventListener('mouseleave', this.handleTrackMouseLeave);\n trackHorizontal.removeEventListener('mousedown', this.handleHorizontalTrackMouseDown);\n trackVertical.removeEventListener('mouseenter', this.handleTrackMouseEnter);\n trackVertical.removeEventListener('mouseleave', this.handleTrackMouseLeave);\n trackVertical.removeEventListener('mousedown', this.handleVerticalTrackMouseDown);\n thumbHorizontal.removeEventListener('mousedown', this.handleHorizontalThumbMouseDown);\n thumbVertical.removeEventListener('mousedown', this.handleVerticalThumbMouseDown);\n window.removeEventListener('resize', this.handleWindowResize);\n // Possibly setup by `handleDragStart`\n this.teardownDragging();\n }\n }, {\n key: 'handleScroll',\n value: function handleScroll(event) {\n var _this2 = this;\n\n var _props3 = this.props,\n onScroll = _props3.onScroll,\n onScrollFrame = _props3.onScrollFrame;\n\n if (onScroll) onScroll(event);\n this.update(function (values) {\n var scrollLeft = values.scrollLeft,\n scrollTop = values.scrollTop;\n\n _this2.viewScrollLeft = scrollLeft;\n _this2.viewScrollTop = scrollTop;\n if (onScrollFrame) onScrollFrame(values);\n });\n this.detectScrolling();\n }\n }, {\n key: 'handleScrollStart',\n value: function handleScrollStart() {\n var onScrollStart = this.props.onScrollStart;\n\n if (onScrollStart) onScrollStart();\n this.handleScrollStartAutoHide();\n }\n }, {\n key: 'handleScrollStartAutoHide',\n value: function handleScrollStartAutoHide() {\n var autoHide = this.props.autoHide;\n\n if (!autoHide) return;\n this.showTracks();\n }\n }, {\n key: 'handleScrollStop',\n value: function handleScrollStop() {\n var onScrollStop = this.props.onScrollStop;\n\n if (onScrollStop) onScrollStop();\n this.handleScrollStopAutoHide();\n }\n }, {\n key: 'handleScrollStopAutoHide',\n value: function handleScrollStopAutoHide() {\n var autoHide = this.props.autoHide;\n\n if (!autoHide) return;\n this.hideTracks();\n }\n }, {\n key: 'handleWindowResize',\n value: function handleWindowResize() {\n (0, _getScrollbarWidth2[\"default\"])(false);\n this.forceUpdate();\n }\n }, {\n key: 'handleHorizontalTrackMouseDown',\n value: function handleHorizontalTrackMouseDown(event) {\n event.preventDefault();\n var target = event.target,\n clientX = event.clientX;\n\n var _target$getBoundingCl = target.getBoundingClientRect(),\n targetLeft = _target$getBoundingCl.left;\n\n var thumbWidth = this.getThumbHorizontalWidth();\n var offset = Math.abs(targetLeft - clientX) - thumbWidth / 2;\n this.view.scrollLeft = this.getScrollLeftForOffset(offset);\n }\n }, {\n key: 'handleVerticalTrackMouseDown',\n value: function handleVerticalTrackMouseDown(event) {\n event.preventDefault();\n var target = event.target,\n clientY = event.clientY;\n\n var _target$getBoundingCl2 = target.getBoundingClientRect(),\n targetTop = _target$getBoundingCl2.top;\n\n var thumbHeight = this.getThumbVerticalHeight();\n var offset = Math.abs(targetTop - clientY) - thumbHeight / 2;\n this.view.scrollTop = this.getScrollTopForOffset(offset);\n }\n }, {\n key: 'handleHorizontalThumbMouseDown',\n value: function handleHorizontalThumbMouseDown(event) {\n event.preventDefault();\n this.handleDragStart(event);\n var target = event.target,\n clientX = event.clientX;\n var offsetWidth = target.offsetWidth;\n\n var _target$getBoundingCl3 = target.getBoundingClientRect(),\n left = _target$getBoundingCl3.left;\n\n this.prevPageX = offsetWidth - (clientX - left);\n }\n }, {\n key: 'handleVerticalThumbMouseDown',\n value: function handleVerticalThumbMouseDown(event) {\n event.preventDefault();\n this.handleDragStart(event);\n var target = event.target,\n clientY = event.clientY;\n var offsetHeight = target.offsetHeight;\n\n var _target$getBoundingCl4 = target.getBoundingClientRect(),\n top = _target$getBoundingCl4.top;\n\n this.prevPageY = offsetHeight - (clientY - top);\n }\n }, {\n key: 'setupDragging',\n value: function setupDragging() {\n (0, _domCss2[\"default\"])(document.body, _styles.disableSelectStyle);\n document.addEventListener('mousemove', this.handleDrag);\n document.addEventListener('mouseup', this.handleDragEnd);\n document.onselectstart = _returnFalse2[\"default\"];\n }\n }, {\n key: 'teardownDragging',\n value: function teardownDragging() {\n (0, _domCss2[\"default\"])(document.body, _styles.disableSelectStyleReset);\n document.removeEventListener('mousemove', this.handleDrag);\n document.removeEventListener('mouseup', this.handleDragEnd);\n document.onselectstart = undefined;\n }\n }, {\n key: 'handleDragStart',\n value: function handleDragStart(event) {\n this.dragging = true;\n event.stopImmediatePropagation();\n this.setupDragging();\n }\n }, {\n key: 'handleDrag',\n value: function handleDrag(event) {\n if (this.prevPageX) {\n var clientX = event.clientX;\n\n var _trackHorizontal$getB = this.trackHorizontal.getBoundingClientRect(),\n trackLeft = _trackHorizontal$getB.left;\n\n var thumbWidth = this.getThumbHorizontalWidth();\n var clickPosition = thumbWidth - this.prevPageX;\n var offset = -trackLeft + clientX - clickPosition;\n this.view.scrollLeft = this.getScrollLeftForOffset(offset);\n }\n if (this.prevPageY) {\n var clientY = event.clientY;\n\n var _trackVertical$getBou = this.trackVertical.getBoundingClientRect(),\n trackTop = _trackVertical$getBou.top;\n\n var thumbHeight = this.getThumbVerticalHeight();\n var _clickPosition = thumbHeight - this.prevPageY;\n var _offset = -trackTop + clientY - _clickPosition;\n this.view.scrollTop = this.getScrollTopForOffset(_offset);\n }\n return false;\n }\n }, {\n key: 'handleDragEnd',\n value: function handleDragEnd() {\n this.dragging = false;\n this.prevPageX = this.prevPageY = 0;\n this.teardownDragging();\n this.handleDragEndAutoHide();\n }\n }, {\n key: 'handleDragEndAutoHide',\n value: function handleDragEndAutoHide() {\n var autoHide = this.props.autoHide;\n\n if (!autoHide) return;\n this.hideTracks();\n }\n }, {\n key: 'handleTrackMouseEnter',\n value: function handleTrackMouseEnter() {\n this.trackMouseOver = true;\n this.handleTrackMouseEnterAutoHide();\n }\n }, {\n key: 'handleTrackMouseEnterAutoHide',\n value: function handleTrackMouseEnterAutoHide() {\n var autoHide = this.props.autoHide;\n\n if (!autoHide) return;\n this.showTracks();\n }\n }, {\n key: 'handleTrackMouseLeave',\n value: function handleTrackMouseLeave() {\n this.trackMouseOver = false;\n this.handleTrackMouseLeaveAutoHide();\n }\n }, {\n key: 'handleTrackMouseLeaveAutoHide',\n value: function handleTrackMouseLeaveAutoHide() {\n var autoHide = this.props.autoHide;\n\n if (!autoHide) return;\n this.hideTracks();\n }\n }, {\n key: 'showTracks',\n value: function showTracks() {\n clearTimeout(this.hideTracksTimeout);\n (0, _domCss2[\"default\"])(this.trackHorizontal, { opacity: 1 });\n (0, _domCss2[\"default\"])(this.trackVertical, { opacity: 1 });\n }\n }, {\n key: 'hideTracks',\n value: function hideTracks() {\n var _this3 = this;\n\n if (this.dragging) return;\n if (this.scrolling) return;\n if (this.trackMouseOver) return;\n var autoHideTimeout = this.props.autoHideTimeout;\n\n clearTimeout(this.hideTracksTimeout);\n this.hideTracksTimeout = setTimeout(function () {\n (0, _domCss2[\"default\"])(_this3.trackHorizontal, { opacity: 0 });\n (0, _domCss2[\"default\"])(_this3.trackVertical, { opacity: 0 });\n }, autoHideTimeout);\n }\n }, {\n key: 'detectScrolling',\n value: function detectScrolling() {\n var _this4 = this;\n\n if (this.scrolling) return;\n this.scrolling = true;\n this.handleScrollStart();\n this.detectScrollingInterval = setInterval(function () {\n if (_this4.lastViewScrollLeft === _this4.viewScrollLeft && _this4.lastViewScrollTop === _this4.viewScrollTop) {\n clearInterval(_this4.detectScrollingInterval);\n _this4.scrolling = false;\n _this4.handleScrollStop();\n }\n _this4.lastViewScrollLeft = _this4.viewScrollLeft;\n _this4.lastViewScrollTop = _this4.viewScrollTop;\n }, 100);\n }\n }, {\n key: 'raf',\n value: function raf(callback) {\n var _this5 = this;\n\n if (this.requestFrame) _raf3[\"default\"].cancel(this.requestFrame);\n this.requestFrame = (0, _raf3[\"default\"])(function () {\n _this5.requestFrame = undefined;\n callback();\n });\n }\n }, {\n key: 'update',\n value: function update(callback) {\n var _this6 = this;\n\n this.raf(function () {\n return _this6._update(callback);\n });\n }\n }, {\n key: '_update',\n value: function _update(callback) {\n var _props4 = this.props,\n onUpdate = _props4.onUpdate,\n hideTracksWhenNotNeeded = _props4.hideTracksWhenNotNeeded;\n\n var values = this.getValues();\n if ((0, _getScrollbarWidth2[\"default\"])()) {\n var scrollLeft = values.scrollLeft,\n clientWidth = values.clientWidth,\n scrollWidth = values.scrollWidth;\n\n var trackHorizontalWidth = (0, _getInnerWidth2[\"default\"])(this.trackHorizontal);\n var thumbHorizontalWidth = this.getThumbHorizontalWidth();\n var thumbHorizontalX = scrollLeft / (scrollWidth - clientWidth) * (trackHorizontalWidth - thumbHorizontalWidth);\n var thumbHorizontalStyle = {\n width: thumbHorizontalWidth,\n transform: 'translateX(' + thumbHorizontalX + 'px)'\n };\n var scrollTop = values.scrollTop,\n clientHeight = values.clientHeight,\n scrollHeight = values.scrollHeight;\n\n var trackVerticalHeight = (0, _getInnerHeight2[\"default\"])(this.trackVertical);\n var thumbVerticalHeight = this.getThumbVerticalHeight();\n var thumbVerticalY = scrollTop / (scrollHeight - clientHeight) * (trackVerticalHeight - thumbVerticalHeight);\n var thumbVerticalStyle = {\n height: thumbVerticalHeight,\n transform: 'translateY(' + thumbVerticalY + 'px)'\n };\n if (hideTracksWhenNotNeeded) {\n var trackHorizontalStyle = {\n visibility: scrollWidth > clientWidth ? 'visible' : 'hidden'\n };\n var trackVerticalStyle = {\n visibility: scrollHeight > clientHeight ? 'visible' : 'hidden'\n };\n (0, _domCss2[\"default\"])(this.trackHorizontal, trackHorizontalStyle);\n (0, _domCss2[\"default\"])(this.trackVertical, trackVerticalStyle);\n }\n (0, _domCss2[\"default\"])(this.thumbHorizontal, thumbHorizontalStyle);\n (0, _domCss2[\"default\"])(this.thumbVertical, thumbVerticalStyle);\n }\n if (onUpdate) onUpdate(values);\n if (typeof callback !== 'function') return;\n callback(values);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this7 = this;\n\n var scrollbarWidth = (0, _getScrollbarWidth2[\"default\"])();\n /* eslint-disable no-unused-vars */\n\n var _props5 = this.props,\n onScroll = _props5.onScroll,\n onScrollFrame = _props5.onScrollFrame,\n onScrollStart = _props5.onScrollStart,\n onScrollStop = _props5.onScrollStop,\n onUpdate = _props5.onUpdate,\n renderView = _props5.renderView,\n renderTrackHorizontal = _props5.renderTrackHorizontal,\n renderTrackVertical = _props5.renderTrackVertical,\n renderThumbHorizontal = _props5.renderThumbHorizontal,\n renderThumbVertical = _props5.renderThumbVertical,\n tagName = _props5.tagName,\n hideTracksWhenNotNeeded = _props5.hideTracksWhenNotNeeded,\n autoHide = _props5.autoHide,\n autoHideTimeout = _props5.autoHideTimeout,\n autoHideDuration = _props5.autoHideDuration,\n thumbSize = _props5.thumbSize,\n thumbMinSize = _props5.thumbMinSize,\n universal = _props5.universal,\n autoHeight = _props5.autoHeight,\n autoHeightMin = _props5.autoHeightMin,\n autoHeightMax = _props5.autoHeightMax,\n style = _props5.style,\n children = _props5.children,\n props = _objectWithoutProperties(_props5, ['onScroll', 'onScrollFrame', 'onScrollStart', 'onScrollStop', 'onUpdate', 'renderView', 'renderTrackHorizontal', 'renderTrackVertical', 'renderThumbHorizontal', 'renderThumbVertical', 'tagName', 'hideTracksWhenNotNeeded', 'autoHide', 'autoHideTimeout', 'autoHideDuration', 'thumbSize', 'thumbMinSize', 'universal', 'autoHeight', 'autoHeightMin', 'autoHeightMax', 'style', 'children']);\n /* eslint-enable no-unused-vars */\n\n var didMountUniversal = this.state.didMountUniversal;\n\n\n var containerStyle = _extends({}, _styles.containerStyleDefault, autoHeight && _extends({}, _styles.containerStyleAutoHeight, {\n minHeight: autoHeightMin,\n maxHeight: autoHeightMax\n }), style);\n\n var viewStyle = _extends({}, _styles.viewStyleDefault, {\n // Hide scrollbars by setting a negative margin\n marginRight: scrollbarWidth ? -scrollbarWidth : 0,\n marginBottom: scrollbarWidth ? -scrollbarWidth : 0\n }, autoHeight && _extends({}, _styles.viewStyleAutoHeight, {\n // Add scrollbarWidth to autoHeight in order to compensate negative margins\n minHeight: (0, _isString2[\"default\"])(autoHeightMin) ? 'calc(' + autoHeightMin + ' + ' + scrollbarWidth + 'px)' : autoHeightMin + scrollbarWidth,\n maxHeight: (0, _isString2[\"default\"])(autoHeightMax) ? 'calc(' + autoHeightMax + ' + ' + scrollbarWidth + 'px)' : autoHeightMax + scrollbarWidth\n }), autoHeight && universal && !didMountUniversal && {\n minHeight: autoHeightMin,\n maxHeight: autoHeightMax\n }, universal && !didMountUniversal && _styles.viewStyleUniversalInitial);\n\n var trackAutoHeightStyle = {\n transition: 'opacity ' + autoHideDuration + 'ms',\n opacity: 0\n };\n\n var trackHorizontalStyle = _extends({}, _styles.trackHorizontalStyleDefault, autoHide && trackAutoHeightStyle, (!scrollbarWidth || universal && !didMountUniversal) && {\n display: 'none'\n });\n\n var trackVerticalStyle = _extends({}, _styles.trackVerticalStyleDefault, autoHide && trackAutoHeightStyle, (!scrollbarWidth || universal && !didMountUniversal) && {\n display: 'none'\n });\n\n return (0, _react.createElement)(tagName, _extends({}, props, { style: containerStyle, ref: function ref(_ref3) {\n _this7.container = _ref3;\n } }), [(0, _react.cloneElement)(renderView({ style: viewStyle }), { key: 'view', ref: function ref(_ref4) {\n _this7.view = _ref4;\n } }, children), (0, _react.cloneElement)(renderTrackHorizontal({ style: trackHorizontalStyle }), { key: 'trackHorizontal', ref: function ref(_ref5) {\n _this7.trackHorizontal = _ref5;\n } }, (0, _react.cloneElement)(renderThumbHorizontal({ style: _styles.thumbHorizontalStyleDefault }), { ref: function ref(_ref6) {\n _this7.thumbHorizontal = _ref6;\n } })), (0, _react.cloneElement)(renderTrackVertical({ style: trackVerticalStyle }), { key: 'trackVertical', ref: function ref(_ref7) {\n _this7.trackVertical = _ref7;\n } }, (0, _react.cloneElement)(renderThumbVertical({ style: _styles.thumbVerticalStyleDefault }), { ref: function ref(_ref8) {\n _this7.thumbVertical = _ref8;\n } }))]);\n }\n }]);\n\n return Scrollbars;\n}(_react.Component);\n\nexports[\"default\"] = Scrollbars;\n\n\nScrollbars.propTypes = {\n onScroll: _propTypes2[\"default\"].func,\n onScrollFrame: _propTypes2[\"default\"].func,\n onScrollStart: _propTypes2[\"default\"].func,\n onScrollStop: _propTypes2[\"default\"].func,\n onUpdate: _propTypes2[\"default\"].func,\n renderView: _propTypes2[\"default\"].func,\n renderTrackHorizontal: _propTypes2[\"default\"].func,\n renderTrackVertical: _propTypes2[\"default\"].func,\n renderThumbHorizontal: _propTypes2[\"default\"].func,\n renderThumbVertical: _propTypes2[\"default\"].func,\n tagName: _propTypes2[\"default\"].string,\n thumbSize: _propTypes2[\"default\"].number,\n thumbMinSize: _propTypes2[\"default\"].number,\n hideTracksWhenNotNeeded: _propTypes2[\"default\"].bool,\n autoHide: _propTypes2[\"default\"].bool,\n autoHideTimeout: _propTypes2[\"default\"].number,\n autoHideDuration: _propTypes2[\"default\"].number,\n autoHeight: _propTypes2[\"default\"].bool,\n autoHeightMin: _propTypes2[\"default\"].oneOfType([_propTypes2[\"default\"].number, _propTypes2[\"default\"].string]),\n autoHeightMax: _propTypes2[\"default\"].oneOfType([_propTypes2[\"default\"].number, _propTypes2[\"default\"].string]),\n universal: _propTypes2[\"default\"].bool,\n style: _propTypes2[\"default\"].object,\n children: _propTypes2[\"default\"].node\n};\n\nScrollbars.defaultProps = {\n renderView: _defaultRenderElements.renderViewDefault,\n renderTrackHorizontal: _defaultRenderElements.renderTrackHorizontalDefault,\n renderTrackVertical: _defaultRenderElements.renderTrackVerticalDefault,\n renderThumbHorizontal: _defaultRenderElements.renderThumbHorizontalDefault,\n renderThumbVertical: _defaultRenderElements.renderThumbVerticalDefault,\n tagName: 'div',\n thumbMinSize: 30,\n hideTracksWhenNotNeeded: false,\n autoHide: false,\n autoHideTimeout: 1000,\n autoHideDuration: 200,\n autoHeight: false,\n autoHeightMin: 0,\n autoHeightMax: 200,\n universal: false\n};\n\n//# sourceURL=webpack://@opensumi/ide-components/../../node_modules/react-custom-scrollbars-2/lib/Scrollbars/index.js?");
4531
4531
 
4532
4532
  /***/ }),
4533
4533
 
4534
- /***/ "../../node_modules/react-custom-scrollbars/lib/Scrollbars/styles.js":
4535
- /*!***************************************************************************!*\
4536
- !*** ../../node_modules/react-custom-scrollbars/lib/Scrollbars/styles.js ***!
4537
- \***************************************************************************/
4534
+ /***/ "../../node_modules/react-custom-scrollbars-2/lib/Scrollbars/styles.js":
4535
+ /*!*****************************************************************************!*\
4536
+ !*** ../../node_modules/react-custom-scrollbars-2/lib/Scrollbars/styles.js ***!
4537
+ \*****************************************************************************/
4538
4538
  /***/ ((__unused_webpack_module, exports) => {
4539
4539
 
4540
4540
  "use strict";
4541
- eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar containerStyleDefault = exports.containerStyleDefault = {\n position: 'relative',\n overflow: 'hidden',\n width: '100%',\n height: '100%'\n};\n\n// Overrides containerStyleDefault properties\nvar containerStyleAutoHeight = exports.containerStyleAutoHeight = {\n height: 'auto'\n};\n\nvar viewStyleDefault = exports.viewStyleDefault = {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n overflow: 'scroll',\n WebkitOverflowScrolling: 'touch'\n};\n\n// Overrides viewStyleDefault properties\nvar viewStyleAutoHeight = exports.viewStyleAutoHeight = {\n position: 'relative',\n top: undefined,\n left: undefined,\n right: undefined,\n bottom: undefined\n};\n\nvar viewStyleUniversalInitial = exports.viewStyleUniversalInitial = {\n overflow: 'hidden',\n marginRight: 0,\n marginBottom: 0\n};\n\nvar trackHorizontalStyleDefault = exports.trackHorizontalStyleDefault = {\n position: 'absolute',\n height: 6\n};\n\nvar trackVerticalStyleDefault = exports.trackVerticalStyleDefault = {\n position: 'absolute',\n width: 6\n};\n\nvar thumbHorizontalStyleDefault = exports.thumbHorizontalStyleDefault = {\n position: 'relative',\n display: 'block',\n height: '100%'\n};\n\nvar thumbVerticalStyleDefault = exports.thumbVerticalStyleDefault = {\n position: 'relative',\n display: 'block',\n width: '100%'\n};\n\nvar disableSelectStyle = exports.disableSelectStyle = {\n userSelect: 'none'\n};\n\nvar disableSelectStyleReset = exports.disableSelectStyleReset = {\n userSelect: ''\n};\n\n//# sourceURL=webpack://@opensumi/ide-components/../../node_modules/react-custom-scrollbars/lib/Scrollbars/styles.js?");
4541
+ eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar containerStyleDefault = exports.containerStyleDefault = {\n position: 'relative',\n overflow: 'hidden',\n width: '100%',\n height: '100%'\n};\n\n// Overrides containerStyleDefault properties\nvar containerStyleAutoHeight = exports.containerStyleAutoHeight = {\n height: 'auto'\n};\n\nvar viewStyleDefault = exports.viewStyleDefault = {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n overflow: 'scroll',\n WebkitOverflowScrolling: 'touch'\n};\n\n// Overrides viewStyleDefault properties\nvar viewStyleAutoHeight = exports.viewStyleAutoHeight = {\n position: 'relative',\n top: undefined,\n left: undefined,\n right: undefined,\n bottom: undefined\n};\n\nvar viewStyleUniversalInitial = exports.viewStyleUniversalInitial = {\n overflow: 'hidden',\n marginRight: 0,\n marginBottom: 0\n};\n\nvar trackHorizontalStyleDefault = exports.trackHorizontalStyleDefault = {\n position: 'absolute',\n height: 6\n};\n\nvar trackVerticalStyleDefault = exports.trackVerticalStyleDefault = {\n position: 'absolute',\n width: 6\n};\n\nvar thumbHorizontalStyleDefault = exports.thumbHorizontalStyleDefault = {\n position: 'relative',\n display: 'block',\n height: '100%'\n};\n\nvar thumbVerticalStyleDefault = exports.thumbVerticalStyleDefault = {\n position: 'relative',\n display: 'block',\n width: '100%'\n};\n\nvar disableSelectStyle = exports.disableSelectStyle = {\n userSelect: 'none'\n};\n\nvar disableSelectStyleReset = exports.disableSelectStyleReset = {\n userSelect: ''\n};\n\n//# sourceURL=webpack://@opensumi/ide-components/../../node_modules/react-custom-scrollbars-2/lib/Scrollbars/styles.js?");
4542
4542
 
4543
4543
  /***/ }),
4544
4544
 
4545
- /***/ "../../node_modules/react-custom-scrollbars/lib/index.js":
4546
- /*!***************************************************************!*\
4547
- !*** ../../node_modules/react-custom-scrollbars/lib/index.js ***!
4548
- \***************************************************************/
4545
+ /***/ "../../node_modules/react-custom-scrollbars-2/lib/index.js":
4546
+ /*!*****************************************************************!*\
4547
+ !*** ../../node_modules/react-custom-scrollbars-2/lib/index.js ***!
4548
+ \*****************************************************************/
4549
4549
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4550
4550
 
4551
4551
  "use strict";
4552
- eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Scrollbars = undefined;\n\nvar _Scrollbars = __webpack_require__(/*! ./Scrollbars */ \"../../node_modules/react-custom-scrollbars/lib/Scrollbars/index.js\");\n\nvar _Scrollbars2 = _interopRequireDefault(_Scrollbars);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nexports[\"default\"] = _Scrollbars2[\"default\"];\nexports.Scrollbars = _Scrollbars2[\"default\"];\n\n//# sourceURL=webpack://@opensumi/ide-components/../../node_modules/react-custom-scrollbars/lib/index.js?");
4552
+ eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Scrollbars = undefined;\n\nvar _Scrollbars = __webpack_require__(/*! ./Scrollbars */ \"../../node_modules/react-custom-scrollbars-2/lib/Scrollbars/index.js\");\n\nvar _Scrollbars2 = _interopRequireDefault(_Scrollbars);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nexports[\"default\"] = _Scrollbars2[\"default\"];\nexports.Scrollbars = _Scrollbars2[\"default\"];\n\n//# sourceURL=webpack://@opensumi/ide-components/../../node_modules/react-custom-scrollbars-2/lib/index.js?");
4553
4553
 
4554
4554
  /***/ }),
4555
4555
 
4556
- /***/ "../../node_modules/react-custom-scrollbars/lib/utils/getInnerHeight.js":
4557
- /*!******************************************************************************!*\
4558
- !*** ../../node_modules/react-custom-scrollbars/lib/utils/getInnerHeight.js ***!
4559
- \******************************************************************************/
4556
+ /***/ "../../node_modules/react-custom-scrollbars-2/lib/utils/getInnerHeight.js":
4557
+ /*!********************************************************************************!*\
4558
+ !*** ../../node_modules/react-custom-scrollbars-2/lib/utils/getInnerHeight.js ***!
4559
+ \********************************************************************************/
4560
4560
  /***/ ((__unused_webpack_module, exports) => {
4561
4561
 
4562
4562
  "use strict";
4563
- eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = getInnerHeight;\nfunction getInnerHeight(el) {\n var clientHeight = el.clientHeight;\n\n var _getComputedStyle = getComputedStyle(el),\n paddingTop = _getComputedStyle.paddingTop,\n paddingBottom = _getComputedStyle.paddingBottom;\n\n return clientHeight - parseFloat(paddingTop) - parseFloat(paddingBottom);\n}\n\n//# sourceURL=webpack://@opensumi/ide-components/../../node_modules/react-custom-scrollbars/lib/utils/getInnerHeight.js?");
4563
+ eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = getInnerHeight;\nfunction getInnerHeight(el) {\n var clientHeight = el.clientHeight;\n\n var _getComputedStyle = getComputedStyle(el),\n paddingTop = _getComputedStyle.paddingTop,\n paddingBottom = _getComputedStyle.paddingBottom;\n\n return clientHeight - parseFloat(paddingTop) - parseFloat(paddingBottom);\n}\n\n//# sourceURL=webpack://@opensumi/ide-components/../../node_modules/react-custom-scrollbars-2/lib/utils/getInnerHeight.js?");
4564
4564
 
4565
4565
  /***/ }),
4566
4566
 
4567
- /***/ "../../node_modules/react-custom-scrollbars/lib/utils/getInnerWidth.js":
4568
- /*!*****************************************************************************!*\
4569
- !*** ../../node_modules/react-custom-scrollbars/lib/utils/getInnerWidth.js ***!
4570
- \*****************************************************************************/
4567
+ /***/ "../../node_modules/react-custom-scrollbars-2/lib/utils/getInnerWidth.js":
4568
+ /*!*******************************************************************************!*\
4569
+ !*** ../../node_modules/react-custom-scrollbars-2/lib/utils/getInnerWidth.js ***!
4570
+ \*******************************************************************************/
4571
4571
  /***/ ((__unused_webpack_module, exports) => {
4572
4572
 
4573
4573
  "use strict";
4574
- eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = getInnerWidth;\nfunction getInnerWidth(el) {\n var clientWidth = el.clientWidth;\n\n var _getComputedStyle = getComputedStyle(el),\n paddingLeft = _getComputedStyle.paddingLeft,\n paddingRight = _getComputedStyle.paddingRight;\n\n return clientWidth - parseFloat(paddingLeft) - parseFloat(paddingRight);\n}\n\n//# sourceURL=webpack://@opensumi/ide-components/../../node_modules/react-custom-scrollbars/lib/utils/getInnerWidth.js?");
4574
+ eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = getInnerWidth;\nfunction getInnerWidth(el) {\n var clientWidth = el.clientWidth;\n\n var _getComputedStyle = getComputedStyle(el),\n paddingLeft = _getComputedStyle.paddingLeft,\n paddingRight = _getComputedStyle.paddingRight;\n\n return clientWidth - parseFloat(paddingLeft) - parseFloat(paddingRight);\n}\n\n//# sourceURL=webpack://@opensumi/ide-components/../../node_modules/react-custom-scrollbars-2/lib/utils/getInnerWidth.js?");
4575
4575
 
4576
4576
  /***/ }),
4577
4577
 
4578
- /***/ "../../node_modules/react-custom-scrollbars/lib/utils/getScrollbarWidth.js":
4579
- /*!*********************************************************************************!*\
4580
- !*** ../../node_modules/react-custom-scrollbars/lib/utils/getScrollbarWidth.js ***!
4581
- \*********************************************************************************/
4578
+ /***/ "../../node_modules/react-custom-scrollbars-2/lib/utils/getScrollbarWidth.js":
4579
+ /*!***********************************************************************************!*\
4580
+ !*** ../../node_modules/react-custom-scrollbars-2/lib/utils/getScrollbarWidth.js ***!
4581
+ \***********************************************************************************/
4582
4582
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
4583
4583
 
4584
4584
  "use strict";
4585
- eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = getScrollbarWidth;\n\nvar _domCss = __webpack_require__(/*! dom-css */ \"../../node_modules/dom-css/index.js\");\n\nvar _domCss2 = _interopRequireDefault(_domCss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar scrollbarWidth = false;\n\nfunction getScrollbarWidth() {\n if (scrollbarWidth !== false) return scrollbarWidth;\n /* istanbul ignore else */\n if (typeof document !== 'undefined') {\n var div = document.createElement('div');\n (0, _domCss2[\"default\"])(div, {\n width: 100,\n height: 100,\n position: 'absolute',\n top: -9999,\n overflow: 'scroll',\n MsOverflowStyle: 'scrollbar'\n });\n document.body.appendChild(div);\n scrollbarWidth = div.offsetWidth - div.clientWidth;\n document.body.removeChild(div);\n } else {\n scrollbarWidth = 0;\n }\n return scrollbarWidth || 0;\n}\n\n//# sourceURL=webpack://@opensumi/ide-components/../../node_modules/react-custom-scrollbars/lib/utils/getScrollbarWidth.js?");
4585
+ eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = getScrollbarWidth;\n\nvar _domCss = __webpack_require__(/*! dom-css */ \"../../node_modules/dom-css/index.js\");\n\nvar _domCss2 = _interopRequireDefault(_domCss);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar scrollbarWidth = false;\n\nfunction getScrollbarWidth() {\n var cacheEnabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n if (cacheEnabled && scrollbarWidth !== false) return scrollbarWidth;\n /* istanbul ignore else */\n if (typeof document !== 'undefined') {\n var div = document.createElement('div');\n (0, _domCss2[\"default\"])(div, {\n width: 100,\n height: 100,\n position: 'absolute',\n top: -9999,\n overflow: 'scroll',\n MsOverflowStyle: 'scrollbar'\n });\n document.body.appendChild(div);\n scrollbarWidth = div.offsetWidth - div.clientWidth;\n document.body.removeChild(div);\n } else {\n scrollbarWidth = 0;\n }\n return scrollbarWidth || 0;\n}\n\n//# sourceURL=webpack://@opensumi/ide-components/../../node_modules/react-custom-scrollbars-2/lib/utils/getScrollbarWidth.js?");
4586
4586
 
4587
4587
  /***/ }),
4588
4588
 
4589
- /***/ "../../node_modules/react-custom-scrollbars/lib/utils/isString.js":
4590
- /*!************************************************************************!*\
4591
- !*** ../../node_modules/react-custom-scrollbars/lib/utils/isString.js ***!
4592
- \************************************************************************/
4589
+ /***/ "../../node_modules/react-custom-scrollbars-2/lib/utils/isString.js":
4590
+ /*!**************************************************************************!*\
4591
+ !*** ../../node_modules/react-custom-scrollbars-2/lib/utils/isString.js ***!
4592
+ \**************************************************************************/
4593
4593
  /***/ ((__unused_webpack_module, exports) => {
4594
4594
 
4595
4595
  "use strict";
4596
- eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = isString;\nfunction isString(maybe) {\n return typeof maybe === 'string';\n}\n\n//# sourceURL=webpack://@opensumi/ide-components/../../node_modules/react-custom-scrollbars/lib/utils/isString.js?");
4596
+ eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = isString;\nfunction isString(maybe) {\n return typeof maybe === 'string';\n}\n\n//# sourceURL=webpack://@opensumi/ide-components/../../node_modules/react-custom-scrollbars-2/lib/utils/isString.js?");
4597
4597
 
4598
4598
  /***/ }),
4599
4599
 
4600
- /***/ "../../node_modules/react-custom-scrollbars/lib/utils/returnFalse.js":
4601
- /*!***************************************************************************!*\
4602
- !*** ../../node_modules/react-custom-scrollbars/lib/utils/returnFalse.js ***!
4603
- \***************************************************************************/
4600
+ /***/ "../../node_modules/react-custom-scrollbars-2/lib/utils/returnFalse.js":
4601
+ /*!*****************************************************************************!*\
4602
+ !*** ../../node_modules/react-custom-scrollbars-2/lib/utils/returnFalse.js ***!
4603
+ \*****************************************************************************/
4604
4604
  /***/ ((__unused_webpack_module, exports) => {
4605
4605
 
4606
4606
  "use strict";
4607
- eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = returnFalse;\nfunction returnFalse() {\n return false;\n}\n\n//# sourceURL=webpack://@opensumi/ide-components/../../node_modules/react-custom-scrollbars/lib/utils/returnFalse.js?");
4607
+ eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = returnFalse;\nfunction returnFalse() {\n return false;\n}\n\n//# sourceURL=webpack://@opensumi/ide-components/../../node_modules/react-custom-scrollbars-2/lib/utils/returnFalse.js?");
4608
4608
 
4609
4609
  /***/ }),
4610
4610
 
@@ -5600,7 +5600,7 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
5600
5600
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5601
5601
 
5602
5602
  "use strict";
5603
- eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ScrollbarsVirtualList = exports.Scrollbars = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"../../node_modules/tslib/tslib.es6.mjs\");\nconst classnames_1 = tslib_1.__importDefault(__webpack_require__(/*! classnames */ \"../../node_modules/classnames/index.js\"));\nconst throttle_1 = tslib_1.__importDefault(__webpack_require__(/*! lodash/throttle */ \"../../node_modules/lodash/throttle.js\"));\nconst react_1 = tslib_1.__importStar(__webpack_require__(/*! react */ \"../../node_modules/react/index.js\"));\nconst react_custom_scrollbars_1 = __webpack_require__(/*! react-custom-scrollbars */ \"../../node_modules/react-custom-scrollbars/lib/index.js\");\nconst ide_utils_1 = __webpack_require__(/*! @opensumi/ide-utils */ \"../utils/lib/index.js\");\n__webpack_require__(/*! ./styles.less */ \"./src/scrollbars/styles.less\");\nconst Scrollbars = ({ onScroll, onUpdate, forwardedRef, style, children, className, onReachBottom, tabBarMode, thumbSize = 5, hiddenVertical, hiddenHorizontal, universal = false, }) => {\n const disposableCollection = (0, react_1.useRef)(new ide_utils_1.DisposableCollection());\n const scrollerRef = (0, react_1.useRef)();\n const refSetter = (0, react_1.useCallback)((scrollbarsRef) => {\n if (scrollbarsRef) {\n scrollerRef.current = scrollbarsRef.view;\n if (forwardedRef) {\n if (typeof forwardedRef === 'function') {\n forwardedRef(scrollbarsRef.view);\n }\n else {\n forwardedRef.current = scrollbarsRef.view;\n }\n }\n }\n else {\n if (forwardedRef && typeof forwardedRef === 'function') {\n forwardedRef(null);\n }\n }\n }, []);\n const verticalShadowRef = (0, react_1.useRef)();\n const horizontalShadowRef = (0, react_1.useRef)();\n const handleReachBottom = (0, react_1.useCallback)((values) => {\n if (!values) {\n return;\n }\n const { scrollTop, scrollHeight, clientHeight } = values;\n if (scrollHeight === 0 && clientHeight === 0) {\n return;\n }\n const pad = 100;\n const t = (scrollTop + pad) / (scrollHeight - clientHeight);\n if (t > 1) {\n onReachBottom && onReachBottom();\n }\n }, [onReachBottom]);\n const handleUpdate = (0, react_1.useCallback)((0, throttle_1.default)((values) => {\n if (!values) {\n return;\n }\n const { scrollTop, scrollLeft } = values;\n const shadowTopOpacity = (1 / 20) * Math.min(scrollTop, 20);\n const shadowLeftOpacity = (1 / 20) * Math.min(scrollLeft, 20);\n if (verticalShadowRef.current) {\n verticalShadowRef.current.style.opacity = String(shadowTopOpacity);\n }\n if (horizontalShadowRef.current) {\n horizontalShadowRef.current.style.opacity = String(shadowLeftOpacity);\n }\n handleReachBottom(values);\n onUpdate && onUpdate(values);\n }, 100), [onUpdate, handleReachBottom, verticalShadowRef.current, horizontalShadowRef.current]);\n (0, react_1.useEffect)(() => {\n const onMouseWheel = (e) => {\n if (!scrollerRef.current) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n if (scrollerRef.current.clientHeight >= scrollerRef.current.scrollHeight) {\n if (e.deltaY !== 0) {\n scrollerRef.current.scrollLeft += e.deltaY;\n }\n if (e.deltaX !== 0) {\n scrollerRef.current.scrollLeft += e.deltaX;\n }\n }\n };\n if (tabBarMode && scrollerRef.current) {\n scrollerRef.current.addEventListener('wheel', onMouseWheel);\n }\n return () => {\n var _a;\n (_a = scrollerRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('wheel', onMouseWheel);\n };\n }, [scrollerRef.current, tabBarMode]);\n // clear listeners\n (0, react_1.useEffect)(() => () => disposableCollection.current.dispose(), []);\n return (react_1.default.createElement(react_custom_scrollbars_1.Scrollbars, { ref: refSetter, style: Object.assign(Object.assign({}, style), { overflow: 'hidden' }), className: (0, classnames_1.default)(className, 'kt-scrollbar'), onUpdate: handleUpdate, onScroll: onScroll, universal: universal, renderTrackHorizontal: (_a) => {\n var { style } = _a, props = tslib_1.__rest(_a, [\"style\"]);\n const newStyle = Object.assign(Object.assign({}, style), { height: thumbSize, left: 0, right: 0, bottom: 1 });\n if (hiddenHorizontal) {\n newStyle.display = 'none';\n }\n return react_1.default.createElement(\"div\", Object.assign({}, props, { style: newStyle }));\n }, renderTrackVertical: (_a) => {\n var { style } = _a, props = tslib_1.__rest(_a, [\"style\"]);\n const newStyle = Object.assign(Object.assign({}, style), { width: thumbSize, top: 0, right: 1, bottom: 0 });\n if (hiddenVertical) {\n newStyle.display = 'none';\n }\n return react_1.default.createElement(\"div\", Object.assign({}, props, { style: newStyle }));\n }, renderThumbVertical: (_a) => {\n var { style, className } = _a, props = tslib_1.__rest(_a, [\"style\", \"className\"]);\n const newStyle = Object.assign(Object.assign({}, style), { width: thumbSize });\n if (hiddenVertical) {\n newStyle.display = 'none';\n }\n return react_1.default.createElement(\"div\", Object.assign({}, props, { style: newStyle, className: (0, classnames_1.default)(className, 'scrollbar-thumb-vertical') }));\n }, renderThumbHorizontal: (_a) => {\n var { style, className } = _a, props = tslib_1.__rest(_a, [\"style\", \"className\"]);\n const newStyle = Object.assign(Object.assign({}, style), { height: thumbSize, display: 'none' });\n if (hiddenHorizontal) {\n newStyle.display = 'none';\n }\n return react_1.default.createElement(\"div\", Object.assign({}, props, { style: newStyle, className: (0, classnames_1.default)(className, 'scrollbar-thumb-horizontal') }));\n } },\n react_1.default.createElement(\"div\", { ref: (ref) => {\n verticalShadowRef.current = ref;\n }, className: 'scrollbar-decoration-vertical' }),\n react_1.default.createElement(\"div\", { ref: (ref) => {\n horizontalShadowRef.current = ref;\n }, className: 'scrollbar-decoration-horizontal' }),\n children));\n};\nexports.Scrollbars = Scrollbars;\nexports.Scrollbars.displayName = 'CustomScrollbars';\nexports.ScrollbarsVirtualList = react_1.default.forwardRef((props, ref) => (react_1.default.createElement(exports.Scrollbars, Object.assign({}, props, { thumbSize: 10, forwardedRef: ref }))));\nexports.ScrollbarsVirtualList.displayName = 'ScrollbarsVirtualList';\n\n\n//# sourceURL=webpack://@opensumi/ide-components/./src/scrollbars/index.tsx?");
5603
+ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ScrollbarsVirtualList = exports.Scrollbars = void 0;\nconst tslib_1 = __webpack_require__(/*! tslib */ \"../../node_modules/tslib/tslib.es6.mjs\");\nconst classnames_1 = tslib_1.__importDefault(__webpack_require__(/*! classnames */ \"../../node_modules/classnames/index.js\"));\nconst throttle_1 = tslib_1.__importDefault(__webpack_require__(/*! lodash/throttle */ \"../../node_modules/lodash/throttle.js\"));\nconst react_1 = tslib_1.__importStar(__webpack_require__(/*! react */ \"../../node_modules/react/index.js\"));\nconst react_custom_scrollbars_2_1 = __webpack_require__(/*! react-custom-scrollbars-2 */ \"../../node_modules/react-custom-scrollbars-2/lib/index.js\");\nconst ide_utils_1 = __webpack_require__(/*! @opensumi/ide-utils */ \"../utils/lib/index.js\");\n__webpack_require__(/*! ./styles.less */ \"./src/scrollbars/styles.less\");\nconst Scrollbars = ({ onScroll, onUpdate, forwardedRef, style, children, className, onReachBottom, tabBarMode, thumbSize = 5, hiddenVertical, hiddenHorizontal, universal = false, hideTracksWhenNotNeeded, }) => {\n const disposableCollection = (0, react_1.useRef)(new ide_utils_1.DisposableCollection());\n const scrollerRef = (0, react_1.useRef)();\n const refSetter = (0, react_1.useCallback)((scrollbarsRef) => {\n if (scrollbarsRef) {\n scrollerRef.current = scrollbarsRef.view;\n if (forwardedRef) {\n if (typeof forwardedRef === 'function') {\n forwardedRef(scrollbarsRef.view);\n }\n else {\n forwardedRef.current = scrollbarsRef.view;\n }\n }\n }\n else {\n if (forwardedRef && typeof forwardedRef === 'function') {\n forwardedRef(null);\n }\n }\n }, []);\n const verticalShadowRef = (0, react_1.useRef)();\n const horizontalShadowRef = (0, react_1.useRef)();\n const handleReachBottom = (0, react_1.useCallback)((values) => {\n if (!values) {\n return;\n }\n const { scrollTop, scrollHeight, clientHeight } = values;\n if (scrollHeight === 0 && clientHeight === 0) {\n return;\n }\n const pad = 100;\n const t = (scrollTop + pad) / (scrollHeight - clientHeight);\n if (t > 1) {\n onReachBottom && onReachBottom();\n }\n }, [onReachBottom]);\n const handleUpdate = (0, react_1.useCallback)((0, throttle_1.default)((values) => {\n if (!values) {\n return;\n }\n const { scrollTop, scrollLeft } = values;\n const shadowTopOpacity = (1 / 20) * Math.min(scrollTop, 20);\n const shadowLeftOpacity = (1 / 20) * Math.min(scrollLeft, 20);\n if (verticalShadowRef.current) {\n verticalShadowRef.current.style.opacity = String(shadowTopOpacity);\n }\n if (horizontalShadowRef.current) {\n horizontalShadowRef.current.style.opacity = String(shadowLeftOpacity);\n }\n handleReachBottom(values);\n onUpdate && onUpdate(values);\n }, 100), [onUpdate, handleReachBottom, verticalShadowRef.current, horizontalShadowRef.current]);\n (0, react_1.useEffect)(() => {\n const onMouseWheel = (e) => {\n if (!scrollerRef.current) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n if (scrollerRef.current.clientHeight >= scrollerRef.current.scrollHeight) {\n if (e.deltaY !== 0) {\n scrollerRef.current.scrollLeft += e.deltaY;\n }\n if (e.deltaX !== 0) {\n scrollerRef.current.scrollLeft += e.deltaX;\n }\n }\n };\n if (tabBarMode && scrollerRef.current) {\n scrollerRef.current.addEventListener('wheel', onMouseWheel);\n }\n return () => {\n var _a;\n (_a = scrollerRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('wheel', onMouseWheel);\n };\n }, [scrollerRef.current, tabBarMode]);\n // clear listeners\n (0, react_1.useEffect)(() => () => disposableCollection.current.dispose(), []);\n return (react_1.default.createElement(react_custom_scrollbars_2_1.Scrollbars, { ref: refSetter, style: Object.assign(Object.assign({}, style), { overflow: 'hidden' }), className: (0, classnames_1.default)(className, 'kt-scrollbar'), onUpdate: handleUpdate, onScroll: onScroll, universal: universal, hideTracksWhenNotNeeded: hideTracksWhenNotNeeded, renderTrackHorizontal: (_a) => {\n var { style } = _a, props = tslib_1.__rest(_a, [\"style\"]);\n const newStyle = Object.assign(Object.assign({}, style), { height: thumbSize, left: 0, right: 0, bottom: 1 });\n if (hiddenHorizontal) {\n newStyle.display = 'none';\n }\n return react_1.default.createElement(\"div\", Object.assign({}, props, { style: newStyle }));\n }, renderTrackVertical: (_a) => {\n var { style } = _a, props = tslib_1.__rest(_a, [\"style\"]);\n const newStyle = Object.assign(Object.assign({}, style), { width: thumbSize, top: 0, right: 1, bottom: 0 });\n if (hiddenVertical) {\n newStyle.display = 'none';\n }\n return react_1.default.createElement(\"div\", Object.assign({}, props, { style: newStyle }));\n }, renderThumbVertical: (_a) => {\n var { style, className } = _a, props = tslib_1.__rest(_a, [\"style\", \"className\"]);\n const newStyle = Object.assign(Object.assign({}, style), { width: thumbSize });\n if (hiddenVertical) {\n newStyle.display = 'none';\n }\n return react_1.default.createElement(\"div\", Object.assign({}, props, { style: newStyle, className: (0, classnames_1.default)(className, 'scrollbar-thumb-vertical') }));\n }, renderThumbHorizontal: (_a) => {\n var { style, className } = _a, props = tslib_1.__rest(_a, [\"style\", \"className\"]);\n const newStyle = Object.assign(Object.assign({}, style), { height: thumbSize, display: 'none' });\n if (hiddenHorizontal) {\n newStyle.display = 'none';\n }\n return react_1.default.createElement(\"div\", Object.assign({}, props, { style: newStyle, className: (0, classnames_1.default)(className, 'scrollbar-thumb-horizontal') }));\n } },\n react_1.default.createElement(\"div\", { ref: (ref) => {\n verticalShadowRef.current = ref;\n }, className: 'scrollbar-decoration-vertical' }),\n react_1.default.createElement(\"div\", { ref: (ref) => {\n horizontalShadowRef.current = ref;\n }, className: 'scrollbar-decoration-horizontal' }),\n children));\n};\nexports.Scrollbars = Scrollbars;\nexports.Scrollbars.displayName = 'CustomScrollbars';\nexports.ScrollbarsVirtualList = react_1.default.forwardRef((props, ref) => (react_1.default.createElement(exports.Scrollbars, Object.assign({}, props, { thumbSize: 10, forwardedRef: ref }))));\nexports.ScrollbarsVirtualList.displayName = 'ScrollbarsVirtualList';\n\n\n//# sourceURL=webpack://@opensumi/ide-components/./src/scrollbars/index.tsx?");
5604
5604
 
5605
5605
  /***/ }),
5606
5606
 
@@ -6588,7 +6588,7 @@ eval("\n/* ---------------------------------------------------------------------
6588
6588
  /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6589
6589
 
6590
6590
  "use strict";
6591
- eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.StateTracer = exports.retry = exports.sleep = exports.disposableTimeout = exports.RunOnceScheduler = exports.raceCancellation = exports.timeout = exports.first = exports.IdleValue = exports.runWhenIdle = exports.asPromise = exports.raceTimeout = exports.isThenable = exports.AutoOpenBarrier = exports.Barrier = exports.ThrottledDelayer = exports.Delayer = exports.Sequencer = exports.Throttler = exports.hookCancellationToken = exports.createCancelablePromise = void 0;\nconst cancellation_1 = __webpack_require__(/*! ./cancellation */ \"../utils/lib/cancellation.js\");\nconst disposable_1 = __webpack_require__(/*! ./disposable */ \"../utils/lib/disposable.js\");\nconst errors_1 = __webpack_require__(/*! ./errors */ \"../utils/lib/errors.js\");\nfunction createCancelablePromise(callback) {\n const source = new cancellation_1.CancellationTokenSource();\n const thenable = callback(source.token);\n const promise = new Promise((resolve, reject) => {\n source.token.onCancellationRequested(() => {\n reject((0, errors_1.canceled)());\n });\n Promise.resolve(thenable).then((value) => {\n source.dispose();\n resolve(value);\n }, (err) => {\n source.dispose();\n reject(err);\n });\n });\n return new (class {\n cancel() {\n source.cancel();\n }\n then(resolve, reject) {\n return promise.then(resolve, reject);\n }\n catch(reject) {\n return this.then(undefined, reject);\n }\n finally(onfinally) {\n return promise.finally(onfinally);\n }\n })();\n}\nexports.createCancelablePromise = createCancelablePromise;\nfunction hookCancellationToken(token, promise) {\n return new Promise((resolve, reject) => {\n const sub = token.onCancellationRequested(() => reject(new Error('This promise is cancelled')));\n promise\n .then((value) => {\n sub.dispose();\n resolve(value);\n })\n .catch((err) => {\n sub.dispose();\n reject(err);\n });\n });\n}\nexports.hookCancellationToken = hookCancellationToken;\n/**\n * A helper to prevent accumulation of sequential async tasks.\n *\n * Imagine a mail man with the sole task of delivering letters. As soon as\n * a letter submitted for delivery, he drives to the destination, delivers it\n * and returns to his base. Imagine that during the trip, N more letters were submitted.\n * When the mail man returns, he picks those N letters and delivers them all in a\n * single trip. Even though N+1 submissions occurred, only 2 deliveries were made.\n *\n * The throttler implements this via the queue() method, by providing it a task\n * factory. Following the example:\n *\n * \t\tconst throttler = new Throttler();\n * \t\tconst letters = [];\n *\n * \t\tfunction deliver() {\n * \t\t\tconst lettersToDeliver = letters;\n * \t\t\tletters = [];\n * \t\t\treturn makeTheTrip(lettersToDeliver);\n * \t\t}\n *\n * \t\tfunction onLetterReceived(l) {\n * \t\t\tletters.push(l);\n * \t\t\tthrottler.queue(deliver);\n * \t\t}\n */\nclass Throttler {\n constructor() {\n this.activePromise = null;\n this.queuedPromise = null;\n this.queuedPromiseFactory = null;\n }\n queue(promiseFactory) {\n if (this.activePromise) {\n this.queuedPromiseFactory = promiseFactory;\n if (!this.queuedPromise) {\n const onComplete = () => {\n this.queuedPromise = null;\n const result = this.queue(this.queuedPromiseFactory);\n this.queuedPromiseFactory = null;\n return result;\n };\n this.queuedPromise = new Promise((c) => {\n this.activePromise && this.activePromise.then(onComplete, onComplete).then(c);\n });\n }\n return new Promise((c, e) => {\n this.queuedPromise && this.queuedPromise.then(c, e);\n });\n }\n this.activePromise = promiseFactory();\n return new Promise((c, e) => {\n var _a;\n (_a = this.activePromise) === null || _a === void 0 ? void 0 : _a.then((result) => {\n this.activePromise = null;\n c(result);\n }, (err) => {\n this.activePromise = null;\n e(err);\n });\n });\n }\n}\nexports.Throttler = Throttler;\nclass Sequencer {\n constructor() {\n this.current = Promise.resolve(null);\n }\n queue(promiseTask) {\n return (this.current = this.current.then(() => promiseTask()));\n }\n}\nexports.Sequencer = Sequencer;\n/**\n * A helper to delay execution of a task that is being requested often.\n *\n * Following the throttler, now imagine the mail man wants to optimize the number of\n * trips proactively. The trip itself can be long, so he decides not to make the trip\n * as soon as a letter is submitted. Instead he waits a while, in case more\n * letters are submitted. After said waiting period, if no letters were submitted, he\n * decides to make the trip. Imagine that N more letters were submitted after the first\n * one, all within a short period of time between each other. Even though N+1\n * submissions occurred, only 1 delivery was made.\n *\n * The delayer offers this behavior via the trigger() method, into which both the task\n * to be executed and the waiting period (delay) must be passed in as arguments. Following\n * the example:\n *\n * \t\tconst delayer = new Delayer(WAITING_PERIOD);\n * \t\tconst letters = [];\n *\n * \t\tfunction letterReceived(l) {\n * \t\t\tletters.push(l);\n * \t\t\tdelayer.trigger(() => { return makeTheTrip(); });\n * \t\t}\n */\nclass Delayer {\n constructor(defaultDelay) {\n this.defaultDelay = defaultDelay;\n this.timeout = null;\n this.completionPromise = null;\n this.doResolve = null;\n this.task = null;\n }\n trigger(task, delay = this.defaultDelay) {\n this.task = task;\n this.cancelTimeout();\n if (!this.completionPromise) {\n this.completionPromise = new Promise((c, e) => {\n this.doResolve = c;\n this.doReject = e;\n })\n .then(() => {\n this.completionPromise = null;\n this.doResolve = null;\n const task = this.task;\n this.task = null;\n return task && task();\n })\n .catch();\n }\n this.timeout = setTimeout(() => {\n var _a;\n this.timeout = null;\n (_a = this.doResolve) === null || _a === void 0 ? void 0 : _a.call(this, null);\n }, delay);\n return this.completionPromise;\n }\n isTriggered() {\n return this.timeout !== null;\n }\n cancel() {\n this.cancelTimeout();\n if (this.completionPromise) {\n this.doReject && this.doReject((0, errors_1.canceled)());\n this.completionPromise = null;\n }\n }\n cancelTimeout() {\n if (this.timeout !== null) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n }\n dispose() {\n this.cancelTimeout();\n }\n}\nexports.Delayer = Delayer;\n/**\n * A helper to delay execution of a task that is being requested often, while\n * preventing accumulation of consecutive executions, while the task runs.\n *\n * The mail man is clever and waits for a certain amount of time, before going\n * out to deliver letters. While the mail man is going out, more letters arrive\n * and can only be delivered once he is back. Once he is back the mail man will\n * do one more trip to deliver the letters that have accumulated while he was out.\n */\nclass ThrottledDelayer {\n constructor(defaultDelay) {\n this.delayer = new Delayer(defaultDelay);\n this.throttler = new Throttler();\n }\n trigger(promiseFactory, delay) {\n return this.delayer.trigger(() => this.throttler.queue(promiseFactory), delay);\n }\n isTriggered() {\n return this.delayer.isTriggered();\n }\n cancel() {\n this.delayer.cancel();\n }\n dispose() {\n this.delayer.dispose();\n }\n}\nexports.ThrottledDelayer = ThrottledDelayer;\n/**\n * A barrier that is initially closed and then becomes opened permanently.\n */\nclass Barrier {\n constructor() {\n this._isOpen = false;\n this._promise = new Promise((c) => {\n this._completePromise = c;\n });\n }\n isOpen() {\n return this._isOpen;\n }\n open() {\n this._isOpen = true;\n this._completePromise(true);\n }\n wait() {\n return this._promise;\n }\n reject() {\n this._isOpen = false;\n this._completePromise(false);\n }\n}\nexports.Barrier = Barrier;\n/**\n * A barrier that is initially closed and then becomes opened permanently after a certain period of\n * time or when open is called explicitly\n */\nclass AutoOpenBarrier extends Barrier {\n constructor(autoOpenTimeMs) {\n super();\n this._timeout = setTimeout(() => this.open(), autoOpenTimeMs);\n }\n open() {\n clearTimeout(this._timeout);\n super.open();\n }\n}\nexports.AutoOpenBarrier = AutoOpenBarrier;\nfunction isThenable(obj) {\n return obj && typeof obj.then === 'function';\n}\nexports.isThenable = isThenable;\nfunction raceTimeout(promise, timeout, onTimeout) {\n let promiseResolve;\n const timer = setTimeout(() => {\n promiseResolve === null || promiseResolve === void 0 ? void 0 : promiseResolve(undefined);\n onTimeout === null || onTimeout === void 0 ? void 0 : onTimeout();\n }, timeout);\n return Promise.race([\n promise.finally(() => clearTimeout(timer)),\n new Promise((resolve) => (promiseResolve = resolve)),\n ]);\n}\nexports.raceTimeout = raceTimeout;\nfunction asPromise(callback) {\n return new Promise((resolve, reject) => {\n const item = callback();\n if (isThenable(item)) {\n item.then(resolve, reject);\n }\n else {\n resolve(item);\n }\n });\n}\nexports.asPromise = asPromise;\n(function () {\n if (typeof requestIdleCallback !== 'function' || typeof cancelIdleCallback !== 'function') {\n const dummyIdle = Object.freeze({\n didTimeout: true,\n timeRemaining() {\n return 15;\n },\n });\n exports.runWhenIdle = (runner) => {\n const handle = setTimeout(() => runner(dummyIdle));\n let disposed = false;\n return {\n dispose() {\n if (disposed) {\n return;\n }\n disposed = true;\n clearTimeout(handle);\n },\n };\n };\n }\n else {\n exports.runWhenIdle = (runner, timeout) => {\n const handle = requestIdleCallback(runner, typeof timeout === 'number' ? { timeout } : undefined);\n let disposed = false;\n return {\n dispose() {\n if (disposed) {\n return;\n }\n disposed = true;\n cancelIdleCallback(handle);\n },\n };\n };\n }\n})();\n/**\n * An implementation of the \"idle-until-urgent\"-strategy as introduced\n * here: https://philipwalton.com/articles/idle-until-urgent/\n */\nclass IdleValue {\n constructor(executor) {\n this._didRun = false;\n this._executor = () => {\n try {\n this._value = executor();\n }\n catch (err) {\n this._error = err;\n }\n finally {\n this._didRun = true;\n }\n };\n this._handle = (0, exports.runWhenIdle)(() => this._executor());\n }\n dispose() {\n this._handle.dispose();\n }\n getValue() {\n if (!this._didRun) {\n this._handle.dispose();\n this._executor();\n }\n if (this._error) {\n throw this._error;\n }\n return this._value;\n }\n}\nexports.IdleValue = IdleValue;\nfunction first(promiseFactories, shouldStop = (t) => !!t, defaultValue = null) {\n let index = 0;\n const len = promiseFactories.length;\n const loop = () => {\n if (index >= len) {\n return Promise.resolve(defaultValue);\n }\n const factory = promiseFactories[index++];\n const promise = Promise.resolve(factory());\n return promise.then((result) => {\n if (shouldStop(result)) {\n return Promise.resolve(result);\n }\n return loop();\n });\n };\n return loop();\n}\nexports.first = first;\nfunction timeout(millis, token) {\n if (!token) {\n return createCancelablePromise((token) => timeout(millis, token));\n }\n return new Promise((resolve, reject) => {\n const handle = setTimeout(resolve, millis);\n token.onCancellationRequested(() => {\n clearTimeout(handle);\n reject((0, errors_1.canceled)());\n });\n });\n}\nexports.timeout = timeout;\nfunction raceCancellation(promise, token, defaultValue) {\n return Promise.race([\n promise,\n new Promise((resolve) => token.onCancellationRequested(() => resolve(defaultValue))),\n ]);\n}\nexports.raceCancellation = raceCancellation;\nclass RunOnceScheduler {\n constructor(runner, delay) {\n this.timeoutToken = -1;\n this.runner = runner;\n this.timeout = delay;\n this.timeoutHandler = this.onTimeout.bind(this);\n }\n /**\n * Dispose RunOnceScheduler\n */\n dispose() {\n this.cancel();\n this.runner = null;\n }\n /**\n * Cancel current scheduled runner (if any).\n */\n cancel() {\n if (this.isScheduled()) {\n clearTimeout(this.timeoutToken);\n this.timeoutToken = -1;\n }\n }\n /**\n * Cancel previous runner (if any) & schedule a new runner.\n */\n schedule(delay = this.timeout) {\n this.cancel();\n this.timeoutToken = setTimeout(this.timeoutHandler, delay);\n }\n get delay() {\n return this.timeout;\n }\n set delay(value) {\n this.timeout = value;\n }\n /**\n * Returns true if scheduled.\n */\n isScheduled() {\n return this.timeoutToken !== -1;\n }\n onTimeout() {\n this.timeoutToken = -1;\n if (this.runner) {\n this.doRun();\n }\n }\n doRun() {\n if (this.runner) {\n this.runner();\n }\n }\n}\nexports.RunOnceScheduler = RunOnceScheduler;\nfunction disposableTimeout(handler, timeout = 0) {\n const timer = setTimeout(handler, timeout);\n return (0, disposable_1.toDisposable)(() => clearTimeout(timer));\n}\nexports.disposableTimeout = disposableTimeout;\nfunction sleep(time) {\n return new Promise((resolve) => setTimeout(resolve, time));\n}\nexports.sleep = sleep;\nconst retry = async (task, options) => {\n const { delay, retries, onFailedAttempt, timeout } = options;\n try {\n if (timeout) {\n const result = await raceTimeout(task(), timeout || 0);\n if (result === undefined) {\n throw new Error('Timeout');\n }\n return result;\n }\n return task();\n }\n catch (error) {\n if (retries === 0) {\n throw error;\n }\n if (onFailedAttempt) {\n onFailedAttempt(error);\n }\n await sleep(delay);\n return (0, exports.retry)(task, { delay, retries: retries - 1, onFailedAttempt, timeout });\n }\n};\nexports.retry = retry;\nclass StateTracer {\n constructor() {\n this.deferred = {};\n }\n has(state) {\n return this.deferred[state] !== undefined;\n }\n delete(state) {\n delete this.deferred[state];\n }\n record(state) {\n if (this.deferred[state] === undefined) {\n this.deferred[state] = new Barrier();\n }\n }\n fulfill(state) {\n if (this.deferred[state] !== undefined) {\n this.deferred[state].open();\n }\n else {\n this.deferred[state] = new Barrier();\n this.deferred[state].open();\n }\n }\n reachedState(state) {\n if (this.deferred[state] === undefined) {\n this.deferred[state] = new Barrier();\n }\n return this.deferred[state].wait();\n }\n reachedAnyState(...states) {\n return Promise.race(states.map((s) => this.reachedState(s)));\n }\n dispose() {\n Object.keys(this.deferred).forEach((key) => {\n this.deferred[key].reject();\n });\n this.deferred = {};\n }\n}\nexports.StateTracer = StateTracer;\n//# sourceMappingURL=async.js.map\n\n//# sourceURL=webpack://@opensumi/ide-components/../utils/lib/async.js?");
6591
+ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.StateTracer = exports.retry = exports.sleep = exports.disposableTimeout = exports.RunOnceScheduler = exports.raceCancellation = exports.timeout = exports.first = exports.IdleValue = exports.runWhenIdle = exports.asPromise = exports.raceTimeout = exports.isThenable = exports.AutoOpenBarrier = exports.Barrier = exports.ThrottledDelayer = exports.Delayer = exports.Sequencer = exports.Throttler = exports.hookCancellationToken = exports.createCancelablePromise = void 0;\nconst cancellation_1 = __webpack_require__(/*! ./cancellation */ \"../utils/lib/cancellation.js\");\nconst disposable_1 = __webpack_require__(/*! ./disposable */ \"../utils/lib/disposable.js\");\nconst errors_1 = __webpack_require__(/*! ./errors */ \"../utils/lib/errors.js\");\nfunction createCancelablePromise(callback) {\n const source = new cancellation_1.CancellationTokenSource();\n const thenable = callback(source.token);\n const promise = new Promise((resolve, reject) => {\n source.token.onCancellationRequested(() => {\n reject((0, errors_1.canceled)());\n });\n Promise.resolve(thenable).then((value) => {\n source.dispose();\n resolve(value);\n }, (err) => {\n source.dispose();\n reject(err);\n });\n });\n return new (class {\n cancel() {\n source.cancel();\n }\n then(resolve, reject) {\n return promise.then(resolve, reject);\n }\n catch(reject) {\n return this.then(undefined, reject);\n }\n finally(onfinally) {\n return promise.finally(onfinally);\n }\n })();\n}\nexports.createCancelablePromise = createCancelablePromise;\nfunction hookCancellationToken(token, promise) {\n return new Promise((resolve, reject) => {\n const sub = token.onCancellationRequested(() => reject(new Error('This promise is cancelled')));\n promise\n .then((value) => {\n sub.dispose();\n resolve(value);\n })\n .catch((err) => {\n sub.dispose();\n reject(err);\n });\n });\n}\nexports.hookCancellationToken = hookCancellationToken;\n/**\n * A helper to prevent accumulation of sequential async tasks.\n *\n * Imagine a mail man with the sole task of delivering letters. As soon as\n * a letter submitted for delivery, he drives to the destination, delivers it\n * and returns to his base. Imagine that during the trip, N more letters were submitted.\n * When the mail man returns, he picks those N letters and delivers them all in a\n * single trip. Even though N+1 submissions occurred, only 2 deliveries were made.\n *\n * The throttler implements this via the queue() method, by providing it a task\n * factory. Following the example:\n *\n * \t\tconst throttler = new Throttler();\n * \t\tconst letters = [];\n *\n * \t\tfunction deliver() {\n * \t\t\tconst lettersToDeliver = letters;\n * \t\t\tletters = [];\n * \t\t\treturn makeTheTrip(lettersToDeliver);\n * \t\t}\n *\n * \t\tfunction onLetterReceived(l) {\n * \t\t\tletters.push(l);\n * \t\t\tthrottler.queue(deliver);\n * \t\t}\n */\nclass Throttler {\n constructor() {\n this.activePromise = null;\n this.queuedPromise = null;\n this.queuedPromiseFactory = null;\n }\n queue(promiseFactory) {\n if (this.activePromise) {\n this.queuedPromiseFactory = promiseFactory;\n if (!this.queuedPromise) {\n const onComplete = () => {\n this.queuedPromise = null;\n const result = this.queue(this.queuedPromiseFactory);\n this.queuedPromiseFactory = null;\n return result;\n };\n this.queuedPromise = new Promise((c) => {\n this.activePromise && this.activePromise.then(onComplete, onComplete).then(c);\n });\n }\n return new Promise((c, e) => {\n this.queuedPromise && this.queuedPromise.then(c, e);\n });\n }\n this.activePromise = promiseFactory();\n return new Promise((c, e) => {\n var _a;\n (_a = this.activePromise) === null || _a === void 0 ? void 0 : _a.then((result) => {\n this.activePromise = null;\n c(result);\n }, (err) => {\n this.activePromise = null;\n e(err);\n });\n });\n }\n}\nexports.Throttler = Throttler;\nclass Sequencer {\n constructor() {\n this.current = Promise.resolve(null);\n }\n queue(promiseTask) {\n return (this.current = this.current.then(() => promiseTask()));\n }\n}\nexports.Sequencer = Sequencer;\n/**\n * A helper to delay execution of a task that is being requested often.\n *\n * Following the throttler, now imagine the mail man wants to optimize the number of\n * trips proactively. The trip itself can be long, so he decides not to make the trip\n * as soon as a letter is submitted. Instead he waits a while, in case more\n * letters are submitted. After said waiting period, if no letters were submitted, he\n * decides to make the trip. Imagine that N more letters were submitted after the first\n * one, all within a short period of time between each other. Even though N+1\n * submissions occurred, only 1 delivery was made.\n *\n * The delayer offers this behavior via the trigger() method, into which both the task\n * to be executed and the waiting period (delay) must be passed in as arguments. Following\n * the example:\n *\n * \t\tconst delayer = new Delayer(WAITING_PERIOD);\n * \t\tconst letters = [];\n *\n * \t\tfunction letterReceived(l) {\n * \t\t\tletters.push(l);\n * \t\t\tdelayer.trigger(() => { return makeTheTrip(); });\n * \t\t}\n */\nclass Delayer {\n constructor(defaultDelay) {\n this.defaultDelay = defaultDelay;\n this.timeout = null;\n this.completionPromise = null;\n this.doResolve = null;\n this.task = null;\n }\n trigger(task, delay = this.defaultDelay) {\n this.task = task;\n this.cancelTimeout();\n if (!this.completionPromise) {\n this.completionPromise = new Promise((c, e) => {\n this.doResolve = c;\n this.doReject = e;\n })\n .then(() => {\n this.completionPromise = null;\n this.doResolve = null;\n const task = this.task;\n this.task = null;\n return task && task();\n })\n .catch();\n }\n this.timeout = setTimeout(() => {\n var _a;\n this.timeout = null;\n (_a = this.doResolve) === null || _a === void 0 ? void 0 : _a.call(this, null);\n }, delay);\n return this.completionPromise;\n }\n isTriggered() {\n return this.timeout !== null;\n }\n cancel() {\n this.cancelTimeout();\n if (this.completionPromise) {\n this.doReject && this.doReject((0, errors_1.canceled)());\n this.completionPromise = null;\n }\n }\n cancelTimeout() {\n if (this.timeout !== null) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n }\n dispose() {\n this.cancelTimeout();\n }\n}\nexports.Delayer = Delayer;\n/**\n * A helper to delay execution of a task that is being requested often, while\n * preventing accumulation of consecutive executions, while the task runs.\n *\n * The mail man is clever and waits for a certain amount of time, before going\n * out to deliver letters. While the mail man is going out, more letters arrive\n * and can only be delivered once he is back. Once he is back the mail man will\n * do one more trip to deliver the letters that have accumulated while he was out.\n */\nclass ThrottledDelayer {\n constructor(defaultDelay) {\n this.delayer = new Delayer(defaultDelay);\n this.throttler = new Throttler();\n }\n trigger(promiseFactory, delay) {\n return this.delayer.trigger(() => this.throttler.queue(promiseFactory), delay);\n }\n isTriggered() {\n return this.delayer.isTriggered();\n }\n cancel() {\n this.delayer.cancel();\n }\n dispose() {\n this.delayer.dispose();\n }\n}\nexports.ThrottledDelayer = ThrottledDelayer;\n/**\n * A barrier that is initially closed and then becomes opened permanently.\n */\nclass Barrier {\n constructor() {\n this._isOpen = false;\n this._promise = new Promise((c) => {\n this._completePromise = c;\n });\n }\n isOpen() {\n return this._isOpen;\n }\n open() {\n this._isOpen = true;\n this._completePromise(true);\n }\n wait() {\n return this._promise;\n }\n reject() {\n this._isOpen = false;\n this._completePromise(false);\n }\n}\nexports.Barrier = Barrier;\n/**\n * A barrier that is initially closed and then becomes opened permanently after a certain period of\n * time or when open is called explicitly\n */\nclass AutoOpenBarrier extends Barrier {\n constructor(autoOpenTimeMs) {\n super();\n this._timeout = setTimeout(() => this.open(), autoOpenTimeMs);\n }\n open() {\n clearTimeout(this._timeout);\n super.open();\n }\n}\nexports.AutoOpenBarrier = AutoOpenBarrier;\nfunction isThenable(obj) {\n return obj && typeof obj.then === 'function';\n}\nexports.isThenable = isThenable;\nfunction raceTimeout(promise, timeout, onTimeout) {\n let promiseResolve;\n const timer = setTimeout(() => {\n promiseResolve === null || promiseResolve === void 0 ? void 0 : promiseResolve(undefined);\n onTimeout === null || onTimeout === void 0 ? void 0 : onTimeout();\n }, timeout);\n return Promise.race([\n promise.finally(() => clearTimeout(timer)),\n new Promise((resolve) => (promiseResolve = resolve)),\n ]);\n}\nexports.raceTimeout = raceTimeout;\nfunction asPromise(callback) {\n return new Promise((resolve, reject) => {\n const item = callback();\n if (isThenable(item)) {\n item.then(resolve, reject);\n }\n else {\n resolve(item);\n }\n });\n}\nexports.asPromise = asPromise;\n(function () {\n if (typeof requestIdleCallback !== 'function' || typeof cancelIdleCallback !== 'function') {\n const dummyIdle = Object.freeze({\n didTimeout: true,\n timeRemaining() {\n return 15;\n },\n });\n exports.runWhenIdle = (runner) => {\n const handle = setTimeout(() => runner(dummyIdle));\n let disposed = false;\n return {\n dispose() {\n if (disposed) {\n return;\n }\n disposed = true;\n clearTimeout(handle);\n },\n };\n };\n }\n else {\n exports.runWhenIdle = (runner, timeout) => {\n const handle = requestIdleCallback(runner, typeof timeout === 'number' ? { timeout } : undefined);\n let disposed = false;\n return {\n dispose() {\n if (disposed) {\n return;\n }\n disposed = true;\n cancelIdleCallback(handle);\n },\n };\n };\n }\n})();\n/**\n * An implementation of the \"idle-until-urgent\"-strategy as introduced\n * here: https://philipwalton.com/articles/idle-until-urgent/\n */\nclass IdleValue {\n constructor(executor) {\n this._didRun = false;\n this._executor = () => {\n try {\n this._value = executor();\n }\n catch (err) {\n this._error = err;\n }\n finally {\n this._didRun = true;\n }\n };\n this._handle = (0, exports.runWhenIdle)(() => this._executor());\n }\n dispose() {\n this._handle.dispose();\n }\n getValue() {\n if (!this._didRun) {\n this._handle.dispose();\n this._executor();\n }\n if (this._error) {\n throw this._error;\n }\n return this._value;\n }\n}\nexports.IdleValue = IdleValue;\nfunction first(promiseFactories, shouldStop = (t) => !!t, defaultValue = null) {\n let index = 0;\n const len = promiseFactories.length;\n const loop = () => {\n if (index >= len) {\n return Promise.resolve(defaultValue);\n }\n const factory = promiseFactories[index++];\n const promise = Promise.resolve(factory());\n return promise.then((result) => {\n if (shouldStop(result)) {\n return Promise.resolve(result);\n }\n return loop();\n });\n };\n return loop();\n}\nexports.first = first;\nfunction timeout(millis, token) {\n if (!token) {\n return createCancelablePromise((token) => timeout(millis, token));\n }\n return new Promise((resolve, reject) => {\n const handle = setTimeout(resolve, millis);\n token.onCancellationRequested(() => {\n clearTimeout(handle);\n reject((0, errors_1.canceled)());\n });\n });\n}\nexports.timeout = timeout;\nfunction raceCancellation(promise, token, defaultValue) {\n return Promise.race([\n promise,\n new Promise((resolve) => token.onCancellationRequested(() => resolve(defaultValue))),\n ]);\n}\nexports.raceCancellation = raceCancellation;\nclass RunOnceScheduler {\n constructor(runner, delay) {\n this.timeoutToken = -1;\n this.runner = runner;\n this.timeout = delay;\n this.timeoutHandler = this.onTimeout.bind(this);\n }\n /**\n * Dispose RunOnceScheduler\n */\n dispose() {\n this.cancel();\n this.runner = null;\n }\n /**\n * Cancel current scheduled runner (if any).\n */\n cancel() {\n if (this.isScheduled()) {\n clearTimeout(this.timeoutToken);\n this.timeoutToken = -1;\n }\n }\n /**\n * Cancel previous runner (if any) & schedule a new runner.\n */\n schedule(delay = this.timeout) {\n this.cancel();\n this.timeoutToken = setTimeout(this.timeoutHandler, delay);\n }\n trigger() {\n this.cancel();\n this.onTimeout();\n }\n get delay() {\n return this.timeout;\n }\n set delay(value) {\n this.timeout = value;\n }\n /**\n * Returns true if scheduled.\n */\n isScheduled() {\n return this.timeoutToken !== -1;\n }\n onTimeout() {\n this.timeoutToken = -1;\n if (this.runner) {\n this.doRun();\n }\n }\n doRun() {\n if (this.runner) {\n this.runner();\n }\n }\n}\nexports.RunOnceScheduler = RunOnceScheduler;\nfunction disposableTimeout(handler, timeout = 0) {\n const timer = setTimeout(handler, timeout);\n return (0, disposable_1.toDisposable)(() => clearTimeout(timer));\n}\nexports.disposableTimeout = disposableTimeout;\nfunction sleep(time) {\n return new Promise((resolve) => setTimeout(resolve, time));\n}\nexports.sleep = sleep;\nconst retry = async (task, options) => {\n const { delay, retries, onFailedAttempt, timeout } = options;\n try {\n if (timeout) {\n const result = await raceTimeout(task(), timeout || 0);\n if (result === undefined) {\n throw new Error('Timeout');\n }\n return result;\n }\n return task();\n }\n catch (error) {\n if (retries === 0) {\n throw error;\n }\n if (onFailedAttempt) {\n onFailedAttempt(error);\n }\n await sleep(delay);\n return (0, exports.retry)(task, { delay, retries: retries - 1, onFailedAttempt, timeout });\n }\n};\nexports.retry = retry;\nclass StateTracer {\n constructor() {\n this.deferred = {};\n }\n has(state) {\n return this.deferred[state] !== undefined;\n }\n delete(state) {\n delete this.deferred[state];\n }\n record(state) {\n if (this.deferred[state] === undefined) {\n this.deferred[state] = new Barrier();\n }\n }\n fulfill(state) {\n if (this.deferred[state] !== undefined) {\n this.deferred[state].open();\n }\n else {\n this.deferred[state] = new Barrier();\n this.deferred[state].open();\n }\n }\n reachedState(state) {\n if (this.deferred[state] === undefined) {\n this.deferred[state] = new Barrier();\n }\n return this.deferred[state].wait();\n }\n reachedAnyState(...states) {\n return Promise.race(states.map((s) => this.reachedState(s)));\n }\n dispose() {\n Object.keys(this.deferred).forEach((key) => {\n this.deferred[key].reject();\n });\n this.deferred = {};\n }\n}\nexports.StateTracer = StateTracer;\n//# sourceMappingURL=async.js.map\n\n//# sourceURL=webpack://@opensumi/ide-components/../utils/lib/async.js?");
6592
6592
 
6593
6593
  /***/ }),
6594
6594
 
@@ -6717,10 +6717,10 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexpo
6717
6717
  /*!******************************!*\
6718
6718
  !*** ../utils/lib/errors.js ***!
6719
6719
  \******************************/
6720
- /***/ ((__unused_webpack_module, exports) => {
6720
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6721
6721
 
6722
6722
  "use strict";
6723
- eval("\n/* ---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n// Some code copied and modified from https://github.com/microsoft/vscode/blob/1.44.0/src/vs/base/common/errors.ts\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AbortError = exports.parseError = exports.stringifyError = exports.errorReviver = exports.transformErrorForSerialization = exports.getErrorMessage = exports.disposed = exports.readonly = exports.illegalState = exports.illegalArgument = exports.canceled = exports.isPromiseCanceledError = exports.onUnexpectedExternalError = exports.onUnexpectedError = exports.setUnexpectedErrorHandler = exports.errorHandler = exports.ErrorHandler = void 0;\n// Avoid circular dependency on EventEmitter by implementing a subset of the interface.\nclass ErrorHandler {\n constructor() {\n this.listeners = [];\n this.unexpectedErrorHandler = function (e) {\n setTimeout(() => {\n if (e.stack) {\n throw new Error(e.message + '\\n\\n' + e.stack);\n }\n throw e;\n }, 0);\n };\n }\n addListener(listener) {\n this.listeners.push(listener);\n return () => {\n this._removeListener(listener);\n };\n }\n emit(e) {\n this.listeners.forEach((listener) => {\n listener(e);\n });\n }\n _removeListener(listener) {\n this.listeners.splice(this.listeners.indexOf(listener), 1);\n }\n setUnexpectedErrorHandler(newUnexpectedErrorHandler) {\n this.unexpectedErrorHandler = newUnexpectedErrorHandler;\n }\n getUnexpectedErrorHandler() {\n return this.unexpectedErrorHandler;\n }\n onUnexpectedError(e) {\n this.unexpectedErrorHandler(e);\n this.emit(e);\n }\n // For external errors, we don't want the listeners to be called\n onUnexpectedExternalError(e) {\n this.unexpectedErrorHandler(e);\n }\n}\nexports.ErrorHandler = ErrorHandler;\nexports.errorHandler = new ErrorHandler();\nfunction setUnexpectedErrorHandler(newUnexpectedErrorHandler) {\n exports.errorHandler.setUnexpectedErrorHandler(newUnexpectedErrorHandler);\n}\nexports.setUnexpectedErrorHandler = setUnexpectedErrorHandler;\nfunction onUnexpectedError(e) {\n // ignore errors from cancelled promises\n if (!isPromiseCanceledError(e)) {\n exports.errorHandler.onUnexpectedError(e);\n }\n return undefined;\n}\nexports.onUnexpectedError = onUnexpectedError;\nfunction onUnexpectedExternalError(e) {\n // ignore errors from cancelled promises\n if (!isPromiseCanceledError(e)) {\n exports.errorHandler.onUnexpectedExternalError(e);\n }\n return undefined;\n}\nexports.onUnexpectedExternalError = onUnexpectedExternalError;\nconst canceledName = 'Canceled';\n/**\n * Checks if the given error is a promise in canceled state\n */\nfunction isPromiseCanceledError(error) {\n return error instanceof Error && error.name === canceledName && error.message === canceledName;\n}\nexports.isPromiseCanceledError = isPromiseCanceledError;\n/**\n * Returns an error that signals cancellation.\n */\nfunction canceled() {\n const error = new Error(canceledName);\n error.name = error.message;\n return error;\n}\nexports.canceled = canceled;\nfunction illegalArgument(name) {\n if (name) {\n return new Error(`Illegal argument: ${name}`);\n }\n else {\n return new Error('Illegal argument');\n }\n}\nexports.illegalArgument = illegalArgument;\nfunction illegalState(name) {\n if (name) {\n return new Error(`Illegal state: ${name}`);\n }\n else {\n return new Error('Illegal state');\n }\n}\nexports.illegalState = illegalState;\nfunction readonly(name) {\n return name\n ? new Error(`readonly property '${name} cannot be changed'`)\n : new Error('readonly property cannot be changed');\n}\nexports.readonly = readonly;\nfunction disposed(what) {\n const result = new Error(`${what} has been disposed`);\n result.name = 'DISPOSED';\n return result;\n}\nexports.disposed = disposed;\nfunction getErrorMessage(err) {\n if (!err) {\n return 'Error';\n }\n if (err.message) {\n return err.message;\n }\n if (err.stack) {\n return err.stack.split('\\n')[0];\n }\n return String(err);\n}\nexports.getErrorMessage = getErrorMessage;\nfunction transformErrorForSerialization(error) {\n if (error instanceof Error) {\n const { name, message, cause } = error;\n const stack = error.stacktrace || error.stack;\n return {\n $isError: true,\n name,\n message,\n stack,\n cause,\n };\n }\n // return as is\n return error;\n}\nexports.transformErrorForSerialization = transformErrorForSerialization;\nfunction serializeErrorReplacer(key, value) {\n if (value instanceof Error) {\n return transformErrorForSerialization(value);\n }\n return value;\n}\nfunction errorReviver(key, value) {\n if (typeof value === 'object' && value.$isError) {\n const result = new Error(value.message);\n result.name = value.name;\n result.stack = value.stack;\n result.cause = value.cause;\n return result;\n }\n return value;\n}\nexports.errorReviver = errorReviver;\nfunction stringifyError(error) {\n return JSON.stringify(error, serializeErrorReplacer);\n}\nexports.stringifyError = stringifyError;\nfunction parseError(value) {\n return JSON.parse(value, errorReviver);\n}\nexports.parseError = parseError;\nclass AbortError extends Error {\n static is(e) {\n return e instanceof Error && e.name === 'AbortError';\n }\n constructor() {\n super('');\n super.name = 'AbortError';\n }\n}\nexports.AbortError = AbortError;\n//# sourceMappingURL=errors.js.map\n\n//# sourceURL=webpack://@opensumi/ide-components/../utils/lib/errors.js?");
6723
+ eval("\n/* ---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n// Some code copied and modified from https://github.com/microsoft/vscode/blob/1.44.0/src/vs/base/common/errors.ts\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AbortError = exports.parseError = exports.stringifyError = exports.errorReviver = exports.transformErrorForSerialization = exports.getErrorMessage = exports.disposed = exports.readonly = exports.illegalState = exports.illegalArgument = exports.canceled = exports.isPromiseCanceledError = exports.onUnexpectedExternalError = exports.onUnexpectedError = exports.setUnexpectedErrorHandler = exports.errorHandler = exports.ErrorHandler = void 0;\nconst types_1 = __webpack_require__(/*! ./types */ \"../utils/lib/types.js\");\n// Avoid circular dependency on EventEmitter by implementing a subset of the interface.\nclass ErrorHandler {\n constructor() {\n this.listeners = [];\n this.unexpectedErrorHandler = function (e) {\n setTimeout(() => {\n if (e.stack) {\n throw new Error(e.message + '\\n\\n' + e.stack);\n }\n throw e;\n }, 0);\n };\n }\n addListener(listener) {\n this.listeners.push(listener);\n return () => {\n this._removeListener(listener);\n };\n }\n emit(e) {\n this.listeners.forEach((listener) => {\n listener(e);\n });\n }\n _removeListener(listener) {\n this.listeners.splice(this.listeners.indexOf(listener), 1);\n }\n setUnexpectedErrorHandler(newUnexpectedErrorHandler) {\n this.unexpectedErrorHandler = newUnexpectedErrorHandler;\n }\n getUnexpectedErrorHandler() {\n return this.unexpectedErrorHandler;\n }\n onUnexpectedError(e) {\n this.unexpectedErrorHandler(e);\n this.emit(e);\n }\n // For external errors, we don't want the listeners to be called\n onUnexpectedExternalError(e) {\n this.unexpectedErrorHandler(e);\n }\n}\nexports.ErrorHandler = ErrorHandler;\nexports.errorHandler = new ErrorHandler();\nfunction setUnexpectedErrorHandler(newUnexpectedErrorHandler) {\n exports.errorHandler.setUnexpectedErrorHandler(newUnexpectedErrorHandler);\n}\nexports.setUnexpectedErrorHandler = setUnexpectedErrorHandler;\nfunction onUnexpectedError(e) {\n // ignore errors from cancelled promises\n if (!isPromiseCanceledError(e)) {\n exports.errorHandler.onUnexpectedError(e);\n }\n return undefined;\n}\nexports.onUnexpectedError = onUnexpectedError;\nfunction onUnexpectedExternalError(e) {\n // ignore errors from cancelled promises\n if (!isPromiseCanceledError(e)) {\n exports.errorHandler.onUnexpectedExternalError(e);\n }\n return undefined;\n}\nexports.onUnexpectedExternalError = onUnexpectedExternalError;\nconst canceledName = 'Canceled';\n/**\n * Checks if the given error is a promise in canceled state\n */\nfunction isPromiseCanceledError(error) {\n return error instanceof Error && error.name === canceledName && error.message === canceledName;\n}\nexports.isPromiseCanceledError = isPromiseCanceledError;\n/**\n * Returns an error that signals cancellation.\n */\nfunction canceled() {\n const error = new Error(canceledName);\n error.name = error.message;\n return error;\n}\nexports.canceled = canceled;\nfunction illegalArgument(name) {\n if (name) {\n return new Error(`Illegal argument: ${name}`);\n }\n else {\n return new Error('Illegal argument');\n }\n}\nexports.illegalArgument = illegalArgument;\nfunction illegalState(name) {\n if (name) {\n return new Error(`Illegal state: ${name}`);\n }\n else {\n return new Error('Illegal state');\n }\n}\nexports.illegalState = illegalState;\nfunction readonly(name) {\n return name\n ? new Error(`readonly property '${name} cannot be changed'`)\n : new Error('readonly property cannot be changed');\n}\nexports.readonly = readonly;\nfunction disposed(what) {\n const result = new Error(`${what} has been disposed`);\n result.name = 'DISPOSED';\n return result;\n}\nexports.disposed = disposed;\nfunction getErrorMessage(err) {\n if (!err) {\n return 'Error';\n }\n if (err.message) {\n return err.message;\n }\n if (err.stack) {\n return err.stack.split('\\n')[0];\n }\n return String(err);\n}\nexports.getErrorMessage = getErrorMessage;\nfunction transformErrorForSerialization(error) {\n if (error instanceof Error) {\n const { name, message, cause } = error;\n const stack = error.stacktrace || error.stack;\n return {\n $isError: true,\n name,\n message,\n stack,\n cause,\n };\n }\n // return as is\n return error;\n}\nexports.transformErrorForSerialization = transformErrorForSerialization;\nfunction serializeErrorReplacer(key, value) {\n if (value instanceof Error) {\n return transformErrorForSerialization(value);\n }\n return value;\n}\nfunction errorReviver(key, value) {\n if ((0, types_1.isDefined)(value) && value.$isError) {\n const result = new Error(value.message);\n result.name = value.name;\n result.stack = value.stack;\n result.cause = value.cause;\n return result;\n }\n return value;\n}\nexports.errorReviver = errorReviver;\nfunction stringifyError(error) {\n return JSON.stringify(error, serializeErrorReplacer);\n}\nexports.stringifyError = stringifyError;\nfunction parseError(value) {\n return JSON.parse(value, errorReviver);\n}\nexports.parseError = parseError;\nclass AbortError extends Error {\n static is(e) {\n return e instanceof Error && e.name === 'AbortError';\n }\n constructor() {\n super('');\n super.name = 'AbortError';\n }\n}\nexports.AbortError = AbortError;\n//# sourceMappingURL=errors.js.map\n\n//# sourceURL=webpack://@opensumi/ide-components/../utils/lib/errors.js?");
6724
6724
 
6725
6725
  /***/ }),
6726
6726
 
@@ -24,14 +24,16 @@ export interface ICustomScrollbarProps {
24
24
  * 是否隐藏横向滚动条,默认 false
25
25
  */
26
26
  hiddenHorizontal?: boolean;
27
+ hideTracksWhenNotNeeded?: boolean;
27
28
  /**
28
- * 通用渲染, 默认 false
29
- * https://github.com/malte-wessel/react-custom-scrollbars/blob/master/docs/usage.md#universal-rendering
29
+ * If your app runs on both client and server, activate the universal mode.
30
+ * This will ensure that the initial markup on client and server are the same:
31
+ * https://github.com/RobPethick/react-custom-scrollbars-2/blob/master/docs/usage.md#universal-rendering
30
32
  */
31
33
  universal?: boolean;
32
34
  }
33
35
  export declare const Scrollbars: {
34
- ({ onScroll, onUpdate, forwardedRef, style, children, className, onReachBottom, tabBarMode, thumbSize, hiddenVertical, hiddenHorizontal, universal, }: ICustomScrollbarProps): React.JSX.Element;
36
+ ({ onScroll, onUpdate, forwardedRef, style, children, className, onReachBottom, tabBarMode, thumbSize, hiddenVertical, hiddenHorizontal, universal, hideTracksWhenNotNeeded, }: ICustomScrollbarProps): React.JSX.Element;
35
37
  displayName: string;
36
38
  };
37
39
  export declare const ScrollbarsVirtualList: React.ForwardRefExoticComponent<React.RefAttributes<unknown>>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scrollbars/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAI9D,OAAO,eAAe,CAAC;AAEvB,MAAM,WAAW,qBAAqB;IACpC,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,UAAU;2JAapB,qBAAqB;;CA8IvB,CAAC;AAIF,eAAO,MAAM,qBAAqB,+DAEhC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scrollbars/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAI9D,OAAO,eAAe,CAAC;AAEvB,MAAM,WAAW,qBAAqB;IACpC,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,UAAU;oLAcpB,qBAAqB;;CA+IvB,CAAC;AAIF,eAAO,MAAM,qBAAqB,+DAEhC,CAAC"}
@@ -5,10 +5,10 @@ const tslib_1 = require("tslib");
5
5
  const classnames_1 = tslib_1.__importDefault(require("classnames"));
6
6
  const throttle_1 = tslib_1.__importDefault(require("lodash/throttle"));
7
7
  const react_1 = tslib_1.__importStar(require("react"));
8
- const react_custom_scrollbars_1 = require("react-custom-scrollbars");
8
+ const react_custom_scrollbars_2_1 = require("react-custom-scrollbars-2");
9
9
  const ide_utils_1 = require("@opensumi/ide-utils");
10
10
  require("./styles.less");
11
- const Scrollbars = ({ onScroll, onUpdate, forwardedRef, style, children, className, onReachBottom, tabBarMode, thumbSize = 5, hiddenVertical, hiddenHorizontal, universal = false, }) => {
11
+ const Scrollbars = ({ onScroll, onUpdate, forwardedRef, style, children, className, onReachBottom, tabBarMode, thumbSize = 5, hiddenVertical, hiddenHorizontal, universal = false, hideTracksWhenNotNeeded, }) => {
12
12
  const disposableCollection = (0, react_1.useRef)(new ide_utils_1.DisposableCollection());
13
13
  const scrollerRef = (0, react_1.useRef)();
14
14
  const refSetter = (0, react_1.useCallback)((scrollbarsRef) => {
@@ -87,7 +87,7 @@ const Scrollbars = ({ onScroll, onUpdate, forwardedRef, style, children, classNa
87
87
  }, [scrollerRef.current, tabBarMode]);
88
88
  // clear listeners
89
89
  (0, react_1.useEffect)(() => () => disposableCollection.current.dispose(), []);
90
- return (react_1.default.createElement(react_custom_scrollbars_1.Scrollbars, { ref: refSetter, style: Object.assign(Object.assign({}, style), { overflow: 'hidden' }), className: (0, classnames_1.default)(className, 'kt-scrollbar'), onUpdate: handleUpdate, onScroll: onScroll, universal: universal, renderTrackHorizontal: (_a) => {
90
+ return (react_1.default.createElement(react_custom_scrollbars_2_1.Scrollbars, { ref: refSetter, style: Object.assign(Object.assign({}, style), { overflow: 'hidden' }), className: (0, classnames_1.default)(className, 'kt-scrollbar'), onUpdate: handleUpdate, onScroll: onScroll, universal: universal, hideTracksWhenNotNeeded: hideTracksWhenNotNeeded, renderTrackHorizontal: (_a) => {
91
91
  var { style } = _a, props = tslib_1.__rest(_a, ["style"]);
92
92
  const newStyle = Object.assign(Object.assign({}, style), { height: thumbSize, left: 0, right: 0, bottom: 1 });
93
93
  if (hiddenHorizontal) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scrollbars/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scrollbars/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensumi/ide-components",
3
- "version": "3.1.5-next-1721624769.0",
3
+ "version": "3.1.5-next-1721876529.0",
4
4
  "description": "@opensumi/ide-components",
5
5
  "license": "MIT",
6
6
  "main": "lib/index.js",
@@ -16,7 +16,7 @@
16
16
  },
17
17
  "dependencies": {
18
18
  "@ant-design/icons": "^4.6.4",
19
- "@opensumi/ide-utils": "3.1.5-next-1721624769.0",
19
+ "@opensumi/ide-utils": "3.1.5-next-1721876529.0",
20
20
  "fuzzy": "^0.1.3",
21
21
  "lodash": "^4.17.21",
22
22
  "marked": "4.0.10",
@@ -29,17 +29,17 @@
29
29
  "rc-tooltip": "^6.2.0",
30
30
  "rc-util": "^4.16.1",
31
31
  "react-ctxmenu-trigger": "^1.0.0",
32
- "react-custom-scrollbars": "^4.2.1",
32
+ "react-custom-scrollbars-2": "^4.5.0",
33
33
  "react-lifecycles-compat": "^3.0.4",
34
34
  "react-virtualized-auto-sizer": "^1.0.2",
35
35
  "react-virtuoso": "^3.1.5",
36
36
  "react-window": "^1.8.5"
37
37
  },
38
38
  "devDependencies": {
39
- "@opensumi/ide-dev-tool": "3.1.5-next-1721624769.0",
39
+ "@opensumi/ide-dev-tool": "3.1.5-next-1721876529.0",
40
40
  "@types/marked": "^4.0.7",
41
41
  "@types/react-window": "^1.8.5",
42
42
  "prop-types": "^15.8.1"
43
43
  },
44
- "gitHead": "f51352da5b36bc3e02f513f360c57ee73923dc80"
44
+ "gitHead": "2f91416373adb133b6af9a98f9126a8b485a41cb"
45
45
  }