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