@damoqiongqiu/ice-chart 0.17.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/LICENSE +21 -0
- package/README.md +530 -0
- package/dist/index.cjs +25 -0
- package/dist/index.mjs +25 -0
- package/dist/index.umd.js +25 -0
- package/dist/types/ICEChart.d.mts +330 -0
- package/dist/types/ICEChart.d.ts +330 -0
- package/dist/types/a11y.d.mts +85 -0
- package/dist/types/a11y.d.ts +85 -0
- package/dist/types/animation/motion.d.mts +11 -0
- package/dist/types/animation/motion.d.ts +11 -0
- package/dist/types/components/Axis.d.mts +60 -0
- package/dist/types/components/Axis.d.ts +60 -0
- package/dist/types/components/Brush.d.mts +19 -0
- package/dist/types/components/Brush.d.ts +19 -0
- package/dist/types/components/ChartComponent.d.mts +48 -0
- package/dist/types/components/ChartComponent.d.ts +48 -0
- package/dist/types/components/Crosshair.d.mts +40 -0
- package/dist/types/components/Crosshair.d.ts +40 -0
- package/dist/types/components/DataZoomSlider.d.mts +30 -0
- package/dist/types/components/DataZoomSlider.d.ts +30 -0
- package/dist/types/components/GridLines.d.mts +37 -0
- package/dist/types/components/GridLines.d.ts +37 -0
- package/dist/types/components/Highlight.d.mts +34 -0
- package/dist/types/components/Highlight.d.ts +34 -0
- package/dist/types/components/Legend.d.mts +26 -0
- package/dist/types/components/Legend.d.ts +26 -0
- package/dist/types/components/PlotArea.d.mts +21 -0
- package/dist/types/components/PlotArea.d.ts +21 -0
- package/dist/types/components/PolarGrid.d.mts +34 -0
- package/dist/types/components/PolarGrid.d.ts +34 -0
- package/dist/types/components/RadarGrid.d.mts +25 -0
- package/dist/types/components/RadarGrid.d.ts +25 -0
- package/dist/types/components/Title.d.mts +14 -0
- package/dist/types/components/Title.d.ts +14 -0
- package/dist/types/components/Tooltip.d.mts +48 -0
- package/dist/types/components/Tooltip.d.ts +48 -0
- package/dist/types/components/series/AreaSeries.d.mts +14 -0
- package/dist/types/components/series/AreaSeries.d.ts +14 -0
- package/dist/types/components/series/BarSeries.d.mts +39 -0
- package/dist/types/components/series/BarSeries.d.ts +39 -0
- package/dist/types/components/series/BoxplotSeries.d.mts +16 -0
- package/dist/types/components/series/BoxplotSeries.d.ts +16 -0
- package/dist/types/components/series/CandlestickSeries.d.mts +13 -0
- package/dist/types/components/series/CandlestickSeries.d.ts +13 -0
- package/dist/types/components/series/CurveSeriesBase.d.mts +58 -0
- package/dist/types/components/series/CurveSeriesBase.d.ts +58 -0
- package/dist/types/components/series/FunctionSeries.d.mts +22 -0
- package/dist/types/components/series/FunctionSeries.d.ts +22 -0
- package/dist/types/components/series/FunnelSeries.d.mts +38 -0
- package/dist/types/components/series/FunnelSeries.d.ts +38 -0
- package/dist/types/components/series/GaugeSeries.d.mts +45 -0
- package/dist/types/components/series/GaugeSeries.d.ts +45 -0
- package/dist/types/components/series/GraphSeries.d.mts +39 -0
- package/dist/types/components/series/GraphSeries.d.ts +39 -0
- package/dist/types/components/series/HeatmapSeries.d.mts +21 -0
- package/dist/types/components/series/HeatmapSeries.d.ts +21 -0
- package/dist/types/components/series/LineSeries.d.mts +31 -0
- package/dist/types/components/series/LineSeries.d.ts +31 -0
- package/dist/types/components/series/LiquidSeries.d.mts +55 -0
- package/dist/types/components/series/LiquidSeries.d.ts +55 -0
- package/dist/types/components/series/ParametricSeries.d.mts +30 -0
- package/dist/types/components/series/ParametricSeries.d.ts +30 -0
- package/dist/types/components/series/PieSeries.d.mts +44 -0
- package/dist/types/components/series/PieSeries.d.ts +44 -0
- package/dist/types/components/series/RadarSeries.d.mts +30 -0
- package/dist/types/components/series/RadarSeries.d.ts +30 -0
- package/dist/types/components/series/SankeySeries.d.mts +34 -0
- package/dist/types/components/series/SankeySeries.d.ts +34 -0
- package/dist/types/components/series/ScatterSeries.d.mts +11 -0
- package/dist/types/components/series/ScatterSeries.d.ts +11 -0
- package/dist/types/components/series/SeriesBase.d.mts +214 -0
- package/dist/types/components/series/SeriesBase.d.ts +214 -0
- package/dist/types/components/series/TreemapSeries.d.mts +48 -0
- package/dist/types/components/series/TreemapSeries.d.ts +48 -0
- package/dist/types/components/series/WaterfallSeries.d.mts +17 -0
- package/dist/types/components/series/WaterfallSeries.d.ts +17 -0
- package/dist/types/components/series/createSeries.d.mts +10 -0
- package/dist/types/components/series/createSeries.d.ts +10 -0
- package/dist/types/components/series/index.d.mts +29 -0
- package/dist/types/components/series/index.d.ts +29 -0
- package/dist/types/expr/diagnostics.d.mts +45 -0
- package/dist/types/expr/diagnostics.d.ts +45 -0
- package/dist/types/expr/expr.d.mts +44 -0
- package/dist/types/expr/expr.d.ts +44 -0
- package/dist/types/expr/sample.d.mts +34 -0
- package/dist/types/expr/sample.d.ts +34 -0
- package/dist/types/index.d.mts +80 -0
- package/dist/types/index.d.ts +80 -0
- package/dist/types/interaction/ChartLink.d.mts +16 -0
- package/dist/types/interaction/ChartLink.d.ts +16 -0
- package/dist/types/interaction/HitResolver.d.mts +44 -0
- package/dist/types/interaction/HitResolver.d.ts +44 -0
- package/dist/types/interaction/InteractionController.d.mts +147 -0
- package/dist/types/interaction/InteractionController.d.ts +147 -0
- package/dist/types/internal.d.mts +232 -0
- package/dist/types/internal.d.ts +232 -0
- package/dist/types/layout/force.d.mts +48 -0
- package/dist/types/layout/force.d.ts +48 -0
- package/dist/types/layout/layout.d.mts +9 -0
- package/dist/types/layout/layout.d.ts +9 -0
- package/dist/types/layout/sankey.d.mts +47 -0
- package/dist/types/layout/sankey.d.ts +47 -0
- package/dist/types/layout/treemap.d.mts +35 -0
- package/dist/types/layout/treemap.d.ts +35 -0
- package/dist/types/option/normalize.d.mts +68 -0
- package/dist/types/option/normalize.d.ts +68 -0
- package/dist/types/scale/BandScale.d.mts +36 -0
- package/dist/types/scale/BandScale.d.ts +36 -0
- package/dist/types/scale/LinearScale.d.mts +21 -0
- package/dist/types/scale/LinearScale.d.ts +21 -0
- package/dist/types/scale/LogScale.d.mts +24 -0
- package/dist/types/scale/LogScale.d.ts +24 -0
- package/dist/types/scale/Scale.d.mts +38 -0
- package/dist/types/scale/Scale.d.ts +38 -0
- package/dist/types/scale/TimeScale.d.mts +28 -0
- package/dist/types/scale/TimeScale.d.ts +28 -0
- package/dist/types/scale/format.d.mts +5 -0
- package/dist/types/scale/format.d.ts +5 -0
- package/dist/types/scale/index.d.mts +7 -0
- package/dist/types/scale/index.d.ts +7 -0
- package/dist/types/theme/chartTheme.d.mts +54 -0
- package/dist/types/theme/chartTheme.d.ts +54 -0
- package/dist/types/types.d.mts +689 -0
- package/dist/types/types.d.ts +689 -0
- package/dist/types/util/emitter.d.mts +11 -0
- package/dist/types/util/emitter.d.ts +11 -0
- package/dist/types/util/math.d.mts +14 -0
- package/dist/types/util/math.d.ts +14 -0
- package/dist/types/util/text.d.mts +10 -0
- package/dist/types/util/text.d.ts +10 -0
- package/package.json +100 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** 极简类型化事件发射器:图表对外的事件接口由它承载。 */
|
|
2
|
+
export type Listener = (payload: any) => void;
|
|
3
|
+
export declare class Emitter {
|
|
4
|
+
private listeners;
|
|
5
|
+
on(event: string, fn: Listener, scope?: any): this;
|
|
6
|
+
once(event: string, fn: Listener, scope?: any): this;
|
|
7
|
+
off(event: string, fn?: Listener, scope?: any): this;
|
|
8
|
+
emit(event: string, payload?: any): boolean;
|
|
9
|
+
hasListener(event: string): boolean;
|
|
10
|
+
clear(): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** 数值与数组工具。保持零依赖、可被 tree-shaking。 */
|
|
2
|
+
export declare function clamp(value: number, min: number, max: number): number;
|
|
3
|
+
export declare function isFiniteNumber(value: any): value is number;
|
|
4
|
+
export declare function isNil(value: any): boolean;
|
|
5
|
+
export declare function extent(values: number[]): [number, number];
|
|
6
|
+
/** 生成「整齐」的刻度步长:1/2/5 × 10^k。 */
|
|
7
|
+
export declare function niceStep(span: number, count: number): number;
|
|
8
|
+
export declare function niceDomain(domain: [number, number], count: number): [number, number];
|
|
9
|
+
/** 四舍五入到指定小数位,规避浮点误差(0.30000000000000004)。 */
|
|
10
|
+
export declare function round(value: number, digits?: number): number;
|
|
11
|
+
/** 判断两个数值 / 数组是否近似相等(用于避免无意义的重绘)。 */
|
|
12
|
+
export declare function nearlyEqual(a: any, b: any, epsilon?: number): boolean;
|
|
13
|
+
/** 数字的默认展示格式:大数用千分位,小数最多保留 4 位有效数字。 */
|
|
14
|
+
export declare function formatNumber(value: any): string;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** 数值与数组工具。保持零依赖、可被 tree-shaking。 */
|
|
2
|
+
export declare function clamp(value: number, min: number, max: number): number;
|
|
3
|
+
export declare function isFiniteNumber(value: any): value is number;
|
|
4
|
+
export declare function isNil(value: any): boolean;
|
|
5
|
+
export declare function extent(values: number[]): [number, number];
|
|
6
|
+
/** 生成「整齐」的刻度步长:1/2/5 × 10^k。 */
|
|
7
|
+
export declare function niceStep(span: number, count: number): number;
|
|
8
|
+
export declare function niceDomain(domain: [number, number], count: number): [number, number];
|
|
9
|
+
/** 四舍五入到指定小数位,规避浮点误差(0.30000000000000004)。 */
|
|
10
|
+
export declare function round(value: number, digits?: number): number;
|
|
11
|
+
/** 判断两个数值 / 数组是否近似相等(用于避免无意义的重绘)。 */
|
|
12
|
+
export declare function nearlyEqual(a: any, b: any, epsilon?: number): boolean;
|
|
13
|
+
/** 数字的默认展示格式:大数用千分位,小数最多保留 4 位有效数字。 */
|
|
14
|
+
export declare function formatNumber(value: any): string;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 文本测量与排版。优先用真实 ctx.measureText,拿不到时退化为估算
|
|
3
|
+
* —— 小程序 / 单测里也可能没有可用的 2d 上下文。
|
|
4
|
+
*/
|
|
5
|
+
export interface TextMetricsLike {
|
|
6
|
+
width: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function measureTextWidth(ctx: any, text: string, fontSize: number, fontFamily: string): number;
|
|
9
|
+
/** 按最大宽度折行(按空格切分,超长单词硬切)。 */
|
|
10
|
+
export declare function wrapText(text: string, maxWidth: number, charWidth: number): string[];
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 文本测量与排版。优先用真实 ctx.measureText,拿不到时退化为估算
|
|
3
|
+
* —— 小程序 / 单测里也可能没有可用的 2d 上下文。
|
|
4
|
+
*/
|
|
5
|
+
export interface TextMetricsLike {
|
|
6
|
+
width: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function measureTextWidth(ctx: any, text: string, fontSize: number, fontFamily: string): number;
|
|
9
|
+
/** 按最大宽度折行(按空格切分,超长单词硬切)。 */
|
|
10
|
+
export declare function wrapText(text: string, maxWidth: number, charWidth: number): string[];
|
package/package.json
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
{
|
|
2
|
+
"author": "大漠穷秋",
|
|
3
|
+
"name": "@damoqiongqiu/ice-chart",
|
|
4
|
+
"version": "0.17.0",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"description": "基于 ice-render Canvas 引擎的交互式图表库:命中测试与事件派发由引擎承担,图表层只做「数据 ↔ 像素 ↔ 语义事件」。",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"chart",
|
|
9
|
+
"canvas",
|
|
10
|
+
"visualization",
|
|
11
|
+
"interaction",
|
|
12
|
+
"ice-render",
|
|
13
|
+
"dashboard",
|
|
14
|
+
"typescript"
|
|
15
|
+
],
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "git+https://github.com/ice-render/ice-chart.git"
|
|
19
|
+
},
|
|
20
|
+
"homepage": "https://github.com/ice-render/ice-chart#readme",
|
|
21
|
+
"bugs": {
|
|
22
|
+
"url": "https://github.com/ice-render/ice-chart/issues"
|
|
23
|
+
},
|
|
24
|
+
"type": "commonjs",
|
|
25
|
+
"module": "dist/index.mjs",
|
|
26
|
+
"types": "dist/types/index.d.ts",
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"import": {
|
|
30
|
+
"types": "./dist/types/index.d.mts",
|
|
31
|
+
"default": "./dist/index.mjs"
|
|
32
|
+
},
|
|
33
|
+
"require": {
|
|
34
|
+
"types": "./dist/types/index.d.ts",
|
|
35
|
+
"default": "./dist/index.cjs"
|
|
36
|
+
},
|
|
37
|
+
"default": "./dist/index.mjs"
|
|
38
|
+
},
|
|
39
|
+
"./dist/*": "./dist/*",
|
|
40
|
+
"./package.json": "./package.json"
|
|
41
|
+
},
|
|
42
|
+
"sideEffects": false,
|
|
43
|
+
"browser": "dist/index.umd.js",
|
|
44
|
+
"main": "dist/index.cjs",
|
|
45
|
+
"files": [
|
|
46
|
+
"dist/**/*"
|
|
47
|
+
],
|
|
48
|
+
"scripts": {
|
|
49
|
+
"start": "rollup -c -w --environment NODE_ENV:development",
|
|
50
|
+
"build": "npm run clean && npm run build:types && npm run build:js",
|
|
51
|
+
"build:js": "rollup -c --environment NODE_ENV:production",
|
|
52
|
+
"build:types": "tsc --emitDeclarationOnly && node scripts/emit-dmts.cjs",
|
|
53
|
+
"clean": "rimraf dist",
|
|
54
|
+
"pretty": "prettier src tests scripts --write",
|
|
55
|
+
"pretty:check": "prettier src tests scripts --check",
|
|
56
|
+
"types:check": "tsc --noEmit",
|
|
57
|
+
"test": "jest",
|
|
58
|
+
"test:coverage": "jest --coverage",
|
|
59
|
+
"lint": "eslint src tests --ext .ts,.js",
|
|
60
|
+
"lint:fix": "eslint src tests --ext .ts,.js --fix",
|
|
61
|
+
"examples:prepare": "node scripts/prepare-examples.cjs",
|
|
62
|
+
"examples:serve": "npm run examples:prepare && node scripts/serve-examples.cjs",
|
|
63
|
+
"audit:interactions": "node scripts/audit-interactions.mjs",
|
|
64
|
+
"audit:hover": "node scripts/hover-sweep.mjs",
|
|
65
|
+
"prepublishOnly": "npm run verify",
|
|
66
|
+
"verify": "npm run lint && npm run types:check && npm run build && npm test -- --runInBand"
|
|
67
|
+
},
|
|
68
|
+
"peerDependencies": {
|
|
69
|
+
"ice-render": "^1.4.7"
|
|
70
|
+
},
|
|
71
|
+
"devDependencies": {
|
|
72
|
+
"@babel/core": "^7.28.5",
|
|
73
|
+
"@babel/preset-env": "^7.28.5",
|
|
74
|
+
"@babel/preset-typescript": "^7.28.5",
|
|
75
|
+
"@rollup/plugin-babel": "^6.0.4",
|
|
76
|
+
"@rollup/plugin-commonjs": "^28.0.1",
|
|
77
|
+
"@rollup/plugin-json": "^6.1.0",
|
|
78
|
+
"@rollup/plugin-node-resolve": "^15.3.0",
|
|
79
|
+
"@rollup/plugin-strip": "^3.0.4",
|
|
80
|
+
"@rollup/plugin-terser": "^0.4.4",
|
|
81
|
+
"@types/jest": "^29.5.14",
|
|
82
|
+
"@typescript-eslint/eslint-plugin": "^7.18.0",
|
|
83
|
+
"@typescript-eslint/parser": "^7.18.0",
|
|
84
|
+
"babel-jest": "^29.7.0",
|
|
85
|
+
"eslint": "^8.57.1",
|
|
86
|
+
"ice-render": "^1.4.7",
|
|
87
|
+
"jest": "^29.7.0",
|
|
88
|
+
"jest-environment-jsdom": "^29.7.0",
|
|
89
|
+
"playwright": "^1.63.0",
|
|
90
|
+
"prettier": "^3.4.1",
|
|
91
|
+
"rimraf": "^6.0.1",
|
|
92
|
+
"rollup": "^3.29.5",
|
|
93
|
+
"rollup-plugin-license": "^3.5.2",
|
|
94
|
+
"rollup-plugin-visualizer": "^5.14.0",
|
|
95
|
+
"typescript": "^5.9.3"
|
|
96
|
+
},
|
|
97
|
+
"publishConfig": {
|
|
98
|
+
"access": "public"
|
|
99
|
+
}
|
|
100
|
+
}
|