import { t as Y, g as l, m as a, o as r, c as J, a as V } from "./color-scale-utils-C4KU2jNr.mjs";
import { T as Dt, e as yt, f as Lt, Z as Ft, h as Pt, j as Mt, l as kt, n as Bt, V as It, p as Ht, q as Gt, r as Vt, a3 as Nt, I as Ut, d as Zt, W as _t, P as zt, s as Wt, a0 as jt, a1 as $t, J as Kt, K as Jt, U as Xt, a2 as qt, L as Qt, Q as Yt, M as eo, _ as so, N as to, S as oo, R as no, u as io, v as ro, O as ao, w as ho, x as co, y as mo, $ as lo, z as po, A as uo, B as Co, C as vo, D as go, G as wo, E as Eo, F as Ro, X as To, Y as bo, H as Oo } from "./color-scale-utils-C4KU2jNr.mjs";
import { i as So } from "./index-CLdAL6df.mjs";
import { ChartModel as Re, ChartModelCartesian as Te, AlluvialChartModel as be, BoxplotChartModel as Oe, BulletChartModel as fe, ChoroplethModel as Se, CirclePackChartModel as Ae, PieChartModel as xe, GaugeChartModel as De, HeatmapModel as ye, ChartModelBinned as Le, MeterChartModel as Fe, RadarChartModel as Pe, TreeChartModel as Me, TreemapChartModel as ke, WordCloudModel as Be } from "./model/index.mjs";
import { a0 as j, r as i, L as Z, q as h, z as A, u as N, e as $, S as Ie, v as K, H as p, l as R } from "./axis-scales-CFRGPXH8.mjs";
import { A as xo, a as Do, b as yo, c as Lo, d as Fo, f as Po, B as Mo, g as ko, C as Bo, h as Io, i as Ho, j as Go, k as Vo, m as No, n as Uo, D as Zo, o as _o, G as zo, p as Wo, s as jo, t as $o, w as Ko, M as Jo, x as Xo, P as qo, y as Qo, R as Yo, F as en, I as sn, T as tn, J as on, K as nn, N as rn, O as an, Q as hn, U as cn, V as mn, W as ln, X as pn, Y as dn, Z as un, _ as Cn, $ as vn } from "./axis-scales-CFRGPXH8.mjs";
import { c as He, L as ee, C as Ge, T as _, a as z, b as g, S as L, d as se, M as W, e as Ve, f as Ne, g as Ue, H as Ze, Z as _e, A as te, h as ze, i as d, G as w, R as B, j as k, k as oe, l as M, m as u, B as We, n as I, o as je, p as $e, q as ne, r as Ke, s as Je, t as ie, u as U, v as re, w as ae, x as he, y as ce, P as Xe, D as qe, z as Qe, E as Ye, F as es, I as ss, J as ts, K as os, N as ns, O as is, Q as rs, U as as, V as hs, W as cs } from "./choropleth-TkZkP8Rn.mjs";
import { X as wn, a8 as En, a9 as Rn, a7 as Tn, Y as bn, _ as On, $ as fn, a0 as Sn, a1 as An, a2 as xn, a3 as Dn, a4 as yn, a5 as Ln, a6 as Fn } from "./choropleth-TkZkP8Rn.mjs";
import { b as ms, T as ls, F as ps, E as ds, C as us, Z as Cs, a as vs, c as gs, f as ws } from "./index-CHbrPDmO.mjs";
import { G as Es, D as Rs } from "./angle-utils-Dy0Gf7Eb.mjs";
import { S as Mn, d as kn, a as Bn, p as In, b as Hn, r as Gn } from "./angle-utils-Dy0Gf7Eb.mjs";
import { R as Nn } from "./a11y-ePqvrObQ.mjs";
function Ts(t, s, e) {
  var o = t.length;
  return e = e === void 0 ? o : e, !s && e >= o ? t : ms(t, s, e);
}
var bs = "\\ud800-\\udfff", Os = "\\u0300-\\u036f", fs = "\\ufe20-\\ufe2f", Ss = "\\u20d0-\\u20ff", As = Os + fs + Ss, xs = "\\ufe0e\\ufe0f", Ds = "\\u200d", ys = RegExp("[" + Ds + bs + As + xs + "]");
function me(t) {
  return ys.test(t);
}
function Ls(t) {
  return t.split("");
}
var le = "\\ud800-\\udfff", Fs = "\\u0300-\\u036f", Ps = "\\ufe20-\\ufe2f", Ms = "\\u20d0-\\u20ff", ks = Fs + Ps + Ms, Bs = "\\ufe0e\\ufe0f", Is = "[" + le + "]", X = "[" + ks + "]", q = "\\ud83c[\\udffb-\\udfff]", Hs = "(?:" + X + "|" + q + ")", pe = "[^" + le + "]", de = "(?:\\ud83c[\\udde6-\\uddff]){2}", ue = "[\\ud800-\\udbff][\\udc00-\\udfff]", Gs = "\\u200d", Ce = Hs + "?", ve = "[" + Bs + "]?", Vs = "(?:" + Gs + "(?:" + [pe, de, ue].join("|") + ")" + ve + Ce + ")*", Ns = ve + Ce + Vs, Us = "(?:" + [pe + X + "?", X, de, ue, Is].join("|") + ")", Zs = RegExp(q + "(?=" + q + ")|" + Us + Ns, "g");
function _s(t) {
  return t.match(Zs) || [];
}
function zs(t) {
  return me(t) ? _s(t) : Ls(t);
}
function Ws(t) {
  return function(s) {
    s = Y(s);
    var e = me(s) ? zs(s) : void 0, o = e ? e[0] : s.charAt(0), n = e ? Ts(e, 1).join("") : s.slice(1);
    return o[t]() + n;
  };
}
var js = Ws("toUpperCase");
function $s(t) {
  return js(Y(t).toLowerCase());
}
var Ks = He(function(t, s, e) {
  return s = s.toLowerCase(), t + (e ? $s(s) : s);
});
class T {
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
  // @ts-ignore
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
  constructor(s, e) {
    this.components = [], this.services = {
      canvasZoom: us,
      domUtils: Rs,
      events: ds,
      files: ps,
      gradientUtils: Es,
      transitions: ls
    }, this.model = new Re(this.services);
  }
  // Contains the code that uses properties that are overridable by the super-class
  init(s, e) {
    this.model.set({ holder: s }, { skipUpdate: !0 }), Object.keys(this.services).forEach((o) => {
      const n = this.services[o];
      this.services[o] = new n(this.model, this.services);
    }), this.services.events.addEventListener(j.Model.UPDATE, (o) => {
      const n = !!l(o, "detail", "animate");
      this.update(n);
    }), this.model.setData(e.data), this.services.events.addEventListener(j.Chart.RESIZE, () => {
      this.update(!1);
    }), this.components = this.getComponents(), this.update();
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    return console.error("getComponents() method is not implemented"), [];
  }
  update(s = !0) {
    if (!this.components)
      return;
    Object.keys(this.services).forEach((n) => {
      this.services[n].update();
    }), this.components.forEach((n) => n.render(s));
    const e = this.services.transitions.getPendingTransitions(), o = Object.keys(e).map((n) => e[n].end().catch((m) => m));
    Promise.all(o).then(
      () => this.services.events.dispatchEvent(j.Chart.RENDER_FINISHED)
    );
  }
  destroy() {
    this.components.forEach((s) => s.destroy()), this.services.domUtils.getHolder().remove(), this.model.set({ destroyed: !0 }, { skipUpdate: !0 });
  }
  getChartComponents(s, e) {
    const o = this.model.getOptions(), n = l(o, "toolbar", "enabled"), c = {
      id: "legend",
      components: [new ee(this.model, this.services)],
      growth: i.PREFERRED
    }, m = l(o, "canvasZoom", "enabled");
    m && m === !0 && s.push(new Ge(this.model, this.services));
    const b = !!this.model.getOptions().title, O = {
      id: "title",
      components: [new _(this.model, this.services)],
      growth: i.STRETCH
    }, x = {
      id: "toolbar",
      components: [new z(this.model, this.services)],
      growth: i.PREFERRED
    }, F = {
      id: "header",
      components: [
        new g(
          this.model,
          this.services,
          [
            // always add title to keep layout correct
            O,
            ...n ? [x] : []
          ],
          {
            direction: h.ROW,
            alignItems: Z.CENTER
          }
        )
      ],
      growth: i.PREFERRED
    }, D = {
      id: "graph-frame",
      components: s,
      growth: i.STRETCH,
      renderType: l(e, "graphFrameRenderType") || A.SVG
    }, y = l(e, "excludeLegend") !== !0 && o.legend.enabled !== !1;
    let f = h.COLUMN;
    if (y) {
      const S = l(o, "legend", "position");
      S === "left" ? (f = h.ROW, o.legend.orientation || (o.legend.orientation = N.VERTICAL)) : S === "right" ? (f = h.ROW_REVERSE, o.legend.orientation || (o.legend.orientation = N.VERTICAL)) : S === "bottom" && (f = h.COLUMN_REVERSE);
    }
    const P = {
      id: "spacer",
      components: [new L(this.model, this.services)],
      growth: i.PREFERRED
    }, v = {
      id: "full-frame",
      components: [
        new g(
          this.model,
          this.services,
          [
            ...y ? [c] : [],
            ...y ? [P] : [],
            D
          ],
          {
            direction: f
          }
        )
      ],
      growth: i.STRETCH
    }, E = [];
    if (b || n) {
      E.push(F);
      const S = {
        id: "spacer",
        components: [
          new L(this.model, this.services, n ? { size: 15 } : void 0)
        ],
        growth: i.PREFERRED
      };
      E.push(S);
    }
    return E.push(v), [
      new se(this.model, this.services),
      new W(this.model, this.services),
      new g(this.model, this.services, E, {
        direction: h.COLUMN
      })
    ];
  }
}
class C extends T {
  constructor(s, e) {
    super(s, e), this.services = Object.assign(this.services, {
      cartesianScales: gs,
      curves: vs,
      zoom: Cs
    }), this.model = new Te(this.services);
  }
  getAxisChartComponents(s, e) {
    const o = this.model.getOptions(), n = l(o, "zoomBar", $.TOP, "enabled"), c = l(o, "toolbar", "enabled");
    this.services.cartesianScales.determineAxisDuality(), this.services.cartesianScales.findDomainAndRangeAxes(), this.services.cartesianScales.determineOrientation();
    const m = this.services.cartesianScales.getMainXAxisPosition(), b = l(o, "axes", m, "scaleType"), O = n && m === $.BOTTOM && b === Ie.TIME, x = this.services.zoom.isZoomBarLocked($.TOP), F = !!this.model.getOptions().title, D = {
      id: "title",
      components: [new _(this.model, this.services)],
      growth: i.STRETCH
    }, y = {
      id: "toolbar",
      components: [new z(this.model, this.services)],
      growth: i.PREFERRED
    }, f = {
      id: "header",
      components: [
        new g(
          this.model,
          this.services,
          [
            // always add title to keep layout correct
            D,
            ...c ? [y] : []
          ],
          {
            direction: h.ROW,
            alignItems: Z.CENTER
          }
        )
      ],
      growth: i.PREFERRED
    }, P = {
      id: "legend",
      components: [new ee(this.model, this.services)],
      growth: i.PREFERRED
    };
    O && !x && s.push(
      new Ve(this.model, this.services),
      new Ne(this.model, this.services)
    ), s.push(new Ue(this.model, this.services)), s.push(new Ze(this.model, this.services));
    const v = {
      id: "graph-frame",
      components: s,
      growth: i.STRETCH,
      renderType: A.SVG
    }, E = l(e, "legend", "enabled") !== !1 && this.model.getOptions().legend.enabled !== !1;
    let S = h.COLUMN;
    if (E) {
      const G = l(this.model.getOptions(), "legend", "position");
      G === K.LEFT ? (S = h.ROW, this.model.getOptions().legend.orientation || (this.model.getOptions().legend.orientation = N.VERTICAL)) : G === K.RIGHT ? (S = h.ROW_REVERSE, this.model.getOptions().legend.orientation || (this.model.getOptions().legend.orientation = N.VERTICAL)) : G === K.BOTTOM && (S = h.COLUMN_REVERSE);
    }
    const ge = {
      id: "spacer",
      components: [new L(this.model, this.services)],
      growth: i.PREFERRED
    }, we = {
      id: "full-frame",
      components: [
        new g(
          this.model,
          this.services,
          [
            ...E ? [P] : [],
            ...E ? [ge] : [],
            v
          ],
          {
            direction: S
          }
        )
      ],
      growth: i.STRETCH
    }, Ee = {
      id: "zoom-bar",
      components: [new _e(this.model, this.services)],
      growth: i.PREFERRED,
      renderType: A.SVG
    }, H = [];
    if (F || c) {
      H.push(f);
      const G = {
        id: "spacer",
        components: [
          new L(this.model, this.services, c ? { size: 15 } : void 0)
        ],
        growth: i.PREFERRED
      };
      H.push(G);
    }
    return O && H.push(Ee), H.push(we), [
      new te(this.model, this.services),
      new W(this.model, this.services),
      new g(this.model, this.services, H, {
        direction: h.COLUMN
      })
    ];
  }
}
class tt extends T {
  constructor(s, e) {
    super(s, e), this.model = new be(this.services), this.model.setOptions(a(r.alluvialChart, e.options)), this.init(s, e);
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [new ze(this.model, this.services)];
    return this.getChartComponents(s, {
      excludeLegend: !0
    });
  }
}
class ot extends C {
  constructor(s, e) {
    super(s, e), this.model.setOptions(
      a(J(r.areaChart), e.options)
    ), this.init(s, e);
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [
      new d(this.model, this.services),
      new w(this.model, this.services),
      new B(this.model, this.services),
      new k(this.model, this.services),
      new oe(this.model, this.services),
      new M(this.model, this.services, {
        fadeInOnChartHolderMouseover: !0,
        handleThresholds: !0
      }),
      new u(this.model, this.services, {
        skeleton: p.GRID
      })
    ];
    return this.getAxisChartComponents(s);
  }
}
class nt extends C {
  constructor(s, e) {
    super(s, e), this.model = new Oe(this.services), this.model.setOptions(a(r.boxplotChart, e.options)), this.init(s, e);
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [
      new d(this.model, this.services),
      new w(this.model, this.services),
      new We(this.model, this.services),
      new I(this.model, this.services),
      new u(this.model, this.services, {
        skeleton: p.VERT_OR_HORIZ
      })
    ];
    return this.getAxisChartComponents(s, {
      legend: {
        enabled: !1
      }
    });
  }
}
class it extends C {
  constructor(s, e) {
    super(s, e), this.model.setOptions(a(r.bubbleChart, e.options)), this.init(s, e);
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [
      new d(this.model, this.services),
      new w(this.model, this.services),
      new B(this.model, this.services),
      new je(this.model, this.services),
      new u(this.model, this.services, {
        skeleton: p.GRID
      })
    ];
    return this.getAxisChartComponents(s);
  }
}
class rt extends C {
  constructor(s, e) {
    super(s, e), this.model = new fe(this.services), this.model.setOptions(a(r.bulletChart, e.options)), this.init(s, e);
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [
      new d(this.model, this.services),
      new w(this.model, this.services),
      new $e(this.model, this.services),
      new u(this.model, this.services, {
        skeleton: p.GRID
      })
    ];
    return this.getAxisChartComponents(s);
  }
}
class at extends T {
  constructor(s, e) {
    super(s, e), this.model = new Se(this.services), this.model.setOptions(
      a(r.choroplethChart, e.options)
    ), this.init(s, e);
  }
  // Custom getChartComponents - Implements getChartComponents
  // Removes zoombar support and additional `features` that are not supported in heatmap
  getChartComponents(s, e) {
    const o = this.model.getOptions(), n = l(o, "toolbar", "enabled"), c = !!this.model.getOptions().title, m = {
      id: "title",
      components: [new _(this.model, this.services)],
      growth: i.STRETCH
    }, b = {
      id: "toolbar",
      components: [new z(this.model, this.services)],
      growth: i.PREFERRED
    }, O = {
      id: "header",
      components: [
        new g(
          this.model,
          this.services,
          [
            // always add title to keep layout correct
            m,
            ...n ? [b] : []
          ],
          {
            direction: h.ROW,
            alignItems: Z.CENTER
          }
        )
      ],
      growth: i.PREFERRED
    }, x = {
      id: "legend",
      components: [
        new ne(this.model, this.services, {
          chartType: "choropleth"
        })
      ],
      growth: i.PREFERRED,
      renderType: A.SVG
    }, F = {
      id: "graph-frame",
      components: s,
      growth: i.STRETCH,
      renderType: A.SVG
    }, D = l(e, "legend", "enabled") !== !1 && this.model.getOptions().legend.enabled !== !1 && this.model.getData().length > 0, y = h.COLUMN_REVERSE, f = {
      id: "spacer",
      components: [new L(this.model, this.services, { size: 15 })],
      growth: i.PREFERRED
    }, P = {
      id: "full-frame",
      components: [
        new g(
          this.model,
          this.services,
          [
            ...D ? [x] : [],
            ...D ? [f] : [],
            F
          ],
          {
            direction: y
          }
        )
      ],
      growth: i.STRETCH
    }, v = [];
    if (c || n) {
      v.push(O);
      const E = {
        id: "spacer",
        components: [
          new L(this.model, this.services, n ? { size: 15 } : void 0)
        ],
        growth: i.PREFERRED
      };
      v.push(E);
    }
    return v.push(P), [
      new se(this.model, this.services),
      new W(this.model, this.services),
      new g(this.model, this.services, v, {
        direction: h.COLUMN
      })
    ];
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [new Ke(this.model, this.services)];
    return this.getChartComponents(s);
  }
}
class ht extends T {
  constructor(s, e) {
    super(s, e), this.model = new Ae(this.services), this.model.setOptions(a(r.circlePackChart, e.options)), this.init(s, e);
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [new Je(this.model, this.services)];
    return this.getChartComponents(s);
  }
}
const Q = {
  [R.LINE]: [k, M],
  [R.SCATTER]: [M],
  [R.AREA]: [oe, k, M],
  [R.STACKED_AREA]: [he, k, ce, U],
  [R.SIMPLE_BAR]: [ae],
  [R.GROUPED_BAR]: [re, I],
  [R.STACKED_BAR]: [ie, U]
};
class ct extends C {
  constructor(s, e) {
    super(s, e);
    const o = a(r.comboChart, e.options);
    e.options.comboChartTypes || (console.error("No comboChartTypes defined for the Combo Chart!"), o.comboChartTypes = [{ type: R.LINE, correspondingDatasets: [] }]), this.model.setOptions(o), this.init(s, e);
  }
  getGraphComponents() {
    const { comboChartTypes: s } = this.model.getOptions();
    let e = 0;
    const o = s.map((n) => {
      const c = n.type;
      let m;
      if (typeof n.type == "string") {
        if (!Object.keys(Q).includes(n.type))
          return console.error(
            `Invalid chart type "${n.type}" specified for combo chart. Please refer to the ComboChart tutorial for more guidance.`
          ), null;
        let b = !1;
        const O = `${Ks(n.type)}Chart`;
        return m = V({}, r[O], this.model.getOptions(), n.options), n.type === R.STACKED_AREA && (b = !0), Q[n.type].map(
          (x) => new x(this.model, this.services, {
            groups: n.correspondingDatasets,
            id: e++,
            options: m,
            stacked: b
          })
        );
      } else
        return m = V({}, this.model.getOptions(), n.options), new c(this.model, this.services, {
          groups: n.correspondingDatasets,
          id: e++,
          options: m
        });
    }).filter((n) => n !== null);
    return ws(o);
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const { comboChartTypes: s } = this.model.getOptions(), e = s.some(
      (c) => c.type === R.STACKED_BAR || c.type === R.STACKED_AREA
    ), o = [
      new d(this.model, this.services),
      new w(this.model, this.services),
      new u(this.model, this.services, {
        skeleton: p.GRID
      }),
      ...e ? [] : [new B(this.model, this.services)],
      ...this.getGraphComponents()
    ];
    return this.getAxisChartComponents(o);
  }
}
class Js extends T {
  // TODO - Optimize the use of "extending"
  constructor(s, e, o = !1) {
    super(s, e), this.model = new xe(this.services), !o && (this.model.setOptions(a(r.pieChart, e.options)), this.init(s, e));
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [
      new Xe(this.model, this.services),
      new u(this.model, this.services, {
        skeleton: p.PIE
      })
    ];
    return this.getChartComponents(s);
  }
}
class mt extends Js {
  constructor(s, e) {
    super(s, e, !0), this.model.setOptions(a(r.donutChart, e.options)), this.init(s, e);
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [
      new qe(this.model, this.services),
      new u(this.model, this.services, {
        skeleton: p.DONUT
      })
    ];
    return this.getChartComponents(s);
  }
}
class lt extends T {
  constructor(s, e) {
    super(s, e), this.model = new De(this.services), this.model.setOptions(a(r.gaugeChart, e.options)), this.init(s, e);
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [new Qe(this.model, this.services)];
    return this.getChartComponents(s);
  }
}
class pt extends C {
  constructor(s, e) {
    super(s, e), this.model.setOptions(a(r.groupedBarChart, e.options)), this.init(s, e);
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [
      new d(this.model, this.services),
      new w(this.model, this.services),
      new re(this.model, this.services),
      new I(this.model, this.services),
      new u(this.model, this.services, {
        skeleton: p.VERT_OR_HORIZ
      })
    ];
    return this.getAxisChartComponents(s);
  }
}
class dt extends C {
  constructor(s, e) {
    super(s, e), this.model = new ye(this.services), this.model.setOptions(
      a(r.heatmapChart, e.options)
    ), this.init(s, e);
  }
  // Custom getChartComponents - Implements getChartComponents
  // Removes zoombar support and additional `features` that are not supported in heatmap
  getAxisChartComponents(s, e) {
    const o = this.model.getOptions(), n = l(o, "toolbar", "enabled");
    this.services.cartesianScales.determineAxisDuality(), this.services.cartesianScales.findDomainAndRangeAxes(), this.services.cartesianScales.determineOrientation();
    const c = !!this.model.getOptions().title, m = {
      id: "title",
      components: [new _(this.model, this.services)],
      growth: i.STRETCH
    }, b = {
      id: "toolbar",
      components: [new z(this.model, this.services)],
      growth: i.PREFERRED
    }, O = {
      id: "header",
      components: [
        new g(
          this.model,
          this.services,
          [
            // always add title to keep layout correct
            m,
            ...n ? [b] : []
          ],
          {
            direction: h.ROW,
            alignItems: Z.CENTER
          }
        )
      ],
      growth: i.PREFERRED
    }, x = {
      id: "legend",
      components: [
        new ne(this.model, this.services, {
          chartType: "heatmap"
        })
      ],
      growth: i.PREFERRED,
      renderType: A.SVG
    }, F = {
      id: "graph-frame",
      components: s,
      growth: i.STRETCH,
      renderType: A.SVG
    }, D = l(e, "legend", "enabled") !== !1 && this.model.getOptions().legend.enabled !== !1 && this.model.getData().length > 0, y = h.COLUMN_REVERSE, f = {
      id: "spacer",
      components: [new L(this.model, this.services, { size: 15 })],
      growth: i.PREFERRED
    }, P = {
      id: "full-frame",
      components: [
        new g(
          this.model,
          this.services,
          [
            ...D ? [x] : [],
            ...D ? [f] : [],
            F
          ],
          {
            direction: y
          }
        )
      ],
      growth: i.STRETCH
    }, v = [];
    if (c || n) {
      v.push(O);
      const E = {
        id: "spacer",
        components: [
          new L(this.model, this.services, n ? { size: 15 } : void 0)
        ],
        growth: i.PREFERRED
      };
      v.push(E);
    }
    return v.push(P), [
      new te(this.model, this.services),
      new W(this.model, this.services),
      new g(this.model, this.services, v, {
        direction: h.COLUMN
      })
    ];
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [
      new d(this.model, this.services),
      new Ye(this.model, this.services)
    ];
    return this.getAxisChartComponents(s);
  }
}
class ut extends C {
  constructor(s, e) {
    super(s, e), this.model = new Le(this.services), this.model.setOptions(a(r.histogramChart, e.options)), this.init(s, e), this.update();
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [
      new d(this.model, this.services),
      new w(this.model, this.services),
      new es(this.model, this.services),
      new ss(this.model, this.services)
    ];
    return this.getAxisChartComponents(s);
  }
}
class Ct extends C {
  constructor(s, e) {
    super(s, e), this.model.setOptions(a(r.lineChart, e.options)), this.init(s, e);
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [
      new d(this.model, this.services),
      new w(this.model, this.services),
      new B(this.model, this.services),
      new k(this.model, this.services),
      new M(this.model, this.services, { handleThresholds: !0 }),
      new ts(this.model, this.services),
      new I(this.model, this.services)
    ];
    return this.getAxisChartComponents(s);
  }
}
class vt extends C {
  constructor(s, e) {
    super(s, e), this.model.setOptions(a(r.lollipopChart, e.options)), this.init(s, e);
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [
      new d(this.model, this.services),
      new w(this.model, this.services),
      new B(this.model, this.services),
      new os(this.model, this.services),
      new M(this.model, this.services),
      new u(this.model, this.services, {
        skeleton: p.GRID
      })
    ];
    return this.getAxisChartComponents(s);
  }
}
class gt extends T {
  constructor(s, e) {
    super(s, e), this.model = new Fe(this.services);
    const o = e.options.meter?.proportional ? V(J(r.proportionalMeterChart), e.options) : V(J(r.meterChart), e.options);
    this.model.setOptions(o), this.init(s, e);
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const e = [
      ...l(this.model.getOptions(), "meter", "showLabels") ? [
        // Meter has a unique dataset title within the graph
        {
          id: "meter-title",
          components: [new ns(this.model, this.services)],
          growth: i.STRETCH,
          renderType: A.SVG
        },
        // Create the title spacer
        {
          id: "spacer",
          components: [
            new L(this.model, this.services, {
              size: 8
            })
          ],
          growth: i.STRETCH
        }
      ] : [],
      // Specify what to render inside the graph only
      {
        id: "meter-graph",
        components: [new is(this.model, this.services)],
        growth: i.STRETCH,
        renderType: A.SVG
      }
    ], o = [
      new g(this.model, this.services, e, {
        direction: h.COLUMN
      })
    ];
    return this.getChartComponents(o, {
      graphFrameRenderType: A.HTML
    });
  }
}
class wt extends T {
  constructor(s, e) {
    super(s, e), this.model = new Pe(this.services), this.model.setOptions(a(r.radarChart, e.options)), this.init(s, e);
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [new rs(this.model, this.services)];
    return this.getChartComponents(s);
  }
}
class Et extends C {
  constructor(s, e) {
    super(s, e), this.model.setOptions(a(r.scatterChart, e.options)), this.init(s, e);
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [
      new d(this.model, this.services),
      new w(this.model, this.services),
      new B(this.model, this.services),
      new M(this.model, this.services),
      new u(this.model, this.services, {
        skeleton: p.GRID
      })
    ];
    return this.getAxisChartComponents(s);
  }
}
class Rt extends T {
  constructor(s, e) {
    super(s, e), this.model = new Me(this.services), this.model.setOptions(a(r.treeChart, e.options)), this.init(s, e);
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [new as(this.model, this.services)];
    return this.getChartComponents(s, {
      excludeLegend: !0
    });
  }
}
class Tt extends T {
  constructor(s, e) {
    super(s, e), this.model = new ke(this.services), this.model.setOptions(a(r.treemapChart, e.options)), this.init(s, e);
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [new hs(this.model, this.services)];
    return this.getChartComponents(s);
  }
}
class bt extends C {
  constructor(s, e) {
    super(s, e), this.model.setOptions(a(r.simpleBarChart, e.options)), this.init(s, e);
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [
      new d(this.model, this.services),
      new w(this.model, this.services),
      new ae(this.model, this.services),
      new I(this.model, this.services),
      new u(this.model, this.services, {
        skeleton: p.VERT_OR_HORIZ
      })
    ];
    return this.getAxisChartComponents(s);
  }
}
class Ot extends C {
  constructor(s, e) {
    super(s, e), this.model.setOptions(a(r.stackedAreaChart, e.options)), this.init(s, e);
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [
      new d(this.model, this.services),
      new w(this.model, this.services),
      new U(this.model, this.services),
      new he(this.model, this.services),
      new k(this.model, this.services, { stacked: !0 }),
      new ce(this.model, this.services, {
        fadeInOnChartHolderMouseover: !0,
        handleThresholds: !0,
        stacked: !0
      }),
      new u(this.model, this.services, {
        skeleton: p.GRID
      })
    ];
    return this.getAxisChartComponents(s);
  }
}
class ft extends C {
  constructor(s, e) {
    super(s, e), this.model.setOptions(a(r.stackedBarChart, e.options)), this.init(s, e);
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [
      new d(this.model, this.services),
      new w(this.model, this.services),
      new U(this.model, this.services),
      new ie(this.model, this.services),
      new u(this.model, this.services, {
        skeleton: p.VERT_OR_HORIZ
      }),
      new I(this.model, this.services)
    ];
    return this.getAxisChartComponents(s);
  }
}
class St extends T {
  constructor(s, e) {
    super(s, e), this.model = new Be(this.services), this.model.setOptions(a(r.wordCloudChart, e.options)), this.init(s, e);
  }
  /**
   * Retrieves the components to be rendered inside the graph frame.
   *
   * @returns {Component[]} An array of components to be rendered.
   */
  getComponents() {
    const s = [
      new cs(this.model, this.services),
      new u(this.model, this.services, {
        skeleton: p.PIE
      })
    ];
    return this.getChartComponents(s);
  }
}
export {
  xo as Alignments,
  ze as Alluvial,
  tt as AlluvialChart,
  be as AlluvialChartModel,
  oe as Area,
  ot as AreaChart,
  Do as AreaEvent,
  yo as ArrowDirections,
  wn as Axis,
  C as AxisChart,
  te as AxisChartsTooltip,
  Lo as AxisEvent,
  Fo as AxisFlavor,
  $ as AxisPositions,
  Po as AxisTitleOrientations,
  En as Bar,
  Mo as BarEvent,
  es as BinnedRuler,
  We as Boxplot,
  nt as BoxplotChart,
  Oe as BoxplotChartModel,
  ko as BoxplotEvent,
  je as Bubble,
  it as BubbleChart,
  $e as Bullet,
  rt as BulletChart,
  fe as BulletChartModel,
  Bo as CalloutDirections,
  Ge as CanvasChartClip,
  us as CanvasZoom,
  Io as CanvasZoomEvent,
  Ho as CartesianOrientations,
  gs as CartesianScales,
  T as Chart,
  Ne as ChartBrush,
  Ve as ChartClip,
  Go as ChartEvent,
  Re as ChartModel,
  Le as ChartModelBinned,
  Te as ChartModelCartesian,
  Vo as ChartTheme,
  R as ChartTypes,
  Ke as Choropleth,
  at as ChoroplethChart,
  Se as ChoroplethModel,
  Je as CirclePack,
  ht as CirclePackChart,
  Ae as CirclePackChartModel,
  No as ColorClassNameTypes,
  Uo as ColorLegendType,
  ne as ColorScaleLegend,
  ct as ComboChart,
  Rn as Component,
  vs as Curves,
  Rs as DOMUtils,
  Zo as DividerStatus,
  _o as DominantBaseline,
  qe as Donut,
  mt as DonutChart,
  ds as Events,
  at as ExperimentalChoroplethChart,
  ps as Files,
  Qe as Gauge,
  lt as GaugeChart,
  De as GaugeChartModel,
  zo as GaugeEvent,
  Wo as GaugeTypes,
  Tn as GeoProjection,
  Es as GradientUtils,
  w as Grid,
  re as GroupedBar,
  pt as GroupedBarChart,
  Ye as Heatmap,
  dt as HeatmapChart,
  ye as HeatmapModel,
  Ze as Highlight,
  ss as Histogram,
  ut as HistogramChart,
  bn as HoverAxis,
  Z as LayoutAlignItems,
  g as LayoutComponent,
  h as LayoutDirection,
  i as LayoutGrowth,
  ee as Legend,
  jo as LegendEvent,
  $o as LegendItemType,
  N as LegendOrientations,
  K as LegendPositions,
  k as Line,
  Ct as LineChart,
  Ko as LineEvent,
  os as Lollipop,
  vt as LollipopChart,
  is as Meter,
  gt as MeterChart,
  Fe as MeterChartModel,
  ns as MeterTitle,
  W as Modal,
  Jo as ModalEvent,
  Xo as ModelEvent,
  Xe as Pie,
  Js as PieChart,
  xe as PieChartModel,
  qo as PieEvent,
  Qo as Projection,
  rs as Radar,
  wt as RadarChart,
  Pe as RadarChartModel,
  Yo as RadarEvent,
  A as RenderTypes,
  Nn as Roles,
  B as Ruler,
  Ie as ScaleTypes,
  M as Scatter,
  Et as ScatterChart,
  en as ScatterEvent,
  Mn as Service,
  ae as SimpleBar,
  bt as SimpleBarChart,
  u as Skeleton,
  ts as SkeletonLines,
  p as Skeletons,
  L as Spacer,
  he as StackedArea,
  Ot as StackedAreaChart,
  ie as StackedBar,
  ft as StackedBarChart,
  U as StackedRuler,
  ce as StackedScatter,
  sn as Statuses,
  Dt as TIME_INTERVALS,
  tn as TextAnchor,
  Ue as Threshold,
  on as ThresholdEvent,
  nn as TickRotations,
  rn as TimeIntervalNames,
  _ as Title,
  z as Toolbar,
  an as ToolbarControlTypes,
  se as Tooltip,
  hn as TooltipEvent,
  ls as Transitions,
  as as Tree,
  Rt as TreeChart,
  Me as TreeChartModel,
  cn as TreeEvent,
  mn as TreeTypes,
  hs as Treemap,
  Tt as TreemapChart,
  ke as TreemapChartModel,
  ln as TreemapEvent,
  pn as TruncationTypes,
  d as TwoDimensionalAxes,
  cs as WordCloud,
  St as WordCloudChart,
  dn as WordCloudEvent,
  Be as WordCloudModel,
  I as ZeroLine,
  Cs as Zoom,
  _e as ZoomBar,
  un as ZoomBarTypes,
  Cn as ZoomDomainEvent,
  vn as ZoombarEvent,
  yt as alluvial,
  Lt as area,
  Ft as arrayDifferences,
  On as arrowLeft,
  fn as arrowRight,
  Pt as axis,
  Mt as baseTooltip,
  kt as boxplot,
  Sn as buildBezierPathString,
  An as buildElbowPathString,
  xn as buildStraightPathString,
  Bt as canvasZoomSettings,
  It as capitalizeFirstLetter,
  Ht as carbonPrefix,
  Dn as circle,
  Gt as circlePack,
  Vt as color,
  Nt as compareNumeric,
  Ut as computeTimeIntervalName,
  Zt as configurations,
  _t as convertValueToPercentage,
  zt as debounceWithD3MousePosition,
  Wt as defaultLegendAdditionalItems,
  kn as degToRad,
  yn as diamond,
  Bn as distanceBetweenPointOnCircAndVerticalDiameter,
  jt as flipDomainAndRangeBasedOnOrientation,
  $t as flipSVGCoordinatesBasedOnOrientation,
  Kt as formatDateTillMilliSeconds,
  Jt as formatTick,
  Xt as formatWidthHeightValues,
  qt as generateSVGPathString,
  Qt as getColorScale,
  Yt as getDimensions,
  eo as getDomain,
  so as getDuplicateValues,
  l as getProperty,
  to as getTimeformats,
  oo as getTransformOffsets,
  no as getTranslationValues,
  io as grid,
  ro as histogram,
  So as interfaces,
  ao as isTickPrimary,
  ho as legend,
  co as lines,
  a as mergeDefaultChartOptions,
  mo as meter,
  lo as moveToFront,
  r as options,
  po as pie,
  In as polarToCartesianCoords,
  Hn as radToDeg,
  uo as radar,
  Gn as radialLabelPlacement,
  Co as ruler,
  vo as spacers,
  Ln as square,
  Fn as tee,
  go as timeScale,
  wo as toolbar,
  Eo as tooltips,
  Ro as transitions,
  To as truncateLabel,
  bo as updateLegendAdditionalItems,
  Oo as zoomBar
};
//# sourceMappingURL=index.mjs.map
