FIMViz.jsAPI
    Preparing search index...

    Raster knobs: palette/continuous route to the layer's ColorScale (style axis → 'restyle', which the ColorScale's own onChange emits + repaints); noData is the data axis (→ 'recomputed' + a redraw); opacity is placement (provider opacity, no redraw); hover is interaction-only (no map change).

    Hierarchy (View Summary)

    Index
    _defaults: { hover: boolean; opacity: number }
    _layer: Layer
    _pending: any
    _state: any
    SCALE_KEYS: string[] = ...

    Every knob that belongs to the attached ColorScale. Kept in one place so the group pass and the per-key fallback below can't drift apart.

    • Apply one knob and report its effect. Return null for an unknown knob (ignored), else { redraw, emit }redraw:true to re-render in place, emit the effect event name (or null when another mechanism already emits it, e.g. ColorScale.onChange for palette).

      Parameters

      • key: any
      • v: any

      Returns { emit: string; redraw: boolean }

    • Coalesce all ColorScale-bound knobs into ONE colorScale.set(patch) — one onChange, one 'restyle', one repaint, no matter how many of them are in the patch.

      Parameters

      • partial: any

      Returns { emit: string; keys: Set<string>; redraw: boolean }

    • Batch write. Applies each known knob, re-renders if any change needs a redraw, then emits the distinct effect events (restyle/recomputed) once each plus a 'settings' summary.

      SYNC AND CHAINABLE — returns the Layer, not a Promise.

      Of every knob across Raster and Vector settings, exactly ONE (noData) triggers a redraw. When it does, the render runs and the effect events fire AFTER it, so a subscriber never reads a half-updated grid. To await that, use await layer.settled(), or subscribe to the 'recomputed'/'rendered' event. A render failure is reported via the layer's 'error' event.

      PARTIAL, BEST-EFFORT: one key throwing (e.g. an invalid palette name failing ColorScale's validation) does not abort the rest of the batch — every OTHER key still gets applied, committed to _state, and its effect event still fires. Failures are collected and, if any occurred, thrown together as ONE aggregate error at the end — after the successful keys have already taken effect — naming every failed key with its own message, plus which keys DID succeed. This is deliberate: a caller sees exactly what went wrong and what didn't, rather than either silently swallowing errors or having one bad key block unrelated ones in the same call.

      Parameters

      • partial: any = {}

      Returns Layer

      the layer, for chaining

    • Resolves once any redraw a set() kicked off has finished (and its effect events have fired). Resolves immediately when nothing is pending — so await layer.settled() is always safe.

      Returns Promise<Layer>