aldehyde 0.2.512 → 0.2.513

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 (64) hide show
  1. package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.css +99 -99
  2. package/lib/draw-canvas-edit/components/asset-bar/index.less +35 -35
  3. package/lib/draw-canvas-edit/components/main-header/index.less +23 -23
  4. package/lib/lowcode-components/base-table/index.less +61 -61
  5. package/lib/lowcode-components/data-number/index.less +10 -10
  6. package/lib/lowcode-components/date-time/index.less +4 -4
  7. package/lib/lowcode-components/four-angle-glow-border/index.less +49 -49
  8. package/lib/lowcode-components/lowcode-view/component/font/FontGlobal.css +26 -26
  9. package/lib/lowcode-components/lowcode-view/component/screen-fit/index.less +13 -13
  10. package/lib/lowcode-components/text-scroller/index.less +28 -28
  11. package/lib/table/act-table.js +1 -1
  12. package/lib/table/act-table.js.map +1 -1
  13. package/package.json +1 -1
  14. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.css +99 -99
  15. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.json +156 -156
  16. package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.less +35 -35
  17. package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.tsx +110 -110
  18. package/src/aldehyde/draw-canvas-edit/components/main-header/index.less +23 -23
  19. package/src/aldehyde/draw-canvas-edit/components/main-header/index.tsx +263 -263
  20. package/src/aldehyde/draw-canvas-edit/components/render/draws/index.ts +7 -7
  21. package/src/aldehyde/draw-canvas-edit/components/render/graphs/base-graph.ts +241 -241
  22. package/src/aldehyde/draw-canvas-edit/components/render/graphs/circle.ts +699 -699
  23. package/src/aldehyde/draw-canvas-edit/components/render/graphs/curve.ts +500 -500
  24. package/src/aldehyde/draw-canvas-edit/components/render/graphs/index.ts +5 -5
  25. package/src/aldehyde/draw-canvas-edit/components/render/graphs/line.ts +493 -493
  26. package/src/aldehyde/draw-canvas-edit/components/render/graphs/rect.ts +680 -680
  27. package/src/aldehyde/draw-canvas-edit/components/render/handlers/drag-handlers.ts +68 -68
  28. package/src/aldehyde/draw-canvas-edit/components/render/handlers/graph-handlers.ts +113 -113
  29. package/src/aldehyde/draw-canvas-edit/components/render/handlers/index.ts +9 -9
  30. package/src/aldehyde/draw-canvas-edit/components/render/handlers/key-move-handlers.ts +49 -49
  31. package/src/aldehyde/draw-canvas-edit/components/render/handlers/link-handlers.ts +45 -45
  32. package/src/aldehyde/draw-canvas-edit/components/render/handlers/shutcut-handlers.ts +45 -45
  33. package/src/aldehyde/draw-canvas-edit/components/render/handlers/text-handlers.ts +81 -81
  34. package/src/aldehyde/draw-canvas-edit/components/render/handlers/zoom-handlers.ts +59 -59
  35. package/src/aldehyde/draw-canvas-edit/components/render/tools/align-tool.ts +89 -89
  36. package/src/aldehyde/draw-canvas-edit/components/render/tools/asset-tool.ts +154 -154
  37. package/src/aldehyde/draw-canvas-edit/components/render/tools/link-tool.ts +222 -222
  38. package/src/aldehyde/draw-canvas-edit/components/render/tools/z-index-tool.ts +224 -224
  39. package/src/aldehyde/draw-canvas-edit/components/render/utils/a-star.ts +116 -116
  40. package/src/aldehyde/draw-canvas-edit/components/render/utils/bezier-scene-func.ts +72 -72
  41. package/src/aldehyde/draw-canvas-edit/components/setting-form/imag-upload.tsx +119 -119
  42. package/src/aldehyde/layout4/imgs/user.svg +26 -26
  43. package/src/aldehyde/lowcode-components/base-color-block/index.tsx +31 -31
  44. package/src/aldehyde/lowcode-components/base-table/index.less +61 -61
  45. package/src/aldehyde/lowcode-components/data-number/index.less +10 -10
  46. package/src/aldehyde/lowcode-components/date-time/index.less +4 -4
  47. package/src/aldehyde/lowcode-components/date-time/index.tsx +64 -64
  48. package/src/aldehyde/lowcode-components/four-angle-glow-border/index.less +49 -49
  49. package/src/aldehyde/lowcode-components/four-angle-glow-border/index.tsx +53 -53
  50. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-controller.ts +64 -64
  51. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-definition.ts +77 -77
  52. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-designer-loader.ts +36 -36
  53. package/src/aldehyde/lowcode-components/lowcode-view/component/component-container.tsx +144 -144
  54. package/src/aldehyde/lowcode-components/lowcode-view/component/font/FontGlobal.css +26 -26
  55. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/controller.ts +36 -36
  56. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/definition.ts +53 -53
  57. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/index.tsx +15 -15
  58. package/src/aldehyde/lowcode-components/lowcode-view/component/layer-builder.tsx +98 -98
  59. package/src/aldehyde/lowcode-components/lowcode-view/component/screen-fit/index.less +13 -13
  60. package/src/aldehyde/lowcode-components/lowcode-view/component/screen-fit/index.tsx +121 -121
  61. package/src/aldehyde/lowcode-components/placeholder-component/index.tsx +81 -81
  62. package/src/aldehyde/lowcode-components/text-scroller/index.less +28 -28
  63. package/src/aldehyde/lowcode-components/text-scroller/index.tsx +173 -173
  64. package/src/aldehyde/table/act-table.tsx +1 -1
@@ -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
+ }