@univerjs-pro/engine-chart 1.0.4 → 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.
Files changed (217) hide show
  1. package/lib/cjs/facade.js +1 -1
  2. package/lib/cjs/index.js +1 -1
  3. package/lib/cjs/locale/ar-SA.js +1 -1
  4. package/lib/cjs/locale/ca-ES.js +1 -1
  5. package/lib/cjs/locale/de-DE.js +1 -1
  6. package/lib/cjs/locale/en-US.js +1 -1
  7. package/lib/cjs/locale/es-ES.js +1 -1
  8. package/lib/cjs/locale/fa-IR.js +1 -1
  9. package/lib/cjs/locale/fr-FR.js +1 -1
  10. package/lib/cjs/locale/id-ID.js +1 -1
  11. package/lib/cjs/locale/it-IT.js +1 -1
  12. package/lib/cjs/locale/ja-JP.js +1 -1
  13. package/lib/cjs/locale/ko-KR.js +1 -1
  14. package/lib/cjs/locale/pl-PL.js +1 -1
  15. package/lib/cjs/locale/pt-BR.js +1 -1
  16. package/lib/cjs/locale/ru-RU.js +1 -1
  17. package/lib/cjs/locale/sk-SK.js +1 -1
  18. package/lib/cjs/locale/vi-VN.js +1 -1
  19. package/lib/cjs/locale/zh-CN.js +1 -1
  20. package/lib/cjs/locale/zh-HK.js +1 -1
  21. package/lib/cjs/locale/zh-TW.js +1 -1
  22. package/lib/es/facade.js +1 -1
  23. package/lib/es/index.js +1 -1
  24. package/lib/es/locale/ar-SA.js +1 -1
  25. package/lib/es/locale/ca-ES.js +1 -1
  26. package/lib/es/locale/de-DE.js +1 -1
  27. package/lib/es/locale/en-US.js +1 -1
  28. package/lib/es/locale/es-ES.js +1 -1
  29. package/lib/es/locale/fa-IR.js +1 -1
  30. package/lib/es/locale/fr-FR.js +1 -1
  31. package/lib/es/locale/id-ID.js +1 -1
  32. package/lib/es/locale/it-IT.js +1 -1
  33. package/lib/es/locale/ja-JP.js +1 -1
  34. package/lib/es/locale/ko-KR.js +1 -1
  35. package/lib/es/locale/pl-PL.js +1 -1
  36. package/lib/es/locale/pt-BR.js +1 -1
  37. package/lib/es/locale/ru-RU.js +1 -1
  38. package/lib/es/locale/sk-SK.js +1 -1
  39. package/lib/es/locale/vi-VN.js +1 -1
  40. package/lib/es/locale/zh-CN.js +1 -1
  41. package/lib/es/locale/zh-HK.js +1 -1
  42. package/lib/es/locale/zh-TW.js +1 -1
  43. package/lib/facade.js +1 -1
  44. package/lib/index.js +1 -1
  45. package/lib/locale/ar-SA.js +1 -1
  46. package/lib/locale/ca-ES.js +1 -1
  47. package/lib/locale/de-DE.js +1 -1
  48. package/lib/locale/en-US.js +1 -1
  49. package/lib/locale/es-ES.js +1 -1
  50. package/lib/locale/fa-IR.js +1 -1
  51. package/lib/locale/fr-FR.js +1 -1
  52. package/lib/locale/id-ID.js +1 -1
  53. package/lib/locale/it-IT.js +1 -1
  54. package/lib/locale/ja-JP.js +1 -1
  55. package/lib/locale/ko-KR.js +1 -1
  56. package/lib/locale/pl-PL.js +1 -1
  57. package/lib/locale/pt-BR.js +1 -1
  58. package/lib/locale/ru-RU.js +1 -1
  59. package/lib/locale/sk-SK.js +1 -1
  60. package/lib/locale/vi-VN.js +1 -1
  61. package/lib/locale/zh-CN.js +1 -1
  62. package/lib/locale/zh-HK.js +1 -1
  63. package/lib/locale/zh-TW.js +1 -1
  64. package/lib/types/chart-3d/adapters/appearance.d.ts +4 -0
  65. package/lib/types/chart-3d/adapters/axes.d.ts +21 -0
  66. package/lib/types/chart-3d/adapters/category-axis.d.ts +4 -0
  67. package/lib/types/chart-3d/adapters/echarts-adapter.d.ts +10 -0
  68. package/lib/types/chart-3d/adapters/echarts-time-scale.d.ts +9 -0
  69. package/lib/types/chart-3d/adapters/element-events.d.ts +3 -0
  70. package/lib/types/chart-3d/adapters/export-image.d.ts +2 -0
  71. package/lib/types/chart-3d/adapters/input-adapter.d.ts +11 -0
  72. package/lib/types/chart-3d/adapters/lighting.d.ts +4 -0
  73. package/lib/types/chart-3d/adapters/line-style.d.ts +2 -0
  74. package/lib/types/chart-3d/adapters/pie-labels.d.ts +7 -0
  75. package/lib/types/chart-3d/adapters/projection-data-label.d.ts +59 -0
  76. package/lib/types/chart-3d/adapters/projection-frame-image.d.ts +16 -0
  77. package/lib/types/chart-3d/adapters/render-input.d.ts +3 -0
  78. package/lib/types/chart-3d/adapters/render-instance.d.ts +32 -0
  79. package/lib/types/chart-3d/adapters/transform.d.ts +3 -0
  80. package/lib/types/chart-3d/adapters/types.d.ts +38 -0
  81. package/lib/types/chart-3d/adapters/webgl-renderer.d.ts +20 -0
  82. package/lib/types/chart-3d/chart-3d-extension.d.ts +6 -0
  83. package/lib/types/chart-3d/core/geometry.d.ts +39 -0
  84. package/lib/types/chart-3d/core/policy.d.ts +31 -0
  85. package/lib/types/chart-3d/core/projection.d.ts +23 -0
  86. package/lib/types/chart-3d/core/scene.d.ts +57 -0
  87. package/lib/types/chart-3d/core/types.d.ts +74 -0
  88. package/lib/types/chart-3d/index.d.ts +1 -0
  89. package/lib/types/chart-3d/view-defaults.d.ts +3 -0
  90. package/lib/types/chart-3d/webgl/draw-data.d.ts +6 -0
  91. package/lib/types/chart-3d/webgl/draw-queue.d.ts +10 -0
  92. package/lib/types/chart-3d/webgl/gradient.d.ts +3 -0
  93. package/lib/types/chart-3d/webgl/line-segments.d.ts +8 -0
  94. package/lib/types/chart-3d/webgl/program.d.ts +16 -0
  95. package/lib/types/chart-3d/webgl/renderer.d.ts +19 -0
  96. package/lib/types/chart-3d/webgl/stroke.d.ts +13 -0
  97. package/lib/types/chart-3d/webgl/types.d.ts +71 -0
  98. package/lib/types/chart-builder/chart-types.d.ts +22 -4
  99. package/lib/types/chart-builder/configuration/chart-config-group.d.ts +2 -0
  100. package/lib/types/chart-builder/configuration/three-d.d.ts +7 -0
  101. package/lib/types/chart-builder/conversion/chart-model-fields.d.ts +8 -0
  102. package/lib/types/chart-builder/conversion/describe-chart-model.d.ts +119 -7
  103. package/lib/types/config/config.d.ts +1 -1
  104. package/lib/types/enum.d.ts +13 -0
  105. package/lib/types/facade/builders/f-area-three-d-chart-builder.d.ts +6 -0
  106. package/lib/types/facade/builders/f-column-three-d-chart-builder.d.ts +6 -0
  107. package/lib/types/facade/builders/f-line-three-d-chart-builder.d.ts +6 -0
  108. package/lib/types/facade/builders/f-pie-three-d-chart-builder.d.ts +15 -0
  109. package/lib/types/facade/chart-builder-type-map.d.ts +15 -0
  110. package/lib/types/facade/create-chart-builder.d.ts +2 -1
  111. package/lib/types/facade/f-axis-chart-builder.d.ts +42 -7
  112. package/lib/types/facade/f-axis-three-d-chart-builder.d.ts +37 -0
  113. package/lib/types/facade/f-three-d-chart-builder.d.ts +30 -0
  114. package/lib/types/index.d.ts +13 -70
  115. package/lib/types/locale/en-US.d.ts +7 -0
  116. package/lib/types/models/chart-model/chart-model.d.ts +359 -22
  117. package/lib/types/models/chart-render/axes/axis-placement.d.ts +2 -0
  118. package/lib/types/models/chart-render/axes/chart-axis-scale.d.ts +14 -0
  119. package/lib/types/models/chart-render/axes/log-axis-data.d.ts +4 -0
  120. package/lib/types/models/chart-render/axes/log-axis-ticks.d.ts +5 -0
  121. package/lib/types/models/chart-render/axes/log-bar-layout.d.ts +3 -0
  122. package/lib/types/models/chart-render/axes/value-axis-scale.d.ts +13 -0
  123. package/lib/types/models/chart-render/converter/calendar-date-axis.d.ts +1 -1
  124. package/lib/types/models/chart-render/converter/render-spec-operators/empty-style-operator.d.ts +2 -0
  125. package/lib/types/models/chart-render/converter/render-spec-operators/legend-style.operator.d.ts +11 -1
  126. package/lib/types/models/chart-render/converter/render-spec-operators/log-axis-scale.d.ts +7 -0
  127. package/lib/types/models/chart-render/converter/render-spec-operators/series-style-operator/series-fill-pattern.d.ts +15 -0
  128. package/lib/types/models/chart-render/converter/render-spec-operators/tools.d.ts +3 -1
  129. package/lib/types/models/chart-render/converter/render-spec-operators/watermark.operator.d.ts +2 -0
  130. package/lib/types/models/chart-render/echart-render-model/base-chart-render-instance.d.ts +1 -1
  131. package/lib/types/models/chart-render/echart-render-model/chart-dimension-render-instance.d.ts +28 -0
  132. package/lib/types/models/chart-render/echart-render-model/dom-chart-instance.d.ts +1 -0
  133. package/lib/types/models/chart-render/echart-render-model/echart-render-engine.d.ts +7 -1
  134. package/lib/types/models/chart-render/echart-render-model/echart-render-model.d.ts +23 -10
  135. package/lib/types/models/chart-render/echart-render-model/echarts-render-hooks.d.ts +7 -0
  136. package/lib/types/models/chart-render/echart-render-model/index.d.ts +0 -1
  137. package/lib/types/models/chart-render/format/chart-label-content.d.ts +3 -0
  138. package/lib/types/models/common/chart-locale-texts.d.ts +7 -0
  139. package/lib/types/models/common/constants/default-chart-style.d.ts +5 -4
  140. package/lib/types/models/common/theme/build-in-theme/theme-util.d.ts +3 -1
  141. package/lib/types/types.d.ts +57 -16
  142. package/lib/types/util.d.ts +1 -1
  143. package/lib/types/{models/chart-render/converter/converters/word-cloud-converter.d.ts → wordcloud/adapters/chart-spec-adapter.d.ts} +1 -1
  144. package/lib/types/{wordcloud-chart/adapters/echarts/install.d.ts → wordcloud/adapters/echarts-adapter.d.ts} +3 -3
  145. package/lib/types/{wordcloud-chart/adapters/echarts → wordcloud}/chart-view.d.ts +2 -2
  146. package/lib/types/{wordcloud-chart → wordcloud}/core/collision/box-shape-engine.d.ts +1 -1
  147. package/lib/types/wordcloud/echarts-api.d.ts +3 -0
  148. package/lib/types/{wordcloud-chart/adapters/echarts → wordcloud}/echarts-options.d.ts +1 -1
  149. package/lib/types/wordcloud/index.d.ts +16 -0
  150. package/lib/types/{wordcloud-chart/adapters/echarts → wordcloud}/layout-register.d.ts +2 -2
  151. package/lib/types/{wordcloud-chart/adapters/echarts → wordcloud}/layout.d.ts +2 -2
  152. package/lib/types/wordcloud/register-word-cloud-rendering.d.ts +4 -0
  153. package/lib/types/wordcloud/render-resources.d.ts +2 -0
  154. package/lib/types/{word-cloud-resource → wordcloud/resources}/word-cloud-shape-resource.d.ts +1 -1
  155. package/lib/types/{wordcloud-chart/adapters/echarts → wordcloud}/runtime-cache.d.ts +4 -1
  156. package/lib/types/{wordcloud-chart/adapters/echarts → wordcloud}/series-model.d.ts +2 -2
  157. package/lib/types/{wordcloud-chart/adapters/echarts → wordcloud}/text-measurer.d.ts +1 -1
  158. package/lib/types/wordcloud/word-cloud-extension.d.ts +16 -0
  159. package/lib/types/{wordcloud-chart/adapters/echarts → wordcloud}/words.d.ts +2 -2
  160. package/lib/umd/facade.js +1 -1
  161. package/lib/umd/index.js +1 -1
  162. package/lib/umd/locale/ar-SA.js +1 -1
  163. package/lib/umd/locale/ca-ES.js +1 -1
  164. package/lib/umd/locale/de-DE.js +1 -1
  165. package/lib/umd/locale/en-US.js +1 -1
  166. package/lib/umd/locale/es-ES.js +1 -1
  167. package/lib/umd/locale/fa-IR.js +1 -1
  168. package/lib/umd/locale/fr-FR.js +1 -1
  169. package/lib/umd/locale/id-ID.js +1 -1
  170. package/lib/umd/locale/it-IT.js +1 -1
  171. package/lib/umd/locale/ja-JP.js +1 -1
  172. package/lib/umd/locale/ko-KR.js +1 -1
  173. package/lib/umd/locale/pl-PL.js +1 -1
  174. package/lib/umd/locale/pt-BR.js +1 -1
  175. package/lib/umd/locale/ru-RU.js +1 -1
  176. package/lib/umd/locale/sk-SK.js +1 -1
  177. package/lib/umd/locale/vi-VN.js +1 -1
  178. package/lib/umd/locale/zh-CN.js +1 -1
  179. package/lib/umd/locale/zh-HK.js +1 -1
  180. package/lib/umd/locale/zh-TW.js +1 -1
  181. package/package.json +6 -6
  182. /package/lib/types/{wordcloud-chart → wordcloud}/canvas.d.ts +0 -0
  183. /package/lib/types/{wordcloud-chart → wordcloud}/core/collision/bitset-board.d.ts +0 -0
  184. /package/lib/types/{wordcloud-chart → wordcloud}/core/collision/engine.d.ts +0 -0
  185. /package/lib/types/{wordcloud-chart → wordcloud}/core/collision/failure-cache.d.ts +0 -0
  186. /package/lib/types/{wordcloud-chart → wordcloud}/core/collision/footprint.d.ts +0 -0
  187. /package/lib/types/{wordcloud-chart → wordcloud}/core/collision/glyph-shape-engine.d.ts +0 -0
  188. /package/lib/types/{wordcloud-chart → wordcloud}/core/collision/grid.d.ts +0 -0
  189. /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/candidates.d.ts +0 -0
  190. /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/font-scale.d.ts +0 -0
  191. /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/layout-config.d.ts +0 -0
  192. /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/layout.d.ts +0 -0
  193. /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/phases.d.ts +0 -0
  194. /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/place-word.d.ts +0 -0
  195. /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/placement-stats.d.ts +0 -0
  196. /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/placement-types.d.ts +0 -0
  197. /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/placement-word-manager.d.ts +0 -0
  198. /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/rotation.d.ts +0 -0
  199. /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/runtime-mask.d.ts +0 -0
  200. /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/search-plan.d.ts +0 -0
  201. /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/word-prepare.d.ts +0 -0
  202. /package/lib/types/{wordcloud-chart → wordcloud}/core/layout/word-shrink.d.ts +0 -0
  203. /package/lib/types/{wordcloud-chart → wordcloud}/core/random/seed.d.ts +0 -0
  204. /package/lib/types/{wordcloud-chart → wordcloud}/core/shape/built-in-shapes.d.ts +0 -0
  205. /package/lib/types/{wordcloud-chart → wordcloud}/core/shape/shape-mask.d.ts +0 -0
  206. /package/lib/types/{wordcloud-chart → wordcloud}/core/shape/shape-profile.d.ts +0 -0
  207. /package/lib/types/{wordcloud-chart → wordcloud}/core/shape/sprite-shape.d.ts +0 -0
  208. /package/lib/types/{wordcloud-chart → wordcloud}/core/text/formatter.d.ts +0 -0
  209. /package/lib/types/{wordcloud-chart → wordcloud}/core/text/measure.d.ts +0 -0
  210. /package/lib/types/{wordcloud-chart → wordcloud}/core/text/normalize.d.ts +0 -0
  211. /package/lib/types/{wordcloud-chart → wordcloud}/core/text/sprite.d.ts +0 -0
  212. /package/lib/types/{wordcloud-chart → wordcloud}/core/types/layout.d.ts +0 -0
  213. /package/lib/types/{wordcloud-chart → wordcloud}/defaults.d.ts +0 -0
  214. /package/lib/types/{wordcloud-chart/adapters/echarts → wordcloud}/render-config.d.ts +0 -0
  215. /package/lib/types/{word-cloud-resource → wordcloud/resources}/word-cloud-resource-config.d.ts +0 -0
  216. /package/lib/types/{wordcloud-chart → wordcloud}/types.d.ts +0 -0
  217. /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,3 @@
1
+ import type { IChart3DStyle } from '../types';
2
+ import { ChartTypeBits } from '../enum';
3
+ export declare function getThreeDRightAngleAxes(chartType: ChartTypeBits, threeD?: IChart3DStyle | null): boolean;
@@ -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,3 @@
1
+ import type { IWebGLDrawItem, IWebGLGradient } from './types';
2
+ export declare function createGradientRamp(gradient: IWebGLGradient): Uint8Array;
3
+ export declare function isTransparentDraw(item: IWebGLDrawItem): boolean;
@@ -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;
@@ -15,6 +15,8 @@ export declare enum ChartConfigGroup {
15
15
  Chord = "chord",
16
16
  Axes = "axes",
17
17
  Bar = "bar",
18
+ ThreeD = "threeD",
19
+ DepthAxis = "depthAxis",
18
20
  Bubble = "bubble",
19
21
  Heatmap = "heatmap",
20
22
  Funnel = "funnel",
@@ -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
  }