waveform-analysis 0.1.51 → 0.1.53

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 CHANGED
@@ -109,6 +109,7 @@ const data = ref<WaveformData>({
109
109
  | `pannable` | `boolean` | `false` | 空格拖拽平移开关 |
110
110
  | `minZoomSpan` | `number` | 未设置 | 最小缩放跨度,使用原始 X 数据单位 |
111
111
  | `minVisiblePoints` | `number` | `0` | 缩放后至少保留的不同 X 坐标数 |
112
+ | `maxZoomScale` | `number \| null` | 未设置 | 最大缩放倍数;`null` 表示不限制 |
112
113
  | `initialXDomain` | `[number, number]` | 未设置 | 所有图框的初始 X 范围(可超出数据,空白显示) |
113
114
  | `initialXDomains` | `Record<string, [number, number]>` | 未设置 | 按 track/series ID 配置初始范围(可超出数据) |
114
115
  | `xDomainStrategy` | `WaveformXDomainStrategy` | `{ type: 'data' }` | 自动 X 轴视口范围策略 |
@@ -300,13 +301,15 @@ X 轴且包含多个轨道时使用按稳定 track ID 索引的 `yRanges`。平
300
301
 
301
302
  `initialXDomain` 固定首次及重置时的 X 轴视口范围,不要将它改成后端返回的当前窗口;范围可以超出数据的实际时间,超出部分保留空白。独立图框有不同时间范围时,可通过
302
303
  `initialXDomains` 按 track ID 或 series ID 分别配置。`minZoomSpan` 使用原始 X 数据单位,
303
- 可防止每次区间数据回填后重新累计放大。双击图框会
304
+ 可防止每次区间数据回填后重新累计放大。未配置任何缩放约束时保留既有的 40 倍兜底;设置
305
+ `minVisiblePoints: 2` 可缩放到两个真实采样点,`maxZoomScale: null` 可显式关闭倍率上限。
306
+ 显式设置多种限制时采用最严格的一项。双击图框会
304
307
  重置组件内部缩放并触发 `zoom-reset`;调用方应在事件中取消区间请求并恢复首次完整数据。
305
308
  外部重置按钮也可以通过模板引用调用组件公开的 `resetViewport()` 方法,然后执行相同的数据恢复逻辑。
306
309
 
307
310
  宿主在替换局部数据后如果需要恢复之前保存的 X 视口,可以调用公开的
308
311
  `setViewportDomain(domain, trackIndex?)`。传入范围使用原始秒坐标,组件会按当前数据边界、
309
- `xDomainStrategy`、`minZoomSpan` 和 `minVisiblePoints` 重新约束;无效范围会被忽略。共享
312
+ `xDomainStrategy`、`minZoomSpan`、`minVisiblePoints` 和 `maxZoomScale` 重新约束;无效范围会被忽略。共享
310
313
  X 轴模式直接传入一个范围,独立模式可以按实际 `trackIndex` 分别设置(省略 `trackIndex`
311
314
  时应用到当前所有图框):
312
315
 
@@ -681,8 +684,9 @@ Demo 左侧“网格与轴线”支持直接切换数值或固定时间格式。
681
684
 
682
685
  默认 `auto` 模式按每条系列的当前可见点数决定渲染路径:不超过 1,000 个点直接使用原始
683
686
  可视点;超过 1,000 个点时,组件将当前页面的可见系列合并为一次 Web Worker 请求,并在
684
- Worker 内通过 WASM 执行保峰采样。采样数量仍由图框宽度和每像素最大点数控制,默认每个像素
685
- 最多渲染 4 个保峰点。可按业务调整:
687
+ Worker 内通过 WASM 执行保峰采样。默认采样数量由图框宽度和每像素最大点数控制,默认每个像素
688
+ 最多渲染 4 个保峰点。多通道场景可通过 `sampling.maxPointCount` 设定每条曲线的固定目标数量;
689
+ 设置后会优先于像素密度。可按业务调整:
686
690
 
687
691
  ```vue
688
692
  <WaveformChart
@@ -705,8 +709,9 @@ Worker 内通过 WASM 执行保峰采样。采样数量仍由图框宽度和每
705
709
 
706
710
  `rendering.sampling` 控制 Worker/WASM 渲染路径。默认模式为 `auto`,其单系列可见点阈值为
707
711
  `1_000`,默认策略为 `peak`。`wasm` 强制发起 Worker+WASM 请求,不受阈值影响;`raw` 完全绕过
708
- Worker 和采样,直接渲染当前可见原始点。嵌套的 `sampling.maxPointsPerPixel` 优先于旧的
709
- `rendering.maxPointsPerPixel`。未指定 `sampling.mode` 时,旧的 `downsample: false` 映射为
712
+ Worker 和采样,直接渲染当前可见原始点。`sampling.maxPointCount` 用于每条线的固定采样数量,
713
+ `sampling.maxPointsPerPixel` 用于按宽度自适应;两者同时存在时固定数量优先。嵌套的
714
+ `sampling.maxPointsPerPixel` 优先于旧的 `rendering.maxPointsPerPixel`。未指定 `sampling.mode` 时,旧的 `downsample: false` 映射为
710
715
  `raw`,`downsample: true` 映射为 `auto`。
711
716
 
712
717
  ```ts
@@ -716,6 +721,7 @@ rendering: {
716
721
  autoThreshold: 1_000,
717
722
  autoHysteresis: 0,
718
723
  strategy: 'peak',
724
+ maxPointCount: 1_000,
719
725
  maxPointsPerPixel: 4,
720
726
  rawPointLimit: 100_000,
721
727
  wasmFailureFallback: 'error',
@@ -849,7 +855,7 @@ Worker 的 JavaScript 回退后端和 Rust/WASM 后端都按需建立多分辨
849
855
  同步释放其索引与缓存项。`sampling-complete.cacheHit` 只在 Worker 实际返回该缓存项时为 `true`。
850
856
 
851
857
  演示可在 `#/wasm-sampling` 打开。该路由生成 10 条各 100,000 点的 `Float32Array` 通道,可切换
852
- `auto` / `wasm` / `raw`,所有采样策略、自动阈值和每像素点数;右侧表格显示每个系列的真实后端、
858
+ `auto` / `wasm` / `raw`,所有采样策略、自动阈值和每条线最大渲染点数;右侧表格显示每个系列的真实后端、
853
859
  源点/可见点/渲染点、耗时和缓存命中状态。
854
860
 
855
861
  库产物会把 WASM 数据内联到 Worker 运行时,消费者无需额外复制 `.wasm` 文件。严格 CSP 部署