UNPKG

@antv/f2

Version:

Charts for mobile visualization.

110 lines (109 loc) 4.03 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper")); var _attr = require("../../attr"); var _component = _interopRequireDefault(require("../../base/component")); var _coord = _interopRequireDefault(require("../../controller/coord")); var _src = require("../../deps/d3-hierarchy/src"); var _jsx = require("../../jsx"); var _default = function _default(View) { return /*#__PURE__*/function (_Component) { (0, _inherits2.default)(Treemap, _Component); var _super = (0, _createSuper2.default)(Treemap); function Treemap(props, context, updater) { var _this; (0, _classCallCheck2.default)(this, Treemap); _this = _super.call(this, props, context, updater); var coord = props.coord, color = props.color, data = props.data; var width = context.width, height = context.height, theme = context.theme; _this.coordController = new _coord.default(); var _assertThisInitialize = (0, _assertThisInitialized2.default)(_this), coordController = _assertThisInitialize.coordController; _this.coord = coordController.create(coord, { width: width, height: height }); _this.color = new _attr.Category((0, _objectSpread2.default)((0, _objectSpread2.default)({ range: theme.colors }, color), {}, { data: data })); return _this; } (0, _createClass2.default)(Treemap, [{ key: "treemapLayout", value: function treemapLayout() { var props = this.props, coord = this.coord, colorAttr = this.color; var data = props.data, value = props.value; var root = (0, _src.hierarchy)({ children: data }).sum(function (d) { return d[value]; }).sort(function (a, b) { return b[value] - a[value]; }); var treemapLayout = (0, _src.treemap)() // 默认treemapSquarify .tile(_src.treemapBinary) // .size([1, 1]) // @ts-ignore .round(false); // .padding(space) // .paddingInner(space); // .paddingOuter(options.paddingOuter) // .paddingTop(options.paddingTop) // .paddingRight(options.paddingRight) // .paddingBottom(options.paddingBottom) // .paddingLeft(options.paddingLeft); var nodes = treemapLayout(root); return nodes.children.map(function (item) { var data = item.data, x0 = item.x0, y0 = item.y0, x1 = item.x1, y1 = item.y1; var color = colorAttr.mapping(data[colorAttr.field]); var rect = coord.convertRect({ x: [x0, x1], y: [y0, y1] }); return (0, _objectSpread2.default)({ key: data.key, origin: data, color: color }, rect); }); } }, { key: "render", value: function render() { var nodes = this.treemapLayout(); var props = this.props, coord = this.coord; return (0, _jsx.jsx)(View, (0, _objectSpread2.default)((0, _objectSpread2.default)({ nodes: nodes }, props), {}, { coord: coord })); } }]); return Treemap; }(_component.default); }; exports.default = _default;