waveform-analysis 0.1.72 → 0.1.74

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 (39) hide show
  1. package/README.md +34 -13
  2. package/dist/index.cjs +2 -2
  3. package/dist/index.js +2635 -2547
  4. package/dist/style.css +1 -1
  5. package/dist/types/components/annotation/useWaveformChartAnnotations.d.ts +0 -1
  6. package/dist/types/components/core/layout.d.ts +4 -2
  7. package/dist/types/components/core/types.d.ts +2 -0
  8. package/dist/types/components/core/useWaveformChartController.d.ts +0 -1
  9. package/dist/types/components/core/useWaveformData.d.ts +1 -0
  10. package/dist/types/components/core/yAxisPadding.d.ts +1 -1
  11. package/dist/types/components/core/yAxisTitleLayout.d.ts +1 -1
  12. package/dist/types/components/interaction/useExtremaTickViewport.d.ts +5 -0
  13. package/dist/types/components/rendering/WaveformTrackAxes.vue.d.ts +1 -0
  14. package/dist/types/data/sx2Channel.d.ts +10 -0
  15. package/dist/types/demo/types.d.ts +2 -0
  16. package/dist/types/types/chart.d.ts +4 -0
  17. package/package.json +1 -1
  18. package/src/App.vue +6 -0
  19. package/src/components/WaveformChartView.vue +0 -3
  20. package/src/components/annotation/useWaveformChartAnnotations.ts +7 -23
  21. package/src/components/controls/WaveformToolbar.vue +19 -20
  22. package/src/components/core/layout.ts +52 -26
  23. package/src/components/core/trackLayoutBuilder.ts +16 -6
  24. package/src/components/core/types.ts +2 -0
  25. package/src/components/core/useWaveformData.ts +2 -0
  26. package/src/components/core/useWaveformLayout.ts +10 -0
  27. package/src/components/core/yAxisLayoutMetrics.ts +24 -15
  28. package/src/components/core/yAxisPadding.ts +28 -8
  29. package/src/components/core/yAxisTitleLayout.ts +9 -48
  30. package/src/components/interaction/useExtremaTickViewport.ts +43 -0
  31. package/src/components/rendering/WaveformTrack.vue +1 -0
  32. package/src/components/rendering/WaveformTrackAxes.vue +18 -0
  33. package/src/components/rendering/yAxisTickVisibility.ts +77 -16
  34. package/src/data/simulatedWaveforms.ts +10 -0
  35. package/src/data/sx2Channel.ts +315 -0
  36. package/src/demo/DemoYAxisPaddingControls.vue +15 -0
  37. package/src/demo/types.ts +2 -0
  38. package/src/index.ts +1 -0
  39. package/src/types/chart.ts +4 -0
package/README.md CHANGED
@@ -10,6 +10,9 @@
10
10
 
11
11
  线上 Demo:[波形分析组件在线示例](https://lqycustomsite.online/waveform-analysis/)。
12
12
 
13
+ 综合示例第 11 个图框展示实测电压通道 `SX2_7_01`(炮号 `13300`),保留全部 1,000 个
14
+ 原始采样点。默认每页四个图框,在第 3 页查看;原始毫秒时间转换为秒坐标后传入组件。
15
+
13
16
  ## 特性
14
17
 
15
18
  - Vue 3 Composition API + TypeScript,支持按需导入 `WaveformChart`
@@ -516,9 +519,9 @@ const chartData = {
516
519
  多值轴模式的右侧 Y 轴将指数放在数值右侧,例如 `3 E+03`,不追加单位;不使用科学计数法时显示为 `3 (V)`。
517
520
  多 Y 轴模式下,每根轴使用该轴首个 series 的单位。
518
521
 
519
- 左侧通道名称使用 12px、字重 600 的加粗文字。默认布局按字符宽度估算旋转名称的垂直范围,
520
- 仅对可能与名称相交的刻度文字(含文字高度和安全间距)自动计算间距;不相交的顶部单位
521
- 刻度不会推远名称。同一列中相同轴位使用逐道计算的最大间距,保证多道名称垂直对齐。
522
+ 左侧通道名称使用 12px、字重 600 的加粗文字。名称间距按该 Y 轴最长的刻度标签计算,
523
+ 包含最值刻度及实际显示的单位,不随名称长度或图框高度变化;科学计数法倍率不参与
524
+ 名称间距计算,倍率后的数值仍参与计算;轴外留白按完整刻度标签(含倍率)计算,防止越界。同一列中相同轴位使用逐道计算的最大间距,保证多道名称垂直对齐。
522
525
  图框高度不足 80px 时也不会隔道隐藏名称;例如 5×1 布局中,每个符合名称展示规则的图框
523
526
  仍显示完整通道名称,允许长名称互相重叠。净图模式及单位展示模式的显隐规则仍然生效。
524
527
 
@@ -581,8 +584,11 @@ const series = {
581
584
  `separated` 或 `compact` 控制图框布局和 X 轴共享方式;未共享 `trackId` 的单曲线
582
585
  图框不会因为切换叠加方式而改变。
583
586
 
584
- `compact` 多道紧密模式会显示每一道 Y 轴的最高刻度;顶部和底部刻度文字与普通
585
- Y 轴刻度使用相同的对齐方式,不额外向本道内部偏移。
587
+ `compact` 多道紧密模式仅在最高刻度标签与最低刻度标签重叠时隐藏最高标签,
588
+ 优先保留最低标签;第一行以及其他没有冲突的最高标签正常显示。刻度线、网格、
589
+ 数据范围和文字对齐位置不变,科学计数法倍率与单位随最高的可见标签显示。
590
+ 上方留白区域内的原始最大值标记仍保留,并继续按标签碰撞规则处理。
591
+ 其他布局模式不应用这项边界标签避碰规则。
586
592
 
587
593
  ### 绘图区域尺寸
588
594
 
@@ -844,8 +850,9 @@ Demo 左侧“网格与轴线”支持直接切换数值或固定时间格式。
844
850
  是否显示毫秒。时间戳数据仍按组件的秒坐标契约传入,使用默认毫秒显示单位时 formatter 会收到
845
851
  可直接传给 `Date` 的毫秒时间戳。
846
852
 
847
- `interactionMode` 可选 `zoom`、`pan`、`annotation` 或 `none`,默认使用缩放模式。除 `none` 外,右键绘图区可直接打开
848
- 标注编辑器。`zoomable`、`pannable` 和 `showTooltip` 分别控制缩放、平移和 tooltip;平移默认关闭,
853
+ `interactionMode` 可选 `zoom`、`pan`、`annotation` 或 `none`,默认使用缩放模式。在内置工具栏选择标注或设置
854
+ `interactionMode="annotation"` 后,左键单击绘图区可打开标注编辑器,右键不再触发新增标注。
855
+ `zoomable`、`pannable` 和 `showTooltip` 分别控制缩放、平移和 tooltip;平移默认关闭,
849
856
  启用后在 `pan` 模式直接拖拽,`zoom` 模式按 Space 临时平移。传入模式 prop 时请接入更新回传,详见工具栏章节。
850
857
 
851
858
  展示场景可启用 `presentationMode`,统一禁用绘图区的 tooltip、缩放、平移、双击复位和
@@ -974,7 +981,7 @@ const interactionMode = ref<WaveformInteractionMode>('zoom')
974
981
  </template>
975
982
  ```
976
983
 
977
- 标注默认显示。右键绘图区任意位置即可弹出居中编辑器,标注会吸附到当前 X 位置最近的真实采样点,右键已有标注可以编辑或删除。
984
+ 标注默认显示。标注模式下左键单击绘图区任意位置即可弹出居中编辑器,标注会吸附到当前 X 位置最近的真实采样点,右键已有标注可以编辑或删除。
978
985
  标注框可以直接拖动进行手动避让,拖动只改变标签框位置,不会改变 `x/y` 数据锚点;偏移会以 `labelOffsetX/labelOffsetY` 像素字段保存在标注中。标注文本最多 40 个字符,边框色、文字色和背景色均支持取色与透明度调整。组件只负责内存中的受控数据,
979
986
  业务层负责会话或后端持久化。
980
987
 
@@ -1266,7 +1273,7 @@ async function exportSvg(chart: WaveformChartHandle): Promise<Blob | undefined>
1266
1273
  配置支持响应式更新,适用于单轴和多轴模式的左右 Y 轴名称,不影响刻度数字、图例或 X 轴文字。
1267
1274
  字号参与名称与刻度之间的间距及图表边距计算;名称背景保持透明。
1268
1275
 
1269
- ### Y 轴上下留白与最大值刻度
1276
+ ### Y 轴上下留白与极值刻度
1270
1277
 
1271
1278
  组件统一计算自动 Y 范围留白,调用方无需修改数据或自行设置扩展后的 `yDomain`:
1272
1279
 
@@ -1292,8 +1299,22 @@ const axes: WaveformAxesOptions = {
1292
1299
  nice 在添加留白后执行,可能进一步扩域,关闭留白不等于关闭 nice。
1293
1300
  常量沿用非零范围回退后计算跨度;误差棒开启时包含其端点;单轴合并范围,多轴分别计算。
1294
1301
 
1295
- 上方有效留白开启后,组件显示原始最大值的刻度和标签,常量标记仍为原始值。
1296
- 相同值刻度合并;最大值标签优先,隐藏距离不足 4px 的相邻普通标签;过近的普通短刻度及
1302
+ `axes.y.maximumTickVisible` 和 `axes.y.minimumTickVisible` 分别控制原始最大值、最小值的
1303
+ 额外刻度线和标签,默认都为 `true`。两个开关与上下留白独立,设为 `false` 隐藏对应的
1304
+ 额外最值刻度;关闭留白后仍显示域内已开启的最值。
1305
+ 普通等距刻度不受开关影响,即使某个普通刻度恰好等于最值,也仍正常显示。
1306
+ 支持响应式切换,不改变数据、Y 轴范围、缩放视口或 tooltip。
1307
+
1308
+ ```vue
1309
+ <!-- 只显示最大值的额外刻度 -->
1310
+ <WaveformChart :axes="{ y: { maximumTickVisible: true, minimumTickVisible: false } }" />
1311
+ ```
1312
+
1313
+ 常量标记仍为原始值且最大值、最小值合并为一个刻度,误差棒开启时极值包含其端点。
1314
+ 相同值刻度合并;极值标签优先,隐藏距离不足 4px 的相邻普通标签;过近的普通短刻度及
1297
1315
  关联水平网格线也会隐藏,图框边框始终保留。不会移动数值位置或为避让扩大范围。
1298
- 手动视口中仅显示域内的最大值,固定范围和仅下方留白不生成特殊最大值标记。
1299
- Demo 的“Y 轴留白”配置区默认显式启用上下各 10%,与组件省略配置时的默认值不同。
1316
+ 最小值与最大值标签重叠时优先保留最小值。手动视口或固定范围中仅显示域内的极值,
1317
+ 不会为显示最值而扩展范围。同轴取可见系列的共同最值,多轴分别计算,使用完整原始数据。
1318
+ Demo 的“Y 轴留白”配置区默认显式启用上下各 10%,与组件省略配置时的默认值不同;
1319
+ “显示最大值刻度”和“显示最小值刻度”默认都开启,可分别切换。
1320
+ 原 `extremaTicksVisible` 总开关已移除,请改用上述两个独立配置项。