ranuts 0.1.0-alpha.2 → 0.1.0-alpha.20
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/LICENSE +21 -0
- package/dist/build/build.es.d.ts +2 -0
- package/dist/build/build.umd.d.ts +2 -0
- package/dist/build/build.umd.ml.d.ts +2 -0
- package/dist/build/build.umd.node.d.ts +2 -0
- package/dist/build/build.umd.react.d.ts +2 -0
- package/dist/build/build.umd.utils.d.ts +2 -0
- package/dist/build/build.umd.wasm.d.ts +2 -0
- package/dist/examples/clone-deep-example.d.ts +1 -0
- package/dist/examples/is-equal-example.d.ts +1 -0
- package/dist/index.d.ts +9 -16
- package/dist/index.js +147 -1116
- package/dist/mimeType-CrLryRe7.js +81821 -0
- package/dist/plugins/vite-plugins-banner.d.ts +2 -0
- package/dist/reactify-Z-V9Vblb.js +83 -0
- package/dist/src/arithmetic/index.d.ts +186 -0
- package/dist/src/cache/expires.d.ts +1 -0
- package/dist/src/ml/index.d.ts +2 -0
- package/dist/src/ml/index.js +1243 -0
- package/dist/src/ml/ocr.d.ts +11 -0
- package/dist/src/node/appendFile.d.ts +7 -0
- package/dist/src/node/body.d.ts +9 -0
- package/dist/src/node/color.d.ts +7 -0
- package/dist/src/node/command.d.ts +8 -0
- package/dist/src/node/ctx2req.d.ts +5 -0
- package/dist/src/node/fileInfo.d.ts +7 -0
- package/dist/src/node/fs.d.ts +7 -0
- package/dist/src/node/get.d.ts +10 -0
- package/dist/src/node/getIPAdress.d.ts +1 -0
- package/dist/src/node/index.d.ts +25 -0
- package/dist/src/node/index.js +54 -0
- package/dist/src/node/isColorSupported.d.ts +2 -0
- package/dist/src/node/paresUrl.d.ts +19 -0
- package/dist/src/node/readDir.d.ts +6 -0
- package/dist/src/node/readFile.d.ts +9 -0
- package/dist/src/node/router.d.ts +42 -0
- package/dist/src/node/send.d.ts +7 -0
- package/dist/src/node/server.d.ts +18 -0
- package/dist/src/node/startTask.d.ts +2 -0
- package/dist/src/node/stream.d.ts +15 -0
- package/dist/src/node/taskEnd.d.ts +2 -0
- package/dist/src/node/traverse.d.ts +17 -0
- package/dist/src/node/watchFile.d.ts +8 -0
- package/dist/src/node/websocket.d.ts +57 -0
- package/dist/src/node/writeFile.d.ts +8 -0
- package/dist/src/node/ws.d.ts +8 -0
- package/dist/src/optimize/index.d.ts +36 -0
- package/dist/src/optimize/promise.d.ts +0 -0
- package/dist/src/ran/commit.d.ts +0 -0
- package/dist/src/ran/dom.d.ts +0 -0
- package/dist/src/ran/hooks.d.ts +0 -0
- package/dist/src/ran/index.d.ts +20 -0
- package/dist/src/ran/min.d.ts +32 -0
- package/dist/src/ran/reconcile.d.ts +0 -0
- package/dist/src/ran/schedule.d.ts +0 -0
- package/dist/src/react/index.d.ts +2 -0
- package/dist/src/react/index.js +4 -0
- package/dist/src/react/reactify.d.ts +2 -0
- package/dist/src/sort/bubble.d.ts +7 -0
- package/dist/src/sort/bucket.d.ts +7 -0
- package/dist/src/sort/count.d.ts +7 -0
- package/dist/src/sort/heap.d.ts +7 -0
- package/dist/src/sort/index.d.ts +0 -0
- package/dist/src/sort/insert.d.ts +7 -0
- package/dist/src/sort/merge.d.ts +7 -0
- package/dist/src/sort/quick.d.ts +7 -0
- package/dist/src/sort/radix.d.ts +7 -0
- package/dist/src/sort/randomArray.d.ts +9 -0
- package/dist/src/sort/select.d.ts +7 -0
- package/dist/src/sort/shell.d.ts +7 -0
- package/dist/src/utils/audioRecorder.d.ts +16 -0
- package/dist/src/utils/behavior.d.ts +15 -0
- package/dist/src/utils/bom.d.ts +220 -0
- package/dist/src/utils/color.d.ts +71 -0
- package/dist/src/utils/compose.d.ts +10 -0
- package/dist/src/utils/console.d.ts +1 -0
- package/dist/src/utils/debounce.d.ts +7 -0
- package/dist/src/utils/device.d.ts +25 -0
- package/dist/src/utils/dom.d.ts +105 -0
- package/dist/src/utils/error.d.ts +1 -0
- package/dist/src/utils/img.d.ts +16 -0
- package/dist/src/utils/index.d.ts +35 -0
- package/dist/src/utils/index.js +4504 -0
- package/dist/src/utils/memoize.d.ts +7 -0
- package/dist/src/utils/mimeType.d.ts +3 -0
- package/dist/src/utils/monitor.d.ts +38 -0
- package/dist/src/utils/network.d.ts +39 -0
- package/dist/src/utils/noop.d.ts +2 -0
- package/dist/src/utils/number.d.ts +45 -0
- package/dist/src/utils/obj.d.ts +83 -0
- package/dist/src/utils/performance.d.ts +21 -0
- package/dist/src/utils/queue.d.ts +33 -0
- package/dist/src/utils/report.d.ts +8 -0
- package/dist/src/utils/request.d.ts +17 -0
- package/dist/src/utils/script.d.ts +7 -0
- package/dist/src/utils/signal.d.ts +6 -0
- package/dist/src/utils/storage.d.ts +2 -0
- package/dist/src/utils/str.d.ts +72 -0
- package/dist/src/utils/subscribe.d.ts +46 -0
- package/dist/src/utils/throttle.d.ts +15 -0
- package/dist/src/utils/time.d.ts +20 -0
- package/dist/src/utils/totp/sha/common.d.ts +151 -0
- package/dist/src/utils/totp/sha/converters.d.ts +88 -0
- package/dist/src/utils/totp/sha/custom_types.d.ts +60 -0
- package/dist/src/utils/totp/sha/primitives_32.d.ts +98 -0
- package/dist/src/utils/totp/sha/primitives_64.d.ts +116 -0
- package/dist/src/utils/totp/sha/sha.d.ts +103 -0
- package/dist/src/utils/totp/sha/sha1.d.ts +18 -0
- package/dist/src/utils/totp/sha/sha256.d.ts +20 -0
- package/dist/src/utils/totp/sha/sha3.d.ts +53 -0
- package/dist/src/utils/totp/sha/sha512.d.ts +21 -0
- package/dist/src/utils/totp/totp.d.ts +23 -0
- package/dist/src/utils/visual/application.d.ts +14 -0
- package/dist/src/utils/visual/demo/index.d.ts +1 -0
- package/dist/src/utils/visual/demo/sankey.d.ts +2 -0
- package/dist/src/utils/visual/enums.d.ts +27 -0
- package/dist/src/utils/visual/event/boundary.d.ts +22 -0
- package/dist/src/utils/visual/event/event.d.ts +14 -0
- package/dist/src/utils/visual/event/index.d.ts +6 -0
- package/dist/src/utils/visual/event/types.d.ts +32 -0
- package/dist/src/utils/visual/graphics/graphics.d.ts +81 -0
- package/dist/src/utils/visual/graphics/graphicsData.d.ts +13 -0
- package/dist/src/utils/visual/graphics/graphicsGeometry.d.ts +35 -0
- package/dist/src/utils/visual/graphics/index.d.ts +4 -0
- package/dist/src/utils/visual/index.d.ts +7 -0
- package/dist/src/utils/visual/math/bezier.d.ts +2 -0
- package/dist/src/utils/visual/math/enums.d.ts +3 -0
- package/dist/src/utils/visual/math/index.d.ts +5 -0
- package/dist/src/utils/visual/math/matrix.d.ts +113 -0
- package/dist/src/utils/visual/math/transform.d.ts +29 -0
- package/dist/src/utils/visual/render/batchRenderer.d.ts +72 -0
- package/dist/src/utils/visual/render/canvasRenderer.d.ts +10 -0
- package/dist/src/utils/visual/render/index.d.ts +3 -0
- package/dist/src/utils/visual/render/render.d.ts +15 -0
- package/dist/src/utils/visual/render/utils/batch/index.d.ts +90 -0
- package/dist/src/utils/visual/render/utils/float.d.ts +63 -0
- package/dist/src/utils/visual/render/utils/index.d.ts +3 -0
- package/dist/src/utils/visual/render/utils/verticy.d.ts +13 -0
- package/dist/src/utils/visual/render/utils/webgl/batchPool.d.ts +28 -0
- package/dist/src/utils/visual/render/utils/webgl/initShader.d.ts +2 -0
- package/dist/src/utils/visual/render/utils/webgl/shaders.d.ts +2 -0
- package/dist/src/utils/visual/render/utils/webgpu/shaders.d.ts +8 -0
- package/dist/src/utils/visual/render/webGPURenderer.d.ts +49 -0
- package/dist/src/utils/visual/render/webGlRenderer.d.ts +17 -0
- package/dist/src/utils/visual/shape/circle.d.ts +11 -0
- package/dist/src/utils/visual/shape/ellipse.d.ts +12 -0
- package/dist/src/utils/visual/shape/index.d.ts +7 -0
- package/dist/src/utils/visual/shape/polygon.d.ts +11 -0
- package/dist/src/utils/visual/shape/rectangle.d.ts +12 -0
- package/dist/src/utils/visual/shape/roundedRectangle.d.ts +13 -0
- package/dist/src/utils/visual/shape/shape.d.ts +6 -0
- package/dist/src/utils/visual/style/fill.d.ts +8 -0
- package/dist/src/utils/visual/style/index.d.ts +3 -0
- package/dist/src/utils/visual/style/line.d.ts +10 -0
- package/dist/src/utils/visual/types.d.ts +17 -0
- package/dist/src/utils/visual/vertex/container.d.ts +73 -0
- package/dist/src/utils/visual/vertex/index.d.ts +5 -0
- package/dist/src/utils/visual/vertex/point.d.ts +18 -0
- package/dist/src/utils/visual/vertex/vertex.d.ts +36 -0
- package/dist/src/vnode/chainDom.d.ts +47 -0
- package/dist/src/vnode/h.d.ts +6 -0
- package/dist/src/vnode/hooks.d.ts +23 -0
- package/dist/src/vnode/htmlDomApi.d.ts +33 -0
- package/dist/src/vnode/init.d.ts +2 -0
- package/dist/src/vnode/is.d.ts +5 -0
- package/dist/src/vnode/modules/attributes.d.ts +8 -0
- package/dist/src/vnode/modules/class.d.ts +8 -0
- package/dist/src/vnode/modules/index.d.ts +3 -0
- package/dist/src/vnode/modules/listeners.d.ts +12 -0
- package/dist/src/vnode/modules/props.d.ts +8 -0
- package/dist/src/vnode/modules/style.d.ts +14 -0
- package/dist/src/vnode/vnode.d.ts +31 -0
- package/dist/src/wasm/index.d.ts +2 -0
- package/dist/src/wasm/index.js +346 -0
- package/dist/src/wasm/word.d.ts +17 -0
- package/dist/src/wicket/bridge.d.ts +4 -0
- package/dist/src/wicket/index.d.ts +29 -0
- package/dist/test/arithmetic.test.d.ts +1 -0
- package/dist/test/cloneDeep.test.d.ts +1 -0
- package/dist/test/encodeUrl.test.d.ts +1 -0
- package/dist/test/escapeHtml.test.d.ts +1 -0
- package/dist/test/is-equal.test.d.ts +1 -0
- package/dist/test/mimeType.test.d.ts +1 -0
- package/dist/test/server.test.d.ts +1 -0
- package/dist/test/sort.test.d.ts +1 -0
- package/dist/test/status.test.d.ts +1 -0
- package/dist/test/totp.test.d.ts +1 -0
- package/dist/test/utils/compose.test.d.ts +1 -0
- package/dist/test/utils/mergeObj.test.d.ts +1 -0
- package/dist/test/utils/ocr.test.d.ts +1 -0
- package/dist/test/visual/math.test.d.ts +1 -0
- package/dist/test/vnode/index.d.ts +1 -0
- package/dist/test/vnode/server.d.ts +2 -0
- package/dist/test/vnode/vnode.d.ts +1 -0
- package/dist/test/websocket.test.d.ts +1 -0
- package/dist/test/writeFile.test.d.ts +1 -0
- package/dist/tsconfig.json +25 -0
- package/dist/umd/index.umd.cjs +1 -0
- package/dist/umd/ml/ml.umd.cjs +1 -0
- package/dist/umd/node/node.umd.cjs +1 -0
- package/dist/umd/react/react.umd.cjs +1 -0
- package/dist/umd/utils/utils.umd.cjs +1 -0
- package/dist/umd/wasm/wasm.umd.cjs +1 -0
- package/dist/vite.config.d.ts +11 -0
- package/dist/ws-ioQsn2UB.js +703 -0
- package/package.json +55 -21
- package/readme.md +90 -0
- package/typings.d.ts +28 -0
- package/assets/img/sort/bubble.gif +0 -0
- package/assets/img/sort/complexity.png +0 -0
- package/assets/img/sort/select.gif +0 -0
- package/assets/img/sort/sort.png +0 -0
- package/assets/img/tree/balanceTree.png +0 -0
- package/dist/index.js.map +0 -1
- package/dist/index.umd.cjs +0 -2
- package/dist/index.umd.cjs.map +0 -1
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { WebGLRenderer } from '@/utils/visual/render/webGlRenderer';
|
|
2
|
+
export interface Batch {
|
|
3
|
+
vertices: Float32Array;
|
|
4
|
+
vertexIndices: Uint16Array;
|
|
5
|
+
rgba: number;
|
|
6
|
+
}
|
|
7
|
+
export declare class BatchPool {
|
|
8
|
+
renderer: WebGLRenderer;
|
|
9
|
+
private vertexCount;
|
|
10
|
+
private vertexIndexCount;
|
|
11
|
+
private batches;
|
|
12
|
+
private batchesCount;
|
|
13
|
+
static testDrawCallCount: number;
|
|
14
|
+
private vertexBufferFloatView;
|
|
15
|
+
private vertexBufferIntView;
|
|
16
|
+
private vertexBufferPool;
|
|
17
|
+
private vertexIndexBuffer;
|
|
18
|
+
private vertexIndexBufferPool;
|
|
19
|
+
private curVertexBufferSize;
|
|
20
|
+
private curVertexIndexBufferSize;
|
|
21
|
+
private curElementCount;
|
|
22
|
+
constructor(renderer: WebGLRenderer);
|
|
23
|
+
private setBuffer;
|
|
24
|
+
push(batch: Batch): void;
|
|
25
|
+
private draw;
|
|
26
|
+
private packData;
|
|
27
|
+
flush(): void;
|
|
28
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 顶点着色器
|
|
3
|
+
*/
|
|
4
|
+
export declare const vertexShaderSource = "\n@group(0) @binding(0) var<uniform> u_root_transform: mat3x3<f32>;\n@group(0) @binding(1) var<uniform> u_projection_matrix: mat3x3<f32>;\n\nstruct VertOutput {\n @builtin(position) v_position: vec4<f32>,\n @location(0) v_color : vec4<f32>,\n};\n\n@vertex\nfn main(\n @location(0) a_position: vec2<f32>,\n @location(1) a_color: vec4<f32>,\n) -> VertOutput {\n let v_position = vec4<f32>((u_projection_matrix * u_root_transform * vec3<f32>(a_position, 1.0)).xy, 0.0, 1.0);\n\n let v_color = a_color;\n\n return VertOutput(v_position, v_color);\n}\n";
|
|
5
|
+
/**
|
|
6
|
+
* 片元着色器
|
|
7
|
+
*/
|
|
8
|
+
export declare const fragmentShaderSource = "\n@fragment\nfn main(\n @location(0) v_color : vec4<f32>,\n) -> @location(0) vec4<f32> {\n return v_color;\n}\n";
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { BatchRenderer } from '@/utils/visual/render/batchRenderer';
|
|
2
|
+
import type { IApplicationOptions } from '@/utils/visual/types';
|
|
3
|
+
export declare class WebGPURenderer extends BatchRenderer {
|
|
4
|
+
private gpu;
|
|
5
|
+
private device;
|
|
6
|
+
private pipeline;
|
|
7
|
+
private renderPassDescriptor;
|
|
8
|
+
private options;
|
|
9
|
+
/**
|
|
10
|
+
* 顶点的 webGPU buffer
|
|
11
|
+
*/
|
|
12
|
+
private gpuVertexBuffer;
|
|
13
|
+
/**
|
|
14
|
+
* 顶点下标的 webGPU buffer
|
|
15
|
+
*/
|
|
16
|
+
private gpuIndexBuffer;
|
|
17
|
+
/**
|
|
18
|
+
* 投影矩阵的 webGPU buffer
|
|
19
|
+
*/
|
|
20
|
+
private projectionMatBuffer;
|
|
21
|
+
/**
|
|
22
|
+
* stage 的变换矩阵的 webGPU buffer
|
|
23
|
+
*/
|
|
24
|
+
private stageMatBuffer;
|
|
25
|
+
/**
|
|
26
|
+
* uniform 变量的 bind group
|
|
27
|
+
*/
|
|
28
|
+
private uniformBindGroup;
|
|
29
|
+
constructor(options: IApplicationOptions);
|
|
30
|
+
init(): Promise<void>;
|
|
31
|
+
protected draw(): void;
|
|
32
|
+
private initUniformBindGroup;
|
|
33
|
+
private initGpuBuffer;
|
|
34
|
+
protected updateBuffer(): void;
|
|
35
|
+
protected setRootTransform(a: number, b: number, c: number, d: number, tx: number, ty: number): void;
|
|
36
|
+
protected setProjectionMatrix(): void;
|
|
37
|
+
/**
|
|
38
|
+
* 初始化 pipeline
|
|
39
|
+
*/
|
|
40
|
+
private createPipeline;
|
|
41
|
+
/**
|
|
42
|
+
* 初始化 device
|
|
43
|
+
*/
|
|
44
|
+
private initDevice;
|
|
45
|
+
/**
|
|
46
|
+
* 初始化 renderPassDescriptor
|
|
47
|
+
*/
|
|
48
|
+
private initRenderPassDescriptor;
|
|
49
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Renderer } from '@/utils/visual/render/render';
|
|
2
|
+
import { BatchPool } from '@/utils/visual/render/utils/webgl/batchPool';
|
|
3
|
+
import type { IApplicationOptions } from '@/utils/visual/types';
|
|
4
|
+
import type { Container } from '@/utils/visual/vertex/container';
|
|
5
|
+
export declare class WebGLRenderer extends Renderer {
|
|
6
|
+
gl: WebGLRenderingContext;
|
|
7
|
+
batchPool: BatchPool;
|
|
8
|
+
private program;
|
|
9
|
+
private unifLoc;
|
|
10
|
+
constructor(options: IApplicationOptions);
|
|
11
|
+
/**
|
|
12
|
+
* 设置投影矩阵
|
|
13
|
+
*/
|
|
14
|
+
private setProjectionMatrix;
|
|
15
|
+
private setRootTransform;
|
|
16
|
+
render(rootContainer: Container): void;
|
|
17
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Shape } from '@/utils/visual/shape/shape';
|
|
2
|
+
import { SHAPE_TYPE } from '@/utils/visual/enums';
|
|
3
|
+
import type { Point } from '@/utils/visual/vertex/point';
|
|
4
|
+
export declare class Circle extends Shape {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
radius: number;
|
|
8
|
+
readonly type = SHAPE_TYPE.CIRCLE;
|
|
9
|
+
constructor(x?: number, y?: number, radius?: number);
|
|
10
|
+
contains(p: Point): boolean;
|
|
11
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Shape } from '@/utils/visual/shape/shape';
|
|
2
|
+
import { SHAPE_TYPE } from '@/utils/visual/enums';
|
|
3
|
+
import type { Point } from '@/utils/visual/vertex/point';
|
|
4
|
+
export declare class Ellipse extends Shape {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
radiusX: number;
|
|
8
|
+
radiusY: number;
|
|
9
|
+
readonly type = SHAPE_TYPE.ELLIPSE;
|
|
10
|
+
constructor(x?: number, y?: number, radiusX?: number, radiusY?: number);
|
|
11
|
+
contains(p: Point): boolean;
|
|
12
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Circle } from '@/utils/visual/shape/circle';
|
|
2
|
+
import { Ellipse } from '@/utils/visual/shape/ellipse';
|
|
3
|
+
import { Polygon } from '@/utils/visual/shape/polygon';
|
|
4
|
+
import { Rectangle } from '@/utils/visual/shape/rectangle';
|
|
5
|
+
import { Shape } from '@/utils/visual/shape/shape';
|
|
6
|
+
import { RoundedRectangle } from '@/utils/visual/shape/roundedRectangle';
|
|
7
|
+
export { Shape, Circle, Ellipse, Polygon, Rectangle, RoundedRectangle };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Shape } from '@/utils/visual/shape/shape';
|
|
2
|
+
import { SHAPE_TYPE } from '@/utils/visual/enums';
|
|
3
|
+
import type { Point } from '@/utils/visual/vertex/point';
|
|
4
|
+
export declare class Polygon extends Shape {
|
|
5
|
+
points: number[];
|
|
6
|
+
closeStroke: boolean;
|
|
7
|
+
type: SHAPE_TYPE;
|
|
8
|
+
constructor(points?: number[]);
|
|
9
|
+
private isIntersect;
|
|
10
|
+
contains(p: Point): boolean;
|
|
11
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Shape } from '@/utils/visual/shape/shape';
|
|
2
|
+
import { SHAPE_TYPE } from '@/utils/visual/enums';
|
|
3
|
+
import type { Point } from '@/utils/visual/vertex/point';
|
|
4
|
+
export declare class Rectangle extends Shape {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
type: SHAPE_TYPE;
|
|
10
|
+
constructor(x?: number, y?: number, width?: number, height?: number);
|
|
11
|
+
contains(p: Point): boolean;
|
|
12
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Shape } from '@/utils/visual/shape/shape';
|
|
2
|
+
import { SHAPE_TYPE } from '@/utils/visual/enums';
|
|
3
|
+
import type { Point } from '@/utils/visual/vertex/point';
|
|
4
|
+
export declare class RoundedRectangle extends Shape {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
radius: number;
|
|
10
|
+
readonly type = SHAPE_TYPE.ROUNDED_RECTANGLE;
|
|
11
|
+
constructor(x?: number, y?: number, width?: number, height?: number, radius?: number);
|
|
12
|
+
contains(p: Point): boolean;
|
|
13
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { LINE_CAP, LINE_JOIN } from '@/utils/visual/enums';
|
|
2
|
+
import { Fill } from '@/utils/visual/style/fill';
|
|
3
|
+
export declare class Line extends Fill {
|
|
4
|
+
width: number;
|
|
5
|
+
cap: LINE_CAP;
|
|
6
|
+
join: LINE_JOIN;
|
|
7
|
+
miterLimit: number;
|
|
8
|
+
clone(): Line;
|
|
9
|
+
reset(): void;
|
|
10
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { LINE_CAP, LINE_JOIN, RENDERER_TYPE } from '@/utils/visual/enums';
|
|
2
|
+
export interface IApplicationOptions {
|
|
3
|
+
prefer?: RENDERER_TYPE.CANVAS | RENDERER_TYPE.WEB_GL | RENDERER_TYPE.WEB_GPU;
|
|
4
|
+
view?: HTMLCanvasElement;
|
|
5
|
+
backgroundColor?: string;
|
|
6
|
+
backgroundAlpha?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface IFillStyleOptions {
|
|
9
|
+
color?: string;
|
|
10
|
+
alpha?: number;
|
|
11
|
+
visible?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface ILineStyleOptions extends IFillStyleOptions {
|
|
14
|
+
width?: number;
|
|
15
|
+
cap?: LINE_CAP;
|
|
16
|
+
join?: LINE_JOIN;
|
|
17
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Vertex } from '@/utils/visual/vertex/vertex';
|
|
2
|
+
import type { CanvasRenderer } from '@/utils/visual/render/canvasRenderer';
|
|
3
|
+
import type { Point } from '@/utils/visual/vertex/point';
|
|
4
|
+
import type { WebGLRenderer } from '@/utils/visual/render/webGlRenderer';
|
|
5
|
+
import type { BatchRenderer } from '@/utils/visual/render/batchRenderer';
|
|
6
|
+
import type { Batch } from '@/utils/visual/render/utils/batch/index';
|
|
7
|
+
export declare class Container extends Vertex {
|
|
8
|
+
isSort: boolean;
|
|
9
|
+
type: string;
|
|
10
|
+
/**
|
|
11
|
+
* 所有子元素
|
|
12
|
+
*/
|
|
13
|
+
readonly children: Container[];
|
|
14
|
+
/**
|
|
15
|
+
* 用来标记 worldTransform 是否发生了改变
|
|
16
|
+
*/
|
|
17
|
+
protected worldId: number;
|
|
18
|
+
/**
|
|
19
|
+
* 所有 batch
|
|
20
|
+
*/
|
|
21
|
+
protected batches: Batch[];
|
|
22
|
+
/**
|
|
23
|
+
* batch 总数
|
|
24
|
+
*/
|
|
25
|
+
protected batchCount: number;
|
|
26
|
+
constructor();
|
|
27
|
+
/**
|
|
28
|
+
* @description: 添加子元素
|
|
29
|
+
* @param {Container} child
|
|
30
|
+
* @return {*}
|
|
31
|
+
*/
|
|
32
|
+
addChild: (child: Container) => void;
|
|
33
|
+
/**
|
|
34
|
+
* @description:删除子元素
|
|
35
|
+
* @param {Container} child
|
|
36
|
+
* @return {void}
|
|
37
|
+
*/
|
|
38
|
+
removeChild: (child: Container) => void;
|
|
39
|
+
/**
|
|
40
|
+
* @description: 根据 z-index 排序子元素
|
|
41
|
+
* @return {*}
|
|
42
|
+
*/
|
|
43
|
+
sortChildren: () => void;
|
|
44
|
+
/**
|
|
45
|
+
* 渲染自身,在 container 上面没有东西要渲染,所以这个函数的内容为空
|
|
46
|
+
*/
|
|
47
|
+
protected renderCanvas(render: CanvasRenderer): void;
|
|
48
|
+
/**
|
|
49
|
+
* 递归渲染以自身为根的整棵节点树
|
|
50
|
+
*/
|
|
51
|
+
renderCanvasRecursive: (render: CanvasRenderer) => void;
|
|
52
|
+
/**
|
|
53
|
+
* 递归更新当前元素以及所有子元素的 transform
|
|
54
|
+
*/
|
|
55
|
+
updateTransform: () => void;
|
|
56
|
+
containsPoint: (p: Point) => boolean;
|
|
57
|
+
/**
|
|
58
|
+
* 使用 webGL,渲染自身,在 container 上面没有东西要渲染,所以这个函数的内容为空
|
|
59
|
+
*/
|
|
60
|
+
protected renderWebGL(renderer: WebGLRenderer): void;
|
|
61
|
+
/**
|
|
62
|
+
* 使用 webGL,递归渲染以自身为根的整棵节点树
|
|
63
|
+
*/
|
|
64
|
+
renderWebGLRecursive(renderer: WebGLRenderer): void;
|
|
65
|
+
/**
|
|
66
|
+
* 构建自身的 batch
|
|
67
|
+
*/
|
|
68
|
+
buildBatches(batchRenderer: BatchRenderer): void;
|
|
69
|
+
/**
|
|
70
|
+
* 更新自身的所有 batch 对应的大数组中的顶点
|
|
71
|
+
*/
|
|
72
|
+
updateBatches(floatView: Float32Array): void;
|
|
73
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Application } from '@/utils/visual/application';
|
|
2
|
+
import { Container } from '@/utils/visual/vertex/container';
|
|
3
|
+
import { ObservablePoint, Point } from '@/utils/visual/vertex/point';
|
|
4
|
+
import { Vertex } from '@/utils/visual/vertex/vertex';
|
|
5
|
+
export { Application, Container, Point, ObservablePoint, Vertex };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare class Point {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
constructor(x?: number, y?: number);
|
|
5
|
+
set(x?: number, y?: number): void;
|
|
6
|
+
clone: () => Point;
|
|
7
|
+
}
|
|
8
|
+
export declare class ObservablePoint<T = never> {
|
|
9
|
+
private _x;
|
|
10
|
+
private _y;
|
|
11
|
+
private cb;
|
|
12
|
+
constructor(cb: (...args: T[]) => void, x?: number, y?: number);
|
|
13
|
+
set(x?: number, y?: number): void;
|
|
14
|
+
get x(): number;
|
|
15
|
+
set x(value: number);
|
|
16
|
+
get y(): number;
|
|
17
|
+
set y(value: number);
|
|
18
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { SyncHook } from '@/utils/subscribe';
|
|
2
|
+
import { Transform } from '@/utils/visual/math/transform';
|
|
3
|
+
import type { Container } from '@/utils/visual/vertex/container';
|
|
4
|
+
import type { ObservablePoint } from '@/utils/visual/vertex/point';
|
|
5
|
+
import type { Matrix } from '@/utils/visual/math/matrix';
|
|
6
|
+
import type { Cursor, FederatedEventMap } from '@/utils/visual/event';
|
|
7
|
+
import type { Shape } from '@/utils/visual/shape';
|
|
8
|
+
export declare abstract class Vertex extends SyncHook {
|
|
9
|
+
protected _zIndex: number;
|
|
10
|
+
parent: Container | undefined;
|
|
11
|
+
visible: boolean;
|
|
12
|
+
transform: Transform;
|
|
13
|
+
alpha: number;
|
|
14
|
+
worldAlpha: number;
|
|
15
|
+
hitArea: Shape | null;
|
|
16
|
+
cursor: Cursor;
|
|
17
|
+
get zIndex(): number;
|
|
18
|
+
set zIndex(value: number);
|
|
19
|
+
get position(): ObservablePoint;
|
|
20
|
+
get localTransform(): Matrix;
|
|
21
|
+
get worldTransform(): Matrix;
|
|
22
|
+
get x(): number;
|
|
23
|
+
set x(value: number);
|
|
24
|
+
get y(): number;
|
|
25
|
+
set y(value: number);
|
|
26
|
+
get scale(): ObservablePoint;
|
|
27
|
+
get pivot(): ObservablePoint;
|
|
28
|
+
get skew(): ObservablePoint;
|
|
29
|
+
get rotation(): number;
|
|
30
|
+
set rotation(value: number);
|
|
31
|
+
get angle(): number;
|
|
32
|
+
set angle(value: number);
|
|
33
|
+
updateTransform(): void;
|
|
34
|
+
addEventListener: <K extends keyof FederatedEventMap>(type: K, listener: (e: FederatedEventMap[K]) => unknown, options?: boolean | AddEventListenerOptions) => void;
|
|
35
|
+
removeEventListener: <K extends keyof FederatedEventMap>(type: K, listener: (e: FederatedEventMap[K]) => unknown, capture?: boolean) => void;
|
|
36
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description: 链式调用的 dom 操作
|
|
3
|
+
* @return {HTMLElement}
|
|
4
|
+
*/
|
|
5
|
+
export declare class Chain {
|
|
6
|
+
element: HTMLElement;
|
|
7
|
+
constructor(tagName: string, options?: ElementCreationOptions);
|
|
8
|
+
/**
|
|
9
|
+
* @description: 创建元素
|
|
10
|
+
* @param {string} tagName
|
|
11
|
+
* @param {ElementCreationOptions} options
|
|
12
|
+
* @return {Chain}
|
|
13
|
+
*/
|
|
14
|
+
create: (tagName: string, options?: ElementCreationOptions) => HTMLElement;
|
|
15
|
+
/**
|
|
16
|
+
* @description: 设置当前元素的属性
|
|
17
|
+
* @param {string} name
|
|
18
|
+
* @param {string} value
|
|
19
|
+
* @return {Chain}
|
|
20
|
+
*/
|
|
21
|
+
setAttribute: (name: string, value: string) => Chain;
|
|
22
|
+
/**
|
|
23
|
+
* @description: 移除当前元素的属性
|
|
24
|
+
* @param {string} name
|
|
25
|
+
* @return {Chain}
|
|
26
|
+
*/
|
|
27
|
+
removeAttribute: (name: string) => Chain;
|
|
28
|
+
/**
|
|
29
|
+
* @description: 当前元素添加子元素
|
|
30
|
+
* @param {HTMLElement} child
|
|
31
|
+
* @return {ChainElement}
|
|
32
|
+
*/
|
|
33
|
+
append: (child: HTMLElement) => Chain;
|
|
34
|
+
/**
|
|
35
|
+
* @description: 当前元素移除子元素
|
|
36
|
+
* @param {HTMLElement} child
|
|
37
|
+
* @return {Chain}
|
|
38
|
+
*/
|
|
39
|
+
remove: (child: HTMLElement) => Chain;
|
|
40
|
+
/**
|
|
41
|
+
* @description: 给当前元素设置文本内容
|
|
42
|
+
* @param {string} text
|
|
43
|
+
* @return {Chain}
|
|
44
|
+
*/
|
|
45
|
+
setTextContent: (text: string) => Chain;
|
|
46
|
+
}
|
|
47
|
+
export declare const create: (tagName: string, options?: ElementCreationOptions) => Chain;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { VNode, VNodeChildren, VNodeData } from './vnode';
|
|
2
|
+
export declare function addNS(data: VNodeData, children: Array<VNode | string | number> | undefined, sel: string | undefined): void;
|
|
3
|
+
export declare function h(sel: string): VNode;
|
|
4
|
+
export declare function h(sel: string, data: VNodeData | null): VNode;
|
|
5
|
+
export declare function h(sel: string, children: VNodeChildren): VNode;
|
|
6
|
+
export declare function h(sel: string, data: VNodeData | null, children: VNodeChildren): VNode;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { VNode } from './vnode';
|
|
2
|
+
export type PreHook = () => any;
|
|
3
|
+
export type InitHook = (vNode: VNode) => any;
|
|
4
|
+
export type CreateHook = (emptyVNode: VNode, vNode: VNode) => any;
|
|
5
|
+
export type InsertHook = (vNode: VNode) => any;
|
|
6
|
+
export type PrePatchHook = (oldVNode: VNode, vNode: VNode) => any;
|
|
7
|
+
export type UpdateHook = (oldVNode: VNode, vNode: VNode) => any;
|
|
8
|
+
export type PostPatchHook = (oldVNode: VNode, vNode: VNode) => any;
|
|
9
|
+
export type DestroyHook = (vNode: VNode) => any;
|
|
10
|
+
export type RemoveHook = (vNode: VNode, removeCallback: () => void) => any;
|
|
11
|
+
export type PostHook = () => any;
|
|
12
|
+
export interface Hooks {
|
|
13
|
+
pre?: PreHook;
|
|
14
|
+
init?: InitHook;
|
|
15
|
+
create?: CreateHook;
|
|
16
|
+
insert?: InsertHook;
|
|
17
|
+
prepatch?: PrePatchHook;
|
|
18
|
+
update?: UpdateHook;
|
|
19
|
+
postpatch?: PostPatchHook;
|
|
20
|
+
destroy?: DestroyHook;
|
|
21
|
+
remove?: RemoveHook;
|
|
22
|
+
post?: PostHook;
|
|
23
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface Fragment extends DocumentFragment {
|
|
2
|
+
parent: Node | null;
|
|
3
|
+
firstChildNode: ChildNode | null;
|
|
4
|
+
lastChildNode: ChildNode | null;
|
|
5
|
+
}
|
|
6
|
+
export interface DOMAPI {
|
|
7
|
+
createElement: (tagName: any, options?: ElementCreationOptions) => HTMLElement;
|
|
8
|
+
createElementNS: (namespaceURI: string, qualifiedName: string, options?: ElementCreationOptions) => Element;
|
|
9
|
+
/**
|
|
10
|
+
* @experimental
|
|
11
|
+
* @todo Make it required when the fragment is considered stable.
|
|
12
|
+
*/
|
|
13
|
+
createDocumentFragment?: () => Fragment;
|
|
14
|
+
createTextNode: (text: string) => Text;
|
|
15
|
+
createComment: (text: string) => Comment;
|
|
16
|
+
insertBefore: (parentNode: Node, newNode: Node, referenceNode: Node | null) => void;
|
|
17
|
+
removeChild: (node: Node, child: Node) => void;
|
|
18
|
+
appendChild: (node: Node, child: Node) => void;
|
|
19
|
+
parentNode: (node: Node) => Node | null;
|
|
20
|
+
nextSibling: (node: Node) => Node | null;
|
|
21
|
+
tagName: (elm: Element) => string;
|
|
22
|
+
setTextContent: (node: Node, text: string | null) => void;
|
|
23
|
+
getTextContent: (node: Node) => string | null;
|
|
24
|
+
isElement: (node: Node) => node is Element;
|
|
25
|
+
isText: (node: Node) => node is Text;
|
|
26
|
+
isComment: (node: Node) => node is Comment;
|
|
27
|
+
/**
|
|
28
|
+
* @experimental
|
|
29
|
+
* @todo Make it required when the fragment is considered stable.
|
|
30
|
+
*/
|
|
31
|
+
isDocumentFragment?: (node: Node) => node is DocumentFragment;
|
|
32
|
+
}
|
|
33
|
+
export declare const htmlDomApi: DOMAPI;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { VNode } from './vnode';
|
|
2
|
+
export declare const array: (arg: any) => arg is any[];
|
|
3
|
+
export declare const isStr: (str: unknown) => str is string;
|
|
4
|
+
export declare function primitive(s: unknown): s is string | number;
|
|
5
|
+
export declare function isVnode(s: any): s is VNode;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { VNode } from '../vnode';
|
|
2
|
+
export type Attrs = Record<string, string | number | boolean>;
|
|
3
|
+
declare function updateAttrs(oldVnode: VNode, vnode: VNode): void;
|
|
4
|
+
export declare const attributesModule: {
|
|
5
|
+
create: typeof updateAttrs;
|
|
6
|
+
update: typeof updateAttrs;
|
|
7
|
+
};
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { VNode } from '../vnode';
|
|
2
|
+
export type Classes = Record<string, boolean>;
|
|
3
|
+
declare function updateClass(oldVnode: VNode, vnode: VNode): void;
|
|
4
|
+
export declare const classModule: {
|
|
5
|
+
create: typeof updateClass;
|
|
6
|
+
update: typeof updateClass;
|
|
7
|
+
};
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { VNode } from '../vnode';
|
|
2
|
+
type Listener<T> = (this: VNode, ev: T, vnode: VNode) => void;
|
|
3
|
+
export type On = {
|
|
4
|
+
[N in keyof HTMLElementEventMap]?: Listener<HTMLElementEventMap[N]> | Array<Listener<HTMLElementEventMap[N]>>;
|
|
5
|
+
} & Record<string, Listener<any> | Array<Listener<any>>>;
|
|
6
|
+
declare function updateEventListeners(oldVnode: VNode, vnode?: VNode): void;
|
|
7
|
+
export declare const eventListenersModule: {
|
|
8
|
+
create: typeof updateEventListeners;
|
|
9
|
+
update: typeof updateEventListeners;
|
|
10
|
+
destroy: typeof updateEventListeners;
|
|
11
|
+
};
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { VNode } from '../vnode';
|
|
2
|
+
export type Props = Record<string, any>;
|
|
3
|
+
declare function updateProps(oldVnode: VNode, vnode: VNode): void;
|
|
4
|
+
export declare const propsModule: {
|
|
5
|
+
create: typeof updateProps;
|
|
6
|
+
update: typeof updateProps;
|
|
7
|
+
};
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { VNode } from '../vnode';
|
|
2
|
+
export type VNodeStyle = Record<string, any>;
|
|
3
|
+
declare function updateStyle(oldVnode: VNode, vnode: VNode): void;
|
|
4
|
+
declare function forceReflow(): void;
|
|
5
|
+
declare function applyDestroyStyle(vnode: VNode): void;
|
|
6
|
+
declare function applyRemoveStyle(vnode: VNode, rm: () => void): void;
|
|
7
|
+
export declare const styleModule: {
|
|
8
|
+
pre: typeof forceReflow;
|
|
9
|
+
create: typeof updateStyle;
|
|
10
|
+
update: typeof updateStyle;
|
|
11
|
+
destroy: typeof applyDestroyStyle;
|
|
12
|
+
remove: typeof applyRemoveStyle;
|
|
13
|
+
};
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { On } from './modules/listeners';
|
|
2
|
+
import type { Attrs } from './modules/attributes';
|
|
3
|
+
import type { Classes } from './modules/class';
|
|
4
|
+
import type { Props } from './modules/props';
|
|
5
|
+
import type { VNodeStyle } from './modules/style';
|
|
6
|
+
import type { Hooks } from './hooks';
|
|
7
|
+
export type VNodes = VNode[];
|
|
8
|
+
export type VNodeChildElement = VNode | string | number;
|
|
9
|
+
export type ArrayOrElement<T> = T | T[];
|
|
10
|
+
export type VNodeChildren = ArrayOrElement<VNodeChildElement>;
|
|
11
|
+
export type Key = string | number;
|
|
12
|
+
export interface VNode {
|
|
13
|
+
sel: string | undefined;
|
|
14
|
+
data: VNodeData | undefined;
|
|
15
|
+
children: Array<VNode | string | number> | undefined;
|
|
16
|
+
elm: Node | undefined;
|
|
17
|
+
text: string | number | undefined;
|
|
18
|
+
key: Key | undefined;
|
|
19
|
+
listener?: EventListenerOrEventListenerObject | undefined;
|
|
20
|
+
}
|
|
21
|
+
export interface VNodeData {
|
|
22
|
+
props?: Props;
|
|
23
|
+
attrs?: Attrs;
|
|
24
|
+
class?: Classes;
|
|
25
|
+
style?: VNodeStyle;
|
|
26
|
+
on?: On;
|
|
27
|
+
key?: Key;
|
|
28
|
+
ns?: string;
|
|
29
|
+
hook?: Hooks;
|
|
30
|
+
}
|
|
31
|
+
export declare function vnode(sel: string | undefined, data: any | undefined, children: Array<VNode | string | number> | undefined, text: string | number | undefined, elm: Element | Text | undefined): VNode;
|