1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var tslib_1 = require("tslib");
|
4 | var util_1 = require("@antv/util");
|
5 | var wolfy87_eventemitter_1 = tslib_1.__importDefault(require("wolfy87-eventemitter"));
|
6 | var view_1 = require("./view");
|
7 | var constants_1 = tslib_1.__importDefault(require("./constants"));
|
8 |
|
9 |
|
10 |
|
11 |
|
12 | var DataSet = (function (_super) {
|
13 | tslib_1.__extends(DataSet, _super);
|
14 | |
15 |
|
16 |
|
17 | function DataSet(initialProps) {
|
18 | if (initialProps === void 0) { initialProps = { state: {} }; }
|
19 | var _this = _super.call(this) || this;
|
20 | |
21 |
|
22 |
|
23 | _this.isDataSet = true;
|
24 | _this._onChangeTimer = null;
|
25 | |
26 |
|
27 |
|
28 | _this.views = {};
|
29 | |
30 |
|
31 |
|
32 | _this.state = {};
|
33 |
|
34 | _this.state = initialProps.state;
|
35 | return _this;
|
36 | }
|
37 | |
38 |
|
39 |
|
40 |
|
41 |
|
42 | DataSet.registerConnector = function (name, connector) {
|
43 | DataSet.connectors[name] = connector;
|
44 | };
|
45 | DataSet.getConnector = function (name) {
|
46 | return DataSet.connectors[name] || DataSet.connectors.default;
|
47 | };
|
48 | |
49 |
|
50 |
|
51 |
|
52 |
|
53 | DataSet.registerTransform = function (name, transform) {
|
54 | DataSet.transforms[name] = transform;
|
55 | };
|
56 | DataSet.getTransform = function (name) {
|
57 | return DataSet.transforms[name] || DataSet.transforms.default;
|
58 | };
|
59 | DataSet.prototype._getUniqueViewName = function () {
|
60 | var name = util_1.uniqueId('view_');
|
61 | while (this.views[name]) {
|
62 | name = util_1.uniqueId('view_');
|
63 | }
|
64 | return name;
|
65 | };
|
66 | DataSet.prototype.createView = function (name, options) {
|
67 | if (util_1.isNil(name)) {
|
68 | name = this._getUniqueViewName();
|
69 | }
|
70 | if (util_1.isObject(name)) {
|
71 | options = name;
|
72 | name = this._getUniqueViewName();
|
73 | }
|
74 | if (this.views[name]) {
|
75 | throw new Error("data view exists: " + name);
|
76 | }
|
77 | var view = new view_1.View(this, options);
|
78 | this.views[name] = view;
|
79 | return view;
|
80 | };
|
81 | |
82 |
|
83 |
|
84 |
|
85 | DataSet.prototype.getView = function (name) {
|
86 | return this.views[name];
|
87 | };
|
88 | |
89 |
|
90 |
|
91 |
|
92 |
|
93 | DataSet.prototype.setView = function (name, view) {
|
94 | this.views[name] = view;
|
95 | };
|
96 | |
97 |
|
98 |
|
99 |
|
100 |
|
101 | DataSet.prototype.setState = function (name, value) {
|
102 | var _this = this;
|
103 | this.state[name] = value;
|
104 | if (this._onChangeTimer) {
|
105 | window.clearTimeout(this._onChangeTimer);
|
106 | this._onChangeTimer = null;
|
107 | }
|
108 | this._onChangeTimer = window.setTimeout(function () {
|
109 | _this.emit('statechange', name, value);
|
110 | }, 16);
|
111 | };
|
112 | |
113 |
|
114 |
|
115 | DataSet.CONSTANTS = constants_1.default;
|
116 | |
117 |
|
118 |
|
119 | DataSet.connectors = {};
|
120 | |
121 |
|
122 |
|
123 | DataSet.transforms = {};
|
124 | DataSet.DataSet = DataSet;
|
125 | DataSet.DataView = view_1.View;
|
126 | DataSet.View = view_1.View;
|
127 | DataSet.version = '____DATASET_VERSION____';
|
128 | return DataSet;
|
129 | }(wolfy87_eventemitter_1.default));
|
130 | exports.DataSet = DataSet;
|
131 |
|
132 | util_1.assign(DataSet, constants_1.default);
|
133 |
|
134 | util_1.assign(DataSet.prototype, {
|
135 | view: DataSet.prototype.createView,
|
136 | });
|
137 | view_1.View.DataSet = DataSet;
|