aldehyde 0.2.503 → 0.2.504

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 (113) hide show
  1. package/lib/controls/action/index.d.ts +3 -1
  2. package/lib/controls/action/index.d.ts.map +1 -1
  3. package/lib/controls/action/index.js +17 -1
  4. package/lib/controls/action/index.js.map +1 -1
  5. package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.css +99 -99
  6. package/lib/draw-canvas-edit/components/asset-bar/index.less +35 -35
  7. package/lib/draw-canvas-edit/components/main-header/index.less +23 -23
  8. package/lib/lowcode-components/base-table/index.less +61 -61
  9. package/lib/lowcode-components/column-3d-chart/index.d.ts +1 -0
  10. package/lib/lowcode-components/column-3d-chart/index.d.ts.map +1 -1
  11. package/lib/lowcode-components/column-3d-chart/index.js +3 -1
  12. package/lib/lowcode-components/column-3d-chart/index.js.map +1 -1
  13. package/lib/lowcode-components/column-chart/index.d.ts +1 -0
  14. package/lib/lowcode-components/column-chart/index.d.ts.map +1 -1
  15. package/lib/lowcode-components/column-chart/index.js +3 -1
  16. package/lib/lowcode-components/column-chart/index.js.map +1 -1
  17. package/lib/lowcode-components/data-number/index.less +10 -10
  18. package/lib/lowcode-components/date-time/index.less +4 -4
  19. package/lib/lowcode-components/four-angle-glow-border/index.less +49 -49
  20. package/lib/lowcode-components/line-bar-chart/index.d.ts +1 -0
  21. package/lib/lowcode-components/line-bar-chart/index.d.ts.map +1 -1
  22. package/lib/lowcode-components/line-bar-chart/index.js +3 -1
  23. package/lib/lowcode-components/line-bar-chart/index.js.map +1 -1
  24. package/lib/lowcode-components/line-chart/index.d.ts +1 -0
  25. package/lib/lowcode-components/line-chart/index.d.ts.map +1 -1
  26. package/lib/lowcode-components/line-chart/index.js +3 -1
  27. package/lib/lowcode-components/line-chart/index.js.map +1 -1
  28. package/lib/lowcode-components/lowcode-view/component/font/FontGlobal.css +26 -26
  29. package/lib/lowcode-components/lowcode-view/component/screen-fit/index.less +13 -13
  30. package/lib/lowcode-components/lowcode-view/index.d.ts.map +1 -1
  31. package/lib/lowcode-components/lowcode-view/index.js +8 -0
  32. package/lib/lowcode-components/lowcode-view/index.js.map +1 -1
  33. package/lib/lowcode-components/text-scroller/index.less +28 -28
  34. package/lib/module/dtmpl-edit-page.d.ts.map +1 -1
  35. package/lib/module/dtmpl-edit-page.js +7 -7
  36. package/lib/module/dtmpl-edit-page.js.map +1 -1
  37. package/lib/table/act-table.d.ts.map +1 -1
  38. package/lib/table/act-table.js +6 -6
  39. package/lib/table/act-table.js.map +1 -1
  40. package/lib/table/column/column-builder.d.ts +1 -0
  41. package/lib/table/column/column-builder.d.ts.map +1 -1
  42. package/lib/table/column/column-builder.js +25 -16
  43. package/lib/table/column/column-builder.js.map +1 -1
  44. package/lib/table/column/index.less +8 -8
  45. package/lib/table/report-table.d.ts.map +1 -1
  46. package/lib/table/report-table.js +3 -3
  47. package/lib/table/report-table.js.map +1 -1
  48. package/lib/tmpl/interface.d.ts +7 -0
  49. package/lib/tmpl/interface.d.ts.map +1 -1
  50. package/lib/tmpl/interface.js.map +1 -1
  51. package/package.json +1 -1
  52. package/src/aldehyde/controls/action/index.tsx +33 -2
  53. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.css +99 -99
  54. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.json +156 -156
  55. package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.less +35 -35
  56. package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.tsx +110 -110
  57. package/src/aldehyde/draw-canvas-edit/components/main-header/index.less +23 -23
  58. package/src/aldehyde/draw-canvas-edit/components/main-header/index.tsx +263 -263
  59. package/src/aldehyde/draw-canvas-edit/components/render/draws/index.ts +7 -7
  60. package/src/aldehyde/draw-canvas-edit/components/render/graphs/base-graph.ts +241 -241
  61. package/src/aldehyde/draw-canvas-edit/components/render/graphs/circle.ts +699 -699
  62. package/src/aldehyde/draw-canvas-edit/components/render/graphs/curve.ts +500 -500
  63. package/src/aldehyde/draw-canvas-edit/components/render/graphs/index.ts +5 -5
  64. package/src/aldehyde/draw-canvas-edit/components/render/graphs/line.ts +493 -493
  65. package/src/aldehyde/draw-canvas-edit/components/render/graphs/rect.ts +680 -680
  66. package/src/aldehyde/draw-canvas-edit/components/render/handlers/drag-handlers.ts +68 -68
  67. package/src/aldehyde/draw-canvas-edit/components/render/handlers/graph-handlers.ts +113 -113
  68. package/src/aldehyde/draw-canvas-edit/components/render/handlers/index.ts +9 -9
  69. package/src/aldehyde/draw-canvas-edit/components/render/handlers/key-move-handlers.ts +49 -49
  70. package/src/aldehyde/draw-canvas-edit/components/render/handlers/link-handlers.ts +45 -45
  71. package/src/aldehyde/draw-canvas-edit/components/render/handlers/shutcut-handlers.ts +45 -45
  72. package/src/aldehyde/draw-canvas-edit/components/render/handlers/text-handlers.ts +81 -81
  73. package/src/aldehyde/draw-canvas-edit/components/render/handlers/zoom-handlers.ts +59 -59
  74. package/src/aldehyde/draw-canvas-edit/components/render/tools/align-tool.ts +89 -89
  75. package/src/aldehyde/draw-canvas-edit/components/render/tools/asset-tool.ts +154 -154
  76. package/src/aldehyde/draw-canvas-edit/components/render/tools/link-tool.ts +222 -222
  77. package/src/aldehyde/draw-canvas-edit/components/render/tools/z-index-tool.ts +224 -224
  78. package/src/aldehyde/draw-canvas-edit/components/render/utils/a-star.ts +116 -116
  79. package/src/aldehyde/draw-canvas-edit/components/render/utils/bezier-scene-func.ts +72 -72
  80. package/src/aldehyde/draw-canvas-edit/components/setting-form/imag-upload.tsx +119 -119
  81. package/src/aldehyde/layout4/imgs/user.svg +26 -26
  82. package/src/aldehyde/lowcode-components/base-color-block/index.tsx +31 -31
  83. package/src/aldehyde/lowcode-components/base-table/index.less +61 -61
  84. package/src/aldehyde/lowcode-components/column-3d-chart/index.tsx +3 -1
  85. package/src/aldehyde/lowcode-components/column-chart/index.tsx +3 -1
  86. package/src/aldehyde/lowcode-components/data-number/index.less +10 -10
  87. package/src/aldehyde/lowcode-components/date-time/index.less +4 -4
  88. package/src/aldehyde/lowcode-components/date-time/index.tsx +64 -64
  89. package/src/aldehyde/lowcode-components/four-angle-glow-border/index.less +49 -49
  90. package/src/aldehyde/lowcode-components/four-angle-glow-border/index.tsx +53 -53
  91. package/src/aldehyde/lowcode-components/line-bar-chart/index.tsx +3 -1
  92. package/src/aldehyde/lowcode-components/line-chart/index.tsx +3 -1
  93. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-controller.ts +64 -64
  94. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-definition.ts +77 -77
  95. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-designer-loader.ts +36 -36
  96. package/src/aldehyde/lowcode-components/lowcode-view/component/component-container.tsx +144 -144
  97. package/src/aldehyde/lowcode-components/lowcode-view/component/font/FontGlobal.css +26 -26
  98. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/controller.ts +36 -36
  99. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/definition.ts +53 -53
  100. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/index.tsx +15 -15
  101. package/src/aldehyde/lowcode-components/lowcode-view/component/layer-builder.tsx +98 -98
  102. package/src/aldehyde/lowcode-components/lowcode-view/component/screen-fit/index.less +13 -13
  103. package/src/aldehyde/lowcode-components/lowcode-view/component/screen-fit/index.tsx +121 -121
  104. package/src/aldehyde/lowcode-components/lowcode-view/index.tsx +9 -0
  105. package/src/aldehyde/lowcode-components/placeholder-component/index.tsx +81 -81
  106. package/src/aldehyde/lowcode-components/text-scroller/index.less +28 -28
  107. package/src/aldehyde/lowcode-components/text-scroller/index.tsx +173 -173
  108. package/src/aldehyde/module/dtmpl-edit-page.tsx +10 -10
  109. package/src/aldehyde/table/act-table.tsx +6 -6
  110. package/src/aldehyde/table/column/column-builder.tsx +26 -36
  111. package/src/aldehyde/table/column/index.less +8 -8
  112. package/src/aldehyde/table/report-table.tsx +3 -2
  113. package/src/aldehyde/tmpl/interface.tsx +7 -0
@@ -1,154 +1,154 @@
1
- import Konva from 'konva';
2
- import { Render } from '../index';
3
- import { PreviewDraw } from '../draws';
4
-
5
- const gifler = (window as any).gifler;
6
-
7
- export class AssetTool {
8
- private render: Render;
9
- // 同一个 svgXML 内容只转一次 Blob,避免重复创建 Blob URL
10
- private svgBlobCache: Map<string, string> = new Map();
11
- // 同地址 svg 只 fetch 一次,避免重复网络请求
12
- private svgRawCache: Map<string, string> = new Map();
13
-
14
- constructor(render: Render) {
15
- this.render = render;
16
- }
17
-
18
- // 加载 svg xml(带 Blob 缓存)
19
- loadSvgXML(svgXML: string) {
20
- let url = this.svgBlobCache.get(svgXML);
21
- if (!url) {
22
- const blob = new Blob([svgXML], { type: 'image/svg+xml' });
23
- url = URL.createObjectURL(blob);
24
- this.svgBlobCache.set(svgXML, url);
25
- }
26
- return new Promise<Konva.Image>((resolve) => {
27
- Konva.Image.fromURL(url, (imageNode) => {
28
- imageNode.setAttrs({ svgXML } as any);
29
- resolve(imageNode);
30
- });
31
- });
32
- }
33
-
34
- // 加载 svg(带 fetch 缓存 + Blob 缓存)
35
- async loadSvg(src: string) {
36
- let rawSvg = this.svgRawCache.get(src);
37
- if (!rawSvg) {
38
- rawSvg = await (await fetch(src)).text();
39
- this.svgRawCache.set(src, rawSvg);
40
- }
41
- const svgXML = this.render.setSvgXMLSettings(rawSvg, this.render.getAssetSettings());
42
- return this.loadSvgXML(svgXML);
43
- }
44
-
45
- // 加载 gif
46
- async loadGif(src: string) {
47
- return new Promise<Konva.Image>((resolve) => {
48
- const img = document.createElement('img');
49
- img.onload = () => {
50
- const canvas = document.createElement('canvas');
51
- canvas.width = img.naturalWidth;
52
- canvas.height = img.naturalHeight;
53
- const gif = gifler(src);
54
- gif.frames(canvas, (ctx: CanvasRenderingContext2D, frame: any) => {
55
- ctx.drawImage(frame.buffer, frame.x, frame.y);
56
- this.render.layer.draw();
57
- // 更新预览(layer)
58
- this.render.draws[PreviewDraw.NAME]?.layer.draw();
59
- });
60
- img.remove();
61
- // TODO: 拖动 gif 素材产生大量 JS event listeners
62
- resolve(new Konva.Image({ image: canvas, gif: src }));
63
- }
64
- img.src = src;
65
- });
66
- }
67
-
68
- // 加载图片
69
- async loadImg(src: string) {
70
- return new Promise<Konva.Image>((resolve) => {
71
- Konva.Image.fromURL(src, (imageNode) => {
72
- imageNode.setAttrs({ src } as any);
73
- resolve(imageNode);
74
- });
75
- });
76
- }
77
-
78
- // 加载节点 json
79
- async loadJson(src: string) {
80
- try {
81
- // 读取 json内容
82
- const json = JSON.parse(await (await fetch(src)).text());
83
- // 子素材
84
- const assets = json.children;
85
- // 刷新id
86
- this.render.linkTool.jsonIdCover(assets);
87
- // 生成空白 stage+layer
88
- const stageEmpty = new Konva.Stage({ container: document.createElement('div') });
89
- const layerEmpty = new Konva.Layer();
90
- stageEmpty.add(layerEmpty);
91
- // 空白 json 根
92
- const jsonRoot = JSON.parse(stageEmpty.toJSON());
93
- jsonRoot.children[0].children = [json];
94
- // 重新加载 stage
95
- const stageReload = Konva.Node.create(JSON.stringify(jsonRoot), document.createElement('div'));
96
- // 目标 group(即 json 转化后的节点)
97
- const groupTarget = stageReload.children[0].children[0] as Konva.Group;
98
- // 释放内存
99
- stageEmpty.destroy();
100
- groupTarget.remove();
101
- stageReload.destroy();
102
- // 深度遍历加载子素材
103
- const nodes: {
104
- target: Konva.Stage | Konva.Layer | Konva.Group | Konva.Node
105
- parent?: Konva.Stage | Konva.Layer | Konva.Group | Konva.Node
106
- }[] = [{ target: groupTarget }];
107
- while (nodes.length > 0) {
108
- const item = nodes.shift();
109
- if (item) {
110
- const node = item.target;
111
- if (node instanceof Konva.Image) {
112
- if (node.attrs.svgXML) {
113
- const n = await this.loadSvgXML(node.attrs.svgXML);
114
- n.listening(false);
115
- node.parent?.add(n);
116
- node.remove();
117
- } else if (node.attrs.gif) {
118
- const n = await this.loadGif(node.attrs.gif);
119
- n.listening(false);
120
- node.parent?.add(n);
121
- node.remove();
122
- } else if (node.attrs.src) {
123
- const n = await this.loadImg(node.attrs.src);
124
- n.listening(false);
125
- node.parent?.add(n);
126
- node.remove();
127
- }
128
- }
129
- if (node instanceof Konva.Stage || node instanceof Konva.Layer || node instanceof Konva.Group) {
130
- nodes.push(
131
- ...node.getChildren().map((o) => ({
132
- target: o,
133
- parent: node
134
- }))
135
- );
136
- }
137
- }
138
- }
139
-
140
- // 作用:点击空白区域可选择
141
- const clickMask = new Konva.Rect({
142
- id: 'click-mask',
143
- width: groupTarget.width(),
144
- height: groupTarget.height()
145
- });
146
- groupTarget.add(clickMask);
147
- clickMask.zIndex(1)
148
- return groupTarget;
149
- } catch (e) {
150
- console.error(e);
151
- return new Konva.Group();
152
- }
153
- }
154
- }
1
+ import Konva from 'konva';
2
+ import { Render } from '../index';
3
+ import { PreviewDraw } from '../draws';
4
+
5
+ const gifler = (window as any).gifler;
6
+
7
+ export class AssetTool {
8
+ private render: Render;
9
+ // 同一个 svgXML 内容只转一次 Blob,避免重复创建 Blob URL
10
+ private svgBlobCache: Map<string, string> = new Map();
11
+ // 同地址 svg 只 fetch 一次,避免重复网络请求
12
+ private svgRawCache: Map<string, string> = new Map();
13
+
14
+ constructor(render: Render) {
15
+ this.render = render;
16
+ }
17
+
18
+ // 加载 svg xml(带 Blob 缓存)
19
+ loadSvgXML(svgXML: string) {
20
+ let url = this.svgBlobCache.get(svgXML);
21
+ if (!url) {
22
+ const blob = new Blob([svgXML], { type: 'image/svg+xml' });
23
+ url = URL.createObjectURL(blob);
24
+ this.svgBlobCache.set(svgXML, url);
25
+ }
26
+ return new Promise<Konva.Image>((resolve) => {
27
+ Konva.Image.fromURL(url, (imageNode) => {
28
+ imageNode.setAttrs({ svgXML } as any);
29
+ resolve(imageNode);
30
+ });
31
+ });
32
+ }
33
+
34
+ // 加载 svg(带 fetch 缓存 + Blob 缓存)
35
+ async loadSvg(src: string) {
36
+ let rawSvg = this.svgRawCache.get(src);
37
+ if (!rawSvg) {
38
+ rawSvg = await (await fetch(src)).text();
39
+ this.svgRawCache.set(src, rawSvg);
40
+ }
41
+ const svgXML = this.render.setSvgXMLSettings(rawSvg, this.render.getAssetSettings());
42
+ return this.loadSvgXML(svgXML);
43
+ }
44
+
45
+ // 加载 gif
46
+ async loadGif(src: string) {
47
+ return new Promise<Konva.Image>((resolve) => {
48
+ const img = document.createElement('img');
49
+ img.onload = () => {
50
+ const canvas = document.createElement('canvas');
51
+ canvas.width = img.naturalWidth;
52
+ canvas.height = img.naturalHeight;
53
+ const gif = gifler(src);
54
+ gif.frames(canvas, (ctx: CanvasRenderingContext2D, frame: any) => {
55
+ ctx.drawImage(frame.buffer, frame.x, frame.y);
56
+ this.render.layer.draw();
57
+ // 更新预览(layer)
58
+ this.render.draws[PreviewDraw.NAME]?.layer.draw();
59
+ });
60
+ img.remove();
61
+ // TODO: 拖动 gif 素材产生大量 JS event listeners
62
+ resolve(new Konva.Image({ image: canvas, gif: src }));
63
+ }
64
+ img.src = src;
65
+ });
66
+ }
67
+
68
+ // 加载图片
69
+ async loadImg(src: string) {
70
+ return new Promise<Konva.Image>((resolve) => {
71
+ Konva.Image.fromURL(src, (imageNode) => {
72
+ imageNode.setAttrs({ src } as any);
73
+ resolve(imageNode);
74
+ });
75
+ });
76
+ }
77
+
78
+ // 加载节点 json
79
+ async loadJson(src: string) {
80
+ try {
81
+ // 读取 json内容
82
+ const json = JSON.parse(await (await fetch(src)).text());
83
+ // 子素材
84
+ const assets = json.children;
85
+ // 刷新id
86
+ this.render.linkTool.jsonIdCover(assets);
87
+ // 生成空白 stage+layer
88
+ const stageEmpty = new Konva.Stage({ container: document.createElement('div') });
89
+ const layerEmpty = new Konva.Layer();
90
+ stageEmpty.add(layerEmpty);
91
+ // 空白 json 根
92
+ const jsonRoot = JSON.parse(stageEmpty.toJSON());
93
+ jsonRoot.children[0].children = [json];
94
+ // 重新加载 stage
95
+ const stageReload = Konva.Node.create(JSON.stringify(jsonRoot), document.createElement('div'));
96
+ // 目标 group(即 json 转化后的节点)
97
+ const groupTarget = stageReload.children[0].children[0] as Konva.Group;
98
+ // 释放内存
99
+ stageEmpty.destroy();
100
+ groupTarget.remove();
101
+ stageReload.destroy();
102
+ // 深度遍历加载子素材
103
+ const nodes: {
104
+ target: Konva.Stage | Konva.Layer | Konva.Group | Konva.Node
105
+ parent?: Konva.Stage | Konva.Layer | Konva.Group | Konva.Node
106
+ }[] = [{ target: groupTarget }];
107
+ while (nodes.length > 0) {
108
+ const item = nodes.shift();
109
+ if (item) {
110
+ const node = item.target;
111
+ if (node instanceof Konva.Image) {
112
+ if (node.attrs.svgXML) {
113
+ const n = await this.loadSvgXML(node.attrs.svgXML);
114
+ n.listening(false);
115
+ node.parent?.add(n);
116
+ node.remove();
117
+ } else if (node.attrs.gif) {
118
+ const n = await this.loadGif(node.attrs.gif);
119
+ n.listening(false);
120
+ node.parent?.add(n);
121
+ node.remove();
122
+ } else if (node.attrs.src) {
123
+ const n = await this.loadImg(node.attrs.src);
124
+ n.listening(false);
125
+ node.parent?.add(n);
126
+ node.remove();
127
+ }
128
+ }
129
+ if (node instanceof Konva.Stage || node instanceof Konva.Layer || node instanceof Konva.Group) {
130
+ nodes.push(
131
+ ...node.getChildren().map((o) => ({
132
+ target: o,
133
+ parent: node
134
+ }))
135
+ );
136
+ }
137
+ }
138
+ }
139
+
140
+ // 作用:点击空白区域可选择
141
+ const clickMask = new Konva.Rect({
142
+ id: 'click-mask',
143
+ width: groupTarget.width(),
144
+ height: groupTarget.height()
145
+ });
146
+ groupTarget.add(clickMask);
147
+ clickMask.zIndex(1)
148
+ return groupTarget;
149
+ } catch (e) {
150
+ console.error(e);
151
+ return new Konva.Group();
152
+ }
153
+ }
154
+ }