@deephaven/chart 1.7.2-beta.1 → 1.7.2-react-18-alpha.3
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.
- package/dist/Chart.js +6 -8
- package/dist/Chart.js.map +1 -1
- package/dist/ChartErrorOverlay.js +1 -2
- package/dist/ChartErrorOverlay.js.map +1 -1
- package/dist/ChartModel.js +1 -3
- package/dist/ChartModel.js.map +1 -1
- package/dist/ChartModelFactory.js.map +1 -1
- package/dist/ChartTestUtils.js.map +1 -1
- package/dist/ChartTheme.js.map +1 -1
- package/dist/ChartThemeProvider.js.map +1 -1
- package/dist/ChartUtils.d.ts +1 -1
- package/dist/ChartUtils.d.ts.map +1 -1
- package/dist/ChartUtils.js +2 -3
- package/dist/ChartUtils.js.map +1 -1
- package/dist/DownsamplingError.js.map +1 -1
- package/dist/FigureChartModel.js +10 -17
- package/dist/FigureChartModel.js.map +1 -1
- package/dist/LazyChart.js.map +1 -1
- package/dist/MockChartModel.js +0 -4
- package/dist/MockChartModel.js.map +1 -1
- package/dist/declaration.d.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/isFigureChartModel.js.map +1 -1
- package/dist/plotly/LazyPlot.js.map +1 -1
- package/dist/plotly/Plot.js.map +1 -1
- package/dist/plotly/Plotly.js.map +1 -1
- package/dist/plotly/createPlotlyComponent.js.map +1 -1
- package/dist/plotly/plotly-extends.d.js.map +1 -1
- package/dist/useChartTheme.js.map +1 -1
- package/package.json +12 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DownsamplingError.js","names":["DownsamplingError","Error","constructor","arguments","_defineProperty"],"sources":["../src/DownsamplingError.ts"],"sourcesContent":["export class DownsamplingError extends Error {\n isDownsamplingError = true;\n}\n\nexport default DownsamplingError;\n"],"mappings":";;;AAAA,OAAO,MAAMA,iBAAiB,SAASC,KAAK,CAAC;EAAAC,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,8BACrB,IAAI;EAAA;AAC5B;AAEA,eAAeJ,iBAAiB"}
|
|
1
|
+
{"version":3,"file":"DownsamplingError.js","names":["DownsamplingError","Error","constructor","arguments","_defineProperty"],"sources":["../src/DownsamplingError.ts"],"sourcesContent":["export class DownsamplingError extends Error {\n isDownsamplingError = true;\n}\n\nexport default DownsamplingError;\n"],"mappings":";;;AAAA,OAAO,MAAMA,iBAAiB,SAASC,KAAK,CAAC;EAAAC,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,8BACrB,IAAI;EAAA;AAC5B;AAEA,eAAeJ,iBAAiB","ignoreList":[]}
|
package/dist/FigureChartModel.js
CHANGED
|
@@ -38,7 +38,10 @@ class FigureChartModel extends ChartModel {
|
|
|
38
38
|
_defineProperty(this, "filterColumnMap", void 0);
|
|
39
39
|
_defineProperty(this, "lastFilter", void 0);
|
|
40
40
|
_defineProperty(this, "isConnected", void 0);
|
|
41
|
+
// Assume figure is connected to start
|
|
41
42
|
_defineProperty(this, "seriesToProcess", void 0);
|
|
43
|
+
// We need to debounce adding series so we subscribe to them all in the same tick
|
|
44
|
+
// This should no longer be necessary after IDS-5049 lands
|
|
42
45
|
_defineProperty(this, "addPendingSeries", debounce(() => {
|
|
43
46
|
var axisTypeMap = ChartUtils.getAxisTypeMap(this.figure);
|
|
44
47
|
var {
|
|
@@ -74,12 +77,16 @@ class FigureChartModel extends ChartModel {
|
|
|
74
77
|
}, {
|
|
75
78
|
max: 100
|
|
76
79
|
}));
|
|
80
|
+
/** Gets the parser for a value with the provided column type */
|
|
77
81
|
_defineProperty(this, "getValueParser", memoize((columnType, formatter) => {
|
|
78
82
|
var timeZone = this.getTimeZone(columnType, formatter);
|
|
79
83
|
return value => this.chartUtils.wrapValue(value, columnType, timeZone);
|
|
80
84
|
}, {
|
|
81
85
|
max: 100
|
|
82
86
|
}));
|
|
87
|
+
/**
|
|
88
|
+
* Gets the range parser for a particular column type
|
|
89
|
+
*/
|
|
83
90
|
_defineProperty(this, "getRangeParser", memoize((columnType, formatter) => range => {
|
|
84
91
|
var [rangeStart, rangeEnd] = range;
|
|
85
92
|
var valueParser = this.getValueParser(columnType, formatter);
|
|
@@ -89,6 +96,9 @@ class FigureChartModel extends ChartModel {
|
|
|
89
96
|
}, {
|
|
90
97
|
max: 100
|
|
91
98
|
}));
|
|
99
|
+
/**
|
|
100
|
+
* Gets the parser for parsing the range from an axis within the given chart
|
|
101
|
+
*/
|
|
92
102
|
_defineProperty(this, "getAxisRangeParser", memoize((chart, formatter) => axis => {
|
|
93
103
|
var source = ChartUtils.getSourceForAxis(chart, axis);
|
|
94
104
|
if (source != null) {
|
|
@@ -131,9 +141,6 @@ class FigureChartModel extends ChartModel {
|
|
|
131
141
|
this.updateAxisPositions();
|
|
132
142
|
this.startListeningFigure();
|
|
133
143
|
}
|
|
134
|
-
|
|
135
|
-
// Assume figure is connected to start
|
|
136
|
-
|
|
137
144
|
close() {
|
|
138
145
|
this.figure.close();
|
|
139
146
|
this.addPendingSeries.cancel();
|
|
@@ -252,9 +259,6 @@ class FigureChartModel extends ChartModel {
|
|
|
252
259
|
}
|
|
253
260
|
this.updateLayoutFormats();
|
|
254
261
|
}
|
|
255
|
-
|
|
256
|
-
// We need to debounce adding series so we subscribe to them all in the same tick
|
|
257
|
-
// This should no longer be necessary after IDS-5049 lands
|
|
258
262
|
subscribe(callback) {
|
|
259
263
|
super.subscribe(callback);
|
|
260
264
|
if (this.listeners.length === 1) {
|
|
@@ -311,17 +315,6 @@ class FigureChartModel extends ChartModel {
|
|
|
311
315
|
this.figure.removeEventListener(dh.plot.Figure.EVENT_DOWNSAMPLENEEDED, this.handleDownsampleNeeded);
|
|
312
316
|
this.figure.removeEventListener(dh.Client.EVENT_REQUEST_FAILED, this.handleRequestFailed);
|
|
313
317
|
}
|
|
314
|
-
|
|
315
|
-
/** Gets the parser for a value with the provided column type */
|
|
316
|
-
|
|
317
|
-
/**
|
|
318
|
-
* Gets the range parser for a particular column type
|
|
319
|
-
*/
|
|
320
|
-
|
|
321
|
-
/**
|
|
322
|
-
* Gets the parser for parsing the range from an axis within the given chart
|
|
323
|
-
*/
|
|
324
|
-
|
|
325
318
|
handleDownsampleStart(event) {
|
|
326
319
|
log.debug('Downsample started', event);
|
|
327
320
|
this.fireDownsampleStart(event.detail);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FigureChartModel.js","names":["memoize","debounce","set","Log","ChartModel","ChartUtils","log","module","FigureChartModel","constructor","dh","figure","_this","settings","arguments","length","undefined","this","_defineProperty","axisTypeMap","getAxisTypeMap","pendingSeries","_loop","_chart$showLegend","series","i","chart","charts","find","c","includes","addSeries","showLegend","subscribe","ADD_SERIES_DEBOUNCE","columnType","formatter","dataFormatter","getColumnTypeFormatter","dhTimeZone","max","timeZone","getTimeZone","value","chartUtils","unwrapValue","wrapValue","range","rangeStart","rangeEnd","valueParser","getValueParser","axis","source","getSourceForAxis","getRangeParser","handleFigureUpdated","bind","handleFigureDisconnected","handleFigureReconnected","handleFigureSeriesAdded","handleDownsampleStart","handleDownsampleFinish","handleDownsampleFail","handleDownsampleNeeded","handleRequestFailed","data","layout","grid","rows","columns","cols","pattern","seriesDataMap","Map","oneClicks","filterColumnMap","lastFilter","isConnected","seriesToProcess","Set","setTitle","getDefaultTitle","initAllSeries","updateAxisPositions","startListeningFigure","close","addPendingSeries","cancel","stopListeningFigure","title","_this$figure$charts$","_this2","clear","activeSeriesNames","_loop2","j","push","name","axes","xAxis","type","plot","AxisType","X","yAxis","Y","warn","_axisTypeMap$get$find","_axisTypeMap$get","_axisTypeMap$get$find2","_axisTypeMap$get2","xAxisIndex","get","findIndex","a","yAxisIndex","annotation","align","x","y","yshift","text","showarrow","xref","concat","yref","annotations","allSeriesNames","keys","inactiveSeriesNames","filter","seriesName","indexOf","delete","_this$renderOptions$w","_this$renderOptions","seriesData","makeSeriesDataFromSeries","getSeriesVisibility","renderOptions","webgl","add","values","plotStyle","SeriesPlotStyle","STACKED_BAR","barmode","PIE","hiddenlabels","getHiddenLabels","showlegend","oneClick","updateLayoutFormats","callback","listeners","subscribeFigure","unsubscribe","unsubscribeFigure","debug","isDownsamplingDisabled","DownsampleOptions","DISABLE","DEFAULT","errors","error","fireError","addEventListener","Figure","EVENT_UPDATED","EVENT_SERIES_ADDED","EVENT_DISCONNECT","EVENT_RECONNECT","EVENT_DOWNSAMPLESTARTED","EVENT_DOWNSAMPLEFINISHED","EVENT_DOWNSAMPLEFAILED","EVENT_DOWNSAMPLENEEDED","Client","EVENT_REQUEST_FAILED","removeEventListener","event","fireDownsampleStart","detail","fireDownsampleFinish","fireDownsampleFail","info","fireDownsampleNeeded","figureUpdateEvent","seriesArray","debug2","sources","valueTranslator","getValueTranslator","dataArray","getArray","setDataArrayForSeries","cleanSeries","size","fireLoadFinished","fireUpdate","resubscribe","setFormatter","setRenderOptions","setDownsamplingDisabled","fireDisconnect","fireReconnect","setDimensions","rect","_match$length","_match","subtitleCount","match","margin","DEFAULT_MARGIN","t","SUBTITLE_LINE_HEIGHT","_objectSpread","pad","DEFAULT_TITLE_PADDING","fireLayoutUpdated","getPlotWidth","_this$layout$margin$l","_this$layout$margin","_this$layout$margin$r","_this$layout$margin2","width","Math","l","r","getPlotHeight","_this$layout$margin$t","_this$layout$margin3","_this$layout$margin$b","_this$layout$margin4","height","b","plotWidth","plotHeight","updateFigureAxes","getAxisRangeParser","axisFormats","getAxisFormats","forEach","axisFormat","axisLayoutProperty","props","Object","assign","sourceType","property","getPlotlyProperty","HISTOGRAM","xLow","xHigh","LINE","ERROR_BAR","BAR","yLow","yHigh","error_x","getPlotlyErrorBars","error_y","TREEMAP","ids","labels","getData","getLayout","getFilterColumnMap","isFilterRequired","requireAllFiltersToDisplay","setFilter","filterMap","_this3","_loop3","key","column","setValueForColumn","setFigure","updateSettings"],"sources":["../src/FigureChartModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport memoize from 'memoizee';\nimport debounce from 'lodash.debounce';\nimport set from 'lodash.set';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { type Range } from '@deephaven/utils';\nimport type {\n Annotations,\n Layout,\n Data,\n PlotData,\n XAxisName,\n YAxisName,\n} from 'plotly.js';\nimport type {\n DateTimeColumnFormatter,\n Formatter,\n} from '@deephaven/jsapi-utils';\nimport ChartModel, {\n type ChartEvent,\n type FigureUpdateEventData,\n type RenderOptions,\n} from './ChartModel';\nimport ChartUtils, {\n type AxisTypeMap,\n type ChartModelSettings,\n type FilterColumnMap,\n type FilterMap,\n} from './ChartUtils';\n\nconst log = Log.module('FigureChartModel');\n\n/**\n * Takes a Figure object from a widget to make a model for a chart\n */\nclass FigureChartModel extends ChartModel {\n static ADD_SERIES_DEBOUNCE = 50;\n\n /**\n * @param dh JSAPI instance\n * @param figure The figure object created by the API\n * @param settings Chart settings\n */\n constructor(\n dh: typeof DhType,\n figure: DhType.plot.Figure,\n settings: Partial<ChartModelSettings> = {}\n ) {\n super(dh);\n\n this.handleFigureUpdated = this.handleFigureUpdated.bind(this);\n this.handleFigureDisconnected = this.handleFigureDisconnected.bind(this);\n this.handleFigureReconnected = this.handleFigureReconnected.bind(this);\n this.handleFigureSeriesAdded = this.handleFigureSeriesAdded.bind(this);\n this.handleDownsampleStart = this.handleDownsampleStart.bind(this);\n this.handleDownsampleFinish = this.handleDownsampleFinish.bind(this);\n this.handleDownsampleFail = this.handleDownsampleFail.bind(this);\n this.handleDownsampleNeeded = this.handleDownsampleNeeded.bind(this);\n this.handleRequestFailed = this.handleRequestFailed.bind(this);\n\n this.dh = dh;\n this.chartUtils = new ChartUtils(dh);\n this.figure = figure;\n this.settings = settings;\n this.data = [];\n this.layout = {\n grid: {\n rows: figure.rows,\n columns: figure.cols,\n pattern: 'independent',\n },\n };\n this.seriesDataMap = new Map();\n this.pendingSeries = [];\n this.oneClicks = [];\n this.filterColumnMap = new Map();\n this.lastFilter = new Map();\n this.isConnected = true; // Assume figure is connected to start\n this.seriesToProcess = new Set();\n\n this.setTitle(this.getDefaultTitle());\n this.initAllSeries();\n this.updateAxisPositions();\n this.startListeningFigure();\n }\n\n chartUtils: ChartUtils;\n\n dh: typeof DhType;\n\n figure: DhType.plot.Figure;\n\n settings: Partial<ChartModelSettings>;\n\n data: Partial<Data>[];\n\n layout: Partial<Layout>;\n\n seriesDataMap: Map<\n string,\n Partial<PlotData> & {\n xLow?: number[];\n xHigh?: number[];\n yLow?: number[];\n yHigh?: number[];\n }\n >;\n\n pendingSeries: DhType.plot.Series[];\n\n oneClicks: DhType.plot.OneClick[];\n\n filterColumnMap: FilterColumnMap;\n\n lastFilter: FilterMap;\n\n isConnected: boolean; // Assume figure is connected to start\n\n seriesToProcess;\n\n close(): void {\n this.figure.close();\n this.addPendingSeries.cancel();\n this.stopListeningFigure();\n }\n\n getDefaultTitle(): string {\n if (this.figure.title != null && this.figure.title.length > 0) {\n return this.figure.title;\n }\n if (this.figure.charts.length === 1) {\n return this.figure.charts[0].title ?? '';\n }\n return '';\n }\n\n initAllSeries(): void {\n this.oneClicks = [];\n this.filterColumnMap.clear();\n\n const { charts } = this.figure;\n const axisTypeMap = ChartUtils.getAxisTypeMap(this.figure);\n const activeSeriesNames: string[] = [];\n\n this.seriesToProcess = new Set();\n\n for (let i = 0; i < charts.length; i += 1) {\n const chart = charts[i];\n\n for (let j = 0; j < chart.series.length; j += 1) {\n const series = chart.series[j];\n activeSeriesNames.push(series.name);\n this.addSeries(series, axisTypeMap, chart.showLegend);\n }\n\n // Need to add the chart titles as annotations if they are set\n const { axes, title } = chart;\n if (\n title != null &&\n title.length > 0 &&\n (charts.length > 1 || this.figure.title != null)\n ) {\n const xAxis = axes.find(axis => axis.type === this.dh.plot.AxisType.X);\n const yAxis = axes.find(axis => axis.type === this.dh.plot.AxisType.Y);\n if (xAxis == null || yAxis == null) {\n log.warn(\n 'Chart title provided, but unknown how to map to the correct axes for this chart type',\n chart\n );\n } else {\n const xAxisIndex =\n (axisTypeMap.get(xAxis.type)?.findIndex(a => a === xAxis) ?? 0) + 1;\n const yAxisIndex =\n (axisTypeMap.get(yAxis.type)?.findIndex(a => a === yAxis) ?? 0) + 1;\n\n const annotation: Partial<Annotations> = {\n align: 'center',\n x: 0.5,\n y: 1,\n yshift: 17,\n text: title,\n showarrow: false,\n\n // Typing is incorrect in Plotly for this, as it doesn't seem to be typed for the \"domain\" part: https://plotly.com/javascript/reference/layout/annotations/#layout-annotations-items-annotation-xref\n xref: `x${xAxisIndex} domain` as XAxisName,\n yref: `y${yAxisIndex} domain` as YAxisName,\n };\n if (this.layout.annotations == null) {\n this.layout.annotations = [annotation];\n } else {\n this.layout.annotations.push(annotation);\n }\n }\n }\n }\n\n // Remove any series that no longer exist\n const allSeriesNames = [...this.seriesDataMap.keys()];\n const inactiveSeriesNames = allSeriesNames.filter(\n seriesName => activeSeriesNames.indexOf(seriesName) < 0\n );\n for (let i = 0; i < inactiveSeriesNames.length; i += 1) {\n const seriesName = inactiveSeriesNames[i];\n this.seriesDataMap.delete(seriesName);\n }\n }\n\n /**\n * Add a series to the model\n * @param series Series object to add\n * @param axisTypeMap Map of axis type to the axes in this Figure\n * @param showLegend Whether this series should show the legend or not\n */\n addSeries(\n series: DhType.plot.Series,\n axisTypeMap: AxisTypeMap,\n showLegend: boolean | null\n ): void {\n const { dh } = this;\n\n const seriesData = this.chartUtils.makeSeriesDataFromSeries(\n series,\n axisTypeMap,\n ChartUtils.getSeriesVisibility(series.name, this.settings),\n showLegend,\n this.renderOptions?.webgl ?? true\n );\n\n this.seriesDataMap.set(series.name, seriesData);\n this.seriesToProcess.add(series.name);\n\n this.data = [...this.seriesDataMap.values()];\n\n if (series.plotStyle === dh.plot.SeriesPlotStyle.STACKED_BAR) {\n this.layout.barmode = 'stack';\n } else if (series.plotStyle === dh.plot.SeriesPlotStyle.PIE) {\n this.layout.hiddenlabels = ChartUtils.getHiddenLabels(this.settings);\n }\n\n // We only want to force hide the legend if there is only one series that is not a PIE\n // Right now this means that if the user only has one series, they cannot explicitly show the legend until deephaven-core#3254 is implemented\n // TODO: deephaven-core#3254, once done, this can be removed.\n this.layout.showlegend =\n this.data.length > 1 || series.plotStyle === dh.plot.SeriesPlotStyle.PIE\n ? showLegend ?? undefined\n : false;\n\n if (series.oneClick != null) {\n const { oneClick } = series;\n const { columns } = oneClick;\n for (let i = 0; i < columns.length; i += 1) {\n this.filterColumnMap.set(columns[i].name, columns[i]);\n }\n\n this.oneClicks.push(oneClick);\n }\n\n this.updateLayoutFormats();\n }\n\n // We need to debounce adding series so we subscribe to them all in the same tick\n // This should no longer be necessary after IDS-5049 lands\n addPendingSeries = debounce(() => {\n const axisTypeMap = ChartUtils.getAxisTypeMap(this.figure);\n const { pendingSeries } = this;\n for (let i = 0; i < pendingSeries.length; i += 1) {\n const series = pendingSeries[i];\n const chart = this.figure.charts.find(c => c.series.includes(series));\n this.addSeries(series, axisTypeMap, chart?.showLegend ?? null);\n\n series.subscribe();\n // We'll get an update with the data after subscribing\n }\n\n this.pendingSeries = [];\n }, FigureChartModel.ADD_SERIES_DEBOUNCE);\n\n subscribe(callback: (event: ChartEvent) => void): void {\n super.subscribe(callback);\n\n if (this.listeners.length === 1) {\n // Need to initialize the series here as we may have missed some series when not subscribed\n this.initAllSeries();\n this.subscribeFigure();\n }\n }\n\n unsubscribe(callback: (event: ChartEvent) => void): void {\n super.unsubscribe(callback);\n\n if (this.listeners.length === 0) {\n this.unsubscribeFigure();\n }\n }\n\n subscribeFigure(): void {\n if (!this.isConnected) {\n log.debug('Ignoring subscribe when figure in disconnected state');\n return;\n }\n\n this.figure.subscribe(\n this.isDownsamplingDisabled\n ? this.dh.plot.DownsampleOptions.DISABLE\n : this.dh.plot.DownsampleOptions.DEFAULT\n );\n\n if (this.figure.errors.length > 0) {\n log.error('Errors in figure', this.figure.errors);\n this.fireError(this.figure.errors);\n }\n }\n\n unsubscribeFigure(): void {\n this.figure.unsubscribe();\n }\n\n startListeningFigure(): void {\n const { dh } = this;\n this.figure.addEventListener(\n dh.plot.Figure.EVENT_UPDATED,\n this.handleFigureUpdated\n );\n this.figure.addEventListener(\n dh.plot.Figure.EVENT_SERIES_ADDED,\n this.handleFigureSeriesAdded\n );\n this.figure.addEventListener(\n dh.plot.Figure.EVENT_DISCONNECT,\n this.handleFigureDisconnected\n );\n this.figure.addEventListener(\n dh.plot.Figure.EVENT_RECONNECT,\n this.handleFigureReconnected\n );\n this.figure.addEventListener(\n dh.plot.Figure.EVENT_DOWNSAMPLESTARTED,\n this.handleDownsampleStart\n );\n this.figure.addEventListener(\n dh.plot.Figure.EVENT_DOWNSAMPLEFINISHED,\n this.handleDownsampleFinish\n );\n this.figure.addEventListener(\n dh.plot.Figure.EVENT_DOWNSAMPLEFAILED,\n this.handleDownsampleFail\n );\n this.figure.addEventListener(\n dh.plot.Figure.EVENT_DOWNSAMPLENEEDED,\n this.handleDownsampleNeeded\n );\n this.figure.addEventListener(\n dh.Client.EVENT_REQUEST_FAILED,\n this.handleRequestFailed\n );\n }\n\n stopListeningFigure(): void {\n const { dh } = this;\n this.figure.removeEventListener(\n dh.plot.Figure.EVENT_UPDATED,\n this.handleFigureUpdated\n );\n this.figure.removeEventListener(\n dh.plot.Figure.EVENT_SERIES_ADDED,\n this.handleFigureSeriesAdded\n );\n this.figure.removeEventListener(\n dh.plot.Figure.EVENT_DISCONNECT,\n this.handleFigureDisconnected\n );\n this.figure.removeEventListener(\n dh.plot.Figure.EVENT_RECONNECT,\n this.handleFigureReconnected\n );\n this.figure.removeEventListener(\n dh.plot.Figure.EVENT_DOWNSAMPLESTARTED,\n this.handleDownsampleStart\n );\n this.figure.removeEventListener(\n dh.plot.Figure.EVENT_DOWNSAMPLEFINISHED,\n this.handleDownsampleFinish\n );\n this.figure.removeEventListener(\n dh.plot.Figure.EVENT_DOWNSAMPLEFAILED,\n this.handleDownsampleFail\n );\n this.figure.removeEventListener(\n dh.plot.Figure.EVENT_DOWNSAMPLENEEDED,\n this.handleDownsampleNeeded\n );\n this.figure.removeEventListener(\n dh.Client.EVENT_REQUEST_FAILED,\n this.handleRequestFailed\n );\n }\n\n getTimeZone = memoize(\n (columnType: string, formatter: Formatter | undefined) => {\n if (formatter != null) {\n const dataFormatter = formatter.getColumnTypeFormatter(columnType);\n if (dataFormatter != null) {\n return (dataFormatter as DateTimeColumnFormatter).dhTimeZone;\n }\n }\n return undefined;\n },\n { max: 100 }\n );\n\n getValueTranslator = memoize(\n (columnType: string, formatter: Formatter | undefined) => {\n const timeZone = this.getTimeZone(columnType, formatter);\n return (value: unknown) => this.chartUtils.unwrapValue(value, timeZone);\n },\n { max: 100 }\n );\n\n /** Gets the parser for a value with the provided column type */\n getValueParser = memoize(\n (columnType: string, formatter: Formatter | undefined) => {\n const timeZone = this.getTimeZone(columnType, formatter);\n return (value: unknown) =>\n this.chartUtils.wrapValue(value, columnType, timeZone);\n },\n { max: 100 }\n );\n\n /**\n * Gets the range parser for a particular column type\n */\n getRangeParser = memoize(\n (columnType: string, formatter?: Formatter) => (range: Range) => {\n let [rangeStart, rangeEnd]: [unknown, unknown] = range;\n const valueParser = this.getValueParser(columnType, formatter);\n rangeStart = valueParser(rangeStart);\n rangeEnd = valueParser(rangeEnd);\n return [rangeStart, rangeEnd];\n },\n { max: 100 }\n );\n\n /**\n * Gets the parser for parsing the range from an axis within the given chart\n */\n getAxisRangeParser = memoize(\n (chart: DhType.plot.Chart, formatter?: Formatter) =>\n (axis: DhType.plot.Axis) => {\n const source = ChartUtils.getSourceForAxis(chart, axis);\n if (source != null) {\n return this.getRangeParser(source.columnType, formatter);\n }\n\n return (range: [unknown, unknown]) => range;\n },\n { max: 100 }\n );\n\n handleDownsampleStart(event: ChartEvent): void {\n log.debug('Downsample started', event);\n\n this.fireDownsampleStart(event.detail);\n }\n\n handleDownsampleFinish(event: ChartEvent): void {\n log.debug('Downsample finished', event);\n\n this.fireDownsampleFinish(event.detail);\n }\n\n handleDownsampleFail(event: ChartEvent): void {\n log.error('Downsample failed', event);\n\n this.fireDownsampleFail(event.detail);\n }\n\n handleDownsampleNeeded(event: ChartEvent): void {\n log.info('Downsample needed', event);\n\n this.fireDownsampleNeeded(event.detail);\n }\n\n handleFigureUpdated(event: DhType.Event<FigureUpdateEventData>): void {\n const { detail: figureUpdateEvent } = event;\n const { series: seriesArray } = figureUpdateEvent;\n\n log.debug2('handleFigureUpdated', seriesArray);\n\n for (let i = 0; i < seriesArray.length; i += 1) {\n const series = seriesArray[i];\n\n log.debug2('handleFigureUpdated updating series', series.name);\n\n const { sources } = series;\n for (let j = 0; j < sources.length; j += 1) {\n const source = sources[j];\n const { columnType, type } = source;\n const valueTranslator = this.getValueTranslator(\n columnType,\n this.formatter\n );\n const dataArray = figureUpdateEvent.getArray(\n series,\n type,\n valueTranslator\n );\n this.setDataArrayForSeries(series, type, dataArray);\n }\n\n this.seriesToProcess.delete(series.name);\n\n this.cleanSeries(series);\n }\n if (this.seriesToProcess.size === 0) {\n this.fireLoadFinished();\n }\n\n const { data } = this;\n this.fireUpdate(data);\n }\n\n handleRequestFailed(event: ChartEvent): void {\n log.error('Request failed', event);\n this.fireError([`${event.detail}`]);\n }\n\n /**\n * Resubscribe to the figure, should be done if settings change\n */\n resubscribe(): void {\n if (this.listeners.length > 0) {\n this.unsubscribeFigure();\n this.subscribeFigure();\n }\n }\n\n setFormatter(formatter: Formatter): void {\n super.setFormatter(formatter);\n\n this.updateLayoutFormats();\n\n // Unsubscribe and resubscribe to trigger a data update\n // Data may need to be translated again because of the new formatter\n this.resubscribe();\n }\n\n setRenderOptions(renderOptions: RenderOptions): void {\n super.setRenderOptions(renderOptions);\n\n // Reset all the series to re-render them with the correct rendering options\n this.initAllSeries();\n }\n\n setDownsamplingDisabled(isDownsamplingDisabled: boolean): void {\n super.setDownsamplingDisabled(isDownsamplingDisabled);\n\n this.resubscribe();\n }\n\n handleFigureDisconnected(event: DhType.Event<unknown>): void {\n log.debug('Figure disconnected', event);\n\n this.isConnected = false;\n\n if (this.listeners.length > 0) {\n this.unsubscribeFigure();\n }\n\n this.fireDisconnect();\n }\n\n handleFigureReconnected(event: DhType.Event<unknown>): void {\n log.debug('Figure reconnected', event);\n\n this.isConnected = true;\n\n // It's possible the series have changed completely, as the query could have been changed\n this.initAllSeries();\n\n this.fireReconnect();\n\n if (this.listeners.length > 0) {\n this.subscribeFigure();\n }\n }\n\n handleFigureSeriesAdded(event: { detail: DhType.plot.Series }): void {\n const { detail: series } = event;\n log.debug('handleFigureSeriesAdded', series);\n\n this.pendingSeries.push(series);\n this.addPendingSeries();\n }\n\n setDimensions(rect: DOMRect): void {\n super.setDimensions(rect);\n\n this.updateAxisPositions();\n }\n\n setTitle(title: string): void {\n super.setTitle(title);\n\n // Need to recalculate the padding based on how many lines of text the title is\n // Plotly doesn't handle positioning it correctly, and it's an undocumented feature\n const subtitleCount = (title ?? '').match(/<br>/g)?.length ?? 0;\n const margin =\n ChartUtils.DEFAULT_MARGIN.t +\n subtitleCount * ChartUtils.SUBTITLE_LINE_HEIGHT;\n\n if (this.layout.margin) {\n this.layout.margin.t = margin;\n } else {\n this.layout.margin = { t: margin };\n }\n\n if (typeof this.layout.title === 'string') {\n this.layout.title = {\n text: title,\n };\n } else {\n this.layout.title = { ...this.layout.title };\n this.layout.title.text = title;\n this.layout.title.pad = { ...this.layout.title.pad };\n this.layout.title.pad.t =\n ChartUtils.DEFAULT_TITLE_PADDING.t +\n subtitleCount * ChartUtils.SUBTITLE_LINE_HEIGHT * 0.5;\n }\n\n this.fireLayoutUpdated({ title: this.layout.title });\n }\n\n getPlotWidth(): number {\n if (!this.rect || !this.rect.width) {\n return 0;\n }\n\n return Math.max(\n this.rect.width -\n (this.layout.margin?.l ?? 0) -\n (this.layout.margin?.r ?? 0),\n 0\n );\n }\n\n getPlotHeight(): number {\n if (!this.rect || !this.rect.height) {\n return 0;\n }\n\n return Math.max(\n this.rect.height -\n (this.layout.margin?.t ?? 0) -\n (this.layout.margin?.b ?? 0),\n 0\n );\n }\n\n updateAxisPositions(): void {\n const plotWidth = this.getPlotWidth();\n const plotHeight = this.getPlotHeight();\n this.chartUtils.updateFigureAxes(\n this.layout,\n this.figure,\n chart => this.getAxisRangeParser(chart, this.formatter),\n plotWidth,\n plotHeight\n );\n }\n\n /**\n * Updates the format patterns used\n */\n updateLayoutFormats(): void {\n if (!this.formatter) {\n return;\n }\n\n const axisFormats = this.chartUtils.getAxisFormats(\n this.figure,\n this.formatter\n );\n axisFormats.forEach((axisFormat, axisLayoutProperty) => {\n log.debug(\n `Assigning ${axisLayoutProperty}`,\n this.layout[axisLayoutProperty],\n axisFormat\n );\n\n const props = this.layout[axisLayoutProperty];\n if (props != null) {\n Object.assign(props, axisFormat);\n } else {\n log.debug(`Ignoring null layout.${axisLayoutProperty}`);\n }\n });\n }\n\n /**\n * Set a specific array for the array of series properties specified.\n * @param series The series to set the data array for.\n * @param sourceType The source type within that series to set the data for.\n * @param dataArray The array to use for the data for this series source.\n */\n setDataArrayForSeries(\n series: DhType.plot.Series,\n sourceType: DhType.plot.SourceType,\n dataArray: unknown[]\n ): void {\n const { name, plotStyle } = series;\n\n const seriesData = this.seriesDataMap.get(name);\n const property = this.chartUtils.getPlotlyProperty(plotStyle, sourceType);\n\n if (seriesData) {\n set(seriesData, property, dataArray);\n }\n }\n\n /**\n * After setting all the data in the series data, we may need to adjust some other properties\n * Eg. Calculating the width from the xLow/xHigh values; Plot.ly uses `width` instead of a low/high\n * value for x.\n * @param series The series to clean the data for\n */\n cleanSeries(series: DhType.plot.Series): void {\n const { dh } = this;\n const { name, plotStyle } = series;\n const seriesData = this.seriesDataMap.get(name);\n if (seriesData == null) {\n return;\n }\n if (plotStyle === dh.plot.SeriesPlotStyle.HISTOGRAM) {\n const { xLow, xHigh } = seriesData;\n if (xLow && xHigh && xLow.length === xHigh.length) {\n const width = [];\n for (let i = 0; i < xLow.length; i += 1) {\n width.push(xHigh[i] - xLow[i]);\n }\n seriesData.width = width;\n }\n } else if (\n plotStyle === dh.plot.SeriesPlotStyle.LINE ||\n plotStyle === dh.plot.SeriesPlotStyle.ERROR_BAR ||\n plotStyle === dh.plot.SeriesPlotStyle.BAR\n ) {\n const { x, xLow, xHigh, y, yLow, yHigh } = seriesData;\n if (xLow && xHigh && xLow !== x) {\n seriesData.error_x = ChartUtils.getPlotlyErrorBars(\n x as number[],\n xLow,\n xHigh\n );\n }\n if (yLow && yHigh && yLow !== y) {\n seriesData.error_y = ChartUtils.getPlotlyErrorBars(\n y as number[],\n yLow,\n yHigh\n );\n }\n } else if (plotStyle === dh.plot.SeriesPlotStyle.TREEMAP) {\n const { ids, labels } = seriesData;\n if (ids !== undefined && labels === undefined) {\n // If the user only provided IDs, we assign the IDs to the labels property as well automatically\n // Plotly uses the labels primarily, which from our API perspective seems kind of backwards\n seriesData.labels = ids;\n }\n }\n }\n\n getData(): Partial<Data>[] {\n return this.data;\n }\n\n getLayout(): Partial<Layout> {\n return this.layout;\n }\n\n getFilterColumnMap(): FilterColumnMap {\n return new Map(this.filterColumnMap);\n }\n\n isFilterRequired(): boolean {\n return (\n this.oneClicks.find(oneClick => oneClick.requireAllFiltersToDisplay) !=\n null\n );\n }\n\n /**\n * Sets the filter on the model. Will only set the values that have changed.\n * @param filterMap Map of filter column names to values\n */\n setFilter(filterMap: FilterMap): void {\n if (this.oneClicks.length === 0) {\n log.warn('Trying to set a filter, but no one click!');\n return;\n }\n\n log.debug('setFilter', filterMap);\n\n for (let i = 0; i < this.oneClicks.length; i += 1) {\n const oneClick = this.oneClicks[i];\n const { columns } = oneClick;\n // Need to get all the keys in case a filter was removed\n const keys = new Set([...filterMap.keys(), ...this.lastFilter.keys()]);\n keys.forEach(key => {\n const value = filterMap.get(key);\n if (\n this.lastFilter.get(key) !== value &&\n columns.find(column => column.name === key) != null\n ) {\n oneClick.setValueForColumn(key, value);\n }\n });\n }\n\n this.lastFilter = new Map(filterMap);\n }\n\n setFigure(figure: DhType.plot.Figure): void {\n this.close();\n\n this.figure = figure;\n\n this.setTitle(this.getDefaultTitle());\n this.initAllSeries();\n this.updateAxisPositions();\n this.startListeningFigure();\n if (this.listeners.length > 0) {\n this.subscribeFigure();\n }\n }\n\n updateSettings(settings: Partial<ChartModelSettings>): void {\n this.settings = settings;\n }\n}\n\nexport default FigureChartModel;\n"],"mappings":";;;;;AAAA;AACA,OAAOA,OAAO,MAAM,UAAU;AAC9B,OAAOC,QAAQ,MAAM,iBAAiB;AACtC,OAAOC,GAAG,MAAM,YAAY;AAE5B,OAAOC,GAAG,MAAM,gBAAgB;AAAC,OAc1BC,UAAU;AAAA,OAKVC,UAAU;AAOjB,IAAMC,GAAG,GAAGH,GAAG,CAACI,MAAM,CAAC,kBAAkB,CAAC;;AAE1C;AACA;AACA;AACA,MAAMC,gBAAgB,SAASJ,UAAU,CAAC;EAGxC;AACF;AACA;AACA;AACA;EACEK,WAAWA,CACTC,EAAiB,EACjBC,MAA0B,EAE1B;IAAA,IAAAC,KAAA;IAAA,IADAC,QAAqC,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAE1C,KAAK,CAACJ,EAAE,CAAC;IAAAE,KAAA,GAAAK,IAAA;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,2BAsNQjB,QAAQ,CAAC,MAAM;MAChC,IAAMkB,WAAW,GAAGd,UAAU,CAACe,cAAc,CAAC,IAAI,CAACT,MAAM,CAAC;MAC1D,IAAM;QAAEU;MAAc,CAAC,GAAG,IAAI;MAAC,IAAAC,KAAA,YAAAA,MAAA,EACmB;QAAA,IAAAC,iBAAA;QAChD,IAAMC,MAAM,GAAGH,aAAa,CAACI,CAAC,CAAC;QAC/B,IAAMC,KAAK,GAAGd,KAAI,CAACD,MAAM,CAACgB,MAAM,CAACC,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACL,MAAM,CAACM,QAAQ,CAACN,MAAM,CAAC,CAAC;QACrEZ,KAAI,CAACmB,SAAS,CAACP,MAAM,EAAEL,WAAW,GAAAI,iBAAA,GAAEG,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEM,UAAU,cAAAT,iBAAA,cAAAA,iBAAA,GAAI,IAAI,CAAC;QAE9DC,MAAM,CAACS,SAAS,CAAC,CAAC;QAClB;MACF,CAAC;MAPD,KAAK,IAAIR,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,aAAa,CAACN,MAAM,EAAEU,CAAC,IAAI,CAAC;QAAAH,KAAA;MAAA;MAShD,IAAI,CAACD,aAAa,GAAG,EAAE;IACzB,CAAC,EAAEb,gBAAgB,CAAC0B,mBAAmB,CAAC;IAAAhB,eAAA,sBA0H1BlB,OAAO,CACnB,CAACmC,UAAkB,EAAEC,SAAgC,KAAK;MACxD,IAAIA,SAAS,IAAI,IAAI,EAAE;QACrB,IAAMC,aAAa,GAAGD,SAAS,CAACE,sBAAsB,CAACH,UAAU,CAAC;QAClE,IAAIE,aAAa,IAAI,IAAI,EAAE;UACzB,OAAQA,aAAa,CAA6BE,UAAU;QAC9D;MACF;MACA,OAAOvB,SAAS;IAClB,CAAC,EACD;MAAEwB,GAAG,EAAE;IAAI,CACb,CAAC;IAAAtB,eAAA,6BAEoBlB,OAAO,CAC1B,CAACmC,UAAkB,EAAEC,SAAgC,KAAK;MACxD,IAAMK,QAAQ,GAAG,IAAI,CAACC,WAAW,CAACP,UAAU,EAAEC,SAAS,CAAC;MACxD,OAAQO,KAAc,IAAK,IAAI,CAACC,UAAU,CAACC,WAAW,CAACF,KAAK,EAAEF,QAAQ,CAAC;IACzE,CAAC,EACD;MAAED,GAAG,EAAE;IAAI,CACb,CAAC;IAAAtB,eAAA,yBAGgBlB,OAAO,CACtB,CAACmC,UAAkB,EAAEC,SAAgC,KAAK;MACxD,IAAMK,QAAQ,GAAG,IAAI,CAACC,WAAW,CAACP,UAAU,EAAEC,SAAS,CAAC;MACxD,OAAQO,KAAc,IACpB,IAAI,CAACC,UAAU,CAACE,SAAS,CAACH,KAAK,EAAER,UAAU,EAAEM,QAAQ,CAAC;IAC1D,CAAC,EACD;MAAED,GAAG,EAAE;IAAI,CACb,CAAC;IAAAtB,eAAA,yBAKgBlB,OAAO,CACtB,CAACmC,UAAkB,EAAEC,SAAqB,KAAMW,KAAY,IAAK;MAC/D,IAAI,CAACC,UAAU,EAAEC,QAAQ,CAAqB,GAAGF,KAAK;MACtD,IAAMG,WAAW,GAAG,IAAI,CAACC,cAAc,CAAChB,UAAU,EAAEC,SAAS,CAAC;MAC9DY,UAAU,GAAGE,WAAW,CAACF,UAAU,CAAC;MACpCC,QAAQ,GAAGC,WAAW,CAACD,QAAQ,CAAC;MAChC,OAAO,CAACD,UAAU,EAAEC,QAAQ,CAAC;IAC/B,CAAC,EACD;MAAET,GAAG,EAAE;IAAI,CACb,CAAC;IAAAtB,eAAA,6BAKoBlB,OAAO,CAC1B,CAAC0B,KAAwB,EAAEU,SAAqB,KAC7CgB,IAAsB,IAAK;MAC1B,IAAMC,MAAM,GAAGhD,UAAU,CAACiD,gBAAgB,CAAC5B,KAAK,EAAE0B,IAAI,CAAC;MACvD,IAAIC,MAAM,IAAI,IAAI,EAAE;QAClB,OAAO,IAAI,CAACE,cAAc,CAACF,MAAM,CAAClB,UAAU,EAAEC,SAAS,CAAC;MAC1D;MAEA,OAAQW,KAAyB,IAAKA,KAAK;IAC7C,CAAC,EACH;MAAEP,GAAG,EAAE;IAAI,CACb,CAAC;IAtZC,IAAI,CAACgB,mBAAmB,GAAG,IAAI,CAACA,mBAAmB,CAACC,IAAI,CAAC,IAAI,CAAC;IAC9D,IAAI,CAACC,wBAAwB,GAAG,IAAI,CAACA,wBAAwB,CAACD,IAAI,CAAC,IAAI,CAAC;IACxE,IAAI,CAACE,uBAAuB,GAAG,IAAI,CAACA,uBAAuB,CAACF,IAAI,CAAC,IAAI,CAAC;IACtE,IAAI,CAACG,uBAAuB,GAAG,IAAI,CAACA,uBAAuB,CAACH,IAAI,CAAC,IAAI,CAAC;IACtE,IAAI,CAACI,qBAAqB,GAAG,IAAI,CAACA,qBAAqB,CAACJ,IAAI,CAAC,IAAI,CAAC;IAClE,IAAI,CAACK,sBAAsB,GAAG,IAAI,CAACA,sBAAsB,CAACL,IAAI,CAAC,IAAI,CAAC;IACpE,IAAI,CAACM,oBAAoB,GAAG,IAAI,CAACA,oBAAoB,CAACN,IAAI,CAAC,IAAI,CAAC;IAChE,IAAI,CAACO,sBAAsB,GAAG,IAAI,CAACA,sBAAsB,CAACP,IAAI,CAAC,IAAI,CAAC;IACpE,IAAI,CAACQ,mBAAmB,GAAG,IAAI,CAACA,mBAAmB,CAACR,IAAI,CAAC,IAAI,CAAC;IAE9D,IAAI,CAAC/C,EAAE,GAAGA,EAAE;IACZ,IAAI,CAACkC,UAAU,GAAG,IAAIvC,UAAU,CAACK,EAAE,CAAC;IACpC,IAAI,CAACC,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACE,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACqD,IAAI,GAAG,EAAE;IACd,IAAI,CAACC,MAAM,GAAG;MACZC,IAAI,EAAE;QACJC,IAAI,EAAE1D,MAAM,CAAC0D,IAAI;QACjBC,OAAO,EAAE3D,MAAM,CAAC4D,IAAI;QACpBC,OAAO,EAAE;MACX;IACF,CAAC;IACD,IAAI,CAACC,aAAa,GAAG,IAAIC,GAAG,CAAC,CAAC;IAC9B,IAAI,CAACrD,aAAa,GAAG,EAAE;IACvB,IAAI,CAACsD,SAAS,GAAG,EAAE;IACnB,IAAI,CAACC,eAAe,GAAG,IAAIF,GAAG,CAAC,CAAC;IAChC,IAAI,CAACG,UAAU,GAAG,IAAIH,GAAG,CAAC,CAAC;IAC3B,IAAI,CAACI,WAAW,GAAG,IAAI,CAAC,CAAC;IACzB,IAAI,CAACC,eAAe,GAAG,IAAIC,GAAG,CAAC,CAAC;IAEhC,IAAI,CAACC,QAAQ,CAAC,IAAI,CAACC,eAAe,CAAC,CAAC,CAAC;IACrC,IAAI,CAACC,aAAa,CAAC,CAAC;IACpB,IAAI,CAACC,mBAAmB,CAAC,CAAC;IAC1B,IAAI,CAACC,oBAAoB,CAAC,CAAC;EAC7B;;EAgCsB;;EAItBC,KAAKA,CAAA,EAAS;IACZ,IAAI,CAAC3E,MAAM,CAAC2E,KAAK,CAAC,CAAC;IACnB,IAAI,CAACC,gBAAgB,CAACC,MAAM,CAAC,CAAC;IAC9B,IAAI,CAACC,mBAAmB,CAAC,CAAC;EAC5B;EAEAP,eAAeA,CAAA,EAAW;IACxB,IAAI,IAAI,CAACvE,MAAM,CAAC+E,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC/E,MAAM,CAAC+E,KAAK,CAAC3E,MAAM,GAAG,CAAC,EAAE;MAC7D,OAAO,IAAI,CAACJ,MAAM,CAAC+E,KAAK;IAC1B;IACA,IAAI,IAAI,CAAC/E,MAAM,CAACgB,MAAM,CAACZ,MAAM,KAAK,CAAC,EAAE;MAAA,IAAA4E,oBAAA;MACnC,QAAAA,oBAAA,GAAO,IAAI,CAAChF,MAAM,CAACgB,MAAM,CAAC,CAAC,CAAC,CAAC+D,KAAK,cAAAC,oBAAA,cAAAA,oBAAA,GAAI,EAAE;IAC1C;IACA,OAAO,EAAE;EACX;EAEAR,aAAaA,CAAA,EAAS;IAAA,IAAAS,MAAA;IACpB,IAAI,CAACjB,SAAS,GAAG,EAAE;IACnB,IAAI,CAACC,eAAe,CAACiB,KAAK,CAAC,CAAC;IAE5B,IAAM;MAAElE;IAAO,CAAC,GAAG,IAAI,CAAChB,MAAM;IAC9B,IAAMQ,WAAW,GAAGd,UAAU,CAACe,cAAc,CAAC,IAAI,CAACT,MAAM,CAAC;IAC1D,IAAMmF,iBAA2B,GAAG,EAAE;IAEtC,IAAI,CAACf,eAAe,GAAG,IAAIC,GAAG,CAAC,CAAC;IAAC,IAAAe,MAAA,YAAAA,OAAA,EAEU;MACzC,IAAMrE,KAAK,GAAGC,MAAM,CAACF,CAAC,CAAC;MAEvB,KAAK,IAAIuE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGtE,KAAK,CAACF,MAAM,CAACT,MAAM,EAAEiF,CAAC,IAAI,CAAC,EAAE;QAC/C,IAAMxE,MAAM,GAAGE,KAAK,CAACF,MAAM,CAACwE,CAAC,CAAC;QAC9BF,iBAAiB,CAACG,IAAI,CAACzE,MAAM,CAAC0E,IAAI,CAAC;QACnCN,MAAI,CAAC7D,SAAS,CAACP,MAAM,EAAEL,WAAW,EAAEO,KAAK,CAACM,UAAU,CAAC;MACvD;;MAEA;MACA,IAAM;QAAEmE,IAAI;QAAET;MAAM,CAAC,GAAGhE,KAAK;MAC7B,IACEgE,KAAK,IAAI,IAAI,IACbA,KAAK,CAAC3E,MAAM,GAAG,CAAC,KACfY,MAAM,CAACZ,MAAM,GAAG,CAAC,IAAI6E,MAAI,CAACjF,MAAM,CAAC+E,KAAK,IAAI,IAAI,CAAC,EAChD;QACA,IAAMU,KAAK,GAAGD,IAAI,CAACvE,IAAI,CAACwB,IAAI,IAAIA,IAAI,CAACiD,IAAI,KAAKT,MAAI,CAAClF,EAAE,CAAC4F,IAAI,CAACC,QAAQ,CAACC,CAAC,CAAC;QACtE,IAAMC,KAAK,GAAGN,IAAI,CAACvE,IAAI,CAACwB,IAAI,IAAIA,IAAI,CAACiD,IAAI,KAAKT,MAAI,CAAClF,EAAE,CAAC4F,IAAI,CAACC,QAAQ,CAACG,CAAC,CAAC;QACtE,IAAIN,KAAK,IAAI,IAAI,IAAIK,KAAK,IAAI,IAAI,EAAE;UAClCnG,GAAG,CAACqG,IAAI,CACN,sFAAsF,EACtFjF,KACF,CAAC;QACH,CAAC,MAAM;UAAA,IAAAkF,qBAAA,EAAAC,gBAAA,EAAAC,sBAAA,EAAAC,iBAAA;UACL,IAAMC,UAAU,GACd,EAAAJ,qBAAA,IAAAC,gBAAA,GAAC1F,WAAW,CAAC8F,GAAG,CAACb,KAAK,CAACC,IAAI,CAAC,cAAAQ,gBAAA,uBAA3BA,gBAAA,CAA6BK,SAAS,CAACC,CAAC,IAAIA,CAAC,KAAKf,KAAK,CAAC,cAAAQ,qBAAA,cAAAA,qBAAA,GAAI,CAAC,IAAI,CAAC;UACrE,IAAMQ,UAAU,GACd,EAAAN,sBAAA,IAAAC,iBAAA,GAAC5F,WAAW,CAAC8F,GAAG,CAACR,KAAK,CAACJ,IAAI,CAAC,cAAAU,iBAAA,uBAA3BA,iBAAA,CAA6BG,SAAS,CAACC,CAAC,IAAIA,CAAC,KAAKV,KAAK,CAAC,cAAAK,sBAAA,cAAAA,sBAAA,GAAI,CAAC,IAAI,CAAC;UAErE,IAAMO,UAAgC,GAAG;YACvCC,KAAK,EAAE,QAAQ;YACfC,CAAC,EAAE,GAAG;YACNC,CAAC,EAAE,CAAC;YACJC,MAAM,EAAE,EAAE;YACVC,IAAI,EAAEhC,KAAK;YACXiC,SAAS,EAAE,KAAK;YAEhB;YACAC,IAAI,MAAAC,MAAA,CAAMb,UAAU,YAAsB;YAC1Cc,IAAI,MAAAD,MAAA,CAAMT,UAAU;UACtB,CAAC;UACD,IAAIxB,MAAI,CAACzB,MAAM,CAAC4D,WAAW,IAAI,IAAI,EAAE;YACnCnC,MAAI,CAACzB,MAAM,CAAC4D,WAAW,GAAG,CAACV,UAAU,CAAC;UACxC,CAAC,MAAM;YACLzB,MAAI,CAACzB,MAAM,CAAC4D,WAAW,CAAC9B,IAAI,CAACoB,UAAU,CAAC;UAC1C;QACF;MACF;IACF,CAAC;IAhDD,KAAK,IAAI5F,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGE,MAAM,CAACZ,MAAM,EAAEU,CAAC,IAAI,CAAC;MAAAsE,MAAA;IAAA;;IAkDzC;IACA,IAAMiC,cAAc,GAAG,CAAC,GAAG,IAAI,CAACvD,aAAa,CAACwD,IAAI,CAAC,CAAC,CAAC;IACrD,IAAMC,mBAAmB,GAAGF,cAAc,CAACG,MAAM,CAC/CC,UAAU,IAAItC,iBAAiB,CAACuC,OAAO,CAACD,UAAU,CAAC,GAAG,CACxD,CAAC;IACD,KAAK,IAAI3G,EAAC,GAAG,CAAC,EAAEA,EAAC,GAAGyG,mBAAmB,CAACnH,MAAM,EAAEU,EAAC,IAAI,CAAC,EAAE;MACtD,IAAM2G,UAAU,GAAGF,mBAAmB,CAACzG,EAAC,CAAC;MACzC,IAAI,CAACgD,aAAa,CAAC6D,MAAM,CAACF,UAAU,CAAC;IACvC;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;EACErG,SAASA,CACPP,MAA0B,EAC1BL,WAAwB,EACxBa,UAA0B,EACpB;IAAA,IAAAuG,qBAAA,EAAAC,mBAAA;IACN,IAAM;MAAE9H;IAAG,CAAC,GAAG,IAAI;IAEnB,IAAM+H,UAAU,GAAG,IAAI,CAAC7F,UAAU,CAAC8F,wBAAwB,CACzDlH,MAAM,EACNL,WAAW,EACXd,UAAU,CAACsI,mBAAmB,CAACnH,MAAM,CAAC0E,IAAI,EAAE,IAAI,CAACrF,QAAQ,CAAC,EAC1DmB,UAAU,GAAAuG,qBAAA,IAAAC,mBAAA,GACV,IAAI,CAACI,aAAa,cAAAJ,mBAAA,uBAAlBA,mBAAA,CAAoBK,KAAK,cAAAN,qBAAA,cAAAA,qBAAA,GAAI,IAC/B,CAAC;IAED,IAAI,CAAC9D,aAAa,CAACvE,GAAG,CAACsB,MAAM,CAAC0E,IAAI,EAAEuC,UAAU,CAAC;IAC/C,IAAI,CAAC1D,eAAe,CAAC+D,GAAG,CAACtH,MAAM,CAAC0E,IAAI,CAAC;IAErC,IAAI,CAAChC,IAAI,GAAG,CAAC,GAAG,IAAI,CAACO,aAAa,CAACsE,MAAM,CAAC,CAAC,CAAC;IAE5C,IAAIvH,MAAM,CAACwH,SAAS,KAAKtI,EAAE,CAAC4F,IAAI,CAAC2C,eAAe,CAACC,WAAW,EAAE;MAC5D,IAAI,CAAC/E,MAAM,CAACgF,OAAO,GAAG,OAAO;IAC/B,CAAC,MAAM,IAAI3H,MAAM,CAACwH,SAAS,KAAKtI,EAAE,CAAC4F,IAAI,CAAC2C,eAAe,CAACG,GAAG,EAAE;MAC3D,IAAI,CAACjF,MAAM,CAACkF,YAAY,GAAGhJ,UAAU,CAACiJ,eAAe,CAAC,IAAI,CAACzI,QAAQ,CAAC;IACtE;;IAEA;IACA;IACA;IACA,IAAI,CAACsD,MAAM,CAACoF,UAAU,GACpB,IAAI,CAACrF,IAAI,CAACnD,MAAM,GAAG,CAAC,IAAIS,MAAM,CAACwH,SAAS,KAAKtI,EAAE,CAAC4F,IAAI,CAAC2C,eAAe,CAACG,GAAG,GACpEpH,UAAU,aAAVA,UAAU,cAAVA,UAAU,GAAIhB,SAAS,GACvB,KAAK;IAEX,IAAIQ,MAAM,CAACgI,QAAQ,IAAI,IAAI,EAAE;MAC3B,IAAM;QAAEA;MAAS,CAAC,GAAGhI,MAAM;MAC3B,IAAM;QAAE8C;MAAQ,CAAC,GAAGkF,QAAQ;MAC5B,KAAK,IAAI/H,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG6C,OAAO,CAACvD,MAAM,EAAEU,CAAC,IAAI,CAAC,EAAE;QAC1C,IAAI,CAACmD,eAAe,CAAC1E,GAAG,CAACoE,OAAO,CAAC7C,CAAC,CAAC,CAACyE,IAAI,EAAE5B,OAAO,CAAC7C,CAAC,CAAC,CAAC;MACvD;MAEA,IAAI,CAACkD,SAAS,CAACsB,IAAI,CAACuD,QAAQ,CAAC;IAC/B;IAEA,IAAI,CAACC,mBAAmB,CAAC,CAAC;EAC5B;;EAEA;EACA;EAgBAxH,SAASA,CAACyH,QAAqC,EAAQ;IACrD,KAAK,CAACzH,SAAS,CAACyH,QAAQ,CAAC;IAEzB,IAAI,IAAI,CAACC,SAAS,CAAC5I,MAAM,KAAK,CAAC,EAAE;MAC/B;MACA,IAAI,CAACoE,aAAa,CAAC,CAAC;MACpB,IAAI,CAACyE,eAAe,CAAC,CAAC;IACxB;EACF;EAEAC,WAAWA,CAACH,QAAqC,EAAQ;IACvD,KAAK,CAACG,WAAW,CAACH,QAAQ,CAAC;IAE3B,IAAI,IAAI,CAACC,SAAS,CAAC5I,MAAM,KAAK,CAAC,EAAE;MAC/B,IAAI,CAAC+I,iBAAiB,CAAC,CAAC;IAC1B;EACF;EAEAF,eAAeA,CAAA,EAAS;IACtB,IAAI,CAAC,IAAI,CAAC9E,WAAW,EAAE;MACrBxE,GAAG,CAACyJ,KAAK,CAAC,sDAAsD,CAAC;MACjE;IACF;IAEA,IAAI,CAACpJ,MAAM,CAACsB,SAAS,CACnB,IAAI,CAAC+H,sBAAsB,GACvB,IAAI,CAACtJ,EAAE,CAAC4F,IAAI,CAAC2D,iBAAiB,CAACC,OAAO,GACtC,IAAI,CAACxJ,EAAE,CAAC4F,IAAI,CAAC2D,iBAAiB,CAACE,OACrC,CAAC;IAED,IAAI,IAAI,CAACxJ,MAAM,CAACyJ,MAAM,CAACrJ,MAAM,GAAG,CAAC,EAAE;MACjCT,GAAG,CAAC+J,KAAK,CAAC,kBAAkB,EAAE,IAAI,CAAC1J,MAAM,CAACyJ,MAAM,CAAC;MACjD,IAAI,CAACE,SAAS,CAAC,IAAI,CAAC3J,MAAM,CAACyJ,MAAM,CAAC;IACpC;EACF;EAEAN,iBAAiBA,CAAA,EAAS;IACxB,IAAI,CAACnJ,MAAM,CAACkJ,WAAW,CAAC,CAAC;EAC3B;EAEAxE,oBAAoBA,CAAA,EAAS;IAC3B,IAAM;MAAE3E;IAAG,CAAC,GAAG,IAAI;IACnB,IAAI,CAACC,MAAM,CAAC4J,gBAAgB,CAC1B7J,EAAE,CAAC4F,IAAI,CAACkE,MAAM,CAACC,aAAa,EAC5B,IAAI,CAACjH,mBACP,CAAC;IACD,IAAI,CAAC7C,MAAM,CAAC4J,gBAAgB,CAC1B7J,EAAE,CAAC4F,IAAI,CAACkE,MAAM,CAACE,kBAAkB,EACjC,IAAI,CAAC9G,uBACP,CAAC;IACD,IAAI,CAACjD,MAAM,CAAC4J,gBAAgB,CAC1B7J,EAAE,CAAC4F,IAAI,CAACkE,MAAM,CAACG,gBAAgB,EAC/B,IAAI,CAACjH,wBACP,CAAC;IACD,IAAI,CAAC/C,MAAM,CAAC4J,gBAAgB,CAC1B7J,EAAE,CAAC4F,IAAI,CAACkE,MAAM,CAACI,eAAe,EAC9B,IAAI,CAACjH,uBACP,CAAC;IACD,IAAI,CAAChD,MAAM,CAAC4J,gBAAgB,CAC1B7J,EAAE,CAAC4F,IAAI,CAACkE,MAAM,CAACK,uBAAuB,EACtC,IAAI,CAAChH,qBACP,CAAC;IACD,IAAI,CAAClD,MAAM,CAAC4J,gBAAgB,CAC1B7J,EAAE,CAAC4F,IAAI,CAACkE,MAAM,CAACM,wBAAwB,EACvC,IAAI,CAAChH,sBACP,CAAC;IACD,IAAI,CAACnD,MAAM,CAAC4J,gBAAgB,CAC1B7J,EAAE,CAAC4F,IAAI,CAACkE,MAAM,CAACO,sBAAsB,EACrC,IAAI,CAAChH,oBACP,CAAC;IACD,IAAI,CAACpD,MAAM,CAAC4J,gBAAgB,CAC1B7J,EAAE,CAAC4F,IAAI,CAACkE,MAAM,CAACQ,sBAAsB,EACrC,IAAI,CAAChH,sBACP,CAAC;IACD,IAAI,CAACrD,MAAM,CAAC4J,gBAAgB,CAC1B7J,EAAE,CAACuK,MAAM,CAACC,oBAAoB,EAC9B,IAAI,CAACjH,mBACP,CAAC;EACH;EAEAwB,mBAAmBA,CAAA,EAAS;IAC1B,IAAM;MAAE/E;IAAG,CAAC,GAAG,IAAI;IACnB,IAAI,CAACC,MAAM,CAACwK,mBAAmB,CAC7BzK,EAAE,CAAC4F,IAAI,CAACkE,MAAM,CAACC,aAAa,EAC5B,IAAI,CAACjH,mBACP,CAAC;IACD,IAAI,CAAC7C,MAAM,CAACwK,mBAAmB,CAC7BzK,EAAE,CAAC4F,IAAI,CAACkE,MAAM,CAACE,kBAAkB,EACjC,IAAI,CAAC9G,uBACP,CAAC;IACD,IAAI,CAACjD,MAAM,CAACwK,mBAAmB,CAC7BzK,EAAE,CAAC4F,IAAI,CAACkE,MAAM,CAACG,gBAAgB,EAC/B,IAAI,CAACjH,wBACP,CAAC;IACD,IAAI,CAAC/C,MAAM,CAACwK,mBAAmB,CAC7BzK,EAAE,CAAC4F,IAAI,CAACkE,MAAM,CAACI,eAAe,EAC9B,IAAI,CAACjH,uBACP,CAAC;IACD,IAAI,CAAChD,MAAM,CAACwK,mBAAmB,CAC7BzK,EAAE,CAAC4F,IAAI,CAACkE,MAAM,CAACK,uBAAuB,EACtC,IAAI,CAAChH,qBACP,CAAC;IACD,IAAI,CAAClD,MAAM,CAACwK,mBAAmB,CAC7BzK,EAAE,CAAC4F,IAAI,CAACkE,MAAM,CAACM,wBAAwB,EACvC,IAAI,CAAChH,sBACP,CAAC;IACD,IAAI,CAACnD,MAAM,CAACwK,mBAAmB,CAC7BzK,EAAE,CAAC4F,IAAI,CAACkE,MAAM,CAACO,sBAAsB,EACrC,IAAI,CAAChH,oBACP,CAAC;IACD,IAAI,CAACpD,MAAM,CAACwK,mBAAmB,CAC7BzK,EAAE,CAAC4F,IAAI,CAACkE,MAAM,CAACQ,sBAAsB,EACrC,IAAI,CAAChH,sBACP,CAAC;IACD,IAAI,CAACrD,MAAM,CAACwK,mBAAmB,CAC7BzK,EAAE,CAACuK,MAAM,CAACC,oBAAoB,EAC9B,IAAI,CAACjH,mBACP,CAAC;EACH;;EAuBA;;EAUA;AACF;AACA;;EAYE;AACF;AACA;;EAcEJ,qBAAqBA,CAACuH,KAAiB,EAAQ;IAC7C9K,GAAG,CAACyJ,KAAK,CAAC,oBAAoB,EAAEqB,KAAK,CAAC;IAEtC,IAAI,CAACC,mBAAmB,CAACD,KAAK,CAACE,MAAM,CAAC;EACxC;EAEAxH,sBAAsBA,CAACsH,KAAiB,EAAQ;IAC9C9K,GAAG,CAACyJ,KAAK,CAAC,qBAAqB,EAAEqB,KAAK,CAAC;IAEvC,IAAI,CAACG,oBAAoB,CAACH,KAAK,CAACE,MAAM,CAAC;EACzC;EAEAvH,oBAAoBA,CAACqH,KAAiB,EAAQ;IAC5C9K,GAAG,CAAC+J,KAAK,CAAC,mBAAmB,EAAEe,KAAK,CAAC;IAErC,IAAI,CAACI,kBAAkB,CAACJ,KAAK,CAACE,MAAM,CAAC;EACvC;EAEAtH,sBAAsBA,CAACoH,KAAiB,EAAQ;IAC9C9K,GAAG,CAACmL,IAAI,CAAC,mBAAmB,EAAEL,KAAK,CAAC;IAEpC,IAAI,CAACM,oBAAoB,CAACN,KAAK,CAACE,MAAM,CAAC;EACzC;EAEA9H,mBAAmBA,CAAC4H,KAA0C,EAAQ;IACpE,IAAM;MAAEE,MAAM,EAAEK;IAAkB,CAAC,GAAGP,KAAK;IAC3C,IAAM;MAAE5J,MAAM,EAAEoK;IAAY,CAAC,GAAGD,iBAAiB;IAEjDrL,GAAG,CAACuL,MAAM,CAAC,qBAAqB,EAAED,WAAW,CAAC;IAE9C,KAAK,IAAInK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmK,WAAW,CAAC7K,MAAM,EAAEU,CAAC,IAAI,CAAC,EAAE;MAC9C,IAAMD,MAAM,GAAGoK,WAAW,CAACnK,CAAC,CAAC;MAE7BnB,GAAG,CAACuL,MAAM,CAAC,qCAAqC,EAAErK,MAAM,CAAC0E,IAAI,CAAC;MAE9D,IAAM;QAAE4F;MAAQ,CAAC,GAAGtK,MAAM;MAC1B,KAAK,IAAIwE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8F,OAAO,CAAC/K,MAAM,EAAEiF,CAAC,IAAI,CAAC,EAAE;QAC1C,IAAM3C,MAAM,GAAGyI,OAAO,CAAC9F,CAAC,CAAC;QACzB,IAAM;UAAE7D,UAAU;UAAEkE;QAAK,CAAC,GAAGhD,MAAM;QACnC,IAAM0I,eAAe,GAAG,IAAI,CAACC,kBAAkB,CAC7C7J,UAAU,EACV,IAAI,CAACC,SACP,CAAC;QACD,IAAM6J,SAAS,GAAGN,iBAAiB,CAACO,QAAQ,CAC1C1K,MAAM,EACN6E,IAAI,EACJ0F,eACF,CAAC;QACD,IAAI,CAACI,qBAAqB,CAAC3K,MAAM,EAAE6E,IAAI,EAAE4F,SAAS,CAAC;MACrD;MAEA,IAAI,CAAClH,eAAe,CAACuD,MAAM,CAAC9G,MAAM,CAAC0E,IAAI,CAAC;MAExC,IAAI,CAACkG,WAAW,CAAC5K,MAAM,CAAC;IAC1B;IACA,IAAI,IAAI,CAACuD,eAAe,CAACsH,IAAI,KAAK,CAAC,EAAE;MACnC,IAAI,CAACC,gBAAgB,CAAC,CAAC;IACzB;IAEA,IAAM;MAAEpI;IAAK,CAAC,GAAG,IAAI;IACrB,IAAI,CAACqI,UAAU,CAACrI,IAAI,CAAC;EACvB;EAEAD,mBAAmBA,CAACmH,KAAiB,EAAQ;IAC3C9K,GAAG,CAAC+J,KAAK,CAAC,gBAAgB,EAAEe,KAAK,CAAC;IAClC,IAAI,CAACd,SAAS,CAAC,IAAAzC,MAAA,CAAIuD,KAAK,CAACE,MAAM,EAAG,CAAC;EACrC;;EAEA;AACF;AACA;EACEkB,WAAWA,CAAA,EAAS;IAClB,IAAI,IAAI,CAAC7C,SAAS,CAAC5I,MAAM,GAAG,CAAC,EAAE;MAC7B,IAAI,CAAC+I,iBAAiB,CAAC,CAAC;MACxB,IAAI,CAACF,eAAe,CAAC,CAAC;IACxB;EACF;EAEA6C,YAAYA,CAACrK,SAAoB,EAAQ;IACvC,KAAK,CAACqK,YAAY,CAACrK,SAAS,CAAC;IAE7B,IAAI,CAACqH,mBAAmB,CAAC,CAAC;;IAE1B;IACA;IACA,IAAI,CAAC+C,WAAW,CAAC,CAAC;EACpB;EAEAE,gBAAgBA,CAAC9D,aAA4B,EAAQ;IACnD,KAAK,CAAC8D,gBAAgB,CAAC9D,aAAa,CAAC;;IAErC;IACA,IAAI,CAACzD,aAAa,CAAC,CAAC;EACtB;EAEAwH,uBAAuBA,CAAC3C,sBAA+B,EAAQ;IAC7D,KAAK,CAAC2C,uBAAuB,CAAC3C,sBAAsB,CAAC;IAErD,IAAI,CAACwC,WAAW,CAAC,CAAC;EACpB;EAEA9I,wBAAwBA,CAAC0H,KAA4B,EAAQ;IAC3D9K,GAAG,CAACyJ,KAAK,CAAC,qBAAqB,EAAEqB,KAAK,CAAC;IAEvC,IAAI,CAACtG,WAAW,GAAG,KAAK;IAExB,IAAI,IAAI,CAAC6E,SAAS,CAAC5I,MAAM,GAAG,CAAC,EAAE;MAC7B,IAAI,CAAC+I,iBAAiB,CAAC,CAAC;IAC1B;IAEA,IAAI,CAAC8C,cAAc,CAAC,CAAC;EACvB;EAEAjJ,uBAAuBA,CAACyH,KAA4B,EAAQ;IAC1D9K,GAAG,CAACyJ,KAAK,CAAC,oBAAoB,EAAEqB,KAAK,CAAC;IAEtC,IAAI,CAACtG,WAAW,GAAG,IAAI;;IAEvB;IACA,IAAI,CAACK,aAAa,CAAC,CAAC;IAEpB,IAAI,CAAC0H,aAAa,CAAC,CAAC;IAEpB,IAAI,IAAI,CAAClD,SAAS,CAAC5I,MAAM,GAAG,CAAC,EAAE;MAC7B,IAAI,CAAC6I,eAAe,CAAC,CAAC;IACxB;EACF;EAEAhG,uBAAuBA,CAACwH,KAAqC,EAAQ;IACnE,IAAM;MAAEE,MAAM,EAAE9J;IAAO,CAAC,GAAG4J,KAAK;IAChC9K,GAAG,CAACyJ,KAAK,CAAC,yBAAyB,EAAEvI,MAAM,CAAC;IAE5C,IAAI,CAACH,aAAa,CAAC4E,IAAI,CAACzE,MAAM,CAAC;IAC/B,IAAI,CAAC+D,gBAAgB,CAAC,CAAC;EACzB;EAEAuH,aAAaA,CAACC,IAAa,EAAQ;IACjC,KAAK,CAACD,aAAa,CAACC,IAAI,CAAC;IAEzB,IAAI,CAAC3H,mBAAmB,CAAC,CAAC;EAC5B;EAEAH,QAAQA,CAACS,KAAa,EAAQ;IAAA,IAAAsH,aAAA,EAAAC,MAAA;IAC5B,KAAK,CAAChI,QAAQ,CAACS,KAAK,CAAC;;IAErB;IACA;IACA,IAAMwH,aAAa,IAAAF,aAAA,IAAAC,MAAA,GAAG,CAACvH,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAE,EAAEyH,KAAK,CAAC,OAAO,CAAC,cAAAF,MAAA,uBAA5BA,MAAA,CAA8BlM,MAAM,cAAAiM,aAAA,cAAAA,aAAA,GAAI,CAAC;IAC/D,IAAMI,MAAM,GACV/M,UAAU,CAACgN,cAAc,CAACC,CAAC,GAC3BJ,aAAa,GAAG7M,UAAU,CAACkN,oBAAoB;IAEjD,IAAI,IAAI,CAACpJ,MAAM,CAACiJ,MAAM,EAAE;MACtB,IAAI,CAACjJ,MAAM,CAACiJ,MAAM,CAACE,CAAC,GAAGF,MAAM;IAC/B,CAAC,MAAM;MACL,IAAI,CAACjJ,MAAM,CAACiJ,MAAM,GAAG;QAAEE,CAAC,EAAEF;MAAO,CAAC;IACpC;IAEA,IAAI,OAAO,IAAI,CAACjJ,MAAM,CAACuB,KAAK,KAAK,QAAQ,EAAE;MACzC,IAAI,CAACvB,MAAM,CAACuB,KAAK,GAAG;QAClBgC,IAAI,EAAEhC;MACR,CAAC;IACH,CAAC,MAAM;MACL,IAAI,CAACvB,MAAM,CAACuB,KAAK,GAAA8H,aAAA,KAAQ,IAAI,CAACrJ,MAAM,CAACuB,KAAK,CAAE;MAC5C,IAAI,CAACvB,MAAM,CAACuB,KAAK,CAACgC,IAAI,GAAGhC,KAAK;MAC9B,IAAI,CAACvB,MAAM,CAACuB,KAAK,CAAC+H,GAAG,GAAAD,aAAA,KAAQ,IAAI,CAACrJ,MAAM,CAACuB,KAAK,CAAC+H,GAAG,CAAE;MACpD,IAAI,CAACtJ,MAAM,CAACuB,KAAK,CAAC+H,GAAG,CAACH,CAAC,GACrBjN,UAAU,CAACqN,qBAAqB,CAACJ,CAAC,GAClCJ,aAAa,GAAG7M,UAAU,CAACkN,oBAAoB,GAAG,GAAG;IACzD;IAEA,IAAI,CAACI,iBAAiB,CAAC;MAAEjI,KAAK,EAAE,IAAI,CAACvB,MAAM,CAACuB;IAAM,CAAC,CAAC;EACtD;EAEAkI,YAAYA,CAAA,EAAW;IAAA,IAAAC,qBAAA,EAAAC,mBAAA,EAAAC,qBAAA,EAAAC,oBAAA;IACrB,IAAI,CAAC,IAAI,CAACjB,IAAI,IAAI,CAAC,IAAI,CAACA,IAAI,CAACkB,KAAK,EAAE;MAClC,OAAO,CAAC;IACV;IAEA,OAAOC,IAAI,CAAC1L,GAAG,CACb,IAAI,CAACuK,IAAI,CAACkB,KAAK,KAAAJ,qBAAA,IAAAC,mBAAA,GACZ,IAAI,CAAC3J,MAAM,CAACiJ,MAAM,cAAAU,mBAAA,uBAAlBA,mBAAA,CAAoBK,CAAC,cAAAN,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC,KAAAE,qBAAA,IAAAC,oBAAA,GAC3B,IAAI,CAAC7J,MAAM,CAACiJ,MAAM,cAAAY,oBAAA,uBAAlBA,oBAAA,CAAoBI,CAAC,cAAAL,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC,EAC9B,CACF,CAAC;EACH;EAEAM,aAAaA,CAAA,EAAW;IAAA,IAAAC,qBAAA,EAAAC,oBAAA,EAAAC,qBAAA,EAAAC,oBAAA;IACtB,IAAI,CAAC,IAAI,CAAC1B,IAAI,IAAI,CAAC,IAAI,CAACA,IAAI,CAAC2B,MAAM,EAAE;MACnC,OAAO,CAAC;IACV;IAEA,OAAOR,IAAI,CAAC1L,GAAG,CACb,IAAI,CAACuK,IAAI,CAAC2B,MAAM,KAAAJ,qBAAA,IAAAC,oBAAA,GACb,IAAI,CAACpK,MAAM,CAACiJ,MAAM,cAAAmB,oBAAA,uBAAlBA,oBAAA,CAAoBjB,CAAC,cAAAgB,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC,KAAAE,qBAAA,IAAAC,oBAAA,GAC3B,IAAI,CAACtK,MAAM,CAACiJ,MAAM,cAAAqB,oBAAA,uBAAlBA,oBAAA,CAAoBE,CAAC,cAAAH,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC,EAC9B,CACF,CAAC;EACH;EAEApJ,mBAAmBA,CAAA,EAAS;IAC1B,IAAMwJ,SAAS,GAAG,IAAI,CAAChB,YAAY,CAAC,CAAC;IACrC,IAAMiB,UAAU,GAAG,IAAI,CAACR,aAAa,CAAC,CAAC;IACvC,IAAI,CAACzL,UAAU,CAACkM,gBAAgB,CAC9B,IAAI,CAAC3K,MAAM,EACX,IAAI,CAACxD,MAAM,EACXe,KAAK,IAAI,IAAI,CAACqN,kBAAkB,CAACrN,KAAK,EAAE,IAAI,CAACU,SAAS,CAAC,EACvDwM,SAAS,EACTC,UACF,CAAC;EACH;;EAEA;AACF;AACA;EACEpF,mBAAmBA,CAAA,EAAS;IAC1B,IAAI,CAAC,IAAI,CAACrH,SAAS,EAAE;MACnB;IACF;IAEA,IAAM4M,WAAW,GAAG,IAAI,CAACpM,UAAU,CAACqM,cAAc,CAChD,IAAI,CAACtO,MAAM,EACX,IAAI,CAACyB,SACP,CAAC;IACD4M,WAAW,CAACE,OAAO,CAAC,CAACC,UAAU,EAAEC,kBAAkB,KAAK;MACtD9O,GAAG,CAACyJ,KAAK,cAAAlC,MAAA,CACMuH,kBAAkB,GAC/B,IAAI,CAACjL,MAAM,CAACiL,kBAAkB,CAAC,EAC/BD,UACF,CAAC;MAED,IAAME,KAAK,GAAG,IAAI,CAAClL,MAAM,CAACiL,kBAAkB,CAAC;MAC7C,IAAIC,KAAK,IAAI,IAAI,EAAE;QACjBC,MAAM,CAACC,MAAM,CAACF,KAAK,EAAEF,UAAU,CAAC;MAClC,CAAC,MAAM;QACL7O,GAAG,CAACyJ,KAAK,yBAAAlC,MAAA,CAAyBuH,kBAAkB,CAAE,CAAC;MACzD;IACF,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEjD,qBAAqBA,CACnB3K,MAA0B,EAC1BgO,UAAkC,EAClCvD,SAAoB,EACd;IACN,IAAM;MAAE/F,IAAI;MAAE8C;IAAU,CAAC,GAAGxH,MAAM;IAElC,IAAMiH,UAAU,GAAG,IAAI,CAAChE,aAAa,CAACwC,GAAG,CAACf,IAAI,CAAC;IAC/C,IAAMuJ,QAAQ,GAAG,IAAI,CAAC7M,UAAU,CAAC8M,iBAAiB,CAAC1G,SAAS,EAAEwG,UAAU,CAAC;IAEzE,IAAI/G,UAAU,EAAE;MACdvI,GAAG,CAACuI,UAAU,EAAEgH,QAAQ,EAAExD,SAAS,CAAC;IACtC;EACF;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEG,WAAWA,CAAC5K,MAA0B,EAAQ;IAC5C,IAAM;MAAEd;IAAG,CAAC,GAAG,IAAI;IACnB,IAAM;MAAEwF,IAAI;MAAE8C;IAAU,CAAC,GAAGxH,MAAM;IAClC,IAAMiH,UAAU,GAAG,IAAI,CAAChE,aAAa,CAACwC,GAAG,CAACf,IAAI,CAAC;IAC/C,IAAIuC,UAAU,IAAI,IAAI,EAAE;MACtB;IACF;IACA,IAAIO,SAAS,KAAKtI,EAAE,CAAC4F,IAAI,CAAC2C,eAAe,CAAC0G,SAAS,EAAE;MACnD,IAAM;QAAEC,IAAI;QAAEC;MAAM,CAAC,GAAGpH,UAAU;MAClC,IAAImH,IAAI,IAAIC,KAAK,IAAID,IAAI,CAAC7O,MAAM,KAAK8O,KAAK,CAAC9O,MAAM,EAAE;QACjD,IAAMkN,KAAK,GAAG,EAAE;QAChB,KAAK,IAAIxM,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGmO,IAAI,CAAC7O,MAAM,EAAEU,CAAC,IAAI,CAAC,EAAE;UACvCwM,KAAK,CAAChI,IAAI,CAAC4J,KAAK,CAACpO,CAAC,CAAC,GAAGmO,IAAI,CAACnO,CAAC,CAAC,CAAC;QAChC;QACAgH,UAAU,CAACwF,KAAK,GAAGA,KAAK;MAC1B;IACF,CAAC,MAAM,IACLjF,SAAS,KAAKtI,EAAE,CAAC4F,IAAI,CAAC2C,eAAe,CAAC6G,IAAI,IAC1C9G,SAAS,KAAKtI,EAAE,CAAC4F,IAAI,CAAC2C,eAAe,CAAC8G,SAAS,IAC/C/G,SAAS,KAAKtI,EAAE,CAAC4F,IAAI,CAAC2C,eAAe,CAAC+G,GAAG,EACzC;MACA,IAAM;QAAEzI,CAAC;QAAEqI,IAAI,EAAJA,KAAI;QAAEC,KAAK,EAALA,MAAK;QAAErI,CAAC;QAAEyI,IAAI;QAAEC;MAAM,CAAC,GAAGzH,UAAU;MACrD,IAAImH,KAAI,IAAIC,MAAK,IAAID,KAAI,KAAKrI,CAAC,EAAE;QAC/BkB,UAAU,CAAC0H,OAAO,GAAG9P,UAAU,CAAC+P,kBAAkB,CAChD7I,CAAC,EACDqI,KAAI,EACJC,MACF,CAAC;MACH;MACA,IAAII,IAAI,IAAIC,KAAK,IAAID,IAAI,KAAKzI,CAAC,EAAE;QAC/BiB,UAAU,CAAC4H,OAAO,GAAGhQ,UAAU,CAAC+P,kBAAkB,CAChD5I,CAAC,EACDyI,IAAI,EACJC,KACF,CAAC;MACH;IACF,CAAC,MAAM,IAAIlH,SAAS,KAAKtI,EAAE,CAAC4F,IAAI,CAAC2C,eAAe,CAACqH,OAAO,EAAE;MACxD,IAAM;QAAEC,GAAG;QAAEC;MAAO,CAAC,GAAG/H,UAAU;MAClC,IAAI8H,GAAG,KAAKvP,SAAS,IAAIwP,MAAM,KAAKxP,SAAS,EAAE;QAC7C;QACA;QACAyH,UAAU,CAAC+H,MAAM,GAAGD,GAAG;MACzB;IACF;EACF;EAEAE,OAAOA,CAAA,EAAoB;IACzB,OAAO,IAAI,CAACvM,IAAI;EAClB;EAEAwM,SAASA,CAAA,EAAoB;IAC3B,OAAO,IAAI,CAACvM,MAAM;EACpB;EAEAwM,kBAAkBA,CAAA,EAAoB;IACpC,OAAO,IAAIjM,GAAG,CAAC,IAAI,CAACE,eAAe,CAAC;EACtC;EAEAgM,gBAAgBA,CAAA,EAAY;IAC1B,OACE,IAAI,CAACjM,SAAS,CAAC/C,IAAI,CAAC4H,QAAQ,IAAIA,QAAQ,CAACqH,0BAA0B,CAAC,IACpE,IAAI;EAER;;EAEA;AACF;AACA;AACA;EACEC,SAASA,CAACC,SAAoB,EAAQ;IAAA,IAAAC,MAAA;IACpC,IAAI,IAAI,CAACrM,SAAS,CAAC5D,MAAM,KAAK,CAAC,EAAE;MAC/BT,GAAG,CAACqG,IAAI,CAAC,2CAA2C,CAAC;MACrD;IACF;IAEArG,GAAG,CAACyJ,KAAK,CAAC,WAAW,EAAEgH,SAAS,CAAC;IAAC,IAAAE,MAAA,YAAAA,OAAA,EAEiB;MACjD,IAAMzH,QAAQ,GAAGwH,MAAI,CAACrM,SAAS,CAAClD,CAAC,CAAC;MAClC,IAAM;QAAE6C;MAAQ,CAAC,GAAGkF,QAAQ;MAC5B;MACA,IAAMvB,IAAI,GAAG,IAAIjD,GAAG,CAAC,CAAC,GAAG+L,SAAS,CAAC9I,IAAI,CAAC,CAAC,EAAE,GAAG+I,MAAI,CAACnM,UAAU,CAACoD,IAAI,CAAC,CAAC,CAAC,CAAC;MACtEA,IAAI,CAACiH,OAAO,CAACgC,GAAG,IAAI;QAClB,IAAMvO,KAAK,GAAGoO,SAAS,CAAC9J,GAAG,CAACiK,GAAG,CAAC;QAChC,IACEF,MAAI,CAACnM,UAAU,CAACoC,GAAG,CAACiK,GAAG,CAAC,KAAKvO,KAAK,IAClC2B,OAAO,CAAC1C,IAAI,CAACuP,MAAM,IAAIA,MAAM,CAACjL,IAAI,KAAKgL,GAAG,CAAC,IAAI,IAAI,EACnD;UACA1H,QAAQ,CAAC4H,iBAAiB,CAACF,GAAG,EAAEvO,KAAK,CAAC;QACxC;MACF,CAAC,CAAC;IACJ,CAAC;IAdD,KAAK,IAAIlB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACkD,SAAS,CAAC5D,MAAM,EAAEU,CAAC,IAAI,CAAC;MAAAwP,MAAA;IAAA;IAgBjD,IAAI,CAACpM,UAAU,GAAG,IAAIH,GAAG,CAACqM,SAAS,CAAC;EACtC;EAEAM,SAASA,CAAC1Q,MAA0B,EAAQ;IAC1C,IAAI,CAAC2E,KAAK,CAAC,CAAC;IAEZ,IAAI,CAAC3E,MAAM,GAAGA,MAAM;IAEpB,IAAI,CAACsE,QAAQ,CAAC,IAAI,CAACC,eAAe,CAAC,CAAC,CAAC;IACrC,IAAI,CAACC,aAAa,CAAC,CAAC;IACpB,IAAI,CAACC,mBAAmB,CAAC,CAAC;IAC1B,IAAI,CAACC,oBAAoB,CAAC,CAAC;IAC3B,IAAI,IAAI,CAACsE,SAAS,CAAC5I,MAAM,GAAG,CAAC,EAAE;MAC7B,IAAI,CAAC6I,eAAe,CAAC,CAAC;IACxB;EACF;EAEA0H,cAAcA,CAACzQ,QAAqC,EAAQ;IAC1D,IAAI,CAACA,QAAQ,GAAGA,QAAQ;EAC1B;AACF;AAACK,eAAA,CAnyBKV,gBAAgB,yBACS,EAAE;AAoyBjC,eAAeA,gBAAgB"}
|
|
1
|
+
{"version":3,"file":"FigureChartModel.js","names":["memoize","debounce","set","Log","ChartModel","ChartUtils","log","module","FigureChartModel","constructor","dh","figure","_this","settings","arguments","length","undefined","this","_defineProperty","axisTypeMap","getAxisTypeMap","pendingSeries","_loop","_chart$showLegend","series","i","chart","charts","find","c","includes","addSeries","showLegend","subscribe","ADD_SERIES_DEBOUNCE","columnType","formatter","dataFormatter","getColumnTypeFormatter","dhTimeZone","max","timeZone","getTimeZone","value","chartUtils","unwrapValue","wrapValue","range","rangeStart","rangeEnd","valueParser","getValueParser","axis","source","getSourceForAxis","getRangeParser","handleFigureUpdated","bind","handleFigureDisconnected","handleFigureReconnected","handleFigureSeriesAdded","handleDownsampleStart","handleDownsampleFinish","handleDownsampleFail","handleDownsampleNeeded","handleRequestFailed","data","layout","grid","rows","columns","cols","pattern","seriesDataMap","Map","oneClicks","filterColumnMap","lastFilter","isConnected","seriesToProcess","Set","setTitle","getDefaultTitle","initAllSeries","updateAxisPositions","startListeningFigure","close","addPendingSeries","cancel","stopListeningFigure","title","_this$figure$charts$","_this2","clear","activeSeriesNames","_loop2","j","push","name","axes","xAxis","type","plot","AxisType","X","yAxis","Y","warn","_axisTypeMap$get$find","_axisTypeMap$get","_axisTypeMap$get$find2","_axisTypeMap$get2","xAxisIndex","get","findIndex","a","yAxisIndex","annotation","align","x","y","yshift","text","showarrow","xref","concat","yref","annotations","allSeriesNames","keys","inactiveSeriesNames","filter","seriesName","indexOf","delete","_this$renderOptions$w","_this$renderOptions","seriesData","makeSeriesDataFromSeries","getSeriesVisibility","renderOptions","webgl","add","values","plotStyle","SeriesPlotStyle","STACKED_BAR","barmode","PIE","hiddenlabels","getHiddenLabels","showlegend","oneClick","updateLayoutFormats","callback","listeners","subscribeFigure","unsubscribe","unsubscribeFigure","debug","isDownsamplingDisabled","DownsampleOptions","DISABLE","DEFAULT","errors","error","fireError","addEventListener","Figure","EVENT_UPDATED","EVENT_SERIES_ADDED","EVENT_DISCONNECT","EVENT_RECONNECT","EVENT_DOWNSAMPLESTARTED","EVENT_DOWNSAMPLEFINISHED","EVENT_DOWNSAMPLEFAILED","EVENT_DOWNSAMPLENEEDED","Client","EVENT_REQUEST_FAILED","removeEventListener","event","fireDownsampleStart","detail","fireDownsampleFinish","fireDownsampleFail","info","fireDownsampleNeeded","figureUpdateEvent","seriesArray","debug2","sources","valueTranslator","getValueTranslator","dataArray","getArray","setDataArrayForSeries","cleanSeries","size","fireLoadFinished","fireUpdate","resubscribe","setFormatter","setRenderOptions","setDownsamplingDisabled","fireDisconnect","fireReconnect","setDimensions","rect","_match$length","_match","subtitleCount","match","margin","DEFAULT_MARGIN","t","SUBTITLE_LINE_HEIGHT","_objectSpread","pad","DEFAULT_TITLE_PADDING","fireLayoutUpdated","getPlotWidth","_this$layout$margin$l","_this$layout$margin","_this$layout$margin$r","_this$layout$margin2","width","Math","l","r","getPlotHeight","_this$layout$margin$t","_this$layout$margin3","_this$layout$margin$b","_this$layout$margin4","height","b","plotWidth","plotHeight","updateFigureAxes","getAxisRangeParser","axisFormats","getAxisFormats","forEach","axisFormat","axisLayoutProperty","props","Object","assign","sourceType","property","getPlotlyProperty","HISTOGRAM","xLow","xHigh","LINE","ERROR_BAR","BAR","yLow","yHigh","error_x","getPlotlyErrorBars","error_y","TREEMAP","ids","labels","getData","getLayout","getFilterColumnMap","isFilterRequired","requireAllFiltersToDisplay","setFilter","filterMap","_this3","_loop3","key","column","setValueForColumn","setFigure","updateSettings"],"sources":["../src/FigureChartModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport memoize from 'memoizee';\nimport debounce from 'lodash.debounce';\nimport set from 'lodash.set';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { type Range } from '@deephaven/utils';\nimport type {\n Annotations,\n Layout,\n Data,\n PlotData,\n XAxisName,\n YAxisName,\n} from 'plotly.js';\nimport type {\n DateTimeColumnFormatter,\n Formatter,\n} from '@deephaven/jsapi-utils';\nimport ChartModel, {\n type ChartEvent,\n type FigureUpdateEventData,\n type RenderOptions,\n} from './ChartModel';\nimport ChartUtils, {\n type AxisTypeMap,\n type ChartModelSettings,\n type FilterColumnMap,\n type FilterMap,\n} from './ChartUtils';\n\nconst log = Log.module('FigureChartModel');\n\n/**\n * Takes a Figure object from a widget to make a model for a chart\n */\nclass FigureChartModel extends ChartModel {\n static ADD_SERIES_DEBOUNCE = 50;\n\n /**\n * @param dh JSAPI instance\n * @param figure The figure object created by the API\n * @param settings Chart settings\n */\n constructor(\n dh: typeof DhType,\n figure: DhType.plot.Figure,\n settings: Partial<ChartModelSettings> = {}\n ) {\n super(dh);\n\n this.handleFigureUpdated = this.handleFigureUpdated.bind(this);\n this.handleFigureDisconnected = this.handleFigureDisconnected.bind(this);\n this.handleFigureReconnected = this.handleFigureReconnected.bind(this);\n this.handleFigureSeriesAdded = this.handleFigureSeriesAdded.bind(this);\n this.handleDownsampleStart = this.handleDownsampleStart.bind(this);\n this.handleDownsampleFinish = this.handleDownsampleFinish.bind(this);\n this.handleDownsampleFail = this.handleDownsampleFail.bind(this);\n this.handleDownsampleNeeded = this.handleDownsampleNeeded.bind(this);\n this.handleRequestFailed = this.handleRequestFailed.bind(this);\n\n this.dh = dh;\n this.chartUtils = new ChartUtils(dh);\n this.figure = figure;\n this.settings = settings;\n this.data = [];\n this.layout = {\n grid: {\n rows: figure.rows,\n columns: figure.cols,\n pattern: 'independent',\n },\n };\n this.seriesDataMap = new Map();\n this.pendingSeries = [];\n this.oneClicks = [];\n this.filterColumnMap = new Map();\n this.lastFilter = new Map();\n this.isConnected = true; // Assume figure is connected to start\n this.seriesToProcess = new Set();\n\n this.setTitle(this.getDefaultTitle());\n this.initAllSeries();\n this.updateAxisPositions();\n this.startListeningFigure();\n }\n\n chartUtils: ChartUtils;\n\n dh: typeof DhType;\n\n figure: DhType.plot.Figure;\n\n settings: Partial<ChartModelSettings>;\n\n data: Partial<Data>[];\n\n layout: Partial<Layout>;\n\n seriesDataMap: Map<\n string,\n Partial<PlotData> & {\n xLow?: number[];\n xHigh?: number[];\n yLow?: number[];\n yHigh?: number[];\n }\n >;\n\n pendingSeries: DhType.plot.Series[];\n\n oneClicks: DhType.plot.OneClick[];\n\n filterColumnMap: FilterColumnMap;\n\n lastFilter: FilterMap;\n\n isConnected: boolean; // Assume figure is connected to start\n\n seriesToProcess;\n\n close(): void {\n this.figure.close();\n this.addPendingSeries.cancel();\n this.stopListeningFigure();\n }\n\n getDefaultTitle(): string {\n if (this.figure.title != null && this.figure.title.length > 0) {\n return this.figure.title;\n }\n if (this.figure.charts.length === 1) {\n return this.figure.charts[0].title ?? '';\n }\n return '';\n }\n\n initAllSeries(): void {\n this.oneClicks = [];\n this.filterColumnMap.clear();\n\n const { charts } = this.figure;\n const axisTypeMap = ChartUtils.getAxisTypeMap(this.figure);\n const activeSeriesNames: string[] = [];\n\n this.seriesToProcess = new Set();\n\n for (let i = 0; i < charts.length; i += 1) {\n const chart = charts[i];\n\n for (let j = 0; j < chart.series.length; j += 1) {\n const series = chart.series[j];\n activeSeriesNames.push(series.name);\n this.addSeries(series, axisTypeMap, chart.showLegend);\n }\n\n // Need to add the chart titles as annotations if they are set\n const { axes, title } = chart;\n if (\n title != null &&\n title.length > 0 &&\n (charts.length > 1 || this.figure.title != null)\n ) {\n const xAxis = axes.find(axis => axis.type === this.dh.plot.AxisType.X);\n const yAxis = axes.find(axis => axis.type === this.dh.plot.AxisType.Y);\n if (xAxis == null || yAxis == null) {\n log.warn(\n 'Chart title provided, but unknown how to map to the correct axes for this chart type',\n chart\n );\n } else {\n const xAxisIndex =\n (axisTypeMap.get(xAxis.type)?.findIndex(a => a === xAxis) ?? 0) + 1;\n const yAxisIndex =\n (axisTypeMap.get(yAxis.type)?.findIndex(a => a === yAxis) ?? 0) + 1;\n\n const annotation: Partial<Annotations> = {\n align: 'center',\n x: 0.5,\n y: 1,\n yshift: 17,\n text: title,\n showarrow: false,\n\n // Typing is incorrect in Plotly for this, as it doesn't seem to be typed for the \"domain\" part: https://plotly.com/javascript/reference/layout/annotations/#layout-annotations-items-annotation-xref\n xref: `x${xAxisIndex} domain` as XAxisName,\n yref: `y${yAxisIndex} domain` as YAxisName,\n };\n if (this.layout.annotations == null) {\n this.layout.annotations = [annotation];\n } else {\n this.layout.annotations.push(annotation);\n }\n }\n }\n }\n\n // Remove any series that no longer exist\n const allSeriesNames = [...this.seriesDataMap.keys()];\n const inactiveSeriesNames = allSeriesNames.filter(\n seriesName => activeSeriesNames.indexOf(seriesName) < 0\n );\n for (let i = 0; i < inactiveSeriesNames.length; i += 1) {\n const seriesName = inactiveSeriesNames[i];\n this.seriesDataMap.delete(seriesName);\n }\n }\n\n /**\n * Add a series to the model\n * @param series Series object to add\n * @param axisTypeMap Map of axis type to the axes in this Figure\n * @param showLegend Whether this series should show the legend or not\n */\n addSeries(\n series: DhType.plot.Series,\n axisTypeMap: AxisTypeMap,\n showLegend: boolean | null\n ): void {\n const { dh } = this;\n\n const seriesData = this.chartUtils.makeSeriesDataFromSeries(\n series,\n axisTypeMap,\n ChartUtils.getSeriesVisibility(series.name, this.settings),\n showLegend,\n this.renderOptions?.webgl ?? true\n );\n\n this.seriesDataMap.set(series.name, seriesData);\n this.seriesToProcess.add(series.name);\n\n this.data = [...this.seriesDataMap.values()];\n\n if (series.plotStyle === dh.plot.SeriesPlotStyle.STACKED_BAR) {\n this.layout.barmode = 'stack';\n } else if (series.plotStyle === dh.plot.SeriesPlotStyle.PIE) {\n this.layout.hiddenlabels = ChartUtils.getHiddenLabels(this.settings);\n }\n\n // We only want to force hide the legend if there is only one series that is not a PIE\n // Right now this means that if the user only has one series, they cannot explicitly show the legend until deephaven-core#3254 is implemented\n // TODO: deephaven-core#3254, once done, this can be removed.\n this.layout.showlegend =\n this.data.length > 1 || series.plotStyle === dh.plot.SeriesPlotStyle.PIE\n ? showLegend ?? undefined\n : false;\n\n if (series.oneClick != null) {\n const { oneClick } = series;\n const { columns } = oneClick;\n for (let i = 0; i < columns.length; i += 1) {\n this.filterColumnMap.set(columns[i].name, columns[i]);\n }\n\n this.oneClicks.push(oneClick);\n }\n\n this.updateLayoutFormats();\n }\n\n // We need to debounce adding series so we subscribe to them all in the same tick\n // This should no longer be necessary after IDS-5049 lands\n addPendingSeries = debounce(() => {\n const axisTypeMap = ChartUtils.getAxisTypeMap(this.figure);\n const { pendingSeries } = this;\n for (let i = 0; i < pendingSeries.length; i += 1) {\n const series = pendingSeries[i];\n const chart = this.figure.charts.find(c => c.series.includes(series));\n this.addSeries(series, axisTypeMap, chart?.showLegend ?? null);\n\n series.subscribe();\n // We'll get an update with the data after subscribing\n }\n\n this.pendingSeries = [];\n }, FigureChartModel.ADD_SERIES_DEBOUNCE);\n\n subscribe(callback: (event: ChartEvent) => void): void {\n super.subscribe(callback);\n\n if (this.listeners.length === 1) {\n // Need to initialize the series here as we may have missed some series when not subscribed\n this.initAllSeries();\n this.subscribeFigure();\n }\n }\n\n unsubscribe(callback: (event: ChartEvent) => void): void {\n super.unsubscribe(callback);\n\n if (this.listeners.length === 0) {\n this.unsubscribeFigure();\n }\n }\n\n subscribeFigure(): void {\n if (!this.isConnected) {\n log.debug('Ignoring subscribe when figure in disconnected state');\n return;\n }\n\n this.figure.subscribe(\n this.isDownsamplingDisabled\n ? this.dh.plot.DownsampleOptions.DISABLE\n : this.dh.plot.DownsampleOptions.DEFAULT\n );\n\n if (this.figure.errors.length > 0) {\n log.error('Errors in figure', this.figure.errors);\n this.fireError(this.figure.errors);\n }\n }\n\n unsubscribeFigure(): void {\n this.figure.unsubscribe();\n }\n\n startListeningFigure(): void {\n const { dh } = this;\n this.figure.addEventListener(\n dh.plot.Figure.EVENT_UPDATED,\n this.handleFigureUpdated\n );\n this.figure.addEventListener(\n dh.plot.Figure.EVENT_SERIES_ADDED,\n this.handleFigureSeriesAdded\n );\n this.figure.addEventListener(\n dh.plot.Figure.EVENT_DISCONNECT,\n this.handleFigureDisconnected\n );\n this.figure.addEventListener(\n dh.plot.Figure.EVENT_RECONNECT,\n this.handleFigureReconnected\n );\n this.figure.addEventListener(\n dh.plot.Figure.EVENT_DOWNSAMPLESTARTED,\n this.handleDownsampleStart\n );\n this.figure.addEventListener(\n dh.plot.Figure.EVENT_DOWNSAMPLEFINISHED,\n this.handleDownsampleFinish\n );\n this.figure.addEventListener(\n dh.plot.Figure.EVENT_DOWNSAMPLEFAILED,\n this.handleDownsampleFail\n );\n this.figure.addEventListener(\n dh.plot.Figure.EVENT_DOWNSAMPLENEEDED,\n this.handleDownsampleNeeded\n );\n this.figure.addEventListener(\n dh.Client.EVENT_REQUEST_FAILED,\n this.handleRequestFailed\n );\n }\n\n stopListeningFigure(): void {\n const { dh } = this;\n this.figure.removeEventListener(\n dh.plot.Figure.EVENT_UPDATED,\n this.handleFigureUpdated\n );\n this.figure.removeEventListener(\n dh.plot.Figure.EVENT_SERIES_ADDED,\n this.handleFigureSeriesAdded\n );\n this.figure.removeEventListener(\n dh.plot.Figure.EVENT_DISCONNECT,\n this.handleFigureDisconnected\n );\n this.figure.removeEventListener(\n dh.plot.Figure.EVENT_RECONNECT,\n this.handleFigureReconnected\n );\n this.figure.removeEventListener(\n dh.plot.Figure.EVENT_DOWNSAMPLESTARTED,\n this.handleDownsampleStart\n );\n this.figure.removeEventListener(\n dh.plot.Figure.EVENT_DOWNSAMPLEFINISHED,\n this.handleDownsampleFinish\n );\n this.figure.removeEventListener(\n dh.plot.Figure.EVENT_DOWNSAMPLEFAILED,\n this.handleDownsampleFail\n );\n this.figure.removeEventListener(\n dh.plot.Figure.EVENT_DOWNSAMPLENEEDED,\n this.handleDownsampleNeeded\n );\n this.figure.removeEventListener(\n dh.Client.EVENT_REQUEST_FAILED,\n this.handleRequestFailed\n );\n }\n\n getTimeZone = memoize(\n (columnType: string, formatter: Formatter | undefined) => {\n if (formatter != null) {\n const dataFormatter = formatter.getColumnTypeFormatter(columnType);\n if (dataFormatter != null) {\n return (dataFormatter as DateTimeColumnFormatter).dhTimeZone;\n }\n }\n return undefined;\n },\n { max: 100 }\n );\n\n getValueTranslator = memoize(\n (columnType: string, formatter: Formatter | undefined) => {\n const timeZone = this.getTimeZone(columnType, formatter);\n return (value: unknown) => this.chartUtils.unwrapValue(value, timeZone);\n },\n { max: 100 }\n );\n\n /** Gets the parser for a value with the provided column type */\n getValueParser = memoize(\n (columnType: string, formatter: Formatter | undefined) => {\n const timeZone = this.getTimeZone(columnType, formatter);\n return (value: unknown) =>\n this.chartUtils.wrapValue(value, columnType, timeZone);\n },\n { max: 100 }\n );\n\n /**\n * Gets the range parser for a particular column type\n */\n getRangeParser = memoize(\n (columnType: string, formatter?: Formatter) => (range: Range) => {\n let [rangeStart, rangeEnd]: [unknown, unknown] = range;\n const valueParser = this.getValueParser(columnType, formatter);\n rangeStart = valueParser(rangeStart);\n rangeEnd = valueParser(rangeEnd);\n return [rangeStart, rangeEnd];\n },\n { max: 100 }\n );\n\n /**\n * Gets the parser for parsing the range from an axis within the given chart\n */\n getAxisRangeParser = memoize(\n (chart: DhType.plot.Chart, formatter?: Formatter) =>\n (axis: DhType.plot.Axis) => {\n const source = ChartUtils.getSourceForAxis(chart, axis);\n if (source != null) {\n return this.getRangeParser(source.columnType, formatter);\n }\n\n return (range: [unknown, unknown]) => range;\n },\n { max: 100 }\n );\n\n handleDownsampleStart(event: ChartEvent): void {\n log.debug('Downsample started', event);\n\n this.fireDownsampleStart(event.detail);\n }\n\n handleDownsampleFinish(event: ChartEvent): void {\n log.debug('Downsample finished', event);\n\n this.fireDownsampleFinish(event.detail);\n }\n\n handleDownsampleFail(event: ChartEvent): void {\n log.error('Downsample failed', event);\n\n this.fireDownsampleFail(event.detail);\n }\n\n handleDownsampleNeeded(event: ChartEvent): void {\n log.info('Downsample needed', event);\n\n this.fireDownsampleNeeded(event.detail);\n }\n\n handleFigureUpdated(event: DhType.Event<FigureUpdateEventData>): void {\n const { detail: figureUpdateEvent } = event;\n const { series: seriesArray } = figureUpdateEvent;\n\n log.debug2('handleFigureUpdated', seriesArray);\n\n for (let i = 0; i < seriesArray.length; i += 1) {\n const series = seriesArray[i];\n\n log.debug2('handleFigureUpdated updating series', series.name);\n\n const { sources } = series;\n for (let j = 0; j < sources.length; j += 1) {\n const source = sources[j];\n const { columnType, type } = source;\n const valueTranslator = this.getValueTranslator(\n columnType,\n this.formatter\n );\n const dataArray = figureUpdateEvent.getArray(\n series,\n type,\n valueTranslator\n );\n this.setDataArrayForSeries(series, type, dataArray);\n }\n\n this.seriesToProcess.delete(series.name);\n\n this.cleanSeries(series);\n }\n if (this.seriesToProcess.size === 0) {\n this.fireLoadFinished();\n }\n\n const { data } = this;\n this.fireUpdate(data);\n }\n\n handleRequestFailed(event: ChartEvent): void {\n log.error('Request failed', event);\n this.fireError([`${event.detail}`]);\n }\n\n /**\n * Resubscribe to the figure, should be done if settings change\n */\n resubscribe(): void {\n if (this.listeners.length > 0) {\n this.unsubscribeFigure();\n this.subscribeFigure();\n }\n }\n\n setFormatter(formatter: Formatter): void {\n super.setFormatter(formatter);\n\n this.updateLayoutFormats();\n\n // Unsubscribe and resubscribe to trigger a data update\n // Data may need to be translated again because of the new formatter\n this.resubscribe();\n }\n\n setRenderOptions(renderOptions: RenderOptions): void {\n super.setRenderOptions(renderOptions);\n\n // Reset all the series to re-render them with the correct rendering options\n this.initAllSeries();\n }\n\n setDownsamplingDisabled(isDownsamplingDisabled: boolean): void {\n super.setDownsamplingDisabled(isDownsamplingDisabled);\n\n this.resubscribe();\n }\n\n handleFigureDisconnected(event: DhType.Event<unknown>): void {\n log.debug('Figure disconnected', event);\n\n this.isConnected = false;\n\n if (this.listeners.length > 0) {\n this.unsubscribeFigure();\n }\n\n this.fireDisconnect();\n }\n\n handleFigureReconnected(event: DhType.Event<unknown>): void {\n log.debug('Figure reconnected', event);\n\n this.isConnected = true;\n\n // It's possible the series have changed completely, as the query could have been changed\n this.initAllSeries();\n\n this.fireReconnect();\n\n if (this.listeners.length > 0) {\n this.subscribeFigure();\n }\n }\n\n handleFigureSeriesAdded(event: { detail: DhType.plot.Series }): void {\n const { detail: series } = event;\n log.debug('handleFigureSeriesAdded', series);\n\n this.pendingSeries.push(series);\n this.addPendingSeries();\n }\n\n setDimensions(rect: DOMRect): void {\n super.setDimensions(rect);\n\n this.updateAxisPositions();\n }\n\n setTitle(title: string): void {\n super.setTitle(title);\n\n // Need to recalculate the padding based on how many lines of text the title is\n // Plotly doesn't handle positioning it correctly, and it's an undocumented feature\n const subtitleCount = (title ?? '').match(/<br>/g)?.length ?? 0;\n const margin =\n ChartUtils.DEFAULT_MARGIN.t +\n subtitleCount * ChartUtils.SUBTITLE_LINE_HEIGHT;\n\n if (this.layout.margin) {\n this.layout.margin.t = margin;\n } else {\n this.layout.margin = { t: margin };\n }\n\n if (typeof this.layout.title === 'string') {\n this.layout.title = {\n text: title,\n };\n } else {\n this.layout.title = { ...this.layout.title };\n this.layout.title.text = title;\n this.layout.title.pad = { ...this.layout.title.pad };\n this.layout.title.pad.t =\n ChartUtils.DEFAULT_TITLE_PADDING.t +\n subtitleCount * ChartUtils.SUBTITLE_LINE_HEIGHT * 0.5;\n }\n\n this.fireLayoutUpdated({ title: this.layout.title });\n }\n\n getPlotWidth(): number {\n if (!this.rect || !this.rect.width) {\n return 0;\n }\n\n return Math.max(\n this.rect.width -\n (this.layout.margin?.l ?? 0) -\n (this.layout.margin?.r ?? 0),\n 0\n );\n }\n\n getPlotHeight(): number {\n if (!this.rect || !this.rect.height) {\n return 0;\n }\n\n return Math.max(\n this.rect.height -\n (this.layout.margin?.t ?? 0) -\n (this.layout.margin?.b ?? 0),\n 0\n );\n }\n\n updateAxisPositions(): void {\n const plotWidth = this.getPlotWidth();\n const plotHeight = this.getPlotHeight();\n this.chartUtils.updateFigureAxes(\n this.layout,\n this.figure,\n chart => this.getAxisRangeParser(chart, this.formatter),\n plotWidth,\n plotHeight\n );\n }\n\n /**\n * Updates the format patterns used\n */\n updateLayoutFormats(): void {\n if (!this.formatter) {\n return;\n }\n\n const axisFormats = this.chartUtils.getAxisFormats(\n this.figure,\n this.formatter\n );\n axisFormats.forEach((axisFormat, axisLayoutProperty) => {\n log.debug(\n `Assigning ${axisLayoutProperty}`,\n this.layout[axisLayoutProperty],\n axisFormat\n );\n\n const props = this.layout[axisLayoutProperty];\n if (props != null) {\n Object.assign(props, axisFormat);\n } else {\n log.debug(`Ignoring null layout.${axisLayoutProperty}`);\n }\n });\n }\n\n /**\n * Set a specific array for the array of series properties specified.\n * @param series The series to set the data array for.\n * @param sourceType The source type within that series to set the data for.\n * @param dataArray The array to use for the data for this series source.\n */\n setDataArrayForSeries(\n series: DhType.plot.Series,\n sourceType: DhType.plot.SourceType,\n dataArray: unknown[]\n ): void {\n const { name, plotStyle } = series;\n\n const seriesData = this.seriesDataMap.get(name);\n const property = this.chartUtils.getPlotlyProperty(plotStyle, sourceType);\n\n if (seriesData) {\n set(seriesData, property, dataArray);\n }\n }\n\n /**\n * After setting all the data in the series data, we may need to adjust some other properties\n * Eg. Calculating the width from the xLow/xHigh values; Plot.ly uses `width` instead of a low/high\n * value for x.\n * @param series The series to clean the data for\n */\n cleanSeries(series: DhType.plot.Series): void {\n const { dh } = this;\n const { name, plotStyle } = series;\n const seriesData = this.seriesDataMap.get(name);\n if (seriesData == null) {\n return;\n }\n if (plotStyle === dh.plot.SeriesPlotStyle.HISTOGRAM) {\n const { xLow, xHigh } = seriesData;\n if (xLow && xHigh && xLow.length === xHigh.length) {\n const width = [];\n for (let i = 0; i < xLow.length; i += 1) {\n width.push(xHigh[i] - xLow[i]);\n }\n seriesData.width = width;\n }\n } else if (\n plotStyle === dh.plot.SeriesPlotStyle.LINE ||\n plotStyle === dh.plot.SeriesPlotStyle.ERROR_BAR ||\n plotStyle === dh.plot.SeriesPlotStyle.BAR\n ) {\n const { x, xLow, xHigh, y, yLow, yHigh } = seriesData;\n if (xLow && xHigh && xLow !== x) {\n seriesData.error_x = ChartUtils.getPlotlyErrorBars(\n x as number[],\n xLow,\n xHigh\n );\n }\n if (yLow && yHigh && yLow !== y) {\n seriesData.error_y = ChartUtils.getPlotlyErrorBars(\n y as number[],\n yLow,\n yHigh\n );\n }\n } else if (plotStyle === dh.plot.SeriesPlotStyle.TREEMAP) {\n const { ids, labels } = seriesData;\n if (ids !== undefined && labels === undefined) {\n // If the user only provided IDs, we assign the IDs to the labels property as well automatically\n // Plotly uses the labels primarily, which from our API perspective seems kind of backwards\n seriesData.labels = ids;\n }\n }\n }\n\n getData(): Partial<Data>[] {\n return this.data;\n }\n\n getLayout(): Partial<Layout> {\n return this.layout;\n }\n\n getFilterColumnMap(): FilterColumnMap {\n return new Map(this.filterColumnMap);\n }\n\n isFilterRequired(): boolean {\n return (\n this.oneClicks.find(oneClick => oneClick.requireAllFiltersToDisplay) !=\n null\n );\n }\n\n /**\n * Sets the filter on the model. Will only set the values that have changed.\n * @param filterMap Map of filter column names to values\n */\n setFilter(filterMap: FilterMap): void {\n if (this.oneClicks.length === 0) {\n log.warn('Trying to set a filter, but no one click!');\n return;\n }\n\n log.debug('setFilter', filterMap);\n\n for (let i = 0; i < this.oneClicks.length; i += 1) {\n const oneClick = this.oneClicks[i];\n const { columns } = oneClick;\n // Need to get all the keys in case a filter was removed\n const keys = new Set([...filterMap.keys(), ...this.lastFilter.keys()]);\n keys.forEach(key => {\n const value = filterMap.get(key);\n if (\n this.lastFilter.get(key) !== value &&\n columns.find(column => column.name === key) != null\n ) {\n oneClick.setValueForColumn(key, value);\n }\n });\n }\n\n this.lastFilter = new Map(filterMap);\n }\n\n setFigure(figure: DhType.plot.Figure): void {\n this.close();\n\n this.figure = figure;\n\n this.setTitle(this.getDefaultTitle());\n this.initAllSeries();\n this.updateAxisPositions();\n this.startListeningFigure();\n if (this.listeners.length > 0) {\n this.subscribeFigure();\n }\n }\n\n updateSettings(settings: Partial<ChartModelSettings>): void {\n this.settings = settings;\n }\n}\n\nexport default FigureChartModel;\n"],"mappings":"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","ignoreList":[]}
|
package/dist/LazyChart.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LazyChart.js","names":["LoadingOverlay","lazy","Suspense","jsx","_jsx","Chart","LazyChart","props","fallback","children","_objectSpread"],"sources":["../src/LazyChart.tsx"],"sourcesContent":["import { LoadingOverlay } from '@deephaven/components';\nimport { lazy, Suspense } from 'react';\n\nconst Chart = lazy(() => import('./Chart.js'));\n\nfunction LazyChart(props: React.ComponentProps<typeof Chart>): JSX.Element {\n return (\n <Suspense fallback={<LoadingOverlay data-testid=\"lazy-chart-loading\" />}>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <Chart {...props} />\n </Suspense>\n );\n}\n\nexport default LazyChart;\n"],"mappings":";;;;;AAAA,SAASA,cAAc,QAAQ,uBAAuB;AACtD,SAASC,IAAI,EAAEC,QAAQ,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEvC,IAAMC,KAAK,gBAAGJ,IAAI,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;AAE9C,SAASK,SAASA,CAACC,KAAyC,EAAe;EACzE,oBACEH,IAAA,CAACF,QAAQ;IAACM,QAAQ,eAAEJ,IAAA,CAACJ,cAAc;MAAC,eAAY;IAAoB,CAAE,CAAE;IAAAS,QAAA,eAEtEL,IAAA,CAACC,KAAK,EAAAK,aAAA,KAAKH,KAAK,CAAG;EAAC,CACZ,CAAC;AAEf;AAEA,eAAeD,SAAS"}
|
|
1
|
+
{"version":3,"file":"LazyChart.js","names":["LoadingOverlay","lazy","Suspense","jsx","_jsx","Chart","LazyChart","props","fallback","children","_objectSpread"],"sources":["../src/LazyChart.tsx"],"sourcesContent":["import { LoadingOverlay } from '@deephaven/components';\nimport { lazy, Suspense } from 'react';\n\nconst Chart = lazy(() => import('./Chart.js'));\n\nfunction LazyChart(props: React.ComponentProps<typeof Chart>): JSX.Element {\n return (\n <Suspense fallback={<LoadingOverlay data-testid=\"lazy-chart-loading\" />}>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <Chart {...props} />\n </Suspense>\n );\n}\n\nexport default LazyChart;\n"],"mappings":";;;;;AAAA,SAASA,cAAc,QAAQ,uBAAuB;AACtD,SAASC,IAAI,EAAEC,QAAQ,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEvC,IAAMC,KAAK,gBAAGJ,IAAI,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;AAE9C,SAASK,SAASA,CAACC,KAAyC,EAAe;EACzE,oBACEH,IAAA,CAACF,QAAQ;IAACM,QAAQ,eAAEJ,IAAA,CAACJ,cAAc;MAAC,eAAY;IAAoB,CAAE,CAAE;IAAAS,QAAA,eAEtEL,IAAA,CAACC,KAAK,EAAAK,aAAA,KAAKH,KAAK,CAAG;EAAC,CACZ,CAAC;AAEf;AAEA,eAAeD,SAAS","ignoreList":[]}
|
package/dist/MockChartModel.js
CHANGED
|
@@ -16,7 +16,6 @@ class MockChartModel extends ChartModel {
|
|
|
16
16
|
return MockChartModel._theme;
|
|
17
17
|
/* eslint-enable no-underscore-dangle */
|
|
18
18
|
}
|
|
19
|
-
|
|
20
19
|
static makeRandomSeries(offset) {
|
|
21
20
|
var scale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
|
22
21
|
var steps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 100;
|
|
@@ -39,7 +38,6 @@ class MockChartModel extends ChartModel {
|
|
|
39
38
|
linear.push(40 + i * MockChartModel.smoothing);
|
|
40
39
|
smooth.push(Math.sin(i / steps * offset) * steps / 3 + MockChartModel.random() * steps / 10 + i * MockChartModel.smoothing); // push a smoother version of the same thing
|
|
41
40
|
}
|
|
42
|
-
|
|
43
41
|
return {
|
|
44
42
|
x: dates,
|
|
45
43
|
y: values,
|
|
@@ -75,7 +73,6 @@ class MockChartModel extends ChartModel {
|
|
|
75
73
|
}
|
|
76
74
|
};
|
|
77
75
|
}
|
|
78
|
-
|
|
79
76
|
static makeTrendline(series) {
|
|
80
77
|
return {
|
|
81
78
|
// we probably want to toss the line formula in legend I guess? either that or render it as text manually on plot
|
|
@@ -92,7 +89,6 @@ class MockChartModel extends ChartModel {
|
|
|
92
89
|
}
|
|
93
90
|
};
|
|
94
91
|
}
|
|
95
|
-
|
|
96
92
|
static makeErrorBand(series) {
|
|
97
93
|
// generate continouous error bands values and text
|
|
98
94
|
var erroryforward = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockChartModel.js","names":["ChartModel","defaultChartTheme","ChartUtils","MockChartModel","theme","_theme","makeRandomSeries","offset","scale","arguments","length","undefined","steps","dates","values","smooth","linear","startDate","Date","i","date","getFullYear","getMonth","getDate","push","concat","v","Math","sin","cos","random","smoothing","round","x","y","s","l","makeScatter","series","name","type","mode","hoverinfo","marker","size","makeArea","fill","line","width","makeTrendline","dash","makeErrorBand","erroryforward","errorybackward","value","errory","reverse","slice","color","error_band_line_color","shape","makeLine","makeRandomData","series1","areaPattern","trendLine","series2","errorBand","makeDefaultLayout","dh","layout","template","makeDefaultTemplate","title","text","xaxis","yaxis","constructor","data","filterFields","_defineProperty","getData","getLayout","getFilterColumnMap","map","Map","set","isFilterRequired","setFilter","fireUpdate","bind"],"sources":["../src/MockChartModel.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport type { Datum, Layout, PlotData } from 'plotly.js';\nimport ChartModel from './ChartModel';\nimport { type ChartTheme, defaultChartTheme } from './ChartTheme';\nimport ChartUtils from './ChartUtils';\n\ninterface Series {\n x: PlotData['x'];\n y: PlotData['y'];\n s: number[];\n l: number[];\n}\n\n/** Displays a basic random chart */\nclass MockChartModel extends ChartModel {\n static random: () => number = Math.random.bind(Math);\n\n static smoothing = 1.5;\n\n static _theme: ChartTheme | null;\n\n static get theme(): ChartTheme {\n /* eslint-disable no-underscore-dangle */\n if (MockChartModel._theme == null) {\n MockChartModel._theme = defaultChartTheme();\n }\n\n return MockChartModel._theme;\n /* eslint-enable no-underscore-dangle */\n }\n\n static makeRandomSeries(offset: number, scale = 1, steps = 100): Series {\n const dates = [];\n const values = [];\n const smooth = [];\n const linear = [];\n\n // Setting to a fixed seed date so that e2e tests can be deterministic.\n const startDate = new Date('2018-06-01');\n\n for (let i = 0; i < steps; i += 1) {\n const date = new Date(\n startDate.getFullYear(),\n startDate.getMonth(),\n startDate.getDate() + i - steps\n );\n dates.push(\n `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`\n );\n let v =\n ((Math.sin((i / steps) * offset) * steps) / 3 +\n (Math.cos(i * 0.2) * steps) / 6 +\n (Math.sin(i * 0.5) * steps) / 10 +\n (MockChartModel.random() * steps) / 5 +\n i * MockChartModel.smoothing) *\n scale;\n v = Math.round(v * 100) / 100; // 2 decimals only\n // using steps acts as amplititude scaling based on value\n // large sine wave for course shape + small sine waves for bumpiness +\n // general randomness noise + index to be constantly up and to the right + smoothing factor\n values.push(v);\n linear.push(40 + i * MockChartModel.smoothing);\n smooth.push(\n (Math.sin((i / steps) * offset) * steps) / 3 +\n (MockChartModel.random() * steps) / 10 +\n i * MockChartModel.smoothing\n ); // push a smoother version of the same thing\n }\n\n return { x: dates, y: values, s: smooth, l: linear };\n }\n\n static makeScatter(series: Series): Partial<PlotData> {\n return {\n name: 'SCTR',\n x: series.x,\n y: series.y,\n type: 'scatter',\n mode: 'markers',\n hoverinfo: 'skip',\n marker: {\n size: 5,\n },\n };\n }\n\n static makeArea(series: Series): Partial<PlotData> {\n return {\n name: 'AREA',\n x: series.x,\n y: series.s,\n type: 'scatter',\n mode: 'line' as PlotData['mode'],\n fill: 'tozeroy',\n hoverinfo: 'all',\n line: {\n width: 3,\n // area patten gets applied as hack in post render plot.ly callback + css\n },\n };\n }\n\n static makeTrendline(series: Series): Partial<PlotData> {\n return {\n // we probably want to toss the line formula in legend I guess? either that or render it as text manually on plot\n name: 'Trendline <br>R<sup>2</sup> = 0.91',\n x: series.x,\n y: series.l,\n type: 'scatter',\n mode: 'line' as PlotData['mode'],\n hoverinfo: 'skip',\n line: {\n width: 3,\n dash: 'dot', // trendlines should follow some sort of color convention + dots/dashed. Remember there can multiple\n // chroma(c.$green).brighten(1.2).hex()\n },\n };\n }\n\n static makeErrorBand(series: Series): Partial<PlotData> {\n // generate continouous error bands values and text\n const erroryforward = [];\n const errorybackward = [];\n for (let i = 0; i < series.y.length; i += 1) {\n const value = series.y[i] as number;\n erroryforward[i] = Math.round((value + 18) * 100) / 100;\n errorybackward[i] = Math.round((value - 18) * 100) / 100;\n }\n\n // makes a closed shape of points winding clockwise for y values\n const errory = erroryforward.concat(errorybackward.reverse());\n\n return {\n name: 'error',\n x: (series.x as Datum[]).concat((series.x as Datum[]).slice().reverse()), // winding for x values, that slice just clones so reverse doesn't apply inplace\n y: errory,\n type: 'scatter',\n mode: 'line' as PlotData['mode'],\n hoverinfo: 'skip',\n fill: 'toself', // there's some ordering bug with scattergl where if the areas traces are ordered after the lines they don't render\n line: {\n width: 0,\n color: MockChartModel.theme.error_band_line_color,\n shape: 'spline',\n },\n };\n }\n\n static makeLine(series: Series): Partial<PlotData> {\n return {\n name: 'LINE',\n x: series.x,\n y: series.y,\n type: 'scatter',\n mode: 'line' as PlotData['mode'],\n hoverinfo: 'x+y+text+name' as PlotData['hoverinfo'],\n line: {\n width: 3,\n },\n };\n }\n\n static makeRandomData(): Partial<PlotData>[] {\n const series1 = MockChartModel.makeRandomSeries(6);\n const areaPattern = MockChartModel.makeArea(series1);\n const trendLine = MockChartModel.makeTrendline(series1);\n\n const series2 = MockChartModel.makeRandomSeries(2);\n const line = MockChartModel.makeLine(series2);\n const errorBand = MockChartModel.makeErrorBand(series2);\n\n return [areaPattern, trendLine, line, errorBand];\n }\n\n static makeDefaultLayout(dh: typeof DhType): Partial<Layout> {\n const layout: Partial<Layout> = {\n template: new ChartUtils(dh).makeDefaultTemplate(MockChartModel.theme),\n };\n\n layout.title = { text: 'Chart' };\n\n layout.xaxis = { title: { text: 'Datestamp' } };\n layout.yaxis = { title: { text: 'Price' } };\n\n return layout;\n }\n\n constructor(\n dh: typeof DhType,\n {\n data = MockChartModel.makeRandomData(),\n layout = MockChartModel.makeDefaultLayout(dh),\n filterFields = [],\n } = {}\n ) {\n super(dh);\n\n this.data = data;\n this.layout = layout;\n this.filterFields = filterFields;\n }\n\n data: Partial<PlotData>[];\n\n filterFields: string[];\n\n layout: Partial<Layout>;\n\n getData(): Partial<PlotData>[] {\n return this.data;\n }\n\n getLayout(): Partial<Layout> {\n return this.layout;\n }\n\n getFilterColumnMap(): Map<string, { name: string; type: string }> {\n const map = new Map();\n\n for (let i = 0; i < this.filterFields.length; i += 1) {\n const name = this.filterFields[i];\n const type = 'java.lang.String';\n map.set(name, { name, type });\n }\n\n return map;\n }\n\n isFilterRequired(): boolean {\n return this.filterFields.length > 0;\n }\n\n setFilter(): void {\n this.fireUpdate(this.data);\n }\n}\n\nexport default MockChartModel;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MockChartModel.js","names":["ChartModel","defaultChartTheme","ChartUtils","MockChartModel","theme","_theme","makeRandomSeries","offset","scale","arguments","length","undefined","steps","dates","values","smooth","linear","startDate","Date","i","date","getFullYear","getMonth","getDate","push","concat","v","Math","sin","cos","random","smoothing","round","x","y","s","l","makeScatter","series","name","type","mode","hoverinfo","marker","size","makeArea","fill","line","width","makeTrendline","dash","makeErrorBand","erroryforward","errorybackward","value","errory","reverse","slice","color","error_band_line_color","shape","makeLine","makeRandomData","series1","areaPattern","trendLine","series2","errorBand","makeDefaultLayout","dh","layout","template","makeDefaultTemplate","title","text","xaxis","yaxis","constructor","data","filterFields","_defineProperty","getData","getLayout","getFilterColumnMap","map","Map","set","isFilterRequired","setFilter","fireUpdate","bind"],"sources":["../src/MockChartModel.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport type { Datum, Layout, PlotData } from 'plotly.js';\nimport ChartModel from './ChartModel';\nimport { type ChartTheme, defaultChartTheme } from './ChartTheme';\nimport ChartUtils from './ChartUtils';\n\ninterface Series {\n x: PlotData['x'];\n y: PlotData['y'];\n s: number[];\n l: number[];\n}\n\n/** Displays a basic random chart */\nclass MockChartModel extends ChartModel {\n static random: () => number = Math.random.bind(Math);\n\n static smoothing = 1.5;\n\n static _theme: ChartTheme | null;\n\n static get theme(): ChartTheme {\n /* eslint-disable no-underscore-dangle */\n if (MockChartModel._theme == null) {\n MockChartModel._theme = defaultChartTheme();\n }\n\n return MockChartModel._theme;\n /* eslint-enable no-underscore-dangle */\n }\n\n static makeRandomSeries(offset: number, scale = 1, steps = 100): Series {\n const dates = [];\n const values = [];\n const smooth = [];\n const linear = [];\n\n // Setting to a fixed seed date so that e2e tests can be deterministic.\n const startDate = new Date('2018-06-01');\n\n for (let i = 0; i < steps; i += 1) {\n const date = new Date(\n startDate.getFullYear(),\n startDate.getMonth(),\n startDate.getDate() + i - steps\n );\n dates.push(\n `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`\n );\n let v =\n ((Math.sin((i / steps) * offset) * steps) / 3 +\n (Math.cos(i * 0.2) * steps) / 6 +\n (Math.sin(i * 0.5) * steps) / 10 +\n (MockChartModel.random() * steps) / 5 +\n i * MockChartModel.smoothing) *\n scale;\n v = Math.round(v * 100) / 100; // 2 decimals only\n // using steps acts as amplititude scaling based on value\n // large sine wave for course shape + small sine waves for bumpiness +\n // general randomness noise + index to be constantly up and to the right + smoothing factor\n values.push(v);\n linear.push(40 + i * MockChartModel.smoothing);\n smooth.push(\n (Math.sin((i / steps) * offset) * steps) / 3 +\n (MockChartModel.random() * steps) / 10 +\n i * MockChartModel.smoothing\n ); // push a smoother version of the same thing\n }\n\n return { x: dates, y: values, s: smooth, l: linear };\n }\n\n static makeScatter(series: Series): Partial<PlotData> {\n return {\n name: 'SCTR',\n x: series.x,\n y: series.y,\n type: 'scatter',\n mode: 'markers',\n hoverinfo: 'skip',\n marker: {\n size: 5,\n },\n };\n }\n\n static makeArea(series: Series): Partial<PlotData> {\n return {\n name: 'AREA',\n x: series.x,\n y: series.s,\n type: 'scatter',\n mode: 'line' as PlotData['mode'],\n fill: 'tozeroy',\n hoverinfo: 'all',\n line: {\n width: 3,\n // area patten gets applied as hack in post render plot.ly callback + css\n },\n };\n }\n\n static makeTrendline(series: Series): Partial<PlotData> {\n return {\n // we probably want to toss the line formula in legend I guess? either that or render it as text manually on plot\n name: 'Trendline <br>R<sup>2</sup> = 0.91',\n x: series.x,\n y: series.l,\n type: 'scatter',\n mode: 'line' as PlotData['mode'],\n hoverinfo: 'skip',\n line: {\n width: 3,\n dash: 'dot', // trendlines should follow some sort of color convention + dots/dashed. Remember there can multiple\n // chroma(c.$green).brighten(1.2).hex()\n },\n };\n }\n\n static makeErrorBand(series: Series): Partial<PlotData> {\n // generate continouous error bands values and text\n const erroryforward = [];\n const errorybackward = [];\n for (let i = 0; i < series.y.length; i += 1) {\n const value = series.y[i] as number;\n erroryforward[i] = Math.round((value + 18) * 100) / 100;\n errorybackward[i] = Math.round((value - 18) * 100) / 100;\n }\n\n // makes a closed shape of points winding clockwise for y values\n const errory = erroryforward.concat(errorybackward.reverse());\n\n return {\n name: 'error',\n x: (series.x as Datum[]).concat((series.x as Datum[]).slice().reverse()), // winding for x values, that slice just clones so reverse doesn't apply inplace\n y: errory,\n type: 'scatter',\n mode: 'line' as PlotData['mode'],\n hoverinfo: 'skip',\n fill: 'toself', // there's some ordering bug with scattergl where if the areas traces are ordered after the lines they don't render\n line: {\n width: 0,\n color: MockChartModel.theme.error_band_line_color,\n shape: 'spline',\n },\n };\n }\n\n static makeLine(series: Series): Partial<PlotData> {\n return {\n name: 'LINE',\n x: series.x,\n y: series.y,\n type: 'scatter',\n mode: 'line' as PlotData['mode'],\n hoverinfo: 'x+y+text+name' as PlotData['hoverinfo'],\n line: {\n width: 3,\n },\n };\n }\n\n static makeRandomData(): Partial<PlotData>[] {\n const series1 = MockChartModel.makeRandomSeries(6);\n const areaPattern = MockChartModel.makeArea(series1);\n const trendLine = MockChartModel.makeTrendline(series1);\n\n const series2 = MockChartModel.makeRandomSeries(2);\n const line = MockChartModel.makeLine(series2);\n const errorBand = MockChartModel.makeErrorBand(series2);\n\n return [areaPattern, trendLine, line, errorBand];\n }\n\n static makeDefaultLayout(dh: typeof DhType): Partial<Layout> {\n const layout: Partial<Layout> = {\n template: new ChartUtils(dh).makeDefaultTemplate(MockChartModel.theme),\n };\n\n layout.title = { text: 'Chart' };\n\n layout.xaxis = { title: { text: 'Datestamp' } };\n layout.yaxis = { title: { text: 'Price' } };\n\n return layout;\n }\n\n constructor(\n dh: typeof DhType,\n {\n data = MockChartModel.makeRandomData(),\n layout = MockChartModel.makeDefaultLayout(dh),\n filterFields = [],\n } = {}\n ) {\n super(dh);\n\n this.data = data;\n this.layout = layout;\n this.filterFields = filterFields;\n }\n\n data: Partial<PlotData>[];\n\n filterFields: string[];\n\n layout: Partial<Layout>;\n\n getData(): Partial<PlotData>[] {\n return this.data;\n }\n\n getLayout(): Partial<Layout> {\n return this.layout;\n }\n\n getFilterColumnMap(): Map<string, { name: string; type: string }> {\n const map = new Map();\n\n for (let i = 0; i < this.filterFields.length; i += 1) {\n const name = this.filterFields[i];\n const type = 'java.lang.String';\n map.set(name, { name, type });\n }\n\n return map;\n }\n\n isFilterRequired(): boolean {\n return this.filterFields.length > 0;\n }\n\n setFilter(): void {\n this.fireUpdate(this.data);\n }\n}\n\nexport default MockChartModel;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"declaration.d.js","names":[],"sources":["../src/declaration.d.ts"],"sourcesContent":["declare module '*.module.scss' {\n const content: Record<string, string>;\n export default content;\n}\n\ndeclare module '*.scss';\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"declaration.d.js","names":[],"sources":["../src/declaration.d.ts"],"sourcesContent":["declare module '*.module.scss' {\n const content: Record<string, string>;\n export default content;\n}\n\ndeclare module '*.scss';\n"],"mappings":"","ignoreList":[]}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default","Chart","ChartModelFactory","ChartModel","ChartUtils","FigureChartModel","MockChartModel","Plot","isFigureChartModel"],"sources":["../src/index.ts"],"sourcesContent":["export { default as Chart } from './LazyChart';\nexport { default as ChartModelFactory } from './ChartModelFactory';\nexport { default as ChartModel } from './ChartModel';\nexport { default as ChartUtils } from './ChartUtils';\nexport * from './ChartUtils';\nexport * from './DownsamplingError';\nexport { default as FigureChartModel } from './FigureChartModel';\nexport { default as MockChartModel } from './MockChartModel';\nexport { default as Plot } from './plotly/LazyPlot';\nexport * from './ChartTheme';\nexport * from './ChartThemeProvider';\nexport { default as isFigureChartModel } from './isFigureChartModel';\nexport * from './useChartTheme';\n"],"mappings":"SAASA,OAAO,IAAIC,KAAK;AAAA,SAChBD,OAAO,IAAIE,iBAAiB;AAAA,SAC5BF,OAAO,IAAIG,UAAU;AAAA,SACrBH,OAAO,IAAII,UAAU;AAAA;AAAA;AAAA,SAGrBJ,OAAO,IAAIK,gBAAgB;AAAA,SAC3BL,OAAO,IAAIM,cAAc;AAAA,SACzBN,OAAO,IAAIO,IAAI;AAAA;AAAA;AAAA,SAGfP,OAAO,IAAIQ,kBAAkB;AAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","Chart","ChartModelFactory","ChartModel","ChartUtils","FigureChartModel","MockChartModel","Plot","isFigureChartModel"],"sources":["../src/index.ts"],"sourcesContent":["export { default as Chart } from './LazyChart';\nexport { default as ChartModelFactory } from './ChartModelFactory';\nexport { default as ChartModel } from './ChartModel';\nexport { default as ChartUtils } from './ChartUtils';\nexport * from './ChartUtils';\nexport * from './DownsamplingError';\nexport { default as FigureChartModel } from './FigureChartModel';\nexport { default as MockChartModel } from './MockChartModel';\nexport { default as Plot } from './plotly/LazyPlot';\nexport * from './ChartTheme';\nexport * from './ChartThemeProvider';\nexport { default as isFigureChartModel } from './isFigureChartModel';\nexport * from './useChartTheme';\n"],"mappings":"SAASA,OAAO,IAAIC,KAAK;AAAA,SAChBD,OAAO,IAAIE,iBAAiB;AAAA,SAC5BF,OAAO,IAAIG,UAAU;AAAA,SACrBH,OAAO,IAAII,UAAU;AAAA;AAAA;AAAA,SAGrBJ,OAAO,IAAIK,gBAAgB;AAAA,SAC3BL,OAAO,IAAIM,cAAc;AAAA,SACzBN,OAAO,IAAIO,IAAI;AAAA;AAAA;AAAA,SAGfP,OAAO,IAAIQ,kBAAkB;AAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isFigureChartModel.js","names":["isFigureChartModel","model","setFigure","undefined"],"sources":["../src/isFigureChartModel.ts"],"sourcesContent":["import type ChartModel from './ChartModel';\nimport type FigureChartModel from './FigureChartModel';\n\nexport default function isFigureChartModel(\n model: ChartModel\n): model is FigureChartModel {\n return (model as FigureChartModel).setFigure !== undefined;\n}\n"],"mappings":"AAGA,eAAe,SAASA,kBAAkBA,CACxCC,KAAiB,EACU;EAC3B,OAAQA,KAAK,CAAsBC,SAAS,KAAKC,SAAS;AAC5D"}
|
|
1
|
+
{"version":3,"file":"isFigureChartModel.js","names":["isFigureChartModel","model","setFigure","undefined"],"sources":["../src/isFigureChartModel.ts"],"sourcesContent":["import type ChartModel from './ChartModel';\nimport type FigureChartModel from './FigureChartModel';\n\nexport default function isFigureChartModel(\n model: ChartModel\n): model is FigureChartModel {\n return (model as FigureChartModel).setFigure !== undefined;\n}\n"],"mappings":"AAGA,eAAe,SAASA,kBAAkBA,CACxCC,KAAiB,EACU;EAC3B,OAAQA,KAAK,CAAsBC,SAAS,KAAKC,SAAS;AAC5D","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LazyPlot.js","names":["LoadingOverlay","lazy","Suspense","jsx","_jsx","PlotBase","Plot","props","fallback","children","_objectSpread"],"sources":["../../src/plotly/LazyPlot.tsx"],"sourcesContent":["import { LoadingOverlay } from '@deephaven/components';\nimport { lazy, Suspense } from 'react';\n\nconst PlotBase = lazy(() => import('./Plot.js'));\n\nfunction Plot(props: React.ComponentProps<typeof PlotBase>): JSX.Element {\n return (\n <Suspense fallback={<LoadingOverlay data-testid=\"lazy-plot-loading\" />}>\n {/* eslint-disable react/jsx-props-no-spreading */}\n <PlotBase {...props} />\n </Suspense>\n );\n}\n\nexport default Plot;\n"],"mappings":";;;;;AAAA,SAASA,cAAc,QAAQ,uBAAuB;AACtD,SAASC,IAAI,EAAEC,QAAQ,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEvC,IAAMC,QAAQ,gBAAGJ,IAAI,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;AAEhD,SAASK,IAAIA,CAACC,KAA4C,EAAe;EACvE,oBACEH,IAAA,CAACF,QAAQ;IAACM,QAAQ,eAAEJ,IAAA,CAACJ,cAAc;MAAC,eAAY;IAAmB,CAAE,CAAE;IAAAS,QAAA,eAErEL,IAAA,CAACC,QAAQ,EAAAK,aAAA,KAAKH,KAAK,CAAG;EAAC,CACf,CAAC;AAEf;AAEA,eAAeD,IAAI"}
|
|
1
|
+
{"version":3,"file":"LazyPlot.js","names":["LoadingOverlay","lazy","Suspense","jsx","_jsx","PlotBase","Plot","props","fallback","children","_objectSpread"],"sources":["../../src/plotly/LazyPlot.tsx"],"sourcesContent":["import { LoadingOverlay } from '@deephaven/components';\nimport { lazy, Suspense } from 'react';\n\nconst PlotBase = lazy(() => import('./Plot.js'));\n\nfunction Plot(props: React.ComponentProps<typeof PlotBase>): JSX.Element {\n return (\n <Suspense fallback={<LoadingOverlay data-testid=\"lazy-plot-loading\" />}>\n {/* eslint-disable react/jsx-props-no-spreading */}\n <PlotBase {...props} />\n </Suspense>\n );\n}\n\nexport default Plot;\n"],"mappings":";;;;;AAAA,SAASA,cAAc,QAAQ,uBAAuB;AACtD,SAASC,IAAI,EAAEC,QAAQ,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEvC,IAAMC,QAAQ,gBAAGJ,IAAI,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;AAEhD,SAASK,IAAIA,CAACC,KAA4C,EAAe;EACvE,oBACEH,IAAA,CAACF,QAAQ;IAACM,QAAQ,eAAEJ,IAAA,CAACJ,cAAc;MAAC,eAAY;IAAmB,CAAE,CAAE;IAAAS,QAAA,eAErEL,IAAA,CAACC,QAAQ,EAAAK,aAAA,KAAKH,KAAK,CAAG;EAAC,CACf,CAAC;AAEf;AAEA,eAAeD,IAAI","ignoreList":[]}
|
package/dist/plotly/Plot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Plot.js","names":["createPlotlyComponent","Plotly"],"sources":["../../src/plotly/Plot.ts"],"sourcesContent":["// Import the react customizable bundle for building, only pull in the modules we need\n// This reduces the build size. Plotly has a lot of modules we don't need/use.\n// https://github.com/plotly/react-plotly.js#customizing-the-plotlyjs-bundle\nimport createPlotlyComponent from './createPlotlyComponent';\nimport Plotly from './Plotly';\n\nexport default createPlotlyComponent(Plotly);\n"],"mappings":"AAAA;AACA;AACA;AAAA,OACOA,qBAAqB;AAAA,OACrBC,MAAM;AAEb,eAAeD,qBAAqB,CAACC,MAAM,CAAC"}
|
|
1
|
+
{"version":3,"file":"Plot.js","names":["createPlotlyComponent","Plotly"],"sources":["../../src/plotly/Plot.ts"],"sourcesContent":["// Import the react customizable bundle for building, only pull in the modules we need\n// This reduces the build size. Plotly has a lot of modules we don't need/use.\n// https://github.com/plotly/react-plotly.js#customizing-the-plotlyjs-bundle\nimport createPlotlyComponent from './createPlotlyComponent';\nimport Plotly from './Plotly';\n\nexport default createPlotlyComponent(Plotly);\n"],"mappings":"AAAA;AACA;AACA;AAAA,OACOA,qBAAqB;AAAA,OACrBC,MAAM;AAEb,eAAeD,qBAAqB,CAACC,MAAM,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Plotly.js","names":["Plotly","bar","histogram","pie","ohlc","scattergl","treemap","register"],"sources":["../../src/plotly/Plotly.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable global-require */\n// Create a partial plot with only the kinds of charts we need\n// https://github.com/plotly/plotly.js/#modules\n\n// Plotly types don't export anything other than core, so ignore the import type errors\nimport Plotly from 'plotly.js/lib/core.js';\n// @ts-ignore\nimport bar from 'plotly.js/lib/bar.js';\n// @ts-ignore\nimport histogram from 'plotly.js/lib/histogram.js';\n// @ts-ignore\nimport pie from 'plotly.js/lib/pie.js';\n// @ts-ignore\nimport ohlc from 'plotly.js/lib/ohlc.js';\n// @ts-ignore\nimport scattergl from 'plotly.js/lib/scattergl.js';\n// @ts-ignore\nimport treemap from 'plotly.js/lib/treemap.js';\n\n// Load in the trace types we need/support\nPlotly.register([bar, histogram, pie, ohlc, scattergl, treemap]);\n\nexport default Plotly;\n"],"mappings":"AAAA;AACA;AACA;AACA;;AAEA;AACA,OAAOA,MAAM,MAAM,uBAAuB;AAC1C;AACA,OAAOC,GAAG,MAAM,sBAAsB;AACtC;AACA,OAAOC,SAAS,MAAM,4BAA4B;AAClD;AACA,OAAOC,GAAG,MAAM,sBAAsB;AACtC;AACA,OAAOC,IAAI,MAAM,uBAAuB;AACxC;AACA,OAAOC,SAAS,MAAM,4BAA4B;AAClD;AACA,OAAOC,OAAO,MAAM,0BAA0B;;AAE9C;AACAN,MAAM,CAACO,QAAQ,CAAC,CAACN,GAAG,EAAEC,SAAS,EAAEC,GAAG,EAAEC,IAAI,EAAEC,SAAS,EAAEC,OAAO,CAAC,CAAC;AAEhE,eAAeN,MAAM"}
|
|
1
|
+
{"version":3,"file":"Plotly.js","names":["Plotly","bar","histogram","pie","ohlc","scattergl","treemap","register"],"sources":["../../src/plotly/Plotly.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable global-require */\n// Create a partial plot with only the kinds of charts we need\n// https://github.com/plotly/plotly.js/#modules\n\n// Plotly types don't export anything other than core, so ignore the import type errors\nimport Plotly from 'plotly.js/lib/core.js';\n// @ts-ignore\nimport bar from 'plotly.js/lib/bar.js';\n// @ts-ignore\nimport histogram from 'plotly.js/lib/histogram.js';\n// @ts-ignore\nimport pie from 'plotly.js/lib/pie.js';\n// @ts-ignore\nimport ohlc from 'plotly.js/lib/ohlc.js';\n// @ts-ignore\nimport scattergl from 'plotly.js/lib/scattergl.js';\n// @ts-ignore\nimport treemap from 'plotly.js/lib/treemap.js';\n\n// Load in the trace types we need/support\nPlotly.register([bar, histogram, pie, ohlc, scattergl, treemap]);\n\nexport default Plotly;\n"],"mappings":"AAAA;AACA;AACA;AACA;;AAEA;AACA,OAAOA,MAAM,MAAM,uBAAuB;AAC1C;AACA,OAAOC,GAAG,MAAM,sBAAsB;AACtC;AACA,OAAOC,SAAS,MAAM,4BAA4B;AAClD;AACA,OAAOC,GAAG,MAAM,sBAAsB;AACtC;AACA,OAAOC,IAAI,MAAM,uBAAuB;AACxC;AACA,OAAOC,SAAS,MAAM,4BAA4B;AAClD;AACA,OAAOC,OAAO,MAAM,0BAA0B;;AAE9C;AACAN,MAAM,CAACO,QAAQ,CAAC,CAACN,GAAG,EAAEC,SAAS,EAAEC,GAAG,EAAEC,IAAI,EAAEC,SAAS,EAAEC,OAAO,CAAC,CAAC;AAEhE,eAAeN,MAAM","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPlotlyComponent.js","names":["createPlotlyComponent","default"],"sources":["../../src/plotly/createPlotlyComponent.ts"],"sourcesContent":["// Import the react customizable bundle for building, only pull in the modules we need\n// This reduces the build size. Plotly has a lot of modules we don't need/use.\n// https://github.com/plotly/react-plotly.js#customizing-the-plotlyjs-bundle\nimport createPlotlyComponent from 'react-plotly.js/factory.js';\n\n// Webpack 5 (used in docusaurus) gives an object w/ a default key\n// This is probably something on react-plotly.js's side\n// Or because we lazy load this and Docusaurus ends up w/ some complications between ESM and CJS\nexport default typeof createPlotlyComponent === 'function'\n ? createPlotlyComponent\n : // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n (createPlotlyComponent.default as typeof createPlotlyComponent);\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,qBAAqB,MAAM,4BAA4B;;AAE9D;AACA;AACA;AACA,eAAe,OAAOA,qBAAqB,KAAK,UAAU,GACtDA,qBAAqB;AACrB;AACA;AACCA,qBAAqB,CAACC,OAAwC"}
|
|
1
|
+
{"version":3,"file":"createPlotlyComponent.js","names":["createPlotlyComponent","default"],"sources":["../../src/plotly/createPlotlyComponent.ts"],"sourcesContent":["// Import the react customizable bundle for building, only pull in the modules we need\n// This reduces the build size. Plotly has a lot of modules we don't need/use.\n// https://github.com/plotly/react-plotly.js#customizing-the-plotlyjs-bundle\nimport createPlotlyComponent from 'react-plotly.js/factory.js';\n\n// Webpack 5 (used in docusaurus) gives an object w/ a default key\n// This is probably something on react-plotly.js's side\n// Or because we lazy load this and Docusaurus ends up w/ some complications between ESM and CJS\nexport default typeof createPlotlyComponent === 'function'\n ? createPlotlyComponent\n : // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n (createPlotlyComponent.default as typeof createPlotlyComponent);\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,qBAAqB,MAAM,4BAA4B;;AAE9D;AACA;AACA;AACA,eAAe,OAAOA,qBAAqB,KAAK,UAAU,GACtDA,qBAAqB;AACrB;AACA;AACCA,qBAAqB,CAACC,OAAwC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plotly-extends.d.js","names":[],"sources":["../../src/plotly/plotly-extends.d.ts"],"sourcesContent":["/**\n * Fix some issues with plotly types.\n */\n\ndeclare module 'plotly.js' {\n interface OhlcDirectionData {\n line?: { color?: Color; width?: number; dash?: Dash };\n }\n\n export interface PlotData {\n increasing?: OhlcDirectionData;\n decreasing?: OhlcDirectionData;\n outsidetextfont?: { color?: Color };\n }\n}\n\nexport {};\n"],"mappings":"AAAA;AACA;AACA;;AAcA"}
|
|
1
|
+
{"version":3,"file":"plotly-extends.d.js","names":[],"sources":["../../src/plotly/plotly-extends.d.ts"],"sourcesContent":["/**\n * Fix some issues with plotly types.\n */\n\ndeclare module 'plotly.js' {\n interface OhlcDirectionData {\n line?: { color?: Color; width?: number; dash?: Dash };\n }\n\n export interface PlotData {\n increasing?: OhlcDirectionData;\n decreasing?: OhlcDirectionData;\n outsidetextfont?: { color?: Color };\n }\n}\n\nexport {};\n"],"mappings":"AAAA;AACA;AACA;;AAcA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChartTheme.js","names":["useContextOrThrow","ChartThemeContext","useChartTheme"],"sources":["../src/useChartTheme.tsx"],"sourcesContent":["import { useContextOrThrow } from '@deephaven/react-hooks';\n\nimport {\n ChartThemeContext,\n type ChartThemeContextValue,\n} from './ChartThemeProvider';\n\n/**\n * Hook to get the current `ChartThemeContextValue`.\n */\nexport function useChartTheme(): ChartThemeContextValue {\n return useContextOrThrow(\n ChartThemeContext,\n 'No ChartThemeContext value found.'\n );\n}\n\nexport default useChartTheme;\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,wBAAwB;AAAC,SAGzDC,iBAAiB;AAInB;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAAA,EAA2B;EACtD,OAAOF,iBAAiB,CACtBC,iBAAiB,EACjB,mCACF,CAAC;AACH;AAEA,eAAeC,aAAa"}
|
|
1
|
+
{"version":3,"file":"useChartTheme.js","names":["useContextOrThrow","ChartThemeContext","useChartTheme"],"sources":["../src/useChartTheme.tsx"],"sourcesContent":["import { useContextOrThrow } from '@deephaven/react-hooks';\n\nimport {\n ChartThemeContext,\n type ChartThemeContextValue,\n} from './ChartThemeProvider';\n\n/**\n * Hook to get the current `ChartThemeContextValue`.\n */\nexport function useChartTheme(): ChartThemeContextValue {\n return useContextOrThrow(\n ChartThemeContext,\n 'No ChartThemeContext value found.'\n );\n}\n\nexport default useChartTheme;\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,wBAAwB;AAAC,SAGzDC,iBAAiB;AAInB;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAAA,EAA2B;EACtD,OAAOF,iBAAiB,CACtBC,iBAAiB,EACjB,mCACF,CAAC;AACH;AAEA,eAAeC,aAAa","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/chart",
|
|
3
|
-
"version": "1.7.2-
|
|
3
|
+
"version": "1.7.2-react-18-alpha.3+b369a51e",
|
|
4
4
|
"description": "Deephaven Chart",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -27,30 +27,29 @@
|
|
|
27
27
|
"build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@deephaven/components": "^1.7.2-
|
|
31
|
-
"@deephaven/icons": "^1.7.2-
|
|
30
|
+
"@deephaven/components": "^1.7.2-react-18-alpha.3+b369a51e",
|
|
31
|
+
"@deephaven/icons": "^1.7.2-react-18-alpha.3+b369a51e",
|
|
32
32
|
"@deephaven/jsapi-types": "^1.0.0-dev0.39.4",
|
|
33
|
-
"@deephaven/jsapi-utils": "^1.7.2-
|
|
34
|
-
"@deephaven/log": "^1.7.2-
|
|
35
|
-
"@deephaven/react-hooks": "^1.7.2-
|
|
36
|
-
"@deephaven/utils": "^1.7.2-
|
|
33
|
+
"@deephaven/jsapi-utils": "^1.7.2-react-18-alpha.3+b369a51e",
|
|
34
|
+
"@deephaven/log": "^1.7.2-react-18-alpha.3+b369a51e",
|
|
35
|
+
"@deephaven/react-hooks": "^1.7.2-react-18-alpha.3+b369a51e",
|
|
36
|
+
"@deephaven/utils": "^1.7.2-react-18-alpha.3+b369a51e",
|
|
37
37
|
"buffer": "^6.0.3",
|
|
38
38
|
"fast-deep-equal": "^3.1.3",
|
|
39
39
|
"lodash.debounce": "^4.0.8",
|
|
40
40
|
"lodash.set": "^4.3.2",
|
|
41
41
|
"memoize-one": "^5.1.1",
|
|
42
42
|
"memoizee": "^0.4.15",
|
|
43
|
-
"plotly.js": "3.1.0
|
|
44
|
-
"prop-types": "^15.7.2",
|
|
43
|
+
"plotly.js": "3.1.0",
|
|
45
44
|
"react-plotly.js": "^2.6.0"
|
|
46
45
|
},
|
|
47
46
|
"peerDependencies": {
|
|
48
47
|
"react": ">=16.8.0"
|
|
49
48
|
},
|
|
50
49
|
"devDependencies": {
|
|
51
|
-
"@deephaven/jsapi-shim": "^1.7.2-
|
|
52
|
-
"@deephaven/mocks": "^1.7.2-
|
|
53
|
-
"@deephaven/test-utils": "^1.7.2-
|
|
50
|
+
"@deephaven/jsapi-shim": "^1.7.2-react-18-alpha.3+b369a51e",
|
|
51
|
+
"@deephaven/mocks": "^1.7.2-react-18-alpha.3+b369a51e",
|
|
52
|
+
"@deephaven/test-utils": "^1.7.2-react-18-alpha.3+b369a51e",
|
|
54
53
|
"@types/plotly.js": "^3.0.0"
|
|
55
54
|
},
|
|
56
55
|
"files": [
|
|
@@ -62,5 +61,5 @@
|
|
|
62
61
|
"publishConfig": {
|
|
63
62
|
"access": "public"
|
|
64
63
|
},
|
|
65
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "b369a51ee94d212641a14c6ce1f19fcc85168339"
|
|
66
65
|
}
|