aldehyde 0.2.494 → 0.2.495

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 (127) hide show
  1. package/lib/controls/icon-selector/icon/phonenode-menu-icon/iconfont.css +63 -63
  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/layout2/page.d.ts +2 -1
  5. package/lib/layout2/page.d.ts.map +1 -1
  6. package/lib/layout2/page.js +19 -8
  7. package/lib/layout2/page.js.map +1 -1
  8. package/lib/layout2/type/layout-type.d.ts +1 -0
  9. package/lib/layout2/type/layout-type.d.ts.map +1 -1
  10. package/lib/lowcode-components/base-table/index.less +61 -61
  11. package/lib/lowcode-components/base-text/index.less +19 -19
  12. package/lib/lowcode-components/data-number/index.less +10 -10
  13. package/lib/lowcode-components/date-time/index.less +4 -4
  14. package/lib/lowcode-components/four-angle-glow-border/index.less +49 -49
  15. package/lib/lowcode-components/lowcode-view/component/font/FontGlobal.css +26 -26
  16. package/lib/lowcode-components/lowcode-view/component/screen-fit/index.less +13 -13
  17. package/lib/lowcode-components/text-scroller/index.less +28 -28
  18. package/lib/module/ltmpl-table.d.ts +7 -0
  19. package/lib/module/ltmpl-table.d.ts.map +1 -1
  20. package/lib/module/ltmpl-table.js +12 -16
  21. package/lib/module/ltmpl-table.js.map +1 -1
  22. package/lib/routable/dtmpl-route.d.ts.map +1 -1
  23. package/lib/routable/dtmpl-route.js +8 -2
  24. package/lib/routable/dtmpl-route.js.map +1 -1
  25. package/lib/routable/import-route.d.ts.map +1 -1
  26. package/lib/routable/import-route.js +9 -1
  27. package/lib/routable/import-route.js.map +1 -1
  28. package/lib/routable/ltmpl-route.d.ts.map +1 -1
  29. package/lib/routable/ltmpl-route.js +13 -6
  30. package/lib/routable/ltmpl-route.js.map +1 -1
  31. package/lib/routable/splitview-ltmpl-route.d.ts.map +1 -1
  32. package/lib/routable/splitview-ltmpl-route.js +11 -10
  33. package/lib/routable/splitview-ltmpl-route.js.map +1 -1
  34. package/lib/routable/ttmpl-route.d.ts.map +1 -1
  35. package/lib/routable/ttmpl-route.js +9 -2
  36. package/lib/routable/ttmpl-route.js.map +1 -1
  37. package/lib/table/act-table.d.ts +1 -0
  38. package/lib/table/act-table.d.ts.map +1 -1
  39. package/lib/table/act-table.js +31 -9
  40. package/lib/table/act-table.js.map +1 -1
  41. package/lib/table/page-chart.js +1 -1
  42. package/lib/table/page-chart.js.map +1 -1
  43. package/lib/table/row-table.d.ts +6 -0
  44. package/lib/table/row-table.d.ts.map +1 -1
  45. package/lib/table/row-table.js +21 -6
  46. package/lib/table/row-table.js.map +1 -1
  47. package/lib/tmpl/interface.d.ts +1 -0
  48. package/lib/tmpl/interface.d.ts.map +1 -1
  49. package/lib/tree/act-tree.d.ts +1 -0
  50. package/lib/tree/act-tree.d.ts.map +1 -1
  51. package/lib/tree/act-tree.js +6 -7
  52. package/lib/tree/act-tree.js.map +1 -1
  53. package/lib/tree/tree-utils.d.ts +1 -1
  54. package/lib/tree/tree-utils.d.ts.map +1 -1
  55. package/lib/tree/tree-utils.js +4 -4
  56. package/lib/tree/tree-utils.js.map +1 -1
  57. package/lib/units/index.d.ts +4 -0
  58. package/lib/units/index.d.ts.map +1 -1
  59. package/lib/units/index.js +10 -3
  60. package/lib/units/index.js.map +1 -1
  61. package/package.json +1 -1
  62. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.css +63 -63
  63. package/src/aldehyde/controls/icon-selector/icon/phonenode-menu-icon/iconfont.json +93 -93
  64. package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.less +35 -35
  65. package/src/aldehyde/draw-canvas-edit/components/asset-bar/index.tsx +110 -110
  66. package/src/aldehyde/draw-canvas-edit/components/main-header/index.less +23 -23
  67. package/src/aldehyde/draw-canvas-edit/components/main-header/index.tsx +263 -263
  68. package/src/aldehyde/draw-canvas-edit/components/render/draws/index.ts +7 -7
  69. package/src/aldehyde/draw-canvas-edit/components/render/graphs/base-graph.ts +241 -241
  70. package/src/aldehyde/draw-canvas-edit/components/render/graphs/circle.ts +699 -699
  71. package/src/aldehyde/draw-canvas-edit/components/render/graphs/curve.ts +500 -500
  72. package/src/aldehyde/draw-canvas-edit/components/render/graphs/index.ts +5 -5
  73. package/src/aldehyde/draw-canvas-edit/components/render/graphs/line.ts +493 -493
  74. package/src/aldehyde/draw-canvas-edit/components/render/graphs/rect.ts +680 -680
  75. package/src/aldehyde/draw-canvas-edit/components/render/handlers/drag-handlers.ts +68 -68
  76. package/src/aldehyde/draw-canvas-edit/components/render/handlers/graph-handlers.ts +113 -113
  77. package/src/aldehyde/draw-canvas-edit/components/render/handlers/index.ts +9 -9
  78. package/src/aldehyde/draw-canvas-edit/components/render/handlers/key-move-handlers.ts +49 -49
  79. package/src/aldehyde/draw-canvas-edit/components/render/handlers/link-handlers.ts +45 -45
  80. package/src/aldehyde/draw-canvas-edit/components/render/handlers/shutcut-handlers.ts +45 -45
  81. package/src/aldehyde/draw-canvas-edit/components/render/handlers/text-handlers.ts +81 -81
  82. package/src/aldehyde/draw-canvas-edit/components/render/handlers/zoom-handlers.ts +59 -59
  83. package/src/aldehyde/draw-canvas-edit/components/render/tools/align-tool.ts +89 -89
  84. package/src/aldehyde/draw-canvas-edit/components/render/tools/asset-tool.ts +154 -154
  85. package/src/aldehyde/draw-canvas-edit/components/render/tools/link-tool.ts +222 -222
  86. package/src/aldehyde/draw-canvas-edit/components/render/tools/z-index-tool.ts +224 -224
  87. package/src/aldehyde/draw-canvas-edit/components/render/utils/a-star.ts +116 -116
  88. package/src/aldehyde/draw-canvas-edit/components/render/utils/bezier-scene-func.ts +72 -72
  89. package/src/aldehyde/draw-canvas-edit/components/setting-form/imag-upload.tsx +119 -119
  90. package/src/aldehyde/layout2/page.tsx +17 -9
  91. package/src/aldehyde/layout2/type/layout-type.ts +1 -0
  92. package/src/aldehyde/layout4/imgs/user.svg +26 -26
  93. package/src/aldehyde/lowcode-components/base-color-block/index.tsx +31 -31
  94. package/src/aldehyde/lowcode-components/base-table/index.less +61 -61
  95. package/src/aldehyde/lowcode-components/base-text/index.less +19 -19
  96. package/src/aldehyde/lowcode-components/data-number/index.less +10 -10
  97. package/src/aldehyde/lowcode-components/date-time/index.less +4 -4
  98. package/src/aldehyde/lowcode-components/date-time/index.tsx +64 -64
  99. package/src/aldehyde/lowcode-components/four-angle-glow-border/index.less +49 -49
  100. package/src/aldehyde/lowcode-components/four-angle-glow-border/index.tsx +53 -53
  101. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-controller.ts +64 -64
  102. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-definition.ts +77 -77
  103. package/src/aldehyde/lowcode-components/lowcode-view/component/abstract-designer-loader.ts +36 -36
  104. package/src/aldehyde/lowcode-components/lowcode-view/component/component-container.tsx +91 -91
  105. package/src/aldehyde/lowcode-components/lowcode-view/component/font/FontGlobal.css +26 -26
  106. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/controller.ts +36 -36
  107. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/definition.ts +53 -53
  108. package/src/aldehyde/lowcode-components/lowcode-view/component/group-layer/index.tsx +15 -15
  109. package/src/aldehyde/lowcode-components/lowcode-view/component/layer-builder.tsx +98 -98
  110. package/src/aldehyde/lowcode-components/lowcode-view/component/screen-fit/index.less +13 -13
  111. package/src/aldehyde/lowcode-components/lowcode-view/component/screen-fit/index.tsx +121 -121
  112. package/src/aldehyde/lowcode-components/placeholder-component/index.tsx +81 -81
  113. package/src/aldehyde/lowcode-components/text-scroller/index.less +28 -28
  114. package/src/aldehyde/lowcode-components/text-scroller/index.tsx +173 -173
  115. package/src/aldehyde/module/ltmpl-table.tsx +14 -15
  116. package/src/aldehyde/routable/dtmpl-route.tsx +14 -8
  117. package/src/aldehyde/routable/import-route.tsx +12 -5
  118. package/src/aldehyde/routable/ltmpl-route.tsx +14 -9
  119. package/src/aldehyde/routable/splitview-ltmpl-route.tsx +11 -8
  120. package/src/aldehyde/routable/ttmpl-route.tsx +13 -8
  121. package/src/aldehyde/table/act-table.tsx +28 -9
  122. package/src/aldehyde/table/page-chart.tsx +1 -1
  123. package/src/aldehyde/table/row-table.tsx +29 -6
  124. package/src/aldehyde/tmpl/interface.tsx +1 -0
  125. package/src/aldehyde/tree/act-tree.tsx +8 -6
  126. package/src/aldehyde/tree/tree-utils.tsx +4 -4
  127. package/src/aldehyde/units/index.tsx +11 -3
@@ -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
+ }