vislite 1.12.0 → 2.0.0-next.0

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 (180) hide show
  1. package/AUTHORS.txt +6 -6
  2. package/CHANGELOG +414 -403
  3. package/LICENSE +20 -20
  4. package/README-en.md +245 -245
  5. package/README.md +245 -245
  6. package/bin/formatArgv.js +30 -30
  7. package/bin/help.js +21 -17
  8. package/bin/minialipay.js +27 -0
  9. package/bin/run +25 -21
  10. package/bin/skills.js +26 -26
  11. package/lib/BarLayout/index.es.js +348 -348
  12. package/lib/Buffer/index.es.js +34 -34
  13. package/lib/Canvas/index.es.js +804 -804
  14. package/lib/Cardinal/index.es.js +89 -89
  15. package/lib/Eoap/index.es.js +32 -32
  16. package/lib/Hermite/index.es.js +34 -34
  17. package/lib/MapCoordinate/index.es.js +199 -199
  18. package/lib/Matrix4/index.es.js +123 -123
  19. package/lib/Mercator/index.es.js +18 -18
  20. package/lib/PieLayout/index.es.js +115 -115
  21. package/lib/RawCanvas/index.es.js +736 -736
  22. package/lib/SVG/index.es.js +626 -626
  23. package/lib/Shader/index.es.js +34 -34
  24. package/lib/Texture/index.es.js +52 -52
  25. package/lib/TreeLayout/index.es.js +301 -301
  26. package/lib/animation/index.es.js +2 -2
  27. package/lib/assemble/index.es.js +19 -19
  28. package/lib/getLoopColors/index.es.js +34 -34
  29. package/lib/getWebGLContext/index.es.js +61 -61
  30. package/lib/index.umd.js +2797 -2797
  31. package/lib/index.umd.min.js +1 -1
  32. package/lib/initOption/index.es.js +5 -5
  33. package/lib/mergeOption/index.es.js +34 -34
  34. package/lib/move/index.es.js +6 -6
  35. package/lib/rotate/index.es.js +6 -6
  36. package/lib/ruler/index.es.js +136 -136
  37. package/lib/scale/index.es.js +5 -5
  38. package/minialipay/ui-canvas/drawImage.js +35 -35
  39. package/minialipay/ui-canvas/index.acss +4 -4
  40. package/minialipay/ui-canvas/index.axml +3 -3
  41. package/minialipay/ui-canvas/index.d.ts +1 -1
  42. package/minialipay/ui-canvas/index.js +100 -100
  43. package/minialipay/ui-canvas/index.json +6 -6
  44. package/miniprogram/ui-canvas/drawImage.js +35 -35
  45. package/miniprogram/ui-canvas/index.js +125 -125
  46. package/miniprogram/ui-canvas/index.json +4 -4
  47. package/miniprogram/ui-canvas/index.wxml +4 -4
  48. package/miniprogram/ui-canvas/index.wxss +5 -5
  49. package/package/BarLayout/index.ts +2 -2
  50. package/package/Buffer/index.ts +2 -2
  51. package/package/Canvas/index.ts +2 -2
  52. package/package/Cardinal/index.ts +2 -2
  53. package/package/Eoap/index.ts +2 -2
  54. package/package/Hermite/index.ts +2 -2
  55. package/package/MapCoordinate/index.ts +2 -2
  56. package/package/Matrix4/index.ts +2 -2
  57. package/package/Mercator/index.ts +2 -2
  58. package/package/PieLayout/index.ts +2 -2
  59. package/package/RawCanvas/index.ts +2 -2
  60. package/package/SVG/index.ts +2 -2
  61. package/package/Shader/index.ts +2 -2
  62. package/package/Texture/index.ts +2 -2
  63. package/package/TreeLayout/index.ts +2 -2
  64. package/package/animation/index.ts +5 -5
  65. package/package/assemble/index.ts +2 -2
  66. package/package/getLoopColors/index.ts +2 -2
  67. package/package/getWebGLContext/index.ts +40 -40
  68. package/package/index.ts +84 -84
  69. package/package/initOption/index.ts +2 -2
  70. package/package/mergeOption/index.ts +2 -2
  71. package/package/move/index.ts +2 -2
  72. package/package/rotate/index.ts +2 -2
  73. package/package/ruler/index.ts +2 -2
  74. package/package/scale/index.ts +2 -2
  75. package/package/throttle/index.ts +2 -2
  76. package/package.json +103 -79
  77. package/skills/vislite-lib/BarLayout.md +117 -117
  78. package/skills/vislite-lib/Canvas.md +183 -183
  79. package/skills/vislite-lib/Interpolation.md +129 -129
  80. package/skills/vislite-lib/Matrix.md +174 -174
  81. package/skills/vislite-lib/PieLayout.md +131 -131
  82. package/skills/vislite-lib/Projections.md +158 -158
  83. package/skills/vislite-lib/SKILL.md +179 -179
  84. package/skills/vislite-lib/SVG.md +137 -137
  85. package/skills/vislite-lib/TreeLayout.md +176 -176
  86. package/skills/vislite-lib/Utilities.md +261 -261
  87. package/skills/vislite-lib/WebGL.md +106 -106
  88. package/skills/vislite-lib/minialipay/ui-canvas.md +95 -95
  89. package/skills/vislite-lib/miniprogram/ui-canvas.md +98 -98
  90. package/skills/vislite-lib/uniapp/ui-canvas.md +113 -113
  91. package/src/Canvas.ts +89 -89
  92. package/src/Eoap.ts +66 -66
  93. package/src/Matrix4/index.ts +84 -84
  94. package/src/Matrix4/move.ts +12 -12
  95. package/src/Matrix4/rotate.ts +15 -15
  96. package/src/Matrix4/scale.ts +11 -11
  97. package/src/Matrix4/transform.ts +64 -64
  98. package/src/Mercator.ts +27 -27
  99. package/src/SVG.ts +86 -86
  100. package/src/common/assemble.ts +30 -30
  101. package/src/common/canvas/arc.ts +51 -51
  102. package/src/common/canvas/config.ts +176 -176
  103. package/src/common/canvas/default.ts +64 -64
  104. package/src/common/canvas/gradient.ts +31 -31
  105. package/src/common/canvas/index.ts +189 -189
  106. package/src/common/canvas/painter.ts +475 -475
  107. package/src/common/canvas/texts.ts +18 -18
  108. package/src/common/map/getBoundary.ts +15 -15
  109. package/src/common/map/tool.ts +29 -29
  110. package/src/common/option.ts +31 -31
  111. package/src/common/setStyle.ts +5 -5
  112. package/src/common/svg/config.ts +213 -213
  113. package/src/common/svg/default.ts +29 -29
  114. package/src/common/svg/gradient.ts +53 -53
  115. package/src/common/svg/index.ts +420 -420
  116. package/src/common/svg/tool.ts +51 -51
  117. package/src/common/tree/index.ts +25 -25
  118. package/src/common/tree/toInnerTree.ts +61 -61
  119. package/src/common/tree/toPlainTree.ts +135 -135
  120. package/src/common/type.ts +26 -26
  121. package/src/common/webgl/buffer.ts +79 -79
  122. package/src/common/webgl/getWebGLContext.ts +45 -45
  123. package/src/common/webgl/shader.ts +75 -75
  124. package/src/common/webgl/texture.ts +98 -98
  125. package/src/coordinate/MapCoordinate.ts +80 -80
  126. package/src/getLoopColors.ts +42 -42
  127. package/src/interpolation/Cardinal.ts +110 -110
  128. package/src/interpolation/Hermite.ts +65 -65
  129. package/src/layout/BarLayout.ts +249 -249
  130. package/src/layout/PieLayout.ts +146 -146
  131. package/src/layout/TreeLayout.ts +200 -200
  132. package/src/move.ts +7 -7
  133. package/src/rotate.ts +7 -7
  134. package/src/ruler.ts +209 -209
  135. package/src/scale.ts +6 -6
  136. package/types/Bar.d.ts +91 -91
  137. package/types/BarConfig.d.ts +4 -4
  138. package/types/BarLayout.d.ts +48 -48
  139. package/types/BarOption.d.ts +31 -31
  140. package/types/Buffer.d.ts +30 -30
  141. package/types/Canvas.d.ts +379 -379
  142. package/types/CanvasConfig.d.ts +61 -61
  143. package/types/CanvasOption.d.ts +13 -13
  144. package/types/CanvasOpts.d.ts +9 -9
  145. package/types/Cardinal.d.ts +20 -20
  146. package/types/Gradient.d.ts +20 -20
  147. package/types/Hermite.d.ts +25 -25
  148. package/types/Map.d.ts +9 -9
  149. package/types/MapConfig.d.ts +27 -27
  150. package/types/MapCoordinate.d.ts +22 -22
  151. package/types/Matrix4.d.ts +79 -79
  152. package/types/Pie.d.ts +73 -73
  153. package/types/PieConfig.d.ts +26 -26
  154. package/types/PieLayout.d.ts +40 -40
  155. package/types/PieOption.d.ts +21 -21
  156. package/types/SVG.d.ts +282 -282
  157. package/types/SVGConfig.d.ts +54 -54
  158. package/types/Shader.d.ts +22 -22
  159. package/types/Texture.d.ts +22 -22
  160. package/types/Tree.d.ts +74 -74
  161. package/types/TreeConfig.d.ts +52 -52
  162. package/types/TreeLayout.d.ts +71 -71
  163. package/types/TreeOption.d.ts +48 -48
  164. package/types/animation.d.ts +26 -26
  165. package/types/assemble.d.ts +14 -14
  166. package/types/getLoopColors.d.ts +13 -13
  167. package/types/getWebGLContext.d.ts +7 -7
  168. package/types/index.d.ts +220 -220
  169. package/types/module.d.ts +110 -110
  170. package/types/move.d.ts +15 -15
  171. package/types/option.d.ts +12 -12
  172. package/types/painterConfig.d.ts +14 -14
  173. package/types/rotate.d.ts +15 -15
  174. package/types/ruler.d.ts +24 -24
  175. package/types/scale.d.ts +15 -15
  176. package/types/throttle.d.ts +6 -6
  177. package/types/ui-canvas.d.ts +4 -4
  178. package/types/uni-canvas.d.ts +3 -3
  179. package/uni-app/drawImage.js +19 -19
  180. package/uni-app/ui-canvas.vue +295 -295
@@ -20,153 +20,153 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
20
20
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
21
21
  };
22
22
 
23
- var toInnerTree = (function (initTree, config) {
24
- var tempTree = {};
25
- var temp = config.root(initTree);
26
- var id, rid;
27
- id = rid = config.id(temp);
28
- tempTree[id] = {
29
- "data": temp,
30
- "pid": null,
31
- "id": id,
32
- "isOpen": true,
33
- "show": true,
34
- "deg": 0,
35
- "children": []
36
- };
37
- var num = 1;
38
- (function createTree(pdata, pid) {
39
- var children = config.children(pdata, initTree);
40
- num += children ? children.length : 0;
41
- for (var flag = 0; children && flag < children.length; flag++) {
42
- id = config.id(children[flag]);
43
- tempTree[pid].children.push(id);
44
- tempTree[id] = {
45
- "data": children[flag],
46
- "pid": pid,
47
- "id": id,
48
- "isOpen": true,
49
- "show": true,
50
- "deg": 0,
51
- "children": []
52
- };
53
- createTree(children[flag], id);
54
- }
55
- })(temp, id);
56
- return {
57
- rid: rid,
58
- value: tempTree,
59
- num: num
60
- };
23
+ var toInnerTree = (function (initTree, config) {
24
+ var tempTree = {};
25
+ var temp = config.root(initTree);
26
+ var id, rid;
27
+ id = rid = config.id(temp);
28
+ tempTree[id] = {
29
+ "data": temp,
30
+ "pid": null,
31
+ "id": id,
32
+ "isOpen": true,
33
+ "show": true,
34
+ "deg": 0,
35
+ "children": []
36
+ };
37
+ var num = 1;
38
+ (function createTree(pdata, pid) {
39
+ var children = config.children(pdata, initTree);
40
+ num += children ? children.length : 0;
41
+ for (var flag = 0; children && flag < children.length; flag++) {
42
+ id = config.id(children[flag]);
43
+ tempTree[pid].children.push(id);
44
+ tempTree[id] = {
45
+ "data": children[flag],
46
+ "pid": pid,
47
+ "id": id,
48
+ "isOpen": true,
49
+ "show": true,
50
+ "deg": 0,
51
+ "children": []
52
+ };
53
+ createTree(children[flag], id);
54
+ }
55
+ })(temp, id);
56
+ return {
57
+ rid: rid,
58
+ value: tempTree,
59
+ num: num
60
+ };
61
61
  });
62
62
 
63
- function toPlainTree (initTree, config, noOpens) {
64
- if (noOpens === void 0) { noOpens = {}; }
65
- var treeData = toInnerTree(initTree, config);
66
- var alltreedata = treeData.value;
67
- var rootid = treeData.rid;
68
- if (treeData.num == 1) {
69
- alltreedata[rootid].left = 0.5;
70
- alltreedata[rootid].top = 0.5;
71
- alltreedata[rootid].show = true;
72
- return {
73
- deep: 1,
74
- node: alltreedata,
75
- root: rootid,
76
- size: 1
77
- };
78
- }
79
- else {
80
- var beforeDis_1 = [];
81
- var size_1 = 0, maxDeep_1 = 0;
82
- if (noOpens[rootid]) {
83
- alltreedata[rootid].left = 0.5;
84
- alltreedata[rootid].top = 0.5;
85
- alltreedata[rootid].show = true;
86
- size_1 = 1;
87
- }
88
- else {
89
- (function positionCalc(pNode, deep) {
90
- if (deep > maxDeep_1)
91
- maxDeep_1 = deep;
92
- var flag = 0;
93
- if (!noOpens[pNode.id]) {
94
- for (flag = 0; flag < pNode.children.length; flag++)
95
- positionCalc(alltreedata[pNode.children[flag]], deep + 1);
96
- }
97
- alltreedata[pNode.id].left = deep + 0.5;
98
- if (flag == 0) {
99
- if (beforeDis_1[deep] == void 0)
100
- beforeDis_1[deep] = -0.5;
101
- if (beforeDis_1[deep - 1] == void 0)
102
- beforeDis_1[deep - 1] = -0.5;
103
- alltreedata[pNode.id].top = beforeDis_1[deep] + 1;
104
- var pTop = beforeDis_1[deep] + 1 + (alltreedata[pNode.pid].children.length - 1) * 0.5;
105
- if (pTop - 1 < beforeDis_1[deep - 1])
106
- alltreedata[pNode.id].top = beforeDis_1[deep - 1] + 1 - (alltreedata[pNode.pid].children.length - 1) * 0.5;
107
- }
108
- else {
109
- alltreedata[pNode.id].top = (alltreedata[pNode.children[0]].top + alltreedata[pNode.children[flag - 1]].top) * 0.5;
110
- }
111
- if (alltreedata[pNode.id].top <= beforeDis_1[deep]) {
112
- var needUp_1 = beforeDis_1[deep] + 1 - alltreedata[pNode.id].top(function doUp(_pid, _deep) {
113
- alltreedata[_pid].top += needUp_1;
114
- if (beforeDis_1[_deep] < alltreedata[_pid].top)
115
- beforeDis_1[_deep] = alltreedata[_pid].top;
116
- for (var _flag = 0; _flag < alltreedata[_pid].children.length; _flag++) {
117
- doUp(alltreedata[_pid].children[_flag], _deep + 1);
118
- }
119
- })(pNode.id, deep);
120
- }
121
- beforeDis_1[deep] = alltreedata[pNode.id].top;
122
- if (alltreedata[pNode.id].top + 0.5 > size_1)
123
- size_1 = alltreedata[pNode.id].top + 0.5;
124
- })(alltreedata[rootid], 0);
125
- }
126
- for (var key in noOpens) {
127
- if (noOpens[key]) {
128
- alltreedata[key].isOpen = false;
129
- (function updateHidden(pid, left, top) {
130
- for (var index = 0; index < alltreedata[pid].children.length; index++) {
131
- alltreedata[alltreedata[pid].children[index]].left = left;
132
- alltreedata[alltreedata[pid].children[index]].top = top;
133
- alltreedata[alltreedata[pid].children[index]].show = false;
134
- updateHidden(alltreedata[pid].children[index], left, top);
135
- }
136
- })(key, alltreedata[key].left, alltreedata[key].top);
137
- }
138
- }
139
- return {
140
- "node": alltreedata,
141
- "root": rootid,
142
- "size": size_1,
143
- "deep": maxDeep_1 + 1
144
- };
145
- }
63
+ function toPlainTree (initTree, config, noOpens) {
64
+ if (noOpens === void 0) { noOpens = {}; }
65
+ var treeData = toInnerTree(initTree, config);
66
+ var alltreedata = treeData.value;
67
+ var rootid = treeData.rid;
68
+ if (treeData.num == 1) {
69
+ alltreedata[rootid].left = 0.5;
70
+ alltreedata[rootid].top = 0.5;
71
+ alltreedata[rootid].show = true;
72
+ return {
73
+ deep: 1,
74
+ node: alltreedata,
75
+ root: rootid,
76
+ size: 1
77
+ };
78
+ }
79
+ else {
80
+ var beforeDis_1 = [];
81
+ var size_1 = 0, maxDeep_1 = 0;
82
+ if (noOpens[rootid]) {
83
+ alltreedata[rootid].left = 0.5;
84
+ alltreedata[rootid].top = 0.5;
85
+ alltreedata[rootid].show = true;
86
+ size_1 = 1;
87
+ }
88
+ else {
89
+ (function positionCalc(pNode, deep) {
90
+ if (deep > maxDeep_1)
91
+ maxDeep_1 = deep;
92
+ var flag = 0;
93
+ if (!noOpens[pNode.id]) {
94
+ for (flag = 0; flag < pNode.children.length; flag++)
95
+ positionCalc(alltreedata[pNode.children[flag]], deep + 1);
96
+ }
97
+ alltreedata[pNode.id].left = deep + 0.5;
98
+ if (flag == 0) {
99
+ if (beforeDis_1[deep] == void 0)
100
+ beforeDis_1[deep] = -0.5;
101
+ if (beforeDis_1[deep - 1] == void 0)
102
+ beforeDis_1[deep - 1] = -0.5;
103
+ alltreedata[pNode.id].top = beforeDis_1[deep] + 1;
104
+ var pTop = beforeDis_1[deep] + 1 + (alltreedata[pNode.pid].children.length - 1) * 0.5;
105
+ if (pTop - 1 < beforeDis_1[deep - 1])
106
+ alltreedata[pNode.id].top = beforeDis_1[deep - 1] + 1 - (alltreedata[pNode.pid].children.length - 1) * 0.5;
107
+ }
108
+ else {
109
+ alltreedata[pNode.id].top = (alltreedata[pNode.children[0]].top + alltreedata[pNode.children[flag - 1]].top) * 0.5;
110
+ }
111
+ if (alltreedata[pNode.id].top <= beforeDis_1[deep]) {
112
+ var needUp_1 = beforeDis_1[deep] + 1 - alltreedata[pNode.id].top(function doUp(_pid, _deep) {
113
+ alltreedata[_pid].top += needUp_1;
114
+ if (beforeDis_1[_deep] < alltreedata[_pid].top)
115
+ beforeDis_1[_deep] = alltreedata[_pid].top;
116
+ for (var _flag = 0; _flag < alltreedata[_pid].children.length; _flag++) {
117
+ doUp(alltreedata[_pid].children[_flag], _deep + 1);
118
+ }
119
+ })(pNode.id, deep);
120
+ }
121
+ beforeDis_1[deep] = alltreedata[pNode.id].top;
122
+ if (alltreedata[pNode.id].top + 0.5 > size_1)
123
+ size_1 = alltreedata[pNode.id].top + 0.5;
124
+ })(alltreedata[rootid], 0);
125
+ }
126
+ for (var key in noOpens) {
127
+ if (noOpens[key]) {
128
+ alltreedata[key].isOpen = false;
129
+ (function updateHidden(pid, left, top) {
130
+ for (var index = 0; index < alltreedata[pid].children.length; index++) {
131
+ alltreedata[alltreedata[pid].children[index]].left = left;
132
+ alltreedata[alltreedata[pid].children[index]].top = top;
133
+ alltreedata[alltreedata[pid].children[index]].show = false;
134
+ updateHidden(alltreedata[pid].children[index], left, top);
135
+ }
136
+ })(key, alltreedata[key].left, alltreedata[key].top);
137
+ }
138
+ }
139
+ return {
140
+ "node": alltreedata,
141
+ "root": rootid,
142
+ "size": size_1,
143
+ "deep": maxDeep_1 + 1
144
+ };
145
+ }
146
146
  }
147
147
 
148
- function initOption(setOption, defaultOption) {
149
- for (var key in setOption) {
150
- defaultOption[key] = setOption[key];
151
- }
152
- return defaultOption;
148
+ function initOption(setOption, defaultOption) {
149
+ for (var key in setOption) {
150
+ defaultOption[key] = setOption[key];
151
+ }
152
+ return defaultOption;
153
153
  }
154
154
 
155
- var Tree = (function () {
156
- function Tree(config) {
157
- if (config === void 0) { config = {}; }
158
- this.name = 'Tree';
159
- this.__config = initOption(config, {
160
- root: function (initTree) { return initTree; },
161
- children: function (parentTree) { return parentTree.children; },
162
- id: function (treedata) { return treedata.name; }
163
- });
164
- }
165
- Tree.prototype.use = function (initTree, noOpens) {
166
- if (noOpens === void 0) { noOpens = {}; }
167
- return toPlainTree(initTree, this.__config, noOpens);
168
- };
169
- return Tree;
155
+ var Tree = (function () {
156
+ function Tree(config) {
157
+ if (config === void 0) { config = {}; }
158
+ this.name = 'Tree';
159
+ this.__config = initOption(config, {
160
+ root: function (initTree) { return initTree; },
161
+ children: function (parentTree) { return parentTree.children; },
162
+ id: function (treedata) { return treedata.name; }
163
+ });
164
+ }
165
+ Tree.prototype.use = function (initTree, noOpens) {
166
+ if (noOpens === void 0) { noOpens = {}; }
167
+ return toPlainTree(initTree, this.__config, noOpens);
168
+ };
169
+ return Tree;
170
170
  }());
171
171
 
172
172
  //当前正在运动的动画的tick函数堆栈
@@ -319,168 +319,168 @@ function animation(doback, duration, callback) {
319
319
 
320
320
  }
321
321
 
322
- function rotate (cx, cy, deg, x, y) {
323
- var cos = Math.cos(deg), sin = Math.sin(deg);
324
- return [
325
- (x - cx) * cos - (y - cy) * sin + cx,
326
- (x - cx) * sin + (y - cy) * cos + cy
327
- ];
322
+ function rotate (cx, cy, deg, x, y) {
323
+ var cos = Math.cos(deg), sin = Math.sin(deg);
324
+ return [
325
+ (x - cx) * cos - (y - cy) * sin + cx,
326
+ (x - cx) * sin + (y - cy) * cos + cy
327
+ ];
328
328
  }
329
329
 
330
- var TreeLayout = (function (_super) {
331
- __extends(TreeLayout, _super);
332
- function TreeLayout() {
333
- var _this = _super !== null && _super.apply(this, arguments) || this;
334
- _this.name = 'TreeLayout';
335
- _this.__option = {
336
- offsetX: 0,
337
- offsetY: 0,
338
- duration: 500,
339
- type: "plain",
340
- direction: "LR",
341
- x: 100,
342
- y: 100,
343
- width: 100,
344
- height: 100,
345
- radius: 100
346
- };
347
- _this.__noOpens = {};
348
- return _this;
349
- }
350
- TreeLayout.prototype.setOption = function (option) {
351
- initOption(option, this.__option);
352
- return this;
353
- };
354
- TreeLayout.prototype.use = function (initTree, noOpens) {
355
- if (noOpens === void 0) { noOpens = {}; }
356
- var tree = _super.prototype.use.call(this, initTree, noOpens);
357
- if (this.__option.offsetX != 0 || this.__option.offsetY != 0) {
358
- for (var key in tree.node) {
359
- if (!tree.node[key].show) {
360
- var deep = 0, pid = key;
361
- do {
362
- pid = tree.node[pid].pid;
363
- deep++;
364
- } while (!tree.node[pid].show);
365
- tree.node[key].left += this.__option.offsetX * deep;
366
- tree.node[key].top += this.__option.offsetY * deep;
367
- }
368
- }
369
- }
370
- if (this.__option.type == 'rect') {
371
- if (this.__option.direction == 'LR' || this.__option.direction == "RL") {
372
- var perW = this.__option.height / tree.size;
373
- var perD = this.__option.width / (tree.deep - 1);
374
- var balanceW = this.__option.y - this.__option.height * 0.5;
375
- var flag = this.__option.direction == 'LR' ? 1 : -1;
376
- for (var key in tree.node) {
377
- if (tree.deep == 1) {
378
- tree.node[key].left = this.__option.x + this.__option.width * 0.5 * flag;
379
- tree.node[key].top = this.__option.y;
380
- }
381
- else {
382
- tree.node[key].left = this.__option.x + (tree.node[key].left - 0.5) * perD * flag;
383
- tree.node[key].top = tree.node[key].top * perW + balanceW;
384
- }
385
- }
386
- }
387
- else if (this.__option.direction == 'TB' || this.__option.direction == "BT") {
388
- var perW = this.__option.width / tree.size;
389
- var perD = this.__option.height / (tree.deep - 1);
390
- var balanceW = this.__option.x - this.__option.width * 0.5;
391
- var flag = this.__option.direction == 'TB' ? 1 : -1;
392
- for (var key in tree.node) {
393
- tree.node[key].deg = this.__option.direction == 'TB' ? Math.PI * 0.5 : Math.PI * -0.5;
394
- if (tree.deep == 1) {
395
- tree.node[key].left = this.__option.x;
396
- tree.node[key].top = this.__option.y + this.__option.height * 0.5 * flag;
397
- }
398
- else {
399
- var left = tree.node[key].left;
400
- tree.node[key].left = tree.node[key].top * perW + balanceW;
401
- tree.node[key].top = this.__option.y + (left - 0.5) * perD * flag;
402
- }
403
- }
404
- }
405
- }
406
- else if (this.__option.type == 'circle') {
407
- var cx = this.__option.x, cy = this.__option.y;
408
- var deg = Math.PI * 2 / tree.size;
409
- var per = this.__option.radius / (tree.deep - 1);
410
- for (var key in tree.node) {
411
- if (tree.node[key].left == 0.5) {
412
- tree.node[key].left = cx;
413
- tree.node[key].top = cy;
414
- }
415
- else {
416
- var position = rotate(cx, cy, deg * tree.node[key].top, cx + (tree.node[key].left - 0.5) * per, cy);
417
- tree.node[key].deg = deg * tree.node[key].top;
418
- tree.node[key].left = position[0];
419
- tree.node[key].top = position[1];
420
- }
421
- }
422
- }
423
- return tree;
424
- };
425
- TreeLayout.prototype.bind = function (initTree, renderBack, noOpens) {
426
- if (noOpens === void 0) { noOpens = {}; }
427
- this.__rback = renderBack;
428
- this.__oralTree = initTree;
429
- this.__noOpens = noOpens;
430
- this.__preTree = this.use(this.__oralTree, this.__noOpens);
431
- this.__rback(this.__preTree);
432
- return this;
433
- };
434
- TreeLayout.prototype.unbind = function () {
435
- this.__rback = function () { return null; };
436
- this.__oralTree = null;
437
- this.__preTree = null;
438
- this.__noOpens = {};
439
- return this;
440
- };
441
- TreeLayout.prototype.doUpdate = function () {
442
- var _this = this;
443
- var newTree = this.use(this.__oralTree, this.__noOpens);
444
- var cacheTree = JSON.parse(JSON.stringify(newTree));
445
- animation(function (deep) {
446
- if (_this.__preTree) {
447
- for (var key in cacheTree.node) {
448
- if (newTree.node[key].show || _this.__preTree.node[key].show) {
449
- cacheTree.node[key].show = true;
450
- cacheTree.node[key].left = _this.__preTree.node[key].left + (newTree.node[key].left - _this.__preTree.node[key].left) * deep;
451
- cacheTree.node[key].top = _this.__preTree.node[key].top + (newTree.node[key].top - _this.__preTree.node[key].top) * deep;
452
- }
453
- }
454
- }
455
- _this.__rback(cacheTree);
456
- }, this.__option.duration, function () {
457
- _this.__preTree = newTree;
458
- _this.__rback(_this.__preTree);
459
- });
460
- return this;
461
- };
462
- TreeLayout.prototype.closeNode = function (id) {
463
- if (!this.__preTree)
464
- return this;
465
- this.__noOpens[id] = true;
466
- this.doUpdate();
467
- return this;
468
- };
469
- TreeLayout.prototype.openNode = function (id) {
470
- if (!this.__preTree)
471
- return this;
472
- this.__noOpens[id] = false;
473
- this.doUpdate();
474
- return this;
475
- };
476
- TreeLayout.prototype.toggleNode = function (id) {
477
- if (!this.__preTree)
478
- return this;
479
- this.__noOpens[id] = !this.__noOpens[id];
480
- this.doUpdate();
481
- return this;
482
- };
483
- return TreeLayout;
330
+ var TreeLayout = (function (_super) {
331
+ __extends(TreeLayout, _super);
332
+ function TreeLayout() {
333
+ var _this = _super !== null && _super.apply(this, arguments) || this;
334
+ _this.name = 'TreeLayout';
335
+ _this.__option = {
336
+ offsetX: 0,
337
+ offsetY: 0,
338
+ duration: 500,
339
+ type: "plain",
340
+ direction: "LR",
341
+ x: 100,
342
+ y: 100,
343
+ width: 100,
344
+ height: 100,
345
+ radius: 100
346
+ };
347
+ _this.__noOpens = {};
348
+ return _this;
349
+ }
350
+ TreeLayout.prototype.setOption = function (option) {
351
+ initOption(option, this.__option);
352
+ return this;
353
+ };
354
+ TreeLayout.prototype.use = function (initTree, noOpens) {
355
+ if (noOpens === void 0) { noOpens = {}; }
356
+ var tree = _super.prototype.use.call(this, initTree, noOpens);
357
+ if (this.__option.offsetX != 0 || this.__option.offsetY != 0) {
358
+ for (var key in tree.node) {
359
+ if (!tree.node[key].show) {
360
+ var deep = 0, pid = key;
361
+ do {
362
+ pid = tree.node[pid].pid;
363
+ deep++;
364
+ } while (!tree.node[pid].show);
365
+ tree.node[key].left += this.__option.offsetX * deep;
366
+ tree.node[key].top += this.__option.offsetY * deep;
367
+ }
368
+ }
369
+ }
370
+ if (this.__option.type == 'rect') {
371
+ if (this.__option.direction == 'LR' || this.__option.direction == "RL") {
372
+ var perW = this.__option.height / tree.size;
373
+ var perD = this.__option.width / (tree.deep - 1);
374
+ var balanceW = this.__option.y - this.__option.height * 0.5;
375
+ var flag = this.__option.direction == 'LR' ? 1 : -1;
376
+ for (var key in tree.node) {
377
+ if (tree.deep == 1) {
378
+ tree.node[key].left = this.__option.x + this.__option.width * 0.5 * flag;
379
+ tree.node[key].top = this.__option.y;
380
+ }
381
+ else {
382
+ tree.node[key].left = this.__option.x + (tree.node[key].left - 0.5) * perD * flag;
383
+ tree.node[key].top = tree.node[key].top * perW + balanceW;
384
+ }
385
+ }
386
+ }
387
+ else if (this.__option.direction == 'TB' || this.__option.direction == "BT") {
388
+ var perW = this.__option.width / tree.size;
389
+ var perD = this.__option.height / (tree.deep - 1);
390
+ var balanceW = this.__option.x - this.__option.width * 0.5;
391
+ var flag = this.__option.direction == 'TB' ? 1 : -1;
392
+ for (var key in tree.node) {
393
+ tree.node[key].deg = this.__option.direction == 'TB' ? Math.PI * 0.5 : Math.PI * -0.5;
394
+ if (tree.deep == 1) {
395
+ tree.node[key].left = this.__option.x;
396
+ tree.node[key].top = this.__option.y + this.__option.height * 0.5 * flag;
397
+ }
398
+ else {
399
+ var left = tree.node[key].left;
400
+ tree.node[key].left = tree.node[key].top * perW + balanceW;
401
+ tree.node[key].top = this.__option.y + (left - 0.5) * perD * flag;
402
+ }
403
+ }
404
+ }
405
+ }
406
+ else if (this.__option.type == 'circle') {
407
+ var cx = this.__option.x, cy = this.__option.y;
408
+ var deg = Math.PI * 2 / tree.size;
409
+ var per = this.__option.radius / (tree.deep - 1);
410
+ for (var key in tree.node) {
411
+ if (tree.node[key].left == 0.5) {
412
+ tree.node[key].left = cx;
413
+ tree.node[key].top = cy;
414
+ }
415
+ else {
416
+ var position = rotate(cx, cy, deg * tree.node[key].top, cx + (tree.node[key].left - 0.5) * per, cy);
417
+ tree.node[key].deg = deg * tree.node[key].top;
418
+ tree.node[key].left = position[0];
419
+ tree.node[key].top = position[1];
420
+ }
421
+ }
422
+ }
423
+ return tree;
424
+ };
425
+ TreeLayout.prototype.bind = function (initTree, renderBack, noOpens) {
426
+ if (noOpens === void 0) { noOpens = {}; }
427
+ this.__rback = renderBack;
428
+ this.__oralTree = initTree;
429
+ this.__noOpens = noOpens;
430
+ this.__preTree = this.use(this.__oralTree, this.__noOpens);
431
+ this.__rback(this.__preTree);
432
+ return this;
433
+ };
434
+ TreeLayout.prototype.unbind = function () {
435
+ this.__rback = function () { return null; };
436
+ this.__oralTree = null;
437
+ this.__preTree = null;
438
+ this.__noOpens = {};
439
+ return this;
440
+ };
441
+ TreeLayout.prototype.doUpdate = function () {
442
+ var _this = this;
443
+ var newTree = this.use(this.__oralTree, this.__noOpens);
444
+ var cacheTree = JSON.parse(JSON.stringify(newTree));
445
+ animation(function (deep) {
446
+ if (_this.__preTree) {
447
+ for (var key in cacheTree.node) {
448
+ if (newTree.node[key].show || _this.__preTree.node[key].show) {
449
+ cacheTree.node[key].show = true;
450
+ cacheTree.node[key].left = _this.__preTree.node[key].left + (newTree.node[key].left - _this.__preTree.node[key].left) * deep;
451
+ cacheTree.node[key].top = _this.__preTree.node[key].top + (newTree.node[key].top - _this.__preTree.node[key].top) * deep;
452
+ }
453
+ }
454
+ }
455
+ _this.__rback(cacheTree);
456
+ }, this.__option.duration, function () {
457
+ _this.__preTree = newTree;
458
+ _this.__rback(_this.__preTree);
459
+ });
460
+ return this;
461
+ };
462
+ TreeLayout.prototype.closeNode = function (id) {
463
+ if (!this.__preTree)
464
+ return this;
465
+ this.__noOpens[id] = true;
466
+ this.doUpdate();
467
+ return this;
468
+ };
469
+ TreeLayout.prototype.openNode = function (id) {
470
+ if (!this.__preTree)
471
+ return this;
472
+ this.__noOpens[id] = false;
473
+ this.doUpdate();
474
+ return this;
475
+ };
476
+ TreeLayout.prototype.toggleNode = function (id) {
477
+ if (!this.__preTree)
478
+ return this;
479
+ this.__noOpens[id] = !this.__noOpens[id];
480
+ this.doUpdate();
481
+ return this;
482
+ };
483
+ return TreeLayout;
484
484
  }(Tree));
485
485
 
486
486
  export { TreeLayout as default };
@@ -148,8 +148,8 @@ function animation(doback, duration, callback) {
148
148
 
149
149
  }
150
150
 
151
- function index (doback, duration, callback) {
152
- return animation(doback, duration || 400, callback || function () { }).stop;
151
+ function index (doback, duration, callback) {
152
+ return animation(doback, duration || 400, callback || function () { }).stop;
153
153
  }
154
154
 
155
155
  export { index as default };