The slice of the chart the runtime needs. Keeps this module testable alone.

interface IndicatorHost {
    addIndicatorLegend(
        opts: {
            color?: string;
            id: string;
            paneIndex: number;
            params: string;
            row: number;
            title: string;
        },
    ): PaneLegend;
    addIndicatorLevel(
        price: number,
        color: string,
        dashed: boolean,
        label: string,
        id: string,
        paneIndex: number,
    ): PriceLine;
    addIndicatorSeries(
        type: string,
        paneIndex: number,
        style: undefined | Record<string, unknown>,
        priceScaleId: undefined | string,
    ): SeriesApi;
    legendRowsOn(paneIndex: number): number;
    nextPaneIndex(): number;
    removeIndicatorLegend(legend: PaneLegend): void;
    removeIndicatorLevel(line: PriceLine): void;
    setPaneRange(
        paneIndex: number,
        range: null | { max: number; min: number },
    ): void;
    sourceBars(): readonly Bar[];
}

Methods

  • Add the pane-legend row (name + inline up/down/hide/maximize/close).

    Parameters

    • opts: {
          color?: string;
          id: string;
          paneIndex: number;
          params: string;
          row: number;
          title: string;
      }

    Returns PaneLegend

  • Parameters

    • price: number
    • color: string
    • dashed: boolean
    • label: string
    • id: string
    • paneIndex: number

    Returns PriceLine

  • Parameters

    • type: string
    • paneIndex: number
    • style: undefined | Record<string, unknown>
    • priceScaleId: undefined | string

    Returns SeriesApi

  • How many legends already sit on this pane, so rows stack.

    Parameters

    • paneIndex: number

    Returns number

  • Pin a pane's price scale to a fixed range, or release it with null.

    Parameters

    • paneIndex: number
    • range: null | { max: number; min: number }

    Returns void