UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

65 lines (64 loc) 3.65 kB
"use strict"; function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(require("react")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _netdataUi = require("@netdata/netdata-ui"); var _provider = require("../provider"); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } var ResizableBar = (0, _styledComponents["default"])(_netdataUi.Flex).attrs({ padding: [3, 0], height: 2 }).withConfig({ displayName: "separator__ResizableBar", componentId: "sc-1nvt1gy-0" })(["cursor:row-resize;background:transparent;position:relative;&::before{content:\"\";position:absolute;top:50%;left:50%;right:0;height:2px;width:30%;background:", ";transform:translate(-50%,-50%);transition:height 0.2s ease;}&:hover::before{height:4px;background:", ";}"], function (_ref) { var theme = _ref.theme; return (0, _netdataUi.getColor)("borderSecondary")({ theme: theme }); }, function (_ref2) { var theme = _ref2.theme; return (0, _netdataUi.getColor)("primary")({ theme: theme }); }); var Separator = function Separator() { var chart = (0, _provider.useChart)(); var expandedHeight = (0, _provider.useAttributeValue)("expandedHeight"); var currentHeight = parseInt(chart.getAttribute("height") || "400"); var startYRef = (0, _react.useRef)(null); var handleMouseDown = function handleMouseDown(e) { e.preventDefault(); startYRef.current = e.clientY; var handleMouseMove = function handleMouseMove(e) { var delta = e.clientY - startYRef.current; var minDrawerHeight = 150; var maxDrawerHeight = 600; var minChartHeight = 200; var newDrawerHeight = Math.max(minDrawerHeight, Math.min(maxDrawerHeight, expandedHeight - delta)); var newChartHeight = Math.max(minChartHeight, currentHeight + delta); chart.updateAttribute("expandedHeight", newDrawerHeight); chart.updateAttribute("height", newChartHeight); chart.trigger("resize"); }; var _handleMouseUp = function handleMouseUp() { document.removeEventListener("mousemove", handleMouseMove); document.removeEventListener("mouseup", _handleMouseUp); document.body.style.cursor = ""; startYRef.current = null; }; document.addEventListener("mousemove", handleMouseMove); document.addEventListener("mouseup", _handleMouseUp); document.body.style.cursor = "row-resize"; }; return /*#__PURE__*/(0, _jsxRuntime.jsx)(ResizableBar, { onMouseDown: handleMouseDown }); }; var _default = exports["default"] = Separator;