@deephaven/chart 0.94.1-beta.0 → 0.95.0

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.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
- import { DecimalColumnFormatterOptions, IntegerColumnFormatterOptions, ColumnFormatSettings, DateTimeFormatSettings } from '@deephaven/jsapi-utils';
2
+ import { type DecimalColumnFormatterOptions, type IntegerColumnFormatterOptions, type ColumnFormatSettings, type DateTimeFormatSettings } from '@deephaven/jsapi-utils';
3
3
  import Plotly from './plotly/Plotly';
4
4
  import ChartModel from './ChartModel';
5
- import { ChartTheme } from './ChartTheme';
6
- import { ChartModelSettings } from './ChartUtils';
5
+ import { type ChartTheme } from './ChartTheme';
6
+ import { type ChartModelSettings } from './ChartUtils';
7
7
  import './Chart.scss';
8
8
  type ChartSettings = ColumnFormatSettings & DateTimeFormatSettings & {
9
9
  decimalFormatOptions?: DecimalColumnFormatterOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../src/Chart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAC;AASlE,OAAO,EAKL,6BAA6B,EAC7B,6BAA6B,EAE7B,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,wBAAwB,CAAC;AAchC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAmB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,cAAc,CAAC;AAMtB,KAAK,aAAa,GAAG,oBAAoB,GACvC,sBAAsB,GAAG;IACvB,oBAAoB,CAAC,EAAE,6BAA6B,CAAC;IACrD,oBAAoB,CAAC,EAAE,6BAA6B,CAAC;IACrD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEJ,UAAU,UAAU;IAClB,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,UAAU,CAAC;IAElB,4EAA4E;IAC5E,QAAQ,EAAE,aAAa,CAAC;IAExB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACzC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,EAAE,CAAC,GAAG,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAChD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEhC,8DAA8D;IAC9D,iBAAiB,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;CACpE;AAID,UAAU,mBAAoB,SAAQ,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACtE,KAAK,EAAE,UAAU,CAAC;CACnB;AAgrBD,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,KAAK,EAAE,mBAAmB,GACzB,GAAG,CAAC,OAAO,CAIb"}
1
+ {"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../src/Chart.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuD,MAAM,OAAO,CAAC;AAS5E,OAAO,EAKL,KAAK,6BAA6B,EAClC,KAAK,6BAA6B,EAElC,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC5B,MAAM,wBAAwB,CAAC;AAchC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,cAAc,CAAC;AAMtB,KAAK,aAAa,GAAG,oBAAoB,GACvC,sBAAsB,GAAG;IACvB,oBAAoB,CAAC,EAAE,6BAA6B,CAAC;IACrD,oBAAoB,CAAC,EAAE,6BAA6B,CAAC;IACrD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEJ,UAAU,UAAU;IAClB,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,UAAU,CAAC;IAElB,4EAA4E;IAC5E,QAAQ,EAAE,aAAa,CAAC;IAExB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACzC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,QAAQ,EAAE,CAAC,GAAG,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAChD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAEhC,8DAA8D;IAC9D,iBAAiB,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;CACpE;AAID,UAAU,mBAAoB,SAAQ,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACtE,KAAK,EAAE,UAAU,CAAC;CACnB;AAgrBD,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,KAAK,EAAE,mBAAmB,GACzB,GAAG,CAAC,OAAO,CAIb"}
package/dist/Chart.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.js","names":["React","Component","deepEqual","memoize","vsLoading","dhGraphLineDown","dhWarningFilled","Formatter","FormatterUtils","DateUtils","Log","mergeRefs","bindAllMethods","createPlotlyComponent","Plotly","ChartModel","ChartErrorOverlay","ChartUtils","DownsamplingError","useChartTheme","jsx","_jsx","jsxs","_jsxs","log","module","Chart","convertIcon","faIcon","width","path","icon","stringPath","concat","ascent","descent","transform","downsampleButtonTitle","isDownsampleInProgress","isDownsamplingDisabled","downsampleButtonAttr","undefined","constructor","props","_defineProperty","downsamplingError","isDownsampleFinished","data","error","customButtons","hasDownsampleError","Boolean","push","name","title","click","toggleErrorMessage","attr","hasError","handleDownsampleClick","has2D","some","_ref","type","includes","has3D","_ref2","buttons2D","buttons3D","displaylogo","responsive","displayModeBar","modeBarButtons","PlotComponent","plot","createRef","plotWrapper","plotWrapperMerged","containerRef","columnFormats","dateTimeFormatterOptions","decimalFormatOptions","integerFormatOptions","isSubscribed","isLoadedFired","currentSeries","resizeObserver","window","ResizeObserver","handleResize","state","shownError","layout","datarevision","revision","componentDidMount","updateDimensions","updateModelDimensions","initData","initFormatter","isActive","model","subscribe","current","observe","handleThemeChange","componentDidUpdate","prevProps","settings","theme","updateFormatterSettings","unsubscribe","componentWillUnmount","disconnect","getPlotRect","_this$plotWrapper$cur","_this$plotWrapper$cur2","getBoundingClientRect","setState","_ref3","getData","_objectSpread","getLayout","rect","height","debug2","handleModelEvent","handleAfterPlot","_ref4","setDownsamplingDisabled","handleErrorClose","handleDownsampleErrorClose","event","detail","EVENT_UPDATED","onUpdate","isLoading","EVENT_LOADFINISHED","EVENT_DISCONNECT","onDisconnect","EVENT_RECONNECT","onReconnect","EVENT_DOWNSAMPLESTARTED","EVENT_DOWNSAMPLEFINISHED","EVENT_DOWNSAMPLENEEDED","EVENT_DOWNSAMPLEFAILED","_detail$message","message","onError","EVENT_ERROR","Error","debug","handlePlotUpdate","figure","ranges","getLayoutRanges","isRangesChanged","handleRelayout","changes","hiddenlabels","onSettingsChanged","hiddenSeries","handleRestyle","_ref5","seriesIndexes","Object","keys","reduce","acc","_ref6","visible","dh","chartUtils","_ref7","template","makeDefaultTemplate","_ref8","force","arguments","length","warn","isRectChanged","setDimensions","getColumnFormats","getDateTimeFormatterOptions","updateFormatter","webgl","updateRenderOptions","formatter","setFormatter","renderOptions","setRenderOptions","PlotlyProp","relayout","el","autosize","catch","e","render","config","getCachedConfig","isPlotShown","className","ref","children","onAfterPlot","onRelayout","onRestyle","style","errorMessage","onDiscard","onConfirm","timeZone","defaultDateTimeFormat","FULL_DATE_FORMAT","showTimeZone","showTSeparator","ChartContainer","chartTheme"],"sources":["../src/Chart.tsx"],"sourcesContent":["import React, { Component, ReactElement, RefObject } from 'react';\nimport deepEqual from 'fast-deep-equal';\nimport memoize from 'memoize-one';\nimport {\n vsLoading,\n dhGraphLineDown,\n dhWarningFilled,\n IconDefinition,\n} from '@deephaven/icons';\nimport {\n Formatter,\n FormatterUtils,\n DateUtils,\n DateTimeColumnFormatterOptions,\n DecimalColumnFormatterOptions,\n IntegerColumnFormatterOptions,\n FormattingRule,\n ColumnFormatSettings,\n DateTimeFormatSettings,\n} from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport {\n Config as PlotlyConfig,\n Layout,\n Icon,\n Data,\n PlotData,\n ModeBarButtonAny,\n} from 'plotly.js';\nimport type { PlotParams } from 'react-plotly.js';\nimport { mergeRefs } from '@deephaven/react-hooks';\nimport { bindAllMethods } from '@deephaven/utils';\nimport createPlotlyComponent from './plotly/createPlotlyComponent';\nimport Plotly from './plotly/Plotly';\nimport ChartModel from './ChartModel';\nimport ChartErrorOverlay from './ChartErrorOverlay';\nimport { ChartTheme } from './ChartTheme';\nimport ChartUtils, { ChartModelSettings } from './ChartUtils';\nimport './Chart.scss';\nimport DownsamplingError from './DownsamplingError';\nimport useChartTheme from './useChartTheme';\n\nconst log = Log.module('Chart');\n\ntype ChartSettings = ColumnFormatSettings &\n DateTimeFormatSettings & {\n decimalFormatOptions?: DecimalColumnFormatterOptions;\n integerFormatOptions?: IntegerColumnFormatterOptions;\n webgl?: boolean;\n };\n\ninterface ChartProps {\n model: ChartModel;\n theme: ChartTheme;\n\n /** User settings that are relevant to the chart, e.g. formatter settings */\n settings: ChartSettings;\n\n isActive: boolean;\n Plotly: typeof Plotly;\n containerRef?: React.Ref<HTMLDivElement>;\n onDisconnect: () => void;\n onReconnect: () => void;\n onUpdate: (obj: { isLoading: boolean }) => void;\n onError: (error: Error) => void;\n\n /** Called when the settings for the ChartModel are changed */\n onSettingsChanged: (settings: Partial<ChartModelSettings>) => void;\n}\n\n// All of the ChartProps have default values except for model in the Chart\n// component, hence the Partial here.\ninterface ChartContainerProps extends Partial<Omit<ChartProps, 'theme'>> {\n model: ChartModel;\n}\n\ninterface ChartState {\n data: Partial<Data>[] | null;\n /** An error specific to downsampling */\n downsamplingError: unknown;\n isDownsampleFinished: boolean;\n isDownsampleInProgress: boolean;\n isDownsamplingDisabled: boolean;\n\n /** Any other kind of error */\n error: unknown;\n shownError: string | null;\n layout: Partial<Layout>;\n revision: number;\n}\n\nclass Chart extends Component<ChartProps, ChartState> {\n static defaultProps = {\n isActive: true,\n settings: {\n timeZone: 'America/New_York',\n defaultDateTimeFormat: DateUtils.FULL_DATE_FORMAT,\n showTimeZone: false,\n showTSeparator: true,\n formatter: [],\n webgl: true,\n },\n Plotly,\n onDisconnect: (): void => undefined,\n onReconnect: (): void => undefined,\n onUpdate: (): void => undefined,\n onError: (): void => undefined,\n onSettingsChanged: (): void => undefined,\n };\n\n /**\n * Convert a font awesome icon definition to a plotly icon definition\n * @param faIcon The icon to convert\n */\n static convertIcon(faIcon: IconDefinition): Icon {\n const [width, , , , path] = faIcon.icon;\n // By default the icons are flipped upside down, so we need to add our own transform\n // https://github.com/plotly/plotly.js/issues/1335\n const stringPath = `${path}`;\n return {\n width,\n path: stringPath,\n ascent: width,\n descent: 0,\n transform: `matrix(1, 0, 0, 1, 0, 0)`,\n };\n }\n\n static downsampleButtonTitle(\n isDownsampleInProgress: boolean,\n isDownsamplingDisabled: boolean\n ): string {\n if (isDownsampleInProgress) {\n return 'Downsampling in progress...';\n }\n\n return isDownsamplingDisabled\n ? 'Downsampling disabled, click to enable'\n : 'Downsampling enabled, click to disable';\n }\n\n static downsampleButtonAttr(\n isDownsampleInProgress: boolean,\n isDownsamplingDisabled: boolean\n ): string | undefined {\n if (isDownsampleInProgress) {\n return 'animation-spin';\n }\n\n return isDownsamplingDisabled ? undefined : 'fill-active';\n }\n\n constructor(props: ChartProps) {\n super(props);\n\n bindAllMethods(this);\n\n this.PlotComponent = createPlotlyComponent(props.Plotly);\n this.plot = React.createRef();\n this.plotWrapper = React.createRef();\n this.plotWrapperMerged = mergeRefs(this.plotWrapper, props.containerRef);\n this.columnFormats = [];\n this.dateTimeFormatterOptions = {};\n this.decimalFormatOptions = {};\n this.integerFormatOptions = {};\n this.isSubscribed = false;\n this.isLoadedFired = false;\n this.currentSeries = 0;\n this.resizeObserver = new window.ResizeObserver(this.handleResize);\n\n this.state = {\n data: null,\n downsamplingError: null,\n isDownsampleFinished: false,\n isDownsampleInProgress: false,\n isDownsamplingDisabled: false,\n error: null,\n shownError: null,\n layout: {\n datarevision: 0,\n },\n revision: 0,\n };\n }\n\n componentDidMount(): void {\n // Need to make sure the model dimensions are up to date before initializing the data\n this.updateDimensions();\n this.updateModelDimensions();\n\n this.initData();\n this.initFormatter();\n\n const { isActive, model } = this.props;\n if (isActive) {\n this.subscribe(model);\n }\n if (this.plotWrapper.current != null) {\n this.resizeObserver.observe(this.plotWrapper.current);\n }\n\n this.handleThemeChange();\n }\n\n componentDidUpdate(prevProps: ChartProps): void {\n const { isActive, model, settings, theme } = this.props;\n this.updateFormatterSettings(settings);\n\n if (model !== prevProps.model) {\n this.unsubscribe(prevProps.model);\n this.subscribe(model);\n }\n\n if (isActive !== prevProps.isActive) {\n if (isActive) {\n this.updateDimensions();\n this.subscribe(model);\n } else {\n this.unsubscribe(model);\n }\n }\n\n if (theme !== prevProps.theme) {\n this.handleThemeChange();\n }\n }\n\n componentWillUnmount(): void {\n const { model } = this.props;\n this.unsubscribe(model);\n\n this.resizeObserver.disconnect();\n }\n\n currentSeries: number;\n\n PlotComponent: React.ComponentType<PlotParams>;\n\n plot: RefObject<typeof this.PlotComponent>;\n\n plotWrapper: RefObject<HTMLDivElement>;\n\n plotWrapperMerged: React.RefCallback<HTMLDivElement>;\n\n columnFormats?: FormattingRule[];\n\n dateTimeFormatterOptions?: DateTimeColumnFormatterOptions;\n\n decimalFormatOptions: DecimalColumnFormatterOptions;\n\n integerFormatOptions: IntegerColumnFormatterOptions;\n\n webgl?: boolean;\n\n rect?: DOMRect;\n\n ranges?: unknown;\n\n isSubscribed: boolean;\n\n isLoadedFired: boolean;\n\n // Listen for resizing of the element and update the canvas appropriately\n resizeObserver: ResizeObserver;\n\n getCachedConfig = memoize(\n (\n downsamplingError: unknown,\n isDownsampleFinished: boolean,\n isDownsampleInProgress: boolean,\n isDownsamplingDisabled: boolean,\n data: Partial<Data>[],\n error: unknown\n ): Partial<PlotlyConfig> => {\n const customButtons: ModeBarButtonAny[] = [];\n const hasDownsampleError = Boolean(downsamplingError);\n if (hasDownsampleError) {\n customButtons.push({\n name: `Downsampling failed: ${downsamplingError}`,\n title: 'Downsampling failed',\n click: () => {\n this.toggleErrorMessage(`${downsamplingError}`);\n },\n icon: Chart.convertIcon(dhWarningFilled),\n attr: 'fill-warning',\n });\n }\n const hasError = Boolean(error);\n if (hasError) {\n customButtons.push({\n name: `Error: ${error}`,\n title: `Error`,\n click: () => {\n this.toggleErrorMessage(`${error}`);\n },\n icon: Chart.convertIcon(dhWarningFilled),\n attr: 'fill-warning',\n });\n }\n\n if (\n isDownsampleFinished ||\n isDownsampleInProgress ||\n isDownsamplingDisabled ||\n hasDownsampleError\n ) {\n const name = Chart.downsampleButtonTitle(\n isDownsampleInProgress,\n isDownsamplingDisabled\n );\n const attr = Chart.downsampleButtonAttr(\n isDownsampleInProgress,\n isDownsamplingDisabled\n );\n\n const icon = isDownsampleInProgress ? vsLoading : dhGraphLineDown;\n customButtons.push({\n name,\n title: 'Downsampling status',\n icon: Chart.convertIcon(icon),\n click: this.handleDownsampleClick,\n attr,\n });\n }\n\n const has2D = data.some(\n ({ type }) => type != null && !type.includes('3d')\n );\n const has3D = data.some(\n ({ type }) => type != null && type.includes('3d')\n );\n\n const buttons2D = [\n 'zoomIn2d',\n 'zoomOut2d',\n 'autoScale2d',\n 'resetScale2d',\n ] as const;\n const buttons3D = [\n 'orbitRotation',\n 'tableRotation',\n 'resetCameraDefault3d',\n ] as const;\n\n return {\n displaylogo: false,\n\n // scales the plot to the container size\n // https://github.com/plotly/react-plotly.js/issues/102\n responsive: true,\n\n // Display the mode bar if there's an error or downsampling so user can see progress\n // Yes, the value is a boolean or the string 'hover': https://github.com/plotly/plotly.js/blob/master/src/plot_api/plot_config.js#L249\n displayModeBar:\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n isDownsampleInProgress || hasDownsampleError || hasError\n ? true\n : ('hover' as const),\n\n // Each array gets grouped together in the mode bar\n modeBarButtons: [\n customButtons,\n ['toImage'],\n ['zoom2d', 'pan2d'], // These work the same for both 2d and 3d\n [...(has2D ? buttons2D : []), ...(has3D ? buttons3D : [])],\n ],\n };\n }\n );\n\n getPlotRect(): DOMRect | null {\n return this.plotWrapper.current?.getBoundingClientRect() ?? null;\n }\n\n initData(): void {\n const { model } = this.props;\n\n this.setState(({ layout }) => ({\n data: model.getData(),\n layout: {\n ...layout,\n ...model.getLayout(),\n },\n }));\n }\n\n subscribe(model: ChartModel): void {\n if (this.isSubscribed) {\n return;\n }\n\n if (!this.rect || this.rect.width === 0 || this.rect.height === 0) {\n log.debug2('Delaying subscription until model dimensions are set');\n return;\n }\n model.subscribe(this.handleModelEvent);\n this.isSubscribed = true;\n }\n\n unsubscribe(model: ChartModel): void {\n if (!this.isSubscribed) {\n return;\n }\n\n model.unsubscribe(this.handleModelEvent);\n this.isSubscribed = false;\n }\n\n handleAfterPlot(): void {\n if (this.plot.current != null) {\n // TODO: Translate whatever Don was doing in plotting.js in the afterplot here so that area graphs show up properly\n }\n }\n\n handleDownsampleClick(): void {\n this.setState(\n ({ isDownsamplingDisabled }) => ({\n downsamplingError: null,\n isDownsampleInProgress: false,\n isDownsampleFinished: false,\n isDownsamplingDisabled: !isDownsamplingDisabled,\n }),\n () => {\n const { model } = this.props;\n const { isDownsamplingDisabled } = this.state;\n model.setDownsamplingDisabled(isDownsamplingDisabled);\n }\n );\n }\n\n handleErrorClose(): void {\n this.setState({ shownError: null });\n }\n\n handleDownsampleErrorClose(): void {\n this.setState({ downsamplingError: null });\n }\n\n handleModelEvent(event: CustomEvent): void {\n const { type, detail } = event;\n log.debug2('Received data update', type, detail);\n\n switch (type) {\n case ChartModel.EVENT_UPDATED: {\n this.currentSeries += 1;\n this.setState(state => {\n const { layout, revision } = state;\n if (typeof layout.datarevision === 'number') {\n layout.datarevision += 1;\n }\n return {\n data: detail,\n layout,\n revision: revision + 1,\n };\n });\n\n const { onUpdate } = this.props;\n onUpdate({ isLoading: !this.isLoadedFired });\n break;\n }\n case ChartModel.EVENT_LOADFINISHED: {\n const { onUpdate } = this.props;\n this.isLoadedFired = true;\n onUpdate({ isLoading: false });\n break;\n }\n case ChartModel.EVENT_DISCONNECT: {\n const { onDisconnect } = this.props;\n onDisconnect();\n break;\n }\n case ChartModel.EVENT_RECONNECT: {\n const { onReconnect } = this.props;\n onReconnect();\n break;\n }\n case ChartModel.EVENT_DOWNSAMPLESTARTED: {\n this.setState({\n isDownsampleFinished: false,\n isDownsampleInProgress: true,\n downsamplingError: null,\n });\n break;\n }\n case ChartModel.EVENT_DOWNSAMPLEFINISHED: {\n this.setState({\n isDownsampleFinished: true,\n isDownsampleInProgress: false,\n downsamplingError: null,\n });\n break;\n }\n case ChartModel.EVENT_DOWNSAMPLENEEDED:\n case ChartModel.EVENT_DOWNSAMPLEFAILED: {\n const downsamplingError = detail.message ?? detail;\n this.setState({\n isDownsampleFinished: false,\n isDownsampleInProgress: false,\n isDownsamplingDisabled: false,\n downsamplingError,\n });\n\n const { onError } = this.props;\n onError(new DownsamplingError(downsamplingError));\n break;\n }\n case ChartModel.EVENT_ERROR: {\n const error = `${detail}`;\n this.setState({ error });\n const { onError } = this.props;\n onError(new Error(error));\n break;\n }\n default:\n log.debug('Unknown event type', type, event);\n }\n }\n\n handlePlotUpdate(figure: Readonly<{ layout: Partial<Layout> }>): void {\n // User could have modified zoom/pan here, update the model dimensions\n // We don't need to update the datarevision, as we don't have any data changes\n // until an update comes back from the server anyway\n const { layout } = figure;\n const ranges = ChartUtils.getLayoutRanges(layout);\n\n const isRangesChanged = !deepEqual(ranges, this.ranges);\n\n if (isRangesChanged) {\n this.ranges = ranges;\n\n this.updateModelDimensions(true);\n }\n }\n\n handleRelayout(changes: { hiddenlabels?: string[] }): void {\n log.debug('handleRelayout', changes);\n if (changes.hiddenlabels != null) {\n const { onSettingsChanged } = this.props;\n // Pie charts store series visibility in layout.hiddenlabels and trigger relayout on changes\n // Series visibility for other types of charts is handled in handleRestyle\n const hiddenSeries = [...changes.hiddenlabels];\n onSettingsChanged({ hiddenSeries });\n }\n\n this.updateModelDimensions();\n }\n\n handleResize(): void {\n this.updateDimensions();\n }\n\n handleRestyle([changes, seriesIndexes]: readonly [\n Record<string, unknown>,\n number[],\n ]): void {\n log.debug('handleRestyle', changes, seriesIndexes);\n if (Object.keys(changes).includes('visible')) {\n const { data } = this.state;\n const { onSettingsChanged } = this.props;\n if (data != null) {\n const hiddenSeries = (data as Partial<PlotData>[]).reduce(\n (acc: string[], { name, visible }) =>\n name != null && visible === 'legendonly' ? [...acc, name] : acc,\n []\n );\n onSettingsChanged({ hiddenSeries });\n }\n }\n }\n\n handleThemeChange(): void {\n const { theme, model } = this.props;\n const { dh } = model;\n const chartUtils = new ChartUtils(dh);\n\n this.setState(({ layout }) => ({\n layout: {\n ...layout,\n template: chartUtils.makeDefaultTemplate(theme),\n },\n }));\n }\n\n /**\n * Toggle the error message. If it is already being displayed, then hide it.\n */\n toggleErrorMessage(error: string): void {\n this.setState(({ shownError }) => ({\n shownError: shownError === error ? null : error,\n }));\n }\n\n /**\n * Update the models dimensions and ranges.\n * Note that this will update it all whether the plot size changes OR the range\n * the user is looking at has changed (eg. panning/zooming).\n * Could update each independently, but doing them at the same time keeps the\n * ChartModel API a bit cleaner.\n * @param force Force a change even if the chart dimensions haven't changed (eg. after pan/zoom)\n */\n updateModelDimensions(force = false): void {\n const rect = this.getPlotRect();\n if (!rect) {\n log.warn('Unable to get plotting rect');\n return;\n }\n\n const isRectChanged =\n !this.rect ||\n this.rect.width !== rect.width ||\n this.rect.height !== rect.height;\n\n if (isRectChanged || force) {\n this.rect = rect;\n\n const { isActive, model } = this.props;\n model.setDimensions(rect);\n // We may need to resubscribe if dimensions were too small before\n if (isActive) {\n this.subscribe(model);\n }\n }\n }\n\n initFormatter(): void {\n const { settings } = this.props;\n this.updateFormatterSettings(settings);\n }\n\n updateFormatterSettings(settings: ChartSettings): void {\n const columnFormats = FormatterUtils.getColumnFormats(settings);\n const dateTimeFormatterOptions =\n FormatterUtils.getDateTimeFormatterOptions(settings);\n const { decimalFormatOptions = {}, integerFormatOptions = {} } = settings;\n\n if (\n !deepEqual(this.columnFormats, columnFormats) ||\n !deepEqual(this.dateTimeFormatterOptions, dateTimeFormatterOptions) ||\n !deepEqual(this.decimalFormatOptions, decimalFormatOptions) ||\n !deepEqual(this.integerFormatOptions, integerFormatOptions)\n ) {\n this.columnFormats = FormatterUtils.getColumnFormats(settings);\n this.dateTimeFormatterOptions = dateTimeFormatterOptions;\n this.decimalFormatOptions = decimalFormatOptions;\n this.integerFormatOptions = integerFormatOptions;\n this.updateFormatter();\n }\n\n if (this.webgl !== settings.webgl) {\n this.webgl = settings.webgl;\n this.updateRenderOptions();\n }\n }\n\n updateFormatter(): void {\n const { model } = this.props;\n const formatter = new Formatter(\n model.dh,\n this.columnFormats,\n this.dateTimeFormatterOptions,\n this.decimalFormatOptions,\n this.integerFormatOptions\n );\n model.setFormatter(formatter);\n }\n\n updateRenderOptions(): void {\n const { model } = this.props;\n const renderOptions = { webgl: this.webgl };\n model.setRenderOptions(renderOptions);\n }\n\n updateDimensions(): void {\n const rect = this.getPlotRect();\n const { Plotly: PlotlyProp } = this.props;\n if (\n this.plot.current != null &&\n rect != null &&\n rect.width > 0 &&\n rect.height > 0\n ) {\n // Call relayout to resize avoiding the debouncing plotly does\n // https://github.com/plotly/plotly.js/issues/2769#issuecomment-402099552\n PlotlyProp.relayout(\n (this.plot.current as unknown as { el: HTMLElement }).el,\n {\n autosize: true,\n }\n ).catch((e: unknown) => {\n log.debug('Unable to resize, promise rejected', e);\n });\n }\n }\n\n render(): ReactElement {\n const { PlotComponent } = this;\n const {\n data,\n downsamplingError,\n isDownsampleFinished,\n isDownsampleInProgress,\n isDownsamplingDisabled,\n error,\n shownError,\n layout,\n revision,\n } = this.state;\n const config = this.getCachedConfig(\n downsamplingError,\n isDownsampleFinished,\n isDownsampleInProgress,\n isDownsamplingDisabled,\n data ?? [],\n error\n );\n const isPlotShown = data != null;\n\n return (\n <div className=\"h-100 w-100 chart-wrapper\" ref={this.plotWrapperMerged}>\n {isPlotShown && (\n <PlotComponent\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n ref={this.plot}\n data={data}\n layout={layout}\n revision={revision}\n config={config}\n onAfterPlot={this.handleAfterPlot}\n onError={log.error}\n onRelayout={this.handleRelayout}\n onUpdate={this.handlePlotUpdate}\n onRestyle={this.handleRestyle}\n style={{ height: '100%', width: '100%' }}\n />\n )}\n {downsamplingError != null && shownError == null && (\n <ChartErrorOverlay\n errorMessage={`${downsamplingError}`}\n onDiscard={() => {\n this.handleDownsampleErrorClose();\n }}\n onConfirm={() => {\n this.handleDownsampleErrorClose();\n this.handleDownsampleClick();\n }}\n />\n )}\n {shownError != null && (\n <ChartErrorOverlay\n errorMessage={`${shownError}`}\n onDiscard={() => {\n this.handleErrorClose();\n }}\n />\n )}\n </div>\n );\n }\n}\n\nexport default function ChartContainer(\n props: ChartContainerProps\n): JSX.Element {\n const chartTheme = useChartTheme();\n // eslint-disable-next-line react/jsx-props-no-spreading\n return <Chart {...props} theme={chartTheme} />;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Chart.js","names":["React","Component","deepEqual","memoize","vsLoading","dhGraphLineDown","dhWarningFilled","Formatter","FormatterUtils","DateUtils","Log","mergeRefs","bindAllMethods","createPlotlyComponent","Plotly","ChartModel","ChartErrorOverlay","ChartUtils","DownsamplingError","useChartTheme","jsx","_jsx","jsxs","_jsxs","log","module","Chart","convertIcon","faIcon","width","path","icon","stringPath","concat","ascent","descent","transform","downsampleButtonTitle","isDownsampleInProgress","isDownsamplingDisabled","downsampleButtonAttr","undefined","constructor","props","_defineProperty","downsamplingError","isDownsampleFinished","data","error","customButtons","hasDownsampleError","Boolean","push","name","title","click","toggleErrorMessage","attr","hasError","handleDownsampleClick","has2D","some","_ref","type","includes","has3D","_ref2","buttons2D","buttons3D","displaylogo","responsive","displayModeBar","modeBarButtons","PlotComponent","plot","createRef","plotWrapper","plotWrapperMerged","containerRef","columnFormats","dateTimeFormatterOptions","decimalFormatOptions","integerFormatOptions","isSubscribed","isLoadedFired","currentSeries","resizeObserver","window","ResizeObserver","handleResize","state","shownError","layout","datarevision","revision","componentDidMount","updateDimensions","updateModelDimensions","initData","initFormatter","isActive","model","subscribe","current","observe","handleThemeChange","componentDidUpdate","prevProps","settings","theme","updateFormatterSettings","unsubscribe","componentWillUnmount","disconnect","getPlotRect","_this$plotWrapper$cur","_this$plotWrapper$cur2","getBoundingClientRect","setState","_ref3","getData","_objectSpread","getLayout","rect","height","debug2","handleModelEvent","handleAfterPlot","_ref4","setDownsamplingDisabled","handleErrorClose","handleDownsampleErrorClose","event","detail","EVENT_UPDATED","onUpdate","isLoading","EVENT_LOADFINISHED","EVENT_DISCONNECT","onDisconnect","EVENT_RECONNECT","onReconnect","EVENT_DOWNSAMPLESTARTED","EVENT_DOWNSAMPLEFINISHED","EVENT_DOWNSAMPLENEEDED","EVENT_DOWNSAMPLEFAILED","_detail$message","message","onError","EVENT_ERROR","Error","debug","handlePlotUpdate","figure","ranges","getLayoutRanges","isRangesChanged","handleRelayout","changes","hiddenlabels","onSettingsChanged","hiddenSeries","handleRestyle","_ref5","seriesIndexes","Object","keys","reduce","acc","_ref6","visible","dh","chartUtils","_ref7","template","makeDefaultTemplate","_ref8","force","arguments","length","warn","isRectChanged","setDimensions","getColumnFormats","getDateTimeFormatterOptions","updateFormatter","webgl","updateRenderOptions","formatter","setFormatter","renderOptions","setRenderOptions","PlotlyProp","relayout","el","autosize","catch","e","render","config","getCachedConfig","isPlotShown","className","ref","children","onAfterPlot","onRelayout","onRestyle","style","errorMessage","onDiscard","onConfirm","timeZone","defaultDateTimeFormat","FULL_DATE_FORMAT","showTimeZone","showTSeparator","ChartContainer","chartTheme"],"sources":["../src/Chart.tsx"],"sourcesContent":["import React, { Component, type ReactElement, type RefObject } from 'react';\nimport deepEqual from 'fast-deep-equal';\nimport memoize from 'memoize-one';\nimport {\n vsLoading,\n dhGraphLineDown,\n dhWarningFilled,\n type IconDefinition,\n} from '@deephaven/icons';\nimport {\n Formatter,\n FormatterUtils,\n DateUtils,\n type DateTimeColumnFormatterOptions,\n type DecimalColumnFormatterOptions,\n type IntegerColumnFormatterOptions,\n type FormattingRule,\n type ColumnFormatSettings,\n type DateTimeFormatSettings,\n} from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport {\n type Config as PlotlyConfig,\n type Layout,\n type Icon,\n type Data,\n type PlotData,\n type ModeBarButtonAny,\n} from 'plotly.js';\nimport type { PlotParams } from 'react-plotly.js';\nimport { mergeRefs } from '@deephaven/react-hooks';\nimport { bindAllMethods } from '@deephaven/utils';\nimport createPlotlyComponent from './plotly/createPlotlyComponent';\nimport Plotly from './plotly/Plotly';\nimport ChartModel from './ChartModel';\nimport ChartErrorOverlay from './ChartErrorOverlay';\nimport { type ChartTheme } from './ChartTheme';\nimport ChartUtils, { type ChartModelSettings } from './ChartUtils';\nimport './Chart.scss';\nimport DownsamplingError from './DownsamplingError';\nimport useChartTheme from './useChartTheme';\n\nconst log = Log.module('Chart');\n\ntype ChartSettings = ColumnFormatSettings &\n DateTimeFormatSettings & {\n decimalFormatOptions?: DecimalColumnFormatterOptions;\n integerFormatOptions?: IntegerColumnFormatterOptions;\n webgl?: boolean;\n };\n\ninterface ChartProps {\n model: ChartModel;\n theme: ChartTheme;\n\n /** User settings that are relevant to the chart, e.g. formatter settings */\n settings: ChartSettings;\n\n isActive: boolean;\n Plotly: typeof Plotly;\n containerRef?: React.Ref<HTMLDivElement>;\n onDisconnect: () => void;\n onReconnect: () => void;\n onUpdate: (obj: { isLoading: boolean }) => void;\n onError: (error: Error) => void;\n\n /** Called when the settings for the ChartModel are changed */\n onSettingsChanged: (settings: Partial<ChartModelSettings>) => void;\n}\n\n// All of the ChartProps have default values except for model in the Chart\n// component, hence the Partial here.\ninterface ChartContainerProps extends Partial<Omit<ChartProps, 'theme'>> {\n model: ChartModel;\n}\n\ninterface ChartState {\n data: Partial<Data>[] | null;\n /** An error specific to downsampling */\n downsamplingError: unknown;\n isDownsampleFinished: boolean;\n isDownsampleInProgress: boolean;\n isDownsamplingDisabled: boolean;\n\n /** Any other kind of error */\n error: unknown;\n shownError: string | null;\n layout: Partial<Layout>;\n revision: number;\n}\n\nclass Chart extends Component<ChartProps, ChartState> {\n static defaultProps = {\n isActive: true,\n settings: {\n timeZone: 'America/New_York',\n defaultDateTimeFormat: DateUtils.FULL_DATE_FORMAT,\n showTimeZone: false,\n showTSeparator: true,\n formatter: [],\n webgl: true,\n },\n Plotly,\n onDisconnect: (): void => undefined,\n onReconnect: (): void => undefined,\n onUpdate: (): void => undefined,\n onError: (): void => undefined,\n onSettingsChanged: (): void => undefined,\n };\n\n /**\n * Convert a font awesome icon definition to a plotly icon definition\n * @param faIcon The icon to convert\n */\n static convertIcon(faIcon: IconDefinition): Icon {\n const [width, , , , path] = faIcon.icon;\n // By default the icons are flipped upside down, so we need to add our own transform\n // https://github.com/plotly/plotly.js/issues/1335\n const stringPath = `${path}`;\n return {\n width,\n path: stringPath,\n ascent: width,\n descent: 0,\n transform: `matrix(1, 0, 0, 1, 0, 0)`,\n };\n }\n\n static downsampleButtonTitle(\n isDownsampleInProgress: boolean,\n isDownsamplingDisabled: boolean\n ): string {\n if (isDownsampleInProgress) {\n return 'Downsampling in progress...';\n }\n\n return isDownsamplingDisabled\n ? 'Downsampling disabled, click to enable'\n : 'Downsampling enabled, click to disable';\n }\n\n static downsampleButtonAttr(\n isDownsampleInProgress: boolean,\n isDownsamplingDisabled: boolean\n ): string | undefined {\n if (isDownsampleInProgress) {\n return 'animation-spin';\n }\n\n return isDownsamplingDisabled ? undefined : 'fill-active';\n }\n\n constructor(props: ChartProps) {\n super(props);\n\n bindAllMethods(this);\n\n this.PlotComponent = createPlotlyComponent(props.Plotly);\n this.plot = React.createRef();\n this.plotWrapper = React.createRef();\n this.plotWrapperMerged = mergeRefs(this.plotWrapper, props.containerRef);\n this.columnFormats = [];\n this.dateTimeFormatterOptions = {};\n this.decimalFormatOptions = {};\n this.integerFormatOptions = {};\n this.isSubscribed = false;\n this.isLoadedFired = false;\n this.currentSeries = 0;\n this.resizeObserver = new window.ResizeObserver(this.handleResize);\n\n this.state = {\n data: null,\n downsamplingError: null,\n isDownsampleFinished: false,\n isDownsampleInProgress: false,\n isDownsamplingDisabled: false,\n error: null,\n shownError: null,\n layout: {\n datarevision: 0,\n },\n revision: 0,\n };\n }\n\n componentDidMount(): void {\n // Need to make sure the model dimensions are up to date before initializing the data\n this.updateDimensions();\n this.updateModelDimensions();\n\n this.initData();\n this.initFormatter();\n\n const { isActive, model } = this.props;\n if (isActive) {\n this.subscribe(model);\n }\n if (this.plotWrapper.current != null) {\n this.resizeObserver.observe(this.plotWrapper.current);\n }\n\n this.handleThemeChange();\n }\n\n componentDidUpdate(prevProps: ChartProps): void {\n const { isActive, model, settings, theme } = this.props;\n this.updateFormatterSettings(settings);\n\n if (model !== prevProps.model) {\n this.unsubscribe(prevProps.model);\n this.subscribe(model);\n }\n\n if (isActive !== prevProps.isActive) {\n if (isActive) {\n this.updateDimensions();\n this.subscribe(model);\n } else {\n this.unsubscribe(model);\n }\n }\n\n if (theme !== prevProps.theme) {\n this.handleThemeChange();\n }\n }\n\n componentWillUnmount(): void {\n const { model } = this.props;\n this.unsubscribe(model);\n\n this.resizeObserver.disconnect();\n }\n\n currentSeries: number;\n\n PlotComponent: React.ComponentType<PlotParams>;\n\n plot: RefObject<typeof this.PlotComponent>;\n\n plotWrapper: RefObject<HTMLDivElement>;\n\n plotWrapperMerged: React.RefCallback<HTMLDivElement>;\n\n columnFormats?: FormattingRule[];\n\n dateTimeFormatterOptions?: DateTimeColumnFormatterOptions;\n\n decimalFormatOptions: DecimalColumnFormatterOptions;\n\n integerFormatOptions: IntegerColumnFormatterOptions;\n\n webgl?: boolean;\n\n rect?: DOMRect;\n\n ranges?: unknown;\n\n isSubscribed: boolean;\n\n isLoadedFired: boolean;\n\n // Listen for resizing of the element and update the canvas appropriately\n resizeObserver: ResizeObserver;\n\n getCachedConfig = memoize(\n (\n downsamplingError: unknown,\n isDownsampleFinished: boolean,\n isDownsampleInProgress: boolean,\n isDownsamplingDisabled: boolean,\n data: Partial<Data>[],\n error: unknown\n ): Partial<PlotlyConfig> => {\n const customButtons: ModeBarButtonAny[] = [];\n const hasDownsampleError = Boolean(downsamplingError);\n if (hasDownsampleError) {\n customButtons.push({\n name: `Downsampling failed: ${downsamplingError}`,\n title: 'Downsampling failed',\n click: () => {\n this.toggleErrorMessage(`${downsamplingError}`);\n },\n icon: Chart.convertIcon(dhWarningFilled),\n attr: 'fill-warning',\n });\n }\n const hasError = Boolean(error);\n if (hasError) {\n customButtons.push({\n name: `Error: ${error}`,\n title: `Error`,\n click: () => {\n this.toggleErrorMessage(`${error}`);\n },\n icon: Chart.convertIcon(dhWarningFilled),\n attr: 'fill-warning',\n });\n }\n\n if (\n isDownsampleFinished ||\n isDownsampleInProgress ||\n isDownsamplingDisabled ||\n hasDownsampleError\n ) {\n const name = Chart.downsampleButtonTitle(\n isDownsampleInProgress,\n isDownsamplingDisabled\n );\n const attr = Chart.downsampleButtonAttr(\n isDownsampleInProgress,\n isDownsamplingDisabled\n );\n\n const icon = isDownsampleInProgress ? vsLoading : dhGraphLineDown;\n customButtons.push({\n name,\n title: 'Downsampling status',\n icon: Chart.convertIcon(icon),\n click: this.handleDownsampleClick,\n attr,\n });\n }\n\n const has2D = data.some(\n ({ type }) => type != null && !type.includes('3d')\n );\n const has3D = data.some(\n ({ type }) => type != null && type.includes('3d')\n );\n\n const buttons2D = [\n 'zoomIn2d',\n 'zoomOut2d',\n 'autoScale2d',\n 'resetScale2d',\n ] as const;\n const buttons3D = [\n 'orbitRotation',\n 'tableRotation',\n 'resetCameraDefault3d',\n ] as const;\n\n return {\n displaylogo: false,\n\n // scales the plot to the container size\n // https://github.com/plotly/react-plotly.js/issues/102\n responsive: true,\n\n // Display the mode bar if there's an error or downsampling so user can see progress\n // Yes, the value is a boolean or the string 'hover': https://github.com/plotly/plotly.js/blob/master/src/plot_api/plot_config.js#L249\n displayModeBar:\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n isDownsampleInProgress || hasDownsampleError || hasError\n ? true\n : ('hover' as const),\n\n // Each array gets grouped together in the mode bar\n modeBarButtons: [\n customButtons,\n ['toImage'],\n ['zoom2d', 'pan2d'], // These work the same for both 2d and 3d\n [...(has2D ? buttons2D : []), ...(has3D ? buttons3D : [])],\n ],\n };\n }\n );\n\n getPlotRect(): DOMRect | null {\n return this.plotWrapper.current?.getBoundingClientRect() ?? null;\n }\n\n initData(): void {\n const { model } = this.props;\n\n this.setState(({ layout }) => ({\n data: model.getData(),\n layout: {\n ...layout,\n ...model.getLayout(),\n },\n }));\n }\n\n subscribe(model: ChartModel): void {\n if (this.isSubscribed) {\n return;\n }\n\n if (!this.rect || this.rect.width === 0 || this.rect.height === 0) {\n log.debug2('Delaying subscription until model dimensions are set');\n return;\n }\n model.subscribe(this.handleModelEvent);\n this.isSubscribed = true;\n }\n\n unsubscribe(model: ChartModel): void {\n if (!this.isSubscribed) {\n return;\n }\n\n model.unsubscribe(this.handleModelEvent);\n this.isSubscribed = false;\n }\n\n handleAfterPlot(): void {\n if (this.plot.current != null) {\n // TODO: Translate whatever Don was doing in plotting.js in the afterplot here so that area graphs show up properly\n }\n }\n\n handleDownsampleClick(): void {\n this.setState(\n ({ isDownsamplingDisabled }) => ({\n downsamplingError: null,\n isDownsampleInProgress: false,\n isDownsampleFinished: false,\n isDownsamplingDisabled: !isDownsamplingDisabled,\n }),\n () => {\n const { model } = this.props;\n const { isDownsamplingDisabled } = this.state;\n model.setDownsamplingDisabled(isDownsamplingDisabled);\n }\n );\n }\n\n handleErrorClose(): void {\n this.setState({ shownError: null });\n }\n\n handleDownsampleErrorClose(): void {\n this.setState({ downsamplingError: null });\n }\n\n handleModelEvent(event: CustomEvent): void {\n const { type, detail } = event;\n log.debug2('Received data update', type, detail);\n\n switch (type) {\n case ChartModel.EVENT_UPDATED: {\n this.currentSeries += 1;\n this.setState(state => {\n const { layout, revision } = state;\n if (typeof layout.datarevision === 'number') {\n layout.datarevision += 1;\n }\n return {\n data: detail,\n layout,\n revision: revision + 1,\n };\n });\n\n const { onUpdate } = this.props;\n onUpdate({ isLoading: !this.isLoadedFired });\n break;\n }\n case ChartModel.EVENT_LOADFINISHED: {\n const { onUpdate } = this.props;\n this.isLoadedFired = true;\n onUpdate({ isLoading: false });\n break;\n }\n case ChartModel.EVENT_DISCONNECT: {\n const { onDisconnect } = this.props;\n onDisconnect();\n break;\n }\n case ChartModel.EVENT_RECONNECT: {\n const { onReconnect } = this.props;\n onReconnect();\n break;\n }\n case ChartModel.EVENT_DOWNSAMPLESTARTED: {\n this.setState({\n isDownsampleFinished: false,\n isDownsampleInProgress: true,\n downsamplingError: null,\n });\n break;\n }\n case ChartModel.EVENT_DOWNSAMPLEFINISHED: {\n this.setState({\n isDownsampleFinished: true,\n isDownsampleInProgress: false,\n downsamplingError: null,\n });\n break;\n }\n case ChartModel.EVENT_DOWNSAMPLENEEDED:\n case ChartModel.EVENT_DOWNSAMPLEFAILED: {\n const downsamplingError = detail.message ?? detail;\n this.setState({\n isDownsampleFinished: false,\n isDownsampleInProgress: false,\n isDownsamplingDisabled: false,\n downsamplingError,\n });\n\n const { onError } = this.props;\n onError(new DownsamplingError(downsamplingError));\n break;\n }\n case ChartModel.EVENT_ERROR: {\n const error = `${detail}`;\n this.setState({ error });\n const { onError } = this.props;\n onError(new Error(error));\n break;\n }\n default:\n log.debug('Unknown event type', type, event);\n }\n }\n\n handlePlotUpdate(figure: Readonly<{ layout: Partial<Layout> }>): void {\n // User could have modified zoom/pan here, update the model dimensions\n // We don't need to update the datarevision, as we don't have any data changes\n // until an update comes back from the server anyway\n const { layout } = figure;\n const ranges = ChartUtils.getLayoutRanges(layout);\n\n const isRangesChanged = !deepEqual(ranges, this.ranges);\n\n if (isRangesChanged) {\n this.ranges = ranges;\n\n this.updateModelDimensions(true);\n }\n }\n\n handleRelayout(changes: { hiddenlabels?: string[] }): void {\n log.debug('handleRelayout', changes);\n if (changes.hiddenlabels != null) {\n const { onSettingsChanged } = this.props;\n // Pie charts store series visibility in layout.hiddenlabels and trigger relayout on changes\n // Series visibility for other types of charts is handled in handleRestyle\n const hiddenSeries = [...changes.hiddenlabels];\n onSettingsChanged({ hiddenSeries });\n }\n\n this.updateModelDimensions();\n }\n\n handleResize(): void {\n this.updateDimensions();\n }\n\n handleRestyle([changes, seriesIndexes]: readonly [\n Record<string, unknown>,\n number[],\n ]): void {\n log.debug('handleRestyle', changes, seriesIndexes);\n if (Object.keys(changes).includes('visible')) {\n const { data } = this.state;\n const { onSettingsChanged } = this.props;\n if (data != null) {\n const hiddenSeries = (data as Partial<PlotData>[]).reduce(\n (acc: string[], { name, visible }) =>\n name != null && visible === 'legendonly' ? [...acc, name] : acc,\n []\n );\n onSettingsChanged({ hiddenSeries });\n }\n }\n }\n\n handleThemeChange(): void {\n const { theme, model } = this.props;\n const { dh } = model;\n const chartUtils = new ChartUtils(dh);\n\n this.setState(({ layout }) => ({\n layout: {\n ...layout,\n template: chartUtils.makeDefaultTemplate(theme),\n },\n }));\n }\n\n /**\n * Toggle the error message. If it is already being displayed, then hide it.\n */\n toggleErrorMessage(error: string): void {\n this.setState(({ shownError }) => ({\n shownError: shownError === error ? null : error,\n }));\n }\n\n /**\n * Update the models dimensions and ranges.\n * Note that this will update it all whether the plot size changes OR the range\n * the user is looking at has changed (eg. panning/zooming).\n * Could update each independently, but doing them at the same time keeps the\n * ChartModel API a bit cleaner.\n * @param force Force a change even if the chart dimensions haven't changed (eg. after pan/zoom)\n */\n updateModelDimensions(force = false): void {\n const rect = this.getPlotRect();\n if (!rect) {\n log.warn('Unable to get plotting rect');\n return;\n }\n\n const isRectChanged =\n !this.rect ||\n this.rect.width !== rect.width ||\n this.rect.height !== rect.height;\n\n if (isRectChanged || force) {\n this.rect = rect;\n\n const { isActive, model } = this.props;\n model.setDimensions(rect);\n // We may need to resubscribe if dimensions were too small before\n if (isActive) {\n this.subscribe(model);\n }\n }\n }\n\n initFormatter(): void {\n const { settings } = this.props;\n this.updateFormatterSettings(settings);\n }\n\n updateFormatterSettings(settings: ChartSettings): void {\n const columnFormats = FormatterUtils.getColumnFormats(settings);\n const dateTimeFormatterOptions =\n FormatterUtils.getDateTimeFormatterOptions(settings);\n const { decimalFormatOptions = {}, integerFormatOptions = {} } = settings;\n\n if (\n !deepEqual(this.columnFormats, columnFormats) ||\n !deepEqual(this.dateTimeFormatterOptions, dateTimeFormatterOptions) ||\n !deepEqual(this.decimalFormatOptions, decimalFormatOptions) ||\n !deepEqual(this.integerFormatOptions, integerFormatOptions)\n ) {\n this.columnFormats = FormatterUtils.getColumnFormats(settings);\n this.dateTimeFormatterOptions = dateTimeFormatterOptions;\n this.decimalFormatOptions = decimalFormatOptions;\n this.integerFormatOptions = integerFormatOptions;\n this.updateFormatter();\n }\n\n if (this.webgl !== settings.webgl) {\n this.webgl = settings.webgl;\n this.updateRenderOptions();\n }\n }\n\n updateFormatter(): void {\n const { model } = this.props;\n const formatter = new Formatter(\n model.dh,\n this.columnFormats,\n this.dateTimeFormatterOptions,\n this.decimalFormatOptions,\n this.integerFormatOptions\n );\n model.setFormatter(formatter);\n }\n\n updateRenderOptions(): void {\n const { model } = this.props;\n const renderOptions = { webgl: this.webgl };\n model.setRenderOptions(renderOptions);\n }\n\n updateDimensions(): void {\n const rect = this.getPlotRect();\n const { Plotly: PlotlyProp } = this.props;\n if (\n this.plot.current != null &&\n rect != null &&\n rect.width > 0 &&\n rect.height > 0\n ) {\n // Call relayout to resize avoiding the debouncing plotly does\n // https://github.com/plotly/plotly.js/issues/2769#issuecomment-402099552\n PlotlyProp.relayout(\n (this.plot.current as unknown as { el: HTMLElement }).el,\n {\n autosize: true,\n }\n ).catch((e: unknown) => {\n log.debug('Unable to resize, promise rejected', e);\n });\n }\n }\n\n render(): ReactElement {\n const { PlotComponent } = this;\n const {\n data,\n downsamplingError,\n isDownsampleFinished,\n isDownsampleInProgress,\n isDownsamplingDisabled,\n error,\n shownError,\n layout,\n revision,\n } = this.state;\n const config = this.getCachedConfig(\n downsamplingError,\n isDownsampleFinished,\n isDownsampleInProgress,\n isDownsamplingDisabled,\n data ?? [],\n error\n );\n const isPlotShown = data != null;\n\n return (\n <div className=\"h-100 w-100 chart-wrapper\" ref={this.plotWrapperMerged}>\n {isPlotShown && (\n <PlotComponent\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n ref={this.plot}\n data={data}\n layout={layout}\n revision={revision}\n config={config}\n onAfterPlot={this.handleAfterPlot}\n onError={log.error}\n onRelayout={this.handleRelayout}\n onUpdate={this.handlePlotUpdate}\n onRestyle={this.handleRestyle}\n style={{ height: '100%', width: '100%' }}\n />\n )}\n {downsamplingError != null && shownError == null && (\n <ChartErrorOverlay\n errorMessage={`${downsamplingError}`}\n onDiscard={() => {\n this.handleDownsampleErrorClose();\n }}\n onConfirm={() => {\n this.handleDownsampleErrorClose();\n this.handleDownsampleClick();\n }}\n />\n )}\n {shownError != null && (\n <ChartErrorOverlay\n errorMessage={`${shownError}`}\n onDiscard={() => {\n this.handleErrorClose();\n }}\n />\n )}\n </div>\n );\n }\n}\n\nexport default function ChartContainer(\n props: ChartContainerProps\n): JSX.Element {\n const chartTheme = useChartTheme();\n // eslint-disable-next-line react/jsx-props-no-spreading\n return <Chart {...props} theme={chartTheme} />;\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ReactElement } from 'react';
1
+ import { type ReactElement } from 'react';
2
2
  import './ChartErrorOverlay.scss';
3
3
  interface ChartErrorOverlayProps {
4
4
  errorMessage: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ChartErrorOverlay.d.ts","sourceRoot":"","sources":["../src/ChartErrorOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAErC,OAAO,0BAA0B,CAAC;AAElC,UAAU,sBAAsB;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,iBAAS,iBAAiB,CAAC,EACzB,YAAY,EACZ,SAAS,EACT,SAAS,EACT,QAAQ,EACR,aAAa,EAAE,UAAU,GAC1B,EAAE,sBAAsB,GAAG,YAAY,CA+BvC;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"ChartErrorOverlay.d.ts","sourceRoot":"","sources":["../src/ChartErrorOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,0BAA0B,CAAC;AAElC,UAAU,sBAAsB;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,iBAAS,iBAAiB,CAAC,EACzB,YAAY,EACZ,SAAS,EACT,SAAS,EACT,QAAQ,EACR,aAAa,EAAE,UAAU,GAC1B,EAAE,sBAAsB,GAAG,YAAY,CA+BvC;AAED,eAAe,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChartErrorOverlay.js","names":["CopyButton","Button","jsx","_jsx","jsxs","_jsxs","ChartErrorOverlay","_ref","errorMessage","onDiscard","onConfirm","onCancel","dataTestId","messageTestId","concat","undefined","className","children","copy","style","margin","onClick","kind"],"sources":["../src/ChartErrorOverlay.tsx"],"sourcesContent":["import { ReactElement } from 'react';\nimport { CopyButton, Button } from '@deephaven/components';\nimport './ChartErrorOverlay.scss';\n\ninterface ChartErrorOverlayProps {\n errorMessage: string;\n onDiscard?: () => void;\n onCancel?: () => void;\n onConfirm?: () => void;\n 'data-testid'?: string;\n}\n\nfunction ChartErrorOverlay({\n errorMessage,\n onDiscard,\n onConfirm,\n onCancel,\n 'data-testid': dataTestId,\n}: ChartErrorOverlayProps): ReactElement {\n const messageTestId =\n dataTestId != null ? `${dataTestId}-message` : undefined;\n\n return (\n <div className=\"chart-panel-overlay chart-error-overlay\">\n <div className=\"chart-panel-overlay-content chart-error-overlay-content\">\n <div className=\"info-message\" data-testid={messageTestId}>\n {errorMessage}\n <CopyButton copy={errorMessage} style={{ margin: '0' }} />\n </div>\n <div>\n {onCancel && (\n <Button onClick={onCancel} kind=\"secondary\">\n Cancel\n </Button>\n )}\n {onDiscard && (\n <Button onClick={onDiscard} kind=\"secondary\">\n Dismiss\n </Button>\n )}\n {onConfirm && (\n <Button onClick={onConfirm} kind=\"primary\">\n Continue\n </Button>\n )}\n </div>\n </div>\n </div>\n );\n}\n\nexport default ChartErrorOverlay;\n"],"mappings":"AACA,SAASA,UAAU,EAAEC,MAAM,QAAQ,uBAAuB;AAAC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAW3D,SAASC,iBAAiBA,CAAAC,IAAA,EAMe;EAAA,IANd;IACzBC,YAAY;IACZC,SAAS;IACTC,SAAS;IACTC,QAAQ;IACR,aAAa,EAAEC;EACO,CAAC,GAAAL,IAAA;EACvB,IAAMM,aAAa,GACjBD,UAAU,IAAI,IAAI,MAAAE,MAAA,CAAMF,UAAU,gBAAaG,SAAS;EAE1D,oBACEZ,IAAA;IAAKa,SAAS,EAAC,yCAAyC;IAAAC,QAAA,eACtDZ,KAAA;MAAKW,SAAS,EAAC,yDAAyD;MAAAC,QAAA,gBACtEZ,KAAA;QAAKW,SAAS,EAAC,cAAc;QAAC,eAAaH,aAAc;QAAAI,QAAA,GACtDT,YAAY,eACbL,IAAA,CAACH,UAAU;UAACkB,IAAI,EAAEV,YAAa;UAACW,KAAK,EAAE;YAAEC,MAAM,EAAE;UAAI;QAAE,CAAE,CAAC;MAAA,CACvD,CAAC,eACNf,KAAA;QAAAY,QAAA,GACGN,QAAQ,iBACPR,IAAA,CAACF,MAAM;UAACoB,OAAO,EAAEV,QAAS;UAACW,IAAI,EAAC,WAAW;UAAAL,QAAA,EAAC;QAE5C,CAAQ,CACT,EACAR,SAAS,iBACRN,IAAA,CAACF,MAAM;UAACoB,OAAO,EAAEZ,SAAU;UAACa,IAAI,EAAC,WAAW;UAAAL,QAAA,EAAC;QAE7C,CAAQ,CACT,EACAP,SAAS,iBACRP,IAAA,CAACF,MAAM;UAACoB,OAAO,EAAEX,SAAU;UAACY,IAAI,EAAC,SAAS;UAAAL,QAAA,EAAC;QAE3C,CAAQ,CACT;MAAA,CACE,CAAC;IAAA,CACH;EAAC,CACH,CAAC;AAEV;AAEA,eAAeX,iBAAiB"}
1
+ {"version":3,"file":"ChartErrorOverlay.js","names":["CopyButton","Button","jsx","_jsx","jsxs","_jsxs","ChartErrorOverlay","_ref","errorMessage","onDiscard","onConfirm","onCancel","dataTestId","messageTestId","concat","undefined","className","children","copy","style","margin","onClick","kind"],"sources":["../src/ChartErrorOverlay.tsx"],"sourcesContent":["import { type ReactElement } from 'react';\nimport { CopyButton, Button } from '@deephaven/components';\nimport './ChartErrorOverlay.scss';\n\ninterface ChartErrorOverlayProps {\n errorMessage: string;\n onDiscard?: () => void;\n onCancel?: () => void;\n onConfirm?: () => void;\n 'data-testid'?: string;\n}\n\nfunction ChartErrorOverlay({\n errorMessage,\n onDiscard,\n onConfirm,\n onCancel,\n 'data-testid': dataTestId,\n}: ChartErrorOverlayProps): ReactElement {\n const messageTestId =\n dataTestId != null ? `${dataTestId}-message` : undefined;\n\n return (\n <div className=\"chart-panel-overlay chart-error-overlay\">\n <div className=\"chart-panel-overlay-content chart-error-overlay-content\">\n <div className=\"info-message\" data-testid={messageTestId}>\n {errorMessage}\n <CopyButton copy={errorMessage} style={{ margin: '0' }} />\n </div>\n <div>\n {onCancel && (\n <Button onClick={onCancel} kind=\"secondary\">\n Cancel\n </Button>\n )}\n {onDiscard && (\n <Button onClick={onDiscard} kind=\"secondary\">\n Dismiss\n </Button>\n )}\n {onConfirm && (\n <Button onClick={onConfirm} kind=\"primary\">\n Continue\n </Button>\n )}\n </div>\n </div>\n </div>\n );\n}\n\nexport default ChartErrorOverlay;\n"],"mappings":"AACA,SAASA,UAAU,EAAEC,MAAM,QAAQ,uBAAuB;AAAC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAW3D,SAASC,iBAAiBA,CAAAC,IAAA,EAMe;EAAA,IANd;IACzBC,YAAY;IACZC,SAAS;IACTC,SAAS;IACTC,QAAQ;IACR,aAAa,EAAEC;EACO,CAAC,GAAAL,IAAA;EACvB,IAAMM,aAAa,GACjBD,UAAU,IAAI,IAAI,MAAAE,MAAA,CAAMF,UAAU,gBAAaG,SAAS;EAE1D,oBACEZ,IAAA;IAAKa,SAAS,EAAC,yCAAyC;IAAAC,QAAA,eACtDZ,KAAA;MAAKW,SAAS,EAAC,yDAAyD;MAAAC,QAAA,gBACtEZ,KAAA;QAAKW,SAAS,EAAC,cAAc;QAAC,eAAaH,aAAc;QAAAI,QAAA,GACtDT,YAAY,eACbL,IAAA,CAACH,UAAU;UAACkB,IAAI,EAAEV,YAAa;UAACW,KAAK,EAAE;YAAEC,MAAM,EAAE;UAAI;QAAE,CAAE,CAAC;MAAA,CACvD,CAAC,eACNf,KAAA;QAAAY,QAAA,GACGN,QAAQ,iBACPR,IAAA,CAACF,MAAM;UAACoB,OAAO,EAAEV,QAAS;UAACW,IAAI,EAAC,WAAW;UAAAL,QAAA,EAAC;QAE5C,CAAQ,CACT,EACAR,SAAS,iBACRN,IAAA,CAACF,MAAM;UAACoB,OAAO,EAAEZ,SAAU;UAACa,IAAI,EAAC,WAAW;UAAAL,QAAA,EAAC;QAE7C,CAAQ,CACT,EACAP,SAAS,iBACRP,IAAA,CAACF,MAAM;UAACoB,OAAO,EAAEX,SAAU;UAACY,IAAI,EAAC,SAAS;UAAAL,QAAA,EAAC;QAE3C,CAAQ,CACT;MAAA,CACE,CAAC;IAAA,CACH;EAAC,CACH,CAAC;AAEV;AAEA,eAAeX,iBAAiB"}
@@ -1,7 +1,7 @@
1
1
  import type { dh as DhType } from '@deephaven/jsapi-types';
2
- import { Formatter } from '@deephaven/jsapi-utils';
2
+ import { type Formatter } from '@deephaven/jsapi-utils';
3
3
  import type { Layout, Data } from 'plotly.js';
4
- import { FilterColumnMap, FilterMap } from './ChartUtils';
4
+ import { type FilterColumnMap, type FilterMap } from './ChartUtils';
5
5
  export type ChartEvent = CustomEvent;
6
6
  export type RenderOptions = {
7
7
  /** Allow WebGL as an option. Defaults to `true`, explicitly set to `false` to disable. */
@@ -1 +1 @@
1
- {"version":3,"file":"ChartModel.d.ts","sourceRoot":"","sources":["../src/ChartModel.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC;AAErC,MAAM,MAAM,aAAa,GAAG;IAC1B,0FAA0F;IAC1F,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;;;GAIG;AACH,cAAM,UAAU;IACd,MAAM,CAAC,aAAa,SAA8B;IAElD,MAAM,CAAC,gBAAgB,SAAiC;IAExD,MAAM,CAAC,eAAe,SAAgC;IAEtD,MAAM,CAAC,uBAAuB,SAAwC;IAEtE,MAAM,CAAC,wBAAwB,SAAyC;IAExE,MAAM,CAAC,sBAAsB,SAAuC;IAEpE,MAAM,CAAC,sBAAsB,SAAuC;IAEpE,MAAM,CAAC,kBAAkB,SAAmC;IAE5D,MAAM,CAAC,WAAW,SAA4B;gBAElC,EAAE,EAAE,OAAO,MAAM;IAM7B,EAAE,EAAE,OAAO,MAAM,CAAC;IAElB,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC,EAAE,CAAC;IAE3C,gFAAgF;IAChF,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,sBAAsB,EAAE,OAAO,CAAC;IAEhC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;IAI1B,eAAe,IAAI,MAAM;IAIzB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5B,kBAAkB,IAAI,eAAe;IAIrC,gBAAgB,IAAI,OAAO;IAK3B,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAElC;;OAEG;IAEH,KAAK,IAAI,IAAI;IAEb;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAIxC;;;OAGG;IACH,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAIpD;;;OAGG;IACH,uBAAuB,CAAC,sBAAsB,EAAE,OAAO,GAAG,IAAI;IAI9D;;;OAGG;IACH,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAIlC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAItD,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAIxD,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAMlC,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAI/B,cAAc,IAAI,IAAI;IAItB,aAAa,IAAI,IAAI;IAIrB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAM1C,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAM3C,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAMzC,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAM3C,gBAAgB,IAAI,IAAI;IAIxB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;CAGlC;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"ChartModel.d.ts","sourceRoot":"","sources":["../src/ChartModel.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpE,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC;AAErC,MAAM,MAAM,aAAa,GAAG;IAC1B,0FAA0F;IAC1F,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF;;;;GAIG;AACH,cAAM,UAAU;IACd,MAAM,CAAC,aAAa,SAA8B;IAElD,MAAM,CAAC,gBAAgB,SAAiC;IAExD,MAAM,CAAC,eAAe,SAAgC;IAEtD,MAAM,CAAC,uBAAuB,SAAwC;IAEtE,MAAM,CAAC,wBAAwB,SAAyC;IAExE,MAAM,CAAC,sBAAsB,SAAuC;IAEpE,MAAM,CAAC,sBAAsB,SAAuC;IAEpE,MAAM,CAAC,kBAAkB,SAAmC;IAE5D,MAAM,CAAC,WAAW,SAA4B;gBAElC,EAAE,EAAE,OAAO,MAAM;IAM7B,EAAE,EAAE,OAAO,MAAM,CAAC;IAElB,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC,EAAE,CAAC;IAE3C,gFAAgF;IAChF,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,sBAAsB,EAAE,OAAO,CAAC;IAEhC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;IAI1B,eAAe,IAAI,MAAM;IAIzB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5B,kBAAkB,IAAI,eAAe;IAIrC,gBAAgB,IAAI,OAAO;IAK3B,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAElC;;OAEG;IAEH,KAAK,IAAI,IAAI;IAEb;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAIxC;;;OAGG;IACH,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAIpD;;;OAGG;IACH,uBAAuB,CAAC,sBAAsB,EAAE,OAAO,GAAG,IAAI;IAI9D;;;OAGG;IACH,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAIlC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAItD,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAIxD,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAMlC,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAI/B,cAAc,IAAI,IAAI;IAItB,aAAa,IAAI,IAAI;IAIrB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAM1C,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAM3C,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAMzC,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAM3C,gBAAgB,IAAI,IAAI;IAIxB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;CAGlC;AAED,eAAe,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChartModel.js","names":["ChartModel","constructor","dh","_defineProperty","listeners","isDownsamplingDisabled","getData","getDefaultTitle","getLayout","getFilterColumnMap","Map","isFilterRequired","setFilter","filter","close","setFormatter","formatter","setRenderOptions","renderOptions","setDownsamplingDisabled","setDimensions","rect","setTitle","title","subscribe","callback","push","unsubscribe","listener","fireEvent","event","i","length","fireUpdate","data","CustomEvent","EVENT_UPDATED","detail","fireDisconnect","EVENT_DISCONNECT","fireReconnect","EVENT_RECONNECT","fireDownsampleStart","EVENT_DOWNSAMPLESTARTED","fireDownsampleFinish","EVENT_DOWNSAMPLEFINISHED","fireDownsampleFail","EVENT_DOWNSAMPLEFAILED","fireDownsampleNeeded","EVENT_DOWNSAMPLENEEDED","fireLoadFinished","EVENT_LOADFINISHED","fireError","EVENT_ERROR"],"sources":["../src/ChartModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\n/* eslint no-unused-vars: \"off\" */\n\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport { Formatter } from '@deephaven/jsapi-utils';\nimport type { Layout, Data } from 'plotly.js';\nimport { FilterColumnMap, FilterMap } from './ChartUtils';\n\nexport type ChartEvent = CustomEvent;\n\nexport type RenderOptions = {\n /** Allow WebGL as an option. Defaults to `true`, explicitly set to `false` to disable. */\n webgl?: boolean;\n};\n\n/**\n * Model for a Chart\n * All of these methods should return very quickly.\n * If data needs to be loaded asynchronously, return something immediately, then trigger an event for the chart to refresh.\n */\nclass ChartModel {\n static EVENT_UPDATED = 'ChartModel.EVENT_UPDATED';\n\n static EVENT_DISCONNECT = 'ChartModel.EVENT_DISCONNECT';\n\n static EVENT_RECONNECT = 'ChartModel.EVENT_RECONNECT';\n\n static EVENT_DOWNSAMPLESTARTED = 'ChartModel.EVENT_DOWNSAMPLESTARTED';\n\n static EVENT_DOWNSAMPLEFINISHED = 'ChartModel.EVENT_DOWNSAMPLEFINISHED';\n\n static EVENT_DOWNSAMPLEFAILED = 'ChartModel.EVENT_DOWNSAMPLEFAILED';\n\n static EVENT_DOWNSAMPLENEEDED = 'ChartModel.EVENT_DOWNSAMPLENEEDED';\n\n static EVENT_LOADFINISHED = 'ChartModel.EVENT_LOADFINISHED';\n\n static EVENT_ERROR = 'ChartModel.EVENT_ERROR';\n\n constructor(dh: typeof DhType) {\n this.dh = dh;\n this.listeners = [];\n this.isDownsamplingDisabled = false;\n }\n\n dh: typeof DhType;\n\n listeners: ((event: ChartEvent) => void)[];\n\n /** Formatter settings for the chart, such as how to format dates and numbers */\n formatter?: Formatter;\n\n renderOptions?: RenderOptions;\n\n rect?: DOMRect;\n\n isDownsamplingDisabled: boolean;\n\n title?: string;\n\n getData(): Partial<Data>[] {\n return [];\n }\n\n getDefaultTitle(): string {\n return '';\n }\n\n getLayout(): Partial<Layout> {\n return {};\n }\n\n getFilterColumnMap(): FilterColumnMap {\n return new Map();\n }\n\n isFilterRequired(): boolean {\n return false;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n setFilter(filter: FilterMap): void {}\n\n /**\n * Close this model, clean up any underlying subscriptions\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n close(): void {}\n\n /**\n * Set the formatter to use when charting the data.\n * @param formatter The formatter to use to format the charting data\n */\n setFormatter(formatter: Formatter): void {\n this.formatter = formatter;\n }\n\n /**\n * Set additional options for rendering the chart\n * @param renderOptions Options for rendering the chart\n */\n setRenderOptions(renderOptions: RenderOptions): void {\n this.renderOptions = renderOptions;\n }\n\n /**\n * Disable downsampling\n * @param isDownsamplingDisabled True if downsampling should be disabled\n */\n setDownsamplingDisabled(isDownsamplingDisabled: boolean): void {\n this.isDownsamplingDisabled = isDownsamplingDisabled;\n }\n\n /**\n * Set the dimensions of the plot. May be needed to evaluate some of the percents\n * @param rect The bounding rectangle of the plot\n */\n setDimensions(rect: DOMRect): void {\n this.rect = rect;\n }\n\n setTitle(title: string): void {\n this.title = title;\n }\n\n /**\n * Subscribe to this ChartModel and start listening for all events.\n * @param callback Callback when an event occurs\n */\n subscribe(callback: (event: ChartEvent) => void): void {\n this.listeners.push(callback);\n }\n\n unsubscribe(callback: (event: ChartEvent) => void): void {\n this.listeners = this.listeners.filter(listener => listener !== callback);\n }\n\n fireEvent(event: ChartEvent): void {\n for (let i = 0; i < this.listeners.length; i += 1) {\n this.listeners[i](event);\n }\n }\n\n fireUpdate(data: unknown): void {\n this.fireEvent(new CustomEvent(ChartModel.EVENT_UPDATED, { detail: data }));\n }\n\n fireDisconnect(): void {\n this.fireEvent(new CustomEvent(ChartModel.EVENT_DISCONNECT));\n }\n\n fireReconnect(): void {\n this.fireEvent(new CustomEvent(ChartModel.EVENT_RECONNECT));\n }\n\n fireDownsampleStart(detail: unknown): void {\n this.fireEvent(\n new CustomEvent(ChartModel.EVENT_DOWNSAMPLESTARTED, { detail })\n );\n }\n\n fireDownsampleFinish(detail: unknown): void {\n this.fireEvent(\n new CustomEvent(ChartModel.EVENT_DOWNSAMPLEFINISHED, { detail })\n );\n }\n\n fireDownsampleFail(detail: unknown): void {\n this.fireEvent(\n new CustomEvent(ChartModel.EVENT_DOWNSAMPLEFAILED, { detail })\n );\n }\n\n fireDownsampleNeeded(detail: unknown): void {\n this.fireEvent(\n new CustomEvent(ChartModel.EVENT_DOWNSAMPLENEEDED, { detail })\n );\n }\n\n fireLoadFinished(): void {\n this.fireEvent(new CustomEvent(ChartModel.EVENT_LOADFINISHED));\n }\n\n fireError(detail: string[]): void {\n this.fireEvent(new CustomEvent(ChartModel.EVENT_ERROR, { detail }));\n }\n}\n\nexport default ChartModel;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ChartModel.js","names":["ChartModel","constructor","dh","_defineProperty","listeners","isDownsamplingDisabled","getData","getDefaultTitle","getLayout","getFilterColumnMap","Map","isFilterRequired","setFilter","filter","close","setFormatter","formatter","setRenderOptions","renderOptions","setDownsamplingDisabled","setDimensions","rect","setTitle","title","subscribe","callback","push","unsubscribe","listener","fireEvent","event","i","length","fireUpdate","data","CustomEvent","EVENT_UPDATED","detail","fireDisconnect","EVENT_DISCONNECT","fireReconnect","EVENT_RECONNECT","fireDownsampleStart","EVENT_DOWNSAMPLESTARTED","fireDownsampleFinish","EVENT_DOWNSAMPLEFINISHED","fireDownsampleFail","EVENT_DOWNSAMPLEFAILED","fireDownsampleNeeded","EVENT_DOWNSAMPLENEEDED","fireLoadFinished","EVENT_LOADFINISHED","fireError","EVENT_ERROR"],"sources":["../src/ChartModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\n/* eslint no-unused-vars: \"off\" */\n\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport { type Formatter } from '@deephaven/jsapi-utils';\nimport type { Layout, Data } from 'plotly.js';\nimport { type FilterColumnMap, type FilterMap } from './ChartUtils';\n\nexport type ChartEvent = CustomEvent;\n\nexport type RenderOptions = {\n /** Allow WebGL as an option. Defaults to `true`, explicitly set to `false` to disable. */\n webgl?: boolean;\n};\n\n/**\n * Model for a Chart\n * All of these methods should return very quickly.\n * If data needs to be loaded asynchronously, return something immediately, then trigger an event for the chart to refresh.\n */\nclass ChartModel {\n static EVENT_UPDATED = 'ChartModel.EVENT_UPDATED';\n\n static EVENT_DISCONNECT = 'ChartModel.EVENT_DISCONNECT';\n\n static EVENT_RECONNECT = 'ChartModel.EVENT_RECONNECT';\n\n static EVENT_DOWNSAMPLESTARTED = 'ChartModel.EVENT_DOWNSAMPLESTARTED';\n\n static EVENT_DOWNSAMPLEFINISHED = 'ChartModel.EVENT_DOWNSAMPLEFINISHED';\n\n static EVENT_DOWNSAMPLEFAILED = 'ChartModel.EVENT_DOWNSAMPLEFAILED';\n\n static EVENT_DOWNSAMPLENEEDED = 'ChartModel.EVENT_DOWNSAMPLENEEDED';\n\n static EVENT_LOADFINISHED = 'ChartModel.EVENT_LOADFINISHED';\n\n static EVENT_ERROR = 'ChartModel.EVENT_ERROR';\n\n constructor(dh: typeof DhType) {\n this.dh = dh;\n this.listeners = [];\n this.isDownsamplingDisabled = false;\n }\n\n dh: typeof DhType;\n\n listeners: ((event: ChartEvent) => void)[];\n\n /** Formatter settings for the chart, such as how to format dates and numbers */\n formatter?: Formatter;\n\n renderOptions?: RenderOptions;\n\n rect?: DOMRect;\n\n isDownsamplingDisabled: boolean;\n\n title?: string;\n\n getData(): Partial<Data>[] {\n return [];\n }\n\n getDefaultTitle(): string {\n return '';\n }\n\n getLayout(): Partial<Layout> {\n return {};\n }\n\n getFilterColumnMap(): FilterColumnMap {\n return new Map();\n }\n\n isFilterRequired(): boolean {\n return false;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n setFilter(filter: FilterMap): void {}\n\n /**\n * Close this model, clean up any underlying subscriptions\n */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n close(): void {}\n\n /**\n * Set the formatter to use when charting the data.\n * @param formatter The formatter to use to format the charting data\n */\n setFormatter(formatter: Formatter): void {\n this.formatter = formatter;\n }\n\n /**\n * Set additional options for rendering the chart\n * @param renderOptions Options for rendering the chart\n */\n setRenderOptions(renderOptions: RenderOptions): void {\n this.renderOptions = renderOptions;\n }\n\n /**\n * Disable downsampling\n * @param isDownsamplingDisabled True if downsampling should be disabled\n */\n setDownsamplingDisabled(isDownsamplingDisabled: boolean): void {\n this.isDownsamplingDisabled = isDownsamplingDisabled;\n }\n\n /**\n * Set the dimensions of the plot. May be needed to evaluate some of the percents\n * @param rect The bounding rectangle of the plot\n */\n setDimensions(rect: DOMRect): void {\n this.rect = rect;\n }\n\n setTitle(title: string): void {\n this.title = title;\n }\n\n /**\n * Subscribe to this ChartModel and start listening for all events.\n * @param callback Callback when an event occurs\n */\n subscribe(callback: (event: ChartEvent) => void): void {\n this.listeners.push(callback);\n }\n\n unsubscribe(callback: (event: ChartEvent) => void): void {\n this.listeners = this.listeners.filter(listener => listener !== callback);\n }\n\n fireEvent(event: ChartEvent): void {\n for (let i = 0; i < this.listeners.length; i += 1) {\n this.listeners[i](event);\n }\n }\n\n fireUpdate(data: unknown): void {\n this.fireEvent(new CustomEvent(ChartModel.EVENT_UPDATED, { detail: data }));\n }\n\n fireDisconnect(): void {\n this.fireEvent(new CustomEvent(ChartModel.EVENT_DISCONNECT));\n }\n\n fireReconnect(): void {\n this.fireEvent(new CustomEvent(ChartModel.EVENT_RECONNECT));\n }\n\n fireDownsampleStart(detail: unknown): void {\n this.fireEvent(\n new CustomEvent(ChartModel.EVENT_DOWNSAMPLESTARTED, { detail })\n );\n }\n\n fireDownsampleFinish(detail: unknown): void {\n this.fireEvent(\n new CustomEvent(ChartModel.EVENT_DOWNSAMPLEFINISHED, { detail })\n );\n }\n\n fireDownsampleFail(detail: unknown): void {\n this.fireEvent(\n new CustomEvent(ChartModel.EVENT_DOWNSAMPLEFAILED, { detail })\n );\n }\n\n fireDownsampleNeeded(detail: unknown): void {\n this.fireEvent(\n new CustomEvent(ChartModel.EVENT_DOWNSAMPLENEEDED, { detail })\n );\n }\n\n fireLoadFinished(): void {\n this.fireEvent(new CustomEvent(ChartModel.EVENT_LOADFINISHED));\n }\n\n fireError(detail: string[]): void {\n this.fireEvent(new CustomEvent(ChartModel.EVENT_ERROR, { detail }));\n }\n}\n\nexport default ChartModel;\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { dh as DhType } from '@deephaven/jsapi-types';
2
- import { ChartModelSettings } from './ChartUtils';
3
- import ChartModel from './ChartModel';
2
+ import { type ChartModelSettings } from './ChartUtils';
3
+ import type ChartModel from './ChartModel';
4
4
  declare class ChartModelFactory {
5
5
  /**
6
6
  * Creates a model from the settings provided.
@@ -1 +1 @@
1
- {"version":3,"file":"ChartModelFactory.d.ts","sourceRoot":"","sources":["../src/ChartModelFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAmB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,cAAM,iBAAiB;IACrB;;;;;;;;;;;;;;OAcG;WACU,qBAAqB,CAChC,EAAE,EAAE,OAAO,MAAM,EACjB,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,MAAM,CAAC,KAAK,GAClB,OAAO,CAAC,UAAU,CAAC;IAStB;;;;;;;;;;;;OAYG;WACU,sBAAsB,CACjC,EAAE,EAAE,OAAO,MAAM,EACjB,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,MAAM,CAAC,KAAK,GAClB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IAe9B;;;;;;;;;;;;;;OAcG;WACU,SAAS,CACpB,EAAE,EAAE,OAAO,MAAM,EACjB,QAAQ,EAAE,kBAAkB,GAAG,SAAS,EACxC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,GACzB,OAAO,CAAC,UAAU,CAAC;CAGvB;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"ChartModelFactory.d.ts","sourceRoot":"","sources":["../src/ChartModelFactory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEnE,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAE3C,cAAM,iBAAiB;IACrB;;;;;;;;;;;;;;OAcG;WACU,qBAAqB,CAChC,EAAE,EAAE,OAAO,MAAM,EACjB,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,MAAM,CAAC,KAAK,GAClB,OAAO,CAAC,UAAU,CAAC;IAStB;;;;;;;;;;;;OAYG;WACU,sBAAsB,CACjC,EAAE,EAAE,OAAO,MAAM,EACjB,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,MAAM,CAAC,KAAK,GAClB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IAe9B;;;;;;;;;;;;;;OAcG;WACU,SAAS,CACpB,EAAE,EAAE,OAAO,MAAM,EACjB,QAAQ,EAAE,kBAAkB,GAAG,SAAS,EACxC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,GACzB,OAAO,CAAC,UAAU,CAAC;CAGvB;AAED,eAAe,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChartModelFactory.js","names":["ChartUtils","FigureChartModel","ChartModelFactory","makeModelFromSettings","dh","settings","table","_asyncToGenerator","figure","makeFigureFromSettings","tableCopy","copy","applyCustomColumns","customColumns","applyFilter","filter","applySort","sort","plot","Figure","create","makeFigureSettings","makeModel"],"sources":["../src/ChartModelFactory.ts"],"sourcesContent":["import type { dh as DhType } from '@deephaven/jsapi-types';\nimport ChartUtils, { ChartModelSettings } from './ChartUtils';\nimport FigureChartModel from './FigureChartModel';\nimport ChartModel from './ChartModel';\n\nclass ChartModelFactory {\n /**\n * Creates a model from the settings provided.\n * Tries to create a Figure in the API with it.\n * @param dh JSAPI instance\n * @param settings The chart builder settings\n * @param settings.isLinked Whether the newly created chart should stay linked with the original table, update when filters are updated\n * @param settings.series The column names to use for creating the series of this chart\n * @param settings.type Chart builder type, from ChartBuilder.types\n * @param settings.xAxis The column name to use for the x-axis\n * @param [settings.hiddenSeries] Array of hidden series names\n * @param table The table to build the model for\n * @returns The ChartModel Promise representing the figure\n * CRA sets tsconfig to type check JS based on jsdoc comments. It isn't able to figure out FigureChartModel extends ChartModel\n * This causes TS issues in 1 or 2 spots. Once this is TS it can be returned to just FigureChartModel\n */\n static async makeModelFromSettings(\n dh: typeof DhType,\n settings: ChartModelSettings,\n table: DhType.Table\n ): Promise<ChartModel> {\n const figure = await ChartModelFactory.makeFigureFromSettings(\n dh,\n settings,\n table\n );\n return new FigureChartModel(dh, figure, settings);\n }\n\n /**\n * Creates a model from the settings provided.\n * Tries to create a Figure in the API with it.\n * @param dh DH JSAPI instance\n * @param settings The chart builder settings\n * @param settings.isLinked Whether the newly created chart should stay linked with the original table, update when filters are updated\n * @param settings.series The column names to use for creating the series of this chart\n * @param settings.type Chart builder type, from ChartBuilder.types\n * @param settings.xAxis The column name to use for the x-axis\n * @param [settings.hiddenSeries] Array of hidden series names\n * @param table The table to build the model for\n * @returns The Figure created with the settings provided\n */\n static async makeFigureFromSettings(\n dh: typeof DhType,\n settings: ChartModelSettings,\n table: DhType.Table\n ): Promise<DhType.plot.Figure> {\n // Copy the table first and then re-apply the filters from the original table\n // When we add table linking we'll want to listen to the original table and update\n // the copied table with any changes that occur.\n // The table gets owned by the Figure that gets created, which closes the table\n const tableCopy = await table.copy();\n tableCopy.applyCustomColumns(table.customColumns);\n tableCopy.applyFilter(table.filter);\n tableCopy.applySort(table.sort);\n\n return dh.plot.Figure.create(\n new ChartUtils(dh).makeFigureSettings(settings, tableCopy)\n );\n }\n\n /**\n * Creates a model from the settings provided.\n * Tries to create a Figure in the API with it.\n * @param dh DH JSAPI instance\n * @param settings The chart builder settings\n * @param settings.isLinked Whether the newly created chart should stay linked with the original table, update when filters are updated\n * @param settings.series The column names to use for creating the series of this chart\n * @param settings.type Chart builder type, from ChartBuilder.types\n * @param settings.xAxis The column name to use for the x-axis\n * @param [settings.hiddenSeries] Array of hidden series names\n * @param figure The figure to build the model for\n * @returns The FigureChartModel representing the figure\n * CRA sets tsconfig to type check JS based on jsdoc comments. It isn't able to figure out FigureChartModel extends ChartModel\n * This causes TS issues in 1 or 2 spots. Once this is TS it can be returned to just FigureChartModel\n */\n static async makeModel(\n dh: typeof DhType,\n settings: ChartModelSettings | undefined,\n figure: DhType.plot.Figure\n ): Promise<ChartModel> {\n return new FigureChartModel(dh, figure, settings);\n }\n}\n\nexport default ChartModelFactory;\n"],"mappings":";;OACOA,UAAU;AAAA,OACVC,gBAAgB;AAGvB,MAAMC,iBAAiB,CAAC;EACtB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAaC,qBAAqBA,CAChCC,EAAiB,EACjBC,QAA4B,EAC5BC,KAAmB,EACE;IAAA,OAAAC,iBAAA;MACrB,IAAMC,MAAM,SAASN,iBAAiB,CAACO,sBAAsB,CAC3DL,EAAE,EACFC,QAAQ,EACRC,KACF,CAAC;MACD,OAAO,IAAIL,gBAAgB,CAACG,EAAE,EAAEI,MAAM,EAAEH,QAAQ,CAAC;IAAC;EACpD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAaI,sBAAsBA,CACjCL,EAAiB,EACjBC,QAA4B,EAC5BC,KAAmB,EACU;IAAA,OAAAC,iBAAA;MAC7B;MACA;MACA;MACA;MACA,IAAMG,SAAS,SAASJ,KAAK,CAACK,IAAI,CAAC,CAAC;MACpCD,SAAS,CAACE,kBAAkB,CAACN,KAAK,CAACO,aAAa,CAAC;MACjDH,SAAS,CAACI,WAAW,CAACR,KAAK,CAACS,MAAM,CAAC;MACnCL,SAAS,CAACM,SAAS,CAACV,KAAK,CAACW,IAAI,CAAC;MAE/B,OAAOb,EAAE,CAACc,IAAI,CAACC,MAAM,CAACC,MAAM,CAC1B,IAAIpB,UAAU,CAACI,EAAE,CAAC,CAACiB,kBAAkB,CAAChB,QAAQ,EAAEK,SAAS,CAC3D,CAAC;IAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAaY,SAASA,CACpBlB,EAAiB,EACjBC,QAAwC,EACxCG,MAA0B,EACL;IAAA,OAAAD,iBAAA;MACrB,OAAO,IAAIN,gBAAgB,CAACG,EAAE,EAAEI,MAAM,EAAEH,QAAQ,CAAC;IAAC;EACpD;AACF;AAEA,eAAeH,iBAAiB"}
1
+ {"version":3,"file":"ChartModelFactory.js","names":["ChartUtils","FigureChartModel","ChartModelFactory","makeModelFromSettings","dh","settings","table","_asyncToGenerator","figure","makeFigureFromSettings","tableCopy","copy","applyCustomColumns","customColumns","applyFilter","filter","applySort","sort","plot","Figure","create","makeFigureSettings","makeModel"],"sources":["../src/ChartModelFactory.ts"],"sourcesContent":["import type { dh as DhType } from '@deephaven/jsapi-types';\nimport ChartUtils, { type ChartModelSettings } from './ChartUtils';\nimport FigureChartModel from './FigureChartModel';\nimport type ChartModel from './ChartModel';\n\nclass ChartModelFactory {\n /**\n * Creates a model from the settings provided.\n * Tries to create a Figure in the API with it.\n * @param dh JSAPI instance\n * @param settings The chart builder settings\n * @param settings.isLinked Whether the newly created chart should stay linked with the original table, update when filters are updated\n * @param settings.series The column names to use for creating the series of this chart\n * @param settings.type Chart builder type, from ChartBuilder.types\n * @param settings.xAxis The column name to use for the x-axis\n * @param [settings.hiddenSeries] Array of hidden series names\n * @param table The table to build the model for\n * @returns The ChartModel Promise representing the figure\n * CRA sets tsconfig to type check JS based on jsdoc comments. It isn't able to figure out FigureChartModel extends ChartModel\n * This causes TS issues in 1 or 2 spots. Once this is TS it can be returned to just FigureChartModel\n */\n static async makeModelFromSettings(\n dh: typeof DhType,\n settings: ChartModelSettings,\n table: DhType.Table\n ): Promise<ChartModel> {\n const figure = await ChartModelFactory.makeFigureFromSettings(\n dh,\n settings,\n table\n );\n return new FigureChartModel(dh, figure, settings);\n }\n\n /**\n * Creates a model from the settings provided.\n * Tries to create a Figure in the API with it.\n * @param dh DH JSAPI instance\n * @param settings The chart builder settings\n * @param settings.isLinked Whether the newly created chart should stay linked with the original table, update when filters are updated\n * @param settings.series The column names to use for creating the series of this chart\n * @param settings.type Chart builder type, from ChartBuilder.types\n * @param settings.xAxis The column name to use for the x-axis\n * @param [settings.hiddenSeries] Array of hidden series names\n * @param table The table to build the model for\n * @returns The Figure created with the settings provided\n */\n static async makeFigureFromSettings(\n dh: typeof DhType,\n settings: ChartModelSettings,\n table: DhType.Table\n ): Promise<DhType.plot.Figure> {\n // Copy the table first and then re-apply the filters from the original table\n // When we add table linking we'll want to listen to the original table and update\n // the copied table with any changes that occur.\n // The table gets owned by the Figure that gets created, which closes the table\n const tableCopy = await table.copy();\n tableCopy.applyCustomColumns(table.customColumns);\n tableCopy.applyFilter(table.filter);\n tableCopy.applySort(table.sort);\n\n return dh.plot.Figure.create(\n new ChartUtils(dh).makeFigureSettings(settings, tableCopy)\n );\n }\n\n /**\n * Creates a model from the settings provided.\n * Tries to create a Figure in the API with it.\n * @param dh DH JSAPI instance\n * @param settings The chart builder settings\n * @param settings.isLinked Whether the newly created chart should stay linked with the original table, update when filters are updated\n * @param settings.series The column names to use for creating the series of this chart\n * @param settings.type Chart builder type, from ChartBuilder.types\n * @param settings.xAxis The column name to use for the x-axis\n * @param [settings.hiddenSeries] Array of hidden series names\n * @param figure The figure to build the model for\n * @returns The FigureChartModel representing the figure\n * CRA sets tsconfig to type check JS based on jsdoc comments. It isn't able to figure out FigureChartModel extends ChartModel\n * This causes TS issues in 1 or 2 spots. Once this is TS it can be returned to just FigureChartModel\n */\n static async makeModel(\n dh: typeof DhType,\n settings: ChartModelSettings | undefined,\n figure: DhType.plot.Figure\n ): Promise<ChartModel> {\n return new FigureChartModel(dh, figure, settings);\n }\n}\n\nexport default ChartModelFactory;\n"],"mappings":";;OACOA,UAAU;AAAA,OACVC,gBAAgB;AAGvB,MAAMC,iBAAiB,CAAC;EACtB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAaC,qBAAqBA,CAChCC,EAAiB,EACjBC,QAA4B,EAC5BC,KAAmB,EACE;IAAA,OAAAC,iBAAA;MACrB,IAAMC,MAAM,SAASN,iBAAiB,CAACO,sBAAsB,CAC3DL,EAAE,EACFC,QAAQ,EACRC,KACF,CAAC;MACD,OAAO,IAAIL,gBAAgB,CAACG,EAAE,EAAEI,MAAM,EAAEH,QAAQ,CAAC;IAAC;EACpD;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAaI,sBAAsBA,CACjCL,EAAiB,EACjBC,QAA4B,EAC5BC,KAAmB,EACU;IAAA,OAAAC,iBAAA;MAC7B;MACA;MACA;MACA;MACA,IAAMG,SAAS,SAASJ,KAAK,CAACK,IAAI,CAAC,CAAC;MACpCD,SAAS,CAACE,kBAAkB,CAACN,KAAK,CAACO,aAAa,CAAC;MACjDH,SAAS,CAACI,WAAW,CAACR,KAAK,CAACS,MAAM,CAAC;MACnCL,SAAS,CAACM,SAAS,CAACV,KAAK,CAACW,IAAI,CAAC;MAE/B,OAAOb,EAAE,CAACc,IAAI,CAACC,MAAM,CAACC,MAAM,CAC1B,IAAIpB,UAAU,CAACI,EAAE,CAAC,CAACiB,kBAAkB,CAAChB,QAAQ,EAAEK,SAAS,CAC3D,CAAC;IAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAaY,SAASA,CACpBlB,EAAiB,EACjBC,QAAwC,EACxCG,MAA0B,EACL;IAAA,OAAAD,iBAAA;MACrB,OAAO,IAAIN,gBAAgB,CAACG,EAAE,EAAEI,MAAM,EAAEH,QAAQ,CAAC;IAAC;EACpD;AACF;AAEA,eAAeH,iBAAiB"}
@@ -1,5 +1,5 @@
1
- import { ReactNode } from 'react';
2
- import { ChartTheme } from './ChartTheme';
1
+ import { type ReactNode } from 'react';
2
+ import { type ChartTheme } from './ChartTheme';
3
3
  export type ChartThemeContextValue = ChartTheme;
4
4
  export declare const ChartThemeContext: import("react").Context<ChartTheme | null>;
5
5
  export interface ChartThemeProviderProps {
@@ -1 +1 @@
1
- {"version":3,"file":"ChartThemeProvider.d.ts","sourceRoot":"","sources":["../src/ChartThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,SAAS,EAAW,MAAM,OAAO,CAAC;AAE1D,OAA0B,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE7D,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC;AAEhD,eAAO,MAAM,iBAAiB,4CAE7B,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAKD,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,GACT,EAAE,uBAAuB,GAAG,GAAG,CAAC,OAAO,CAUvC"}
1
+ {"version":3,"file":"ChartThemeProvider.d.ts","sourceRoot":"","sources":["../src/ChartThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAW,MAAM,OAAO,CAAC;AAE/D,OAA0B,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAElE,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC;AAEhD,eAAO,MAAM,iBAAiB,4CAE7B,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAKD,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,GACT,EAAE,uBAAuB,GAAG,GAAG,CAAC,OAAO,CAUvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChartThemeProvider.js","names":["createContext","useMemo","useTheme","defaultChartTheme","jsx","_jsx","ChartThemeContext","ChartThemeProvider","_ref","children","activeThemes","chartTheme","Provider","value"],"sources":["../src/ChartThemeProvider.tsx"],"sourcesContent":["import { createContext, ReactNode, useMemo } from 'react';\nimport { useTheme } from '@deephaven/components';\nimport defaultChartTheme, { ChartTheme } from './ChartTheme';\n\nexport type ChartThemeContextValue = ChartTheme;\n\nexport const ChartThemeContext = createContext<ChartThemeContextValue | null>(\n null\n);\n\nexport interface ChartThemeProviderProps {\n children: ReactNode;\n}\n\n/*\n * Provides a chart theme based on the active themes from the ThemeProvider.\n */\nexport function ChartThemeProvider({\n children,\n}: ChartThemeProviderProps): JSX.Element {\n const { activeThemes } = useTheme();\n\n const chartTheme = useMemo(defaultChartTheme, [activeThemes]);\n\n return (\n <ChartThemeContext.Provider value={chartTheme}>\n {children}\n </ChartThemeContext.Provider>\n );\n}\n"],"mappings":"AAAA,SAASA,aAAa,EAAaC,OAAO,QAAQ,OAAO;AACzD,SAASC,QAAQ,QAAQ,uBAAuB;AAAC,OAC1CC,iBAAiB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAIxB,OAAO,IAAMC,iBAAiB,gBAAGN,aAAa,CAC5C,IACF,CAAC;AAMD;AACA;AACA;AACA,OAAO,SAASO,kBAAkBA,CAAAC,IAAA,EAEO;EAAA,IAFN;IACjCC;EACuB,CAAC,GAAAD,IAAA;EACxB,IAAM;IAAEE;EAAa,CAAC,GAAGR,QAAQ,CAAC,CAAC;EAEnC,IAAMS,UAAU,GAAGV,OAAO,CAACE,iBAAiB,EAAE,CAACO,YAAY,CAAC,CAAC;EAE7D,oBACEL,IAAA,CAACC,iBAAiB,CAACM,QAAQ;IAACC,KAAK,EAAEF,UAAW;IAAAF,QAAA,EAC3CA;EAAQ,CACiB,CAAC;AAEjC"}
1
+ {"version":3,"file":"ChartThemeProvider.js","names":["createContext","useMemo","useTheme","defaultChartTheme","jsx","_jsx","ChartThemeContext","ChartThemeProvider","_ref","children","activeThemes","chartTheme","Provider","value"],"sources":["../src/ChartThemeProvider.tsx"],"sourcesContent":["import { createContext, type ReactNode, useMemo } from 'react';\nimport { useTheme } from '@deephaven/components';\nimport defaultChartTheme, { type ChartTheme } from './ChartTheme';\n\nexport type ChartThemeContextValue = ChartTheme;\n\nexport const ChartThemeContext = createContext<ChartThemeContextValue | null>(\n null\n);\n\nexport interface ChartThemeProviderProps {\n children: ReactNode;\n}\n\n/*\n * Provides a chart theme based on the active themes from the ThemeProvider.\n */\nexport function ChartThemeProvider({\n children,\n}: ChartThemeProviderProps): JSX.Element {\n const { activeThemes } = useTheme();\n\n const chartTheme = useMemo(defaultChartTheme, [activeThemes]);\n\n return (\n <ChartThemeContext.Provider value={chartTheme}>\n {children}\n </ChartThemeContext.Provider>\n );\n}\n"],"mappings":"AAAA,SAASA,aAAa,EAAkBC,OAAO,QAAQ,OAAO;AAC9D,SAASC,QAAQ,QAAQ,uBAAuB;AAAC,OAC1CC,iBAAiB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAIxB,OAAO,IAAMC,iBAAiB,gBAAGN,aAAa,CAC5C,IACF,CAAC;AAMD;AACA;AACA;AACA,OAAO,SAASO,kBAAkBA,CAAAC,IAAA,EAEO;EAAA,IAFN;IACjCC;EACuB,CAAC,GAAAD,IAAA;EACxB,IAAM;IAAEE;EAAa,CAAC,GAAGR,QAAQ,CAAC,CAAC;EAEnC,IAAMS,UAAU,GAAGV,OAAO,CAACE,iBAAiB,EAAE,CAACO,YAAY,CAAC,CAAC;EAE7D,oBACEL,IAAA,CAACC,iBAAiB,CAACM,QAAQ;IAACC,KAAK,EAAEF,UAAW;IAAAF,QAAA,EAC3CA;EAAQ,CACiB,CAAC;AAEjC"}
@@ -1,8 +1,8 @@
1
- import { Formatter } from '@deephaven/jsapi-utils';
1
+ import { type Formatter } from '@deephaven/jsapi-utils';
2
2
  import type { dh as DhType } from '@deephaven/jsapi-types';
3
3
  import type { Layout, PlotData, PlotType, Axis as PlotlyAxis, ErrorBar, LayoutAxis, MarkerSymbol, Template } from 'plotly.js';
4
- import { Range } from '@deephaven/utils';
5
- import { ChartTheme } from './ChartTheme';
4
+ import { type Range } from '@deephaven/utils';
5
+ import { type ChartTheme } from './ChartTheme';
6
6
  export type FilterColumnMap = Map<string, {
7
7
  name: string;
8
8
  type: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ChartUtils.d.ts","sourceRoot":"","sources":["../src/ChartUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChartUtils.d.ts","sourceRoot":"","sources":["../src/ChartUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,SAAS,EAGf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,KAAK,EACV,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,IAAI,IAAI,UAAU,EAClB,QAAQ,EACR,UAAU,EAEV,YAAY,EACZ,QAAQ,EACT,MAAM,WAAW,CAAC;AACnB,OAAO,EAAiC,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,eAAe,GAAG,GAAG,CAC/B,MAAM,EACN;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CACF,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE7C,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,EAAE,CAAC;AAEtD,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC;AAEtE,MAAM,MAAM,oBAAoB,GAAG,CACjC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,KACrB,eAAe,CAAC;AAErB,KAAK,aAAa,GACd,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,WAAW,WAAY,SAAQ,QAAQ;IAC3C,MAAM,EAAE;QACN,OAAO,EAAE,UAAU,CAAC;QACpB,GAAG,EAAE,CAAC,CAAC;KACR,CAAC;CACH;AAED,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,EAAE,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAKD,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AACxE,KAAK,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;AAqDzE,cAAM,UAAU;IACd,MAAM,CAAC,iBAAiB,SAAQ;IAEhC,MAAM,CAAC,aAAa,SAAS;IAE7B,MAAM,CAAC,aAAa,SAAO;IAE3B,MAAM,CAAC,YAAY,SAAM;IAEzB,MAAM,CAAC,eAAe,SAAM;IAE5B,MAAM,CAAC,eAAe,SAAQ;IAE9B,MAAM,CAAC,WAAW;;;OAGN;IAEZ,MAAM,CAAC,WAAW,SAAgC;IAElD,MAAM,CAAC,cAAc;;;;;;OAAyD;IAE9E,MAAM,CAAC,qBAAqB;;OAA2B;IAEvD,MAAM,CAAC,oBAAoB,SAAM;IAEjC,MAAM,CAAC,mBAAmB,SAAK;IAE/B,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAa;IAElD,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAW;IAE9C;;;;;;;;OAQG;IACH,MAAM,CAAC,kBAAkB,CACvB,CAAC,EAAE,MAAM,EAAE,EACX,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,MAAM,EAAE,GACd,QAAQ;IAWX,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAIlD,MAAM,CAAC,qBAAqB,CAC1B,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACvC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;IAoD7B;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CACnB,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,EACtC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EACtB,UAAU,EAAE,OAAO,GAClB,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;IAqB7B;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,CACrB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EACxB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,GACrB,MAAM,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI;IActC;;;;;OAKG;IACH,MAAM,CAAC,mBAAmB,CACxB,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACrC,OAAO,GAAG,YAAY;IAWzB;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,MAAM,EAAE;IAOvE;;;OAGG;IACH,MAAM,CAAC,cAAc,CACnB,IAAI,EAAE,QAAQ,GAAG,SAAS,EAC1B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,EAClC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,OAAO,GAAG,IAAI,EAC1B,WAAW,GAAE,GAAG,GAAG,GAAqC,GACvD,OAAO,CAAC,QAAQ,CAAC;IAUpB;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY;IA4B5D;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;IAOjE;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,WAAW;IAK9D;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CACtB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAC1B,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,GACzB,MAAM,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI;IAe3B;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;IAiBxE,MAAM,CAAC,qBAAqB,CAC1B,YAAY,EAAE,GAAG,GAAG,GAAG,EACvB,SAAS,EAAE,MAAM,GAChB,aAAa;IAKhB;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAK9C;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EACpC,KAAK,EAAE,CAAC,EAAE,EACV,QAAQ,EAAE,CAAC,GACV,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAUjB;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS;IAgB5E,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM;IAU9D,OAAO,CAAC,EAAE,CAAgB;IAE1B,OAAO,CAAC,UAAU,CAAoB;gBAE1B,EAAE,EAAE,OAAO,MAAM;IAM7B;;;;;;OAMG;IACH,cAAc,CACZ,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAC1B,SAAS,EAAE,SAAS,GACnB,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAyG1C;;;;;OAKG;IACH,kBAAkB,CAChB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,EACtC,cAAc,EAAE,OAAO,EACvB,UAAU,UAAO,GAChB,QAAQ,GAAG,SAAS;IA+BvB;;;;;OAKG;IACH,kBAAkB,CAChB,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,EACtC,eAAe,CAAC,EAAE,OAAO,GAAG,IAAI,EAChC,gBAAgB,CAAC,EAAE,OAAO,GAAG,IAAI,GAChC,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS;IAgC/B;;;;OAIG;IACH,iBAAiB,CACf,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,EACtC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,GACjC,MAAM;IAqFT,0BAA0B,CACxB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,GACzB,GAAG,GAAG,GAAG,GAAG,SAAS;IAUxB;;;;;;OAMG;IACH,wBAAwB,CACtB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAC1B,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,OAAO,GAAG,YAAY,EACxC,UAAU,GAAE,OAAO,GAAG,IAAW,EACjC,UAAU,UAAO,GAChB,OAAO,CAAC,QAAQ,CAAC;IA8CpB,sBAAsB,CACpB,eAAe,EAAE,OAAO,CAAC,QAAQ,CAAC,EAClC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,EACtC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,EACvC,WAAW,EAAE,WAAW,GACvB,IAAI;IAwBP,sBAAsB,CACpB,eAAe,EAAE,OAAO,CAAC,QAAQ,CAAC,EAClC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,EACtC,SAAS,GAAE,MAAM,GAAG,IAAW,EAC/B,UAAU,GAAE,MAAM,GAAG,IAAW,EAChC,KAAK,GAAE,MAAM,GAAG,IAAW,EAC3B,SAAS,GAAE,MAAM,GAAG,IAAW,EAC/B,gBAAgB,GAAE,YAAY,GAAG,OAAO,GAAG,IAAW,GACrD,IAAI;IA8DP,YAAY,CACV,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,EACtC,cAAc,EAAE,OAAO,EACvB,UAAU,UAAO,GAChB,QAAQ,GAAG,SAAS;IAYvB;;;OAGG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI;IAYrE;;;OAGG;IACH,WAAW,CACT,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,GACrC,UAAU,CAAC,MAAM,CAAC,GAAG,SAAS;IAgBjC;;;;;;;OAOG;IACH,gBAAgB,CACd,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,EAC5B,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAC1B,oBAAoB,CAAC,EAAE,oBAAoB,EAC3C,SAAS,SAAI,EACb,UAAU,SAAI,GACb,IAAI;IAqBP,cAAc,CACZ,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAC1B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,WAAW;IA6Cd,mBAAmB,CACjB,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GACvC,OAAO,CAAC,UAAU,CAAC;IAwDtB;;;;OAIG;IACH,mBAAmB,CACjB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EACpC,SAAS,GAAE,SAAS,GAAG,IAAW,GACjC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;IAqC7B;;;;;;;;;;;;OAYG;IACH,gBAAgB,CACd,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,EAC5B,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAC7B,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAC9B,SAAS,SAAI,EACb,UAAU,SAAI,EACd,MAAM,GAAE,WAAsD,EAC9D,eAAe,CAAC,EAAE,eAAe,GAChC,IAAI;IA6FP;;;;OAIG;IACH,eAAe,CACb,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,EAC5B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GACvB,IAAI;IA6BP;;;;;;;;OAQG;IACH,gBAAgB,CACd,eAAe,EAAE,OAAO,CAAC,UAAU,CAAC,EACpC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EACtB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;KACf,GACA,IAAI;IAwEP;;;;;;;OAOG;IACH,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE;IAiCrD;;;;;;OAMG;IACH,kCAAkC,CAChC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,EACnC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,GACvC,WAAW,EAAE;IAwBhB;;;;;;OAMG;IACH,iBAAiB,CACf,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAChC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,GACvC,MAAM;IAQT;;;;;;;OAOG;IACH,oBAAoB,CAClB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,EAChC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,GACvC;QACD,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,EAAE;IAsCH;;;;;;OAMG;IACH,qBAAqB,CACnB,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,GACvC,MAAM;IAaT;;;;;;;;;;;OAWG;IACH,kBAAkB,CAChB,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,MAAM,CAAC,KAAK,GAClB;QACD,MAAM,EAAE;YACN,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE;gBAAE,UAAU,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAC;gBAAC,QAAQ,EAAE,MAAM,CAAA;aAAE,EAAE,CAAC;YAC/D,MAAM,EAAE;gBACN,SAAS,EAAE,MAAM,CAAC;gBAClB,IAAI,EAAE,MAAM,CAAC;gBACb,WAAW,EAAE;oBACX,IAAI,EAAE,MAAM,CAAC;oBACb,UAAU,EAAE,MAAM,CAAC;oBACnB,IAAI,EAAE;wBAAE,UAAU,EAAE,MAAM,CAAC;wBAAC,IAAI,EAAE,MAAM,CAAC;wBAAC,QAAQ,EAAE,MAAM,CAAA;qBAAE,CAAC;oBAC7D,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;iBACrB,EAAE,CAAC;aACL,EAAE,CAAC;SACL,EAAE,CAAC;QACJ,KAAK,EAAE,MAAM,CAAC;KACf;IA4CD;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,OAAO;IAmBrE;;;;;OAKG;IACH,SAAS,CACP,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,GAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAW,GAC3C,OAAO;IAqCV,cAAc,CACZ,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,EACjC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,GACzB,OAAO,CAAC,UAAU,CAAC;IAwCtB;;;;;OAKG;IACH,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,QAAQ;IAkDhD;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IA0ErD;;;OAGG;IACH,eAAe,CACb,QAAQ,EAAE,kBAAkB,GAC3B,IAAI,CAAC,kBAAkB,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAA;KAAE;CAU7E;AAED,eAAe,UAAU,CAAC"}