UNPKG

bizcharts

Version:
132 lines 5.14 kB
"use strict"; 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 __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 is_array_1 = __importDefault(require("@antv/util/lib/is-array")); var deep_mix_1 = __importDefault(require("@antv/util/lib/deep-mix")); var each_1 = __importDefault(require("@antv/util/lib/each")); var warning_1 = __importDefault(require("warning")); var shallowEqual_1 = __importDefault(require("../../utils/shallowEqual")); var ViewHelper = /** @class */ (function () { function ViewHelper(chart) { this.config = {}; this.isRootView = false; this.chart = chart; } ViewHelper.prototype.creatViewInstance = function (options) { this.view = this.chart.createView(this.processOptions(options)); // @ts-ignore this.view.rootChart = this.chart; }; ViewHelper.prototype.getView = function () { return this.view; }; ViewHelper.prototype.update = function (newConfig) { var _this = this; // 不需要重建实例 var preData = this.config.data; var scale = newConfig.scale, animate = newConfig.animate, filter = newConfig.filter, visible = newConfig.visible; var _a = newConfig.data, data = _a === void 0 ? [] : _a; if (data.rows) { (0, warning_1.default)(!data.rows, 'bizcharts@4不支持 dataset数据格式,请使用data={dv.rows}'); data = data.rows; } if (!this.view || (0, is_array_1.default)(preData) && preData.length === 0) { // hack g2 数据切换的问题 this.destroy(); this.creatViewInstance(newConfig); } // 数据 if ((0, is_array_1.default)(preData)) { this.view.changeData(data); // 数据只做2级浅比较 var isEqual_1 = true; if (preData.length !== data.length) { isEqual_1 = false; } else { preData.forEach(function (element, index) { if (!(0, shallowEqual_1.default)(element, data[index])) { isEqual_1 = false; } }); } if (!isEqual_1) { this.view.changeData(data); } } else { this.view.data(data); } // 比例尺 this.view.scale(scale); // animate this.view.animate(animate); // filter (0, each_1.default)(this.config.filter, function (it, index) { // 销毁 if ((0, is_array_1.default)(it)) { _this.view.filter(it[0], null); } else { _this.view.filter(index, null); } }); (0, each_1.default)(filter, function (it, index) { if ((0, is_array_1.default)(it)) { _this.view.filter(it[0], it[1]); } else { _this.view.filter(index, it); } }); // visible if (visible) { this.view.show(); } else { this.view.hide(); } this.config = __assign(__assign({}, newConfig), { data: data }); }; ViewHelper.prototype.destroy = function () { if (this.view) { this.view.destroy(); this.view = null; } this.config = {}; }; ViewHelper.prototype.processOptions = function (options) { var region = options.region, start = options.start, end = options.end, other = __rest(options, ["region", "start", "end"]); (0, warning_1.default)(!start, 'start 属性将在5.0后废弃,请使用 region={{ start: {x:0,y:0}}} 替代'); (0, warning_1.default)(!end, 'end 属性将在5.0后废弃,请使用 region={{ end: {x:0,y:0}}} 替代'); var regionCfg = (0, deep_mix_1.default)({ start: { x: 0, y: 0 }, end: { x: 1, y: 1 } }, { start: start, end: end }, region); return __assign(__assign({}, other), { region: regionCfg }); }; return ViewHelper; }()); exports.default = ViewHelper; //# sourceMappingURL=viewHelper.js.map