vislite 0.5.0 → 0.5.2-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/CHANGELOG +137 -132
  2. package/lib/Buffer/index.umd.js +36 -36
  3. package/lib/Buffer/index.umd.min.js +2 -2
  4. package/lib/Canvas/index.umd.js +650 -650
  5. package/lib/Canvas/index.umd.min.js +2 -2
  6. package/lib/Cardinal/index.umd.js +91 -91
  7. package/lib/Cardinal/index.umd.min.js +2 -2
  8. package/lib/Eoap/index.umd.js +34 -34
  9. package/lib/Eoap/index.umd.min.js +2 -2
  10. package/lib/Geometry/index.umd.js +142 -142
  11. package/lib/Geometry/index.umd.min.js +2 -2
  12. package/lib/Hermite/index.umd.js +36 -36
  13. package/lib/Hermite/index.umd.min.js +2 -2
  14. package/lib/Matrix4/index.umd.js +119 -119
  15. package/lib/Matrix4/index.umd.min.js +2 -2
  16. package/lib/Mercator/index.umd.js +20 -20
  17. package/lib/Mercator/index.umd.min.js +2 -2
  18. package/lib/OralCanvas/index.es.js +598 -598
  19. package/lib/OralCanvas/index.es.min.js +2 -2
  20. package/lib/OralWebGL/index.es.js +524 -524
  21. package/lib/OralWebGL/index.es.min.js +2 -2
  22. package/lib/SVG/index.umd.js +406 -406
  23. package/lib/SVG/index.umd.min.js +2 -2
  24. package/lib/Shader/index.umd.js +61 -61
  25. package/lib/Shader/index.umd.min.js +2 -2
  26. package/lib/Texture/index.umd.js +53 -53
  27. package/lib/Texture/index.umd.min.js +2 -2
  28. package/lib/TreeLayout/index.umd.js +363 -363
  29. package/lib/TreeLayout/index.umd.min.js +2 -2
  30. package/lib/WebGL/index.umd.js +571 -571
  31. package/lib/WebGL/index.umd.min.js +2 -2
  32. package/lib/animation/index.umd.js +72 -72
  33. package/lib/animation/index.umd.min.js +2 -2
  34. package/lib/formatColor/index.umd.js +40 -40
  35. package/lib/formatColor/index.umd.min.js +2 -2
  36. package/lib/getLoopColors/index.umd.js +36 -36
  37. package/lib/getLoopColors/index.umd.min.js +2 -2
  38. package/lib/getWebGLContext/index.umd.js +44 -44
  39. package/lib/getWebGLContext/index.umd.min.js +2 -2
  40. package/lib/index.umd.js +2647 -2647
  41. package/lib/index.umd.min.js +2 -2
  42. package/lib/resizeObserver/index.umd.js +29 -29
  43. package/lib/resizeObserver/index.umd.min.js +2 -2
  44. package/lib/rotate/index.umd.js +8 -8
  45. package/lib/rotate/index.umd.min.js +2 -2
  46. package/lib/ruler/index.umd.js +126 -126
  47. package/lib/ruler/index.umd.min.js +2 -2
  48. package/lib/throttle/index.umd.js +49 -49
  49. package/lib/throttle/index.umd.min.js +2 -2
  50. package/lib/viewHandler/index.umd.js +120 -120
  51. package/lib/viewHandler/index.umd.min.js +2 -2
  52. package/package/Geometry/index.ts +2 -2
  53. package/package/index.ts +72 -72
  54. package/package.json +66 -66
  55. package/src/Eoap.ts +66 -66
  56. package/src/Geometry.ts +82 -82
  57. package/src/Matrix4/index.ts +76 -76
  58. package/src/Mercator.ts +27 -27
  59. package/src/TreeLayout/index.ts +186 -186
  60. package/src/common/geometry/prism-horizontal.ts +33 -33
  61. package/src/common/geometry/prism-vertical.ts +40 -40
  62. package/src/common/geometry/sphere-fragment.ts +39 -39
  63. package/src/common/geometry/tool/circle.ts +11 -11
  64. package/src/common/svg/index.ts +344 -344
  65. package/src/rotate.ts +7 -7
  66. package/types/CanvasConfig.d.ts +106 -106
  67. package/types/Geometry.d.ts +40 -40
  68. package/types/GeometryOption.d.ts +11 -11
  69. package/types/GeometryResult.d.ts +18 -18
  70. package/types/Map.d.ts +9 -9
  71. package/types/Matrix4.d.ts +42 -42
  72. package/types/SVG.d.ts +215 -215
  73. package/types/TreeLayout.d.ts +54 -54
  74. package/types/index.d.ts +169 -169
  75. package/types/rotate.d.ts +2 -2
  76. package/uni-app/ui-canvas.vue +206 -202
@@ -1,12 +1,12 @@
1
1
  /*!
2
- * VISLite JavaScript Library v0.5.0
2
+ * VISLite JavaScript Library v0.5.2-alpha.1
3
3
  * git+https://github.com/oi-contrib/VISLite.git
4
4
  *
5
5
  * Copyright zxl20070701
6
6
  * Released under the MIT license
7
7
  * https://zxl20070701.github.io/notebook/home.html
8
8
  *
9
- * Publish Date: Sat Sep 30 2023 19:14:04 GMT+0800 (中国标准时间)
9
+ * Publish Date: Thu Oct 12 2023 15:44:35 GMT+0800 (China Standard Time)
10
10
  */
11
11
  (function (global, factory) {
12
12
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -50,379 +50,379 @@
50
50
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
51
51
  };
52
52
 
53
- var toInnerTree = (function (initTree, config) {
54
- var tempTree = {};
55
- var temp = config.root(initTree), id, rid;
56
- id = rid = config.id(temp);
57
- tempTree[id] = {
58
- "data": temp,
59
- "pid": null,
60
- "id": id,
61
- "isOpen": true,
62
- "show": true,
63
- "children": []
64
- };
65
- var num = 1;
66
- (function createTree(pdata, pid) {
67
- var children = config.children(pdata, initTree);
68
- num += children ? children.length : 0;
69
- for (var flag = 0; children && flag < children.length; flag++) {
70
- id = config.id(children[flag]);
71
- tempTree[pid].children.push(id);
72
- tempTree[id] = {
73
- "data": children[flag],
74
- "pid": pid,
75
- "id": id,
76
- "isOpen": true,
77
- "show": true,
78
- "children": []
79
- };
80
- createTree(children[flag], id);
81
- }
82
- })(temp, id);
83
- return {
84
- rid: rid,
85
- value: tempTree,
86
- num: num
87
- };
53
+ var toInnerTree = (function (initTree, config) {
54
+ var tempTree = {};
55
+ var temp = config.root(initTree), id, rid;
56
+ id = rid = config.id(temp);
57
+ tempTree[id] = {
58
+ "data": temp,
59
+ "pid": null,
60
+ "id": id,
61
+ "isOpen": true,
62
+ "show": true,
63
+ "children": []
64
+ };
65
+ var num = 1;
66
+ (function createTree(pdata, pid) {
67
+ var children = config.children(pdata, initTree);
68
+ num += children ? children.length : 0;
69
+ for (var flag = 0; children && flag < children.length; flag++) {
70
+ id = config.id(children[flag]);
71
+ tempTree[pid].children.push(id);
72
+ tempTree[id] = {
73
+ "data": children[flag],
74
+ "pid": pid,
75
+ "id": id,
76
+ "isOpen": true,
77
+ "show": true,
78
+ "children": []
79
+ };
80
+ createTree(children[flag], id);
81
+ }
82
+ })(temp, id);
83
+ return {
84
+ rid: rid,
85
+ value: tempTree,
86
+ num: num
87
+ };
88
88
  });
89
89
 
90
- function toPlainTree (initTree, config, noOpens) {
91
- var treeData = toInnerTree(initTree, config);
92
- var alltreedata = treeData.value;
93
- var rootid = treeData.rid;
94
- if (treeData.num == 1) {
95
- alltreedata[rootid].left = 0.5;
96
- alltreedata[rootid].top = 0.5;
97
- alltreedata[rootid].show = true;
98
- return {
99
- deep: 1,
100
- node: alltreedata,
101
- root: rootid,
102
- size: 1
103
- };
104
- }
105
- else {
106
- var beforeDis_1 = [], size_1 = 0, maxDeep_1 = 0;
107
- if (noOpens[rootid]) {
108
- alltreedata[rootid].left = 0.5;
109
- alltreedata[rootid].top = 0.5;
110
- alltreedata[rootid].show = true;
111
- size_1 = 1;
112
- }
113
- else {
114
- (function positionCalc(pNode, deep) {
115
- if (deep > maxDeep_1)
116
- maxDeep_1 = deep;
117
- var flag = 0;
118
- if (!noOpens[pNode.id]) {
119
- for (flag = 0; flag < pNode.children.length; flag++)
120
- positionCalc(alltreedata[pNode.children[flag]], deep + 1);
121
- }
122
- alltreedata[pNode.id].left = deep + 0.5;
123
- if (flag == 0) {
124
- if (beforeDis_1[deep] == void 0)
125
- beforeDis_1[deep] = -0.5;
126
- if (beforeDis_1[deep - 1] == void 0)
127
- beforeDis_1[deep - 1] = -0.5;
128
- alltreedata[pNode.id].top = beforeDis_1[deep] + 1;
129
- var pTop = beforeDis_1[deep] + 1 + (alltreedata[pNode.pid].children.length - 1) * 0.5;
130
- if (pTop - 1 < beforeDis_1[deep - 1])
131
- alltreedata[pNode.id].top = beforeDis_1[deep - 1] + 1 - (alltreedata[pNode.pid].children.length - 1) * 0.5;
132
- }
133
- else {
134
- alltreedata[pNode.id].top = (alltreedata[pNode.children[0]].top + alltreedata[pNode.children[flag - 1]].top) * 0.5;
135
- }
136
- if (alltreedata[pNode.id].top <= beforeDis_1[deep]) {
137
- var needUp_1 = beforeDis_1[deep] + 1 - alltreedata[pNode.id].top(function doUp(_pid, _deep) {
138
- alltreedata[_pid].top += needUp_1;
139
- if (beforeDis_1[_deep] < alltreedata[_pid].top)
140
- beforeDis_1[_deep] = alltreedata[_pid].top;
141
- for (var _flag = 0; _flag < alltreedata[_pid].children.length; _flag++) {
142
- doUp(alltreedata[_pid].children[_flag], _deep + 1);
143
- }
144
- })(pNode.id, deep);
145
- }
146
- beforeDis_1[deep] = alltreedata[pNode.id].top;
147
- if (alltreedata[pNode.id].top + 0.5 > size_1)
148
- size_1 = alltreedata[pNode.id].top + 0.5;
149
- })(alltreedata[rootid], 0);
150
- }
151
- for (var key in noOpens) {
152
- if (noOpens[key]) {
153
- alltreedata[key].isOpen = false;
154
- (function updateHidden(pid, left, top) {
155
- for (var index = 0; index < alltreedata[pid].children.length; index++) {
156
- alltreedata[alltreedata[pid].children[index]].left = left;
157
- alltreedata[alltreedata[pid].children[index]].top = top;
158
- alltreedata[alltreedata[pid].children[index]].show = false;
159
- updateHidden(alltreedata[pid].children[index], left, top);
160
- }
161
- })(key, alltreedata[key].left, alltreedata[key].top);
162
- }
163
- }
164
- return {
165
- "node": alltreedata,
166
- "root": rootid,
167
- "size": size_1,
168
- "deep": maxDeep_1 + 1
169
- };
170
- }
90
+ function toPlainTree (initTree, config, noOpens) {
91
+ var treeData = toInnerTree(initTree, config);
92
+ var alltreedata = treeData.value;
93
+ var rootid = treeData.rid;
94
+ if (treeData.num == 1) {
95
+ alltreedata[rootid].left = 0.5;
96
+ alltreedata[rootid].top = 0.5;
97
+ alltreedata[rootid].show = true;
98
+ return {
99
+ deep: 1,
100
+ node: alltreedata,
101
+ root: rootid,
102
+ size: 1
103
+ };
104
+ }
105
+ else {
106
+ var beforeDis_1 = [], size_1 = 0, maxDeep_1 = 0;
107
+ if (noOpens[rootid]) {
108
+ alltreedata[rootid].left = 0.5;
109
+ alltreedata[rootid].top = 0.5;
110
+ alltreedata[rootid].show = true;
111
+ size_1 = 1;
112
+ }
113
+ else {
114
+ (function positionCalc(pNode, deep) {
115
+ if (deep > maxDeep_1)
116
+ maxDeep_1 = deep;
117
+ var flag = 0;
118
+ if (!noOpens[pNode.id]) {
119
+ for (flag = 0; flag < pNode.children.length; flag++)
120
+ positionCalc(alltreedata[pNode.children[flag]], deep + 1);
121
+ }
122
+ alltreedata[pNode.id].left = deep + 0.5;
123
+ if (flag == 0) {
124
+ if (beforeDis_1[deep] == void 0)
125
+ beforeDis_1[deep] = -0.5;
126
+ if (beforeDis_1[deep - 1] == void 0)
127
+ beforeDis_1[deep - 1] = -0.5;
128
+ alltreedata[pNode.id].top = beforeDis_1[deep] + 1;
129
+ var pTop = beforeDis_1[deep] + 1 + (alltreedata[pNode.pid].children.length - 1) * 0.5;
130
+ if (pTop - 1 < beforeDis_1[deep - 1])
131
+ alltreedata[pNode.id].top = beforeDis_1[deep - 1] + 1 - (alltreedata[pNode.pid].children.length - 1) * 0.5;
132
+ }
133
+ else {
134
+ alltreedata[pNode.id].top = (alltreedata[pNode.children[0]].top + alltreedata[pNode.children[flag - 1]].top) * 0.5;
135
+ }
136
+ if (alltreedata[pNode.id].top <= beforeDis_1[deep]) {
137
+ var needUp_1 = beforeDis_1[deep] + 1 - alltreedata[pNode.id].top(function doUp(_pid, _deep) {
138
+ alltreedata[_pid].top += needUp_1;
139
+ if (beforeDis_1[_deep] < alltreedata[_pid].top)
140
+ beforeDis_1[_deep] = alltreedata[_pid].top;
141
+ for (var _flag = 0; _flag < alltreedata[_pid].children.length; _flag++) {
142
+ doUp(alltreedata[_pid].children[_flag], _deep + 1);
143
+ }
144
+ })(pNode.id, deep);
145
+ }
146
+ beforeDis_1[deep] = alltreedata[pNode.id].top;
147
+ if (alltreedata[pNode.id].top + 0.5 > size_1)
148
+ size_1 = alltreedata[pNode.id].top + 0.5;
149
+ })(alltreedata[rootid], 0);
150
+ }
151
+ for (var key in noOpens) {
152
+ if (noOpens[key]) {
153
+ alltreedata[key].isOpen = false;
154
+ (function updateHidden(pid, left, top) {
155
+ for (var index = 0; index < alltreedata[pid].children.length; index++) {
156
+ alltreedata[alltreedata[pid].children[index]].left = left;
157
+ alltreedata[alltreedata[pid].children[index]].top = top;
158
+ alltreedata[alltreedata[pid].children[index]].show = false;
159
+ updateHidden(alltreedata[pid].children[index], left, top);
160
+ }
161
+ })(key, alltreedata[key].left, alltreedata[key].top);
162
+ }
163
+ }
164
+ return {
165
+ "node": alltreedata,
166
+ "root": rootid,
167
+ "size": size_1,
168
+ "deep": maxDeep_1 + 1
169
+ };
170
+ }
171
171
  }
172
172
 
173
- function mergeOption (option, defaultOption) {
174
- for (var key in option) {
175
- defaultOption[key] = option[key];
176
- }
177
- return defaultOption;
173
+ function mergeOption (option, defaultOption) {
174
+ for (var key in option) {
175
+ defaultOption[key] = option[key];
176
+ }
177
+ return defaultOption;
178
178
  }
179
179
 
180
- var Tree = (function () {
181
- function Tree(config) {
182
- if (config === void 0) { config = {}; }
183
- this.name = 'Tree';
184
- this.__config = mergeOption(config, {
185
- root: function (initTree) { return initTree; },
186
- children: function (parentTree) { return parentTree.children; },
187
- id: function (treedata) { return treedata.name; }
188
- });
189
- }
190
- Tree.prototype.use = function (initTree, noOpens) {
191
- if (noOpens === void 0) { noOpens = {}; }
192
- return toPlainTree(initTree, this.__config, noOpens);
193
- };
194
- return Tree;
180
+ var Tree = (function () {
181
+ function Tree(config) {
182
+ if (config === void 0) { config = {}; }
183
+ this.name = 'Tree';
184
+ this.__config = mergeOption(config, {
185
+ root: function (initTree) { return initTree; },
186
+ children: function (parentTree) { return parentTree.children; },
187
+ id: function (treedata) { return treedata.name; }
188
+ });
189
+ }
190
+ Tree.prototype.use = function (initTree, noOpens) {
191
+ if (noOpens === void 0) { noOpens = {}; }
192
+ return toPlainTree(initTree, this.__config, noOpens);
193
+ };
194
+ return Tree;
195
195
  }());
196
196
 
197
- var $timers = [];
198
- var $interval = 13;
199
- var $timerId;
200
- function animation (doback, duration, callback) {
201
- if (duration === void 0) { duration = 400; }
202
- if (callback === void 0) { callback = function () { }; }
203
- var clock = {
204
- "timer": function (tick, duration, callback) {
205
- if (!tick) {
206
- throw new Error('Tick is required!');
207
- }
208
- var id = new Date().valueOf() + "_" + (Math.random() * 1000).toFixed(0);
209
- $timers.push({
210
- "id": id,
211
- "createTime": new Date(),
212
- "tick": tick,
213
- "duration": duration,
214
- "callback": callback
215
- });
216
- clock.start();
217
- return id;
218
- },
219
- "start": function () {
220
- if (!$timerId) {
221
- $timerId = setInterval(clock.tick, $interval);
222
- }
223
- },
224
- "tick": function () {
225
- var createTime, flag, tick, callback, timer, duration, passTime, timers = $timers;
226
- $timers = [];
227
- $timers.length = 0;
228
- for (flag = 0; flag < timers.length; flag++) {
229
- timer = timers[flag];
230
- createTime = timer.createTime;
231
- tick = timer.tick;
232
- duration = timer.duration;
233
- callback = timer.callback;
234
- passTime = (+new Date().valueOf() - createTime.valueOf()) / duration;
235
- passTime = passTime > 1 ? 1 : passTime;
236
- tick(passTime);
237
- if (passTime < 1 && timer.id) {
238
- $timers.push(timer);
239
- }
240
- else {
241
- callback(passTime);
242
- }
243
- }
244
- if ($timers.length <= 0) {
245
- clock.stop();
246
- }
247
- },
248
- "stop": function () {
249
- if ($timerId) {
250
- clearInterval($timerId);
251
- $timerId = null;
252
- }
253
- }
254
- };
255
- var id = clock.timer(function (deep) {
256
- doback(deep);
257
- }, duration, callback);
258
- return function () {
259
- var i;
260
- for (i in $timers) {
261
- if ($timers[i].id == id) {
262
- $timers[i].id = void 0;
263
- return;
264
- }
265
- }
266
- };
197
+ var $timers = [];
198
+ var $interval = 13;
199
+ var $timerId;
200
+ function animation (doback, duration, callback) {
201
+ if (duration === void 0) { duration = 400; }
202
+ if (callback === void 0) { callback = function () { }; }
203
+ var clock = {
204
+ "timer": function (tick, duration, callback) {
205
+ if (!tick) {
206
+ throw new Error('Tick is required!');
207
+ }
208
+ var id = new Date().valueOf() + "_" + (Math.random() * 1000).toFixed(0);
209
+ $timers.push({
210
+ "id": id,
211
+ "createTime": new Date(),
212
+ "tick": tick,
213
+ "duration": duration,
214
+ "callback": callback
215
+ });
216
+ clock.start();
217
+ return id;
218
+ },
219
+ "start": function () {
220
+ if (!$timerId) {
221
+ $timerId = setInterval(clock.tick, $interval);
222
+ }
223
+ },
224
+ "tick": function () {
225
+ var createTime, flag, tick, callback, timer, duration, passTime, timers = $timers;
226
+ $timers = [];
227
+ $timers.length = 0;
228
+ for (flag = 0; flag < timers.length; flag++) {
229
+ timer = timers[flag];
230
+ createTime = timer.createTime;
231
+ tick = timer.tick;
232
+ duration = timer.duration;
233
+ callback = timer.callback;
234
+ passTime = (+new Date().valueOf() - createTime.valueOf()) / duration;
235
+ passTime = passTime > 1 ? 1 : passTime;
236
+ tick(passTime);
237
+ if (passTime < 1 && timer.id) {
238
+ $timers.push(timer);
239
+ }
240
+ else {
241
+ callback(passTime);
242
+ }
243
+ }
244
+ if ($timers.length <= 0) {
245
+ clock.stop();
246
+ }
247
+ },
248
+ "stop": function () {
249
+ if ($timerId) {
250
+ clearInterval($timerId);
251
+ $timerId = null;
252
+ }
253
+ }
254
+ };
255
+ var id = clock.timer(function (deep) {
256
+ doback(deep);
257
+ }, duration, callback);
258
+ return function () {
259
+ var i;
260
+ for (i in $timers) {
261
+ if ($timers[i].id == id) {
262
+ $timers[i].id = void 0;
263
+ return;
264
+ }
265
+ }
266
+ };
267
267
  }
268
268
 
269
- function rotate (cx, cy, deg, x, y) {
270
- var cos = Math.cos(deg), sin = Math.sin(deg);
271
- return [
272
- (x - cx) * cos - (y - cy) * sin + cx,
273
- (x - cx) * sin + (y - cy) * cos + cy
274
- ];
269
+ function rotate (cx, cy, deg, x, y) {
270
+ var cos = Math.cos(deg), sin = Math.sin(deg);
271
+ return [
272
+ (x - cx) * cos - (y - cy) * sin + cx,
273
+ (x - cx) * sin + (y - cy) * cos + cy
274
+ ];
275
275
  }
276
276
 
277
- var TreeLayout = (function (_super) {
278
- __extends(TreeLayout, _super);
279
- function TreeLayout() {
280
- var _this = _super !== null && _super.apply(this, arguments) || this;
281
- _this.name = 'TreeLayout';
282
- _this.__option = {
283
- offsetX: 0,
284
- offsetY: 0,
285
- duration: 500,
286
- type: "plain",
287
- direction: "LR",
288
- x: 100,
289
- y: 100,
290
- width: 100,
291
- height: 100,
292
- radius: 100
293
- };
294
- _this.__noOpens = {};
295
- return _this;
296
- }
297
- TreeLayout.prototype.setOption = function (option) {
298
- mergeOption(option, this.__option);
299
- return this;
300
- };
301
- TreeLayout.prototype.use = function (initTree, noOpens) {
302
- if (noOpens === void 0) { noOpens = {}; }
303
- var tree = _super.prototype.use.call(this, initTree, noOpens);
304
- if (this.__option.offsetX != 0 || this.__option.offsetY != 0) {
305
- for (var key in tree.node) {
306
- if (!tree.node[key].show) {
307
- var deep = 0, pid = key;
308
- do {
309
- pid = tree.node[pid].pid;
310
- deep++;
311
- } while (!tree.node[pid].show);
312
- tree.node[key].left += this.__option.offsetX * deep;
313
- tree.node[key].top += this.__option.offsetY * deep;
314
- }
315
- }
316
- }
317
- if (this.__option.type == 'rect') {
318
- if (this.__option.direction == 'LR' || this.__option.direction == "RL") {
319
- var perW = this.__option.height / tree.size;
320
- var perD = this.__option.width / (tree.deep - 1);
321
- var balanceW = this.__option.y - this.__option.height * 0.5;
322
- var flag = this.__option.direction == 'LR' ? 1 : -1;
323
- for (var key in tree.node) {
324
- if (tree.deep == 1) {
325
- tree.node[key].left = this.__option.x + this.__option.width * 0.5 * flag;
326
- tree.node[key].top = this.__option.y;
327
- }
328
- else {
329
- tree.node[key].left = this.__option.x + (tree.node[key].left - 0.5) * perD * flag;
330
- tree.node[key].top = tree.node[key].top * perW + balanceW;
331
- }
332
- }
333
- }
334
- else if (this.__option.direction == 'TB' || this.__option.direction == "BT") {
335
- var perW = this.__option.width / tree.size;
336
- var perD = this.__option.height / (tree.deep - 1);
337
- var balanceW = this.__option.x - this.__option.width * 0.5;
338
- var flag = this.__option.direction == 'TB' ? 1 : -1;
339
- for (var key in tree.node) {
340
- if (tree.deep == 1) {
341
- tree.node[key].left = this.__option.x;
342
- tree.node[key].top = this.__option.y + this.__option.height * 0.5 * flag;
343
- }
344
- else {
345
- var left = tree.node[key].left;
346
- tree.node[key].left = tree.node[key].top * perW + balanceW;
347
- tree.node[key].top = this.__option.y + (left - 0.5) * perD * flag;
348
- }
349
- }
350
- }
351
- }
352
- else if (this.__option.type == 'circle') {
353
- var cx = this.__option.x, cy = this.__option.y;
354
- var deg = Math.PI * 2 / tree.size;
355
- var per = this.__option.radius / (tree.deep - 1);
356
- for (var key in tree.node) {
357
- if (tree.node[key].left == 0.5) {
358
- tree.node[key].left = cx;
359
- tree.node[key].top = cy;
360
- }
361
- else {
362
- var position = rotate(cx, cy, deg * tree.node[key].top, cx + (tree.node[key].left - 0.5) * per, cy);
363
- tree.node[key].left = position[0];
364
- tree.node[key].top = position[1];
365
- }
366
- }
367
- }
368
- return tree;
369
- };
370
- TreeLayout.prototype.bind = function (initTree, renderBack, noOpens) {
371
- if (noOpens === void 0) { noOpens = {}; }
372
- this.__rback = renderBack;
373
- this.__oralTree = initTree;
374
- this.__noOpens = noOpens;
375
- this.__preTree = this.use(this.__oralTree, this.__noOpens);
376
- this.__rback(this.__preTree);
377
- return this;
378
- };
379
- TreeLayout.prototype.unbind = function () {
380
- this.__rback = null;
381
- this.__oralTree = null;
382
- this.__preTree = null;
383
- this.__noOpens = {};
384
- return this;
385
- };
386
- TreeLayout.prototype.doUpdate = function () {
387
- var _this = this;
388
- var newTree = this.use(this.__oralTree, this.__noOpens);
389
- var cacheTree = JSON.parse(JSON.stringify(newTree));
390
- animation(function (deep) {
391
- for (var key in cacheTree.node) {
392
- if (newTree.node[key].show || _this.__preTree.node[key].show) {
393
- cacheTree.node[key].show = true;
394
- cacheTree.node[key].left = _this.__preTree.node[key].left + (newTree.node[key].left - _this.__preTree.node[key].left) * deep;
395
- cacheTree.node[key].top = _this.__preTree.node[key].top + (newTree.node[key].top - _this.__preTree.node[key].top) * deep;
396
- }
397
- }
398
- _this.__rback(cacheTree);
399
- }, this.__option.duration, function () {
400
- _this.__preTree = newTree;
401
- _this.__rback(_this.__preTree);
402
- });
403
- };
404
- TreeLayout.prototype.closeNode = function (id) {
405
- if (!this.__preTree)
406
- return;
407
- this.__noOpens[id] = true;
408
- this.doUpdate();
409
- return this;
410
- };
411
- TreeLayout.prototype.openNode = function (id) {
412
- if (!this.__preTree)
413
- return;
414
- this.__noOpens[id] = false;
415
- this.doUpdate();
416
- return this;
417
- };
418
- TreeLayout.prototype.toggleNode = function (id) {
419
- if (!this.__preTree)
420
- return;
421
- this.__noOpens[id] = !this.__noOpens[id];
422
- this.doUpdate();
423
- return this;
424
- };
425
- return TreeLayout;
277
+ var TreeLayout = (function (_super) {
278
+ __extends(TreeLayout, _super);
279
+ function TreeLayout() {
280
+ var _this = _super !== null && _super.apply(this, arguments) || this;
281
+ _this.name = 'TreeLayout';
282
+ _this.__option = {
283
+ offsetX: 0,
284
+ offsetY: 0,
285
+ duration: 500,
286
+ type: "plain",
287
+ direction: "LR",
288
+ x: 100,
289
+ y: 100,
290
+ width: 100,
291
+ height: 100,
292
+ radius: 100
293
+ };
294
+ _this.__noOpens = {};
295
+ return _this;
296
+ }
297
+ TreeLayout.prototype.setOption = function (option) {
298
+ mergeOption(option, this.__option);
299
+ return this;
300
+ };
301
+ TreeLayout.prototype.use = function (initTree, noOpens) {
302
+ if (noOpens === void 0) { noOpens = {}; }
303
+ var tree = _super.prototype.use.call(this, initTree, noOpens);
304
+ if (this.__option.offsetX != 0 || this.__option.offsetY != 0) {
305
+ for (var key in tree.node) {
306
+ if (!tree.node[key].show) {
307
+ var deep = 0, pid = key;
308
+ do {
309
+ pid = tree.node[pid].pid;
310
+ deep++;
311
+ } while (!tree.node[pid].show);
312
+ tree.node[key].left += this.__option.offsetX * deep;
313
+ tree.node[key].top += this.__option.offsetY * deep;
314
+ }
315
+ }
316
+ }
317
+ if (this.__option.type == 'rect') {
318
+ if (this.__option.direction == 'LR' || this.__option.direction == "RL") {
319
+ var perW = this.__option.height / tree.size;
320
+ var perD = this.__option.width / (tree.deep - 1);
321
+ var balanceW = this.__option.y - this.__option.height * 0.5;
322
+ var flag = this.__option.direction == 'LR' ? 1 : -1;
323
+ for (var key in tree.node) {
324
+ if (tree.deep == 1) {
325
+ tree.node[key].left = this.__option.x + this.__option.width * 0.5 * flag;
326
+ tree.node[key].top = this.__option.y;
327
+ }
328
+ else {
329
+ tree.node[key].left = this.__option.x + (tree.node[key].left - 0.5) * perD * flag;
330
+ tree.node[key].top = tree.node[key].top * perW + balanceW;
331
+ }
332
+ }
333
+ }
334
+ else if (this.__option.direction == 'TB' || this.__option.direction == "BT") {
335
+ var perW = this.__option.width / tree.size;
336
+ var perD = this.__option.height / (tree.deep - 1);
337
+ var balanceW = this.__option.x - this.__option.width * 0.5;
338
+ var flag = this.__option.direction == 'TB' ? 1 : -1;
339
+ for (var key in tree.node) {
340
+ if (tree.deep == 1) {
341
+ tree.node[key].left = this.__option.x;
342
+ tree.node[key].top = this.__option.y + this.__option.height * 0.5 * flag;
343
+ }
344
+ else {
345
+ var left = tree.node[key].left;
346
+ tree.node[key].left = tree.node[key].top * perW + balanceW;
347
+ tree.node[key].top = this.__option.y + (left - 0.5) * perD * flag;
348
+ }
349
+ }
350
+ }
351
+ }
352
+ else if (this.__option.type == 'circle') {
353
+ var cx = this.__option.x, cy = this.__option.y;
354
+ var deg = Math.PI * 2 / tree.size;
355
+ var per = this.__option.radius / (tree.deep - 1);
356
+ for (var key in tree.node) {
357
+ if (tree.node[key].left == 0.5) {
358
+ tree.node[key].left = cx;
359
+ tree.node[key].top = cy;
360
+ }
361
+ else {
362
+ var position = rotate(cx, cy, deg * tree.node[key].top, cx + (tree.node[key].left - 0.5) * per, cy);
363
+ tree.node[key].left = position[0];
364
+ tree.node[key].top = position[1];
365
+ }
366
+ }
367
+ }
368
+ return tree;
369
+ };
370
+ TreeLayout.prototype.bind = function (initTree, renderBack, noOpens) {
371
+ if (noOpens === void 0) { noOpens = {}; }
372
+ this.__rback = renderBack;
373
+ this.__oralTree = initTree;
374
+ this.__noOpens = noOpens;
375
+ this.__preTree = this.use(this.__oralTree, this.__noOpens);
376
+ this.__rback(this.__preTree);
377
+ return this;
378
+ };
379
+ TreeLayout.prototype.unbind = function () {
380
+ this.__rback = null;
381
+ this.__oralTree = null;
382
+ this.__preTree = null;
383
+ this.__noOpens = {};
384
+ return this;
385
+ };
386
+ TreeLayout.prototype.doUpdate = function () {
387
+ var _this = this;
388
+ var newTree = this.use(this.__oralTree, this.__noOpens);
389
+ var cacheTree = JSON.parse(JSON.stringify(newTree));
390
+ animation(function (deep) {
391
+ for (var key in cacheTree.node) {
392
+ if (newTree.node[key].show || _this.__preTree.node[key].show) {
393
+ cacheTree.node[key].show = true;
394
+ cacheTree.node[key].left = _this.__preTree.node[key].left + (newTree.node[key].left - _this.__preTree.node[key].left) * deep;
395
+ cacheTree.node[key].top = _this.__preTree.node[key].top + (newTree.node[key].top - _this.__preTree.node[key].top) * deep;
396
+ }
397
+ }
398
+ _this.__rback(cacheTree);
399
+ }, this.__option.duration, function () {
400
+ _this.__preTree = newTree;
401
+ _this.__rback(_this.__preTree);
402
+ });
403
+ };
404
+ TreeLayout.prototype.closeNode = function (id) {
405
+ if (!this.__preTree)
406
+ return;
407
+ this.__noOpens[id] = true;
408
+ this.doUpdate();
409
+ return this;
410
+ };
411
+ TreeLayout.prototype.openNode = function (id) {
412
+ if (!this.__preTree)
413
+ return;
414
+ this.__noOpens[id] = false;
415
+ this.doUpdate();
416
+ return this;
417
+ };
418
+ TreeLayout.prototype.toggleNode = function (id) {
419
+ if (!this.__preTree)
420
+ return;
421
+ this.__noOpens[id] = !this.__noOpens[id];
422
+ this.doUpdate();
423
+ return this;
424
+ };
425
+ return TreeLayout;
426
426
  }(Tree));
427
427
 
428
428
  return TreeLayout;