@univerjs-pro/engine-chart 1.0.3 → 1.1.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/lib/cjs/facade.js +1 -1
- package/lib/cjs/index.js +1 -1
- package/lib/cjs/locale/ar-SA.js +1 -1
- package/lib/cjs/locale/ca-ES.js +1 -1
- package/lib/cjs/locale/de-DE.js +1 -1
- package/lib/cjs/locale/en-US.js +1 -1
- package/lib/cjs/locale/es-ES.js +1 -1
- package/lib/cjs/locale/fa-IR.js +1 -1
- package/lib/cjs/locale/fr-FR.js +1 -1
- package/lib/cjs/locale/id-ID.js +1 -1
- package/lib/cjs/locale/it-IT.js +1 -1
- package/lib/cjs/locale/ja-JP.js +1 -1
- package/lib/cjs/locale/ko-KR.js +1 -1
- package/lib/cjs/locale/pl-PL.js +1 -1
- package/lib/cjs/locale/pt-BR.js +1 -1
- package/lib/cjs/locale/ru-RU.js +1 -1
- package/lib/cjs/locale/sk-SK.js +1 -1
- package/lib/cjs/locale/vi-VN.js +1 -1
- package/lib/cjs/locale/zh-CN.js +1 -1
- package/lib/cjs/locale/zh-HK.js +1 -1
- package/lib/cjs/locale/zh-TW.js +1 -1
- package/lib/es/facade.js +1 -1
- package/lib/es/index.js +1 -1
- package/lib/es/locale/ar-SA.js +1 -1
- package/lib/es/locale/ca-ES.js +1 -1
- package/lib/es/locale/de-DE.js +1 -1
- package/lib/es/locale/en-US.js +1 -1
- package/lib/es/locale/es-ES.js +1 -1
- package/lib/es/locale/fa-IR.js +1 -1
- package/lib/es/locale/fr-FR.js +1 -1
- package/lib/es/locale/id-ID.js +1 -1
- package/lib/es/locale/it-IT.js +1 -1
- package/lib/es/locale/ja-JP.js +1 -1
- package/lib/es/locale/ko-KR.js +1 -1
- package/lib/es/locale/pl-PL.js +1 -1
- package/lib/es/locale/pt-BR.js +1 -1
- package/lib/es/locale/ru-RU.js +1 -1
- package/lib/es/locale/sk-SK.js +1 -1
- package/lib/es/locale/vi-VN.js +1 -1
- package/lib/es/locale/zh-CN.js +1 -1
- package/lib/es/locale/zh-HK.js +1 -1
- package/lib/es/locale/zh-TW.js +1 -1
- package/lib/facade.js +1 -1
- package/lib/index.js +1 -1
- package/lib/locale/ar-SA.js +1 -1
- package/lib/locale/ca-ES.js +1 -1
- package/lib/locale/de-DE.js +1 -1
- package/lib/locale/en-US.js +1 -1
- package/lib/locale/es-ES.js +1 -1
- package/lib/locale/fa-IR.js +1 -1
- package/lib/locale/fr-FR.js +1 -1
- package/lib/locale/id-ID.js +1 -1
- package/lib/locale/it-IT.js +1 -1
- package/lib/locale/ja-JP.js +1 -1
- package/lib/locale/ko-KR.js +1 -1
- package/lib/locale/pl-PL.js +1 -1
- package/lib/locale/pt-BR.js +1 -1
- package/lib/locale/ru-RU.js +1 -1
- package/lib/locale/sk-SK.js +1 -1
- package/lib/locale/vi-VN.js +1 -1
- package/lib/locale/zh-CN.js +1 -1
- package/lib/locale/zh-HK.js +1 -1
- package/lib/locale/zh-TW.js +1 -1
- package/lib/types/chart-3d/adapters/appearance.d.ts +4 -0
- package/lib/types/chart-3d/adapters/axes.d.ts +21 -0
- package/lib/types/chart-3d/adapters/category-axis.d.ts +4 -0
- package/lib/types/chart-3d/adapters/echarts-adapter.d.ts +10 -0
- package/lib/types/chart-3d/adapters/echarts-time-scale.d.ts +9 -0
- package/lib/types/chart-3d/adapters/element-events.d.ts +3 -0
- package/lib/types/chart-3d/adapters/export-image.d.ts +2 -0
- package/lib/types/chart-3d/adapters/input-adapter.d.ts +11 -0
- package/lib/types/chart-3d/adapters/lighting.d.ts +4 -0
- package/lib/types/chart-3d/adapters/line-style.d.ts +2 -0
- package/lib/types/chart-3d/adapters/pie-labels.d.ts +7 -0
- package/lib/types/chart-3d/adapters/projection-data-label.d.ts +59 -0
- package/lib/types/chart-3d/adapters/projection-frame-image.d.ts +16 -0
- package/lib/types/chart-3d/adapters/render-input.d.ts +3 -0
- package/lib/types/chart-3d/adapters/render-instance.d.ts +32 -0
- package/lib/types/chart-3d/adapters/transform.d.ts +3 -0
- package/lib/types/chart-3d/adapters/types.d.ts +38 -0
- package/lib/types/chart-3d/adapters/webgl-renderer.d.ts +20 -0
- package/lib/types/chart-3d/chart-3d-extension.d.ts +6 -0
- package/lib/types/chart-3d/core/geometry.d.ts +39 -0
- package/lib/types/chart-3d/core/policy.d.ts +31 -0
- package/lib/types/chart-3d/core/projection.d.ts +23 -0
- package/lib/types/chart-3d/core/scene.d.ts +57 -0
- package/lib/types/chart-3d/core/types.d.ts +74 -0
- package/lib/types/chart-3d/index.d.ts +1 -0
- package/lib/types/chart-3d/view-defaults.d.ts +3 -0
- package/lib/types/chart-3d/webgl/draw-data.d.ts +6 -0
- package/lib/types/chart-3d/webgl/draw-queue.d.ts +10 -0
- package/lib/types/chart-3d/webgl/gradient.d.ts +3 -0
- package/lib/types/chart-3d/webgl/line-segments.d.ts +8 -0
- package/lib/types/chart-3d/webgl/program.d.ts +16 -0
- package/lib/types/chart-3d/webgl/renderer.d.ts +19 -0
- package/lib/types/chart-3d/webgl/stroke.d.ts +13 -0
- package/lib/types/chart-3d/webgl/types.d.ts +71 -0
- package/lib/types/chart-builder/chart-types.d.ts +22 -4
- package/lib/types/chart-builder/configuration/chart-config-group.d.ts +2 -0
- package/lib/types/chart-builder/configuration/three-d.d.ts +7 -0
- package/lib/types/chart-builder/conversion/chart-model-fields.d.ts +8 -0
- package/lib/types/chart-builder/conversion/describe-chart-model.d.ts +119 -7
- package/lib/types/config/config.d.ts +1 -1
- package/lib/types/enum.d.ts +13 -0
- package/lib/types/facade/builders/f-area-three-d-chart-builder.d.ts +6 -0
- package/lib/types/facade/builders/f-column-three-d-chart-builder.d.ts +6 -0
- package/lib/types/facade/builders/f-line-three-d-chart-builder.d.ts +6 -0
- package/lib/types/facade/builders/f-pie-three-d-chart-builder.d.ts +15 -0
- package/lib/types/facade/chart-builder-type-map.d.ts +15 -0
- package/lib/types/facade/create-chart-builder.d.ts +2 -1
- package/lib/types/facade/f-axis-chart-builder.d.ts +42 -7
- package/lib/types/facade/f-axis-three-d-chart-builder.d.ts +37 -0
- package/lib/types/facade/f-three-d-chart-builder.d.ts +30 -0
- package/lib/types/index.d.ts +13 -70
- package/lib/types/locale/en-US.d.ts +7 -0
- package/lib/types/models/chart-model/chart-model.d.ts +359 -22
- package/lib/types/models/chart-render/axes/axis-placement.d.ts +2 -0
- package/lib/types/models/chart-render/axes/chart-axis-scale.d.ts +14 -0
- package/lib/types/models/chart-render/axes/log-axis-data.d.ts +4 -0
- package/lib/types/models/chart-render/axes/log-axis-ticks.d.ts +5 -0
- package/lib/types/models/chart-render/axes/log-bar-layout.d.ts +3 -0
- package/lib/types/models/chart-render/axes/value-axis-scale.d.ts +13 -0
- package/lib/types/models/chart-render/converter/calendar-date-axis.d.ts +1 -1
- package/lib/types/models/chart-render/converter/render-spec-operators/empty-style-operator.d.ts +2 -0
- package/lib/types/models/chart-render/converter/render-spec-operators/legend-style.operator.d.ts +11 -1
- package/lib/types/models/chart-render/converter/render-spec-operators/log-axis-scale.d.ts +7 -0
- package/lib/types/models/chart-render/converter/render-spec-operators/series-style-operator/series-fill-pattern.d.ts +15 -0
- package/lib/types/models/chart-render/converter/render-spec-operators/tools.d.ts +3 -1
- package/lib/types/models/chart-render/converter/render-spec-operators/watermark.operator.d.ts +2 -0
- package/lib/types/models/chart-render/echart-render-model/base-chart-render-instance.d.ts +1 -1
- package/lib/types/models/chart-render/echart-render-model/chart-dimension-render-instance.d.ts +28 -0
- package/lib/types/models/chart-render/echart-render-model/dom-chart-instance.d.ts +1 -0
- package/lib/types/models/chart-render/echart-render-model/echart-render-engine.d.ts +7 -1
- package/lib/types/models/chart-render/echart-render-model/echart-render-model.d.ts +23 -10
- package/lib/types/models/chart-render/echart-render-model/echarts-render-hooks.d.ts +7 -0
- package/lib/types/models/chart-render/echart-render-model/index.d.ts +0 -1
- package/lib/types/models/chart-render/format/chart-label-content.d.ts +3 -0
- package/lib/types/models/common/chart-locale-texts.d.ts +7 -0
- package/lib/types/models/common/constants/default-chart-style.d.ts +5 -4
- package/lib/types/models/common/theme/build-in-theme/theme-util.d.ts +3 -1
- package/lib/types/types.d.ts +57 -16
- package/lib/types/util.d.ts +1 -1
- package/lib/types/{models/chart-render/converter/converters/word-cloud-converter.d.ts → wordcloud/adapters/chart-spec-adapter.d.ts} +1 -1
- package/lib/types/{wordcloud-chart/adapters/echarts/install.d.ts → wordcloud/adapters/echarts-adapter.d.ts} +3 -3
- package/lib/types/{wordcloud-chart/adapters/echarts → wordcloud}/chart-view.d.ts +2 -2
- package/lib/types/{wordcloud-chart → wordcloud}/core/collision/box-shape-engine.d.ts +1 -1
- package/lib/types/wordcloud/echarts-api.d.ts +3 -0
- package/lib/types/{wordcloud-chart/adapters/echarts → wordcloud}/echarts-options.d.ts +1 -1
- package/lib/types/wordcloud/index.d.ts +16 -0
- package/lib/types/{wordcloud-chart/adapters/echarts → wordcloud}/layout-register.d.ts +2 -2
- package/lib/types/{wordcloud-chart/adapters/echarts → wordcloud}/layout.d.ts +2 -2
- package/lib/types/wordcloud/register-word-cloud-rendering.d.ts +4 -0
- package/lib/types/wordcloud/render-resources.d.ts +2 -0
- package/lib/types/{word-cloud-resource → wordcloud/resources}/word-cloud-shape-resource.d.ts +1 -1
- package/lib/types/{wordcloud-chart/adapters/echarts → wordcloud}/runtime-cache.d.ts +4 -1
- package/lib/types/{wordcloud-chart/adapters/echarts → wordcloud}/series-model.d.ts +2 -2
- package/lib/types/{wordcloud-chart/adapters/echarts → wordcloud}/text-measurer.d.ts +1 -1
- package/lib/types/wordcloud/word-cloud-extension.d.ts +16 -0
- package/lib/types/{wordcloud-chart/adapters/echarts → wordcloud}/words.d.ts +2 -2
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +1 -1
- package/lib/umd/locale/ar-SA.js +1 -1
- package/lib/umd/locale/ca-ES.js +1 -1
- package/lib/umd/locale/de-DE.js +1 -1
- package/lib/umd/locale/en-US.js +1 -1
- package/lib/umd/locale/es-ES.js +1 -1
- package/lib/umd/locale/fa-IR.js +1 -1
- package/lib/umd/locale/fr-FR.js +1 -1
- package/lib/umd/locale/id-ID.js +1 -1
- package/lib/umd/locale/it-IT.js +1 -1
- package/lib/umd/locale/ja-JP.js +1 -1
- package/lib/umd/locale/ko-KR.js +1 -1
- package/lib/umd/locale/pl-PL.js +1 -1
- package/lib/umd/locale/pt-BR.js +1 -1
- package/lib/umd/locale/ru-RU.js +1 -1
- package/lib/umd/locale/sk-SK.js +1 -1
- package/lib/umd/locale/vi-VN.js +1 -1
- package/lib/umd/locale/zh-CN.js +1 -1
- package/lib/umd/locale/zh-HK.js +1 -1
- package/lib/umd/locale/zh-TW.js +1 -1
- package/package.json +6 -6
- /package/lib/types/{wordcloud-chart → wordcloud}/canvas.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/collision/bitset-board.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/collision/engine.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/collision/failure-cache.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/collision/footprint.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/collision/glyph-shape-engine.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/collision/grid.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/candidates.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/font-scale.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/layout-config.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/layout.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/phases.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/place-word.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/placement-stats.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/placement-types.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/placement-word-manager.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/rotation.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/runtime-mask.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/search-plan.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/word-prepare.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/word-shrink.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/random/seed.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/shape/built-in-shapes.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/shape/shape-mask.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/shape/shape-profile.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/shape/sprite-shape.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/text/formatter.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/text/measure.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/text/normalize.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/text/sprite.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/core/types/layout.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/defaults.d.ts +0 -0
- /package/lib/types/{wordcloud-chart/adapters/echarts → wordcloud}/render-config.d.ts +0 -0
- /package/lib/types/{word-cloud-resource → wordcloud/resources}/word-cloud-resource-config.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/types.d.ts +0 -0
- /package/lib/types/{wordcloud-chart → wordcloud}/word-cloud-render-config.d.ts +0 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { ChartRuntimeStyle, IChart3DView, IChartConfig, IChartSnapshot } from '../../types';
|
|
2
|
+
export type ProjectionReadonly<T> = T extends (...args: never[]) => unknown ? T : T extends object ? {
|
|
3
|
+
readonly [K in keyof T]: ProjectionReadonly<T[K]>;
|
|
4
|
+
} : T;
|
|
5
|
+
/** One render borrows read-only product data/style; the host rebuilds input after every model update. */
|
|
6
|
+
export interface IProjectionChartInput<TSnapshot extends IChartSnapshot = IChartSnapshot> {
|
|
7
|
+
readonly scene: IProjectionSceneOptions;
|
|
8
|
+
readonly snapshot: ProjectionReadonly<TSnapshot>;
|
|
9
|
+
readonly config: ProjectionReadonly<IChartConfig>;
|
|
10
|
+
readonly style: ProjectionReadonly<ChartRuntimeStyle>;
|
|
11
|
+
readonly width: number;
|
|
12
|
+
readonly height: number;
|
|
13
|
+
}
|
|
14
|
+
export interface IProjectionSemanticTarget {
|
|
15
|
+
readonly chartId: string;
|
|
16
|
+
readonly seriesId?: string;
|
|
17
|
+
readonly seriesIndex: number;
|
|
18
|
+
readonly dataIndex: number;
|
|
19
|
+
}
|
|
20
|
+
export interface IProjectionPoint {
|
|
21
|
+
readonly x: number;
|
|
22
|
+
readonly y: number;
|
|
23
|
+
}
|
|
24
|
+
export type ProjectionDecoration = 'floor' | 'plot:boundary' | `${'axis' | 'tick' | 'grid'}:${'category' | 'value' | 'depth'}`;
|
|
25
|
+
export interface IProjectionPrimitive {
|
|
26
|
+
readonly decoration?: ProjectionDecoration;
|
|
27
|
+
readonly kind: 'polygon' | 'polyline' | 'text';
|
|
28
|
+
readonly points: readonly IProjectionPoint[];
|
|
29
|
+
readonly fill?: string;
|
|
30
|
+
/** Multiply the host-resolved base color by this normal/light factor. */
|
|
31
|
+
readonly shade?: number;
|
|
32
|
+
readonly stroke?: string;
|
|
33
|
+
readonly strokeWidth?: number;
|
|
34
|
+
readonly text?: string;
|
|
35
|
+
readonly target?: IProjectionSemanticTarget;
|
|
36
|
+
}
|
|
37
|
+
export interface IProjectionDiagnostic {
|
|
38
|
+
readonly code: 'unsupported-chart-combination' | 'invalid-view-parameter' | 'invalid-size' | 'model-type-mismatch' | 'projection-calibration-unverified';
|
|
39
|
+
readonly field: string;
|
|
40
|
+
}
|
|
41
|
+
export interface IProjectionFrame {
|
|
42
|
+
/** Painter order, back to front. Targets carry source identity, never generated face IDs. */
|
|
43
|
+
readonly primitives: readonly IProjectionPrimitive[];
|
|
44
|
+
readonly diagnostics: readonly IProjectionDiagnostic[];
|
|
45
|
+
}
|
|
46
|
+
/** Adapter-owned dates projected onto the category domain without reordering source indices. */
|
|
47
|
+
export interface IProjectionCategoryAxisLayout {
|
|
48
|
+
readonly positions: readonly (number | undefined)[];
|
|
49
|
+
readonly bandWidth: number;
|
|
50
|
+
readonly ticks: readonly {
|
|
51
|
+
readonly position: number;
|
|
52
|
+
readonly value: number;
|
|
53
|
+
readonly label: string;
|
|
54
|
+
}[];
|
|
55
|
+
}
|
|
56
|
+
/** Active scene controls only; inactive authored values remain in the snapshot. */
|
|
57
|
+
export interface IProjectionSceneOptions {
|
|
58
|
+
readonly dimension: 2 | 3;
|
|
59
|
+
readonly view?: ProjectionReadonly<IChart3DView>;
|
|
60
|
+
readonly seriesLayout?: 'clustered' | 'depth';
|
|
61
|
+
readonly categoryAxis?: IProjectionCategoryAxisLayout;
|
|
62
|
+
readonly gapWidth?: number;
|
|
63
|
+
readonly gapDepth?: number;
|
|
64
|
+
readonly reverse: {
|
|
65
|
+
readonly category: boolean;
|
|
66
|
+
readonly value: boolean;
|
|
67
|
+
readonly depth: boolean;
|
|
68
|
+
};
|
|
69
|
+
readonly pie: {
|
|
70
|
+
readonly rotation?: number;
|
|
71
|
+
readonly explosion?: number;
|
|
72
|
+
readonly sliceExplosions: Readonly<Record<number, number>>;
|
|
73
|
+
};
|
|
74
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Chart3DExtension } from './chart-3d-extension';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { IFace3, ISurfaceEdge } from '../core/geometry';
|
|
2
|
+
import type { IWebGLDrawInput, IWebGLDrawItem } from './types';
|
|
3
|
+
/** Shader RGB stays straight; blending creates the premultiplied drawing buffer expected by the browser. */
|
|
4
|
+
export declare function createFragmentColor(color: string, opacity: number, shade: number): [number, number, number, number];
|
|
5
|
+
export declare function isSurfaceEdgeVisible(edge: ISurfaceEdge, frontFaces: ReadonlySet<IFace3>, translucentFaces?: ReadonlySet<IFace3>): boolean;
|
|
6
|
+
export declare function buildDrawData(input: IWebGLDrawInput): IWebGLDrawItem[];
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { IWebGLDrawItem } from './types';
|
|
2
|
+
/** Embedded color alpha participates in classification; equal depths preserve input order. */
|
|
3
|
+
export declare function createDrawQueue(items: readonly IWebGLDrawItem[]): IWebGLDrawItem[];
|
|
4
|
+
export interface IWebGLDrawPacket {
|
|
5
|
+
readonly item: IWebGLDrawItem;
|
|
6
|
+
/** Homogeneous clip coordinates, four components per vertex. */
|
|
7
|
+
readonly vertices: Float32Array;
|
|
8
|
+
}
|
|
9
|
+
/** Split crossing transparent polygons before painter traversal; opaque geometry still uses GPU depth. */
|
|
10
|
+
export declare function orderTransparentDraws(packets: readonly IWebGLDrawPacket[]): IWebGLDrawPacket[];
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { IVector3 } from '../core/geometry';
|
|
2
|
+
export interface IProjectedLinePoint {
|
|
3
|
+
readonly x: number;
|
|
4
|
+
readonly y: number;
|
|
5
|
+
readonly w: number;
|
|
6
|
+
}
|
|
7
|
+
/** Dash lengths are CSS pixels. Interpolate world positions with homogeneous depth, not screen t. */
|
|
8
|
+
export declare function splitDashedLine(start: IVector3, end: IVector3, a: IProjectedLinePoint, b: IProjectedLinePoint, pattern?: readonly number[]): IVector3[][];
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Disposable } from '@univerjs/core';
|
|
2
|
+
export declare class WebGLDrawProgram extends Disposable {
|
|
3
|
+
private readonly _gl;
|
|
4
|
+
readonly program: WebGLProgram;
|
|
5
|
+
readonly camera: WebGLUniformLocation | null;
|
|
6
|
+
readonly clipSpace: WebGLUniformLocation | null;
|
|
7
|
+
readonly color: WebGLUniformLocation | null;
|
|
8
|
+
readonly position: number;
|
|
9
|
+
readonly hasGradient: WebGLUniformLocation | null;
|
|
10
|
+
readonly gradientRamp: WebGLUniformLocation | null;
|
|
11
|
+
readonly gradientVector: WebGLUniformLocation | null;
|
|
12
|
+
readonly viewport: WebGLUniformLocation | null;
|
|
13
|
+
private _closed;
|
|
14
|
+
constructor(_gl: WebGLRenderingContext);
|
|
15
|
+
dispose(): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { IWebGLDrawItem } from './types';
|
|
2
|
+
import { Disposable } from '@univerjs/core';
|
|
3
|
+
/** Owns GPU resources on a dedicated canvas; DOM ownership stays with the caller. */
|
|
4
|
+
export declare class WebGLRenderer extends Disposable {
|
|
5
|
+
readonly canvas: HTMLCanvasElement;
|
|
6
|
+
private readonly _gl;
|
|
7
|
+
private _program;
|
|
8
|
+
private _buffer;
|
|
9
|
+
private readonly _textures;
|
|
10
|
+
private _closed;
|
|
11
|
+
private _frame?;
|
|
12
|
+
private readonly _onContextLost;
|
|
13
|
+
private readonly _onContextRestored;
|
|
14
|
+
constructor(canvas: HTMLCanvasElement);
|
|
15
|
+
getLineWidth(width: number): number;
|
|
16
|
+
clear(): void;
|
|
17
|
+
render(items: readonly IWebGLDrawItem[], matrix: Float32Array, ratio: number): void;
|
|
18
|
+
dispose(): void;
|
|
19
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { IVector3 } from '../core/geometry';
|
|
2
|
+
import type { IWebGLDrawItem } from './types';
|
|
3
|
+
interface IStrokeNeighbors {
|
|
4
|
+
start?: IVector3;
|
|
5
|
+
end?: IVector3;
|
|
6
|
+
startBranches?: readonly IVector3[];
|
|
7
|
+
endBranches?: readonly IVector3[];
|
|
8
|
+
}
|
|
9
|
+
/** Connect only boundaries of the same semantic mark and appearance. */
|
|
10
|
+
export declare function findStrokeNeighbors(items: readonly IWebGLDrawItem[]): Map<IWebGLDrawItem, IStrokeNeighbors>;
|
|
11
|
+
/** Expand a segment after depth clipping; offset scales with w to preserve pixel width under perspective. */
|
|
12
|
+
export declare function buildStrokeVertices(vertices: readonly IVector3[], matrix: Float32Array, width: number, viewportWidth: number, viewportHeight: number, neighbors?: IStrokeNeighbors, supportingFaces?: readonly (readonly IVector3[])[]): Float32Array;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { IFace3, ISurfaceEdge, IVector3 } from '../core/geometry';
|
|
2
|
+
import type { IProjectionSemanticTarget } from '../core/types';
|
|
3
|
+
export interface IWebGLGradient {
|
|
4
|
+
readonly start: {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
};
|
|
8
|
+
readonly end: {
|
|
9
|
+
x: number;
|
|
10
|
+
y: number;
|
|
11
|
+
};
|
|
12
|
+
readonly stops: readonly {
|
|
13
|
+
offset: number;
|
|
14
|
+
color: [number, number, number, number];
|
|
15
|
+
}[];
|
|
16
|
+
}
|
|
17
|
+
export interface IWebGLAppearance {
|
|
18
|
+
/** Optional adapter-calibrated diffuse factor; independent of opacity and projection. */
|
|
19
|
+
readonly shade?: number;
|
|
20
|
+
/** Mark-local normalized endpoints; draw-data converts them to CSS pixels. */
|
|
21
|
+
readonly gradient?: IWebGLGradient;
|
|
22
|
+
readonly gradientGroup?: string;
|
|
23
|
+
readonly color?: string;
|
|
24
|
+
readonly opacity: number;
|
|
25
|
+
readonly border?: {
|
|
26
|
+
readonly surfaceShading?: boolean;
|
|
27
|
+
readonly silhouetteOnly?: boolean;
|
|
28
|
+
readonly color?: string;
|
|
29
|
+
readonly width?: number;
|
|
30
|
+
readonly opacity?: number;
|
|
31
|
+
readonly dashPattern?: readonly number[];
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export interface IWebGLSurface {
|
|
35
|
+
readonly face: IFace3;
|
|
36
|
+
readonly cameraVertices: readonly IVector3[];
|
|
37
|
+
readonly appearance: IWebGLAppearance;
|
|
38
|
+
}
|
|
39
|
+
export interface IWebGLDrawInput {
|
|
40
|
+
readonly surfaces: readonly IWebGLSurface[];
|
|
41
|
+
readonly edges: readonly ISurfaceEdge[];
|
|
42
|
+
readonly lines: readonly {
|
|
43
|
+
start: IVector3;
|
|
44
|
+
end: IVector3;
|
|
45
|
+
color: string;
|
|
46
|
+
width: number;
|
|
47
|
+
dashPattern?: readonly number[];
|
|
48
|
+
}[];
|
|
49
|
+
readonly perspective: boolean;
|
|
50
|
+
readonly light: IVector3;
|
|
51
|
+
readonly ambientLight: number;
|
|
52
|
+
readonly diffuseLight: number;
|
|
53
|
+
readonly foreground: string;
|
|
54
|
+
readonly project: (point: IVector3) => {
|
|
55
|
+
x: number;
|
|
56
|
+
y: number;
|
|
57
|
+
w: number;
|
|
58
|
+
} | undefined;
|
|
59
|
+
readonly toCamera: (point: IVector3) => IVector3;
|
|
60
|
+
}
|
|
61
|
+
export interface IWebGLDrawItem {
|
|
62
|
+
readonly target?: IProjectionSemanticTarget;
|
|
63
|
+
readonly vertices: readonly IVector3[];
|
|
64
|
+
readonly color: [number, number, number, number];
|
|
65
|
+
readonly gradient?: IWebGLGradient;
|
|
66
|
+
/** Adjacent visible faces used to keep expanded borders on the surface. */
|
|
67
|
+
readonly supportingFaces?: readonly (readonly IVector3[])[];
|
|
68
|
+
readonly kind: 'face' | 'line';
|
|
69
|
+
readonly width: number;
|
|
70
|
+
readonly depth: number;
|
|
71
|
+
}
|
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
import type { IChartTopNSpec } from '../chart-data-aggregation';
|
|
2
2
|
import type { AreaLineStyle, AxisAlignEnum, BarShape, ChartAxisDimension, ChartBorderDashType, ChartMarkLineLabelPosition, ChartSemanticAxis, ChartTrendlineType, ChartWaterfallPointRole, InvalidValueType, IRuntimeAxisPosition, LabelAlignEnum, LabelContentType, LegendPositionEnum, LinePointShape, PieLabelPosition, RadarShape, RelationChartLayoutEnum, ScatterLineType, SelectModeEnum, SeriesLabelPosition, TitlePositionEnum, WaterfallStackTypeEnum, WordCloudShapeEnum } from '../enum';
|
|
3
|
-
import type { DeepNullish, IChartCandlestickMappingSpec, IChartCandlestickSpec, IChartChordMappingSpec, IChartChordSpec, IChartGaugeSpec, IChartHistogramSpec, IChartSunburstSpec, IChartTreemapSpec, IChartValueLabelSpec } from '../types';
|
|
3
|
+
import type { DeepNullish, IAxisOptions, IChart3DStyle, IChartCandlestickMappingSpec, IChartCandlestickSpec, IChartChordMappingSpec, IChartChordSpec, IChartGaugeSpec, IChartHistogramSpec, IChartSeriesFillPattern, IChartSunburstSpec, IChartTreemapSpec, IChartValueLabelSpec } from '../types';
|
|
4
4
|
import type { ChartColor } from './chart-color';
|
|
5
5
|
/** Canonical semantic chart type names exposed by the chart facade. */
|
|
6
6
|
export declare enum ChartTypeString {
|
|
7
|
+
Line3D = "line3D",
|
|
8
|
+
Column3D = "column3D",
|
|
9
|
+
ColumnStacked3D = "columnStacked3D",
|
|
10
|
+
ColumnPercentStacked3D = "columnPercentStacked3D",
|
|
11
|
+
Bar3D = "bar3D",
|
|
12
|
+
BarStacked3D = "barStacked3D",
|
|
13
|
+
BarPercentStacked3D = "barPercentStacked3D",
|
|
14
|
+
Pie3D = "pie3D",
|
|
15
|
+
Area3D = "area3D",
|
|
16
|
+
AreaStacked3D = "areaStacked3D",
|
|
17
|
+
AreaPercentStacked3D = "areaPercentStacked3D",
|
|
7
18
|
Line = "line",
|
|
8
19
|
Column = "column",
|
|
9
20
|
ColumnStacked = "columnStacked",
|
|
@@ -99,6 +110,8 @@ export interface IChartAxisLabelSpec extends IChartFontSpec {
|
|
|
99
110
|
rotate?: number;
|
|
100
111
|
}
|
|
101
112
|
export interface IChartAxisSpec {
|
|
113
|
+
scaleType?: IAxisOptions['scaleType'];
|
|
114
|
+
logBase?: IAxisOptions['logBase'];
|
|
102
115
|
title?: string;
|
|
103
116
|
titleAlignment?: AxisAlignEnum;
|
|
104
117
|
min?: number;
|
|
@@ -126,6 +139,9 @@ export interface IChartAxisSpec {
|
|
|
126
139
|
dashType?: ChartBorderDashType;
|
|
127
140
|
};
|
|
128
141
|
}
|
|
142
|
+
/** Series-depth axis does not carry a numeric scale. */
|
|
143
|
+
export interface IChartDepthAxisSpec extends Omit<IChartAxisSpec, 'scaleType' | 'logBase' | 'min' | 'max' | 'format'> {
|
|
144
|
+
}
|
|
129
145
|
export interface IChartAxesSpec {
|
|
130
146
|
x?: IChartAxisSpec;
|
|
131
147
|
y?: IChartAxisSpec;
|
|
@@ -200,6 +216,7 @@ export interface IChartSeriesStyleSpec {
|
|
|
200
216
|
scatterLine?: ScatterLineType;
|
|
201
217
|
color?: ChartColor;
|
|
202
218
|
fillOpacity?: number;
|
|
219
|
+
fillPattern?: IChartSeriesFillPattern | null;
|
|
203
220
|
border?: IChartSeriesBorderSpec;
|
|
204
221
|
point?: IChartSeriesPointSpec;
|
|
205
222
|
rightAxis?: boolean;
|
|
@@ -212,6 +229,7 @@ export interface IChartSeriesDataPointStyleSpec {
|
|
|
212
229
|
size?: number;
|
|
213
230
|
color?: ChartColor;
|
|
214
231
|
fillOpacity?: number;
|
|
232
|
+
fillPattern?: IChartSeriesFillPattern | null;
|
|
215
233
|
}
|
|
216
234
|
/** Style fields accepted by symbol data points, whose color remains solid-only. */
|
|
217
235
|
export interface IChartSymbolDataPointStyleSpec extends Omit<IChartSeriesDataPointStyleSpec, 'color'> {
|
|
@@ -330,6 +348,7 @@ export interface IChartPieLabelSpec extends IChartFontSpec, IChartValueLabelSpec
|
|
|
330
348
|
}
|
|
331
349
|
/** Authored style for one materialized Pie or Donut slice. */
|
|
332
350
|
export interface IChartSliceStyleSpec {
|
|
351
|
+
explosion?: number;
|
|
333
352
|
color?: ChartColor;
|
|
334
353
|
fillOpacity?: number;
|
|
335
354
|
}
|
|
@@ -470,10 +489,7 @@ export interface IChartAreaSpec {
|
|
|
470
489
|
export interface IChartBarSpec {
|
|
471
490
|
gapWidth?: number;
|
|
472
491
|
overlap?: number;
|
|
473
|
-
is3D?: boolean;
|
|
474
492
|
shape?: BarShape;
|
|
475
|
-
rotX?: number;
|
|
476
|
-
rotY?: number;
|
|
477
493
|
}
|
|
478
494
|
export interface IChartBubbleSpec {
|
|
479
495
|
scale?: number;
|
|
@@ -539,6 +555,8 @@ interface IChartSemanticConfig {
|
|
|
539
555
|
invalidValueStrategy?: InvalidValueType;
|
|
540
556
|
legend?: ChartLegendSpec;
|
|
541
557
|
axes?: IChartAxesSpec;
|
|
558
|
+
threeD?: IChart3DStyle;
|
|
559
|
+
depthAxis?: IChartDepthAxisSpec;
|
|
542
560
|
allSeriesStyle?: IChartSeriesStyleSpec;
|
|
543
561
|
series?: IChartSeriesPatch[];
|
|
544
562
|
wordCloud?: IChartWordCloudSpec;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DeepNullish, IChart3DStyle } from '../../types';
|
|
2
|
+
import type { IChartDepthAxisSpec } from '../chart-types';
|
|
3
|
+
/** Authored 3D settings are retained independently of the chart type. */
|
|
4
|
+
export declare const setThreeD: (value: DeepNullish<IChart3DStyle>) => import("./chart-config-operation").IChartConfigOperation;
|
|
5
|
+
export declare const clearThreeD: () => import("./chart-config-operation").IChartConfigOperation;
|
|
6
|
+
export declare const setDepthAxis: (value: DeepNullish<IChartDepthAxisSpec>) => import("./chart-config-operation").IChartConfigOperation;
|
|
7
|
+
export declare const clearDepthAxis: () => import("./chart-config-operation").IChartConfigOperation;
|
|
@@ -3,6 +3,8 @@ export declare enum ChartStyleField {
|
|
|
3
3
|
AllSeriesStyle = "allSeriesStyle",
|
|
4
4
|
Area = "area",
|
|
5
5
|
Bar = "bar",
|
|
6
|
+
ThreeD = "threeD",
|
|
7
|
+
DepthAxis = "depthAxis",
|
|
6
8
|
Bubble = "bubble",
|
|
7
9
|
BackgroundColor = "backgroundColor",
|
|
8
10
|
BorderColor = "borderColor",
|
|
@@ -71,10 +73,13 @@ export declare enum ChartDataAggregationField {
|
|
|
71
73
|
}
|
|
72
74
|
export declare enum ChartAxisTitleField {
|
|
73
75
|
RightYAxisTitle = "rightYAxisTitle",
|
|
76
|
+
DepthAxisTitle = "depthAxisTitle",
|
|
74
77
|
XAxisTitle = "xAxisTitle",
|
|
75
78
|
YAxisTitle = "yAxisTitle"
|
|
76
79
|
}
|
|
77
80
|
export declare enum ChartAxisStyleField {
|
|
81
|
+
ScaleType = "scaleType",
|
|
82
|
+
LogBase = "logBase",
|
|
78
83
|
AxisTitleAlignment = "label.axisTitleAlign",
|
|
79
84
|
Format = "format",
|
|
80
85
|
GridLineColor = "gridLine.color",
|
|
@@ -124,6 +129,7 @@ export declare enum ChartSeriesStyleField {
|
|
|
124
129
|
Color = "color",
|
|
125
130
|
DataPoints = "dataPoints",
|
|
126
131
|
FillOpacity = "fillOpacity",
|
|
132
|
+
FillPattern = "fillPattern",
|
|
127
133
|
LabelBold = "label.bold",
|
|
128
134
|
LabelColor = "label.color",
|
|
129
135
|
LabelContentType = "label.contentType",
|
|
@@ -139,8 +145,10 @@ export declare enum ChartSeriesStyleField {
|
|
|
139
145
|
RightYAxis = "rightYAxis"
|
|
140
146
|
}
|
|
141
147
|
export declare enum ChartDataPointStyleField {
|
|
148
|
+
Explosion = "explosion",
|
|
142
149
|
Color = "color",
|
|
143
150
|
FillOpacity = "fillOpacity",
|
|
151
|
+
FillPattern = "fillPattern",
|
|
144
152
|
Shape = "shape",
|
|
145
153
|
Size = "size"
|
|
146
154
|
}
|