Proactive IR Tools

Proactive Charts

One custom element, <proactive-charts>, loads historical price + volume and draws with Apache ECharts, TradingView Lightweight Charts, Highcharts Stock, or amCharts 5 — pick via chart-engine.

All live charts below use the same Morningstar-style feed: provider="morningstar", exchange="6" (Morningstar only), symbol="III", currency="CA$". Set VITE_MORNINGSTAR_ENDPOINT and VITE_MORNINGSTAR_TOKEN in .env (see .env.example).

Live examples

Featured first: the IR console (chrome="console"), then Apache ECharts and TradingView Lightweight Charts. Highcharts and amCharts require paid licenses — see Commercial Solutions. Morningstar demos share exchange="6" / symbol="III". Expand HTML snippet to copy markup.

chrome="console" · chart-engine="echarts"

IR-style chart console

Matched to the BrighterIR / Polaris share-price console layout — ranges on top, dual-axis area + columns, navigator, controls below. Export: PDF, PNG, JPG, XLS, CSV, Print. Layout still tunable via console-panels, console-toolbar, console-actions, console-ranges, and console-reset.

HTML snippet
<script src="https://cdn.proactivedigital.solutions/lib/proactive-charts/proactive-charts.min.js" type="module"></script>

<proactive-charts
  chrome="console"
  chart-engine="echarts"
  console-panels="markers,overlays"
  console-toolbar="series,dates,export"
  console-actions="toolbar"
  console-ranges="above"
  console-reset="true"
  provider="morningstar"
  exchange="6"
  symbol="III"
  currency="GBX"
  volumelabel="Trade Volume"
  linestroke="#ffad2b"
  linefill="#ffad2b"
  barfill="#054c41"
  height="550"
  default-range="1y"
  range-options="1d,1w,1m,3m,6m,1y,all"
  showcredit="true"
></proactive-charts>

<!-- Move GO / Export outside the component -->
<!-- console-actions="none" then: document.getElementById('chart-console').exportChart('png') -->
<!-- applyConsoleDates() · resetConsole() -->

chart-engine="echarts"

Apache ECharts

Default engine — dual pane, range pills, brush zoom.

HTML snippet
<script src="https://cdn.proactivedigital.solutions/lib/proactive-charts/proactive-charts.min.js" type="module"></script>

<proactive-charts
  chart-engine="echarts"
  provider="morningstar"
  exchange="6"
  symbol="III"
  currency="CA$"
  title="ECharts · III @ 6"
  subtitle="GET …/v1/historical/6/III/ · Morningstar"
  linestroke="#15803d"
  linefill="#22c55e"
  barfill="#16a34a"
  height="400"
  axis-x-font-size="10"
  axis-y-font-size="12"
  default-range="1y"
  range-switcher-enable="true"
  rangeselector-enable="false"
  navigator-enable="true"
  showcredit="false"
  volumelabel="Volume"
  bgcolor="white"
></proactive-charts>

chart-display="candlestick" · chart-engine="echarts"

Apache ECharts — candlestick

Same Morningstar payload; OHLC candles when history rows include open/high/low.

HTML snippet
<script src="https://cdn.proactivedigital.solutions/lib/proactive-charts/proactive-charts.min.js" type="module"></script>

<proactive-charts
  chart-engine="echarts"
  chart-display="candlestick"
  provider="morningstar"
  exchange="6"
  symbol="III"
  currency="CA$"
  title="ECharts candlestick · III @ 6"
  subtitle="GET …/v1/historical/6/III/ · Morningstar"
  linestroke="#0d9488"
  linefill="#14b8a6"
  barfill="#0f766e"
  height="400"
  default-range="1y"
  range-switcher-enable="true"
  rangeselector-enable="false"
  navigator-enable="false"
  showcredit="false"
  volumelabel="Volume"
  bgcolor="white"
></proactive-charts>

chart-engine="tradingview"

TradingView Lightweight Charts

Canvas chart — same Morningstar data as the others.

HTML snippet
<script src="https://cdn.proactivedigital.solutions/lib/proactive-charts/proactive-charts.min.js" type="module"></script>

<proactive-charts
  chart-engine="tradingview"
  provider="morningstar"
  exchange="6"
  symbol="III"
  currency="CA$"
  title="Lightweight Charts · III @ 6"
  subtitle="GET …/v1/historical/6/III/ · Morningstar"
  linestroke="#0369a1"
  linefill="#38bdf8"
  barfill="#64748b"
  height="400"
  default-range="1y"
  range-switcher-enable="true"
  rangeselector-enable="false"
  navigator-enable="false"
  showcredit="false"
  volumelabel="Volume"
  bgcolor="white"
></proactive-charts>

axis-x-font-size · axis-y-font-size

Axis tick label sizes

Optional px sizes for date (X) and value (Y) ticks. Example below uses 9 / 15 so the difference is easy to spot.

HTML snippet
<proactive-charts
  chart-engine="echarts"
  provider="morningstar"
  exchange="6"
  symbol="III"
  axis-x-font-size="9"
  axis-y-font-size="15"
  title="Axis fonts · ECharts"
  height="360"
  ...
></proactive-charts>

provider="yahoo"

Yahoo Finance historical API

GET …/v3/yahoo/historical/{symbol}/show/{year} with X-AUTHTOKEN. Set VITE_YAHOO_ENDPOINT and VITE_YAHOO_TOKEN in .env. Optional history-years sets calendar years of history (default 1). No exchange attribute.

HTML snippet
<script src="https://cdn.proactivedigital.solutions/lib/proactive-charts/proactive-charts.min.js" type="module"></script>

<proactive-charts
  chart-engine="echarts"
  provider="yahoo"
  symbol="MTIRF"
  history-years="5"
  currency="US$"
  title="Yahoo Finance · MTIRF"
  subtitle="GET …/v3/yahoo/historical/MTIRF/show/5 · Yahoo"
  linestroke="#be123c"
  linefill="#fb7185"
  barfill="#e11d48"
  height="400"
  default-range="1y"
  range-switcher-enable="true"
  rangeselector-enable="false"
  navigator-enable="true"
  showcredit="false"
  volumelabel="Volume"
  bgcolor="white"
></proactive-charts>

Commercial solutions

Commercial Solutions (Require Paid License)

Highcharts Stock and amCharts 5 are supported via chart-engine, but you need a valid commercial license from the respective vendors for production use. The demos below are for evaluation of the <proactive-charts> integration only.

chart-engine="highcharts" · commercial license

Highcharts Stock

Navigator + range selector — pill range UI is off for this engine.

HTML snippet
<script src="https://cdn.proactivedigital.solutions/lib/proactive-charts/proactive-charts.min.js" type="module"></script>

<proactive-charts
  chart-engine="highcharts"
  provider="morningstar"
  exchange="6"
  symbol="III"
  currency="CA$"
  title="Highcharts Stock · III @ 6"
  subtitle="GET …/v1/historical/6/III/ · Morningstar"
  linestroke="#c2410c"
  linefill="#fed7aa"
  text-color="#334155"
  rangeselector-fill="#ffffff"
  rangeselector-color="#c2410c"
  rangeselector-active-fill="#c2410c"
  rangeselector-active-color="#ffffff"
  barfill="#f97316"
  height="400"
  default-range="1y"
  range-switcher-enable="false"
  rangeselector-enable="true"
  rangeselector-selected="4"
  navigator-enable="true"
  showcredit="false"
  volumelabel="Volume"
  bgcolor="white"
></proactive-charts>

chart-engine="amcharts" · commercial license

amCharts 5

@amcharts/amcharts5 — line + column volume. Includes an axis-font size demo below.

Axis fonts — axis-x="9" axis-y="15"

HTML snippet
<script src="https://cdn.proactivedigital.solutions/lib/proactive-charts/proactive-charts.min.js" type="module"></script>

<proactive-charts
  chart-engine="amcharts"
  provider="morningstar"
  exchange="6"
  symbol="III"
  currency="CA$"
  title="amCharts 5 · III @ 6"
  subtitle="GET …/v1/historical/6/III/ · Morningstar"
  linestroke="#6b21a8"
  linefill="#c084fc"
  barfill="#9333ea"
  height="400"
  default-range="1y"
  range-switcher-enable="true"
  rangeselector-enable="false"
  navigator-enable="false"
  showcredit="false"
  volumelabel="Volume"
  bgcolor="white"
></proactive-charts>

Documentation

Full setup, providers, standalone CDN build, styling, and API: README.md in the repository.

Quick start

  1. npm install
  2. cp .env.example .env — add provider host + token (Morningstar, QuoteMedia, Yahoo).
  3. npm run dev — open the URL Vite prints.

Standalone bundle for other sites: npm run build:standalonedist-standalone/. Ship every proactive-charts*.js file together; load proactive-charts.min.js or proactive-charts.js (same entry). npm run build:standalone:single for one large file.

chart-engine values

echarts
Apache ECharts (default). Range pills + data zoom. Also powers chrome="console".
tradingview
TradingView Lightweight Charts (canvas). Range pills.
highcharts
Highcharts Stock — commercial license required.
amcharts
amCharts 5 — commercial license required.

Optional chart-display="candlestick" for OHLC candles (ECharts example below; other engines support it too).

Production CDN

Include this before any <proactive-charts> on the page. Self-hosted builds must publish every proactive-charts*.js chunk beside the entry script.

<script src="https://cdn.proactivedigital.solutions/lib/proactive-charts/proactive-charts.min.js" type="module"></script>

Common attributes (Morningstar demos)

Attribute Role
providermorningstar — historical JSON API.
exchangeMorningstar exchange code only (6 in demos below). Omit for Yahoo / QuoteMedia / demo.
history-yearsYahoo only — years in API path (default 1).
history-rangeQuoteMedia only — history span in API path (default 5).
symbolTicker (III here).
chart-engineecharts | tradingview | highcharts | amcharts
chart-displayOptional candlestick for OHLC candles.
currencyAxis / tooltip prefix (CA$).
linestroke / linefill / barfillPrice line and volume colours.
text-colorChart label text (axes, title). Use with dark fills.
rangeselector-fill / rangeselector-colorHighcharts range button bg / fg (inactive).
navigator-label-shadow-enable / -color / -sizeHighcharts navigator bottom date label outline (disable, color, px size).
heightChart height (px).
axis-x-font-sizeOptional date/time axis tick size in px (e.g. 10).
axis-y-font-sizeOptional price/volume axis tick size in px (e.g. 13).
range-switcher-enablePill ranges; use false with Highcharts (built-in controls).