bizcharts
Version:
bizcharts
168 lines • 7.04 kB
JavaScript
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var react_1 = __importDefault(require("react"));
var util_1 = require("@antv/g2/lib/geometry/shape/area/util");
// 按需使用需要加载图形
require("@antv/g2/lib/geometry/shape/line");
require("@antv/g2/lib/geometry/shape/area");
var is_object_1 = __importDefault(require("@antv/util/lib/is-object"));
var deep_mix_1 = __importDefault(require("@antv/util/lib/deep-mix"));
var get_1 = __importDefault(require("@antv/util/lib/get"));
var set_1 = __importDefault(require("@antv/util/lib/set"));
var core_1 = require("../core");
var d3Color = __importStar(require("d3-color"));
var useChartView_1 = __importDefault(require("../hooks/useChartView"));
var useChartInstance_1 = __importDefault(require("../hooks/useChartInstance"));
var Line_1 = __importDefault(require("./Line"));
var Point_1 = __importDefault(require("./Point"));
var Area_1 = __importDefault(require("./Area"));
var areaStyle = {
"default": {
"style": {
"fill": "#5B8FF9",
"fillOpacity": 0.25,
"stroke": null
}
},
"active": {
"style": { "fillOpacity": 0.5 }
},
"inactive": {
"style": { "fillOpacity": 0.4 }
},
"selected": {
"style": { "fillOpacity": 0.5 }
}
};
var LineAdvance = function (props) {
var point = props.point, area = props.area, shape = props.shape, cfg = __rest(props, ["point", "area", "shape"]);
var pointCfg = { shape: 'circle' };
var chart = (0, useChartInstance_1.default)();
var view = (0, useChartView_1.default)();
var areaCfg = { shape: shape === 'smooth' ? 'gradient-smooth' : 'gradient' };
var theme = view.getTheme();
// todo: 需要g2层修改
theme.geometries.area.gradient = areaStyle;
// todo: 需要g2层修改
theme.geometries.area['gradient-smooth'] = areaStyle;
if ((0, get_1.default)(chart, ['options', 'tooltip']) !== false) {
// 默认为shared
if ((0, get_1.default)(view, ['options', 'tooltip', 'shared']) === undefined) {
(0, set_1.default)(view, ['options', 'tooltip', 'shared'], true);
}
;
// 默认showCrosshairs
if ((0, get_1.default)(view, ['options', 'tooltip', 'showCrosshairs']) === undefined) {
(0, set_1.default)(view, ['options', 'tooltip', 'showCrosshairs'], true);
}
;
if ((0, get_1.default)(view, ['options', 'tooltip', 'showMarkers']) === undefined) {
(0, set_1.default)(view, ['options', 'tooltip', 'showMarkers'], true);
}
;
}
if ((0, is_object_1.default)(pointCfg)) {
(0, deep_mix_1.default)(pointCfg, point);
}
if ((0, is_object_1.default)(areaCfg)) {
(0, deep_mix_1.default)(areaCfg, area);
}
return (react_1.default.createElement(react_1.default.Fragment, null,
react_1.default.createElement(Line_1.default, __assign({ shape: shape, state: {
default: { style: { shadowColor: '#ddd', shadowBlur: 3, shadowOffsetY: 2 } },
active: { style: { shadowColor: '#ddd', shadowBlur: 3, shadowOffsetY: 5 } },
} }, cfg)),
!!area && react_1.default.createElement(Area_1.default, __assign({}, cfg, { tooltip: false }, areaCfg)),
!!point && react_1.default.createElement(Point_1.default, __assign({ size: 3 }, cfg, { state: {
active: { style: { stroke: '#fff', lineWidth: 1.5, strokeOpacity: 0.9 } },
}, tooltip: false }, pointCfg))));
};
// Area 几何标记默认的 shape:填充的区域图
(0, core_1.registerShape)('area', 'gradient', {
draw: function (cfg, container) {
var attrs = (0, util_1.getShapeAttrs)(cfg, false, false, this);
var c = attrs.fill;
var clr = d3Color.color(c);
if (clr) {
attrs.fill = "l (90) 0:".concat(d3Color.rgb(clr.r, clr.g, clr.b, 1).formatRgb(), " 1:").concat(d3Color.rgb(clr.r, clr.g, clr.b, 0.1).formatRgb());
}
// attrs.fill = 'red';
var shape = container.addShape({
type: 'path',
attrs: attrs,
name: 'area',
});
return shape;
},
});
/**
* 填充的平滑曲面图
*/
(0, core_1.registerShape)('area', 'gradient-smooth', {
draw: function (cfg, container) {
var coordinate = this.coordinate;
var attrs = (0, util_1.getShapeAttrs)(cfg, false, true, this, (0, util_1.getConstraint)(coordinate));
var c = attrs.fill;
var clr = d3Color.color(c);
if (clr) {
attrs.fill = "l (90) 0:".concat(d3Color.rgb(clr.r, clr.g, clr.b, 1).formatRgb(), " 1:").concat(d3Color.rgb(clr.r, clr.g, clr.b, 0.1).formatRgb());
}
// attrs.fill = 'red';
var shape = container.addShape({
type: 'path',
attrs: attrs,
name: 'area',
});
return shape;
}
});
exports.default = LineAdvance;
//# sourceMappingURL=LineAdvance.js.map
;