UNPKG

@uiw/react-heat-map

Version:

React component create calendar heatmap to visualize time series data, a la github contribution graph.

48 lines (47 loc) 2.27 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = Legend; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireWildcard(require("react")); var _Rect = require("./Rect"); var _jsxRuntime = require("react/jsx-runtime"); var _excluded = ["panelColors", "leftPad", "topPad", "space", "rectSize", "legendCellSize", "legendRender"]; function Legend(_ref) { var panelColors = _ref.panelColors, _ref$leftPad = _ref.leftPad, leftPad = _ref$leftPad === void 0 ? 0 : _ref$leftPad, _ref$topPad = _ref.topPad, topPad = _ref$topPad === void 0 ? 0 : _ref$topPad, _ref$space = _ref.space, space = _ref$space === void 0 ? 0 : _ref$space, _ref$rectSize = _ref.rectSize, rectSize = _ref$rectSize === void 0 ? 0 : _ref$rectSize, _ref$legendCellSize = _ref.legendCellSize, legendCellSize = _ref$legendCellSize === void 0 ? 0 : _ref$legendCellSize, legendRender = _ref.legendRender, props = (0, _objectWithoutProperties2["default"])(_ref, _excluded); var size = legendCellSize || rectSize; return (0, _react.useMemo)(function () { return /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.Fragment, { children: Object.keys(panelColors || {}).map(function (num, key) { var rectProps = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, props), {}, { key: key, x: (size + 1) * key + leftPad, y: topPad + rectSize * 8 + 6, fill: panelColors[Number(num)], width: size, height: size }); if (legendRender) return legendRender(rectProps); return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Rect.Rect, (0, _objectSpread2["default"])({}, rectProps)); }) }); }, [panelColors, props, size, leftPad, topPad, rectSize, legendRender]); } module.exports = exports.default; //# sourceMappingURL=Legend.js.map