waveform-analysis 0.1.65 → 0.1.66

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 (47) hide show
  1. package/README.md +23 -3
  2. package/dist/index.cjs +1 -1
  3. package/dist/index.js +705 -617
  4. package/dist/types/components/WaveformChart.vue.d.ts +3 -2
  5. package/dist/types/components/core/constants.d.ts +2 -0
  6. package/dist/types/components/core/trackLayoutBuilder.d.ts +1 -0
  7. package/dist/types/components/core/types.d.ts +2 -1
  8. package/dist/types/components/core/useWaveformChartController.d.ts +3 -0
  9. package/dist/types/components/core/useWaveformPresentation.d.ts +2 -0
  10. package/dist/types/components/core/waveformChartTypes.d.ts +3 -1
  11. package/dist/types/components/core/yAxisTitleLayout.d.ts +4 -0
  12. package/dist/types/components/interaction/integerZoom.d.ts +12 -0
  13. package/dist/types/components/interaction/viewportDomain.d.ts +1 -0
  14. package/dist/types/components/interaction/zoomConstraints.d.ts +2 -1
  15. package/dist/types/components/rendering/WaveformTrack.vue.d.ts +2 -6
  16. package/dist/types/components/rendering/WaveformTrackBackdrop.vue.d.ts +0 -4
  17. package/dist/types/components/rendering/WaveformZeroLines.vue.d.ts +12 -0
  18. package/dist/types/demo/types.d.ts +3 -0
  19. package/dist/types/index.d.ts +1 -0
  20. package/dist/types/types/chart.d.ts +4 -0
  21. package/package.json +1 -1
  22. package/src/App.vue +6 -0
  23. package/src/components/WaveformChart.vue +1 -0
  24. package/src/components/core/constants.ts +2 -0
  25. package/src/components/core/trackLayoutBuilder.ts +26 -56
  26. package/src/components/core/types.ts +2 -0
  27. package/src/components/core/useWaveformChartLifecycle.ts +1 -1
  28. package/src/components/core/useWaveformLayout.ts +32 -16
  29. package/src/components/core/useWaveformPresentation.ts +10 -0
  30. package/src/components/core/waveformChartTypes.ts +3 -0
  31. package/src/components/core/yAxisTitleLayout.ts +78 -0
  32. package/src/components/interaction/integerZoom.ts +64 -0
  33. package/src/components/interaction/useWaveformViewport.ts +8 -12
  34. package/src/components/interaction/useWaveformZoom.ts +6 -4
  35. package/src/components/interaction/viewportDomain.ts +12 -0
  36. package/src/components/interaction/zoomConstraints.ts +7 -5
  37. package/src/components/rendering/WaveformTrack.vue +11 -4
  38. package/src/components/rendering/WaveformTrackAxes.vue +1 -1
  39. package/src/components/rendering/WaveformTrackBackdrop.vue +2 -34
  40. package/src/components/rendering/WaveformZeroLines.vue +53 -0
  41. package/src/demo/DemoChartHost.vue +1 -0
  42. package/src/demo/DemoGridFrameControls.vue +12 -0
  43. package/src/demo/DemoViewControls.vue +4 -0
  44. package/src/demo/types.ts +3 -0
  45. package/src/index.ts +1 -0
  46. package/src/styles.css +3 -3
  47. package/src/types/chart.ts +4 -0
package/README.md CHANGED
@@ -98,6 +98,7 @@ const data = ref<WaveformData>({
98
98
  | `zoomable` / `showTooltip` | `boolean` | `true` / `true` | 缩放和数值 tooltip 开关 |
99
99
  | `pannable` | `boolean` | `false` | 空格拖拽平移开关 |
100
100
  | `minZoomSpan` | `number` | 未设置 | 最小缩放跨度,使用原始 X 数据单位 |
101
+ | `integerZoom` | `boolean` | `false` | 缩放范围按 X 轴显示单位对齐整数 |
101
102
  | `minVisiblePoints` | `number` | `0` | 缩放后至少保留的不同 X 坐标数 |
102
103
  | `maxZoomScale` | `number \| null` | 未设置 | 最大缩放倍数;`null` 表示不限制 |
103
104
  | `initialXDomain` | `[number, number]` | 未设置 | 所有图框的初始 X 范围(可超出数据,空白显示) |
@@ -303,6 +304,15 @@ X 轴且包含多个轨道时使用按稳定 track ID 索引的 `yRanges`。平
303
304
  `initialXDomains` 按 track ID 或 series ID 分别配置。`minZoomSpan` 使用原始 X 数据单位,
304
305
  可防止每次区间数据回填后重新累计放大。未配置任何缩放约束时保留既有的 40 倍兜底;设置
305
306
  `minVisiblePoints: 2` 可缩放到两个真实采样点,`maxZoomScale: null` 可显式关闭倍率上限。
307
+
308
+ 设置 `:integer-zoom="true"` 可开启整数缩放,默认关闭。开启后滚轮、框选和
309
+ `setViewportDomain` 的开始时间向下取整、结束时间向上取整;`timeUnit='ms'` 时对齐整毫秒,
310
+ `timeUnit='s'` 时对齐整秒,最小跨度为一个显示单位。初始范围和重置范围也向外对齐,
311
+ 不会裁掉边缘数据,最小跨度、最大倍率和最少可见点数限制仍然生效。
312
+ 默认 X 轴标签和主刻度也使用整数显示单位,平移时保持整数端点及当前跨度。
313
+ 动态切换此开关或在开启时切换时间单位会重置视口。
314
+ 原始采样坐标不会被修改,缩放事件仍以秒返回实际对齐后的范围;自定义 formatter 不影响对齐粒度。
315
+ 关闭时 `timeUnit` 仍只影响展示,不改变缩放范围。
306
316
  显式设置多种限制时采用最严格的一项。双击图框会
307
317
  重置组件内部缩放并触发 `zoom-reset`;调用方应在事件中取消区间请求并恢复首次完整数据。
308
318
  外部重置按钮也可以通过模板引用调用组件公开的 `resetViewport()` 方法,然后执行相同的数据恢复逻辑。
@@ -387,7 +397,7 @@ const chartData = {
387
397
  `(V) 3`。单位为空、全为空白或未配置时,不显示 `(单位)`,例如仍显示为 `E+03 3` 或 `3`。
388
398
  多 Y 轴模式下,每根轴使用该轴首个 series 的单位。
389
399
 
390
- 左侧通道名称使用 14px、字重 600 的加粗文字,按各道附近刻度文字自动计算间距,并使用同一列中相同轴位的最大间距,保证多道名称垂直对齐;左侧留白随刻度宽度调整,避免名称与刻度重叠。
400
+ 左侧通道名称使用 14px、字重 600 的加粗文字,按字符宽度估算旋转名称的垂直范围,仅对可能与名称相交的刻度文字(含文字高度和安全间距)自动计算间距;不相交的顶部单位刻度不会推远名称。同一列中相同轴位使用逐道计算的最大间距,保证多道名称垂直对齐;左侧留白随刻度宽度调整,避免名称与刻度重叠。
391
401
 
392
402
  ### 线型、点型与误差棒
393
403
 
@@ -564,8 +574,10 @@ const hiddenSeriesIds = ref<string[]>([])
564
574
  ### 零值参考线与净图
565
575
 
566
576
  `zeroLine` 用于绘制 `y = 0` 的水平参考线,默认显示红色(`#ff0000`)、1px 宽的虚线
567
- (`dash: '6 4'`)。参考线只在对应 Y 轴的当前 domain
568
- 包含 0 时渲染,不会为了显示参考线而扩展数据范围。多值轴模式下,每根可见 Y 轴分别按自身
577
+ (`dash: '6 4'`),透明度默认为 `0.5`。参考线只在对应 Y 轴的当前 domain
578
+ 严格跨过 0,且距两端均不小于一个主刻度间距的 2% 时渲染;零线位于边界时隐藏。
579
+ 不会为了显示参考线而扩展数据范围。零线绘制在曲线、点标记及误差棒上方。
580
+ 多值轴模式下,每根可见 Y 轴分别按自身
569
581
  scale 定位零线:
570
582
 
571
583
  ```vue
@@ -576,6 +588,8 @@ scale 定位零线:
576
588
  color: '#ff0000',
577
589
  width: 1,
578
590
  dash: '6 4',
591
+ opacity: 0.5,
592
+ boundaryThreshold: 0.02,
579
593
  }"
580
594
  />
581
595
  ```
@@ -586,6 +600,12 @@ scale 定位零线:
586
600
  只传入颜色或线型时仍默认显示,例如 `:zero-line="{ color: '#0960bd', dash: '' }"`
587
601
  显示蓝色实线。使用 `:zero-line="{ visible: false }"` 可关闭零线。颜色和线型配置可动态修改。
588
602
 
603
+ `boundaryThreshold` 可动态调整边界隐藏比例,例如 `0.05` 表示一个主刻度间距的 5%,
604
+ `0` 表示仅在恰好位于边界时隐藏;负数或非有限值回退到 `0.02`。
605
+ `opacity` 支持 `0` 到 `1`,越界或非有限值回退到 `0.5`。颜色本身的 Alpha 与该透明度相乘;
606
+ 若使用 `rgba()` 或八位十六进制颜色的透明度,可设置 `opacity: 1`。
607
+ 主演示页的“零值参考线”区域可直接调整透明度,修改后立即应用于波形图。
608
+
589
609
  设置 `cleanView` 后,组件保留波形、图框边框、X/Y 轴刻度及刻度值,并隐藏标题内容、图例、
590
610
  网格、轴标签、图框背景、帧水印、零值参考线、标注和分页器。原图的标题区域、边距和波形
591
611
  尺寸保持不变;缩放、悬浮、十字线和 tooltip 仍然可用,切换回普通模式后原有配置和标注