@univerjs-pro/engine-chart 0.25.1 → 1.0.0-alpha.1

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 (160) hide show
  1. package/lib/cjs/index.js +1 -1
  2. package/lib/es/index.js +1 -1
  3. package/lib/index.js +1 -1
  4. package/lib/types/enum.d.ts +3 -0
  5. package/lib/types/index.d.ts +23 -20
  6. package/lib/types/{model → models}/chart-data-operators/operators.d.ts +6 -10
  7. package/lib/types/{model → models}/chart-model.d.ts +152 -115
  8. package/lib/types/models/chart-runtime-axes.d.ts +38 -0
  9. package/lib/types/models/chart-runtime-style.d.ts +12 -0
  10. package/lib/types/{model → models}/constants/default-chart-style.d.ts +4 -2
  11. package/lib/types/{model → models}/echart-render-model.d.ts +6 -1
  12. package/lib/types/models/mode-converter/converters/word-cloud-converter.d.ts +2 -0
  13. package/lib/types/{model → models}/mode-converter/mode-converter.d.ts +2 -2
  14. package/lib/types/models/mode-converter/render-spec-operators/implicit-category-axis.operator.d.ts +2 -0
  15. package/lib/types/{model → models}/mode-converter/render-spec-operators/index.d.ts +2 -0
  16. package/lib/types/models/mode-converter/render-spec-operators/legend-size.d.ts +2 -0
  17. package/lib/types/models/mode-converter/render-spec-operators/rtl-render-spec.operator.d.ts +2 -0
  18. package/lib/types/models/mode-converter/render-spec-operators/tool-tip-operator.d.ts +37 -0
  19. package/lib/types/models/mode-converter/render-spec-operators/tool-tip-renderer.d.ts +15 -0
  20. package/lib/types/{model → models}/word-cloud-musk-image.service.d.ts +1 -1
  21. package/lib/types/source/option-data-value.d.ts +3 -0
  22. package/lib/types/source/source-util.d.ts +2 -2
  23. package/lib/types/source/static-chart-source.d.ts +1 -0
  24. package/lib/types/types.d.ts +21 -8
  25. package/lib/types/util.d.ts +2 -1
  26. package/lib/types/utils/echarts.d.ts +3 -2
  27. package/lib/types/word-cloud-resource/word-cloud-shape-resource.d.ts +5 -0
  28. package/lib/types/wordcloud-chart/adapters/echarts/chart-view.d.ts +7 -0
  29. package/lib/types/wordcloud-chart/adapters/echarts/echarts-options.d.ts +24 -0
  30. package/lib/types/wordcloud-chart/adapters/echarts/install.d.ts +4 -0
  31. package/lib/types/wordcloud-chart/adapters/echarts/layout-register.d.ts +5 -0
  32. package/lib/types/wordcloud-chart/adapters/echarts/layout.d.ts +82 -0
  33. package/lib/types/wordcloud-chart/adapters/echarts/render-config.d.ts +57 -0
  34. package/lib/types/wordcloud-chart/adapters/echarts/series-model.d.ts +7 -0
  35. package/lib/types/wordcloud-chart/adapters/echarts/text-measurer.d.ts +12 -0
  36. package/lib/types/wordcloud-chart/adapters/echarts/words.d.ts +47 -0
  37. package/lib/types/wordcloud-chart/canvas.d.ts +8 -0
  38. package/lib/types/wordcloud-chart/core/collision/bitset-board.d.ts +45 -0
  39. package/lib/types/wordcloud-chart/core/collision/box-shape-engine.d.ts +31 -0
  40. package/lib/types/wordcloud-chart/core/collision/engine.d.ts +67 -0
  41. package/lib/types/wordcloud-chart/core/collision/failure-cache.d.ts +6 -0
  42. package/lib/types/wordcloud-chart/core/collision/footprint.d.ts +13 -0
  43. package/lib/types/wordcloud-chart/core/collision/glyph-shape-engine.d.ts +49 -0
  44. package/lib/types/wordcloud-chart/core/collision/grid.d.ts +10 -0
  45. package/lib/types/wordcloud-chart/core/collision/types.d.ts +1 -0
  46. package/lib/types/wordcloud-chart/core/layout/candidates.d.ts +15 -0
  47. package/lib/types/wordcloud-chart/core/layout/font-scale.d.ts +66 -0
  48. package/lib/types/wordcloud-chart/core/layout/layout-config.d.ts +3 -0
  49. package/lib/types/wordcloud-chart/core/layout/layout.d.ts +4 -0
  50. package/lib/types/wordcloud-chart/core/layout/phases.d.ts +12 -0
  51. package/lib/types/wordcloud-chart/core/layout/place-word.d.ts +12 -0
  52. package/lib/types/wordcloud-chart/core/layout/placement-stats.d.ts +7 -0
  53. package/lib/types/wordcloud-chart/core/layout/placement-types.d.ts +28 -0
  54. package/lib/types/wordcloud-chart/core/layout/placement-word-manager.d.ts +23 -0
  55. package/lib/types/wordcloud-chart/core/layout/rotation.d.ts +10 -0
  56. package/lib/types/wordcloud-chart/core/layout/runtime-mask.d.ts +6 -0
  57. package/lib/types/wordcloud-chart/core/layout/search-plan.d.ts +51 -0
  58. package/lib/types/wordcloud-chart/core/layout/types.d.ts +1 -0
  59. package/lib/types/wordcloud-chart/core/layout/word-prepare.d.ts +3 -0
  60. package/lib/types/wordcloud-chart/core/layout/word-shrink.d.ts +39 -0
  61. package/lib/types/wordcloud-chart/core/random/seed.d.ts +3 -0
  62. package/lib/types/wordcloud-chart/core/shape/built-in-shapes.d.ts +14 -0
  63. package/lib/types/wordcloud-chart/core/shape/shape-mask.d.ts +12 -0
  64. package/lib/types/wordcloud-chart/core/shape/shape-profile.d.ts +20 -0
  65. package/lib/types/wordcloud-chart/core/shape/sprite-shape.d.ts +19 -0
  66. package/lib/types/wordcloud-chart/core/shape/types.d.ts +1 -0
  67. package/lib/types/wordcloud-chart/core/text/formatter.d.ts +2 -0
  68. package/lib/types/wordcloud-chart/core/text/measure.d.ts +8 -0
  69. package/lib/types/wordcloud-chart/core/text/normalize.d.ts +2 -0
  70. package/lib/types/wordcloud-chart/core/text/sprite.d.ts +17 -0
  71. package/lib/types/wordcloud-chart/core/text/types.d.ts +1 -0
  72. package/lib/types/wordcloud-chart/core/types/layout.d.ts +81 -0
  73. package/lib/types/wordcloud-chart/core/types/option.d.ts +1 -0
  74. package/lib/types/wordcloud-chart/core/types/shape.d.ts +1 -0
  75. package/lib/types/wordcloud-chart/core/types/word.d.ts +1 -0
  76. package/lib/types/wordcloud-chart/defaults.d.ts +70 -0
  77. package/lib/types/wordcloud-chart/echarts.d.ts +2 -0
  78. package/lib/types/wordcloud-chart/index.d.ts +11 -0
  79. package/lib/types/wordcloud-chart/types.d.ts +339 -0
  80. package/lib/types/wordcloud-chart/word-cloud-render-config.d.ts +30 -0
  81. package/lib/umd/index.js +1 -1
  82. package/package.json +5 -5
  83. package/lib/types/model/mode-converter/converters/word-cloud-converter.d.ts +0 -76
  84. package/lib/types/model/mode-converter/render-spec-operators/tool-tip-operator.d.ts +0 -3
  85. /package/lib/types/{model → models}/chart-data-operators/build-chart-data.d.ts +0 -0
  86. /package/lib/types/{model → models}/chart-data-operators/index.d.ts +0 -0
  87. /package/lib/types/{model → models}/chart-locale-texts.d.ts +0 -0
  88. /package/lib/types/{model → models}/chart-theme.service.d.ts +0 -0
  89. /package/lib/types/{model → models}/constants/build-in-theme/default.d.ts +0 -0
  90. /package/lib/types/{model → models}/constants/build-in-theme/index.d.ts +0 -0
  91. /package/lib/types/{model → models}/constants/build-in-theme/theme-util.d.ts +0 -0
  92. /package/lib/types/{model → models}/constants/build-in-theme/types.d.ts +0 -0
  93. /package/lib/types/{model → models}/constants/build-in-theme/univer-gradient1.d.ts +0 -0
  94. /package/lib/types/{model → models}/constants/build-in-theme/univer-gradient2.d.ts +0 -0
  95. /package/lib/types/{model → models}/constants/build-in-theme/univer-gradient3.d.ts +0 -0
  96. /package/lib/types/{model → models}/constants/build-in-theme/univer-gradient4.d.ts +0 -0
  97. /package/lib/types/{model → models}/constants/build-in-theme/univer-gradient5.d.ts +0 -0
  98. /package/lib/types/{model → models}/constants/build-in-theme/univer-gradient6.d.ts +0 -0
  99. /package/lib/types/{model → models}/constants/build-in-theme/univer1.d.ts +0 -0
  100. /package/lib/types/{model → models}/constants/build-in-theme/univer2.d.ts +0 -0
  101. /package/lib/types/{model → models}/constants/build-in-theme/univer3.d.ts +0 -0
  102. /package/lib/types/{model → models}/constants/build-in-theme/univer4.d.ts +0 -0
  103. /package/lib/types/{model → models}/constants/build-in-theme/univer5.d.ts +0 -0
  104. /package/lib/types/{model → models}/constants/build-in-theme/univer6.d.ts +0 -0
  105. /package/lib/types/{model → models}/constants/default.d.ts +0 -0
  106. /package/lib/types/{model → models}/data-context-transformers/bar-data-context-transformer.d.ts +0 -0
  107. /package/lib/types/{model → models}/data-context-transformers/box-plot-data-context-transformer.d.ts +0 -0
  108. /package/lib/types/{model → models}/data-context-transformers/line-like-context-transformer.d.ts +0 -0
  109. /package/lib/types/{model → models}/data-context-transformers/pareto-data-context-transformer.d.ts +0 -0
  110. /package/lib/types/{model → models}/data-context-transformers/percent-data-context-transformer.d.ts +0 -0
  111. /package/lib/types/{model → models}/data-context-transformers/pie-data-context-transformer.d.ts +0 -0
  112. /package/lib/types/{model → models}/data-context-transformers/word-cloud-data-context-transform.d.ts +0 -0
  113. /package/lib/types/{model → models}/echart-to-chart-model-init.d.ts +0 -0
  114. /package/lib/types/{model → models}/mode-converter/converters/boxplot-chart-converter.d.ts +0 -0
  115. /package/lib/types/{model → models}/mode-converter/converters/bubble-chart-converter.d.ts +0 -0
  116. /package/lib/types/{model → models}/mode-converter/converters/combination-chart-converter.d.ts +0 -0
  117. /package/lib/types/{model → models}/mode-converter/converters/constants.d.ts +0 -0
  118. /package/lib/types/{model → models}/mode-converter/converters/funnel-chart-converter.d.ts +0 -0
  119. /package/lib/types/{model → models}/mode-converter/converters/heatmap-chart-convert.d.ts +0 -0
  120. /package/lib/types/{model → models}/mode-converter/converters/pareto-chart-converter.d.ts +0 -0
  121. /package/lib/types/{model → models}/mode-converter/converters/pie-chart-converter.d.ts +0 -0
  122. /package/lib/types/{model → models}/mode-converter/converters/radar-chart-converter.d.ts +0 -0
  123. /package/lib/types/{model → models}/mode-converter/converters/relation-chart-converter.d.ts +0 -0
  124. /package/lib/types/{model → models}/mode-converter/converters/sankey-chart-converter.d.ts +0 -0
  125. /package/lib/types/{model → models}/mode-converter/converters/scatter-chart-converter.d.ts +0 -0
  126. /package/lib/types/{model → models}/mode-converter/converters/tools.d.ts +0 -0
  127. /package/lib/types/{model → models}/mode-converter/converters/waterfall-chart-converter.d.ts +0 -0
  128. /package/lib/types/{model → models}/mode-converter/render-spec-operators/axis-title.operator.d.ts +0 -0
  129. /package/lib/types/{model → models}/mode-converter/render-spec-operators/bubble-style.operator.d.ts +0 -0
  130. /package/lib/types/{model → models}/mode-converter/render-spec-operators/chart-axes.operator.d.ts +0 -0
  131. /package/lib/types/{model → models}/mode-converter/render-spec-operators/chart-box-style.operator.d.ts +0 -0
  132. /package/lib/types/{model → models}/mode-converter/render-spec-operators/empty-style-operator.d.ts +0 -0
  133. /package/lib/types/{model → models}/mode-converter/render-spec-operators/font-size.operator.d.ts +0 -0
  134. /package/lib/types/{model → models}/mode-converter/render-spec-operators/grid-operator.d.ts +0 -0
  135. /package/lib/types/{model → models}/mode-converter/render-spec-operators/heatmap-chart-operator.d.ts +0 -0
  136. /package/lib/types/{model → models}/mode-converter/render-spec-operators/hover-mark-style.operator.d.ts +0 -0
  137. /package/lib/types/{model → models}/mode-converter/render-spec-operators/invalid-value-style.operator.d.ts +0 -0
  138. /package/lib/types/{model → models}/mode-converter/render-spec-operators/legend-style.operator.d.ts +0 -0
  139. /package/lib/types/{model → models}/mode-converter/render-spec-operators/line-like-style.operator.d.ts +0 -0
  140. /package/lib/types/{model → models}/mode-converter/render-spec-operators/operator-types.d.ts +0 -0
  141. /package/lib/types/{model → models}/mode-converter/render-spec-operators/pie-style.operator.d.ts +0 -0
  142. /package/lib/types/{model → models}/mode-converter/render-spec-operators/radar-style.operator.d.ts +0 -0
  143. /package/lib/types/{model → models}/mode-converter/render-spec-operators/relation-chart-operator/relation-chart-operator.d.ts +0 -0
  144. /package/lib/types/{model → models}/mode-converter/render-spec-operators/relation-chart-operator/relation-force-directed-layout.d.ts +0 -0
  145. /package/lib/types/{model → models}/mode-converter/render-spec-operators/sankey-chart-operator.d.ts +0 -0
  146. /package/lib/types/{model → models}/mode-converter/render-spec-operators/scatter-style.operator.d.ts +0 -0
  147. /package/lib/types/{model → models}/mode-converter/render-spec-operators/series-style-operator/pareto-series-style.handler.d.ts +0 -0
  148. /package/lib/types/{model → models}/mode-converter/render-spec-operators/series-style-operator/series-chart-style.handler.d.ts +0 -0
  149. /package/lib/types/{model → models}/mode-converter/render-spec-operators/series-style-operator/series-data-label.handler.d.ts +0 -0
  150. /package/lib/types/{model → models}/mode-converter/render-spec-operators/series-style-operator/series-style-operator.d.ts +0 -0
  151. /package/lib/types/{model → models}/mode-converter/render-spec-operators/series-style-operator/waterfall-series-style-operator.d.ts +0 -0
  152. /package/lib/types/{model → models}/mode-converter/render-spec-operators/stack.operator.d.ts +0 -0
  153. /package/lib/types/{model → models}/mode-converter/render-spec-operators/theme.operator.d.ts +0 -0
  154. /package/lib/types/{model → models}/mode-converter/render-spec-operators/title-style.operator.d.ts +0 -0
  155. /package/lib/types/{model → models}/mode-converter/render-spec-operators/tools.d.ts +0 -0
  156. /package/lib/types/{model → models}/mode-converter/render-spec-operators/trend-line/trend-line.operator.d.ts +0 -0
  157. /package/lib/types/{model → models}/mode-converter/render-spec-operators/trend-line/trendline-util.d.ts +0 -0
  158. /package/lib/types/{model → models}/mode-converter/render-spec-operators/visual-map-operator.d.ts +0 -0
  159. /package/lib/types/{model → models}/mode-converter/render-spec-operators/watermark.operator.d.ts +0 -0
  160. /package/lib/types/{model → models}/spec-converter/spec-converter.d.ts +0 -0
@@ -0,0 +1,17 @@
1
+ import type { IWordCloudTextSprite } from '../../types';
2
+ export interface ICreateTightTextSpriteOptions {
3
+ readonly pixels: Uint8Array;
4
+ readonly width: number;
5
+ readonly height: number;
6
+ readonly alphaBBox?: {
7
+ readonly x: number;
8
+ readonly y: number;
9
+ readonly width: number;
10
+ readonly height: number;
11
+ };
12
+ readonly anchorX?: number;
13
+ readonly anchorY?: number;
14
+ readonly dpr?: number;
15
+ readonly textMetrics?: IWordCloudTextSprite['textMetrics'];
16
+ }
17
+ export declare function createTightTextSprite(options: ICreateTightTextSpriteOptions): IWordCloudTextSprite;
@@ -0,0 +1 @@
1
+ export type * from '../types/layout';
@@ -0,0 +1,81 @@
1
+ import type { IWordCloudBounds, IWordCloudClipMask, IWordCloudEncodedWord, IWordCloudLayoutMask, IWordCloudMaskGrid, IWordCloudTextMeasurer } from '../../types';
2
+ import type { ICollisionFootprint, WordCloudCollisionShape } from '../collision/engine';
3
+ import type { IPlacementSearchPolicy } from '../layout/search-plan';
4
+ export interface IWordCloudLayoutGrid {
5
+ readonly width: number;
6
+ readonly height: number;
7
+ readonly cellSize: number;
8
+ readonly cols: number;
9
+ readonly rows: number;
10
+ readonly data: Uint8Array;
11
+ }
12
+ export interface IWordCloudLayoutRuntime {
13
+ readonly measurer: IWordCloudTextMeasurer;
14
+ readonly mask?: IWordCloudLayoutMask;
15
+ readonly maskGrid?: IWordCloudMaskGrid;
16
+ }
17
+ export interface IWordCloudLayoutConfig {
18
+ readonly width: number;
19
+ readonly height: number;
20
+ readonly cellSize: number;
21
+ readonly minFontSize: number;
22
+ readonly padding: number;
23
+ readonly maxCandidateChecks: number;
24
+ readonly failureCacheLimit: number;
25
+ readonly ringCount: number;
26
+ readonly candidateStep: number;
27
+ readonly drawOutOfBound: boolean;
28
+ readonly seed: string;
29
+ readonly seedHash: number;
30
+ readonly collisionShape: WordCloudCollisionShape;
31
+ readonly shapeSampleSize?: number;
32
+ readonly shapeInsideRatio?: number;
33
+ readonly shapePaddingRatio?: number;
34
+ readonly placementSearchPolicy?: IPlacementSearchPolicy;
35
+ readonly wordShrink?: {
36
+ readonly initialRatio: number;
37
+ readonly fontSizeLimitMin: number;
38
+ };
39
+ }
40
+ export interface IPreparedWordCloudWord {
41
+ readonly source: IWordCloudEncodedWord;
42
+ readonly rank: number;
43
+ readonly baseFontSize: number;
44
+ }
45
+ export interface IBoxFootprint {
46
+ readonly key: string;
47
+ readonly staticKey?: string;
48
+ readonly width: number;
49
+ readonly height: number;
50
+ readonly rawWidth: number;
51
+ readonly rawHeight: number;
52
+ readonly angle: number;
53
+ readonly halfWidth: number;
54
+ readonly halfHeight: number;
55
+ readonly aabbHalfWidth: number;
56
+ readonly aabbHalfHeight: number;
57
+ readonly axisX: readonly [number, number];
58
+ readonly axisY: readonly [number, number];
59
+ readonly rel: Int32Array;
60
+ readonly minDc: number;
61
+ readonly maxDc: number;
62
+ readonly minDr: number;
63
+ readonly maxDr: number;
64
+ readonly corners: ReadonlyArray<readonly [number, number]>;
65
+ readonly shapeSamplePoints: ReadonlyArray<readonly [number, number]>;
66
+ }
67
+ export interface IWordCloudPlacement {
68
+ readonly word: IWordCloudEncodedWord;
69
+ readonly phase: 1 | 2;
70
+ readonly rank: number;
71
+ readonly x: number;
72
+ readonly y: number;
73
+ readonly rawWidth: number;
74
+ readonly rawHeight: number;
75
+ readonly bounds: IWordCloudBounds;
76
+ readonly clipBounds?: IWordCloudBounds;
77
+ readonly clipMask?: IWordCloudClipMask;
78
+ readonly footprint: ICollisionFootprint;
79
+ readonly fontSize: number;
80
+ readonly rotate: number;
81
+ }
@@ -0,0 +1 @@
1
+ export type { IResolvedWordCloudSpec, IWordCloudChartSpec, IWordCloudDataSource, IWordCloudEChartsMaskSource, IWordCloudEChartsSeriesOption, IWordCloudEncoding, IWordCloudFieldMapping, IWordCloudProtocolSpec, IWordCloudSeriesOption, IWordCloudSpecBase, } from '../../types';
@@ -0,0 +1 @@
1
+ export type { IWordCloudLayoutMask, IWordCloudMaskGrid, IWordCloudMaskShapeSpec, IWordCloudSegmentationRegion, IWordCloudSegmentationResult, WordCloudShape, } from '../../types';
@@ -0,0 +1 @@
1
+ export type { INormalizedWordCloudDatum, IWordCloudEncodedWord, IWordCloudPlacedWord, IWordCloudTextMarkAttrs, IWordCloudTextMarkSpec, } from '../../types';
@@ -0,0 +1,70 @@
1
+ import type { IResolvedWordCloudSpec, IWordCloudSpecBase } from './types';
2
+ export declare const DEFAULT_WORD_CLOUD_CHART_SPEC: {
3
+ type: "wordcloud";
4
+ data: {
5
+ id: string;
6
+ values: never[];
7
+ };
8
+ fields: {
9
+ id: string;
10
+ text: string;
11
+ value: string;
12
+ group: string;
13
+ color: string;
14
+ };
15
+ transforms: never[];
16
+ encoding: {
17
+ fontSize: {
18
+ scale: "sqrt";
19
+ range: [number, number];
20
+ };
21
+ rotate: {
22
+ angles: number[];
23
+ seed: string;
24
+ };
25
+ };
26
+ layout: {
27
+ width: number;
28
+ height: number;
29
+ mode: "default";
30
+ maskShape: {
31
+ type: "builtin";
32
+ shape: "rect";
33
+ };
34
+ seed: string;
35
+ drawOutOfBound: false;
36
+ shrinkToFit: false;
37
+ minFontSize: number;
38
+ maxAttempts: number;
39
+ spiralStep: number;
40
+ gridSize: number;
41
+ shapeSampleSize: null;
42
+ shapeInsideRatio: null;
43
+ shapePaddingRatio: number;
44
+ textLayoutTimes: number;
45
+ importantWordCount: number;
46
+ fontSizeShrinkFactor: number;
47
+ stepFactor: number;
48
+ globalShrinkLimit: number;
49
+ fontSizeEnlargeFactor: number;
50
+ fillingTimes: number;
51
+ fillingStep: number;
52
+ fillingInitialOpacity: number;
53
+ fillingDeltaOpacity: number;
54
+ fillingDeltaFontSizeFactor: number;
55
+ fillingRatio: number;
56
+ minFillFontSize: number;
57
+ minInitFontSize: number;
58
+ };
59
+ mark: {
60
+ fontFamily: string;
61
+ fontStyle: "normal";
62
+ fontWeight: string;
63
+ padding: number;
64
+ opacity: number;
65
+ };
66
+ tooltip: {
67
+ fields: never[];
68
+ };
69
+ };
70
+ export declare function resolveWordCloudSpec(spec: IWordCloudSpecBase): IResolvedWordCloudSpec;
@@ -0,0 +1,2 @@
1
+ export { WORD_CLOUD_DEFAULT_OPTION, WORD_CLOUD_SERIES_TYPE } from './adapters/echarts/echarts-options';
2
+ export { registerWordCloudChart } from './adapters/echarts/install';
@@ -0,0 +1,11 @@
1
+ export { layoutWordCloudChart, resolveLayoutOptions } from './canvas';
2
+ export * from './core/layout/font-scale';
3
+ export { createBuiltinMaskGrid, createMaskGridFromShape, createTextMaskGrid, normalizeMaskGrid, segmentMaskGrid } from './core/shape/built-in-shapes';
4
+ export { encodeWordCloudWords } from './core/text/formatter';
5
+ export { normalizeWordCloudData } from './core/text/normalize';
6
+ export { DEFAULT_WORD_CLOUD_CHART_SPEC, resolveWordCloudSpec } from './defaults';
7
+ export { registerWordCloudChart, WORD_CLOUD_DEFAULT_OPTION, WORD_CLOUD_SERIES_TYPE } from './echarts';
8
+ export type { INormalizedWordCloudDatum, IResolvedWordCloudSpec, IWordCloudBounds, IWordCloudChartSpec, IWordCloudDataSource, IWordCloudEChartsMaskSource, IWordCloudEChartsSeriesDataItem, IWordCloudEChartsSeriesOption, IWordCloudEncodedWord, IWordCloudEncoding, IWordCloudFieldMapping, IWordCloudLayoutMask, IWordCloudLayoutOptions, IWordCloudLayoutResult, IWordCloudMaskGrid, IWordCloudMaskShapeSpec, IWordCloudPlacedWord, IWordCloudProtocolSpec, IWordCloudSegmentationRegion, IWordCloudSegmentationResult, IWordCloudSeriesDataItem, IWordCloudSeriesOption, IWordCloudSpecBase, IWordCloudTextMarkAttrs, IWordCloudTextMarkSpec, IWordCloudTextMeasurer, IWordCloudTextSprite, WordCloudFontSizeRange, WordCloudShape, } from './types';
9
+ export { DEFAULT_WORD_CLOUD_SHAPE, normalizeWordCloudShape, SUPPORTED_WORD_CLOUD_SHAPES } from './types';
10
+ export { DEFAULT_WORD_CLOUD_RENDER_CONFIG, resolveWordCloudRenderConfig, } from './word-cloud-render-config';
11
+ export type { IResolvedWordCloudRenderConfig, IWordCloudRenderConfig, } from './word-cloud-render-config';
@@ -0,0 +1,339 @@
1
+ export type WordCloudColorMode = 'fixed' | 'identity' | 'palette';
2
+ export type WordCloudLayoutMode = 'default' | 'fast' | 'grid' | 'ensureMapping' | 'ensureMappingEnlarge';
3
+ export type WordCloudScaleType = 'linear' | 'sqrt' | 'log';
4
+ export declare const SUPPORTED_WORD_CLOUD_SHAPES: readonly ["cloud", "rect", "circle", "cardioid", "heart", "diamond", "triangle-forward", "triangle", "pentagon", "star"];
5
+ export type WordCloudShape = typeof SUPPORTED_WORD_CLOUD_SHAPES[number];
6
+ export declare const DEFAULT_WORD_CLOUD_SHAPE: WordCloudShape;
7
+ export type WordCloudFontSizeRange = [number, number] | 'auto';
8
+ export declare function normalizeWordCloudShape(shape: unknown): WordCloudShape;
9
+ export interface IWordCloudProtocolSpec {
10
+ data: IWordCloudDataSource;
11
+ fields?: Partial<IWordCloudFieldMapping>;
12
+ transforms?: IWordCloudDataTransform[];
13
+ encoding?: IWordCloudEncoding;
14
+ layout?: Partial<IWordCloudLayoutOptions>;
15
+ mark?: IWordCloudTextMarkSpec;
16
+ tooltip?: IWordCloudTooltipSpec;
17
+ }
18
+ export interface IWordCloudChartSpec extends IWordCloudProtocolSpec {
19
+ type: 'wordcloud';
20
+ }
21
+ export interface IWordCloudEChartsSeriesDataItem extends Record<string, unknown> {
22
+ name?: string;
23
+ value?: unknown;
24
+ }
25
+ export type IWordCloudEChartsMaskSource = {
26
+ type: 'shape';
27
+ value: WordCloudShape | string;
28
+ } | {
29
+ type: 'image';
30
+ value: string;
31
+ };
32
+ export interface IWordCloudEChartsSeriesOption {
33
+ type: 'wordCloud';
34
+ data?: IWordCloudEChartsSeriesDataItem[];
35
+ left?: number | string;
36
+ top?: number | string;
37
+ right?: number | string;
38
+ bottom?: number | string;
39
+ width?: number | string;
40
+ height?: number | string;
41
+ colorBy?: 'series' | 'data';
42
+ gridSize?: number;
43
+ padding?: number;
44
+ maskSource?: IWordCloudEChartsMaskSource;
45
+ drawOutOfBound?: boolean;
46
+ keepAspect?: boolean;
47
+ fontSizeRange?: WordCloudFontSizeRange;
48
+ collisionShape?: 'box' | 'glyph';
49
+ rotations?: number[];
50
+ randomSeed?: number;
51
+ textStyle?: Record<string, unknown>;
52
+ formatter?: string | ((params: Record<string, unknown>) => unknown);
53
+ zoomToFit?: {
54
+ shrink?: boolean;
55
+ enlarge?: boolean;
56
+ fontSizeLimitMin?: number;
57
+ fontSizeLimitMax?: number;
58
+ minShrinkRatio?: number;
59
+ };
60
+ }
61
+ export type IWordCloudSpecBase = IWordCloudProtocolSpec;
62
+ export type IWordCloudSeriesDataItem = IWordCloudEChartsSeriesDataItem;
63
+ export type IWordCloudSeriesOption = IWordCloudEChartsSeriesOption;
64
+ export interface IWordCloudDataSource {
65
+ id?: string;
66
+ values: Array<Record<string, unknown>>;
67
+ }
68
+ export interface IWordCloudFieldMapping {
69
+ text: string;
70
+ value: string;
71
+ id?: string;
72
+ group?: string;
73
+ color?: string;
74
+ tooltip?: string[];
75
+ }
76
+ export type IWordCloudDataTransform = {
77
+ type: 'filterInvalid';
78
+ } | {
79
+ type: 'limit';
80
+ count: number;
81
+ };
82
+ export interface IWordCloudEncoding {
83
+ fontSize?: {
84
+ field?: string;
85
+ scale?: WordCloudScaleType;
86
+ range?: WordCloudFontSizeRange;
87
+ };
88
+ color?: {
89
+ field?: string;
90
+ mode?: WordCloudColorMode;
91
+ palette?: string[];
92
+ fixed?: string;
93
+ };
94
+ rotate?: {
95
+ angles?: number[];
96
+ ratio?: number;
97
+ seed?: string | number;
98
+ };
99
+ }
100
+ export interface IWordCloudTextMarkSpec {
101
+ fontFamily?: string;
102
+ fontStyle?: 'normal' | 'italic' | 'oblique';
103
+ fontWeight?: string | number;
104
+ padding?: number;
105
+ opacity?: number;
106
+ fill?: string;
107
+ emphasis?: Partial<IWordCloudTextMarkSpec>;
108
+ }
109
+ export interface IWordCloudTooltipSpec {
110
+ fields?: string[];
111
+ }
112
+ export interface IResolvedWordCloudSpec extends Omit<IWordCloudProtocolSpec, 'fields' | 'transforms' | 'encoding' | 'layout' | 'mark' | 'tooltip'> {
113
+ fields: IWordCloudFieldMapping;
114
+ transforms: IWordCloudDataTransform[];
115
+ encoding: IWordCloudEncoding;
116
+ layout: IWordCloudLayoutOptions;
117
+ mark: IWordCloudTextMarkSpec;
118
+ tooltip: IWordCloudTooltipSpec;
119
+ }
120
+ export interface INormalizedWordCloudDatum {
121
+ key: string;
122
+ datumIndex: number;
123
+ text: string;
124
+ value: number;
125
+ raw: Record<string, unknown>;
126
+ group?: string;
127
+ colorValue?: unknown;
128
+ tooltipValues?: Record<string, unknown>;
129
+ }
130
+ export interface IWordCloudTextMarkAttrs {
131
+ fontSize: number;
132
+ fill?: string;
133
+ rotate: number;
134
+ opacity: number;
135
+ fontFamily: string;
136
+ fontStyle: 'normal' | 'italic' | 'oblique';
137
+ fontWeight: string | number;
138
+ padding: number;
139
+ }
140
+ export interface IWordCloudEncodedWord {
141
+ key: string;
142
+ datumIndex: number;
143
+ text: string;
144
+ value: number;
145
+ raw: Record<string, unknown>;
146
+ mark: IWordCloudTextMarkAttrs;
147
+ rotationAngles?: number[];
148
+ }
149
+ export interface IWordCloudLayoutOptions {
150
+ width: number;
151
+ height: number;
152
+ mode: WordCloudLayoutMode;
153
+ seed: string | number;
154
+ drawOutOfBound: boolean;
155
+ shrinkToFit: boolean;
156
+ minFontSize: number;
157
+ maxAttempts: number;
158
+ spiralStep: number;
159
+ gridSize: number;
160
+ maskShape: IWordCloudMaskShapeSpec;
161
+ shapeSampleSize?: number | null;
162
+ shapeInsideRatio?: number | null;
163
+ shapePaddingRatio?: number | null;
164
+ textLayoutTimes: number;
165
+ importantWordCount: number;
166
+ fontSizeShrinkFactor: number;
167
+ stepFactor: number;
168
+ globalShrinkLimit: number;
169
+ fontSizeEnlargeFactor: number;
170
+ fillingTimes: number;
171
+ fillingStep: number;
172
+ fillingXStep?: number;
173
+ fillingYStep?: number;
174
+ fillingInitialFontSize?: number;
175
+ fillingDeltaFontSize?: number;
176
+ fillingInitialOpacity: number;
177
+ fillingDeltaOpacity: number;
178
+ fillingDeltaFontSizeFactor: number;
179
+ fillingRatio: number;
180
+ minFillFontSize: number;
181
+ minInitFontSize: number;
182
+ wordShrink?: {
183
+ initialRatio: number;
184
+ fontSizeLimitMin: number;
185
+ };
186
+ }
187
+ export interface IWordCloudMeasureResult {
188
+ width: number;
189
+ height: number;
190
+ actualBoundingBoxAscent?: number;
191
+ actualBoundingBoxDescent?: number;
192
+ actualBoundingBoxLeft?: number;
193
+ actualBoundingBoxRight?: number;
194
+ }
195
+ export interface IWordCloudTextSprite {
196
+ width: number;
197
+ height: number;
198
+ pixels: Uint8Array;
199
+ occupied?: Int32Array;
200
+ spans?: IWordCloudTextSpriteSpan[];
201
+ anchorX?: number;
202
+ anchorY?: number;
203
+ offsetX?: number;
204
+ offsetY?: number;
205
+ alphaBBox?: {
206
+ x: number;
207
+ y: number;
208
+ width: number;
209
+ height: number;
210
+ };
211
+ alphaPixelCount?: number;
212
+ dpr?: number;
213
+ textMetrics?: {
214
+ width: number;
215
+ actualBoundingBoxAscent?: number;
216
+ actualBoundingBoxDescent?: number;
217
+ actualBoundingBoxLeft?: number;
218
+ actualBoundingBoxRight?: number;
219
+ };
220
+ }
221
+ export interface IWordCloudTextSpriteSpan {
222
+ y: number;
223
+ x1: number;
224
+ x2: number;
225
+ }
226
+ export interface IWordCloudTextMeasurer {
227
+ measureText(word: IWordCloudEncodedWord): IWordCloudMeasureResult;
228
+ rasterizeText?: (word: IWordCloudEncodedWord) => IWordCloudTextSprite;
229
+ }
230
+ export interface IWordCloudLayoutMask {
231
+ isVisible(bounds: IWordCloudBounds): boolean;
232
+ }
233
+ export type IWordCloudMaskShapeSpec = {
234
+ type: 'builtin';
235
+ shape: WordCloudShape;
236
+ } | {
237
+ type: 'text';
238
+ text: string;
239
+ hollow?: boolean;
240
+ backgroundColor?: string;
241
+ fill?: string;
242
+ fontFamily?: string;
243
+ fontWeight?: string | number;
244
+ fontStyle?: 'normal' | 'italic' | 'oblique';
245
+ fontVariant?: string;
246
+ } | {
247
+ type: 'image';
248
+ file: File | Blob;
249
+ removeWhiteBorder?: boolean;
250
+ threshold?: number;
251
+ invert?: boolean;
252
+ } | {
253
+ type: 'grid';
254
+ grid: IWordCloudMaskGrid;
255
+ };
256
+ export interface IWordCloudMaskGrid {
257
+ width: number;
258
+ height: number;
259
+ data: Uint8Array;
260
+ sourceHash?: string;
261
+ sourceType?: string;
262
+ }
263
+ export interface IWordCloudSegmentationRegion {
264
+ label: number;
265
+ area: number;
266
+ center: [number, number];
267
+ maxPoint: [number, number, number, number];
268
+ maxR: number;
269
+ ratio: number;
270
+ boundary: Array<[number, number]>;
271
+ }
272
+ export interface IWordCloudSegmentationResult {
273
+ labels: Int32Array;
274
+ regions: IWordCloudSegmentationRegion[];
275
+ shapeBounds: {
276
+ x1: number;
277
+ y1: number;
278
+ x2: number;
279
+ y2: number;
280
+ width: number;
281
+ height: number;
282
+ };
283
+ shapeCenter: [number, number];
284
+ shapeArea: number;
285
+ shapeMaxR: number;
286
+ shapeRatio: number;
287
+ }
288
+ export interface IWordCloudBounds {
289
+ x: number;
290
+ y: number;
291
+ width: number;
292
+ height: number;
293
+ }
294
+ export interface IWordCloudClipSpan {
295
+ y: number;
296
+ x1: number;
297
+ x2: number;
298
+ }
299
+ export interface IWordCloudClipMask extends IWordCloudBounds {
300
+ spans: IWordCloudClipSpan[];
301
+ spanHeight?: number;
302
+ }
303
+ export interface IWordCloudPlacedWord extends IWordCloudEncodedWord {
304
+ x: number;
305
+ y: number;
306
+ width: number;
307
+ height: number;
308
+ bounds: IWordCloudBounds;
309
+ clipBounds?: IWordCloudBounds;
310
+ clipMask?: IWordCloudClipMask;
311
+ visible: boolean;
312
+ isFillingWord?: boolean;
313
+ }
314
+ export interface IWordCloudLayoutStats {
315
+ dataCount: number;
316
+ placedCount: number;
317
+ droppedCount: number;
318
+ durationMs: number;
319
+ maxFontSize: number;
320
+ minPlacedFontSize: number;
321
+ finalFontSizeScale: number;
322
+ angleHistogram: Record<string, number>;
323
+ rejectByBounds: number;
324
+ rejectByCollision: number;
325
+ rejectByShape: number;
326
+ rejectByMaxAttempts: number;
327
+ avgTryCount: number;
328
+ maxTryCount: number;
329
+ occupiedRatio: number;
330
+ layoutWidth: number;
331
+ layoutHeight: number;
332
+ }
333
+ export interface IWordCloudLayoutResult {
334
+ width: number;
335
+ height: number;
336
+ words: IWordCloudPlacedWord[];
337
+ fillingWords: IWordCloudPlacedWord[];
338
+ stats?: IWordCloudLayoutStats;
339
+ }
@@ -0,0 +1,30 @@
1
+ import type { WordCloudCollisionShape } from './core/collision/engine';
2
+ import type { WordCloudFontSizeRange, WordCloudShape } from './types';
3
+ export interface IWordCloudRenderConfig {
4
+ initialShape?: WordCloudShape;
5
+ collisionShape?: WordCloudCollisionShape;
6
+ fontSizeRange?: WordCloudFontSizeRange;
7
+ padding?: number;
8
+ zoomToFit?: {
9
+ shrink?: boolean;
10
+ enlarge?: boolean;
11
+ fontSizeLimitMin?: number;
12
+ fontSizeLimitMax?: number;
13
+ minShrinkRatio?: number;
14
+ };
15
+ }
16
+ export interface IResolvedWordCloudRenderConfig {
17
+ initialShape: WordCloudShape;
18
+ collisionShape: WordCloudCollisionShape;
19
+ fontSizeRange: WordCloudFontSizeRange;
20
+ padding: number;
21
+ zoomToFit: {
22
+ shrink: boolean;
23
+ enlarge: boolean;
24
+ fontSizeLimitMin: number;
25
+ fontSizeLimitMax?: number;
26
+ minShrinkRatio: number;
27
+ };
28
+ }
29
+ export declare const DEFAULT_WORD_CLOUD_RENDER_CONFIG: IResolvedWordCloudRenderConfig;
30
+ export declare function resolveWordCloudRenderConfig(config?: IWordCloudRenderConfig): IResolvedWordCloudRenderConfig;