UNPKG

@kiwicom/orbit-components

Version:

Orbit-components is a React component library which provides developers with the easiest possible way of building Kiwi.com's products.

62 lines (61 loc) 1.88 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; exports.__esModule = true; exports.default = exports.calculateBarPosition = void 0; var React = _interopRequireWildcard(require("react")); var _clsx = _interopRequireDefault(require("clsx")); const calculateBarPosition = (value, max, min, hasHistogram) => { if (Array.isArray(value)) { return { left: +((value[0] - min) / (max - min + 1) * 100).toFixed(1), width: +((value[value.length - 1] - value[0] + 1) / (max - min + 1) * 100).toFixed(1) }; } const addition = hasHistogram ? 1 : 0; return { left: 0, width: +((value - min + addition) / (max - min + addition) * 100).toFixed(1) }; }; exports.calculateBarPosition = calculateBarPosition; const BarPart = ({ className, style }) => { return /*#__PURE__*/React.createElement("div", { className: (0, _clsx.default)("h-100 rounded-100 absolute top-1/2 -translate-y-1/2", className), style: style }); }; const Bar = ({ onMouseDown, value, max, min, hasHistogram, ref }) => { const { left, width } = calculateBarPosition(value, max, min, hasHistogram); return ( /*#__PURE__*/ // eslint-disable-next-line jsx-a11y/no-static-element-interactions React.createElement("div", { className: "h-600 tap-color-none relative w-full cursor-pointer select-none", ref: ref, onMouseDown: onMouseDown }, /*#__PURE__*/React.createElement(BarPart, { className: "bg-cloud-normal left-0 w-full" }), /*#__PURE__*/React.createElement(BarPart, { className: "bg-blue-normal", style: { insetInlineStart: `${left}%`, width: `${width}%` } })) ); }; var _default = exports.default = Bar;