@deephaven/embed-widget 0.87.1-beta.4 → 0.87.1-beta.8
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/build/assets/{App-d0224948.js → App-25416603.js} +2 -2
- package/build/assets/{App-d0224948.js.map → App-25416603.js.map} +1 -1
- package/build/assets/Chart-0c4c3cef.js +2 -0
- package/build/assets/Chart-0c4c3cef.js.map +1 -0
- package/build/assets/{IrisGrid-b9a1a55b.js → IrisGrid-de573255.js} +3 -3
- package/build/assets/IrisGrid-de573255.js.map +1 -0
- package/build/assets/IrisGridThemeProvider-3d87a0df.js +11 -0
- package/build/assets/IrisGridThemeProvider-3d87a0df.js.map +1 -0
- package/build/assets/{LocalWorkspaceStorage-cfad086a.js → LocalWorkspaceStorage-b02a7be3.js} +2 -2
- package/build/assets/{LocalWorkspaceStorage-cfad086a.js.map → LocalWorkspaceStorage-b02a7be3.js.map} +1 -1
- package/build/assets/{LogPanel-c1d1de2f.js → LogPanel-f158dab6.js} +2 -2
- package/build/assets/{LogPanel-c1d1de2f.js.map → LogPanel-f158dab6.js.map} +1 -1
- package/build/assets/{MarkdownEditor-6a1f8c1d.js → MarkdownEditor-648a6ce5.js} +2 -2
- package/build/assets/{MarkdownEditor-6a1f8c1d.js.map → MarkdownEditor-648a6ce5.js.map} +1 -1
- package/build/assets/{MarkdownNotebook-537e3fe2.js → MarkdownNotebook-744a67b9.js} +2 -2
- package/build/assets/{MarkdownNotebook-537e3fe2.js.map → MarkdownNotebook-744a67b9.js.map} +1 -1
- package/build/assets/{index-c6e74b10.js → index-147ac7bf.js} +4 -4
- package/build/assets/{index-c6e74b10.js.map → index-147ac7bf.js.map} +1 -1
- package/build/assets/{index-b1733a72.js → index-6f5bbea5.js} +2 -2
- package/build/assets/{index-b1733a72.js.map → index-6f5bbea5.js.map} +1 -1
- package/build/assets/{index-b698ba94.js → index-e25009a5.js} +3 -3
- package/build/assets/index-e25009a5.js.map +1 -0
- package/build/assets/useMergeRef-fe9e8167.js +2 -0
- package/build/assets/useMergeRef-fe9e8167.js.map +1 -0
- package/build/index.html +1 -1
- package/package.json +17 -17
- package/build/assets/Chart-0d24d255.js +0 -2
- package/build/assets/Chart-0d24d255.js.map +0 -1
- package/build/assets/IrisGrid-b9a1a55b.js.map +0 -1
- package/build/assets/IrisGridThemeProvider-d41a7cc8.js +0 -11
- package/build/assets/IrisGridThemeProvider-d41a7cc8.js.map +0 -1
- package/build/assets/index-b698ba94.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as o}from"./vendor-e852bd02.js";function e(){for(var n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];return a=>{t.forEach(u=>{u!=null&&(typeof u=="function"?u(a):u.current=a)})}}function s(){for(var n=arguments.length,t=new Array(n),r=0;r<n;r++)t[r]=arguments[r];return o.useMemo(()=>e(...t),t)}export{e as m,s as u};
|
|
2
|
+
//# sourceMappingURL=useMergeRef-fe9e8167.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMergeRef-fe9e8167.js","sources":["../../../react-hooks/dist/useMergeRef.js"],"sourcesContent":["import { useMemo } from 'react';\n\n/**\n * Merge multiple react refs into a single ref callback.\n * This can be used to merge callback and object refs into a single ref.\n * Merged callback refs will be called while object refs will have their current property set.\n * @param refs The refs to merge\n * @returns A ref callback that will set the value on all refs\n */\nexport function mergeRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n return newRef => {\n refs.forEach(ref => {\n if (ref != null) {\n if (typeof ref === 'function') {\n ref(newRef);\n } else {\n // React marks RefObject as readonly, but it's just to indicate React manages it\n // We can still write to its current value\n // eslint-disable-next-line no-param-reassign\n ref.current = newRef;\n }\n }\n });\n };\n}\n\n/**\n * Merges multiple refs into one ref that can be assigned to the component.\n * In turn all the refs passed in will be assigned when the ref returned is assigned.\n * @param refs Array of refs to assign\n */\nexport function useMergeRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useMemo(() => mergeRefs(...refs), refs);\n}\n//# sourceMappingURL=useMergeRef.js.map"],"names":["mergeRefs","_len","refs","_key","newRef","ref","useMergeRef","_len2","_key2","useMemo"],"mappings":"yCASO,SAASA,GAAY,CAC1B,QAASC,EAAO,UAAU,OAAQC,EAAO,IAAI,MAAMD,CAAI,EAAGE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,CAAI,EAAI,UAAUA,CAAI,EAE7B,OAAOC,GAAU,CACfF,EAAK,QAAQG,GAAO,CACdA,GAAO,OACL,OAAOA,GAAQ,WACjBA,EAAID,CAAM,EAKVC,EAAI,QAAUD,EAGxB,CAAK,CACL,CACA,CAOO,SAASE,GAAc,CAC5B,QAASC,EAAQ,UAAU,OAAQL,EAAO,IAAI,MAAMK,CAAK,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFN,EAAKM,CAAK,EAAI,UAAUA,CAAK,EAG/B,OAAOC,EAAAA,QAAQ,IAAMT,EAAU,GAAGE,CAAI,EAAGA,CAAI,CAC/C"}
|
package/build/index.html
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
<link rel="manifest" href="./manifest.json" />
|
|
13
13
|
<link rel="icon" href="./favicon-cc-app.svg" />
|
|
14
14
|
<title>Deephaven Embedded Widget</title>
|
|
15
|
-
<script type="module" crossorigin src="./assets/index-
|
|
15
|
+
<script type="module" crossorigin src="./assets/index-6f5bbea5.js"></script>
|
|
16
16
|
<link rel="modulepreload" crossorigin href="./assets/helpers-de833af9.js">
|
|
17
17
|
<link rel="modulepreload" crossorigin href="./assets/vendor-e852bd02.js">
|
|
18
18
|
<link rel="stylesheet" href="./assets/vendor-bd6e7036.css">
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/embed-widget",
|
|
3
|
-
"version": "0.87.1-beta.
|
|
3
|
+
"version": "0.87.1-beta.8+4e15e853",
|
|
4
4
|
"description": "Deephaven Embedded Widget",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -16,18 +16,18 @@
|
|
|
16
16
|
"build"
|
|
17
17
|
],
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@deephaven/app-utils": "^0.87.1-beta.
|
|
20
|
-
"@deephaven/components": "^0.87.1-beta.
|
|
21
|
-
"@deephaven/dashboard": "^0.87.1-beta.
|
|
22
|
-
"@deephaven/dashboard-core-plugins": "^0.87.1-beta.
|
|
23
|
-
"@deephaven/jsapi-bootstrap": "^0.87.1-beta.
|
|
24
|
-
"@deephaven/jsapi-components": "^0.87.1-beta.
|
|
19
|
+
"@deephaven/app-utils": "^0.87.1-beta.8+4e15e853",
|
|
20
|
+
"@deephaven/components": "^0.87.1-beta.8+4e15e853",
|
|
21
|
+
"@deephaven/dashboard": "^0.87.1-beta.8+4e15e853",
|
|
22
|
+
"@deephaven/dashboard-core-plugins": "^0.87.1-beta.8+4e15e853",
|
|
23
|
+
"@deephaven/jsapi-bootstrap": "^0.87.1-beta.8+4e15e853",
|
|
24
|
+
"@deephaven/jsapi-components": "^0.87.1-beta.8+4e15e853",
|
|
25
25
|
"@deephaven/jsapi-types": "^1.0.0-dev0.34.0",
|
|
26
|
-
"@deephaven/jsapi-utils": "^0.87.1-beta.
|
|
27
|
-
"@deephaven/log": "^0.87.1-beta.
|
|
28
|
-
"@deephaven/plugin": "^0.87.1-beta.
|
|
29
|
-
"@deephaven/redux": "^0.87.1-beta.
|
|
30
|
-
"@deephaven/utils": "^0.87.1-beta.
|
|
26
|
+
"@deephaven/jsapi-utils": "^0.87.1-beta.8+4e15e853",
|
|
27
|
+
"@deephaven/log": "^0.87.1-beta.8+4e15e853",
|
|
28
|
+
"@deephaven/plugin": "^0.87.1-beta.8+4e15e853",
|
|
29
|
+
"@deephaven/redux": "^0.87.1-beta.8+4e15e853",
|
|
30
|
+
"@deephaven/utils": "^0.87.1-beta.8+4e15e853",
|
|
31
31
|
"@fontsource/fira-mono": "5.0.13",
|
|
32
32
|
"@fontsource/fira-sans": "5.0.20",
|
|
33
33
|
"nanoid": "5.0.7",
|
|
@@ -42,13 +42,13 @@
|
|
|
42
42
|
"preview": "vite preview"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@deephaven/eslint-config": "^0.87.1-beta.
|
|
46
|
-
"@deephaven/mocks": "^0.87.1-beta.
|
|
47
|
-
"@deephaven/prettier-config": "^0.87.1-beta.
|
|
48
|
-
"@deephaven/stylelint-config": "^0.87.1-beta.
|
|
45
|
+
"@deephaven/eslint-config": "^0.87.1-beta.8+4e15e853",
|
|
46
|
+
"@deephaven/mocks": "^0.87.1-beta.8+4e15e853",
|
|
47
|
+
"@deephaven/prettier-config": "^0.87.1-beta.8+4e15e853",
|
|
48
|
+
"@deephaven/stylelint-config": "^0.87.1-beta.8+4e15e853"
|
|
49
49
|
},
|
|
50
50
|
"publishConfig": {
|
|
51
51
|
"access": "public"
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "4e15e8534289707886793e4c6dffcfd8d21419bd"
|
|
54
54
|
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{E as d,r as L,bb as x,J as P,bg as E}from"./vendor-e852bd02.js";import{L as I,aL as R,b6 as U,b7 as W}from"./index-b1733a72.js";import{c as z}from"./Plotly-553bb1c7.js";import{C as B,ad as _,J as p,K as T,h as C,g as V,D as $}from"./index-c6e74b10.js";import{y as S,av as K}from"./LogPanel-c1d1de2f.js";import{D as H}from"./DownsamplingError-8e6bdb73.js";import{P as J}from"./plotly-6b2849c1.js";import"./helpers-de833af9.js";function j(s){var{errorMessage:e,onDiscard:t,onConfirm:r,onCancel:i,"data-testid":a}=s,o=a!=null?"".concat(a,"-message"):void 0;return d.jsx("div",{className:"chart-panel-overlay chart-error-overlay",children:d.jsxs("div",{className:"chart-panel-overlay-content chart-error-overlay-content",children:[d.jsxs("div",{className:"info-message","data-testid":o,children:[e,d.jsx(B,{copy:e,style:{margin:"0"}})]}),d.jsxs("div",{children:[i&&d.jsx(S,{onClick:i,kind:"secondary",children:"Cancel"}),t&&d.jsx(S,{onClick:t,kind:"secondary",children:"Dismiss"}),r&&d.jsx(S,{onClick:r,kind:"primary",children:"Continue"})]})]})})}function N(s,e){var t=Object.keys(s);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(s);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(s,i).enumerable})),t.push.apply(t,r)}return t}function f(s){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?N(Object(t),!0).forEach(function(r){n(s,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(t)):N(Object(t)).forEach(function(r){Object.defineProperty(s,r,Object.getOwnPropertyDescriptor(t,r))})}return s}function n(s,e,t){return e=Z(e),e in s?Object.defineProperty(s,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):s[e]=t,s}function Z(s){var e=q(s,"string");return typeof e=="symbol"?e:String(e)}function q(s,e){if(typeof s!="object"||s===null)return s;var t=s[Symbol.toPrimitive];if(t!==void 0){var r=t.call(s,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(s)}var m=I.module("Chart");class v extends L.Component{static convertIcon(e){var[t,,,,r]=e.icon,i="".concat(r);return{width:t,path:i,ascent:t,descent:0,transform:"matrix(1, 0, 0, 1, 0, 0)"}}static downsampleButtonTitle(e,t){return e?"Downsampling in progress...":t?"Downsampling disabled, click to enable":"Downsampling enabled, click to disable"}static downsampleButtonAttr(e,t){return e?"animation-spin":t?void 0:"fill-active"}constructor(e){var t;super(e),n(this,"currentSeries",void 0),n(this,"PlotComponent",void 0),n(this,"plot",void 0),n(this,"plotWrapper",void 0),n(this,"columnFormats",void 0),n(this,"dateTimeFormatterOptions",void 0),n(this,"decimalFormatOptions",void 0),n(this,"integerFormatOptions",void 0),n(this,"webgl",void 0),n(this,"rect",void 0),n(this,"ranges",void 0),n(this,"isSubscribed",void 0),n(this,"isLoadedFired",void 0),n(this,"resizeObserver",void 0),n(this,"getCachedConfig",x((r,i,a,o,u,l)=>{var h=[],c=!!r;c&&h.push({name:"Downsampling failed: ".concat(r),title:"Downsampling failed",click:()=>{this.toggleErrorMessage("".concat(r))},icon:v.convertIcon(R),attr:"fill-warning"});var g=!!l;if(g&&h.push({name:"Error: ".concat(l),title:"Error",click:()=>{this.toggleErrorMessage("".concat(l))},icon:v.convertIcon(R),attr:"fill-warning"}),i||a||o||c){var b=v.downsampleButtonTitle(a,o),y=v.downsampleButtonAttr(a,o),D=a?U:W;h.push({name:b,title:"Downsampling status",icon:v.convertIcon(D),click:this.handleDownsampleClick,attr:y})}var O=u.some(F=>{var{type:w}=F;return w!=null&&!w.includes("3d")}),k=u.some(F=>{var{type:w}=F;return w!=null&&w.includes("3d")}),M=["zoomIn2d","zoomOut2d","autoScale2d","resetScale2d"],A=["orbitRotation","tableRotation","resetCameraDefault3d"];return{displaylogo:!1,responsive:!0,displayModeBar:a||c||g?!0:"hover",modeBarButtons:[h,["toImage"],["zoom2d","pan2d"],[...O?M:[],...k?A:[]]]}})),_(this),this.PlotComponent=z(e.Plotly),this.plot=P.createRef(),this.plotWrapper=(t=e.containerRef)!==null&&t!==void 0?t:P.createRef(),this.columnFormats=[],this.dateTimeFormatterOptions={},this.decimalFormatOptions={},this.integerFormatOptions={},this.isSubscribed=!1,this.isLoadedFired=!1,this.currentSeries=0,this.resizeObserver=new window.ResizeObserver(this.handleResize),this.state={data:null,downsamplingError:null,isDownsampleFinished:!1,isDownsampleInProgress:!1,isDownsamplingDisabled:!1,error:null,shownError:null,layout:{datarevision:0},revision:0}}componentDidMount(){this.updateDimensions(),this.updateModelDimensions(),this.initData(),this.initFormatter();var{isActive:e,model:t}=this.props;e&&this.subscribe(t),this.plotWrapper.current!=null&&this.resizeObserver.observe(this.plotWrapper.current),this.handleThemeChange()}componentDidUpdate(e){var{isActive:t,model:r,settings:i,theme:a}=this.props;this.updateFormatterSettings(i),r!==e.model&&(this.unsubscribe(e.model),this.subscribe(r)),t!==e.isActive&&(t?(this.updateDimensions(),this.subscribe(r)):this.unsubscribe(r)),a!==e.theme&&this.handleThemeChange()}componentWillUnmount(){var{model:e}=this.props;this.unsubscribe(e),this.resizeObserver.disconnect()}getPlotRect(){var e,t;return(e=(t=this.plotWrapper.current)===null||t===void 0?void 0:t.getBoundingClientRect())!==null&&e!==void 0?e:null}initData(){var{model:e}=this.props;this.setState(t=>{var{layout:r}=t;return{data:e.getData(),layout:f(f({},r),e.getLayout())}})}subscribe(e){if(!this.isSubscribed){if(!this.rect||this.rect.width===0||this.rect.height===0){m.debug2("Delaying subscription until model dimensions are set");return}e.subscribe(this.handleModelEvent),this.isSubscribed=!0}}unsubscribe(e){this.isSubscribed&&(e.unsubscribe(this.handleModelEvent),this.isSubscribed=!1)}handleAfterPlot(){this.plot.current!=null}handleDownsampleClick(){this.setState(e=>{var{isDownsamplingDisabled:t}=e;return{downsamplingError:null,isDownsampleInProgress:!1,isDownsampleFinished:!1,isDownsamplingDisabled:!t}},()=>{var{model:e}=this.props,{isDownsamplingDisabled:t}=this.state;e.setDownsamplingDisabled(t)})}handleErrorClose(){this.setState({shownError:null})}handleDownsampleErrorClose(){this.setState({downsamplingError:null})}handleModelEvent(e){var{type:t,detail:r}=e;switch(m.debug2("Received data update",t,r),t){case p.EVENT_UPDATED:{this.currentSeries+=1,this.setState(y=>{var{layout:D,revision:O}=y;return typeof D.datarevision=="number"&&(D.datarevision+=1),{data:r,layout:D,revision:O+1}});var{onUpdate:i}=this.props;i({isLoading:!this.isLoadedFired});break}case p.EVENT_LOADFINISHED:{var{onUpdate:a}=this.props;this.isLoadedFired=!0,a({isLoading:!1});break}case p.EVENT_DISCONNECT:{var{onDisconnect:o}=this.props;o();break}case p.EVENT_RECONNECT:{var{onReconnect:u}=this.props;u();break}case p.EVENT_DOWNSAMPLESTARTED:{this.setState({isDownsampleFinished:!1,isDownsampleInProgress:!0,downsamplingError:null});break}case p.EVENT_DOWNSAMPLEFINISHED:{this.setState({isDownsampleFinished:!0,isDownsampleInProgress:!1,downsamplingError:null});break}case p.EVENT_DOWNSAMPLENEEDED:case p.EVENT_DOWNSAMPLEFAILED:{var l,h=(l=r.message)!==null&&l!==void 0?l:r;this.setState({isDownsampleFinished:!1,isDownsampleInProgress:!1,isDownsamplingDisabled:!1,downsamplingError:h});var{onError:c}=this.props;c(new H(h));break}case p.EVENT_ERROR:{var g="".concat(r);this.setState({error:g});var{onError:b}=this.props;b(new Error(g));break}default:m.debug("Unknown event type",t,e)}}handlePlotUpdate(e){var{layout:t}=e,r=T.getLayoutRanges(t),i=!E(r,this.ranges);i&&(this.ranges=r,this.updateModelDimensions(!0))}handleRelayout(e){if(m.debug("handleRelayout",e),e.hiddenlabels!=null){var{onSettingsChanged:t}=this.props,r=[...e.hiddenlabels];t({hiddenSeries:r})}this.updateModelDimensions()}handleResize(){this.updateDimensions()}handleRestyle(e){var[t,r]=e;if(m.debug("handleRestyle",t,r),Object.keys(t).includes("visible")){var{data:i}=this.state,{onSettingsChanged:a}=this.props;if(i!=null){var o=i.reduce((u,l)=>{var{name:h,visible:c}=l;return h!=null&&c==="legendonly"?[...u,h]:u},[]);a({hiddenSeries:o})}}}handleThemeChange(){var{theme:e,model:t}=this.props,{dh:r}=t,i=new T(r);this.setState(a=>{var{layout:o}=a;return{layout:f(f({},o),{},{template:i.makeDefaultTemplate(e)})}})}toggleErrorMessage(e){this.setState(t=>{var{shownError:r}=t;return{shownError:r===e?null:e}})}updateModelDimensions(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=this.getPlotRect();if(!t){m.warn("Unable to get plotting rect");return}var r=!this.rect||this.rect.width!==t.width||this.rect.height!==t.height;if(r||e){this.rect=t;var{isActive:i,model:a}=this.props;a.setDimensions(t),i&&this.subscribe(a)}}initFormatter(){var{settings:e}=this.props;this.updateFormatterSettings(e)}updateFormatterSettings(e){var t=C.getColumnFormats(e),r=C.getDateTimeFormatterOptions(e),{decimalFormatOptions:i={},integerFormatOptions:a={}}=e;(!E(this.columnFormats,t)||!E(this.dateTimeFormatterOptions,r)||!E(this.decimalFormatOptions,i)||!E(this.integerFormatOptions,a))&&(this.columnFormats=C.getColumnFormats(e),this.dateTimeFormatterOptions=r,this.decimalFormatOptions=i,this.integerFormatOptions=a,this.updateFormatter()),this.webgl!==e.webgl&&(this.webgl=e.webgl,this.updateRenderOptions())}updateFormatter(){var{model:e}=this.props,t=new V(e.dh,this.columnFormats,this.dateTimeFormatterOptions,this.decimalFormatOptions,this.integerFormatOptions);e.setFormatter(t)}updateRenderOptions(){var{model:e}=this.props,t={webgl:this.webgl};e.setRenderOptions(t)}updateDimensions(){var e=this.getPlotRect(),{Plotly:t}=this.props;this.plot.current!=null&&e!=null&&e.width>0&&e.height>0&&t.relayout(this.plot.current.el,{autosize:!0}).catch(r=>{m.debug("Unable to resize, promise rejected",r)})}render(){var{PlotComponent:e}=this,{data:t,downsamplingError:r,isDownsampleFinished:i,isDownsampleInProgress:a,isDownsamplingDisabled:o,error:u,shownError:l,layout:h,revision:c}=this.state,g=this.getCachedConfig(r,i,a,o,t??[],u),b=t!=null;return d.jsxs("div",{className:"h-100 w-100 chart-wrapper",ref:this.plotWrapper,children:[b&&d.jsx(e,{ref:this.plot,data:t,layout:h,revision:c,config:g,onAfterPlot:this.handleAfterPlot,onError:m.error,onRelayout:this.handleRelayout,onUpdate:this.handlePlotUpdate,onRestyle:this.handleRestyle,style:{height:"100%",width:"100%"}}),r!=null&&l==null&&d.jsx(j,{errorMessage:"".concat(r),onDiscard:()=>{this.handleDownsampleErrorClose()},onConfirm:()=>{this.handleDownsampleErrorClose(),this.handleDownsampleClick()}}),l!=null&&d.jsx(j,{errorMessage:"".concat(l),onDiscard:()=>{this.handleErrorClose()}})]})}}n(v,"defaultProps",{isActive:!0,settings:{timeZone:"America/New_York",defaultDateTimeFormat:$.FULL_DATE_FORMAT,showTimeZone:!1,showTSeparator:!0,formatter:[],webgl:!0},Plotly:J,onDisconnect:()=>{},onReconnect:()=>{},onUpdate:()=>{},onError:()=>{},onSettingsChanged:()=>{}});function ie(s){var e=K();return d.jsx(v,f(f({},s),{},{theme:e}))}export{ie as default};
|
|
2
|
-
//# sourceMappingURL=Chart-0d24d255.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Chart-0d24d255.js","sources":["../../../chart/dist/ChartErrorOverlay.js","../../../chart/dist/Chart.js"],"sourcesContent":["import { CopyButton, Button } from '@deephaven/components';\nimport \"./ChartErrorOverlay.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction ChartErrorOverlay(_ref) {\n var {\n errorMessage,\n onDiscard,\n onConfirm,\n onCancel,\n 'data-testid': dataTestId\n } = _ref;\n var messageTestId = dataTestId != null ? \"\".concat(dataTestId, \"-message\") : undefined;\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"chart-panel-overlay chart-error-overlay\",\n children: /*#__PURE__*/_jsxs(\"div\", {\n className: \"chart-panel-overlay-content chart-error-overlay-content\",\n children: [/*#__PURE__*/_jsxs(\"div\", {\n className: \"info-message\",\n \"data-testid\": messageTestId,\n children: [errorMessage, /*#__PURE__*/_jsx(CopyButton, {\n copy: errorMessage,\n style: {\n margin: '0'\n }\n })]\n }), /*#__PURE__*/_jsxs(\"div\", {\n children: [onCancel && /*#__PURE__*/_jsx(Button, {\n onClick: onCancel,\n kind: \"secondary\",\n children: \"Cancel\"\n }), onDiscard && /*#__PURE__*/_jsx(Button, {\n onClick: onDiscard,\n kind: \"secondary\",\n children: \"Dismiss\"\n }), onConfirm && /*#__PURE__*/_jsx(Button, {\n onClick: onConfirm,\n kind: \"primary\",\n children: \"Continue\"\n })]\n })]\n })\n });\n}\nexport default ChartErrorOverlay;\n//# sourceMappingURL=ChartErrorOverlay.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { Component } from 'react';\nimport deepEqual from 'fast-deep-equal';\nimport memoize from 'memoize-one';\nimport { vsLoading, dhGraphLineDown, dhWarningFilled } from '@deephaven/icons';\nimport { Formatter, FormatterUtils, DateUtils } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport { bindAllMethods } from '@deephaven/utils';\nimport createPlotlyComponent from \"./plotly/createPlotlyComponent.js\";\nimport Plotly from \"./plotly/Plotly.js\";\nimport ChartModel from \"./ChartModel.js\";\nimport ChartErrorOverlay from \"./ChartErrorOverlay.js\";\nimport ChartUtils from \"./ChartUtils.js\";\nimport \"./Chart.css\";\nimport DownsamplingError from \"./DownsamplingError.js\";\nimport useChartTheme from \"./useChartTheme.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar log = Log.module('Chart');\n\n// All of the ChartProps have default values except for model in the Chart\n// component, hence the Partial here.\nclass Chart extends Component {\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) {\n var [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 var stringPath = \"\".concat(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 static downsampleButtonTitle(isDownsampleInProgress, isDownsamplingDisabled) {\n if (isDownsampleInProgress) {\n return 'Downsampling in progress...';\n }\n return isDownsamplingDisabled ? 'Downsampling disabled, click to enable' : 'Downsampling enabled, click to disable';\n }\n static downsampleButtonAttr(isDownsampleInProgress, isDownsamplingDisabled) {\n if (isDownsampleInProgress) {\n return 'animation-spin';\n }\n return isDownsamplingDisabled ? undefined : 'fill-active';\n }\n constructor(props) {\n var _props$containerRef;\n super(props);\n _defineProperty(this, \"currentSeries\", void 0);\n _defineProperty(this, \"PlotComponent\", void 0);\n _defineProperty(this, \"plot\", void 0);\n _defineProperty(this, \"plotWrapper\", void 0);\n _defineProperty(this, \"columnFormats\", void 0);\n _defineProperty(this, \"dateTimeFormatterOptions\", void 0);\n _defineProperty(this, \"decimalFormatOptions\", void 0);\n _defineProperty(this, \"integerFormatOptions\", void 0);\n _defineProperty(this, \"webgl\", void 0);\n _defineProperty(this, \"rect\", void 0);\n _defineProperty(this, \"ranges\", void 0);\n _defineProperty(this, \"isSubscribed\", void 0);\n _defineProperty(this, \"isLoadedFired\", void 0);\n _defineProperty(this, \"resizeObserver\", void 0);\n _defineProperty(this, \"getCachedConfig\", memoize((downsamplingError, isDownsampleFinished, isDownsampleInProgress, isDownsamplingDisabled, data, error) => {\n var customButtons = [];\n var hasDownsampleError = Boolean(downsamplingError);\n if (hasDownsampleError) {\n customButtons.push({\n name: \"Downsampling failed: \".concat(downsamplingError),\n title: 'Downsampling failed',\n click: () => {\n this.toggleErrorMessage(\"\".concat(downsamplingError));\n },\n icon: Chart.convertIcon(dhWarningFilled),\n attr: 'fill-warning'\n });\n }\n var hasError = Boolean(error);\n if (hasError) {\n customButtons.push({\n name: \"Error: \".concat(error),\n title: \"Error\",\n click: () => {\n this.toggleErrorMessage(\"\".concat(error));\n },\n icon: Chart.convertIcon(dhWarningFilled),\n attr: 'fill-warning'\n });\n }\n if (isDownsampleFinished || isDownsampleInProgress || isDownsamplingDisabled || hasDownsampleError) {\n var name = Chart.downsampleButtonTitle(isDownsampleInProgress, isDownsamplingDisabled);\n var attr = Chart.downsampleButtonAttr(isDownsampleInProgress, isDownsamplingDisabled);\n var 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 var has2D = data.some(_ref => {\n var {\n type\n } = _ref;\n return type != null && !type.includes('3d');\n });\n var has3D = data.some(_ref2 => {\n var {\n type\n } = _ref2;\n return type != null && type.includes('3d');\n });\n var buttons2D = ['zoomIn2d', 'zoomOut2d', 'autoScale2d', 'resetScale2d'];\n var buttons3D = ['orbitRotation', 'tableRotation', 'resetCameraDefault3d'];\n return {\n displaylogo: false,\n // scales the plot to the container size\n // https://github.com/plotly/react-plotly.js/issues/102\n responsive: true,\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 ? true : 'hover',\n // Each array gets grouped together in the mode bar\n modeBarButtons: [customButtons, ['toImage'], ['zoom2d', 'pan2d'],\n // These work the same for both 2d and 3d\n [...(has2D ? buttons2D : []), ...(has3D ? buttons3D : [])]]\n };\n }));\n bindAllMethods(this);\n this.PlotComponent = createPlotlyComponent(props.Plotly);\n this.plot = /*#__PURE__*/React.createRef();\n this.plotWrapper = (_props$containerRef = props.containerRef) !== null && _props$containerRef !== void 0 ? _props$containerRef : /*#__PURE__*/React.createRef();\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 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 componentDidMount() {\n // Need to make sure the model dimensions are up to date before initializing the data\n this.updateDimensions();\n this.updateModelDimensions();\n this.initData();\n this.initFormatter();\n var {\n isActive,\n model\n } = 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 this.handleThemeChange();\n }\n componentDidUpdate(prevProps) {\n var {\n isActive,\n model,\n settings,\n theme\n } = this.props;\n this.updateFormatterSettings(settings);\n if (model !== prevProps.model) {\n this.unsubscribe(prevProps.model);\n this.subscribe(model);\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 if (theme !== prevProps.theme) {\n this.handleThemeChange();\n }\n }\n componentWillUnmount() {\n var {\n model\n } = this.props;\n this.unsubscribe(model);\n this.resizeObserver.disconnect();\n }\n\n // Listen for resizing of the element and update the canvas appropriately\n\n getPlotRect() {\n var _this$plotWrapper$cur, _this$plotWrapper$cur2;\n return (_this$plotWrapper$cur = (_this$plotWrapper$cur2 = this.plotWrapper.current) === null || _this$plotWrapper$cur2 === void 0 ? void 0 : _this$plotWrapper$cur2.getBoundingClientRect()) !== null && _this$plotWrapper$cur !== void 0 ? _this$plotWrapper$cur : null;\n }\n initData() {\n var {\n model\n } = this.props;\n this.setState(_ref3 => {\n var {\n layout\n } = _ref3;\n return {\n data: model.getData(),\n layout: _objectSpread(_objectSpread({}, layout), model.getLayout())\n };\n });\n }\n subscribe(model) {\n if (this.isSubscribed) {\n return;\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 unsubscribe(model) {\n if (!this.isSubscribed) {\n return;\n }\n model.unsubscribe(this.handleModelEvent);\n this.isSubscribed = false;\n }\n handleAfterPlot() {\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 handleDownsampleClick() {\n this.setState(_ref4 => {\n var {\n isDownsamplingDisabled\n } = _ref4;\n return {\n downsamplingError: null,\n isDownsampleInProgress: false,\n isDownsampleFinished: false,\n isDownsamplingDisabled: !isDownsamplingDisabled\n };\n }, () => {\n var {\n model\n } = this.props;\n var {\n isDownsamplingDisabled\n } = this.state;\n model.setDownsamplingDisabled(isDownsamplingDisabled);\n });\n }\n handleErrorClose() {\n this.setState({\n shownError: null\n });\n }\n handleDownsampleErrorClose() {\n this.setState({\n downsamplingError: null\n });\n }\n handleModelEvent(event) {\n var {\n type,\n detail\n } = event;\n log.debug2('Received data update', type, detail);\n switch (type) {\n case ChartModel.EVENT_UPDATED:\n {\n this.currentSeries += 1;\n this.setState(state => {\n var {\n layout,\n revision\n } = 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 var {\n onUpdate\n } = this.props;\n onUpdate({\n isLoading: !this.isLoadedFired\n });\n break;\n }\n case ChartModel.EVENT_LOADFINISHED:\n {\n var {\n onUpdate: _onUpdate\n } = this.props;\n this.isLoadedFired = true;\n _onUpdate({\n isLoading: false\n });\n break;\n }\n case ChartModel.EVENT_DISCONNECT:\n {\n var {\n onDisconnect\n } = this.props;\n onDisconnect();\n break;\n }\n case ChartModel.EVENT_RECONNECT:\n {\n var {\n onReconnect\n } = this.props;\n onReconnect();\n break;\n }\n case ChartModel.EVENT_DOWNSAMPLESTARTED:\n {\n this.setState({\n isDownsampleFinished: false,\n isDownsampleInProgress: true,\n downsamplingError: null\n });\n break;\n }\n case ChartModel.EVENT_DOWNSAMPLEFINISHED:\n {\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 {\n var _detail$message;\n var downsamplingError = (_detail$message = detail.message) !== null && _detail$message !== void 0 ? _detail$message : detail;\n this.setState({\n isDownsampleFinished: false,\n isDownsampleInProgress: false,\n isDownsamplingDisabled: false,\n downsamplingError\n });\n var {\n onError\n } = this.props;\n onError(new DownsamplingError(downsamplingError));\n break;\n }\n case ChartModel.EVENT_ERROR:\n {\n var _error = \"\".concat(detail);\n this.setState({\n error: _error\n });\n var {\n onError: _onError\n } = this.props;\n _onError(new Error(_error));\n break;\n }\n default:\n log.debug('Unknown event type', type, event);\n }\n }\n handlePlotUpdate(figure) {\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 var {\n layout\n } = figure;\n var ranges = ChartUtils.getLayoutRanges(layout);\n var isRangesChanged = !deepEqual(ranges, this.ranges);\n if (isRangesChanged) {\n this.ranges = ranges;\n this.updateModelDimensions(true);\n }\n }\n handleRelayout(changes) {\n log.debug('handleRelayout', changes);\n if (changes.hiddenlabels != null) {\n var {\n onSettingsChanged\n } = 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 var hiddenSeries = [...changes.hiddenlabels];\n onSettingsChanged({\n hiddenSeries\n });\n }\n this.updateModelDimensions();\n }\n handleResize() {\n this.updateDimensions();\n }\n handleRestyle(_ref5) {\n var [changes, seriesIndexes] = _ref5;\n log.debug('handleRestyle', changes, seriesIndexes);\n if (Object.keys(changes).includes('visible')) {\n var {\n data\n } = this.state;\n var {\n onSettingsChanged\n } = this.props;\n if (data != null) {\n var hiddenSeries = data.reduce((acc, _ref6) => {\n var {\n name,\n visible\n } = _ref6;\n return name != null && visible === 'legendonly' ? [...acc, name] : acc;\n }, []);\n onSettingsChanged({\n hiddenSeries\n });\n }\n }\n }\n handleThemeChange() {\n var {\n theme,\n model\n } = this.props;\n var {\n dh\n } = model;\n var chartUtils = new ChartUtils(dh);\n this.setState(_ref7 => {\n var {\n layout\n } = _ref7;\n return {\n layout: _objectSpread(_objectSpread({}, layout), {}, {\n template: chartUtils.makeDefaultTemplate(theme)\n })\n };\n });\n }\n\n /**\n * Toggle the error message. If it is already being displayed, then hide it.\n */\n toggleErrorMessage(error) {\n this.setState(_ref8 => {\n var {\n shownError\n } = _ref8;\n return {\n shownError: shownError === error ? null : error\n };\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() {\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var rect = this.getPlotRect();\n if (!rect) {\n log.warn('Unable to get plotting rect');\n return;\n }\n var isRectChanged = !this.rect || this.rect.width !== rect.width || this.rect.height !== rect.height;\n if (isRectChanged || force) {\n this.rect = rect;\n var {\n isActive,\n model\n } = 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 initFormatter() {\n var {\n settings\n } = this.props;\n this.updateFormatterSettings(settings);\n }\n updateFormatterSettings(settings) {\n var columnFormats = FormatterUtils.getColumnFormats(settings);\n var dateTimeFormatterOptions = FormatterUtils.getDateTimeFormatterOptions(settings);\n var {\n decimalFormatOptions = {},\n integerFormatOptions = {}\n } = settings;\n if (!deepEqual(this.columnFormats, columnFormats) || !deepEqual(this.dateTimeFormatterOptions, dateTimeFormatterOptions) || !deepEqual(this.decimalFormatOptions, decimalFormatOptions) || !deepEqual(this.integerFormatOptions, integerFormatOptions)) {\n this.columnFormats = FormatterUtils.getColumnFormats(settings);\n this.dateTimeFormatterOptions = dateTimeFormatterOptions;\n this.decimalFormatOptions = decimalFormatOptions;\n this.integerFormatOptions = integerFormatOptions;\n this.updateFormatter();\n }\n if (this.webgl !== settings.webgl) {\n this.webgl = settings.webgl;\n this.updateRenderOptions();\n }\n }\n updateFormatter() {\n var {\n model\n } = this.props;\n var formatter = new Formatter(model.dh, this.columnFormats, this.dateTimeFormatterOptions, this.decimalFormatOptions, this.integerFormatOptions);\n model.setFormatter(formatter);\n }\n updateRenderOptions() {\n var {\n model\n } = this.props;\n var renderOptions = {\n webgl: this.webgl\n };\n model.setRenderOptions(renderOptions);\n }\n updateDimensions() {\n var rect = this.getPlotRect();\n var {\n Plotly: PlotlyProp\n } = this.props;\n if (this.plot.current != null && rect != null && rect.width > 0 && rect.height > 0) {\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.el, {\n autosize: true\n }).catch(e => {\n log.debug('Unable to resize, promise rejected', e);\n });\n }\n }\n render() {\n var {\n PlotComponent\n } = this;\n var {\n data,\n downsamplingError,\n isDownsampleFinished,\n isDownsampleInProgress,\n isDownsamplingDisabled,\n error,\n shownError,\n layout,\n revision\n } = this.state;\n var config = this.getCachedConfig(downsamplingError, isDownsampleFinished, isDownsampleInProgress, isDownsamplingDisabled, data !== null && data !== void 0 ? data : [], error);\n var isPlotShown = data != null;\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"h-100 w-100 chart-wrapper\",\n ref: this.plotWrapper,\n children: [isPlotShown && /*#__PURE__*/_jsx(PlotComponent\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n , {\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: {\n height: '100%',\n width: '100%'\n }\n }), downsamplingError != null && shownError == null && /*#__PURE__*/_jsx(ChartErrorOverlay, {\n errorMessage: \"\".concat(downsamplingError),\n onDiscard: () => {\n this.handleDownsampleErrorClose();\n },\n onConfirm: () => {\n this.handleDownsampleErrorClose();\n this.handleDownsampleClick();\n }\n }), shownError != null && /*#__PURE__*/_jsx(ChartErrorOverlay, {\n errorMessage: \"\".concat(shownError),\n onDiscard: () => {\n this.handleErrorClose();\n }\n })]\n });\n }\n}\n_defineProperty(Chart, \"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: () => undefined,\n onReconnect: () => undefined,\n onUpdate: () => undefined,\n onError: () => undefined,\n onSettingsChanged: () => undefined\n});\nexport default function ChartContainer(props) {\n var chartTheme = useChartTheme();\n // eslint-disable-next-line react/jsx-props-no-spreading\n return /*#__PURE__*/_jsx(Chart, _objectSpread(_objectSpread({}, props), {}, {\n theme: chartTheme\n }));\n}\n//# sourceMappingURL=Chart.js.map"],"names":["ChartErrorOverlay","_ref","errorMessage","onDiscard","onConfirm","onCancel","dataTestId","messageTestId","_jsx","_jsxs","CopyButton","Button","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread","target","i","source","key","_defineProperty","obj","value","_toPropertyKey","arg","_toPrimitive","input","hint","prim","res","log","Log","Chart","Component","faIcon","width","path","stringPath","isDownsampleInProgress","isDownsamplingDisabled","props","_props$containerRef","memoize","downsamplingError","isDownsampleFinished","data","error","customButtons","hasDownsampleError","dhWarningFilled","hasError","name","attr","icon","vsLoading","dhGraphLineDown","has2D","type","has3D","_ref2","buttons2D","buttons3D","bindAllMethods","createPlotlyComponent","React","isActive","model","prevProps","settings","theme","_this$plotWrapper$cur","_this$plotWrapper$cur2","_ref3","layout","_ref4","event","detail","ChartModel","state","revision","onUpdate","_onUpdate","onDisconnect","onReconnect","_detail$message","onError","DownsamplingError","_error","_onError","figure","ranges","ChartUtils","isRangesChanged","deepEqual","changes","onSettingsChanged","hiddenSeries","_ref5","seriesIndexes","acc","_ref6","visible","dh","chartUtils","_ref7","_ref8","shownError","force","rect","isRectChanged","columnFormats","FormatterUtils","dateTimeFormatterOptions","decimalFormatOptions","integerFormatOptions","formatter","Formatter","renderOptions","PlotlyProp","e","PlotComponent","config","isPlotShown","DateUtils","Plotly","ChartContainer","chartTheme","useChartTheme"],"mappings":"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"}
|