@deephaven/chart 1.30.0 → 1.30.1-plotly-v4.888ad98.0.sha-888ad98

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.
Files changed (37) hide show
  1. package/dist/Chart.d.ts.map +1 -1
  2. package/dist/Chart.js +2 -5
  3. package/dist/Chart.js.map +1 -1
  4. package/dist/ChartModel.d.ts +3 -2
  5. package/dist/ChartModel.d.ts.map +1 -1
  6. package/dist/ChartModel.js.map +1 -1
  7. package/dist/ChartUtils.d.ts +5 -4
  8. package/dist/ChartUtils.d.ts.map +1 -1
  9. package/dist/ChartUtils.js +2 -0
  10. package/dist/ChartUtils.js.map +1 -1
  11. package/dist/FigureChartModel.d.ts +4 -3
  12. package/dist/FigureChartModel.d.ts.map +1 -1
  13. package/dist/FigureChartModel.js.map +1 -1
  14. package/dist/MockChartModel.d.ts +4 -3
  15. package/dist/MockChartModel.d.ts.map +1 -1
  16. package/dist/MockChartModel.js.map +1 -1
  17. package/dist/index.d.ts +1 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +1 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/plotly/LazyPlot.d.ts +1 -1
  22. package/dist/plotly/LazyPlot.d.ts.map +1 -1
  23. package/dist/plotly/Plot.d.ts +1 -1
  24. package/dist/plotly/Plotly.d.ts.map +1 -1
  25. package/dist/plotly/Plotly.js +1 -8
  26. package/dist/plotly/Plotly.js.map +1 -1
  27. package/dist/plotly/createPlotlyComponent.d.ts +1 -2
  28. package/dist/plotly/createPlotlyComponent.d.ts.map +1 -1
  29. package/dist/plotly/createPlotlyComponent.js +1 -1
  30. package/dist/plotly/createPlotlyComponent.js.map +1 -1
  31. package/dist/plotly/plotly-extends.d.js +0 -4
  32. package/dist/plotly/plotly-extends.d.js.map +1 -1
  33. package/dist/plotly/plotlyTypes.d.ts +28 -0
  34. package/dist/plotly/plotlyTypes.d.ts.map +1 -0
  35. package/dist/plotly/plotlyTypes.js +2 -0
  36. package/dist/plotly/plotlyTypes.js.map +1 -0
  37. package/package.json +15 -16
@@ -1 +1 @@
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;AAGhC,OAAO,EAOL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,WAAW,CAAC;AAKnB,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,2BAA2B,CAAC,EAAE,6BAA6B,CAAC;IAC5D,2BAA2B,CAAC,EAAE,6BAA6B,CAAC;IAC5D,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;IAEnE;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC9D,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACzD,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC;IAC5E,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,oBAAoB,CAAC,KAAK,IAAI,CAAC;IACzE,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,KAAK,OAAO,CAAC;IACpE,yBAAyB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,KAAK,OAAO,CAAC;IAC1E,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;CAC7D;AAID,UAAU,mBAAoB,SAAQ,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACtE,KAAK,EAAE,UAAU,CAAC;CACnB;AAkzBD,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;AAGhC,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,WAAW,CAAC;AAKnB,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAErC,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,2BAA2B,CAAC,EAAE,6BAA6B,CAAC;IAC5D,2BAA2B,CAAC,EAAE,6BAA6B,CAAC;IAC5D,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;IAEnE;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC9D,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACzD,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,kBAAkB,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC;IAC5E,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,uBAAuB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,oBAAoB,CAAC,KAAK,IAAI,CAAC;IACzE,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,KAAK,OAAO,CAAC;IACpE,yBAAyB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,CAAC,KAAK,OAAO,CAAC;IAC1E,wBAAwB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;CAC7D;AAID,UAAU,mBAAoB,SAAQ,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACtE,KAAK,EAAE,UAAU,CAAC;CACnB;AA6yBD,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,KAAK,EAAE,mBAAmB,GACzB,GAAG,CAAC,OAAO,CAIb"}
package/dist/Chart.js CHANGED
@@ -603,7 +603,7 @@ class Chart extends Component {
603
603
  if (this.plot.current != null && rect != null && rect.width > 0 && rect.height > 0) {
604
604
  // Call relayout to resize avoiding the debouncing plotly does
605
605
  // https://github.com/plotly/plotly.js/issues/2769#issuecomment-402099552
606
- PlotlyProp.relayout(this.plot.current.el, {
606
+ PlotlyProp.relayout(this.plot.current, {
607
607
  autosize: true
608
608
  }).catch(e => {
609
609
  log.debug('Unable to resize, promise rejected', e);
@@ -660,10 +660,7 @@ class Chart extends Component {
660
660
  return /*#__PURE__*/_jsxs("div", {
661
661
  className: "h-100 w-100 chart-wrapper",
662
662
  ref: this.plotWrapperMerged,
663
- children: [isPlotShown && /*#__PURE__*/_jsx(PlotComponent
664
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
665
- // @ts-ignore
666
- , {
663
+ children: [isPlotShown && /*#__PURE__*/_jsx(PlotComponent, {
667
664
  ref: this.plot,
668
665
  data: data,
669
666
  layout: layout,
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","_faIcon$icon","_slicedToArray","icon","width","path","stringPath","concat","ascent","descent","transform","downsampleButtonTitle","isDownsampleInProgress","isDownsamplingDisabled","downsampleButtonAttr","undefined","constructor","props","_defineProperty","downsamplingError","isDownsampleFinished","data","error","hasSelectionCallbacks","customButtons","hasDownsampleError","Boolean","push","name","title","click","toggleErrorMessage","attr","hasError","handleDownsampleClick","has2D","some","_ref","type","includes","has3D","_ref2","interactionButtons","dimensionButtons","alwaysShowModeBar","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","shownBlocker","componentDidMount","updateDimensions","updateModelDimensions","initData","initFormatter","_this$props","isActive","model","subscribe","current","observe","handleThemeChange","componentDidUpdate","prevProps","_this$props2","settings","theme","onPlotElementChange","updateFormatterSettings","_prevProps$onPlotElem","call","unsubscribe","plotElement","componentWillUnmount","disconnect","getPlotRect","_this$plotWrapper$cur","_this$plotWrapper$cur2","getBoundingClientRect","setState","_ref3","getData","_objectSpread","getLayout","rect","height","debug2","handleModelEvent","handleAfterPlot","handlePlotInitialized","_figure","graphDiv","handlePlotPurge","_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","_message","message","onError","EVENT_ERROR","Error","EVENT_BLOCKER","blocker","EVENT_BLOCKER_CLEAR","EVENT_LAYOUT_UPDATED","newLayout","_ref5","debug","handlePlotUpdate","figure","ranges","getLayoutRanges","isRangesChanged","handleRelayout","changes","hiddenlabels","onSettingsChanged","hiddenSeries","onPlotlyRelayout","handleClick","onPlotlyClick","handleDoubleClick","onPlotlyDoubleClick","handleSelected","onPlotlySelected","handleDeselect","onPlotlyDeselect","handleClickAnnotation","onPlotlyClickAnnotation","handleLegendClick","_onPlotlyLegendClick","onPlotlyLegendClick","handleLegendDoubleClick","_onPlotlyLegendDouble","onPlotlyLegendDoubleClick","handleWebGlContextLost","onPlotlyWebGlContextLost","handleRestyle","_ref6","_ref7","seriesIndexes","Object","keys","reduce","acc","_ref8","visible","_this$props3","dh","chartUtils","_ref9","template","makeDefaultTemplate","_ref0","force","arguments","length","warn","isRectChanged","_this$props4","setDimensions","getColumnFormats","getDateTimeFormatterOptions","_settings$defaultDeci","defaultDecimalFormatOptions","_settings$defaultInte","defaultIntegerFormatOptions","updateFormatter","webgl","updateRenderOptions","formatter","setFormatter","renderOptions","setRenderOptions","PlotlyProp","relayout","el","autosize","catch","e","render","_this$state","config","getCachedConfig","isPlotShown","errorOverlay","errorMessage","onConfirm","fireBlockerClear","onDiscard","className","ref","children","onAfterPlot","onInitialized","onPurge","onRelayout","onRestyle","onClick","onDoubleClick","onSelected","onDeselect","onClickAnnotation","onLegendClick","onLegendDoubleClick","onWebGlContextLost","style","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 type { dh as DhType } from '@deephaven/jsapi-types';\nimport {\n type Config as PlotlyConfig,\n type Layout,\n type Icon,\n type Data,\n type PlotData,\n type ModeBarButtonAny,\n type PlotMouseEvent,\n type PlotSelectionEvent,\n type ClickAnnotationEvent,\n type LegendClickEvent,\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 defaultDecimalFormatOptions?: DecimalColumnFormatterOptions;\n defaultIntegerFormatOptions?: 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 * Optional Plotly event handlers. When provided, they are forwarded to the\n * underlying Plotly component.\n */\n onPlotlyRelayout?: (changes: Record<string, unknown>) => void;\n onPlotlyClick?: (data: Readonly<PlotMouseEvent>) => void;\n onPlotlyDoubleClick?: () => void;\n onPlotlySelected?: (data: Readonly<PlotSelectionEvent> | undefined) => void;\n onPlotlyDeselect?: () => void;\n onPlotlyClickAnnotation?: (data: Readonly<ClickAnnotationEvent>) => void;\n onPlotlyLegendClick?: (data: Readonly<LegendClickEvent>) => boolean;\n onPlotlyLegendDoubleClick?: (data: Readonly<LegendClickEvent>) => boolean;\n onPlotlyWebGlContextLost?: () => void;\n\n /**\n * Called with the Plotly graph div element once Plotly has initialized, and\n * with null when it is purged. Consumers can use this to attach imperative\n * event listeners that Plotly's React props don't expose.\n */\n onPlotElementChange?: (element: HTMLElement | null) => 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 that doesn't completely block the chart from rendering */\n error: unknown;\n shownError: string | null;\n layout: Partial<Layout>;\n revision: number;\n\n /** A message that blocks the chart from rendering. It can be bypassed by the user to continue rendering. */\n shownBlocker: string | null;\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 shownBlocker: null,\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, onPlotElementChange } =\n this.props;\n this.updateFormatterSettings(settings);\n\n if (model !== prevProps.model) {\n prevProps.onPlotElementChange?.(null);\n this.unsubscribe(prevProps.model);\n onPlotElementChange?.(this.plotElement);\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?: readonly FormattingRule[];\n\n dateTimeFormatterOptions?: DateTimeColumnFormatterOptions;\n\n decimalFormatOptions: DecimalColumnFormatterOptions;\n\n integerFormatOptions: IntegerColumnFormatterOptions;\n\n webgl?: boolean;\n\n plotElement: HTMLElement | null = null;\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 hasSelectionCallbacks: boolean\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 // zoom2d and pan2d work for both 2D and 3D charts\n const interactionButtons: ModeBarButtonAny[] = [\n 'zoom2d',\n 'pan2d',\n ...(hasSelectionCallbacks && has2D ? ['select2d', 'lasso2d'] : []),\n ] as ModeBarButtonAny[];\n\n const dimensionButtons: ModeBarButtonAny[] = [\n ...(has2D\n ? ['zoomIn2d', 'zoomOut2d', 'autoScale2d', 'resetScale2d']\n : []),\n ...(has3D\n ? ['orbitRotation', 'tableRotation', 'resetCameraDefault3d']\n : []),\n ] as ModeBarButtonAny[];\n\n // Display the mode bar persistently 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 const alwaysShowModeBar =\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n isDownsampleInProgress || hasDownsampleError || hasError;\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 displayModeBar: alwaysShowModeBar ? true : ('hover' as const),\n\n // Each array gets grouped together in the mode bar\n modeBarButtons: [\n customButtons,\n ['toImage'],\n interactionButtons,\n dimensionButtons,\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\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 handlePlotInitialized(_figure: unknown, graphDiv: HTMLElement): void {\n // Provide the actual Plotly graph div to consumers so they can attach\n // imperative event listeners (needed for some events that Plotly doesn't\n // support in react-plotly.js)\n this.plotElement = graphDiv;\n const { onPlotElementChange } = this.props;\n onPlotElementChange?.(graphDiv);\n }\n\n handlePlotPurge(): void {\n this.plotElement = null;\n const { onPlotElementChange } = this.props;\n onPlotElementChange?.(null);\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: DhType.Event<unknown>): 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 as Partial<Data>[] | null,\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 =\n (detail as { message?: string }).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(\n new DownsamplingError(\n downsamplingError == null ? undefined : `${downsamplingError}`\n )\n );\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 case ChartModel.EVENT_BLOCKER: {\n const blocker = `${detail}`;\n this.setState({ shownBlocker: blocker });\n break;\n }\n case ChartModel.EVENT_BLOCKER_CLEAR: {\n this.setState({ shownBlocker: null });\n break;\n }\n case ChartModel.EVENT_LAYOUT_UPDATED: {\n const newLayout = detail as Partial<Layout>;\n this.setState(({ layout, revision }) => ({\n layout: { ...layout, ...newLayout },\n revision: revision + 1,\n }));\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 const { onPlotlyRelayout } = this.props;\n onPlotlyRelayout?.(changes);\n }\n\n handleClick(data: Readonly<PlotMouseEvent>): void {\n const { onPlotlyClick } = this.props;\n onPlotlyClick?.(data);\n }\n\n handleDoubleClick(): void {\n const { onPlotlyDoubleClick } = this.props;\n onPlotlyDoubleClick?.();\n }\n\n handleSelected(data: Readonly<PlotSelectionEvent> | undefined): void {\n const { onPlotlySelected } = this.props;\n onPlotlySelected?.(data);\n }\n\n handleDeselect(): void {\n const { onPlotlyDeselect } = this.props;\n onPlotlyDeselect?.();\n }\n\n handleClickAnnotation(data: Readonly<ClickAnnotationEvent>): void {\n const { onPlotlyClickAnnotation } = this.props;\n onPlotlyClickAnnotation?.(data);\n }\n\n handleLegendClick(data: Readonly<LegendClickEvent>): boolean {\n const { onPlotlyLegendClick } = this.props;\n return onPlotlyLegendClick?.(data) ?? true;\n }\n\n handleLegendDoubleClick(data: Readonly<LegendClickEvent>): boolean {\n const { onPlotlyLegendDoubleClick } = this.props;\n return onPlotlyLegendDoubleClick?.(data) ?? true;\n }\n\n handleWebGlContextLost(): void {\n const { onPlotlyWebGlContextLost } = this.props;\n onPlotlyWebGlContextLost?.();\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 {\n defaultDecimalFormatOptions = {},\n defaultIntegerFormatOptions = {},\n } = settings;\n\n if (\n !deepEqual(this.columnFormats, columnFormats) ||\n !deepEqual(this.dateTimeFormatterOptions, dateTimeFormatterOptions) ||\n !deepEqual(this.decimalFormatOptions, defaultDecimalFormatOptions) ||\n !deepEqual(this.integerFormatOptions, defaultIntegerFormatOptions)\n ) {\n this.columnFormats = FormatterUtils.getColumnFormats(settings);\n this.dateTimeFormatterOptions = dateTimeFormatterOptions;\n this.decimalFormatOptions = defaultDecimalFormatOptions;\n this.integerFormatOptions = defaultIntegerFormatOptions;\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 shownBlocker,\n } = this.state;\n const { model } = this.props;\n const config = this.getCachedConfig(\n downsamplingError,\n isDownsampleFinished,\n isDownsampleInProgress,\n isDownsamplingDisabled,\n data ?? [],\n error,\n model.hasSelectionCallbacks()\n );\n const isPlotShown = data != null && shownBlocker == null;\n\n let errorOverlay: React.ReactNode = null;\n if (shownBlocker != null) {\n errorOverlay = (\n <ChartErrorOverlay\n errorMessage={`${shownBlocker}`}\n onConfirm={() => {\n model.fireBlockerClear();\n }}\n />\n );\n } else if (shownError != null) {\n errorOverlay = (\n <ChartErrorOverlay\n errorMessage={`${downsamplingError}`}\n onDiscard={() => {\n this.handleDownsampleErrorClose();\n }}\n onConfirm={() => {\n this.handleDownsampleErrorClose();\n this.handleDownsampleClick();\n }}\n />\n );\n } else if (downsamplingError != null) {\n errorOverlay = (\n <ChartErrorOverlay\n errorMessage={`${downsamplingError}`}\n onDiscard={() => {\n this.handleDownsampleErrorClose();\n }}\n onConfirm={() => {\n this.handleDownsampleErrorClose();\n this.handleDownsampleClick();\n }}\n />\n );\n }\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 onInitialized={this.handlePlotInitialized}\n onPurge={this.handlePlotPurge}\n onRelayout={this.handleRelayout}\n onUpdate={this.handlePlotUpdate}\n onRestyle={this.handleRestyle}\n onClick={this.handleClick}\n onDoubleClick={this.handleDoubleClick}\n onSelected={this.handleSelected}\n onDeselect={this.handleDeselect}\n onClickAnnotation={this.handleClickAnnotation}\n onLegendClick={this.handleLegendClick}\n onLegendDoubleClick={this.handleLegendDoubleClick}\n onWebGlContextLost={this.handleWebGlContextLost}\n style={{ height: '100%', width: '100%' }}\n />\n )}\n {errorOverlay}\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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","ignoreList":[]}
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","_faIcon$icon","_slicedToArray","icon","width","path","stringPath","concat","ascent","descent","transform","downsampleButtonTitle","isDownsampleInProgress","isDownsamplingDisabled","downsampleButtonAttr","undefined","constructor","props","_defineProperty","downsamplingError","isDownsampleFinished","data","error","hasSelectionCallbacks","customButtons","hasDownsampleError","Boolean","push","name","title","click","toggleErrorMessage","attr","hasError","handleDownsampleClick","has2D","some","_ref","type","includes","has3D","_ref2","interactionButtons","dimensionButtons","alwaysShowModeBar","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","shownBlocker","componentDidMount","updateDimensions","updateModelDimensions","initData","initFormatter","_this$props","isActive","model","subscribe","current","observe","handleThemeChange","componentDidUpdate","prevProps","_this$props2","settings","theme","onPlotElementChange","updateFormatterSettings","_prevProps$onPlotElem","call","unsubscribe","plotElement","componentWillUnmount","disconnect","getPlotRect","_this$plotWrapper$cur","_this$plotWrapper$cur2","getBoundingClientRect","setState","_ref3","getData","_objectSpread","getLayout","rect","height","debug2","handleModelEvent","handleAfterPlot","handlePlotInitialized","_figure","graphDiv","handlePlotPurge","_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","_message","message","onError","EVENT_ERROR","Error","EVENT_BLOCKER","blocker","EVENT_BLOCKER_CLEAR","EVENT_LAYOUT_UPDATED","newLayout","_ref5","debug","handlePlotUpdate","figure","ranges","getLayoutRanges","isRangesChanged","handleRelayout","changes","hiddenlabels","onSettingsChanged","hiddenSeries","onPlotlyRelayout","handleClick","onPlotlyClick","handleDoubleClick","onPlotlyDoubleClick","handleSelected","onPlotlySelected","handleDeselect","onPlotlyDeselect","handleClickAnnotation","onPlotlyClickAnnotation","handleLegendClick","_onPlotlyLegendClick","onPlotlyLegendClick","handleLegendDoubleClick","_onPlotlyLegendDouble","onPlotlyLegendDoubleClick","handleWebGlContextLost","onPlotlyWebGlContextLost","handleRestyle","_ref6","_ref7","seriesIndexes","Object","keys","reduce","acc","_ref8","visible","_this$props3","dh","chartUtils","_ref9","template","makeDefaultTemplate","_ref0","force","arguments","length","warn","isRectChanged","_this$props4","setDimensions","getColumnFormats","getDateTimeFormatterOptions","_settings$defaultDeci","defaultDecimalFormatOptions","_settings$defaultInte","defaultIntegerFormatOptions","updateFormatter","webgl","updateRenderOptions","formatter","setFormatter","renderOptions","setRenderOptions","PlotlyProp","relayout","autosize","catch","e","render","_this$state","config","getCachedConfig","isPlotShown","errorOverlay","errorMessage","onConfirm","fireBlockerClear","onDiscard","className","ref","children","onAfterPlot","onInitialized","onPurge","onRelayout","onRestyle","onClick","onDoubleClick","onSelected","onDeselect","onClickAnnotation","onLegendClick","onLegendDoubleClick","onWebGlContextLost","style","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 type { dh as DhType } from '@deephaven/jsapi-types';\nimport {\n type Config as PlotlyConfig,\n type Layout,\n type Icon,\n type ModeBarButtonAny,\n type PlotMouseEvent,\n type PlotSelectionEvent,\n type ClickAnnotationEvent,\n type LegendClickEvent,\n} from 'plotly.js';\nimport type { Figure } 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 { type PlotData } from './plotly/plotlyTypes';\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 defaultDecimalFormatOptions?: DecimalColumnFormatterOptions;\n defaultIntegerFormatOptions?: 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 * Optional Plotly event handlers. When provided, they are forwarded to the\n * underlying Plotly component.\n */\n onPlotlyRelayout?: (changes: Record<string, unknown>) => void;\n onPlotlyClick?: (data: Readonly<PlotMouseEvent>) => void;\n onPlotlyDoubleClick?: () => void;\n onPlotlySelected?: (data: Readonly<PlotSelectionEvent> | undefined) => void;\n onPlotlyDeselect?: () => void;\n onPlotlyClickAnnotation?: (data: Readonly<ClickAnnotationEvent>) => void;\n onPlotlyLegendClick?: (data: Readonly<LegendClickEvent>) => boolean;\n onPlotlyLegendDoubleClick?: (data: Readonly<LegendClickEvent>) => boolean;\n onPlotlyWebGlContextLost?: () => void;\n\n /**\n * Called with the Plotly graph div element once Plotly has initialized, and\n * with null when it is purged. Consumers can use this to attach imperative\n * event listeners that Plotly's React props don't expose.\n */\n onPlotElementChange?: (element: HTMLElement | null) => 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<PlotData>[] | 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 that doesn't completely block the chart from rendering */\n error: unknown;\n shownError: string | null;\n layout: Partial<Layout>;\n revision: number;\n\n /** A message that blocks the chart from rendering. It can be bypassed by the user to continue rendering. */\n shownBlocker: string | null;\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 shownBlocker: null,\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, onPlotElementChange } =\n this.props;\n this.updateFormatterSettings(settings);\n\n if (model !== prevProps.model) {\n prevProps.onPlotElementChange?.(null);\n this.unsubscribe(prevProps.model);\n onPlotElementChange?.(this.plotElement);\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: ReturnType<typeof createPlotlyComponent>;\n\n plot: RefObject<HTMLDivElement>;\n\n plotWrapper: RefObject<HTMLDivElement>;\n\n plotWrapperMerged: React.RefCallback<HTMLDivElement>;\n\n columnFormats?: readonly FormattingRule[];\n\n dateTimeFormatterOptions?: DateTimeColumnFormatterOptions;\n\n decimalFormatOptions: DecimalColumnFormatterOptions;\n\n integerFormatOptions: IntegerColumnFormatterOptions;\n\n webgl?: boolean;\n\n plotElement: HTMLElement | null = null;\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<PlotData>[],\n error: unknown,\n hasSelectionCallbacks: boolean\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 // zoom2d and pan2d work for both 2D and 3D charts\n const interactionButtons: ModeBarButtonAny[] = [\n 'zoom2d',\n 'pan2d',\n ...(hasSelectionCallbacks && has2D ? ['select2d', 'lasso2d'] : []),\n ] as ModeBarButtonAny[];\n\n const dimensionButtons: ModeBarButtonAny[] = [\n ...(has2D\n ? ['zoomIn2d', 'zoomOut2d', 'autoScale2d', 'resetScale2d']\n : []),\n ...(has3D\n ? ['orbitRotation', 'tableRotation', 'resetCameraDefault3d']\n : []),\n ] as ModeBarButtonAny[];\n\n // Display the mode bar persistently 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 const alwaysShowModeBar =\n // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n isDownsampleInProgress || hasDownsampleError || hasError;\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 displayModeBar: alwaysShowModeBar ? true : ('hover' as const),\n\n // Each array gets grouped together in the mode bar\n modeBarButtons: [\n customButtons,\n ['toImage'],\n interactionButtons,\n dimensionButtons,\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\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 handlePlotInitialized(_figure: unknown, graphDiv: HTMLElement): void {\n // Provide the actual Plotly graph div to consumers so they can attach\n // imperative event listeners (needed for some events that Plotly doesn't\n // support in react-plotly.js)\n this.plotElement = graphDiv;\n const { onPlotElementChange } = this.props;\n onPlotElementChange?.(graphDiv);\n }\n\n handlePlotPurge(): void {\n this.plotElement = null;\n const { onPlotElementChange } = this.props;\n onPlotElementChange?.(null);\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: DhType.Event<unknown>): 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 as Partial<PlotData>[] | null,\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 =\n (detail as { message?: string }).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(\n new DownsamplingError(\n downsamplingError == null ? undefined : `${downsamplingError}`\n )\n );\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 case ChartModel.EVENT_BLOCKER: {\n const blocker = `${detail}`;\n this.setState({ shownBlocker: blocker });\n break;\n }\n case ChartModel.EVENT_BLOCKER_CLEAR: {\n this.setState({ shownBlocker: null });\n break;\n }\n case ChartModel.EVENT_LAYOUT_UPDATED: {\n const newLayout = detail as Partial<Layout>;\n this.setState(({ layout, revision }) => ({\n layout: { ...layout, ...newLayout },\n revision: revision + 1,\n }));\n break;\n }\n default:\n log.debug('Unknown event type', type, event);\n }\n }\n\n handlePlotUpdate(figure: Readonly<Figure>): 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.layout as Partial<Layout>;\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 const { onPlotlyRelayout } = this.props;\n onPlotlyRelayout?.(changes);\n }\n\n handleClick(data: Readonly<PlotMouseEvent>): void {\n const { onPlotlyClick } = this.props;\n onPlotlyClick?.(data);\n }\n\n handleDoubleClick(): void {\n const { onPlotlyDoubleClick } = this.props;\n onPlotlyDoubleClick?.();\n }\n\n handleSelected(data: Readonly<PlotSelectionEvent> | undefined): void {\n const { onPlotlySelected } = this.props;\n onPlotlySelected?.(data);\n }\n\n handleDeselect(): void {\n const { onPlotlyDeselect } = this.props;\n onPlotlyDeselect?.();\n }\n\n handleClickAnnotation(data: Readonly<ClickAnnotationEvent>): void {\n const { onPlotlyClickAnnotation } = this.props;\n onPlotlyClickAnnotation?.(data);\n }\n\n handleLegendClick(data: Readonly<LegendClickEvent>): boolean {\n const { onPlotlyLegendClick } = this.props;\n return onPlotlyLegendClick?.(data) ?? true;\n }\n\n handleLegendDoubleClick(data: Readonly<LegendClickEvent>): boolean {\n const { onPlotlyLegendDoubleClick } = this.props;\n return onPlotlyLegendDoubleClick?.(data) ?? true;\n }\n\n handleWebGlContextLost(): void {\n const { onPlotlyWebGlContextLost } = this.props;\n onPlotlyWebGlContextLost?.();\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.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 {\n defaultDecimalFormatOptions = {},\n defaultIntegerFormatOptions = {},\n } = settings;\n\n if (\n !deepEqual(this.columnFormats, columnFormats) ||\n !deepEqual(this.dateTimeFormatterOptions, dateTimeFormatterOptions) ||\n !deepEqual(this.decimalFormatOptions, defaultDecimalFormatOptions) ||\n !deepEqual(this.integerFormatOptions, defaultIntegerFormatOptions)\n ) {\n this.columnFormats = FormatterUtils.getColumnFormats(settings);\n this.dateTimeFormatterOptions = dateTimeFormatterOptions;\n this.decimalFormatOptions = defaultDecimalFormatOptions;\n this.integerFormatOptions = defaultIntegerFormatOptions;\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(this.plot.current, {\n autosize: true,\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 shownBlocker,\n } = this.state;\n const { model } = this.props;\n const config = this.getCachedConfig(\n downsamplingError,\n isDownsampleFinished,\n isDownsampleInProgress,\n isDownsamplingDisabled,\n data ?? [],\n error,\n model.hasSelectionCallbacks()\n );\n const isPlotShown = data != null && shownBlocker == null;\n\n let errorOverlay: React.ReactNode = null;\n if (shownBlocker != null) {\n errorOverlay = (\n <ChartErrorOverlay\n errorMessage={`${shownBlocker}`}\n onConfirm={() => {\n model.fireBlockerClear();\n }}\n />\n );\n } else if (shownError != null) {\n errorOverlay = (\n <ChartErrorOverlay\n errorMessage={`${downsamplingError}`}\n onDiscard={() => {\n this.handleDownsampleErrorClose();\n }}\n onConfirm={() => {\n this.handleDownsampleErrorClose();\n this.handleDownsampleClick();\n }}\n />\n );\n } else if (downsamplingError != null) {\n errorOverlay = (\n <ChartErrorOverlay\n errorMessage={`${downsamplingError}`}\n onDiscard={() => {\n this.handleDownsampleErrorClose();\n }}\n onConfirm={() => {\n this.handleDownsampleErrorClose();\n this.handleDownsampleClick();\n }}\n />\n );\n }\n\n return (\n <div className=\"h-100 w-100 chart-wrapper\" ref={this.plotWrapperMerged}>\n {isPlotShown && (\n <PlotComponent\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 onInitialized={this.handlePlotInitialized}\n onPurge={this.handlePlotPurge}\n onRelayout={this.handleRelayout}\n onUpdate={this.handlePlotUpdate}\n onRestyle={this.handleRestyle}\n onClick={this.handleClick}\n onDoubleClick={this.handleDoubleClick}\n onSelected={this.handleSelected}\n onDeselect={this.handleDeselect}\n onClickAnnotation={this.handleClickAnnotation}\n onLegendClick={this.handleLegendClick}\n onLegendDoubleClick={this.handleLegendDoubleClick}\n onWebGlContextLost={this.handleWebGlContextLost}\n style={{ height: '100%', width: '100%' }}\n />\n )}\n {errorOverlay}\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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","ignoreList":[]}
@@ -1,7 +1,8 @@
1
1
  import type { dh as DhType } from '@deephaven/jsapi-types';
2
2
  import { type Formatter } from '@deephaven/jsapi-utils';
3
- import type { Layout, Data } from 'plotly.js';
3
+ import type { Layout } from 'plotly.js';
4
4
  import { type FilterColumnMap, type FilterMap } from './ChartUtils';
5
+ import { type PlotData } from './plotly/plotlyTypes';
5
6
  export type ChartEvent = DhType.Event<unknown>;
6
7
  export interface FigureUpdateEventData {
7
8
  series: DhType.plot.Series[];
@@ -38,7 +39,7 @@ declare class ChartModel {
38
39
  rect?: DOMRect;
39
40
  isDownsamplingDisabled: boolean;
40
41
  title?: string;
41
- getData(): Partial<Data>[];
42
+ getData(): Partial<PlotData>[];
42
43
  getDefaultTitle(): string;
43
44
  getLayout(): Partial<Layout>;
44
45
  getFilterColumnMap(): FilterColumnMap;
@@ -1 +1 @@
1
- {"version":3,"file":"ChartModel.d.ts","sourceRoot":"","sources":["../src/ChartModel.ts"],"names":[],"mappings":"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"}
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,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAE/C,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;IAC7B,QAAQ,EAAE,CACR,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAC1B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,KACrC,OAAO,EAAE,CAAC;CAChB;AAED,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;IAE9C,MAAM,CAAC,aAAa,SAA8B;IAElD,MAAM,CAAC,mBAAmB,SAAoC;IAE9D,MAAM,CAAC,oBAAoB,SAAqC;gBAEpD,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,QAAQ,CAAC,EAAE;IAI9B,eAAe,IAAI,MAAM;IAIzB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5B,kBAAkB,IAAI,eAAe;IAIrC;;;;OAIG;IACH,qBAAqB,IAAI,OAAO;IAIhC,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;IAIjC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IAInC,gBAAgB,IAAI,IAAI;IAIxB,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI;CAKjD;AAED,eAAe,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChartModel.js","names":["ChartModel","constructor","dh","_defineProperty","listeners","isDownsamplingDisabled","getData","getDefaultTitle","getLayout","getFilterColumnMap","Map","hasSelectionCallbacks","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","fireBlocker","EVENT_BLOCKER","fireBlockerClear","EVENT_BLOCKER_CLEAR","fireLayoutUpdated","EVENT_LAYOUT_UPDATED"],"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 = DhType.Event<unknown>;\n\nexport interface FigureUpdateEventData {\n series: DhType.plot.Series[];\n getArray: (\n series: DhType.plot.Series,\n sourceType: number,\n mappingFunc: (value: unknown) => unknown\n ) => unknown[];\n}\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 static EVENT_BLOCKER = 'ChartModel.EVENT_BLOCKER';\n\n static EVENT_BLOCKER_CLEAR = 'ChartModel.EVENT_BLOCKER_CLEAR';\n\n static EVENT_LAYOUT_UPDATED = 'ChartModel.EVENT_LAYOUT_UPDATED';\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 /**\n * Whether this model has selection callbacks (on_selected/on_deselect) registered.\n * When true, the chart should show box/lasso select mode bar buttons.\n * @returns True if selection callbacks are registered\n */\n hasSelectionCallbacks(): boolean {\n return false;\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 fireBlocker(detail: string[]): void {\n this.fireEvent(new CustomEvent(ChartModel.EVENT_BLOCKER, { detail }));\n }\n\n fireBlockerClear(): void {\n this.fireEvent(new CustomEvent(ChartModel.EVENT_BLOCKER_CLEAR));\n }\n\n fireLayoutUpdated(detail: Partial<Layout>): void {\n this.fireEvent(\n new CustomEvent(ChartModel.EVENT_LAYOUT_UPDATED, { detail })\n );\n }\n}\n\nexport default ChartModel;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ChartModel.js","names":["ChartModel","constructor","dh","_defineProperty","listeners","isDownsamplingDisabled","getData","getDefaultTitle","getLayout","getFilterColumnMap","Map","hasSelectionCallbacks","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","fireBlocker","EVENT_BLOCKER","fireBlockerClear","EVENT_BLOCKER_CLEAR","fireLayoutUpdated","EVENT_LAYOUT_UPDATED"],"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 } from 'plotly.js';\nimport { type FilterColumnMap, type FilterMap } from './ChartUtils';\nimport { type PlotData } from './plotly/plotlyTypes';\n\nexport type ChartEvent = DhType.Event<unknown>;\n\nexport interface FigureUpdateEventData {\n series: DhType.plot.Series[];\n getArray: (\n series: DhType.plot.Series,\n sourceType: number,\n mappingFunc: (value: unknown) => unknown\n ) => unknown[];\n}\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 static EVENT_BLOCKER = 'ChartModel.EVENT_BLOCKER';\n\n static EVENT_BLOCKER_CLEAR = 'ChartModel.EVENT_BLOCKER_CLEAR';\n\n static EVENT_LAYOUT_UPDATED = 'ChartModel.EVENT_LAYOUT_UPDATED';\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<PlotData>[] {\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 /**\n * Whether this model has selection callbacks (on_selected/on_deselect) registered.\n * When true, the chart should show box/lasso select mode bar buttons.\n * @returns True if selection callbacks are registered\n */\n hasSelectionCallbacks(): boolean {\n return false;\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 fireBlocker(detail: string[]): void {\n this.fireEvent(new CustomEvent(ChartModel.EVENT_BLOCKER, { detail }));\n }\n\n fireBlockerClear(): void {\n this.fireEvent(new CustomEvent(ChartModel.EVENT_BLOCKER_CLEAR));\n }\n\n fireLayoutUpdated(detail: Partial<Layout>): void {\n this.fireEvent(\n new CustomEvent(ChartModel.EVENT_LAYOUT_UPDATED, { detail })\n );\n }\n}\n\nexport default ChartModel;\n"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,9 @@
1
1
  import { type Formatter } from '@deephaven/jsapi-utils';
2
2
  import type { dh as DhType } from '@deephaven/jsapi-types';
3
- import type { Layout, PlotData, PlotType, Axis as PlotlyAxis, ErrorBar, LayoutAxis, MarkerSymbol, Template } from 'plotly.js';
3
+ import type { Layout, PlotType, ErrorBar, LayoutAxis, MarkerSymbol, Template } from 'plotly.js';
4
4
  import { type Range } from '@deephaven/utils';
5
5
  import { type ChartTheme } from './ChartTheme';
6
+ import { type PlotData } from './plotly/plotlyTypes';
6
7
  export type FilterColumnMap = Map<string, {
7
8
  name: string;
8
9
  type: string;
@@ -107,7 +108,7 @@ declare class ChartUtils {
107
108
  * @param axis the current axis
108
109
  * @param isDateType indicates if the columns is a date type
109
110
  */
110
- static addTickSpacing(axisFormat: Partial<LayoutAxis> | null, axis: DhType.plot.Axis, isDateType: boolean): Partial<PlotlyAxis> | null;
111
+ static addTickSpacing(axisFormat: Partial<LayoutAxis> | null, axis: DhType.plot.Axis, isDateType: boolean): Partial<LayoutAxis> | null;
111
112
  /**
112
113
  * Retrieve the data source for a given axis in a chart
113
114
  * @param chart The chart to get the source for
@@ -212,7 +213,7 @@ declare class ChartUtils {
212
213
  * @param formatter The formatter to use when getting the axis format
213
214
  * @returns A map of axis layout property names to axis formats
214
215
  */
215
- getAxisFormats(figure: DhType.plot.Figure, formatter: Formatter): Map<LayoutAxisKey, Partial<PlotlyAxis>>;
216
+ getAxisFormats(figure: DhType.plot.Figure, formatter: Formatter): Map<LayoutAxisKey, Partial<LayoutAxis>>;
216
217
  /**
217
218
  * Converts the Iris plot style into a plotly chart type
218
219
  * @param plotStyle The plotStyle to use, see dh.plot.SeriesPlotStyle
@@ -271,7 +272,7 @@ declare class ChartUtils {
271
272
  * @param source The Source to get the formatter information from
272
273
  * @param formatter The current formatter for formatting data
273
274
  */
274
- getPlotlyAxisFormat(source: DhType.plot.SeriesDataSource, formatter?: Formatter | null): Partial<PlotlyAxis> | null;
275
+ getPlotlyAxisFormat(source: DhType.plot.SeriesDataSource, formatter?: Formatter | null): Partial<LayoutAxis> | null;
275
276
  /**
276
277
  * Updates the axes positions and sizes in the layout object provided.
277
278
  * If the axis did not exist in the layout previously, it is created and added.
@@ -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":"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"}
@@ -1550,6 +1550,8 @@ class ChartUtils {
1550
1550
  margin: _objectSpread({}, ChartUtils.DEFAULT_MARGIN),
1551
1551
  xaxis: this.makeLayoutAxis(dh.plot.AxisType.X, theme),
1552
1552
  yaxis: this.makeLayoutAxis(dh.plot.AxisType.Y, theme),
1553
+ // plotly types polar and scene axes separately from cartesian axes, but we
1554
+ // share the same defaults; attributes that don't apply are ignored
1553
1555
  polar: {
1554
1556
  angularaxis: this.makeLayoutAxis(dh.plot.AxisType.SHAPE, theme),
1555
1557
  radialaxis: this.makeLayoutAxis(dh.plot.AxisType.SHAPE, theme),