| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.adaptor = exports.meta = void 0;
- var tslib_1 = require("tslib");
- var util_1 = require("@antv/util");
- var common_1 = require("../../adaptor/common");
- var point_1 = require("../../adaptor/geometries/point");
- var utils_1 = require("../../utils");
- var padding_1 = require("../../utils/padding");
- var constant_1 = require("./constant");
- var utils_2 = require("./utils");
- /**
- * 获取默认 option
- * @param params
- */
- function defaultOptions(params) {
- var chart = params.chart;
- var diameter = Math.min(chart.viewBBox.width, chart.viewBBox.height);
- return (0, utils_1.deepAssign)({
- options: {
- size: function (_a) {
- var r = _a.r;
- return r * diameter;
- }, // 当autofit:false时,默认给固定半径
- },
- }, params);
- }
- /**
- * padding 配置
- * @param params
- */
- function padding(params) {
- var options = params.options, chart = params.chart;
- // 通过改变 padding,修改 coordinate 的绘制区域
- var containerSize = chart.viewBBox;
- var padding = options.padding, appendPadding = options.appendPadding, drilldown = options.drilldown;
- var tempAppendPadding = appendPadding;
- if (drilldown === null || drilldown === void 0 ? void 0 : drilldown.enabled) {
- var appendPaddingByDrilldown = (0, padding_1.getAdjustAppendPadding)(chart.appendPadding, (0, util_1.get)(drilldown, ['breadCrumb', 'position']));
- tempAppendPadding = (0, padding_1.resolveAllPadding)([appendPaddingByDrilldown, appendPadding]);
- }
- var finalPadding = (0, utils_2.resolvePaddingForCircle)(padding, tempAppendPadding, containerSize).finalPadding;
- chart.padding = finalPadding;
- chart.appendPadding = 0;
- return params;
- }
- /**
- * 字段
- * @param params
- */
- function geometry(params) {
- var chart = params.chart, options = params.options;
- var padding = chart.padding, appendPadding = chart.appendPadding;
- var color = options.color, colorField = options.colorField, pointStyle = options.pointStyle, hierarchyConfig = options.hierarchyConfig, sizeField = options.sizeField, _a = options.rawFields, rawFields = _a === void 0 ? [] : _a, drilldown = options.drilldown;
- var data = (0, utils_2.transformData)({
- data: options.data,
- hierarchyConfig: hierarchyConfig,
- enableDrillDown: drilldown === null || drilldown === void 0 ? void 0 : drilldown.enabled,
- rawFields: rawFields,
- });
- chart.data(data);
- var containerSize = chart.viewBBox;
- var finalSize = (0, utils_2.resolvePaddingForCircle)(padding, appendPadding, containerSize).finalSize;
- // 有sizeField的时候,例如 value ,可以选择映射 size 函数,自己计算出映射的半径
- var circleSize = function (_a) {
- var r = _a.r;
- return r * finalSize;
- }; // 默认配置
- if (sizeField) {
- circleSize = function (d) { return d[sizeField] * finalSize; }; // 目前只有 r 通道映射效果会正常
- }
- // geometry
- (0, point_1.point)((0, utils_1.deepAssign)({}, params, {
- options: {
- xField: 'x',
- yField: 'y',
- seriesField: colorField,
- sizeField: sizeField,
- rawFields: tslib_1.__spreadArray(tslib_1.__spreadArray([], constant_1.RAW_FIELDS, true), rawFields, true),
- point: {
- color: color,
- style: pointStyle,
- shape: 'circle',
- size: circleSize,
- },
- },
- }));
- return params;
- }
- /**
- * meta 配置
- * @param params
- */
- function meta(params) {
- return (0, utils_1.flow)((0, common_1.scale)({}, {
- // 必须强制为 nice
- x: { min: 0, max: 1, minLimit: 0, maxLimit: 1, nice: true },
- y: { min: 0, max: 1, minLimit: 0, maxLimit: 1, nice: true },
- }))(params);
- }
- exports.meta = meta;
- /**
- * tooltip 配置
- * @param params
- */
- function tooltip(params) {
- var chart = params.chart, options = params.options;
- var tooltip = options.tooltip;
- if (tooltip === false) {
- chart.tooltip(false);
- }
- else {
- var tooltipOptions = tooltip;
- // 设置了 fields,就不进行 customItems 了; 设置 formatter 时,需要搭配 fields
- if (!(0, util_1.get)(tooltip, 'fields')) {
- tooltipOptions = (0, utils_1.deepAssign)({}, {
- customItems: function (items) {
- return items.map(function (item) {
- var scales = (0, util_1.get)(chart.getOptions(), 'scales');
- var nameFormatter = (0, util_1.get)(scales, ['name', 'formatter'], function (v) { return v; });
- var valueFormatter = (0, util_1.get)(scales, ['value', 'formatter'], function (v) { return v; });
- return tslib_1.__assign(tslib_1.__assign({}, item), { name: nameFormatter(item.data.name), value: valueFormatter(item.data.value) });
- });
- },
- }, tooltipOptions);
- }
- chart.tooltip(tooltipOptions);
- }
- return params;
- }
- /**
- * 坐标轴, 默认关闭
- * @param params
- */
- function axis(params) {
- var chart = params.chart;
- chart.axis(false);
- return params;
- }
- function adaptorInteraction(options) {
- var drilldown = options.drilldown, _a = options.interactions, interactions = _a === void 0 ? [] : _a;
- if (drilldown === null || drilldown === void 0 ? void 0 : drilldown.enabled) {
- return (0, utils_1.deepAssign)({}, options, {
- interactions: tslib_1.__spreadArray(tslib_1.__spreadArray([], interactions, true), [
- {
- type: 'drill-down',
- cfg: { drillDownConfig: drilldown, transformData: utils_2.transformData, enableDrillDown: true },
- },
- ], false),
- });
- }
- return options;
- }
- /**
- * 交互配置
- * @param params
- * @returns
- */
- function interaction(params) {
- var chart = params.chart, options = params.options;
- (0, common_1.interaction)({
- chart: chart,
- options: adaptorInteraction(options),
- });
- return params;
- }
- /**
- * 矩形树图
- * @param chart
- * @param options
- */
- function adaptor(params) {
- return (0, utils_1.flow)((0, common_1.pattern)('pointStyle'), defaultOptions, padding, common_1.theme, meta, geometry, axis, common_1.legend, tooltip, interaction, common_1.animation, (0, common_1.annotation)())(params);
- }
- exports.adaptor = adaptor;
- //# sourceMappingURL=adaptor.js.map
|