waveform-analysis 0.1.38 → 0.1.40
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 +43 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +341 -288
- package/dist/types/components/WaveformChart.vue.d.ts +1 -0
- package/dist/types/components/core/layout.d.ts +1 -1
- package/dist/types/components/core/useWaveformChartController.d.ts +1 -0
- package/dist/types/components/core/useWaveformChartLifecycle.d.ts +3 -0
- package/dist/types/components/interaction/useWaveformViewport.d.ts +1 -0
- package/dist/types/components/interaction/viewportDomain.d.ts +21 -0
- package/dist/types/utils/formatters.d.ts +1 -0
- package/package.json +1 -1
- package/src/components/WaveformChart.vue +1 -0
- package/src/components/core/layout.ts +6 -3
- package/src/components/core/trackLayoutBuilder.ts +6 -1
- package/src/components/core/useWaveformChartController.ts +3 -0
- package/src/components/core/useWaveformChartLifecycle.ts +29 -19
- package/src/components/core/useWaveformLayout.ts +5 -1
- package/src/components/interaction/useWaveformViewport.ts +16 -0
- package/src/components/interaction/viewportDomain.ts +60 -0
- package/src/components/rendering/WaveformTrackAxes.vue +2 -1
- package/src/components/waveformChartCases/dataLifecycle.test.ts +6 -0
- package/src/components/waveformChartCases/multiAxisAndPagination.test.ts +8 -1
- package/src/components/waveformChartCases/viewportReset.test.ts +102 -0
- package/src/utils/formatters.test.ts +9 -0
- package/src/utils/formatters.ts +6 -3
package/README.md
CHANGED
|
@@ -253,6 +253,20 @@ X 轴且包含多个轨道时使用按稳定 track ID 索引的 `yRanges`。平
|
|
|
253
253
|
重置组件内部缩放并触发 `zoom-reset`;调用方应在事件中取消区间请求并恢复首次完整数据。
|
|
254
254
|
外部重置按钮也可以通过模板引用调用组件公开的 `resetViewport()` 方法,然后执行相同的数据恢复逻辑。
|
|
255
255
|
|
|
256
|
+
宿主在替换局部数据后如果需要恢复之前保存的 X 视口,可以调用公开的
|
|
257
|
+
`setViewportDomain(domain, trackIndex?)`。传入范围使用原始秒坐标,组件会按当前数据边界、
|
|
258
|
+
`xDomainStrategy`、`minZoomSpan` 和 `minVisiblePoints` 重新约束;无效范围会被忽略。共享
|
|
259
|
+
X 轴模式直接传入一个范围,独立模式可以按实际 `trackIndex` 分别设置(省略 `trackIndex`
|
|
260
|
+
时应用到当前所有图框):
|
|
261
|
+
|
|
262
|
+
```ts
|
|
263
|
+
chartRef.value?.setViewportDomain(previousDomain)
|
|
264
|
+
chartRef.value?.setViewportDomain(trackDomain, trackIndex)
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
建议在 `data` 引用更新后调用该方法。组件也会在数据引用变更时重投影当前内部视口,避免新
|
|
268
|
+
数据边界使旧 transform 失效;`resetViewport(trackIndex?)` 的既有行为保持不变。
|
|
269
|
+
|
|
256
270
|
没有显式配置初始范围时,可以通过 `xDomainStrategy` 将数据范围扩展为便于阅读的视口端点。
|
|
257
271
|
默认的 `{ type: 'data' }` 保持数据最小值和最大值不变;`type: 'nice'` 使用固定刻度数量计算
|
|
258
272
|
易读边界,且只扩展视口,不修改原始点位、tooltip、标注或缩放事件值:
|
|
@@ -284,6 +298,34 @@ X 轴且包含多个轨道时使用按稳定 track ID 索引的 `yRanges`。平
|
|
|
284
298
|
Tooltip 每个系列按 `炮号:通道 (x:值 y:值)` 格式显示。`WaveformSeries.shotNo` 为空或未提供时,
|
|
285
299
|
炮号显示为“未配置炮号”;Tooltip 不显示单位和误差附加文本。
|
|
286
300
|
|
|
301
|
+
### 纵轴单位
|
|
302
|
+
|
|
303
|
+
可在每个 `WaveformSeries` 上设置可选的 `unit`,单位会显示在对应 Y 轴的顶部刻度中:
|
|
304
|
+
|
|
305
|
+
```ts
|
|
306
|
+
const chartData = {
|
|
307
|
+
kind: 'series',
|
|
308
|
+
series: [
|
|
309
|
+
{
|
|
310
|
+
id: 'voltage',
|
|
311
|
+
name: '电压',
|
|
312
|
+
unit: 'V',
|
|
313
|
+
data: {
|
|
314
|
+
kind: 'points',
|
|
315
|
+
points: [
|
|
316
|
+
{ x: 0, y: 1200 },
|
|
317
|
+
{ x: 1, y: 3000 },
|
|
318
|
+
],
|
|
319
|
+
},
|
|
320
|
+
},
|
|
321
|
+
],
|
|
322
|
+
} satisfies WaveformData
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
当 Y 轴使用科学计数法时,顶部刻度格式为 `E+03 (V) 3`;未使用科学计数法时,格式为
|
|
326
|
+
`(V) 3`。单位为空、全为空白或未配置时,不显示 `(单位)`,例如仍显示为 `E+03 3` 或 `3`。
|
|
327
|
+
多 Y 轴模式下,每根轴使用该轴首个 series 的单位。
|
|
328
|
+
|
|
287
329
|
### 线型、点型与误差棒
|
|
288
330
|
|
|
289
331
|
每条序列可以独立设置连线方式、数据点符号和误差棒:
|
|
@@ -655,7 +697,7 @@ async function importAnnotationFile(file: File) {
|
|
|
655
697
|
字段无效时会抛出 `TypeError`,不会返回部分结果。导入包含未知 `seriesId` 的标注是允许的,
|
|
656
698
|
对应曲线加载后会恢复显示。文件选择、错误提示和下载由业务层实现。
|
|
657
699
|
|
|
658
|
-
X 轴刻度和左右端点先按 `timeUnit` 转换为秒或毫秒,再显示为不带分组符和科学计数法的完整普通十进制值,并可通过 `axes.x.labelFormatter` 自定义。Y 轴会根据完整显示域选择格式:最大绝对值在 `[0.01, 100)` 时显示两位普通小数;大于等于 `100`,或大于 `0` 且小于 `0.01`
|
|
700
|
+
X 轴刻度和左右端点先按 `timeUnit` 转换为秒或毫秒,再显示为不带分组符和科学计数法的完整普通十进制值,并可通过 `axes.x.labelFormatter` 自定义。Y 轴会根据完整显示域选择格式:最大绝对值在 `[0.01, 100)` 时显示两位普通小数;大于等于 `100`,或大于 `0` 且小于 `0.01` 时,刻度显示两位缩放值,并在顶部刻度单独显示共享倍率 `E±NN`。如果 series 配置了 `unit`,顶部刻度会在倍率后追加 `(单位)`;没有科学计数法时也会显示 `(单位)`,多 Y 轴分别使用对应轴首个 series 的单位。tooltip 使用最多 4 位小数的本地化普通数字并省略无意义尾零;标注编辑器的 X 坐标跟随 `timeUnit` 并固定 3 位小数,Y 坐标显示完整普通十进制。所有格式化都只发生在展示层,内部坐标值保持原始精度。
|
|
659
701
|
标注框默认布局在采样点正上方,只做绘图区边界裁剪;文本框通过连接箭头指向标注位置,多个标注重叠时可通过拖动手动避让。
|
|
660
702
|
|
|
661
703
|
## 事件
|