vislite 1.12.0 → 1.12.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 (179) hide show
  1. package/AUTHORS.txt +6 -6
  2. package/CHANGELOG +408 -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 +17 -17
  8. package/bin/run +21 -21
  9. package/bin/skills.js +26 -26
  10. package/lib/BarLayout/index.es.js +348 -348
  11. package/lib/Buffer/index.es.js +34 -34
  12. package/lib/Canvas/index.es.js +804 -804
  13. package/lib/Cardinal/index.es.js +89 -89
  14. package/lib/Eoap/index.es.js +32 -32
  15. package/lib/Hermite/index.es.js +34 -34
  16. package/lib/MapCoordinate/index.es.js +199 -199
  17. package/lib/Matrix4/index.es.js +123 -123
  18. package/lib/Mercator/index.es.js +18 -18
  19. package/lib/PieLayout/index.es.js +115 -115
  20. package/lib/RawCanvas/index.es.js +736 -736
  21. package/lib/SVG/index.es.js +626 -626
  22. package/lib/Shader/index.es.js +34 -34
  23. package/lib/Texture/index.es.js +52 -52
  24. package/lib/TreeLayout/index.es.js +301 -301
  25. package/lib/animation/index.es.js +2 -2
  26. package/lib/assemble/index.es.js +19 -19
  27. package/lib/getLoopColors/index.es.js +34 -34
  28. package/lib/getWebGLContext/index.es.js +61 -61
  29. package/lib/index.umd.js +2797 -2797
  30. package/lib/index.umd.min.js +1 -1
  31. package/lib/initOption/index.es.js +5 -5
  32. package/lib/mergeOption/index.es.js +34 -34
  33. package/lib/move/index.es.js +6 -6
  34. package/lib/rotate/index.es.js +6 -6
  35. package/lib/ruler/index.es.js +136 -136
  36. package/lib/scale/index.es.js +5 -5
  37. package/minialipay/ui-canvas/drawImage.js +35 -35
  38. package/minialipay/ui-canvas/index.acss +4 -4
  39. package/minialipay/ui-canvas/index.axml +3 -3
  40. package/minialipay/ui-canvas/index.d.ts +1 -1
  41. package/minialipay/ui-canvas/index.js +100 -100
  42. package/minialipay/ui-canvas/index.json +6 -6
  43. package/miniprogram/ui-canvas/drawImage.js +35 -35
  44. package/miniprogram/ui-canvas/index.js +125 -125
  45. package/miniprogram/ui-canvas/index.json +4 -4
  46. package/miniprogram/ui-canvas/index.wxml +4 -4
  47. package/miniprogram/ui-canvas/index.wxss +5 -5
  48. package/package/BarLayout/index.ts +2 -2
  49. package/package/Buffer/index.ts +2 -2
  50. package/package/Canvas/index.ts +2 -2
  51. package/package/Cardinal/index.ts +2 -2
  52. package/package/Eoap/index.ts +2 -2
  53. package/package/Hermite/index.ts +2 -2
  54. package/package/MapCoordinate/index.ts +2 -2
  55. package/package/Matrix4/index.ts +2 -2
  56. package/package/Mercator/index.ts +2 -2
  57. package/package/PieLayout/index.ts +2 -2
  58. package/package/RawCanvas/index.ts +2 -2
  59. package/package/SVG/index.ts +2 -2
  60. package/package/Shader/index.ts +2 -2
  61. package/package/Texture/index.ts +2 -2
  62. package/package/TreeLayout/index.ts +2 -2
  63. package/package/animation/index.ts +5 -5
  64. package/package/assemble/index.ts +2 -2
  65. package/package/getLoopColors/index.ts +2 -2
  66. package/package/getWebGLContext/index.ts +40 -40
  67. package/package/index.ts +84 -84
  68. package/package/initOption/index.ts +2 -2
  69. package/package/mergeOption/index.ts +2 -2
  70. package/package/move/index.ts +2 -2
  71. package/package/rotate/index.ts +2 -2
  72. package/package/ruler/index.ts +2 -2
  73. package/package/scale/index.ts +2 -2
  74. package/package/throttle/index.ts +2 -2
  75. package/package.json +79 -79
  76. package/skills/vislite-lib/BarLayout.md +117 -117
  77. package/skills/vislite-lib/Canvas.md +183 -183
  78. package/skills/vislite-lib/Interpolation.md +129 -129
  79. package/skills/vislite-lib/Matrix.md +174 -174
  80. package/skills/vislite-lib/PieLayout.md +131 -131
  81. package/skills/vislite-lib/Projections.md +158 -158
  82. package/skills/vislite-lib/SKILL.md +179 -179
  83. package/skills/vislite-lib/SVG.md +137 -137
  84. package/skills/vislite-lib/TreeLayout.md +176 -176
  85. package/skills/vislite-lib/Utilities.md +261 -261
  86. package/skills/vislite-lib/WebGL.md +106 -106
  87. package/skills/vislite-lib/minialipay/ui-canvas.md +95 -95
  88. package/skills/vislite-lib/miniprogram/ui-canvas.md +98 -98
  89. package/skills/vislite-lib/uniapp/ui-canvas.md +113 -113
  90. package/src/Canvas.ts +89 -89
  91. package/src/Eoap.ts +66 -66
  92. package/src/Matrix4/index.ts +84 -84
  93. package/src/Matrix4/move.ts +12 -12
  94. package/src/Matrix4/rotate.ts +15 -15
  95. package/src/Matrix4/scale.ts +11 -11
  96. package/src/Matrix4/transform.ts +64 -64
  97. package/src/Mercator.ts +27 -27
  98. package/src/SVG.ts +86 -86
  99. package/src/common/assemble.ts +30 -30
  100. package/src/common/canvas/arc.ts +51 -51
  101. package/src/common/canvas/config.ts +176 -176
  102. package/src/common/canvas/default.ts +64 -64
  103. package/src/common/canvas/gradient.ts +31 -31
  104. package/src/common/canvas/index.ts +189 -189
  105. package/src/common/canvas/painter.ts +475 -475
  106. package/src/common/canvas/texts.ts +18 -18
  107. package/src/common/map/getBoundary.ts +15 -15
  108. package/src/common/map/tool.ts +29 -29
  109. package/src/common/option.ts +31 -31
  110. package/src/common/setStyle.ts +5 -5
  111. package/src/common/svg/config.ts +213 -213
  112. package/src/common/svg/default.ts +29 -29
  113. package/src/common/svg/gradient.ts +53 -53
  114. package/src/common/svg/index.ts +420 -420
  115. package/src/common/svg/tool.ts +51 -51
  116. package/src/common/tree/index.ts +25 -25
  117. package/src/common/tree/toInnerTree.ts +61 -61
  118. package/src/common/tree/toPlainTree.ts +135 -135
  119. package/src/common/type.ts +26 -26
  120. package/src/common/webgl/buffer.ts +79 -79
  121. package/src/common/webgl/getWebGLContext.ts +45 -45
  122. package/src/common/webgl/shader.ts +75 -75
  123. package/src/common/webgl/texture.ts +98 -98
  124. package/src/coordinate/MapCoordinate.ts +80 -80
  125. package/src/getLoopColors.ts +42 -42
  126. package/src/interpolation/Cardinal.ts +110 -110
  127. package/src/interpolation/Hermite.ts +65 -65
  128. package/src/layout/BarLayout.ts +249 -249
  129. package/src/layout/PieLayout.ts +146 -146
  130. package/src/layout/TreeLayout.ts +200 -200
  131. package/src/move.ts +7 -7
  132. package/src/rotate.ts +7 -7
  133. package/src/ruler.ts +209 -209
  134. package/src/scale.ts +6 -6
  135. package/types/Bar.d.ts +91 -91
  136. package/types/BarConfig.d.ts +4 -4
  137. package/types/BarLayout.d.ts +48 -48
  138. package/types/BarOption.d.ts +31 -31
  139. package/types/Buffer.d.ts +30 -30
  140. package/types/Canvas.d.ts +379 -379
  141. package/types/CanvasConfig.d.ts +61 -61
  142. package/types/CanvasOption.d.ts +13 -13
  143. package/types/CanvasOpts.d.ts +9 -9
  144. package/types/Cardinal.d.ts +20 -20
  145. package/types/Gradient.d.ts +20 -20
  146. package/types/Hermite.d.ts +25 -25
  147. package/types/Map.d.ts +9 -9
  148. package/types/MapConfig.d.ts +27 -27
  149. package/types/MapCoordinate.d.ts +22 -22
  150. package/types/Matrix4.d.ts +79 -79
  151. package/types/Pie.d.ts +73 -73
  152. package/types/PieConfig.d.ts +26 -26
  153. package/types/PieLayout.d.ts +40 -40
  154. package/types/PieOption.d.ts +21 -21
  155. package/types/SVG.d.ts +282 -282
  156. package/types/SVGConfig.d.ts +54 -54
  157. package/types/Shader.d.ts +22 -22
  158. package/types/Texture.d.ts +22 -22
  159. package/types/Tree.d.ts +74 -74
  160. package/types/TreeConfig.d.ts +52 -52
  161. package/types/TreeLayout.d.ts +71 -71
  162. package/types/TreeOption.d.ts +48 -48
  163. package/types/animation.d.ts +26 -26
  164. package/types/assemble.d.ts +14 -14
  165. package/types/getLoopColors.d.ts +13 -13
  166. package/types/getWebGLContext.d.ts +7 -7
  167. package/types/index.d.ts +220 -220
  168. package/types/module.d.ts +110 -110
  169. package/types/move.d.ts +15 -15
  170. package/types/option.d.ts +12 -12
  171. package/types/painterConfig.d.ts +14 -14
  172. package/types/rotate.d.ts +15 -15
  173. package/types/ruler.d.ts +24 -24
  174. package/types/scale.d.ts +15 -15
  175. package/types/throttle.d.ts +6 -6
  176. package/types/ui-canvas.d.ts +4 -4
  177. package/types/uni-canvas.d.ts +3 -3
  178. package/uni-app/drawImage.js +19 -19
  179. 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 };