1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var tslib_1 = require("tslib");
|
4 | var constant_1 = require("../constant");
|
5 | var base_1 = tslib_1.__importDefault(require("./base"));
|
6 | var element_1 = tslib_1.__importDefault(require("./element"));
|
7 |
|
8 | require("./shape/line");
|
9 | var is_model_change_1 = require("./util/is-model-change");
|
10 | var diff_1 = require("./util/diff");
|
11 |
|
12 |
|
13 |
|
14 |
|
15 | var Path = (function (_super) {
|
16 | tslib_1.__extends(Path, _super);
|
17 | function Path(cfg) {
|
18 | var _this = _super.call(this, cfg) || this;
|
19 | _this.type = 'path';
|
20 | _this.shapeType = 'line';
|
21 | var _a = cfg.connectNulls, connectNulls = _a === void 0 ? false : _a, _b = cfg.showSinglePoint, showSinglePoint = _b === void 0 ? true : _b;
|
22 | _this.connectNulls = connectNulls;
|
23 | _this.showSinglePoint = showSinglePoint;
|
24 | return _this;
|
25 | }
|
26 | |
27 |
|
28 |
|
29 |
|
30 |
|
31 |
|
32 | Path.prototype.updateElements = function (mappingDataArray, isUpdate) {
|
33 | var e_1, _a, e_2, _b, e_3, _c;
|
34 | if (isUpdate === void 0) { isUpdate = false; }
|
35 |
|
36 | var keyData = new Map();
|
37 | var keyIndex = new Map();
|
38 | var keys = [];
|
39 | var index = 0;
|
40 | for (var i = 0; i < mappingDataArray.length; i++) {
|
41 | var mappingData = mappingDataArray[i];
|
42 | var key = this.getElementId(mappingData);
|
43 | keys.push(key);
|
44 | keyData.set(key, mappingData);
|
45 | keyIndex.set(key, index);
|
46 | index++;
|
47 | }
|
48 | this.elements = new Array(index);
|
49 | var _d = (0, diff_1.diff)(this.lastElementsMap, keys), added = _d.added, updated = _d.updated, removed = _d.removed;
|
50 | try {
|
51 | for (var added_1 = tslib_1.__values(added), added_1_1 = added_1.next(); !added_1_1.done; added_1_1 = added_1.next()) {
|
52 | var key = added_1_1.value;
|
53 | var mappingData = keyData.get(key);
|
54 | var shapeFactory = this.getShapeFactory();
|
55 | var shapeCfg = this.getShapeInfo(mappingData);
|
56 | var i = keyIndex.get(key);
|
57 | var element = new element_1.default({
|
58 | shapeFactory: shapeFactory,
|
59 | container: this.container,
|
60 | offscreenGroup: this.getOffscreenGroup(),
|
61 | elementIndex: i,
|
62 | });
|
63 | element.geometry = this;
|
64 | element.animate = this.animateOption;
|
65 | element.draw(shapeCfg, isUpdate);
|
66 | this.elementsMap[key] = element;
|
67 | this.elements[i] = element;
|
68 | }
|
69 | }
|
70 | catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
71 | finally {
|
72 | try {
|
73 | if (added_1_1 && !added_1_1.done && (_a = added_1.return)) _a.call(added_1);
|
74 | }
|
75 | finally { if (e_1) throw e_1.error; }
|
76 | }
|
77 | try {
|
78 | for (var updated_1 = tslib_1.__values(updated), updated_1_1 = updated_1.next(); !updated_1_1.done; updated_1_1 = updated_1.next()) {
|
79 | var key = updated_1_1.value;
|
80 | var mappingData = keyData.get(key);
|
81 | var element = this.lastElementsMap[key];
|
82 | var i = keyIndex.get(key);
|
83 | var shapeCfg = this.getShapeInfo(mappingData);
|
84 | var preShapeCfg = element.getModel();
|
85 | if (this.isCoordinateChanged || (0, is_model_change_1.isModelChange)(preShapeCfg, shapeCfg)) {
|
86 | element.animate = this.animateOption;
|
87 |
|
88 | element.update(shapeCfg);
|
89 | }
|
90 | this.elementsMap[key] = element;
|
91 | this.elements[i] = element;
|
92 | }
|
93 | }
|
94 | catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
95 | finally {
|
96 | try {
|
97 | if (updated_1_1 && !updated_1_1.done && (_b = updated_1.return)) _b.call(updated_1);
|
98 | }
|
99 | finally { if (e_2) throw e_2.error; }
|
100 | }
|
101 | try {
|
102 | for (var removed_1 = tslib_1.__values(removed), removed_1_1 = removed_1.next(); !removed_1_1.done; removed_1_1 = removed_1.next()) {
|
103 | var key = removed_1_1.value;
|
104 | var element = this.lastElementsMap[key];
|
105 |
|
106 | element.animate = this.animateOption;
|
107 | element.destroy();
|
108 | }
|
109 | }
|
110 | catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
111 | finally {
|
112 | try {
|
113 | if (removed_1_1 && !removed_1_1.done && (_c = removed_1.return)) _c.call(removed_1);
|
114 | }
|
115 | finally { if (e_3) throw e_3.error; }
|
116 | }
|
117 | };
|
118 | |
119 |
|
120 |
|
121 |
|
122 | Path.prototype.getPointsAndData = function (mappingData) {
|
123 | var points = [];
|
124 | var data = [];
|
125 | for (var i = 0, len = mappingData.length; i < len; i++) {
|
126 | var obj = mappingData[i];
|
127 | points.push({
|
128 | x: obj.x,
|
129 | y: obj.y,
|
130 | });
|
131 | data.push(obj[constant_1.FIELD_ORIGIN]);
|
132 | }
|
133 | return {
|
134 | points: points,
|
135 | data: data,
|
136 | };
|
137 | };
|
138 | Path.prototype.getShapeInfo = function (mappingData) {
|
139 | var shapeCfg = this.getDrawCfg(mappingData[0]);
|
140 | var _a = this.getPointsAndData(mappingData), points = _a.points, data = _a.data;
|
141 | shapeCfg.mappingData = mappingData;
|
142 | shapeCfg.data = data;
|
143 | shapeCfg.isStack = !!this.getAdjust('stack');
|
144 | shapeCfg.points = points;
|
145 | shapeCfg.connectNulls = this.connectNulls;
|
146 | shapeCfg.showSinglePoint = this.showSinglePoint;
|
147 | return shapeCfg;
|
148 | };
|
149 | return Path;
|
150 | }(base_1.default));
|
151 | exports.default = Path;
|
152 |
|
\ | No newline at end of file |