waveform-analysis 0.1.27 → 0.1.29
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/README.md +57 -33
- package/dist/index.cjs +1 -1
- package/dist/index.js +451 -491
- package/dist/types/components/core/layout.d.ts +2 -4
- package/dist/types/components/core/trackLayoutBuilder.d.ts +2 -1
- package/dist/types/components/core/types.d.ts +0 -3
- package/dist/types/demo/types.d.ts +9 -0
- package/dist/types/demo/useDemoXAxisLabelControls.d.ts +32 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/types/chart.d.ts +15 -0
- package/dist/types/types/index.d.ts +1 -1
- package/dist/types/utils/formatters.d.ts +12 -10
- package/dist/types/utils/index.d.ts +1 -1
- package/package.json +1 -1
- package/src/App.vue +7 -1
- package/src/components/core/layout.test.ts +7 -8
- package/src/components/core/layout.ts +10 -20
- package/src/components/core/trackLayoutBuilder.ts +24 -26
- package/src/components/core/types.ts +0 -3
- package/src/components/core/useWaveformLayout.ts +6 -27
- package/src/components/interaction/WaveformTooltip.test.ts +16 -0
- package/src/components/rendering/WaveformTrackAxes.vue +10 -29
- package/src/components/waveformChartCases/compactAndSharedHover.test.ts +7 -7
- package/src/components/waveformChartCases/dataAndHoverPerformance.test.ts +2 -2
- package/src/components/waveformChartCases/dataLifecycle.test.ts +4 -4
- package/src/components/waveformChartCases/frameGridAndFormatting.test.ts +97 -23
- package/src/components/waveformChartCases/interactionAndAnnotationCreation.test.ts +1 -1
- package/src/components/waveformChartCases/layoutAndDomains.test.ts +15 -15
- package/src/components/waveformChartCases/multiAxisAndPagination.test.ts +8 -8
- package/src/components/waveformChartCases/presentationAndAxes.test.ts +6 -4
- package/src/components/waveformChartCases/viewportConstraintsAndReset.test.ts +8 -8
- package/src/components/waveformChartCases/wheelZoomOut.test.ts +3 -3
- package/src/demo/DemoGridFrameControls.vue +70 -0
- package/src/demo/types.ts +9 -0
- package/src/demo/useDemoXAxisLabelControls.ts +77 -0
- package/src/demo/xAxisLabelControls.test.ts +86 -0
- package/src/index.ts +3 -0
- package/src/styles.css +8 -0
- package/src/types/chart.ts +21 -0
- package/src/types/index.ts +3 -0
- package/src/utils/formatters.test.ts +72 -31
- package/src/utils/formatters.ts +55 -45
- package/src/utils/index.ts +1 -1
package/README.md
CHANGED
|
@@ -96,41 +96,41 @@ const data = ref<WaveformData>({
|
|
|
96
96
|
|
|
97
97
|
### Props
|
|
98
98
|
|
|
99
|
-
| Prop | 类型 | 默认值 | 说明
|
|
100
|
-
| --------------------------------- | ------------------------------------------- | ------------------------------------------------------- |
|
|
101
|
-
| `data` | `WaveformData` | 必填 | 波形数据
|
|
102
|
-
| `displayMode` | `'independent' \| 'separated' \| 'compact'` | `'independent'` | 图框布局
|
|
103
|
-
| `overlayMode` | `'single-axis' \| 'multi-axis'` | `'single-axis'` | 叠加曲线的 Y 轴模式
|
|
104
|
-
| `timeUnit` | `'s' \| 'ms'` | `'ms'` | 坐标轴和 tooltip 展示单位
|
|
105
|
-
| `xLabel` / `yLabel` | `string` | `时间(timeUnit)` / `'幅值'` | 坐标轴名称
|
|
106
|
-
| `lineColor` | `string` | `'#0960bd'` | 单波形默认颜色
|
|
107
|
-
| `width` / `height` | `number` | 自适应 | 组件总尺寸,单位为 CSS 像素
|
|
108
|
-
| `zoomable` / `showTooltip` | `boolean` | `true` / `true` | 缩放和数值 tooltip 开关
|
|
109
|
-
| `pannable` | `boolean` | `false` | 空格拖拽平移开关
|
|
110
|
-
| `minZoomSpan` | `number` | 未设置 | 最小缩放跨度,使用原始 X 数据单位
|
|
111
|
-
| `minVisiblePoints` | `number` | `0` | 缩放后至少保留的不同 X 坐标数
|
|
112
|
-
| `initialXDomain` | `[number, number]` | 未设置 | 所有图框的初始 X 范围
|
|
113
|
-
| `initialXDomains` | `Record<string, [number, number]>` | 未设置 | 按 track/series ID 配置初始范围
|
|
114
|
-
| `yDomain` | `[number, number]` | 未设置 | 所有波形的固定 Y 轴范围
|
|
115
|
-
| `yDomains` | `Record<string, [number, number]>` | 未设置 | 按 track/series ID 配置固定范围
|
|
116
|
-
| `grid` | `WaveformGridOptions` | `{ rowCount: 2, columnCount: 1, showPagination: true }` | 网格和分页
|
|
117
|
-
| `axes` | `WaveformAxesOptions` | 轴线均显示 | X/Y
|
|
118
|
-
| `rendering` | `WaveformRenderingOptions` | `{}` | 降采样与点/误差棒间距
|
|
119
|
-
| `title` / `legend` / `frameStyle` | 对应公开类型 | 未设置 | 标题、图例和图框样式
|
|
120
|
-
| `frameNumber` | `string \| number` | 未设置 | 图框水印内容
|
|
121
|
-
| `zeroLine` | `WaveformZeroLineOptions` | `{ visible: false }` | 零值参考线显隐与样式
|
|
122
|
-
| `cleanView` | `boolean` | `false` | 保留波形、图框和刻度的净图模式
|
|
123
|
-
| `presentationMode` | `boolean` | `false` | 禁用绘图区交互的展示模式
|
|
124
|
-
| `annotations` | `WaveformAnnotation[]` | `[]` | 受控标注数据
|
|
125
|
-
| `annotationsVisible` | `boolean` | `true` | 标注图层显隐
|
|
126
|
-
| `interactionMode` | `'zoom' \| 'annotation'` | `'zoom'` | 左键交互模式
|
|
127
|
-
| `hiddenSeriesIds` | `string[]` | 未设置 | 受控隐藏系列 ID
|
|
128
|
-
| `defaultHiddenSeriesIds` | `string[]` | `[]` | 非受控模式的初始隐藏系列
|
|
99
|
+
| Prop | 类型 | 默认值 | 说明 |
|
|
100
|
+
| --------------------------------- | ------------------------------------------- | ------------------------------------------------------- | ---------------------------------- |
|
|
101
|
+
| `data` | `WaveformData` | 必填 | 波形数据 |
|
|
102
|
+
| `displayMode` | `'independent' \| 'separated' \| 'compact'` | `'independent'` | 图框布局 |
|
|
103
|
+
| `overlayMode` | `'single-axis' \| 'multi-axis'` | `'single-axis'` | 叠加曲线的 Y 轴模式 |
|
|
104
|
+
| `timeUnit` | `'s' \| 'ms'` | `'ms'` | 坐标轴和 tooltip 展示单位 |
|
|
105
|
+
| `xLabel` / `yLabel` | `string` | `时间(timeUnit)` / `'幅值'` | 坐标轴名称 |
|
|
106
|
+
| `lineColor` | `string` | `'#0960bd'` | 单波形默认颜色 |
|
|
107
|
+
| `width` / `height` | `number` | 自适应 | 组件总尺寸,单位为 CSS 像素 |
|
|
108
|
+
| `zoomable` / `showTooltip` | `boolean` | `true` / `true` | 缩放和数值 tooltip 开关 |
|
|
109
|
+
| `pannable` | `boolean` | `false` | 空格拖拽平移开关 |
|
|
110
|
+
| `minZoomSpan` | `number` | 未设置 | 最小缩放跨度,使用原始 X 数据单位 |
|
|
111
|
+
| `minVisiblePoints` | `number` | `0` | 缩放后至少保留的不同 X 坐标数 |
|
|
112
|
+
| `initialXDomain` | `[number, number]` | 未设置 | 所有图框的初始 X 范围 |
|
|
113
|
+
| `initialXDomains` | `Record<string, [number, number]>` | 未设置 | 按 track/series ID 配置初始范围 |
|
|
114
|
+
| `yDomain` | `[number, number]` | 未设置 | 所有波形的固定 Y 轴范围 |
|
|
115
|
+
| `yDomains` | `Record<string, [number, number]>` | 未设置 | 按 track/series ID 配置固定范围 |
|
|
116
|
+
| `grid` | `WaveformGridOptions` | `{ rowCount: 2, columnCount: 1, showPagination: true }` | 网格和分页 |
|
|
117
|
+
| `axes` | `WaveformAxesOptions` | 轴线均显示 | X/Y 轴基线显隐与 X 轴 label 格式化 |
|
|
118
|
+
| `rendering` | `WaveformRenderingOptions` | `{}` | 降采样与点/误差棒间距 |
|
|
119
|
+
| `title` / `legend` / `frameStyle` | 对应公开类型 | 未设置 | 标题、图例和图框样式 |
|
|
120
|
+
| `frameNumber` | `string \| number` | 未设置 | 图框水印内容 |
|
|
121
|
+
| `zeroLine` | `WaveformZeroLineOptions` | `{ visible: false }` | 零值参考线显隐与样式 |
|
|
122
|
+
| `cleanView` | `boolean` | `false` | 保留波形、图框和刻度的净图模式 |
|
|
123
|
+
| `presentationMode` | `boolean` | `false` | 禁用绘图区交互的展示模式 |
|
|
124
|
+
| `annotations` | `WaveformAnnotation[]` | `[]` | 受控标注数据 |
|
|
125
|
+
| `annotationsVisible` | `boolean` | `true` | 标注图层显隐 |
|
|
126
|
+
| `interactionMode` | `'zoom' \| 'annotation'` | `'zoom'` | 左键交互模式 |
|
|
127
|
+
| `hiddenSeriesIds` | `string[]` | 未设置 | 受控隐藏系列 ID |
|
|
128
|
+
| `defaultHiddenSeriesIds` | `string[]` | `[]` | 非受控模式的初始隐藏系列 |
|
|
129
129
|
|
|
130
130
|
所有公开类型均可从包入口导入,例如 `WaveformData`、`WaveformSeries`、
|
|
131
131
|
`WaveformAnnotation`、`WaveformLineStyle`、`WaveformRenderingOptions`、
|
|
132
|
-
`WaveformAxesOptions`、`WaveformZeroLineOptions
|
|
133
|
-
`WaveformGridTrackLines`。
|
|
132
|
+
`WaveformAxesOptions`、`WaveformXAxisLabelFormatter`、`WaveformZeroLineOptions`、
|
|
133
|
+
`WaveformGridOptions` 和 `WaveformGridTrackLines`。
|
|
134
134
|
|
|
135
135
|
### 数据结构
|
|
136
136
|
|
|
@@ -508,6 +508,30 @@ scale 定位零线:
|
|
|
508
508
|
/>
|
|
509
509
|
```
|
|
510
510
|
|
|
511
|
+
X 轴刻度和左右端点默认先按 `timeUnit` 转换为秒或毫秒,再显示为无千分位、无科学计数法的
|
|
512
|
+
完整普通十进制值,不会四舍五入为整数。可通过 `axes.x.labelFormatter` 对显示值做运算和格式化:
|
|
513
|
+
|
|
514
|
+
```vue
|
|
515
|
+
<WaveformChart
|
|
516
|
+
:data="chartData"
|
|
517
|
+
:axes="{
|
|
518
|
+
x: {
|
|
519
|
+
labelFormatter: (value, context) =>
|
|
520
|
+
`${context.kind === 'tick' ? '' : '[' + context.kind + '] '}${(value / 1000).toFixed(3)}`,
|
|
521
|
+
},
|
|
522
|
+
}"
|
|
523
|
+
/>
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
formatter 首参是已按 `timeUnit` 换算的数值;上下文包含 `kind`(`tick`、`start` 或 `end`)、
|
|
527
|
+
原始 `rawValue`、`timeUnit`、原始可视域 `domain` 和换算后的 `displayDomain`。formatter 只决定
|
|
528
|
+
label 文本,不改变刻度位置、源数据、缩放域或事件中的原始 X 坐标。
|
|
529
|
+
|
|
530
|
+
Demo 左侧“网格与轴线”支持直接切换数值或固定时间格式。数值模式可设置运算倍率和小数位数;
|
|
531
|
+
固定时间模式输出 `YYYY-MM-DD HH:mm:ss[.SSS]`,可选择中国标准时间、本地时区或 UTC,并控制
|
|
532
|
+
是否显示毫秒。时间戳数据仍按组件的秒坐标契约传入,使用默认毫秒显示单位时 formatter 会收到
|
|
533
|
+
可直接传给 `Date` 的毫秒时间戳。
|
|
534
|
+
|
|
511
535
|
`interactionMode` 可选 `zoom` 或 `annotation`,默认使用缩放模式。右键绘图区可直接打开
|
|
512
536
|
标注编辑器,无需切换交互模式。`zoomable`、`pannable` 和 `showTooltip` 可分别控制缩放、
|
|
513
537
|
空格拖拽平移和 tooltip;平移默认关闭。
|
|
@@ -603,7 +627,7 @@ async function importAnnotationFile(file: File) {
|
|
|
603
627
|
字段无效时会抛出 `TypeError`,不会返回部分结果。导入包含未知 `seriesId` 的标注是允许的,
|
|
604
628
|
对应曲线加载后会恢复显示。文件选择、错误提示和下载由业务层实现。
|
|
605
629
|
|
|
606
|
-
X
|
|
630
|
+
X 轴刻度和左右端点先按 `timeUnit` 转换为秒或毫秒,再显示为不带分组符和科学计数法的完整普通十进制值,并可通过 `axes.x.labelFormatter` 自定义。Y 轴会根据完整显示域选择格式:最大绝对值在 `[0.01, 100)` 时显示两位普通小数;大于等于 `100`,或大于 `0` 且小于 `0.01` 时,刻度显示两位缩放值,并在轴末端单独显示共享倍率 `E±NN`,多 Y 轴分别计算倍率。tooltip 使用最多 4 位小数的本地化普通数字并省略无意义尾零;标注编辑器的 X 坐标跟随 `timeUnit` 并固定 3 位小数,Y 坐标显示完整普通十进制。所有格式化都只发生在展示层,内部坐标值保持原始精度。
|
|
607
631
|
标注框默认布局在采样点正上方,只做绘图区边界裁剪;文本框通过连接箭头指向标注位置,多个标注重叠时可通过拖动手动避让。
|
|
608
632
|
|
|
609
633
|
## 事件
|