vislite 1.7.0-alpha.1 → 1.7.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.
- package/AUTHORS.txt +6 -6
- package/CHANGELOG +1 -1
- package/LICENSE +20 -20
- package/README.md +1 -49
- package/lib/BarLayout/index.es.js +1 -1
- package/lib/BarLayout/index.es.min.js +1 -1
- package/lib/Buffer/index.es.js +1 -1
- package/lib/Buffer/index.es.min.js +1 -1
- package/lib/Canvas/index.es.js +1 -1
- package/lib/Canvas/index.es.min.js +1 -1
- package/lib/Cardinal/index.es.js +1 -1
- package/lib/Cardinal/index.es.min.js +1 -1
- package/lib/Eoap/index.es.js +1 -1
- package/lib/Eoap/index.es.min.js +1 -1
- package/lib/Hermite/index.es.js +1 -1
- package/lib/Hermite/index.es.min.js +1 -1
- package/lib/MapCoordinate/index.es.js +1 -1
- package/lib/MapCoordinate/index.es.min.js +1 -1
- package/lib/Matrix4/index.es.js +1 -1
- package/lib/Matrix4/index.es.min.js +1 -1
- package/lib/Mercator/index.es.js +1 -1
- package/lib/Mercator/index.es.min.js +1 -1
- package/lib/PieLayout/index.es.js +1 -1
- package/lib/PieLayout/index.es.min.js +1 -1
- package/lib/RawCanvas/index.es.js +1 -1
- package/lib/RawCanvas/index.es.min.js +1 -1
- package/lib/SVG/index.es.js +1 -1
- package/lib/SVG/index.es.min.js +1 -1
- package/lib/Shader/index.es.js +1 -1
- package/lib/Shader/index.es.min.js +1 -1
- package/lib/Texture/index.es.js +1 -1
- package/lib/Texture/index.es.min.js +1 -1
- package/lib/TreeLayout/index.es.js +1 -1
- package/lib/TreeLayout/index.es.min.js +1 -1
- package/lib/animation/index.es.js +1 -1
- package/lib/animation/index.es.min.js +1 -1
- package/lib/assemble/index.es.js +1 -1
- package/lib/assemble/index.es.min.js +1 -1
- package/lib/getLoopColors/index.es.js +1 -1
- package/lib/getLoopColors/index.es.min.js +1 -1
- package/lib/getWebGLContext/index.es.js +1 -1
- package/lib/getWebGLContext/index.es.min.js +1 -1
- package/lib/index.umd.js +1 -1
- package/lib/index.umd.min.js +1 -1
- package/lib/initOption/index.es.js +1 -1
- package/lib/initOption/index.es.min.js +1 -1
- package/lib/mergeOption/index.es.js +1 -1
- package/lib/mergeOption/index.es.min.js +1 -1
- package/lib/move/index.es.js +1 -1
- package/lib/move/index.es.min.js +1 -1
- package/lib/rotate/index.es.js +1 -1
- package/lib/rotate/index.es.min.js +1 -1
- package/lib/ruler/index.es.js +1 -1
- package/lib/ruler/index.es.min.js +1 -1
- package/lib/scale/index.es.js +1 -1
- package/lib/scale/index.es.min.js +1 -1
- package/lib/throttle/index.es.js +1 -1
- package/lib/throttle/index.es.min.js +1 -1
- package/minialipay/ui-canvas/drawImage.js +35 -35
- package/minialipay/ui-canvas/index.acss +4 -4
- package/minialipay/ui-canvas/index.axml +3 -3
- package/minialipay/ui-canvas/index.d.ts +1 -1
- package/minialipay/ui-canvas/index.js +100 -100
- package/minialipay/ui-canvas/index.json +6 -6
- package/miniprogram/ui-canvas/drawImage.js +35 -35
- package/miniprogram/ui-canvas/index.js +125 -125
- package/miniprogram/ui-canvas/index.json +4 -4
- package/miniprogram/ui-canvas/index.wxml +4 -4
- package/miniprogram/ui-canvas/index.wxss +5 -5
- package/package/BarLayout/index.ts +2 -2
- package/package/Buffer/index.ts +2 -2
- package/package/Canvas/index.ts +2 -2
- package/package/Cardinal/index.ts +2 -2
- package/package/Eoap/index.ts +2 -2
- package/package/Hermite/index.ts +2 -2
- package/package/MapCoordinate/index.ts +2 -2
- package/package/Matrix4/index.ts +2 -2
- package/package/Mercator/index.ts +2 -2
- package/package/PieLayout/index.ts +2 -2
- package/package/RawCanvas/index.ts +2 -2
- package/package/SVG/index.ts +2 -2
- package/package/Shader/index.ts +2 -2
- package/package/Texture/index.ts +2 -2
- package/package/TreeLayout/index.ts +2 -2
- package/package/animation/index.ts +5 -5
- package/package/assemble/index.ts +2 -2
- package/package/getLoopColors/index.ts +2 -2
- package/package/getWebGLContext/index.ts +40 -40
- package/package/index.ts +84 -84
- package/package/initOption/index.ts +2 -2
- package/package/mergeOption/index.ts +2 -2
- package/package/move/index.ts +2 -2
- package/package/rotate/index.ts +2 -2
- package/package/ruler/index.ts +2 -2
- package/package/scale/index.ts +2 -2
- package/package/throttle/index.ts +2 -2
- package/package.json +1 -1
- package/src/Canvas.ts +89 -89
- package/src/Eoap.ts +66 -66
- package/src/Matrix4/index.ts +84 -84
- package/src/Matrix4/move.ts +12 -12
- package/src/Matrix4/rotate.ts +15 -15
- package/src/Matrix4/scale.ts +11 -11
- package/src/Matrix4/transform.ts +64 -64
- package/src/Mercator.ts +27 -27
- package/src/SVG.ts +55 -55
- package/src/common/assemble.ts +22 -22
- package/src/common/canvas/arc.ts +51 -51
- package/src/common/canvas/config.ts +176 -176
- package/src/common/canvas/default.ts +64 -64
- package/src/common/canvas/gradient.ts +31 -31
- package/src/common/canvas/index.ts +188 -188
- package/src/common/canvas/painter.ts +453 -453
- package/src/common/canvas/texts.ts +18 -18
- package/src/common/map/getBoundary.ts +15 -15
- package/src/common/map/tool.ts +29 -29
- package/src/common/option.ts +29 -29
- package/src/common/setStyle.ts +5 -5
- package/src/common/svg/config.ts +213 -213
- package/src/common/svg/default.ts +29 -29
- package/src/common/svg/gradient.ts +53 -53
- package/src/common/svg/tool.ts +51 -51
- package/src/common/tree/index.ts +25 -25
- package/src/common/tree/toInnerTree.ts +61 -61
- package/src/common/tree/toPlainTree.ts +135 -135
- package/src/common/type.ts +26 -26
- package/src/common/webgl/buffer.ts +79 -79
- package/src/common/webgl/getWebGLContext.ts +45 -45
- package/src/common/webgl/shader.ts +75 -75
- package/src/common/webgl/texture.ts +98 -98
- package/src/coordinate/MapCoordinate.ts +80 -80
- package/src/getLoopColors.ts +42 -42
- package/src/interpolation/Cardinal.ts +110 -110
- package/src/interpolation/Hermite.ts +65 -65
- package/src/layout/BarLayout.ts +249 -249
- package/src/layout/PieLayout.ts +144 -144
- package/src/layout/TreeLayout.ts +200 -200
- package/src/move.ts +7 -7
- package/src/rotate.ts +7 -7
- package/src/ruler.ts +209 -209
- package/src/scale.ts +6 -6
- package/types/Bar.d.ts +91 -91
- package/types/BarConfig.d.ts +4 -4
- package/types/BarLayout.d.ts +48 -48
- package/types/BarOption.d.ts +31 -31
- package/types/Buffer.d.ts +23 -23
- package/types/Canvas.d.ts +375 -375
- package/types/CanvasConfig.d.ts +88 -88
- package/types/CanvasOption.d.ts +13 -13
- package/types/CanvasOpts.d.ts +9 -9
- package/types/Cardinal.d.ts +13 -13
- package/types/Gradient.d.ts +14 -14
- package/types/Hermite.d.ts +18 -18
- package/types/Map.d.ts +9 -9
- package/types/MapConfig.d.ts +27 -27
- package/types/MapCoordinate.d.ts +22 -22
- package/types/Matrix4.d.ts +47 -47
- package/types/Pie.d.ts +73 -73
- package/types/PieConfig.d.ts +26 -26
- package/types/PieLayout.d.ts +40 -40
- package/types/PieOption.d.ts +21 -21
- package/types/SVGConfig.d.ts +71 -71
- package/types/Shader.d.ts +16 -16
- package/types/Texture.d.ts +16 -16
- package/types/Tree.d.ts +74 -74
- package/types/TreeConfig.d.ts +36 -36
- package/types/TreeLayout.d.ts +59 -59
- package/types/TreeOption.d.ts +48 -48
- package/types/animation.d.ts +11 -11
- package/types/assemble.d.ts +5 -5
- package/types/getLoopColors.d.ts +5 -5
- package/types/getWebGLContext.d.ts +7 -7
- package/types/index.d.ts +195 -195
- package/types/move.d.ts +5 -5
- package/types/option.d.ts +12 -12
- package/types/painterConfig.d.ts +4 -4
- package/types/rotate.d.ts +5 -5
- package/types/ruler.d.ts +10 -10
- package/types/scale.d.ts +5 -5
- package/types/throttle.d.ts +5 -5
- package/types/ui-canvas.d.ts +4 -4
- package/types/uni-canvas.d.ts +3 -3
- package/uni-app/drawImage.js +19 -19
- package/uni-app/ui-canvas.vue +295 -295
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import type { arcCapType, textAlignType, textBaselineType, lineCapType, lineJoinType } from "../../../types/painterConfig"
|
|
2
|
-
|
|
3
|
-
export default function () {
|
|
4
|
-
return {
|
|
5
|
-
// 颜色
|
|
6
|
-
fillStyle: "rgb(0,0,0)",
|
|
7
|
-
strokeStyle: "rgb(0,0,0)",
|
|
8
|
-
|
|
9
|
-
// 文字对齐方式
|
|
10
|
-
textAlign: <textAlignType>"left",
|
|
11
|
-
textBaseline: <textBaselineType>"middle",
|
|
12
|
-
|
|
13
|
-
// 文字
|
|
14
|
-
"fontSize": 16,
|
|
15
|
-
"fontFamily": "sans-serif",
|
|
16
|
-
|
|
17
|
-
// arc二端闭合方式['butt':直线闭合,'round':圆帽闭合]
|
|
18
|
-
"arcStartCap": <arcCapType>"butt",
|
|
19
|
-
"arcEndCap": <arcCapType>"butt",
|
|
20
|
-
|
|
21
|
-
// 线条
|
|
22
|
-
lineDash: [],
|
|
23
|
-
lineWidth: 1,
|
|
24
|
-
lineCap: <lineCapType>"butt",
|
|
25
|
-
lineJoin: <lineJoinType>"miter",
|
|
26
|
-
|
|
27
|
-
// 矩形圆角半径
|
|
28
|
-
"rectRadius": []
|
|
29
|
-
}
|
|
1
|
+
import type { arcCapType, textAlignType, textBaselineType, lineCapType, lineJoinType } from "../../../types/painterConfig"
|
|
2
|
+
|
|
3
|
+
export default function () {
|
|
4
|
+
return {
|
|
5
|
+
// 颜色
|
|
6
|
+
fillStyle: "rgb(0,0,0)",
|
|
7
|
+
strokeStyle: "rgb(0,0,0)",
|
|
8
|
+
|
|
9
|
+
// 文字对齐方式
|
|
10
|
+
textAlign: <textAlignType>"left",
|
|
11
|
+
textBaseline: <textBaselineType>"middle",
|
|
12
|
+
|
|
13
|
+
// 文字
|
|
14
|
+
"fontSize": 16,
|
|
15
|
+
"fontFamily": "sans-serif",
|
|
16
|
+
|
|
17
|
+
// arc二端闭合方式['butt':直线闭合,'round':圆帽闭合]
|
|
18
|
+
"arcStartCap": <arcCapType>"butt",
|
|
19
|
+
"arcEndCap": <arcCapType>"butt",
|
|
20
|
+
|
|
21
|
+
// 线条
|
|
22
|
+
lineDash: [],
|
|
23
|
+
lineWidth: 1,
|
|
24
|
+
lineCap: <lineCapType>"butt",
|
|
25
|
+
lineJoin: <lineJoinType>"miter",
|
|
26
|
+
|
|
27
|
+
// 矩形圆角半径
|
|
28
|
+
"rectRadius": []
|
|
29
|
+
}
|
|
30
30
|
}
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
import { initDefs } from './config'
|
|
2
|
-
import { toNode, setAttribute } from "./tool"
|
|
3
|
-
|
|
4
|
-
const enhanceGradient = function (gradient: SVGElement, gradientId: string) {
|
|
5
|
-
const enhanceGradient = {
|
|
6
|
-
"value": function () {
|
|
7
|
-
return "url(#" + gradientId + ")"
|
|
8
|
-
},
|
|
9
|
-
"setColor": function (stop: number, color: string) {
|
|
10
|
-
|
|
11
|
-
const stopEl = toNode("stop")
|
|
12
|
-
gradient.appendChild(stopEl)
|
|
13
|
-
setAttribute(stopEl, "offset", (stop * 100) + "%")
|
|
14
|
-
setAttribute(stopEl, "style", "stop-color:" + color + ";")
|
|
15
|
-
|
|
16
|
-
return enhanceGradient
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return enhanceGradient
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
// 线性渐变
|
|
23
|
-
export const linearGradient = function (el: SVGElement, x0: number, y0: number, x1: number, y1: number) {
|
|
24
|
-
|
|
25
|
-
const defs = initDefs(el)
|
|
26
|
-
const gradientId = "visliteLg" + new Date().valueOf() + "" + (Math.random() * 1000000).toFixed(0)
|
|
27
|
-
|
|
28
|
-
const linearGradient = toNode("linearGradient")
|
|
29
|
-
defs.appendChild(linearGradient)
|
|
30
|
-
setAttribute(linearGradient, "id", gradientId)
|
|
31
|
-
setAttribute(linearGradient, "x1", x0 + "%")
|
|
32
|
-
setAttribute(linearGradient, "y1", y0 + "%")
|
|
33
|
-
setAttribute(linearGradient, "x2", x1 + "%")
|
|
34
|
-
setAttribute(linearGradient, "y2", y1 + "%")
|
|
35
|
-
|
|
36
|
-
return enhanceGradient(linearGradient, gradientId)
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// 环形渐变
|
|
40
|
-
export const radialGradient = function (el: SVGElement, cx: number, cy: number, r: number) {
|
|
41
|
-
|
|
42
|
-
const defs = initDefs(el)
|
|
43
|
-
const gradientId = "visliteRg" + new Date().valueOf() + "" + (Math.random() * 1000000).toFixed(0)
|
|
44
|
-
|
|
45
|
-
const radialGradient = toNode("radialGradient")
|
|
46
|
-
defs.appendChild(radialGradient)
|
|
47
|
-
setAttribute(radialGradient, "id", gradientId)
|
|
48
|
-
setAttribute(radialGradient, "cx", cx + "%")
|
|
49
|
-
setAttribute(radialGradient, "cy", cy + "%")
|
|
50
|
-
setAttribute(radialGradient, "r", r + "%")
|
|
51
|
-
|
|
52
|
-
return enhanceGradient(radialGradient, gradientId)
|
|
53
|
-
}
|
|
1
|
+
import { initDefs } from './config'
|
|
2
|
+
import { toNode, setAttribute } from "./tool"
|
|
3
|
+
|
|
4
|
+
const enhanceGradient = function (gradient: SVGElement, gradientId: string) {
|
|
5
|
+
const enhanceGradient = {
|
|
6
|
+
"value": function () {
|
|
7
|
+
return "url(#" + gradientId + ")"
|
|
8
|
+
},
|
|
9
|
+
"setColor": function (stop: number, color: string) {
|
|
10
|
+
|
|
11
|
+
const stopEl = toNode("stop")
|
|
12
|
+
gradient.appendChild(stopEl)
|
|
13
|
+
setAttribute(stopEl, "offset", (stop * 100) + "%")
|
|
14
|
+
setAttribute(stopEl, "style", "stop-color:" + color + ";")
|
|
15
|
+
|
|
16
|
+
return enhanceGradient
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return enhanceGradient
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// 线性渐变
|
|
23
|
+
export const linearGradient = function (el: SVGElement, x0: number, y0: number, x1: number, y1: number) {
|
|
24
|
+
|
|
25
|
+
const defs = initDefs(el)
|
|
26
|
+
const gradientId = "visliteLg" + new Date().valueOf() + "" + (Math.random() * 1000000).toFixed(0)
|
|
27
|
+
|
|
28
|
+
const linearGradient = toNode("linearGradient")
|
|
29
|
+
defs.appendChild(linearGradient)
|
|
30
|
+
setAttribute(linearGradient, "id", gradientId)
|
|
31
|
+
setAttribute(linearGradient, "x1", x0 + "%")
|
|
32
|
+
setAttribute(linearGradient, "y1", y0 + "%")
|
|
33
|
+
setAttribute(linearGradient, "x2", x1 + "%")
|
|
34
|
+
setAttribute(linearGradient, "y2", y1 + "%")
|
|
35
|
+
|
|
36
|
+
return enhanceGradient(linearGradient, gradientId)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// 环形渐变
|
|
40
|
+
export const radialGradient = function (el: SVGElement, cx: number, cy: number, r: number) {
|
|
41
|
+
|
|
42
|
+
const defs = initDefs(el)
|
|
43
|
+
const gradientId = "visliteRg" + new Date().valueOf() + "" + (Math.random() * 1000000).toFixed(0)
|
|
44
|
+
|
|
45
|
+
const radialGradient = toNode("radialGradient")
|
|
46
|
+
defs.appendChild(radialGradient)
|
|
47
|
+
setAttribute(radialGradient, "id", gradientId)
|
|
48
|
+
setAttribute(radialGradient, "cx", cx + "%")
|
|
49
|
+
setAttribute(radialGradient, "cy", cy + "%")
|
|
50
|
+
setAttribute(radialGradient, "r", r + "%")
|
|
51
|
+
|
|
52
|
+
return enhanceGradient(radialGradient, gradientId)
|
|
53
|
+
}
|
package/src/common/svg/tool.ts
CHANGED
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
import type SVGConfigType from '../../../types/SVGConfig'
|
|
2
|
-
|
|
3
|
-
import { XLINK_ATTRIBUTE } from "./dictionary"
|
|
4
|
-
|
|
5
|
-
const setLineAttr = (el: SVGElement, config: SVGConfigType) => {
|
|
6
|
-
setAttribute(el, "stroke-dasharray", (config.lineDash as Array<number>).join(','))
|
|
7
|
-
setAttribute(el, "stroke-width", config.lineWidth + "")
|
|
8
|
-
setAttribute(el, "stroke-linecap", config.lineCap + "")
|
|
9
|
-
setAttribute(el, "stroke-linejoin", config.lineJoin + "")
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
// 新建节点
|
|
13
|
-
export function toNode(tagname: string) {
|
|
14
|
-
return document.createElementNS('http://www.w3.org/2000/svg', tagname)
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
// 设置属性
|
|
18
|
-
const _setAttribute = function (el: SVGElement, key: string, value: string | number) {
|
|
19
|
-
|
|
20
|
-
// 需要使用xlink命名空间的xml属性
|
|
21
|
-
if (XLINK_ATTRIBUTE.indexOf(key) > -1) {
|
|
22
|
-
el.setAttributeNS("http://www.w3.org/1999/xlink", 'xlink:' + key, value + "")
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// 否则
|
|
26
|
-
else {
|
|
27
|
-
el.setAttribute(key, value + "")
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
export const setAttribute = _setAttribute
|
|
31
|
-
|
|
32
|
-
// 获取属性
|
|
33
|
-
export function getAttribute(el: SVGElement, key: string) {
|
|
34
|
-
if (XLINK_ATTRIBUTE.indexOf(key) > -1) key = 'xlink:' + key
|
|
35
|
-
return el.getAttribute(key)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export function full(el: SVGElement, config: SVGConfigType) {
|
|
39
|
-
setLineAttr(el, config)
|
|
40
|
-
_setAttribute(el, "stroke", config.strokeStyle as string)
|
|
41
|
-
_setAttribute(el, "fill", config.fillStyle as string)
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export function fill(el: SVGElement, config: SVGConfigType) {
|
|
45
|
-
_setAttribute(el, "fill", config.fillStyle as string)
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export function stroke(el: SVGElement, config: SVGConfigType) {
|
|
49
|
-
setLineAttr(el, config)
|
|
50
|
-
_setAttribute(el, "stroke", config.strokeStyle as string)
|
|
51
|
-
_setAttribute(el, "fill", "none")
|
|
1
|
+
import type SVGConfigType from '../../../types/SVGConfig'
|
|
2
|
+
|
|
3
|
+
import { XLINK_ATTRIBUTE } from "./dictionary"
|
|
4
|
+
|
|
5
|
+
const setLineAttr = (el: SVGElement, config: SVGConfigType) => {
|
|
6
|
+
setAttribute(el, "stroke-dasharray", (config.lineDash as Array<number>).join(','))
|
|
7
|
+
setAttribute(el, "stroke-width", config.lineWidth + "")
|
|
8
|
+
setAttribute(el, "stroke-linecap", config.lineCap + "")
|
|
9
|
+
setAttribute(el, "stroke-linejoin", config.lineJoin + "")
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// 新建节点
|
|
13
|
+
export function toNode(tagname: string) {
|
|
14
|
+
return document.createElementNS('http://www.w3.org/2000/svg', tagname)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// 设置属性
|
|
18
|
+
const _setAttribute = function (el: SVGElement, key: string, value: string | number) {
|
|
19
|
+
|
|
20
|
+
// 需要使用xlink命名空间的xml属性
|
|
21
|
+
if (XLINK_ATTRIBUTE.indexOf(key) > -1) {
|
|
22
|
+
el.setAttributeNS("http://www.w3.org/1999/xlink", 'xlink:' + key, value + "")
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// 否则
|
|
26
|
+
else {
|
|
27
|
+
el.setAttribute(key, value + "")
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export const setAttribute = _setAttribute
|
|
31
|
+
|
|
32
|
+
// 获取属性
|
|
33
|
+
export function getAttribute(el: SVGElement, key: string) {
|
|
34
|
+
if (XLINK_ATTRIBUTE.indexOf(key) > -1) key = 'xlink:' + key
|
|
35
|
+
return el.getAttribute(key)
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function full(el: SVGElement, config: SVGConfigType) {
|
|
39
|
+
setLineAttr(el, config)
|
|
40
|
+
_setAttribute(el, "stroke", config.strokeStyle as string)
|
|
41
|
+
_setAttribute(el, "fill", config.fillStyle as string)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export function fill(el: SVGElement, config: SVGConfigType) {
|
|
45
|
+
_setAttribute(el, "fill", config.fillStyle as string)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export function stroke(el: SVGElement, config: SVGConfigType) {
|
|
49
|
+
setLineAttr(el, config)
|
|
50
|
+
_setAttribute(el, "stroke", config.strokeStyle as string)
|
|
51
|
+
_setAttribute(el, "fill", "none")
|
|
52
52
|
}
|
package/src/common/tree/index.ts
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import type TreeConfigType from '../../../types/TreeConfig'
|
|
2
|
-
import type { TreeResultType } from '../../../types/Tree'
|
|
3
|
-
|
|
4
|
-
import toPlainTree from './toPlainTree'
|
|
5
|
-
import { initOption } from '../option'
|
|
6
|
-
|
|
7
|
-
class Tree {
|
|
8
|
-
readonly name: string = 'Tree'
|
|
9
|
-
|
|
10
|
-
private __config: TreeConfigType
|
|
11
|
-
|
|
12
|
-
constructor(config: TreeConfigType = {}) {
|
|
13
|
-
this.__config = initOption(config, {
|
|
14
|
-
root: (initTree: any) => initTree,
|
|
15
|
-
children: (parentTree: any) => parentTree.children,
|
|
16
|
-
id: (treedata: any) => treedata.name
|
|
17
|
-
})
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
use(initTree: any, noOpens = {}): TreeResultType {
|
|
21
|
-
return toPlainTree(initTree, this.__config, noOpens)
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
|
|
1
|
+
import type TreeConfigType from '../../../types/TreeConfig'
|
|
2
|
+
import type { TreeResultType } from '../../../types/Tree'
|
|
3
|
+
|
|
4
|
+
import toPlainTree from './toPlainTree'
|
|
5
|
+
import { initOption } from '../option'
|
|
6
|
+
|
|
7
|
+
class Tree {
|
|
8
|
+
readonly name: string = 'Tree'
|
|
9
|
+
|
|
10
|
+
private __config: TreeConfigType
|
|
11
|
+
|
|
12
|
+
constructor(config: TreeConfigType = {}) {
|
|
13
|
+
this.__config = initOption(config, {
|
|
14
|
+
root: (initTree: any) => initTree,
|
|
15
|
+
children: (parentTree: any) => parentTree.children,
|
|
16
|
+
id: (treedata: any) => treedata.name
|
|
17
|
+
})
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
use(initTree: any, noOpens = {}): TreeResultType {
|
|
21
|
+
return toPlainTree(initTree, this.__config, noOpens)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
}
|
|
25
|
+
|
|
26
26
|
export default Tree
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
import type { default as TreeConfigType, rootType, childrenType, idType } from '../../../types/TreeConfig'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* 根据配置的层次关系(配置的id,child,root)把原始数据变成内部结构,方便后期位置计算
|
|
5
|
-
*
|
|
6
|
-
* tempTree[id] = {
|
|
7
|
-
* "data": 原始数据,
|
|
8
|
-
* "pid": 父亲ID,
|
|
9
|
-
* "id": 唯一标识ID,
|
|
10
|
-
* "show": boolean,
|
|
11
|
-
* "isOpen": boolean,
|
|
12
|
-
* "children": [cid1、cid2、...]
|
|
13
|
-
* }
|
|
14
|
-
*/
|
|
15
|
-
export default (initTree: any, config: TreeConfigType) => {
|
|
16
|
-
const tempTree: {
|
|
17
|
-
[key: string]: any
|
|
18
|
-
} = {}
|
|
19
|
-
|
|
20
|
-
// 根结点
|
|
21
|
-
const temp = (config.root as rootType)(initTree)
|
|
22
|
-
let id: number | string, rid: number | string
|
|
23
|
-
id = rid = (config.id as idType)(temp)
|
|
24
|
-
tempTree[id] = {
|
|
25
|
-
"data": temp,
|
|
26
|
-
"pid": null,
|
|
27
|
-
"id": id,
|
|
28
|
-
"isOpen": true,
|
|
29
|
-
"show": true,
|
|
30
|
-
"deg": 0,
|
|
31
|
-
"children": []
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
let num: number = 1
|
|
35
|
-
|
|
36
|
-
// 根据传递的原始数据,生成内部统一结构
|
|
37
|
-
; (function createTree(pdata: any, pid: number | string) {
|
|
38
|
-
const children = (config.children as childrenType)(pdata, initTree)
|
|
39
|
-
num += children ? children.length : 0
|
|
40
|
-
for (let flag = 0; children && flag < children.length; flag++) {
|
|
41
|
-
id = (config.id as idType)(children[flag])
|
|
42
|
-
tempTree[pid].children.push(id);
|
|
43
|
-
tempTree[id] = {
|
|
44
|
-
"data": children[flag],
|
|
45
|
-
"pid": pid,
|
|
46
|
-
"id": id,
|
|
47
|
-
"isOpen": true,
|
|
48
|
-
"show": true,
|
|
49
|
-
"deg": 0,
|
|
50
|
-
"children": []
|
|
51
|
-
}
|
|
52
|
-
createTree(children[flag], id)
|
|
53
|
-
}
|
|
54
|
-
})(temp, id)
|
|
55
|
-
|
|
56
|
-
return {
|
|
57
|
-
rid,
|
|
58
|
-
value: tempTree,
|
|
59
|
-
num
|
|
60
|
-
}
|
|
61
|
-
|
|
1
|
+
import type { default as TreeConfigType, rootType, childrenType, idType } from '../../../types/TreeConfig'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 根据配置的层次关系(配置的id,child,root)把原始数据变成内部结构,方便后期位置计算
|
|
5
|
+
*
|
|
6
|
+
* tempTree[id] = {
|
|
7
|
+
* "data": 原始数据,
|
|
8
|
+
* "pid": 父亲ID,
|
|
9
|
+
* "id": 唯一标识ID,
|
|
10
|
+
* "show": boolean,
|
|
11
|
+
* "isOpen": boolean,
|
|
12
|
+
* "children": [cid1、cid2、...]
|
|
13
|
+
* }
|
|
14
|
+
*/
|
|
15
|
+
export default (initTree: any, config: TreeConfigType) => {
|
|
16
|
+
const tempTree: {
|
|
17
|
+
[key: string]: any
|
|
18
|
+
} = {}
|
|
19
|
+
|
|
20
|
+
// 根结点
|
|
21
|
+
const temp = (config.root as rootType)(initTree)
|
|
22
|
+
let id: number | string, rid: number | string
|
|
23
|
+
id = rid = (config.id as idType)(temp)
|
|
24
|
+
tempTree[id] = {
|
|
25
|
+
"data": temp,
|
|
26
|
+
"pid": null,
|
|
27
|
+
"id": id,
|
|
28
|
+
"isOpen": true,
|
|
29
|
+
"show": true,
|
|
30
|
+
"deg": 0,
|
|
31
|
+
"children": []
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
let num: number = 1
|
|
35
|
+
|
|
36
|
+
// 根据传递的原始数据,生成内部统一结构
|
|
37
|
+
; (function createTree(pdata: any, pid: number | string) {
|
|
38
|
+
const children = (config.children as childrenType)(pdata, initTree)
|
|
39
|
+
num += children ? children.length : 0
|
|
40
|
+
for (let flag = 0; children && flag < children.length; flag++) {
|
|
41
|
+
id = (config.id as idType)(children[flag])
|
|
42
|
+
tempTree[pid].children.push(id);
|
|
43
|
+
tempTree[id] = {
|
|
44
|
+
"data": children[flag],
|
|
45
|
+
"pid": pid,
|
|
46
|
+
"id": id,
|
|
47
|
+
"isOpen": true,
|
|
48
|
+
"show": true,
|
|
49
|
+
"deg": 0,
|
|
50
|
+
"children": []
|
|
51
|
+
}
|
|
52
|
+
createTree(children[flag], id)
|
|
53
|
+
}
|
|
54
|
+
})(temp, id)
|
|
55
|
+
|
|
56
|
+
return {
|
|
57
|
+
rid,
|
|
58
|
+
value: tempTree,
|
|
59
|
+
num
|
|
60
|
+
}
|
|
61
|
+
|
|
62
62
|
}
|