@milaboratories/miplots4 1.0.132 → 1.0.133

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.
@@ -1,6 +1,7 @@
1
1
  import { DataFrame, DataSet } from './DataFrame';
2
2
  import { Settings, SettingsInterface } from './types';
3
3
  export interface ChartInterface {
4
+ hasError: boolean;
4
5
  calculatedData: Record<string, unknown> | null;
5
6
  mount: (node: HTMLElement) => void;
6
7
  unmount: () => void;
@@ -11,6 +12,7 @@ export interface ChartInterface {
11
12
  export declare abstract class AbstractChart implements ChartInterface {
12
13
  data: DataFrame;
13
14
  settings: SettingsInterface;
15
+ hasError: boolean;
14
16
  calculatedData: Record<string, unknown> | null;
15
17
  protected constructor(data: DataFrame, settings: SettingsInterface);
16
18
  abstract mount(node: HTMLElement): void;
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractChart.d.ts","sourceRoot":"","sources":["../src/AbstractChart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAE,OAAO,EAAC,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAC,QAAQ,EAAE,iBAAiB,EAAC,MAAM,SAAS,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC3B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/C,KAAK,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,qBAAqB,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IACnE,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1D,MAAM,EAAE,MAAM,MAAM,CAAA;CACvB;AAED,8BAAsB,aAAc,YAAW,cAAc;IAG5B,IAAI,EAAE,SAAS;IAAS,QAAQ,EAAC,iBAAiB;IAF/E,cAAc,EAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAExD,SAAS,aAAoB,IAAI,EAAE,SAAS,EAAS,QAAQ,EAAC,iBAAiB;IAG/E,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAEvC,QAAQ,CAAC,OAAO,IAAI,IAAI;IAExB,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAEvE,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAE9D,QAAQ,CAAC,MAAM,IAAG,MAAM;CAC3B"}
1
+ {"version":3,"file":"AbstractChart.d.ts","sourceRoot":"","sources":["../src/AbstractChart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAE,OAAO,EAAC,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAC,QAAQ,EAAE,iBAAiB,EAAC,MAAM,SAAS,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/C,KAAK,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,qBAAqB,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IACnE,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1D,MAAM,EAAE,MAAM,MAAM,CAAA;CACvB;AAED,8BAAsB,aAAc,YAAW,cAAc;IAI5B,IAAI,EAAE,SAAS;IAAS,QAAQ,EAAC,iBAAiB;IAH/E,QAAQ,UAAS;IACjB,cAAc,EAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAExD,SAAS,aAAoB,IAAI,EAAE,SAAS,EAAS,QAAQ,EAAC,iBAAiB;IAG/E,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI;IAEvC,QAAQ,CAAC,OAAO,IAAI,IAAI;IAExB,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAEvE,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAE9D,QAAQ,CAAC,MAAM,IAAG,MAAM;CAC3B"}
@@ -1,9 +1,10 @@
1
- var l = Object.defineProperty;
2
- var r = (a, t, s) => t in a ? l(a, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : a[t] = s;
3
- var c = (a, t, s) => r(a, typeof t != "symbol" ? t + "" : t, s);
1
+ var c = Object.defineProperty;
2
+ var l = (a, t, s) => t in a ? c(a, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : a[t] = s;
3
+ var r = (a, t, s) => l(a, typeof t != "symbol" ? t + "" : t, s);
4
4
  class h {
5
5
  constructor(t, s) {
6
- c(this, "calculatedData", null);
6
+ r(this, "hasError", !1);
7
+ r(this, "calculatedData", null);
7
8
  this.data = t, this.settings = s;
8
9
  }
9
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractChart.js","sources":["../src/AbstractChart.ts"],"sourcesContent":["import type {DataFrame, DataSet} from './DataFrame';\nimport type {Settings, SettingsInterface} from './types';\n\nexport interface ChartInterface {\n calculatedData: Record<string, unknown> | null,\n mount: (node: HTMLElement) => void,\n unmount: () => void,\n updateSettingsAndData: (data: DataSet, settings: Settings) => void,\n updateChartState: (field: string, value: unknown) => void,\n export: () => string\n}\n\nexport abstract class AbstractChart implements ChartInterface {\n calculatedData = null as Record<string, unknown> | null;\n\n protected constructor(public data: DataFrame, public settings:SettingsInterface) {\n }\n\n abstract mount(node: HTMLElement): void;\n\n abstract unmount(): void;\n\n abstract updateSettingsAndData(data: DataSet, settings: Settings): void;\n\n abstract updateChartState(field: string, value: unknown): void;\n\n abstract export():string;\n}\n"],"names":["AbstractChart","data","settings","__publicField"],"mappings":";;;AAYO,MAAeA,EAAwC;AAAA,EAGhD,YAAmBC,GAAwBC,GAA4B;AAFjF,IAAAC,EAAA,wBAAiB;AAEY,SAAA,OAAAF,GAAwB,KAAA,WAAAC;AAAA,EACrD;AAWJ;"}
1
+ {"version":3,"file":"AbstractChart.js","sources":["../src/AbstractChart.ts"],"sourcesContent":["import type {DataFrame, DataSet} from './DataFrame';\nimport type {Settings, SettingsInterface} from './types';\n\nexport interface ChartInterface {\n hasError: boolean,\n calculatedData: Record<string, unknown> | null,\n mount: (node: HTMLElement) => void,\n unmount: () => void,\n updateSettingsAndData: (data: DataSet, settings: Settings) => void,\n updateChartState: (field: string, value: unknown) => void,\n export: () => string\n}\n\nexport abstract class AbstractChart implements ChartInterface {\n hasError = false;\n calculatedData = null as Record<string, unknown> | null;\n\n protected constructor(public data: DataFrame, public settings:SettingsInterface) {\n }\n\n abstract mount(node: HTMLElement): void;\n\n abstract unmount(): void;\n\n abstract updateSettingsAndData(data: DataSet, settings: Settings): void;\n\n abstract updateChartState(field: string, value: unknown): void;\n\n abstract export():string;\n}\n"],"names":["AbstractChart","data","settings","__publicField"],"mappings":";;;AAaO,MAAeA,EAAwC;AAAA,EAIhD,YAAmBC,GAAwBC,GAA4B;AAHjF,IAAAC,EAAA,kBAAW;AACX,IAAAA,EAAA,wBAAiB;AAEY,SAAA,OAAAF,GAAwB,KAAA,WAAAC;AAAA,EACrD;AAWJ;"}
package/dist/MiPlots.d.ts CHANGED
@@ -8,6 +8,7 @@ export declare class MiPlots implements ChartInterface {
8
8
  static newPlot(data: DataSet, settings: Settings, eventHandlers?: ChartEventHandlers<unknown>): MiPlots;
9
9
  constructor(chart: AbstractChart);
10
10
  get calculatedData(): Record<string, unknown> | null;
11
+ get hasError(): boolean;
11
12
  mount(node: HTMLElement): void;
12
13
  unmount(): void;
13
14
  updateSettingsAndData(data: DataSet, settings: Settings): void;
@@ -1 +1 @@
1
- {"version":3,"file":"MiPlots.d.ts","sourceRoot":"","sources":["../src/MiPlots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AASnE,OAAO,KAAK,EAER,kBAAkB,EAMlB,QAAQ,EACX,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,aAAa,CAAC;AAEzC,qBAAa,OAAQ,YAAW,cAAc;IAC1C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,aAAa,CAAC;IAErB,OAAO,CAAC,MAAM,CAAC,WAAW;IAsC1B,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,OAAO;gBAK3F,KAAK,EAAE,aAAa;IAIhC,IAAI,cAAc,mCAEjB;IAED,KAAK,CAAC,IAAI,EAAE,WAAW;IAKvB,OAAO;IAKP,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IAgBvD,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAI9C,MAAM;CAGT"}
1
+ {"version":3,"file":"MiPlots.d.ts","sourceRoot":"","sources":["../src/MiPlots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AASnE,OAAO,KAAK,EAER,kBAAkB,EAMlB,QAAQ,EACX,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,aAAa,CAAC;AAEzC,qBAAa,OAAQ,YAAW,cAAc;IAC1C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,aAAa,CAAC;IAErB,OAAO,CAAC,MAAM,CAAC,WAAW;IAsC1B,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,OAAO;gBAK3F,KAAK,EAAE,aAAa;IAIhC,IAAI,cAAc,mCAEjB;IAED,IAAI,QAAQ,YAEX;IAED,KAAK,CAAC,IAAI,EAAE,WAAW;IAKvB,OAAO;IAKP,qBAAqB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IAgBvD,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAI9C,MAAM;CAGT"}
package/dist/MiPlots.js CHANGED
@@ -41,6 +41,9 @@ class c {
41
41
  get calculatedData() {
42
42
  return this.chart.calculatedData;
43
43
  }
44
+ get hasError() {
45
+ return this.chart.hasError;
46
+ }
44
47
  mount(t) {
45
48
  this.node = t, this.chart.mount(t);
46
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MiPlots.js","sources":["../src/MiPlots.ts"],"sourcesContent":["import type {AbstractChart, ChartInterface} from './AbstractChart';\nimport {ChartDendro} from './dendro';\nimport {ChartDiscrete} from './discrete';\nimport {ChartHeatmap} from './heatmap';\nimport {ChartHistogram} from './histogram';\nimport {ChartScatterplot} from './scatterplot';\nimport {ChartScatterplotUmap} from './scatterplot-umap';\nimport {ChartBubble} from './bubble';\nimport {DataFrame} from './DataFrame';\nimport type {\n BubbleEventHandlers,\n ChartEventHandlers,\n DendroEventHandlers,\n DiscreteEventHandlers,\n HeatmapEventHandlers,\n HistogramEventHandlers,\n ScatterplotEventHandlers,\n Settings,\n} from './types';\nimport {exhaustive} from './utils';\nimport type {DataSet} from './DataFrame';\n\nexport class MiPlots implements ChartInterface {\n node?: HTMLElement;\n chart: AbstractChart;\n\n private static createChart(\n data: DataFrame,\n settings: Settings,\n eventHandlers?: ChartEventHandlers<unknown>\n ): AbstractChart {\n const {type} = settings;\n\n if (type === 'discrete') {\n return new ChartDiscrete(data, settings, eventHandlers as DiscreteEventHandlers);\n }\n\n if (type === 'dendro') {\n return new ChartDendro(data, settings, eventHandlers as DendroEventHandlers);\n }\n\n if (type === 'scatterplot') {\n return new ChartScatterplot(data, settings, eventHandlers as ScatterplotEventHandlers);\n }\n\n if (type === 'scatterplot-umap') {\n return new ChartScatterplotUmap(data, settings, eventHandlers as ScatterplotEventHandlers);\n }\n\n if (type === 'heatmap') {\n return new ChartHeatmap(data, settings, eventHandlers as HeatmapEventHandlers);\n }\n\n if (type === 'histogram') {\n return new ChartHistogram(data, settings, eventHandlers as HistogramEventHandlers);\n }\n\n if (type === 'bubble') {\n return new ChartBubble(data, settings, eventHandlers as BubbleEventHandlers);\n }\n\n exhaustive(type, `Unknown chart type: ${type}`);\n }\n\n static newPlot(data: DataSet, settings: Settings, eventHandlers?: ChartEventHandlers<unknown>): MiPlots {\n const dataFrame = DataFrame.from(data);\n return new this(MiPlots.createChart(dataFrame, settings, eventHandlers));\n }\n\n constructor(chart: AbstractChart) {\n this.chart = chart;\n }\n\n get calculatedData() {\n return this.chart.calculatedData;\n }\n\n mount(node: HTMLElement) {\n this.node = node;\n this.chart.mount(node);\n }\n\n unmount() {\n delete this.node;\n this.chart.unmount();\n }\n\n updateSettingsAndData(data: DataSet, settings: Settings) {\n if (settings.type !== this.chart.settings.type) {\n const newChart = MiPlots.createChart(this.chart.data, settings);\n\n if (this.node) {\n this.chart.unmount();\n this.chart = newChart;\n this.chart.mount(this.node);\n } else {\n this.chart = newChart;\n }\n } else {\n this.chart.updateSettingsAndData(DataFrame.from(data), settings);\n }\n }\n\n updateChartState(field: string, value: unknown) {\n this.chart.updateChartState(field, value);\n }\n\n export() {\n return this.chart.export();\n }\n}\n"],"names":["MiPlots","chart","__publicField","data","settings","eventHandlers","type","ChartDiscrete","ChartDendro","ChartScatterplot","ChartScatterplotUmap","ChartHeatmap","ChartHistogram","ChartBubble","exhaustive","dataFrame","DataFrame","node","newChart","field","value"],"mappings":";;;;;;;;;;;;AAsBO,MAAMA,EAAkC;AAAA,EA+C3C,YAAYC,GAAsB;AA9ClC,IAAAC,EAAA;AACA,IAAAA,EAAA;AA8CI,SAAK,QAAQD;AAAA,EACjB;AAAA,EA7CA,OAAe,YACXE,GACAC,GACAC,GACa;AACb,UAAM,EAAC,MAAAC,MAAQF;AAEf,QAAIE,MAAS;AACT,aAAO,IAAIC,EAAcJ,GAAMC,GAAUC,CAAsC;AAGnF,QAAIC,MAAS;AACT,aAAO,IAAIE,EAAYL,GAAMC,GAAUC,CAAoC;AAG/E,QAAIC,MAAS;AACT,aAAO,IAAIG,EAAiBN,GAAMC,GAAUC,CAAyC;AAGzF,QAAIC,MAAS;AACT,aAAO,IAAII,EAAqBP,GAAMC,GAAUC,CAAyC;AAG7F,QAAIC,MAAS;AACT,aAAO,IAAIK,EAAaR,GAAMC,GAAUC,CAAqC;AAGjF,QAAIC,MAAS;AACT,aAAO,IAAIM,EAAeT,GAAMC,GAAUC,CAAuC;AAGrF,QAAIC,MAAS;AACT,aAAO,IAAIO,EAAYV,GAAMC,GAAUC,CAAoC;AAG/E,IAAAS,EAAWR,GAAM,uBAAuBA,CAAI,EAAE;AAAA,EAClD;AAAA,EAEA,OAAO,QAAQH,GAAeC,GAAoBC,GAAsD;AACpG,UAAMU,IAAYC,EAAU,KAAKb,CAAI;AACrC,WAAO,IAAI,KAAKH,EAAQ,YAAYe,GAAWX,GAAUC,CAAa,CAAC;AAAA,EAC3E;AAAA,EAMA,IAAI,iBAAiB;AACjB,WAAO,KAAK,MAAM;AAAA,EACtB;AAAA,EAEA,MAAMY,GAAmB;AACrB,SAAK,OAAOA,GACZ,KAAK,MAAM,MAAMA,CAAI;AAAA,EACzB;AAAA,EAEA,UAAU;AACN,WAAO,KAAK,MACZ,KAAK,MAAM,QAAA;AAAA,EACf;AAAA,EAEA,sBAAsBd,GAAeC,GAAoB;AACrD,QAAIA,EAAS,SAAS,KAAK,MAAM,SAAS,MAAM;AAC5C,YAAMc,IAAWlB,EAAQ,YAAY,KAAK,MAAM,MAAMI,CAAQ;AAE9D,MAAI,KAAK,QACL,KAAK,MAAM,QAAA,GACX,KAAK,QAAQc,GACb,KAAK,MAAM,MAAM,KAAK,IAAI,KAE1B,KAAK,QAAQA;AAAA,IAErB;AACI,WAAK,MAAM,sBAAsBF,EAAU,KAAKb,CAAI,GAAGC,CAAQ;AAAA,EAEvE;AAAA,EAEA,iBAAiBe,GAAeC,GAAgB;AAC5C,SAAK,MAAM,iBAAiBD,GAAOC,CAAK;AAAA,EAC5C;AAAA,EAEA,SAAS;AACL,WAAO,KAAK,MAAM,OAAA;AAAA,EACtB;AACJ;"}
1
+ {"version":3,"file":"MiPlots.js","sources":["../src/MiPlots.ts"],"sourcesContent":["import type {AbstractChart, ChartInterface} from './AbstractChart';\nimport {ChartDendro} from './dendro';\nimport {ChartDiscrete} from './discrete';\nimport {ChartHeatmap} from './heatmap';\nimport {ChartHistogram} from './histogram';\nimport {ChartScatterplot} from './scatterplot';\nimport {ChartScatterplotUmap} from './scatterplot-umap';\nimport {ChartBubble} from './bubble';\nimport {DataFrame} from './DataFrame';\nimport type {\n BubbleEventHandlers,\n ChartEventHandlers,\n DendroEventHandlers,\n DiscreteEventHandlers,\n HeatmapEventHandlers,\n HistogramEventHandlers,\n ScatterplotEventHandlers,\n Settings,\n} from './types';\nimport {exhaustive} from './utils';\nimport type {DataSet} from './DataFrame';\n\nexport class MiPlots implements ChartInterface {\n node?: HTMLElement;\n chart: AbstractChart;\n\n private static createChart(\n data: DataFrame,\n settings: Settings,\n eventHandlers?: ChartEventHandlers<unknown>\n ): AbstractChart {\n const {type} = settings;\n\n if (type === 'discrete') {\n return new ChartDiscrete(data, settings, eventHandlers as DiscreteEventHandlers);\n }\n\n if (type === 'dendro') {\n return new ChartDendro(data, settings, eventHandlers as DendroEventHandlers);\n }\n\n if (type === 'scatterplot') {\n return new ChartScatterplot(data, settings, eventHandlers as ScatterplotEventHandlers);\n }\n\n if (type === 'scatterplot-umap') {\n return new ChartScatterplotUmap(data, settings, eventHandlers as ScatterplotEventHandlers);\n }\n\n if (type === 'heatmap') {\n return new ChartHeatmap(data, settings, eventHandlers as HeatmapEventHandlers);\n }\n\n if (type === 'histogram') {\n return new ChartHistogram(data, settings, eventHandlers as HistogramEventHandlers);\n }\n\n if (type === 'bubble') {\n return new ChartBubble(data, settings, eventHandlers as BubbleEventHandlers);\n }\n\n exhaustive(type, `Unknown chart type: ${type}`);\n }\n\n static newPlot(data: DataSet, settings: Settings, eventHandlers?: ChartEventHandlers<unknown>): MiPlots {\n const dataFrame = DataFrame.from(data);\n return new this(MiPlots.createChart(dataFrame, settings, eventHandlers));\n }\n\n constructor(chart: AbstractChart) {\n this.chart = chart;\n }\n\n get calculatedData() {\n return this.chart.calculatedData;\n }\n\n get hasError() {\n return this.chart.hasError;\n }\n\n mount(node: HTMLElement) {\n this.node = node;\n this.chart.mount(node);\n }\n\n unmount() {\n delete this.node;\n this.chart.unmount();\n }\n\n updateSettingsAndData(data: DataSet, settings: Settings) {\n if (settings.type !== this.chart.settings.type) {\n const newChart = MiPlots.createChart(this.chart.data, settings);\n\n if (this.node) {\n this.chart.unmount();\n this.chart = newChart;\n this.chart.mount(this.node);\n } else {\n this.chart = newChart;\n }\n } else {\n this.chart.updateSettingsAndData(DataFrame.from(data), settings);\n }\n }\n\n updateChartState(field: string, value: unknown) {\n this.chart.updateChartState(field, value);\n }\n\n export() {\n return this.chart.export();\n }\n}\n"],"names":["MiPlots","chart","__publicField","data","settings","eventHandlers","type","ChartDiscrete","ChartDendro","ChartScatterplot","ChartScatterplotUmap","ChartHeatmap","ChartHistogram","ChartBubble","exhaustive","dataFrame","DataFrame","node","newChart","field","value"],"mappings":";;;;;;;;;;;;AAsBO,MAAMA,EAAkC;AAAA,EA+C3C,YAAYC,GAAsB;AA9ClC,IAAAC,EAAA;AACA,IAAAA,EAAA;AA8CI,SAAK,QAAQD;AAAA,EACjB;AAAA,EA7CA,OAAe,YACXE,GACAC,GACAC,GACa;AACb,UAAM,EAAC,MAAAC,MAAQF;AAEf,QAAIE,MAAS;AACT,aAAO,IAAIC,EAAcJ,GAAMC,GAAUC,CAAsC;AAGnF,QAAIC,MAAS;AACT,aAAO,IAAIE,EAAYL,GAAMC,GAAUC,CAAoC;AAG/E,QAAIC,MAAS;AACT,aAAO,IAAIG,EAAiBN,GAAMC,GAAUC,CAAyC;AAGzF,QAAIC,MAAS;AACT,aAAO,IAAII,EAAqBP,GAAMC,GAAUC,CAAyC;AAG7F,QAAIC,MAAS;AACT,aAAO,IAAIK,EAAaR,GAAMC,GAAUC,CAAqC;AAGjF,QAAIC,MAAS;AACT,aAAO,IAAIM,EAAeT,GAAMC,GAAUC,CAAuC;AAGrF,QAAIC,MAAS;AACT,aAAO,IAAIO,EAAYV,GAAMC,GAAUC,CAAoC;AAG/E,IAAAS,EAAWR,GAAM,uBAAuBA,CAAI,EAAE;AAAA,EAClD;AAAA,EAEA,OAAO,QAAQH,GAAeC,GAAoBC,GAAsD;AACpG,UAAMU,IAAYC,EAAU,KAAKb,CAAI;AACrC,WAAO,IAAI,KAAKH,EAAQ,YAAYe,GAAWX,GAAUC,CAAa,CAAC;AAAA,EAC3E;AAAA,EAMA,IAAI,iBAAiB;AACjB,WAAO,KAAK,MAAM;AAAA,EACtB;AAAA,EAEA,IAAI,WAAW;AACX,WAAO,KAAK,MAAM;AAAA,EACtB;AAAA,EAEA,MAAMY,GAAmB;AACrB,SAAK,OAAOA,GACZ,KAAK,MAAM,MAAMA,CAAI;AAAA,EACzB;AAAA,EAEA,UAAU;AACN,WAAO,KAAK,MACZ,KAAK,MAAM,QAAA;AAAA,EACf;AAAA,EAEA,sBAAsBd,GAAeC,GAAoB;AACrD,QAAIA,EAAS,SAAS,KAAK,MAAM,SAAS,MAAM;AAC5C,YAAMc,IAAWlB,EAAQ,YAAY,KAAK,MAAM,MAAMI,CAAQ;AAE9D,MAAI,KAAK,QACL,KAAK,MAAM,QAAA,GACX,KAAK,QAAQc,GACb,KAAK,MAAM,MAAM,KAAK,IAAI,KAE1B,KAAK,QAAQA;AAAA,IAErB;AACI,WAAK,MAAM,sBAAsBF,EAAU,KAAKb,CAAI,GAAGC,CAAQ;AAAA,EAEvE;AAAA,EAEA,iBAAiBe,GAAeC,GAAgB;AAC5C,SAAK,MAAM,iBAAiBD,GAAOC,CAAK;AAAA,EAC5C;AAAA,EAEA,SAAS;AACL,WAAO,KAAK,MAAM,OAAA;AAAA,EACtB;AACJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bubble/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAEpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EAAQ,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGpE,qBAAa,WAAY,SAAQ,aAAa;IAC1C,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;IAE7B,mBAAmB,EAAE,CAAC,CAAC,EAAC,OAAO,KAAK,IAAI,CAAmB;IAC3D,cAAc,EAAE;QACZ,gBAAgB,EAAE,gBAAgB,CAAC;KACtC,GAAG,IAAI,CAAQ;gBAEJ,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE,mBAAmB;IAU1F,KAAK,CAAC,IAAI,EAAE,WAAW;IAavB,OAAO;IAIP,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc;IAuB/D,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAIhD,MAAM,IAAI,MAAM;IAKhB,mCAAmC,CAAC,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB;IAWlG,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAUpE,WAAW;IAyBX,gBAAgB;IAOhB,YAAY;IAoBZ,OAAO,CAAC,WAAW,CAIjB;CACL"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bubble/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAEpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EAAQ,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGpE,qBAAa,WAAY,SAAQ,aAAa;IAC1C,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;IAE7B,mBAAmB,EAAE,CAAC,CAAC,EAAC,OAAO,KAAK,IAAI,CAAmB;IAC3D,cAAc,EAAE;QACZ,gBAAgB,EAAE,gBAAgB,CAAC;KACtC,GAAG,IAAI,CAAQ;gBAEJ,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE,mBAAmB;IAU1F,KAAK,CAAC,IAAI,EAAE,WAAW;IAevB,OAAO;IAIP,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc;IAyB/D,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAIhD,MAAM,IAAI,MAAM;IAKhB,mCAAmC,CAAC,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB;IAWlG,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAUpE,WAAW;IAyBX,gBAAgB;IAOhB,YAAY;IAoBZ,OAAO,CAAC,WAAW,CAIjB;CACL"}
@@ -1,6 +1,6 @@
1
1
  var f = Object.defineProperty;
2
- var D = (i, n, t) => n in i ? f(i, n, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[n] = t;
3
- var s = (i, n, t) => D(i, typeof n != "symbol" ? n + "" : n, t);
2
+ var D = (n, i, t) => i in n ? f(n, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[i] = t;
3
+ var s = (n, i, t) => D(n, typeof i != "symbol" ? i + "" : i, t);
4
4
  import { renderToString as g } from "../node_modules/react-dom/server.browser.js";
5
5
  import { AbstractChart as y } from "../AbstractChart.js";
6
6
  import { getKeysCombinations as _ } from "../utils/getKeysCombination.js";
@@ -17,16 +17,16 @@ class K extends y {
17
17
  });
18
18
  s(this, "calculatedData", null);
19
19
  s(this, "_getTooltip", (t) => {
20
- var a, e, o;
21
- return this.calculatedData ? b(this.data, t, this.calculatedData.groupedCellsData.meta, (o = (e = (a = this.settings) == null ? void 0 : a.chartSettings) == null ? void 0 : e.tooltips) == null ? void 0 : o.content) : ["No data available"];
20
+ var a, e, r;
21
+ return this.calculatedData ? b(this.data, t, this.calculatedData.groupedCellsData.meta, (r = (e = (a = this.settings) == null ? void 0 : a.chartSettings) == null ? void 0 : e.tooltips) == null ? void 0 : r.content) : ["No data available"];
22
22
  });
23
23
  this.settings = new m(a), this.chartRenderer = new v(), e && (this.onTooltipHintSwitch = e[0]);
24
24
  }
25
25
  mount(t) {
26
26
  try {
27
- this.chartRenderer.init(t), this._updateData(), this._updateChart();
27
+ this.chartRenderer.init(t), this._updateData(), this._updateChart(), this.hasError = !1;
28
28
  } catch (a) {
29
- a instanceof Error && (this.chartRenderer.renderError(a.message), console.error(a));
29
+ this.hasError = !0, a instanceof Error && (this.chartRenderer.renderError(a.message), console.error(a));
30
30
  }
31
31
  }
32
32
  unmount() {
@@ -34,10 +34,10 @@ class K extends y {
34
34
  }
35
35
  updateSettingsAndData(t, a) {
36
36
  try {
37
- const e = this.settings, o = this.data;
38
- this.settings = new m(a), this.data = t, this._needUpdateCalculatedDataBySettings(e, this.settings) || this._needUpdateCalculatedDataByData(o, this.data) ? this._updateData() : this._updateAesInData(), this._updateChart();
37
+ const e = this.settings, r = this.data;
38
+ this.settings = new m(a), this.data = t, this._needUpdateCalculatedDataBySettings(e, this.settings) || this._needUpdateCalculatedDataByData(r, this.data) ? this._updateData() : this._updateAesInData(), this._updateChart(), this.hasError = !1;
39
39
  } catch (e) {
40
- e instanceof Error && (this.chartRenderer.renderError(e.message), console.error(e));
40
+ this.hasError = !0, e instanceof Error && (this.chartRenderer.renderError(e.message), console.error(e));
41
41
  }
42
42
  }
43
43
  updateChartState(t, a) {
@@ -47,30 +47,30 @@ class K extends y {
47
47
  return this._updateChart(), g(this.chartRenderer.component);
48
48
  }
49
49
  _needUpdateCalculatedDataBySettings(t, a) {
50
- var e, o, r, l;
51
- return t.facetBy.some((u, c) => {
52
- var h;
53
- return u.value !== ((h = a.facetBy[c]) == null ? void 0 : h.value);
54
- }) || ((e = t.normalization) == null ? void 0 : e.method) !== ((o = a.normalization) == null ? void 0 : o.method) || ((r = t.normalization) == null ? void 0 : r.direction) !== ((l = a.normalization) == null ? void 0 : l.direction) || t.xColumn.value !== a.xColumn.value || t.yColumn.value !== a.yColumn.value || t.valueColumnColor.value !== a.valueColumnColor.value || t.valueColumnSize.value !== a.valueColumnSize.value || t.NAValueAs !== a.NAValueAs;
50
+ var e, r, o, l;
51
+ return t.facetBy.some((u, h) => {
52
+ var c;
53
+ return u.value !== ((c = a.facetBy[h]) == null ? void 0 : c.value);
54
+ }) || ((e = t.normalization) == null ? void 0 : e.method) !== ((r = a.normalization) == null ? void 0 : r.method) || ((o = t.normalization) == null ? void 0 : o.direction) !== ((l = a.normalization) == null ? void 0 : l.direction) || t.xColumn.value !== a.xColumn.value || t.yColumn.value !== a.yColumn.value || t.valueColumnColor.value !== a.valueColumnColor.value || t.valueColumnSize.value !== a.valueColumnSize.value || t.NAValueAs !== a.NAValueAs;
55
55
  }
56
56
  _needUpdateCalculatedDataByData(t, a) {
57
- const e = Object.keys(t.data), o = Object.keys(a.data);
58
- return t.id !== a.id || e.length !== o.length || e.some((r) => {
57
+ const e = Object.keys(t.data), r = Object.keys(a.data);
58
+ return t.id !== a.id || e.length !== r.length || e.some((o) => {
59
59
  var l;
60
- return t.data[r].length !== ((l = a.data[r]) == null ? void 0 : l.length);
60
+ return t.data[o].length !== ((l = a.data[o]) == null ? void 0 : l.length);
61
61
  });
62
62
  }
63
63
  _updateData() {
64
- const { facetBy: t, xColumn: a, yColumn: e, valueColumnSize: o, valueColumnColor: r, normalization: l, NAValueAs: u } = this.settings, c = t.map((d) => this.data.getColumnCategories(d.value)), h = c.length ? _([...c]) : [["null"]], C = t.map((d) => d.value) ?? null;
64
+ const { facetBy: t, xColumn: a, yColumn: e, valueColumnSize: r, valueColumnColor: o, normalization: l, NAValueAs: u } = this.settings, h = t.map((d) => this.data.getColumnCategories(d.value)), c = h.length ? _([...h]) : [["null"]], C = t.map((d) => d.value) ?? null;
65
65
  this.data.setGrouping([...C]);
66
66
  const p = z(
67
67
  this.data,
68
68
  a,
69
69
  e,
70
- o,
71
70
  r,
71
+ o,
72
72
  t,
73
- h,
73
+ c,
74
74
  l,
75
75
  u
76
76
  );
@@ -84,15 +84,15 @@ class K extends y {
84
84
  _updateChart() {
85
85
  if (!this.calculatedData)
86
86
  return;
87
- const { id: t, chartSettings: a, facetSettings: e, valueColumnColor: o, valueColumnSize: r, normalization: l, aes: u } = this.settings;
87
+ const { id: t, chartSettings: a, facetSettings: e, valueColumnColor: r, valueColumnSize: o, normalization: l, aes: u } = this.settings;
88
88
  this.chartRenderer.render(
89
89
  this.data,
90
90
  t,
91
91
  a,
92
92
  e,
93
93
  this.calculatedData.groupedCellsData,
94
- o,
95
94
  r,
95
+ o,
96
96
  l,
97
97
  u,
98
98
  this._getTooltip,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/bubble/index.ts"],"sourcesContent":["import { renderToString } from 'react-dom/server';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport type { BubbleEventHandlers, BubbleSettings } from '../types';\nimport { getKeysCombinations } from '../utils/getKeysCombination';\nimport { BubbleSettingsImpl } from './BubbleSettingsImpl';\nimport ChartRenderer from './ChartRenderer';\nimport { getCellTooltip } from './getCellTooltip';\nimport type { Cell, GroupedCellsData } from './getGroupedCellsData';\nimport { getGroupedCellsData } from './getGroupedCellsData';\n\nexport class ChartBubble extends AbstractChart {\n settings: BubbleSettingsImpl;\n chartRenderer: ChartRenderer;\n\n onTooltipHintSwitch: (v:boolean) => void = () => undefined;\n calculatedData: {\n groupedCellsData: GroupedCellsData;\n } | null = null;\n\n constructor(data: DataFrame, settings: BubbleSettings, eventHandlers?: BubbleEventHandlers) {\n super(data, settings);\n\n this.settings = new BubbleSettingsImpl(settings);\n this.chartRenderer = new ChartRenderer();\n if (eventHandlers) {\n this.onTooltipHintSwitch = eventHandlers[0];\n }\n }\n\n mount(node: HTMLElement) {\n try {\n this.chartRenderer.init(node);\n this._updateData();\n this._updateChart();\n } catch (err) {\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n unmount() {\n this.chartRenderer.clear();\n }\n\n updateSettingsAndData(data: DataFrame, settings: BubbleSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new BubbleSettingsImpl(settings);\n this.data = data;\n if (\n this._needUpdateCalculatedDataBySettings(previousSettings, this.settings) ||\n this._needUpdateCalculatedDataByData(previousData, this.data)\n ) {\n this._updateData();\n } else {\n this._updateAesInData();\n }\n this._updateChart();\n } catch (err) {\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n updateChartState(_field: string, _value: unknown) {\n console.warn('no chart state for bubble chart');\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: BubbleSettingsImpl, settings: BubbleSettingsImpl) {\n return prevSettings.facetBy.some((el, idx) => el.value !== settings.facetBy[idx]?.value) ||\n prevSettings.normalization?.method !== settings.normalization?.method ||\n prevSettings.normalization?.direction !== settings.normalization?.direction ||\n prevSettings.xColumn.value !== settings.xColumn.value ||\n prevSettings.yColumn.value !== settings.yColumn.value ||\n prevSettings.valueColumnColor.value !== settings.valueColumnColor.value ||\n prevSettings.valueColumnSize.value !== settings.valueColumnSize.value ||\n prevSettings.NAValueAs !== settings.NAValueAs;\n }\n\n _needUpdateCalculatedDataByData(prevData: DataFrame, data: DataFrame) {\n const prevKeys = Object.keys(prevData.data);\n const keys = Object.keys(data.data);\n return (\n prevData.id !== data.id ||\n prevKeys.length !== keys.length ||\n prevKeys.some(key => prevData.data[key].length !== data.data[key]?.length)\n );\n }\n\n _updateData() {\n const {facetBy, xColumn, yColumn, valueColumnSize, valueColumnColor, normalization, NAValueAs} = this.settings;\n\n const facetKeysLists = facetBy.map(column => this.data.getColumnCategories(column.value));\n const facetKeysCombinations = facetKeysLists.length ? getKeysCombinations([...facetKeysLists]) : [['null']];\n const facetGroupingValues = facetBy.map(column => column.value) ?? null;\n\n this.data.setGrouping([...facetGroupingValues]);\n\n const groupedCellsData = getGroupedCellsData(\n this.data,\n xColumn,\n yColumn,\n valueColumnSize,\n valueColumnColor,\n facetBy,\n facetKeysCombinations,\n normalization,\n NAValueAs\n );\n this.calculatedData = {\n groupedCellsData,\n };\n }\n\n _updateAesInData() {\n const calculated = this.calculatedData;\n if (!calculated) {\n return;\n }\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {id, chartSettings, facetSettings, valueColumnColor, valueColumnSize, normalization, aes} = this.settings;\n this.chartRenderer.render(\n this.data,\n id,\n chartSettings,\n facetSettings,\n this.calculatedData.groupedCellsData,\n valueColumnColor,\n valueColumnSize,\n normalization,\n aes,\n this._getTooltip,\n this.onTooltipHintSwitch\n );\n }\n\n private _getTooltip = (cell: Cell): string[] => {\n return this.calculatedData\n ? getCellTooltip(this.data, cell, this.calculatedData.groupedCellsData.meta, this.settings?.chartSettings?.tooltips?.content)\n : ['No data available'];\n };\n}\n"],"names":["ChartBubble","AbstractChart","data","settings","eventHandlers","__publicField","cell","getCellTooltip","_c","_b","_a","BubbleSettingsImpl","ChartRenderer","node","err","previousSettings","previousData","_field","_value","renderToString","prevSettings","el","idx","_d","prevData","prevKeys","keys","key","facetBy","xColumn","yColumn","valueColumnSize","valueColumnColor","normalization","NAValueAs","facetKeysLists","column","facetKeysCombinations","getKeysCombinations","facetGroupingValues","groupedCellsData","getGroupedCellsData","id","chartSettings","facetSettings","aes"],"mappings":";;;;;;;;;;AAWO,MAAMA,UAAoBC,EAAc;AAAA,EAS3C,YAAYC,GAAiBC,GAA0BC,GAAqC;AACxF,UAAMF,GAAMC,CAAQ;AATxB,IAAAE,EAAA;AACA,IAAAA,EAAA;AAEA,IAAAA,EAAA,6BAA2C,MAAA;AAAA;AAC3C,IAAAA,EAAA,wBAEW;AAsIH,IAAAA,EAAA,qBAAc,CAACC,MAAyB;;AAC5C,aAAO,KAAK,iBACNC,EAAe,KAAK,MAAMD,GAAM,KAAK,eAAe,iBAAiB,OAAME,KAAAC,KAAAC,IAAA,KAAK,aAAL,gBAAAA,EAAe,kBAAf,gBAAAD,EAA8B,aAA9B,gBAAAD,EAAwC,OAAO,IAC1H,CAAC,mBAAmB;AAAA,IAC9B;AArII,SAAK,WAAW,IAAIG,EAAmBR,CAAQ,GAC/C,KAAK,gBAAgB,IAAIS,EAAA,GACrBR,MACA,KAAK,sBAAsBA,EAAc,CAAC;AAAA,EAElD;AAAA,EAEA,MAAMS,GAAmB;AACrB,QAAI;AACA,WAAK,cAAc,KAAKA,CAAI,GAC5B,KAAK,YAAA,GACL,KAAK,aAAA;AAAA,IACT,SAASC,GAAK;AACV,MAAIA,aAAe,UACf,KAAK,cAAc,YAAYA,EAAI,OAAiB,GACpD,QAAQ,MAAMA,CAAG;AAAA,IAEzB;AAAA,EACJ;AAAA,EAEA,UAAU;AACN,SAAK,cAAc,MAAA;AAAA,EACvB;AAAA,EAEA,sBAAsBZ,GAAiBC,GAA0B;AAC7D,QAAI;AACA,YAAMY,IAAmB,KAAK,UACxBC,IAAe,KAAK;AAC1B,WAAK,WAAW,IAAIL,EAAmBR,CAAQ,GAC/C,KAAK,OAAOD,GAER,KAAK,oCAAoCa,GAAkB,KAAK,QAAQ,KACxE,KAAK,gCAAgCC,GAAc,KAAK,IAAI,IAE5D,KAAK,YAAA,IAEL,KAAK,iBAAA,GAET,KAAK,aAAA;AAAA,IACT,SAASF,GAAK;AACV,MAAIA,aAAe,UACf,KAAK,cAAc,YAAYA,EAAI,OAAiB,GACpD,QAAQ,MAAMA,CAAG;AAAA,IAEzB;AAAA,EACJ;AAAA,EAEA,iBAAiBG,GAAgBC,GAAiB;AAC9C,YAAQ,KAAK,iCAAiC;AAAA,EAClD;AAAA,EAEA,SAAiB;AACb,gBAAK,aAAA,GACEC,EAAe,KAAK,cAAc,SAAS;AAAA,EACtD;AAAA,EAEA,oCAAoCC,GAAkCjB,GAA8B;;AAChG,WAAOiB,EAAa,QAAQ,KAAK,CAACC,GAAIC;;AAAQ,aAAAD,EAAG,YAAUX,IAAAP,EAAS,QAAQmB,CAAG,MAApB,gBAAAZ,EAAuB;AAAA,KAAK,OACnFA,IAAAU,EAAa,kBAAb,gBAAAV,EAA4B,cAAWD,IAAAN,EAAS,kBAAT,gBAAAM,EAAwB,aAC/DD,IAAAY,EAAa,kBAAb,gBAAAZ,EAA4B,iBAAce,IAAApB,EAAS,kBAAT,gBAAAoB,EAAwB,cAClEH,EAAa,QAAQ,UAAUjB,EAAS,QAAQ,SAChDiB,EAAa,QAAQ,UAAUjB,EAAS,QAAQ,SAChDiB,EAAa,iBAAiB,UAAUjB,EAAS,iBAAiB,SAClEiB,EAAa,gBAAgB,UAAUjB,EAAS,gBAAgB,SAChEiB,EAAa,cAAcjB,EAAS;AAAA,EAC5C;AAAA,EAEA,gCAAgCqB,GAAqBtB,GAAiB;AAClE,UAAMuB,IAAW,OAAO,KAAKD,EAAS,IAAI,GACpCE,IAAO,OAAO,KAAKxB,EAAK,IAAI;AAClC,WACIsB,EAAS,OAAOtB,EAAK,MACrBuB,EAAS,WAAWC,EAAK,UACzBD,EAAS,KAAK;;AAAO,aAAAD,EAAS,KAAKG,CAAG,EAAE,aAAWjB,IAAAR,EAAK,KAAKyB,CAAG,MAAb,gBAAAjB,EAAgB;AAAA,KAAM;AAAA,EAEjF;AAAA,EAEA,cAAc;AACV,UAAM,EAAC,SAAAkB,GAAS,SAAAC,GAAS,SAAAC,GAAS,iBAAAC,GAAiB,kBAAAC,GAAkB,eAAAC,GAAe,WAAAC,MAAa,KAAK,UAEhGC,IAAiBP,EAAQ,IAAI,CAAAQ,MAAU,KAAK,KAAK,oBAAoBA,EAAO,KAAK,CAAC,GAClFC,IAAwBF,EAAe,SAASG,EAAoB,CAAC,GAAGH,CAAc,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,GACpGI,IAAsBX,EAAQ,IAAI,CAAAQ,MAAUA,EAAO,KAAK,KAAK;AAEnE,SAAK,KAAK,YAAY,CAAC,GAAGG,CAAmB,CAAC;AAE9C,UAAMC,IAAmBC;AAAA,MACrB,KAAK;AAAA,MACLZ;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,MACAJ;AAAA,MACAS;AAAA,MACAJ;AAAA,MACAC;AAAA,IAAA;AAEJ,SAAK,iBAAiB;AAAA,MAClB,kBAAAM;AAAA,IAAA;AAAA,EAER;AAAA,EAEA,mBAAmB;AAEf,IADmB,KAAK;AAAA,EAI5B;AAAA,EAEA,eAAe;AACX,QAAI,CAAC,KAAK;AACN;AAEJ,UAAM,EAAC,IAAAE,GAAI,eAAAC,GAAe,eAAAC,GAAe,kBAAAZ,GAAkB,iBAAAD,GAAiB,eAAAE,GAAe,KAAAY,MAAO,KAAK;AACvG,SAAK,cAAc;AAAA,MACf,KAAK;AAAA,MACLH;AAAA,MACAC;AAAA,MACAC;AAAA,MACA,KAAK,eAAe;AAAA,MACpBZ;AAAA,MACAD;AAAA,MACAE;AAAA,MACAY;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,IAAA;AAAA,EAEb;AAOJ;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/bubble/index.ts"],"sourcesContent":["import { renderToString } from 'react-dom/server';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport type { BubbleEventHandlers, BubbleSettings } from '../types';\nimport { getKeysCombinations } from '../utils/getKeysCombination';\nimport { BubbleSettingsImpl } from './BubbleSettingsImpl';\nimport ChartRenderer from './ChartRenderer';\nimport { getCellTooltip } from './getCellTooltip';\nimport type { Cell, GroupedCellsData } from './getGroupedCellsData';\nimport { getGroupedCellsData } from './getGroupedCellsData';\n\nexport class ChartBubble extends AbstractChart {\n settings: BubbleSettingsImpl;\n chartRenderer: ChartRenderer;\n\n onTooltipHintSwitch: (v:boolean) => void = () => undefined;\n calculatedData: {\n groupedCellsData: GroupedCellsData;\n } | null = null;\n\n constructor(data: DataFrame, settings: BubbleSettings, eventHandlers?: BubbleEventHandlers) {\n super(data, settings);\n\n this.settings = new BubbleSettingsImpl(settings);\n this.chartRenderer = new ChartRenderer();\n if (eventHandlers) {\n this.onTooltipHintSwitch = eventHandlers[0];\n }\n }\n\n mount(node: HTMLElement) {\n try {\n this.chartRenderer.init(node);\n this._updateData();\n this._updateChart();\n this.hasError = false;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n unmount() {\n this.chartRenderer.clear();\n }\n\n updateSettingsAndData(data: DataFrame, settings: BubbleSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new BubbleSettingsImpl(settings);\n this.data = data;\n if (\n this._needUpdateCalculatedDataBySettings(previousSettings, this.settings) ||\n this._needUpdateCalculatedDataByData(previousData, this.data)\n ) {\n this._updateData();\n } else {\n this._updateAesInData();\n }\n this._updateChart();\n this.hasError = false;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n updateChartState(_field: string, _value: unknown) {\n console.warn('no chart state for bubble chart');\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: BubbleSettingsImpl, settings: BubbleSettingsImpl) {\n return prevSettings.facetBy.some((el, idx) => el.value !== settings.facetBy[idx]?.value) ||\n prevSettings.normalization?.method !== settings.normalization?.method ||\n prevSettings.normalization?.direction !== settings.normalization?.direction ||\n prevSettings.xColumn.value !== settings.xColumn.value ||\n prevSettings.yColumn.value !== settings.yColumn.value ||\n prevSettings.valueColumnColor.value !== settings.valueColumnColor.value ||\n prevSettings.valueColumnSize.value !== settings.valueColumnSize.value ||\n prevSettings.NAValueAs !== settings.NAValueAs;\n }\n\n _needUpdateCalculatedDataByData(prevData: DataFrame, data: DataFrame) {\n const prevKeys = Object.keys(prevData.data);\n const keys = Object.keys(data.data);\n return (\n prevData.id !== data.id ||\n prevKeys.length !== keys.length ||\n prevKeys.some(key => prevData.data[key].length !== data.data[key]?.length)\n );\n }\n\n _updateData() {\n const {facetBy, xColumn, yColumn, valueColumnSize, valueColumnColor, normalization, NAValueAs} = this.settings;\n\n const facetKeysLists = facetBy.map(column => this.data.getColumnCategories(column.value));\n const facetKeysCombinations = facetKeysLists.length ? getKeysCombinations([...facetKeysLists]) : [['null']];\n const facetGroupingValues = facetBy.map(column => column.value) ?? null;\n\n this.data.setGrouping([...facetGroupingValues]);\n\n const groupedCellsData = getGroupedCellsData(\n this.data,\n xColumn,\n yColumn,\n valueColumnSize,\n valueColumnColor,\n facetBy,\n facetKeysCombinations,\n normalization,\n NAValueAs\n );\n this.calculatedData = {\n groupedCellsData,\n };\n }\n\n _updateAesInData() {\n const calculated = this.calculatedData;\n if (!calculated) {\n return;\n }\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {id, chartSettings, facetSettings, valueColumnColor, valueColumnSize, normalization, aes} = this.settings;\n this.chartRenderer.render(\n this.data,\n id,\n chartSettings,\n facetSettings,\n this.calculatedData.groupedCellsData,\n valueColumnColor,\n valueColumnSize,\n normalization,\n aes,\n this._getTooltip,\n this.onTooltipHintSwitch\n );\n }\n\n private _getTooltip = (cell: Cell): string[] => {\n return this.calculatedData\n ? getCellTooltip(this.data, cell, this.calculatedData.groupedCellsData.meta, this.settings?.chartSettings?.tooltips?.content)\n : ['No data available'];\n };\n}\n"],"names":["ChartBubble","AbstractChart","data","settings","eventHandlers","__publicField","cell","getCellTooltip","_c","_b","_a","BubbleSettingsImpl","ChartRenderer","node","err","previousSettings","previousData","_field","_value","renderToString","prevSettings","el","idx","_d","prevData","prevKeys","keys","key","facetBy","xColumn","yColumn","valueColumnSize","valueColumnColor","normalization","NAValueAs","facetKeysLists","column","facetKeysCombinations","getKeysCombinations","facetGroupingValues","groupedCellsData","getGroupedCellsData","id","chartSettings","facetSettings","aes"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  export declare function Error({ message }: {
2
- message: string;
2
+ message?: string;
3
3
  }): import("react/jsx-runtime").JSX.Element;
4
4
  //# sourceMappingURL=Error.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Error.d.ts","sourceRoot":"","sources":["../../src/common/Error.tsx"],"names":[],"mappings":"AAEA,wBAAgB,KAAK,CAAC,EAAC,OAAO,EAAC,EAAE;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,2CAoBjD"}
1
+ {"version":3,"file":"Error.d.ts","sourceRoot":"","sources":["../../src/common/Error.tsx"],"names":[],"mappings":"AAEA,wBAAgB,KAAK,CAAC,EAAC,OAAO,EAAC,EAAE;IAAC,OAAO,CAAC,EAAC,MAAM,CAAA;CAAC,2CAIjD"}
@@ -1,26 +1,8 @@
1
- import { j as t } from "../node_modules/react/jsx-runtime.js";
2
- function r({ message: e }) {
3
- return /* @__PURE__ */ t.jsx(
4
- "div",
5
- {
6
- style: {
7
- width: "500px",
8
- height: "400px",
9
- color: "#ee1616",
10
- display: "flex",
11
- alignItems: "center",
12
- justifyContent: "center",
13
- fontSize: "25px",
14
- fontFamily: "Arial",
15
- border: "1px solid",
16
- padding: "20px",
17
- lineHeight: "25px"
18
- },
19
- children: e
20
- }
21
- );
1
+ import { j as r } from "../node_modules/react/jsx-runtime.js";
2
+ function s({ message: t }) {
3
+ return /* @__PURE__ */ r.jsx("div", { style: { width: "500px", height: "400px" } });
22
4
  }
23
5
  export {
24
- r as Error
6
+ s as Error
25
7
  };
26
8
  //# sourceMappingURL=Error.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Error.js","sources":["../../src/common/Error.tsx"],"sourcesContent":["import React from 'react';\n\nexport function Error({message}: {message: string}) {\n return (\n <div\n style={{\n width: '500px',\n height: '400px',\n color: '#ee1616',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '25px',\n fontFamily: 'Arial',\n border: '1px solid',\n padding: '20px',\n lineHeight: '25px'\n }}\n >\n {message}\n </div>\n );\n}\n"],"names":["Error","message","jsx"],"mappings":";AAEO,SAASA,EAAM,EAAC,SAAAC,KAA6B;AAChD,SACIC,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACG,OAAO;AAAA,QACH,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,YAAY;AAAA,MAAA;AAAA,MAGf,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGb;"}
1
+ {"version":3,"file":"Error.js","sources":["../../src/common/Error.tsx"],"sourcesContent":["import React from 'react';\n\nexport function Error({message}: {message?:string}) {\n return (\n <div style={{width: '500px', height: '400px'}} />\n );\n}\n"],"names":["Error","message","jsx"],"mappings":";AAEO,SAASA,EAAM,EAAC,SAAAC,KAA6B;AAChD,SACIC,gBAAAA,EAAAA,IAAC,SAAI,OAAO,EAAC,OAAO,SAAS,QAAQ,WAAU;AAEvD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dendro/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAKR,cAAc,EAGd,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EAGjB,MAAM,UAAU,CAAC;AAClB,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAiEvD,qBAAa,WAAY,SAAQ,aAAa;IAC1C,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAmB;IAC1D,aAAa,gBAAuB;IAEpC,cAAc,EAAE;QACZ,UAAU,EAAE,UAAU,CAAC;QACvB,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QACvC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;QAChC,YAAY,EAAE,gBAAgB,CAAC;KAClC,GAAG,IAAI,CAAQ;gBAEJ,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE,mBAAmB;IAS1F,KAAK,CAAC,IAAI,EAAE,WAAW;IAavB,OAAO;IAIP,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc;IAuB/D,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAO9C,MAAM,IAAI,MAAM;IAKhB,mCAAmC,CAAC,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB;IAoBlG,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAUpE,WAAW;IAsBX,gBAAgB;IAOhB,YAAY;CAyCf"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dendro/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAIlD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAKR,cAAc,EAGd,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EAGjB,MAAM,UAAU,CAAC;AAClB,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAiEvD,qBAAa,WAAY,SAAQ,aAAa;IAC1C,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAmB;IAC1D,aAAa,gBAAuB;IAEpC,cAAc,EAAE;QACZ,UAAU,EAAE,UAAU,CAAC;QACvB,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QACvC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;QAChC,YAAY,EAAE,gBAAgB,CAAC;KAClC,GAAG,IAAI,CAAQ;gBAEJ,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAC,EAAE,mBAAmB;IAS1F,KAAK,CAAC,IAAI,EAAE,WAAW;IAevB,OAAO;IAIP,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc;IAyB/D,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;IAO9C,MAAM,IAAI,MAAM;IAKhB,mCAAmC,CAAC,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB;IAoBlG,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAUpE,WAAW;IAsBX,gBAAgB;IAOhB,YAAY;CAyCf"}
@@ -3,7 +3,7 @@ var A = (l, h, e) => h in l ? _(l, h, { enumerable: !0, configurable: !0, writab
3
3
  var v = (l, h, e) => A(l, typeof h != "symbol" ? h + "" : h, e);
4
4
  import { l as L } from "../node_modules/lodash/lodash.js";
5
5
  import { renderToString as S } from "../node_modules/react-dom/server.browser.js";
6
- import { undefined as b } from "../node_modules/zod/lib/index.js";
6
+ import { undefined as E } from "../node_modules/zod/lib/index.js";
7
7
  import { AbstractChart as y } from "../AbstractChart.js";
8
8
  import R from "./ChartRenderer.js";
9
9
  import { USER_UPDATE_EVENT as w } from "./constants.js";
@@ -17,38 +17,38 @@ function D(l, h) {
17
17
  const { nodeColor: e, nodeShape: t, lineColor: s } = h, u = [e, t, s].filter(
18
18
  g
19
19
  );
20
- return L.uniqBy(u, (n) => n.columnName.value).reduce((n, p) => {
21
- const { columnName: r } = p, o = l.getColumnCategories(r.value, !1), m = (a) => String(
22
- (r.valueLabels ? l.getColumnValue(r.valueLabels, l.getColumnCategoryRowIndex(r.value, a)) : b) ?? a
20
+ return L.uniqBy(u, (r) => r.columnName.value).reduce((r, p) => {
21
+ const { columnName: n } = p, o = l.getColumnCategories(n.value, !1), m = (a) => String(
22
+ (n.valueLabels ? l.getColumnValue(n.valueLabels, l.getColumnCategoryRowIndex(n.value, a)) : E) ?? a
23
23
  ), i = /* @__PURE__ */ new Set(), d = o.reduce((a, f) => (a[f] || (a[f] = {}), a), {});
24
- return g(e) && r.value === e.columnName.value && (i.add("dotFill"), o.forEach((a) => {
24
+ return g(e) && n.value === e.columnName.value && (i.add("dotFill"), o.forEach((a) => {
25
25
  d[a].dotFill = e.valuesMap[a];
26
- })), g(t) && r.value === t.columnName.value && (i.add("dotShape"), o.forEach((a) => {
26
+ })), g(t) && n.value === t.columnName.value && (i.add("dotShape"), o.forEach((a) => {
27
27
  d[a].dotShape = t.valuesMap[a];
28
- })), g(s) && r.value === s.columnName.value && (i.add("lineColor"), o.forEach((a) => {
28
+ })), g(s) && n.value === s.columnName.value && (i.add("lineColor"), o.forEach((a) => {
29
29
  d[a].lineColor = s.valuesMap[a];
30
- })), n[r.value] = {
30
+ })), r[n.value] = {
31
31
  values: o.sort(),
32
32
  usedAes: [...i],
33
33
  aesMap: d,
34
34
  labels: o.reduce((a, f) => (a[f] = m(f), a), {})
35
- }, n;
35
+ }, r;
36
36
  }, {});
37
37
  }
38
38
  class z extends y {
39
39
  constructor(e, t, s) {
40
40
  super(e, t);
41
41
  v(this, "settings");
42
- v(this, "onClick", () => b);
42
+ v(this, "onClick", () => E);
43
43
  v(this, "chartRenderer", new R());
44
44
  v(this, "calculatedData", null);
45
45
  this.settings = new C(t), s && (this.onClick = s[0]);
46
46
  }
47
47
  mount(e) {
48
48
  try {
49
- this.chartRenderer.init(e), this._updateData(), this._updateChart();
49
+ this.chartRenderer.init(e), this._updateData(), this._updateChart(), this.hasError = !1;
50
50
  } catch (t) {
51
- t instanceof Error && (this.chartRenderer.renderError(t.message), console.error(t));
51
+ this.hasError = !0, t instanceof Error && (this.chartRenderer.renderError(t.message), console.error(t));
52
52
  }
53
53
  }
54
54
  unmount() {
@@ -57,9 +57,9 @@ class z extends y {
57
57
  updateSettingsAndData(e, t) {
58
58
  try {
59
59
  const s = this.settings, u = this.data;
60
- this.settings = new C(t), this.data = e, this._needUpdateCalculatedDataBySettings(s, this.settings) || this._needUpdateCalculatedDataByData(u, this.data) ? this._updateData() : this._updateAesInData(), this._updateChart();
60
+ this.settings = new C(t), this.data = e, this._needUpdateCalculatedDataBySettings(s, this.settings) || this._needUpdateCalculatedDataByData(u, this.data) ? this._updateData() : this._updateAesInData(), this._updateChart(), this.hasError = !1;
61
61
  } catch (s) {
62
- s instanceof Error && (this.chartRenderer.renderError(s.message), console.error(s));
62
+ this.hasError = !0, s instanceof Error && (this.chartRenderer.renderError(s.message), console.error(s));
63
63
  }
64
64
  }
65
65
  updateChartState(e, t) {
@@ -73,28 +73,28 @@ class z extends y {
73
73
  }
74
74
  _needUpdateCalculatedDataBySettings(e, t) {
75
75
  var m, i;
76
- const { mode: s, id: u, parentId: c, heatmapAnnotation: n, heatmapAxis: p, heatmapGroup: r } = t;
76
+ const { mode: s, id: u, parentId: c, heatmapAnnotation: r, heatmapAxis: p, heatmapGroup: n } = t;
77
77
  function o(d, a) {
78
- return d.length !== a.length || d.some((f, E) => f.value !== a[E].value);
78
+ return d.length !== a.length || d.some((f, b) => f.value !== a[b].value);
79
79
  }
80
- return e.mode !== s || e.id.value !== u.value || e.parentId.value !== c.value || ((m = e.heatmapAnnotation) == null ? void 0 : m.value) !== (n == null ? void 0 : n.value) || ((i = e.heatmapAxis) == null ? void 0 : i.value) !== (p == null ? void 0 : p.value) || o(e.heatmapGroup, r);
80
+ return e.mode !== s || e.id.value !== u.value || e.parentId.value !== c.value || ((m = e.heatmapAnnotation) == null ? void 0 : m.value) !== (r == null ? void 0 : r.value) || ((i = e.heatmapAxis) == null ? void 0 : i.value) !== (p == null ? void 0 : p.value) || o(e.heatmapGroup, n);
81
81
  }
82
82
  _needUpdateCalculatedDataByData(e, t) {
83
83
  const s = Object.keys(e.data), u = Object.keys(t.data);
84
84
  return e.id !== t.id || s.length !== u.length || s.some((c) => {
85
- var n;
86
- return e.data[c].length !== ((n = t.data[c]) == null ? void 0 : n.length);
85
+ var r;
86
+ return e.data[c].length !== ((r = t.data[c]) == null ? void 0 : r.length);
87
87
  });
88
88
  }
89
89
  _updateData() {
90
- const { mode: e, id: t, parentId: s, aes: u, heatmapAnnotation: c, heatmapAxis: n, heatmapGroup: p, heatmapSettings: r, height: o, labels: m } = this.settings, i = I(
90
+ const { mode: e, id: t, parentId: s, aes: u, heatmapAnnotation: c, heatmapAxis: r, heatmapGroup: p, heatmapSettings: n, height: o, labels: m } = this.settings, i = I(
91
91
  this.data,
92
92
  t.value,
93
93
  s.value,
94
94
  (o == null ? void 0 : o.value) ?? null,
95
95
  m.valueLabels ?? m.value ?? null,
96
96
  e === "useAllNodesAsLeaves"
97
- ), d = N(this.data, r.valueType, c, n, p, t, i), a = D(this.data, u);
97
+ ), d = N(this.data, n.valueType, c, r, p, t, i), a = D(this.data, u);
98
98
  this.calculatedData = {
99
99
  chartSizes: this.chartRenderer.chartSizes,
100
100
  hierarchy: i,
@@ -114,9 +114,9 @@ class z extends y {
114
114
  connectionType: s,
115
115
  edgeInheritance: u,
116
116
  rootPosition: c,
117
- showNodes: n,
117
+ showNodes: r,
118
118
  showEdges: p,
119
- showLeavesLabels: r,
119
+ showLeavesLabels: n,
120
120
  showNodesLabels: o,
121
121
  aes: m,
122
122
  labels: i,
@@ -130,9 +130,9 @@ class z extends y {
130
130
  s,
131
131
  c,
132
132
  u,
133
- n,
134
- p,
135
133
  r,
134
+ p,
135
+ n,
136
136
  o,
137
137
  m,
138
138
  i,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/dendro/index.ts"],"sourcesContent":["import type { HierarchyNode } from 'd3-hierarchy';\nimport { uniqBy } from 'lodash';\nimport { renderToString } from 'react-dom/server';\nimport { undefined } from 'zod';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport type {\n AesItem,\n AesRecord,\n CategoricalAesFromColumn,\n Category,\n ClickEventData,\n ColumnName,\n ContinuousAesFromColumn,\n DendroEventHandlers,\n DendroLegendInfo,\n DendroSettings,\n LineShape,\n PointShape\n} from '../types';\nimport ChartRenderer from './ChartRenderer';\nimport type { ChartSizes } from './components/types';\nimport { USER_UPDATE_EVENT } from './constants';\nimport { DendroSettingsImpl } from './DendroSettingsImpl';\nimport type { HeatmapData } from './getHeatmapData';\nimport { getHeatmapData } from './getHeatmapData';\nimport type { TreeNodeData } from './getHierarchyData';\nimport { getHierarchy } from './getHierarchyData';\n\nfunction isCategoricalAes<InputType extends string | number | PointShape | LineShape>(\n item: InputType | CategoricalAesFromColumn<InputType> | ContinuousAesFromColumn<InputType>\n): item is CategoricalAesFromColumn<InputType> {\n if (typeof item !== 'object') {\n return false;\n }\n return 'valuesMap' in item;\n}\nfunction getLegendLabelsMap(data: DataFrame, aes: DendroSettingsImpl['aes']): DendroLegendInfo {\n const {nodeColor, nodeShape, lineColor} = aes;\n const aesGrouping: CategoricalAesFromColumn<string | PointShape>[] = [nodeColor, nodeShape, lineColor].filter(\n isCategoricalAes\n );\n const uniqueColumns = uniqBy(aesGrouping, item => item.columnName.value);\n return uniqueColumns.reduce((res: DendroLegendInfo, item) => {\n const {columnName} = item;\n const categories = data.getColumnCategories(columnName.value, false);\n const getValueLabel = (category: Category) => String(\n (columnName.valueLabels\n ? data.getColumnValue(columnName.valueLabels, data.getColumnCategoryRowIndex(columnName.value, category))\n : undefined\n ) ?? category\n );\n\n const usedAes = new Set<keyof AesItem>();\n const aesMap: AesRecord = categories.reduce((res: AesRecord, category) => {\n if (!res[category]) {\n res[category] = {} as AesItem;\n }\n return res;\n }, {});\n if (isCategoricalAes(nodeColor) && columnName.value === nodeColor.columnName.value) {\n usedAes.add('dotFill');\n categories.forEach(category => {\n aesMap[category]['dotFill'] = nodeColor.valuesMap[category];\n });\n }\n if (isCategoricalAes(nodeShape) && columnName.value === nodeShape.columnName.value) {\n usedAes.add('dotShape');\n categories.forEach(category => {\n aesMap[category]['dotShape'] = nodeShape.valuesMap[category];\n });\n }\n if (isCategoricalAes(lineColor) && columnName.value === lineColor.columnName.value) {\n usedAes.add('lineColor');\n categories.forEach(category => {\n aesMap[category]['lineColor'] = lineColor.valuesMap[category];\n });\n }\n res[columnName.value] = {\n values: categories.sort(),\n usedAes: [...usedAes],\n aesMap,\n labels: categories.reduce((res: Record<string, string>, category) => {\n res[category] = getValueLabel(category);\n return res;\n }, {}),\n };\n return res;\n }, {});\n}\n\nexport class ChartDendro extends AbstractChart {\n settings: DendroSettingsImpl;\n onClick: (data: ClickEventData) => void = () => undefined;\n chartRenderer = new ChartRenderer();\n\n calculatedData: {\n chartSizes: ChartSizes;\n hierarchy: HierarchyNode<TreeNodeData>;\n heatmapData: HeatmapData | null;\n legendLabels: DendroLegendInfo;\n } | null = null;\n\n constructor(data: DataFrame, settings: DendroSettings, eventHandlers?: DendroEventHandlers) {\n super(data, settings);\n\n this.settings = new DendroSettingsImpl(settings);\n if (eventHandlers) {\n this.onClick = eventHandlers[0];\n }\n }\n\n mount(node: HTMLElement) {\n try {\n this.chartRenderer.init(node);\n this._updateData();\n this._updateChart();\n } catch (err) {\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n unmount() {\n this.chartRenderer.clear();\n }\n\n updateSettingsAndData(data: DataFrame, settings: DendroSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new DendroSettingsImpl(settings);\n this.data = data;\n if (\n this._needUpdateCalculatedDataBySettings(previousSettings, this.settings) ||\n this._needUpdateCalculatedDataByData(previousData, this.data)\n ) {\n this._updateData();\n } else {\n this._updateAesInData();\n }\n this._updateChart();\n } catch (err) {\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n updateChartState(field: string, value: unknown) {\n if (document) {\n const event = new CustomEvent(USER_UPDATE_EVENT, {detail: {[field]: value}});\n document.dispatchEvent(event);\n }\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: DendroSettingsImpl, settings: DendroSettingsImpl) {\n const {mode, id, parentId, heatmapAnnotation, heatmapAxis, heatmapGroup} = settings;\n\n function compareColumnGroups(columns1: ColumnName[], columns2: ColumnName[]) {\n return (\n columns1.length !== columns2.length ||\n columns1.some((column, idx) => column.value !== columns2[idx].value)\n );\n }\n\n return (\n prevSettings.mode !== mode ||\n prevSettings.id.value !== id.value ||\n prevSettings.parentId.value !== parentId.value ||\n prevSettings.heatmapAnnotation?.value !== heatmapAnnotation?.value ||\n prevSettings.heatmapAxis?.value !== heatmapAxis?.value ||\n compareColumnGroups(prevSettings.heatmapGroup, heatmapGroup)\n );\n }\n\n _needUpdateCalculatedDataByData(prevData: DataFrame, data: DataFrame) {\n const prevKeys = Object.keys(prevData.data);\n const keys = Object.keys(data.data);\n return (\n prevData.id !== data.id ||\n prevKeys.length !== keys.length ||\n prevKeys.some(key => prevData.data[key].length !== data.data[key]?.length)\n );\n }\n\n _updateData() {\n const {mode, id, parentId, aes, heatmapAnnotation, heatmapAxis, heatmapGroup, heatmapSettings, height, labels} = this.settings;\n const hierarchy = getHierarchy(\n this.data,\n id.value,\n parentId.value,\n height?.value ?? null,\n labels.valueLabels ?? labels.value ?? null,\n mode === 'useAllNodesAsLeaves'\n );\n const heatmapData = getHeatmapData(this.data, heatmapSettings.valueType, heatmapAnnotation, heatmapAxis, heatmapGroup, id, hierarchy);\n\n const legendLabels = getLegendLabelsMap(this.data, aes);\n\n this.calculatedData = {\n chartSizes: this.chartRenderer.chartSizes,\n hierarchy,\n heatmapData,\n legendLabels,\n };\n }\n\n _updateAesInData() {\n if (!this.calculatedData) {\n return;\n }\n this.calculatedData.legendLabels = getLegendLabelsMap(this.data, this.settings.aes);\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {\n heatmapAnnotation,\n chartSettings,\n connectionType,\n edgeInheritance,\n rootPosition,\n showNodes,\n showEdges,\n showLeavesLabels,\n showNodesLabels,\n aes,\n labels,\n heatmapSettings,\n leavesMode\n } = this.settings;\n\n this.chartRenderer.render(\n this.data,\n chartSettings,\n this.calculatedData.hierarchy,\n connectionType,\n rootPosition,\n edgeInheritance,\n showNodes,\n showEdges,\n showLeavesLabels,\n showNodesLabels,\n aes,\n labels,\n heatmapAnnotation,\n this.calculatedData.heatmapData,\n heatmapSettings,\n this.calculatedData.legendLabels,\n leavesMode,\n this.onClick\n );\n }\n}\n"],"names":["isCategoricalAes","item","getLegendLabelsMap","data","aes","nodeColor","nodeShape","lineColor","aesGrouping","uniqBy","res","columnName","categories","getValueLabel","category","undefined","usedAes","aesMap","ChartDendro","AbstractChart","settings","eventHandlers","__publicField","ChartRenderer","DendroSettingsImpl","node","err","previousSettings","previousData","field","value","event","USER_UPDATE_EVENT","renderToString","prevSettings","mode","id","parentId","heatmapAnnotation","heatmapAxis","heatmapGroup","compareColumnGroups","columns1","columns2","column","idx","_a","_b","prevData","prevKeys","keys","key","heatmapSettings","height","labels","hierarchy","getHierarchy","heatmapData","getHeatmapData","legendLabels","chartSettings","connectionType","edgeInheritance","rootPosition","showNodes","showEdges","showLeavesLabels","showNodesLabels","leavesMode"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/dendro/index.ts"],"sourcesContent":["import type { HierarchyNode } from 'd3-hierarchy';\nimport { uniqBy } from 'lodash';\nimport { renderToString } from 'react-dom/server';\nimport { undefined } from 'zod';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport type {\n AesItem,\n AesRecord,\n CategoricalAesFromColumn,\n Category,\n ClickEventData,\n ColumnName,\n ContinuousAesFromColumn,\n DendroEventHandlers,\n DendroLegendInfo,\n DendroSettings,\n LineShape,\n PointShape\n} from '../types';\nimport ChartRenderer from './ChartRenderer';\nimport type { ChartSizes } from './components/types';\nimport { USER_UPDATE_EVENT } from './constants';\nimport { DendroSettingsImpl } from './DendroSettingsImpl';\nimport type { HeatmapData } from './getHeatmapData';\nimport { getHeatmapData } from './getHeatmapData';\nimport type { TreeNodeData } from './getHierarchyData';\nimport { getHierarchy } from './getHierarchyData';\n\nfunction isCategoricalAes<InputType extends string | number | PointShape | LineShape>(\n item: InputType | CategoricalAesFromColumn<InputType> | ContinuousAesFromColumn<InputType>\n): item is CategoricalAesFromColumn<InputType> {\n if (typeof item !== 'object') {\n return false;\n }\n return 'valuesMap' in item;\n}\nfunction getLegendLabelsMap(data: DataFrame, aes: DendroSettingsImpl['aes']): DendroLegendInfo {\n const {nodeColor, nodeShape, lineColor} = aes;\n const aesGrouping: CategoricalAesFromColumn<string | PointShape>[] = [nodeColor, nodeShape, lineColor].filter(\n isCategoricalAes\n );\n const uniqueColumns = uniqBy(aesGrouping, item => item.columnName.value);\n return uniqueColumns.reduce((res: DendroLegendInfo, item) => {\n const {columnName} = item;\n const categories = data.getColumnCategories(columnName.value, false);\n const getValueLabel = (category: Category) => String(\n (columnName.valueLabels\n ? data.getColumnValue(columnName.valueLabels, data.getColumnCategoryRowIndex(columnName.value, category))\n : undefined\n ) ?? category\n );\n\n const usedAes = new Set<keyof AesItem>();\n const aesMap: AesRecord = categories.reduce((res: AesRecord, category) => {\n if (!res[category]) {\n res[category] = {} as AesItem;\n }\n return res;\n }, {});\n if (isCategoricalAes(nodeColor) && columnName.value === nodeColor.columnName.value) {\n usedAes.add('dotFill');\n categories.forEach(category => {\n aesMap[category]['dotFill'] = nodeColor.valuesMap[category];\n });\n }\n if (isCategoricalAes(nodeShape) && columnName.value === nodeShape.columnName.value) {\n usedAes.add('dotShape');\n categories.forEach(category => {\n aesMap[category]['dotShape'] = nodeShape.valuesMap[category];\n });\n }\n if (isCategoricalAes(lineColor) && columnName.value === lineColor.columnName.value) {\n usedAes.add('lineColor');\n categories.forEach(category => {\n aesMap[category]['lineColor'] = lineColor.valuesMap[category];\n });\n }\n res[columnName.value] = {\n values: categories.sort(),\n usedAes: [...usedAes],\n aesMap,\n labels: categories.reduce((res: Record<string, string>, category) => {\n res[category] = getValueLabel(category);\n return res;\n }, {}),\n };\n return res;\n }, {});\n}\n\nexport class ChartDendro extends AbstractChart {\n settings: DendroSettingsImpl;\n onClick: (data: ClickEventData) => void = () => undefined;\n chartRenderer = new ChartRenderer();\n\n calculatedData: {\n chartSizes: ChartSizes;\n hierarchy: HierarchyNode<TreeNodeData>;\n heatmapData: HeatmapData | null;\n legendLabels: DendroLegendInfo;\n } | null = null;\n\n constructor(data: DataFrame, settings: DendroSettings, eventHandlers?: DendroEventHandlers) {\n super(data, settings);\n\n this.settings = new DendroSettingsImpl(settings);\n if (eventHandlers) {\n this.onClick = eventHandlers[0];\n }\n }\n\n mount(node: HTMLElement) {\n try {\n this.chartRenderer.init(node);\n this._updateData();\n this._updateChart();\n this.hasError = false;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n unmount() {\n this.chartRenderer.clear();\n }\n\n updateSettingsAndData(data: DataFrame, settings: DendroSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new DendroSettingsImpl(settings);\n this.data = data;\n if (\n this._needUpdateCalculatedDataBySettings(previousSettings, this.settings) ||\n this._needUpdateCalculatedDataByData(previousData, this.data)\n ) {\n this._updateData();\n } else {\n this._updateAesInData();\n }\n this._updateChart();\n this.hasError = false;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n updateChartState(field: string, value: unknown) {\n if (document) {\n const event = new CustomEvent(USER_UPDATE_EVENT, {detail: {[field]: value}});\n document.dispatchEvent(event);\n }\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: DendroSettingsImpl, settings: DendroSettingsImpl) {\n const {mode, id, parentId, heatmapAnnotation, heatmapAxis, heatmapGroup} = settings;\n\n function compareColumnGroups(columns1: ColumnName[], columns2: ColumnName[]) {\n return (\n columns1.length !== columns2.length ||\n columns1.some((column, idx) => column.value !== columns2[idx].value)\n );\n }\n\n return (\n prevSettings.mode !== mode ||\n prevSettings.id.value !== id.value ||\n prevSettings.parentId.value !== parentId.value ||\n prevSettings.heatmapAnnotation?.value !== heatmapAnnotation?.value ||\n prevSettings.heatmapAxis?.value !== heatmapAxis?.value ||\n compareColumnGroups(prevSettings.heatmapGroup, heatmapGroup)\n );\n }\n\n _needUpdateCalculatedDataByData(prevData: DataFrame, data: DataFrame) {\n const prevKeys = Object.keys(prevData.data);\n const keys = Object.keys(data.data);\n return (\n prevData.id !== data.id ||\n prevKeys.length !== keys.length ||\n prevKeys.some(key => prevData.data[key].length !== data.data[key]?.length)\n );\n }\n\n _updateData() {\n const {mode, id, parentId, aes, heatmapAnnotation, heatmapAxis, heatmapGroup, heatmapSettings, height, labels} = this.settings;\n const hierarchy = getHierarchy(\n this.data,\n id.value,\n parentId.value,\n height?.value ?? null,\n labels.valueLabels ?? labels.value ?? null,\n mode === 'useAllNodesAsLeaves'\n );\n const heatmapData = getHeatmapData(this.data, heatmapSettings.valueType, heatmapAnnotation, heatmapAxis, heatmapGroup, id, hierarchy);\n\n const legendLabels = getLegendLabelsMap(this.data, aes);\n\n this.calculatedData = {\n chartSizes: this.chartRenderer.chartSizes,\n hierarchy,\n heatmapData,\n legendLabels,\n };\n }\n\n _updateAesInData() {\n if (!this.calculatedData) {\n return;\n }\n this.calculatedData.legendLabels = getLegendLabelsMap(this.data, this.settings.aes);\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {\n heatmapAnnotation,\n chartSettings,\n connectionType,\n edgeInheritance,\n rootPosition,\n showNodes,\n showEdges,\n showLeavesLabels,\n showNodesLabels,\n aes,\n labels,\n heatmapSettings,\n leavesMode\n } = this.settings;\n\n this.chartRenderer.render(\n this.data,\n chartSettings,\n this.calculatedData.hierarchy,\n connectionType,\n rootPosition,\n edgeInheritance,\n showNodes,\n showEdges,\n showLeavesLabels,\n showNodesLabels,\n aes,\n labels,\n heatmapAnnotation,\n this.calculatedData.heatmapData,\n heatmapSettings,\n this.calculatedData.legendLabels,\n leavesMode,\n this.onClick\n );\n }\n}\n"],"names":["isCategoricalAes","item","getLegendLabelsMap","data","aes","nodeColor","nodeShape","lineColor","aesGrouping","uniqBy","res","columnName","categories","getValueLabel","category","undefined","usedAes","aesMap","ChartDendro","AbstractChart","settings","eventHandlers","__publicField","ChartRenderer","DendroSettingsImpl","node","err","previousSettings","previousData","field","value","event","USER_UPDATE_EVENT","renderToString","prevSettings","mode","id","parentId","heatmapAnnotation","heatmapAxis","heatmapGroup","compareColumnGroups","columns1","columns2","column","idx","_a","_b","prevData","prevKeys","keys","key","heatmapSettings","height","labels","hierarchy","getHierarchy","heatmapData","getHeatmapData","legendLabels","chartSettings","connectionType","edgeInheritance","rootPosition","showNodes","showEdges","showLeavesLabels","showNodesLabels","leavesMode"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/discrete/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,KAAK,EAAmC,qBAAqB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACvH,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAIH,oBAAoB,EAUvB,MAAM,wBAAwB,CAAC;AAehC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAoE3D,qBAAa,aAAc,SAAQ,aAAa;IAC5C,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,aAAa,gBAAuB;IAEpC,mBAAmB,EAAE,CAAC,CAAC,EAAC,OAAO,KAAK,IAAI,CAAmB;IAC3D,cAAc,EAAE;QACZ,UAAU,EAAE,SAAS,EAAE,CAAC;QACxB,eAAe,EAAE,SAAS,EAAE,CAAC;QAC7B,eAAe,EAAE,YAAY,CAAC;QAC9B,iBAAiB,EAAE,YAAY,CAAC;QAChC,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC5B,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,YAAY,EAAE,OAAO,CAAC;KACzB,GAAG,IAAI,CAAQ;gBAEJ,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAE,qBAAqB;IAS9F,KAAK,CAAC,IAAI,EAAE,WAAW;IAavB,OAAO;IAIP,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB;IAuBjE,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAIhD,MAAM,IAAI,MAAM;IAKhB,mCAAmC,CAAC,YAAY,EAAE,oBAAoB,EAAE,QAAQ,EAAE,oBAAoB;IAiBtG,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAUpE,WAAW;IAuGX,gBAAgB;IA2BhB,YAAY;CAyBf"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/discrete/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,KAAK,EAAmC,qBAAqB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACvH,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAIH,oBAAoB,EAUvB,MAAM,wBAAwB,CAAC;AAehC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAoE3D,qBAAa,aAAc,SAAQ,aAAa;IAC5C,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,aAAa,gBAAuB;IAEpC,mBAAmB,EAAE,CAAC,CAAC,EAAC,OAAO,KAAK,IAAI,CAAmB;IAC3D,cAAc,EAAE;QACZ,UAAU,EAAE,SAAS,EAAE,CAAC;QACxB,eAAe,EAAE,SAAS,EAAE,CAAC;QAC7B,eAAe,EAAE,YAAY,CAAC;QAC9B,iBAAiB,EAAE,YAAY,CAAC;QAChC,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC;QAC5B,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,YAAY,EAAE,OAAO,CAAC;KACzB,GAAG,IAAI,CAAQ;gBAEJ,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,CAAC,EAAE,qBAAqB;IAS9F,KAAK,CAAC,IAAI,EAAE,WAAW;IAevB,OAAO;IAIP,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB;IAyBjE,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAIhD,MAAM,IAAI,MAAM;IAKhB,mCAAmC,CAAC,YAAY,EAAE,oBAAoB,EAAE,QAAQ,EAAE,oBAAoB;IAiBtG,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAUpE,WAAW;IAuGX,gBAAgB;IA2BhB,YAAY;CAyBf"}