@deephaven/dashboard-core-plugins 0.15.5-beta.3 → 0.15.5-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ChartBuilderPlugin.d.ts.map +1 -1
- package/dist/ChartBuilderPlugin.js +2 -1
- package/dist/ChartBuilderPlugin.js.map +1 -1
- package/dist/FilterPlugin.js +1 -1
- package/dist/FilterPlugin.js.map +1 -1
- package/dist/controls/ControlType.d.ts +1 -1
- package/dist/controls/ControlType.d.ts.map +1 -1
- package/dist/controls/ControlType.js.map +1 -1
- package/dist/controls/dropdown-filter/DropdownFilter.d.ts +73 -81
- package/dist/controls/dropdown-filter/DropdownFilter.d.ts.map +1 -1
- package/dist/controls/dropdown-filter/DropdownFilter.js +41 -58
- package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
- package/dist/controls/input-filter/InputFilter.d.ts +46 -46
- package/dist/controls/input-filter/InputFilter.d.ts.map +1 -1
- package/dist/controls/input-filter/InputFilter.js +32 -39
- package/dist/controls/input-filter/InputFilter.js.map +1 -1
- package/dist/controls/markdown/MarkdownContainer.d.ts +11 -16
- package/dist/controls/markdown/MarkdownContainer.d.ts.map +1 -1
- package/dist/controls/markdown/MarkdownContainer.js +5 -8
- package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
- package/dist/controls/markdown/MarkdownEditor.d.ts +17 -19
- package/dist/controls/markdown/MarkdownEditor.d.ts.map +1 -1
- package/dist/controls/markdown/MarkdownEditor.js +5 -8
- package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
- package/dist/controls/markdown/MarkdownStartPage.d.ts +24 -28
- package/dist/controls/markdown/MarkdownStartPage.d.ts.map +1 -1
- package/dist/controls/markdown/MarkdownStartPage.js +19 -23
- package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
- package/dist/controls/markdown/MarkdownUtils.d.ts +4 -4
- package/dist/controls/markdown/MarkdownUtils.d.ts.map +1 -1
- package/dist/controls/markdown/MarkdownUtils.js +2 -2
- package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
- package/dist/events/ChartEvent.d.ts +1 -1
- package/dist/events/ChartEvent.d.ts.map +1 -1
- package/dist/events/ChartEvent.js.map +1 -1
- package/dist/events/ConsoleEvent.d.ts +1 -1
- package/dist/events/ConsoleEvent.d.ts.map +1 -1
- package/dist/events/ConsoleEvent.js.map +1 -1
- package/dist/events/InputFilterEvent.d.ts +1 -1
- package/dist/events/InputFilterEvent.d.ts.map +1 -1
- package/dist/events/InputFilterEvent.js.map +1 -1
- package/dist/events/IrisGridEvent.d.ts +1 -1
- package/dist/events/IrisGridEvent.d.ts.map +1 -1
- package/dist/events/IrisGridEvent.js.map +1 -1
- package/dist/events/NotebookEvent.d.ts +1 -1
- package/dist/events/NotebookEvent.d.ts.map +1 -1
- package/dist/events/NotebookEvent.js.map +1 -1
- package/dist/events/PQEvent.d.ts +1 -1
- package/dist/events/PQEvent.d.ts.map +1 -1
- package/dist/events/PQEvent.js.map +1 -1
- package/dist/events/PandasEvent.d.ts +1 -1
- package/dist/events/PandasEvent.d.ts.map +1 -1
- package/dist/events/PandasEvent.js.map +1 -1
- package/dist/events/TabEvent.d.ts +1 -1
- package/dist/events/TabEvent.d.ts.map +1 -1
- package/dist/events/TabEvent.js.map +1 -1
- package/dist/events/index.d.ts +8 -8
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js.map +1 -1
- package/dist/linker/ColumnSelectionValidator.d.ts +4 -0
- package/dist/linker/ColumnSelectionValidator.d.ts.map +1 -0
- package/dist/linker/ColumnSelectionValidator.js +2 -0
- package/dist/linker/ColumnSelectionValidator.js.map +1 -0
- package/dist/linker/Linker.d.ts +11 -11
- package/dist/linker/Linker.js +1 -1
- package/dist/linker/Linker.js.map +1 -1
- package/dist/linker/LinkerUtils.d.ts +3 -3
- package/dist/linker/LinkerUtils.d.ts.map +1 -1
- package/dist/linker/LinkerUtils.js.map +1 -1
- package/dist/linker/ToolType.d.ts +1 -1
- package/dist/linker/ToolType.d.ts.map +1 -1
- package/dist/linker/ToolType.js.map +1 -1
- package/dist/panels/ChartColumnSelectorOverlay.d.ts +22 -26
- package/dist/panels/ChartColumnSelectorOverlay.d.ts.map +1 -1
- package/dist/panels/ChartColumnSelectorOverlay.js +5 -14
- package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
- package/dist/panels/ChartFilterOverlay.d.ts +27 -21
- package/dist/panels/ChartFilterOverlay.d.ts.map +1 -1
- package/dist/panels/ChartFilterOverlay.js.map +1 -1
- package/dist/panels/ChartPanel.d.ts +149 -152
- package/dist/panels/ChartPanel.d.ts.map +1 -1
- package/dist/panels/ChartPanel.js +65 -73
- package/dist/panels/ChartPanel.js.map +1 -1
- package/dist/panels/CommandHistoryPanel.d.ts +41 -56
- package/dist/panels/CommandHistoryPanel.d.ts.map +1 -1
- package/dist/panels/CommandHistoryPanel.js +13 -35
- package/dist/panels/CommandHistoryPanel.js.map +1 -1
- package/dist/panels/ConsolePanel.d.ts +63 -73
- package/dist/panels/ConsolePanel.d.ts.map +1 -1
- package/dist/panels/ConsolePanel.js +67 -83
- package/dist/panels/ConsolePanel.js.map +1 -1
- package/dist/panels/DropdownFilterPanel.d.ts +110 -106
- package/dist/panels/DropdownFilterPanel.d.ts.map +1 -1
- package/dist/panels/DropdownFilterPanel.js +60 -62
- package/dist/panels/DropdownFilterPanel.js.map +1 -1
- package/dist/panels/FileExplorerPanel.d.ts +5 -7
- package/dist/panels/FileExplorerPanel.d.ts.map +1 -1
- package/dist/panels/FileExplorerPanel.js.map +1 -1
- package/dist/panels/FilterSetManager.d.ts +3 -1
- package/dist/panels/FilterSetManager.d.ts.map +1 -1
- package/dist/panels/FilterSetManager.js.map +1 -1
- package/dist/panels/FilterSetManagerPanel.d.ts +83 -62
- package/dist/panels/FilterSetManagerPanel.d.ts.map +1 -1
- package/dist/panels/FilterSetManagerPanel.js +58 -36
- package/dist/panels/FilterSetManagerPanel.js.map +1 -1
- package/dist/panels/InputFilterPanel.d.ts +50 -51
- package/dist/panels/InputFilterPanel.d.ts.map +1 -1
- package/dist/panels/InputFilterPanel.js +35 -34
- package/dist/panels/InputFilterPanel.js.map +1 -1
- package/dist/panels/IrisGridPanel.d.ts +191 -178
- package/dist/panels/IrisGridPanel.d.ts.map +1 -1
- package/dist/panels/IrisGridPanel.js +150 -179
- package/dist/panels/IrisGridPanel.js.map +1 -1
- package/dist/panels/LogPanel.d.ts +29 -45
- package/dist/panels/LogPanel.d.ts.map +1 -1
- package/dist/panels/LogPanel.js +9 -11
- package/dist/panels/LogPanel.js.map +1 -1
- package/dist/panels/MarkdownNotebook.d.ts +34 -34
- package/dist/panels/MarkdownNotebook.d.ts.map +1 -1
- package/dist/panels/MarkdownNotebook.js +21 -18
- package/dist/panels/MarkdownNotebook.js.map +1 -1
- package/dist/panels/MarkdownPanel.d.ts +41 -47
- package/dist/panels/MarkdownPanel.d.ts.map +1 -1
- package/dist/panels/MarkdownPanel.js +17 -19
- package/dist/panels/MarkdownPanel.js.map +1 -1
- package/dist/panels/NotebookPanel.d.ts +137 -115
- package/dist/panels/NotebookPanel.d.ts.map +1 -1
- package/dist/panels/NotebookPanel.js +95 -68
- package/dist/panels/NotebookPanel.js.map +1 -1
- package/dist/panels/PandasPanel.d.ts +20 -17
- package/dist/panels/PandasPanel.d.ts.map +1 -1
- package/dist/panels/PandasPanel.js +17 -13
- package/dist/panels/PandasPanel.js.map +1 -1
- package/dist/panels/Panel.d.ts +87 -123
- package/dist/panels/Panel.d.ts.map +1 -1
- package/dist/panels/Panel.js +29 -54
- package/dist/panels/Panel.js.map +1 -1
- package/dist/panels/PanelContextMenu.d.ts +16 -31
- package/dist/panels/PanelContextMenu.d.ts.map +1 -1
- package/dist/panels/PanelContextMenu.js +12 -15
- package/dist/panels/PanelContextMenu.js.map +1 -1
- package/dist/panels/RenameDialog.d.ts +26 -28
- package/dist/panels/RenameDialog.d.ts.map +1 -1
- package/dist/panels/RenameDialog.js +15 -19
- package/dist/panels/RenameDialog.js.map +1 -1
- package/dist/panels/WidgetPanel.d.ts +72 -106
- package/dist/panels/WidgetPanel.d.ts.map +1 -1
- package/dist/panels/WidgetPanel.js +17 -47
- package/dist/panels/WidgetPanel.js.map +1 -1
- package/dist/panels/WidgetPanelTooltip.d.ts +29 -22
- package/dist/panels/WidgetPanelTooltip.d.ts.map +1 -1
- package/dist/panels/WidgetPanelTooltip.js +1 -1
- package/dist/panels/WidgetPanelTooltip.js.map +1 -1
- package/dist/prop-types/CommonPropTypes.d.ts +4 -4
- package/dist/prop-types/CommonPropTypes.d.ts.map +1 -1
- package/dist/prop-types/CommonPropTypes.js +1 -1
- package/dist/prop-types/CommonPropTypes.js.map +1 -1
- package/dist/prop-types/UIPropTypes.d.ts +2 -7
- package/dist/prop-types/UIPropTypes.d.ts.map +1 -1
- package/dist/prop-types/UIPropTypes.js +0 -7
- package/dist/prop-types/UIPropTypes.js.map +1 -1
- package/dist/prop-types/index.d.ts +2 -2
- package/dist/prop-types/index.d.ts.map +1 -1
- package/dist/prop-types/index.js.map +1 -1
- package/dist/redux/actionTypes.d.ts +1 -1
- package/dist/redux/actionTypes.d.ts.map +1 -1
- package/dist/redux/actionTypes.js.map +1 -1
- package/dist/redux/actions.d.ts +63 -8
- package/dist/redux/actions.d.ts.map +1 -1
- package/dist/redux/actions.js +17 -17
- package/dist/redux/actions.js.map +1 -1
- package/dist/redux/reducers/index.d.ts +3 -4
- package/dist/redux/reducers/index.d.ts.map +1 -1
- package/dist/redux/reducers/index.js.map +1 -1
- package/dist/redux/reducers/sessionWrapper.d.ts +1 -1
- package/dist/redux/reducers/sessionWrapper.d.ts.map +1 -1
- package/dist/redux/reducers/sessionWrapper.js.map +1 -1
- package/dist/redux/selectors.d.ts +63 -9
- package/dist/redux/selectors.d.ts.map +1 -1
- package/dist/redux/selectors.js +24 -24
- package/dist/redux/selectors.js.map +1 -1
- package/package.json +20 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/panels/PanelContextMenu.
|
|
1
|
+
{"version":3,"sources":["../../src/panels/PanelContextMenu.tsx"],"names":["React","PureComponent","ContextActions","PanelContextMenu","constructor","props","handleCloseTab","bind","handleCloseTabsRight","handleCloseTabsAll","getAllTabs","glContainer","tab","header","tabs","close","forEach","contentItem","container","i","length","config","id","canCloseTabsRight","disabled","isClosable","canCloseAny","render","additionalActions","contextActions","push","title","order","group","groups","low","action"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,aAAhB,QAAmD,OAAnD;AACA,SAAwBC,cAAxB,QAA8C,uBAA9C;;AAaA,MAAMC,gBAAN,SAA+BF,aAA/B,CAGE;AAKAG,EAAAA,WAAW,CAACC,KAAD,EAA+B;AACxC,UAAMA,KAAN;AAEA,SAAKC,cAAL,GAAsB,KAAKA,cAAL,CAAoBC,IAApB,CAAyB,IAAzB,CAAtB;AACA,SAAKC,oBAAL,GAA4B,KAAKA,oBAAL,CAA0BD,IAA1B,CAA+B,IAA/B,CAA5B;AACA,SAAKE,kBAAL,GAA0B,KAAKA,kBAAL,CAAwBF,IAAxB,CAA6B,IAA7B,CAA1B;AACD;;AAEDG,EAAAA,UAAU,GAAU;AAAA;;AAClB;AACA,QAAM;AAAEC,MAAAA;AAAF,QAAkB,KAAKN,KAA7B;AACA,WAAO,CAAC,6BAAIM,WAAJ,aAAIA,WAAJ,2CAAIA,WAAW,CAAEC,GAAjB,+EAAI,iBAAkBC,MAAtB,2DAAI,uBAA0BC,IAA9B,yEAAsC,EAAtC,CAAD,CAAP;AACD;;AAEDR,EAAAA,cAAc,GAAS;AACrB,QAAM;AAAEK,MAAAA;AAAF,QAAkB,KAAKN,KAA7B;AACAM,IAAAA,WAAW,CAACI,KAAZ;AACD;;AAEDN,EAAAA,kBAAkB,GAAS;AACzB,QAAMK,IAAI,GAAG,KAAKJ,UAAL,EAAb,CADyB,CAGzB;AACA;;AACAI,IAAAA,IAAI,CAACE,OAAL,CAAaJ,GAAG;AAAA;;AAAA,2BACd,CAAEA,GAAF,aAAEA,GAAF,uBAAEA,GAAG,CAAEK,WAAP,EAAgDC,SADlC,+CACd,WAA2DH,KAA3D,EADc;AAAA,KAAhB;AAGD;;AAEDP,EAAAA,oBAAoB,GAAS;AAC3B,QAAM;AAAEG,MAAAA;AAAF,QAAkB,KAAKN,KAA7B;AACA,QAAMS,IAAI,GAAG,KAAKJ,UAAL,EAAb;;AAEA,SAAK,IAAIS,CAAC,GAAGL,IAAI,CAACM,MAAL,GAAc,CAA3B,EAA8BD,CAAC,GAAG,CAAlC,EAAqCA,CAAC,IAAI,CAA1C,EAA6C;AAAA;;AAC3C,UACE,wBAAAL,IAAI,CAACK,CAAD,CAAJ,CAAQF,WAAR,qGAAqBI,MAArB,gFAA6BC,EAA7B,4BACAX,WAAW,CAACC,GADZ,+EACA,kBAAiBK,WADjB,oFACA,sBAA8BI,MAD9B,2DACA,uBAAsCC,EADtC,CADF,EAGE;AACA,cADA,CACO;AACR,OAN0C,CAQ3C;;;AACA,iCAAER,IAAI,CAACK,CAAD,CAAN,4CAAE,QAASF,WAAX,EAAoDC,SAApD,4DAA+DH,KAA/D;AACD;AACF;;AAEDQ,EAAAA,iBAAiB,GAAY;AAC3B,QAAM;AAAEZ,MAAAA;AAAF,QAAkB,KAAKN,KAA7B;AACA,QAAMS,IAAI,GAAG,KAAKJ,UAAL,EAAb;AAEA,QAAIc,QAAQ,GAAG,IAAf;;AACA,SAAK,IAAIL,CAAC,GAAGL,IAAI,CAACM,MAAL,GAAc,CAA3B,EAA8BD,CAAC,GAAG,CAAlC,EAAqCA,CAAC,IAAI,CAA1C,EAA6C;AAAA;;AAC3C,UACE,yBAAAL,IAAI,CAACK,CAAD,CAAJ,CAAQF,WAAR,uGAAqBI,MAArB,gFAA6BC,EAA7B,4BACAX,WAAW,CAACC,GADZ,+EACA,kBAAiBK,WADjB,oFACA,sBAA8BI,MAD9B,2DACA,uBAAsCC,EADtC,CADF,EAGE;AACA,cADA,CACO;AACR;;AACD,sBAAIR,IAAI,CAACK,CAAD,CAAR,6DAAI,SAASF,WAAb,0EAAI,qBAAsBI,MAA1B,kDAAI,sBAA8BI,UAAlC,EAA8C;AAC5CD,QAAAA,QAAQ,GAAG,KAAX;AACA,cAF4C,CAErC;AACR;AACF;;AACD,WAAOA,QAAP;AACD;;AAEDE,EAAAA,WAAW,GAAY;AACrB,QAAMZ,IAAI,GAAG,KAAKJ,UAAL,EAAb;AAEA,QAAIc,QAAQ,GAAG,IAAf;;AACA,SAAK,IAAIL,CAAC,GAAGL,IAAI,CAACM,MAAL,GAAc,CAA3B,EAA8BD,CAAC,GAAG,CAAlC,EAAqCA,CAAC,IAAI,CAA1C,EAA6C;AAAA;;AAC3C,sBAAIL,IAAI,CAACK,CAAD,CAAR,6DAAI,SAASF,WAAb,0EAAI,qBAAsBI,MAA1B,kDAAI,sBAA8BI,UAAlC,EAA8C;AAC5CD,QAAAA,QAAQ,GAAG,KAAX;AACA;AACD;AACF;;AACD,WAAOA,QAAP;AACD;;AAEDG,EAAAA,MAAM,GAAiB;AAAA;;AACrB,QAAM;AAAEC,MAAAA,iBAAF;AAAqBjB,MAAAA;AAArB,QAAqC,KAAKN,KAAhD;AAEA,QAAMwB,cAAyD,GAAG,CAChE,GAAGD,iBAD6D,CAAlE;AAIAC,IAAAA,cAAc,CAACC,IAAf,CAAoB;AAClBC,MAAAA,KAAK,EAAE,OADW;AAElBC,MAAAA,KAAK,EAAE,EAFW;AAGlBC,MAAAA,KAAK,EAAE/B,cAAc,CAACgC,MAAf,CAAsBC,GAHX;AAIlBC,MAAAA,MAAM,EAAE,KAAK9B,cAJK;AAKlBkB,MAAAA,QAAQ,EAAE,uBAACb,WAAW,CAACC,GAAb,uEAAC,kBAAiBK,WAAlB,4EAAC,sBAA8BI,MAA/B,mDAAC,uBAAsCI,UAAvC;AALQ,KAApB,EAPqB,CAerB;;AACAI,IAAAA,cAAc,CAACC,IAAf,CAAoB,OAAO;AACzBC,MAAAA,KAAK,EAAE,qBADkB;AAEzBC,MAAAA,KAAK,EAAE,EAFkB;AAGzBC,MAAAA,KAAK,EAAE/B,cAAc,CAACgC,MAAf,CAAsBC,GAHJ;AAIzBC,MAAAA,MAAM,EAAE,KAAK5B,oBAJY;AAKzBgB,MAAAA,QAAQ,EAAE,KAAKD,iBAAL;AALe,KAAP,CAApB;AAQAM,IAAAA,cAAc,CAACC,IAAf,CAAoB,OAAO;AACzBC,MAAAA,KAAK,EAAE,WADkB;AAEzBC,MAAAA,KAAK,EAAE,EAFkB;AAGzBC,MAAAA,KAAK,EAAE/B,cAAc,CAACgC,MAAf,CAAsBC,GAHJ;AAIzBC,MAAAA,MAAM,EAAE,KAAK3B,kBAJY;AAKzBe,MAAAA,QAAQ,EAAE,KAAKE,WAAL;AALe,KAAP,CAApB;AAQA,wBAAO,oBAAC,cAAD;AAAgB,MAAA,OAAO,EAAEG;AAAzB,MAAP;AACD;;AArHD;;gBAHI1B,gB,kBAIkB;AACpByB,EAAAA,iBAAiB,EAAE;AADC,C;;AAuHxB,eAAezB,gBAAf","sourcesContent":["import React, { PureComponent, ReactElement } from 'react';\nimport { ContextAction, ContextActions } from '@deephaven/components';\nimport { Container, Tab } from '@deephaven/golden-layout';\n\ninterface PanelContextMenuProps {\n additionalActions: ContextAction[];\n glContainer: Container;\n}\n\ninterface HasContainer {\n container: {\n close: () => void;\n };\n}\nclass PanelContextMenu extends PureComponent<\n PanelContextMenuProps,\n Record<string, never>\n> {\n static defaultProps = {\n additionalActions: [],\n };\n\n constructor(props: PanelContextMenuProps) {\n super(props);\n\n this.handleCloseTab = this.handleCloseTab.bind(this);\n this.handleCloseTabsRight = this.handleCloseTabsRight.bind(this);\n this.handleCloseTabsAll = this.handleCloseTabsAll.bind(this);\n }\n\n getAllTabs(): Tab[] {\n // return a clone of the tabs array, or returns empty array if null\n const { glContainer } = this.props;\n return [...(glContainer?.tab?.header?.tabs ?? [])];\n }\n\n handleCloseTab(): void {\n const { glContainer } = this.props;\n glContainer.close();\n }\n\n handleCloseTabsAll(): void {\n const tabs = this.getAllTabs();\n\n // No need to check if isClosable, golden-layout returns\n // false when attempting to close tabs that you can't\n tabs.forEach(tab =>\n ((tab?.contentItem as unknown) as HasContainer).container?.close()\n );\n }\n\n handleCloseTabsRight(): void {\n const { glContainer } = this.props;\n const tabs = this.getAllTabs();\n\n for (let i = tabs.length - 1; i > 0; i -= 1) {\n if (\n tabs[i].contentItem?.config?.id ===\n glContainer.tab?.contentItem?.config?.id\n ) {\n break; // end when we get back to current id\n }\n\n // eslint-disable-next-line no-unused-expressions\n ((tabs[i]?.contentItem as unknown) as HasContainer).container?.close();\n }\n }\n\n canCloseTabsRight(): boolean {\n const { glContainer } = this.props;\n const tabs = this.getAllTabs();\n\n let disabled = true;\n for (let i = tabs.length - 1; i > 0; i -= 1) {\n if (\n tabs[i].contentItem?.config?.id ===\n glContainer.tab?.contentItem?.config?.id\n ) {\n break; // end when we get back to current id\n }\n if (tabs[i]?.contentItem?.config?.isClosable) {\n disabled = false;\n break; // end if we find a closeable tab\n }\n }\n return disabled;\n }\n\n canCloseAny(): boolean {\n const tabs = this.getAllTabs();\n\n let disabled = true;\n for (let i = tabs.length - 1; i > 0; i -= 1) {\n if (tabs[i]?.contentItem?.config?.isClosable) {\n disabled = false;\n break;\n }\n }\n return disabled;\n }\n\n render(): ReactElement {\n const { additionalActions, glContainer } = this.props;\n\n const contextActions: (ContextAction | (() => ContextAction))[] = [\n ...additionalActions,\n ];\n\n contextActions.push({\n title: 'Close',\n order: 10,\n group: ContextActions.groups.low,\n action: this.handleCloseTab,\n disabled: !glContainer.tab?.contentItem?.config?.isClosable,\n });\n\n // pushed as function so the disable check happens on run\n contextActions.push(() => ({\n title: 'Close Tabs to Right',\n order: 20,\n group: ContextActions.groups.low,\n action: this.handleCloseTabsRight,\n disabled: this.canCloseTabsRight(),\n }));\n\n contextActions.push(() => ({\n title: 'Close All',\n order: 30,\n group: ContextActions.groups.low,\n action: this.handleCloseTabsAll,\n disabled: this.canCloseAny(),\n }));\n\n return <ContextActions actions={contextActions} />;\n }\n}\n\nexport default PanelContextMenu;\n"],"file":"PanelContextMenu.js"}
|
|
@@ -1,36 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
import { ChangeEvent, FormEvent, PureComponent, ReactElement, RefObject } from 'react';
|
|
2
|
+
interface RenameDialogProps {
|
|
3
|
+
isShared: boolean;
|
|
4
|
+
isOwner: boolean;
|
|
5
|
+
isShown: boolean;
|
|
6
|
+
itemType: string;
|
|
7
|
+
onSubmit: (title: string) => void;
|
|
8
|
+
onCancel: () => void;
|
|
9
|
+
value?: string | null;
|
|
10
|
+
}
|
|
11
|
+
interface RenameDialogState {
|
|
12
|
+
value?: string | null;
|
|
13
|
+
valueWasValidated: boolean;
|
|
10
14
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const isShared: PropTypes.Requireable<boolean>;
|
|
14
|
-
const isOwner: PropTypes.Requireable<boolean>;
|
|
15
|
-
const isShown: PropTypes.Validator<boolean>;
|
|
16
|
-
const itemType: PropTypes.Requireable<string>;
|
|
17
|
-
const onSubmit: PropTypes.Validator<(...args: any[]) => any>;
|
|
18
|
-
const onCancel: PropTypes.Validator<(...args: any[]) => any>;
|
|
19
|
-
const value: PropTypes.Requireable<string>;
|
|
20
|
-
}
|
|
21
|
-
const defaultProps: {
|
|
15
|
+
export default class RenameDialog extends PureComponent<RenameDialogProps, RenameDialogState> {
|
|
16
|
+
static defaultProps: {
|
|
22
17
|
isShared: boolean;
|
|
23
18
|
isOwner: boolean;
|
|
24
19
|
itemType: string;
|
|
25
|
-
value?: undefined;
|
|
26
|
-
} | {
|
|
27
20
|
value: string;
|
|
28
|
-
isShared?: undefined;
|
|
29
|
-
isOwner?: undefined;
|
|
30
|
-
itemType?: undefined;
|
|
31
21
|
};
|
|
22
|
+
constructor(props: RenameDialogProps);
|
|
23
|
+
componentDidUpdate(prevProps: RenameDialogProps): void;
|
|
24
|
+
renameInputRef: RefObject<HTMLInputElement>;
|
|
25
|
+
resetState(): void;
|
|
26
|
+
handleRenameDialogOpened(): void;
|
|
27
|
+
handleRenameInputChange(event: ChangeEvent<HTMLInputElement>): void;
|
|
28
|
+
handleRenameCancel(): void;
|
|
29
|
+
handleRenameSubmit(event: FormEvent<HTMLFormElement>): void;
|
|
30
|
+
renderRenameDialog(): ReactElement;
|
|
31
|
+
render(): ReactElement;
|
|
32
32
|
}
|
|
33
|
-
export
|
|
34
|
-
import React from "react";
|
|
35
|
-
import PropTypes from "prop-types";
|
|
33
|
+
export {};
|
|
36
34
|
//# sourceMappingURL=RenameDialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenameDialog.d.ts","sourceRoot":"","sources":["../../src/panels/RenameDialog.
|
|
1
|
+
{"version":3,"file":"RenameDialog.d.ts","sourceRoot":"","sources":["../../src/panels/RenameDialog.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,WAAW,EACX,SAAS,EACT,aAAa,EACb,YAAY,EACZ,SAAS,EACV,MAAM,OAAO,CAAC;AAIf,UAAU,iBAAiB;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,UAAU,iBAAiB;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,aAAa,CACrD,iBAAiB,EACjB,iBAAiB,CAClB;IACC,MAAM,CAAC,YAAY;;;;;MAKjB;gBAEU,KAAK,EAAE,iBAAiB;IAkBpC,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAYtD,cAAc,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAE5C,UAAU,IAAI,IAAI;IAKlB,wBAAwB,IAAI,IAAI;IAMhC,uBAAuB,CAAC,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAInE,kBAAkB,IAAI,IAAI;IAK1B,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,eAAe,CAAC,GAAG,IAAI;IAa3D,kBAAkB,IAAI,YAAY;IAyDlC,MAAM,IAAI,YAAY;CAkBvB"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
|
|
1
3
|
import React, { PureComponent } from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
4
|
import classNames from 'classnames';
|
|
4
5
|
import { Popper } from '@deephaven/components';
|
|
5
6
|
export default class RenameDialog extends PureComponent {
|
|
6
7
|
constructor(props) {
|
|
7
8
|
super(props);
|
|
9
|
+
|
|
10
|
+
_defineProperty(this, "renameInputRef", void 0);
|
|
11
|
+
|
|
8
12
|
this.handleRenameDialogOpened = this.handleRenameDialogOpened.bind(this);
|
|
9
13
|
this.handleRenameInputChange = this.handleRenameInputChange.bind(this);
|
|
10
14
|
this.handleRenameCancel = this.handleRenameCancel.bind(this);
|
|
@@ -47,7 +51,9 @@ export default class RenameDialog extends PureComponent {
|
|
|
47
51
|
|
|
48
52
|
handleRenameDialogOpened() {
|
|
49
53
|
if (this.renameInputRef) {
|
|
50
|
-
|
|
54
|
+
var _this$renameInputRef$;
|
|
55
|
+
|
|
56
|
+
(_this$renameInputRef$ = this.renameInputRef.current) === null || _this$renameInputRef$ === void 0 ? void 0 : _this$renameInputRef$.focus();
|
|
51
57
|
}
|
|
52
58
|
}
|
|
53
59
|
|
|
@@ -70,9 +76,9 @@ export default class RenameDialog extends PureComponent {
|
|
|
70
76
|
var {
|
|
71
77
|
value
|
|
72
78
|
} = this.state;
|
|
73
|
-
var newTitle = value.trim();
|
|
79
|
+
var newTitle = value === null || value === void 0 ? void 0 : value.trim();
|
|
74
80
|
|
|
75
|
-
if (newTitle !== '') {
|
|
81
|
+
if (newTitle !== undefined && newTitle !== '') {
|
|
76
82
|
var {
|
|
77
83
|
onSubmit
|
|
78
84
|
} = this.props;
|
|
@@ -117,7 +123,7 @@ export default class RenameDialog extends PureComponent {
|
|
|
117
123
|
type: "text",
|
|
118
124
|
className: "form-control",
|
|
119
125
|
id: "rename-dialog-".concat(itemType, "-input"),
|
|
120
|
-
value: value,
|
|
126
|
+
value: value !== null && value !== void 0 ? value : undefined,
|
|
121
127
|
ref: this.renameInputRef,
|
|
122
128
|
onChange: this.handleRenameInputChange,
|
|
123
129
|
required: true
|
|
@@ -160,21 +166,11 @@ export default class RenameDialog extends PureComponent {
|
|
|
160
166
|
}
|
|
161
167
|
|
|
162
168
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
isOwner: PropTypes.bool,
|
|
166
|
-
isShown: PropTypes.bool.isRequired,
|
|
167
|
-
itemType: PropTypes.string,
|
|
168
|
-
onSubmit: PropTypes.func.isRequired,
|
|
169
|
-
onCancel: PropTypes.func.isRequired,
|
|
170
|
-
value: PropTypes.string
|
|
171
|
-
};
|
|
172
|
-
RenameDialog.defaultProps = {
|
|
169
|
+
|
|
170
|
+
_defineProperty(RenameDialog, "defaultProps", {
|
|
173
171
|
isShared: false,
|
|
174
172
|
isOwner: true,
|
|
175
|
-
itemType: 'Item'
|
|
176
|
-
};
|
|
177
|
-
RenameDialog.defaultProps = {
|
|
173
|
+
itemType: 'Item',
|
|
178
174
|
value: ''
|
|
179
|
-
};
|
|
175
|
+
});
|
|
180
176
|
//# sourceMappingURL=RenameDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/panels/RenameDialog.
|
|
1
|
+
{"version":3,"sources":["../../src/panels/RenameDialog.tsx"],"names":["React","PureComponent","classNames","Popper","RenameDialog","constructor","props","handleRenameDialogOpened","bind","handleRenameInputChange","handleRenameCancel","handleRenameSubmit","renameInputRef","createRef","value","state","valueWasValidated","componentDidUpdate","prevProps","isShown","prevIsShown","resetState","setState","current","focus","event","target","onCancel","stopPropagation","preventDefault","newTitle","trim","undefined","onSubmit","renderRenameDialog","isShared","isOwner","itemType","render","placement","modifiers","preventOverflow","boundariesElement"],"mappings":"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","sourcesContent":["import React, {\n ChangeEvent,\n FormEvent,\n PureComponent,\n ReactElement,\n RefObject,\n} from 'react';\nimport classNames from 'classnames';\nimport { Popper } from '@deephaven/components';\n\ninterface RenameDialogProps {\n isShared: boolean;\n isOwner: boolean;\n isShown: boolean;\n itemType: string;\n onSubmit: (title: string) => void;\n onCancel: () => void;\n value?: string | null;\n}\n\ninterface RenameDialogState {\n value?: string | null;\n valueWasValidated: boolean;\n}\n\nexport default class RenameDialog extends PureComponent<\n RenameDialogProps,\n RenameDialogState\n> {\n static defaultProps = {\n isShared: false,\n isOwner: true,\n itemType: 'Item',\n value: '',\n };\n\n constructor(props: RenameDialogProps) {\n super(props);\n\n this.handleRenameDialogOpened = this.handleRenameDialogOpened.bind(this);\n this.handleRenameInputChange = this.handleRenameInputChange.bind(this);\n this.handleRenameCancel = this.handleRenameCancel.bind(this);\n this.handleRenameSubmit = this.handleRenameSubmit.bind(this);\n\n this.renameInputRef = React.createRef();\n\n const { value } = props;\n\n this.state = {\n value,\n valueWasValidated: false,\n };\n }\n\n componentDidUpdate(prevProps: RenameDialogProps): void {\n const { isShown: prevIsShown } = prevProps;\n const { isShown } = this.props;\n // Reset the state on dialog shown and not on the `value` prop change\n // so the input keeps the internal value while the dialog is open.\n // Useful in case the `value` prop update is triggered externally\n // i.e. by someone else renaming the same shared dashboard\n if (isShown && !prevIsShown) {\n this.resetState();\n }\n }\n\n renameInputRef: RefObject<HTMLInputElement>;\n\n resetState(): void {\n const { value } = this.props;\n this.setState({ value, valueWasValidated: false });\n }\n\n handleRenameDialogOpened(): void {\n if (this.renameInputRef) {\n this.renameInputRef.current?.focus();\n }\n }\n\n handleRenameInputChange(event: ChangeEvent<HTMLInputElement>): void {\n this.setState({ value: event.target.value });\n }\n\n handleRenameCancel(): void {\n const { onCancel } = this.props;\n onCancel();\n }\n\n handleRenameSubmit(event: FormEvent<HTMLFormElement>): void {\n event.stopPropagation();\n event.preventDefault();\n const { value } = this.state;\n const newTitle = value?.trim();\n if (newTitle !== undefined && newTitle !== '') {\n const { onSubmit } = this.props;\n onSubmit(newTitle);\n } else {\n this.setState({ value: newTitle, valueWasValidated: true });\n }\n }\n\n renderRenameDialog(): ReactElement {\n const { isShared, isOwner, itemType } = this.props;\n const { value, valueWasValidated } = this.state;\n\n return (\n <form\n className={classNames('p-3', { 'was-validated': valueWasValidated })}\n onSubmit={this.handleRenameSubmit}\n noValidate\n role=\"presentation\"\n onMouseDown={event => {\n // block events in the NewTabScreen ItemList\n event.stopPropagation();\n }}\n onMouseUp={event => {\n event.stopPropagation();\n }}\n >\n <div className=\"form-group\">\n <label htmlFor={`rename-dialog-${itemType}-input`}>\n Rename {itemType}\n </label>\n <input\n type=\"text\"\n className=\"form-control\"\n id={`rename-dialog-${itemType}-input`}\n value={value ?? undefined}\n ref={this.renameInputRef}\n onChange={this.handleRenameInputChange}\n required\n />\n <div className=\"invalid-feedback\">\n {itemType} name cannot be empty\n </div>\n {(isShared || !isOwner) && (\n <div className=\"pt-2\">\n Renaming this {itemType} will rename for all users.\n </div>\n )}\n </div>\n\n <div className=\"text-right\">\n <button\n type=\"button\"\n className=\"btn btn-outline-primary mr-2\"\n onClick={this.handleRenameCancel}\n >\n Cancel\n </button>\n <button type=\"submit\" className=\"btn btn-primary\">\n Rename\n </button>\n </div>\n </form>\n );\n }\n\n render(): ReactElement {\n const { isShown, onCancel } = this.props;\n return (\n <Popper\n isShown={isShown}\n onEntered={this.handleRenameDialogOpened}\n onExited={onCancel}\n options={{\n placement: 'bottom',\n modifiers: { preventOverflow: { boundariesElement: 'viewport' } },\n }}\n interactive\n closeOnBlur\n >\n {this.renderRenameDialog()}\n </Popper>\n );\n }\n}\n"],"file":"RenameDialog.js"}
|
|
@@ -1,112 +1,78 @@
|
|
|
1
|
-
|
|
1
|
+
import { Component, PureComponent, ReactElement, ReactNode } from 'react';
|
|
2
|
+
import { Container, EventEmitter } from '@deephaven/golden-layout';
|
|
3
|
+
import './WidgetPanel.scss';
|
|
4
|
+
interface WidgetPanelProps {
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
componentPanel: Component;
|
|
7
|
+
glContainer: Container;
|
|
8
|
+
glEventHub: EventEmitter;
|
|
9
|
+
className: string;
|
|
10
|
+
errorMessage: string;
|
|
11
|
+
isClonable: boolean;
|
|
12
|
+
isDisconnected: boolean;
|
|
13
|
+
isLoading: boolean;
|
|
14
|
+
isLoaded: boolean;
|
|
15
|
+
isRenamable: boolean;
|
|
16
|
+
showTabTooltip: boolean;
|
|
17
|
+
widgetName: string;
|
|
18
|
+
widgetType: string;
|
|
19
|
+
renderTabTooltip: () => ReactNode;
|
|
20
|
+
description: string;
|
|
21
|
+
onFocus: () => void;
|
|
22
|
+
onBlur: () => void;
|
|
23
|
+
onHide: () => void;
|
|
24
|
+
onClearAllFilters: () => void;
|
|
25
|
+
onResize: () => void;
|
|
26
|
+
onSessionClose: (...args: unknown[]) => void;
|
|
27
|
+
onSessionOpen: (...args: unknown[]) => void;
|
|
28
|
+
onShow: () => void;
|
|
29
|
+
onTabBlur: () => void;
|
|
30
|
+
onTabFocus: () => void;
|
|
31
|
+
onTabClicked: () => void;
|
|
32
|
+
}
|
|
33
|
+
interface WidgetPanelState {
|
|
34
|
+
isClientDisconnected: boolean;
|
|
35
|
+
isPanelDisconnected: boolean;
|
|
36
|
+
isWidgetDisconnected: boolean;
|
|
37
|
+
isWaitingForReconnect: boolean;
|
|
38
|
+
isPanelInactive: boolean;
|
|
39
|
+
}
|
|
2
40
|
/**
|
|
3
41
|
* Widget panel component that has a loading spinner and displays an error message when set
|
|
4
42
|
*/
|
|
5
|
-
declare class WidgetPanel extends
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
43
|
+
declare class WidgetPanel extends PureComponent<WidgetPanelProps, WidgetPanelState> {
|
|
44
|
+
static defaultProps: {
|
|
45
|
+
className: string;
|
|
46
|
+
errorMessage: null;
|
|
47
|
+
isClonable: boolean;
|
|
48
|
+
isDisconnected: boolean;
|
|
49
|
+
isLoading: boolean;
|
|
50
|
+
isLoaded: boolean;
|
|
51
|
+
isRenamable: boolean;
|
|
52
|
+
showTabTooltip: boolean;
|
|
53
|
+
widgetName: string;
|
|
54
|
+
widgetType: string;
|
|
55
|
+
renderTabTooltip: null;
|
|
56
|
+
description: string;
|
|
57
|
+
onFocus: () => void;
|
|
58
|
+
onBlur: () => void;
|
|
59
|
+
onHide: () => void;
|
|
60
|
+
onClearAllFilters: () => void;
|
|
61
|
+
onResize: () => void;
|
|
62
|
+
onSessionClose: () => void;
|
|
63
|
+
onSessionOpen: () => void;
|
|
64
|
+
onShow: () => void;
|
|
65
|
+
onTabBlur: () => void;
|
|
66
|
+
onTabFocus: () => void;
|
|
67
|
+
onTabClicked: () => void;
|
|
68
|
+
};
|
|
69
|
+
constructor(props: WidgetPanelProps);
|
|
9
70
|
handleCopyName(): void;
|
|
10
|
-
getErrorMessage(): string |
|
|
11
|
-
getCachedRenderTabTooltip: (
|
|
71
|
+
getErrorMessage(): string | undefined;
|
|
72
|
+
getCachedRenderTabTooltip: (showTabTooltip: boolean, glContainer: Container, widgetType: string, widgetName: string, description: string) => (() => JSX.Element) | null;
|
|
73
|
+
handleSessionClosed(...args: unknown[]): void;
|
|
74
|
+
handleSessionOpened(...args: unknown[]): void;
|
|
75
|
+
render(): ReactElement;
|
|
12
76
|
}
|
|
13
|
-
|
|
14
|
-
namespace propTypes {
|
|
15
|
-
const children: PropTypes.Validator<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
|
|
16
|
-
const componentPanel: PropTypes.Validator<React.Component<unknown, unknown, unknown>>;
|
|
17
|
-
const glContainer: PropTypes.Validator<PropTypes.InferProps<{
|
|
18
|
-
on: PropTypes.Requireable<(...args: any[]) => any>;
|
|
19
|
-
off: PropTypes.Requireable<(...args: any[]) => any>;
|
|
20
|
-
isHidden: PropTypes.Requireable<boolean>;
|
|
21
|
-
tab: PropTypes.Requireable<PropTypes.InferProps<{
|
|
22
|
-
header: PropTypes.Requireable<PropTypes.InferProps<{
|
|
23
|
-
tabs: PropTypes.Requireable<(PropTypes.InferProps<{
|
|
24
|
-
contentItem: PropTypes.Requireable<PropTypes.InferProps<{}>>;
|
|
25
|
-
}> | null | undefined)[]>;
|
|
26
|
-
}>>;
|
|
27
|
-
}>>;
|
|
28
|
-
title: PropTypes.Requireable<string>;
|
|
29
|
-
setTitle: PropTypes.Requireable<(...args: any[]) => any>;
|
|
30
|
-
close: PropTypes.Requireable<(...args: any[]) => any>;
|
|
31
|
-
}>>;
|
|
32
|
-
const glEventHub: PropTypes.Validator<PropTypes.InferProps<{
|
|
33
|
-
on: PropTypes.Requireable<(...args: any[]) => any>;
|
|
34
|
-
off: PropTypes.Requireable<(...args: any[]) => any>;
|
|
35
|
-
emit: PropTypes.Requireable<(...args: any[]) => any>;
|
|
36
|
-
}>>;
|
|
37
|
-
const className: PropTypes.Requireable<string>;
|
|
38
|
-
const errorMessage: PropTypes.Requireable<string>;
|
|
39
|
-
const isClonable: PropTypes.Requireable<boolean>;
|
|
40
|
-
const isDisconnected: PropTypes.Requireable<boolean>;
|
|
41
|
-
const isLoading: PropTypes.Requireable<boolean>;
|
|
42
|
-
const isLoaded: PropTypes.Requireable<boolean>;
|
|
43
|
-
const isRenamable: PropTypes.Requireable<boolean>;
|
|
44
|
-
const showTabTooltip: PropTypes.Requireable<boolean>;
|
|
45
|
-
const widgetName: PropTypes.Requireable<string>;
|
|
46
|
-
const widgetType: PropTypes.Requireable<string>;
|
|
47
|
-
const renderTabTooltip: PropTypes.Requireable<(...args: any[]) => any>;
|
|
48
|
-
const description: PropTypes.Requireable<string>;
|
|
49
|
-
const onFocus: PropTypes.Requireable<(...args: any[]) => any>;
|
|
50
|
-
const onBlur: PropTypes.Requireable<(...args: any[]) => any>;
|
|
51
|
-
const onHide: PropTypes.Requireable<(...args: any[]) => any>;
|
|
52
|
-
const onClearAllFilters: PropTypes.Requireable<(...args: any[]) => any>;
|
|
53
|
-
const onResize: PropTypes.Requireable<(...args: any[]) => any>;
|
|
54
|
-
const onSessionClose: PropTypes.Requireable<(...args: any[]) => any>;
|
|
55
|
-
const onSessionOpen: PropTypes.Requireable<(...args: any[]) => any>;
|
|
56
|
-
const onShow: PropTypes.Requireable<(...args: any[]) => any>;
|
|
57
|
-
const onTabBlur: PropTypes.Requireable<(...args: any[]) => any>;
|
|
58
|
-
const onTabFocus: PropTypes.Requireable<(...args: any[]) => any>;
|
|
59
|
-
const onTabClicked: PropTypes.Requireable<(...args: any[]) => any>;
|
|
60
|
-
}
|
|
61
|
-
namespace defaultProps {
|
|
62
|
-
const className_1: string;
|
|
63
|
-
export { className_1 as className };
|
|
64
|
-
const errorMessage_1: null;
|
|
65
|
-
export { errorMessage_1 as errorMessage };
|
|
66
|
-
const isClonable_1: boolean;
|
|
67
|
-
export { isClonable_1 as isClonable };
|
|
68
|
-
const isDisconnected_1: boolean;
|
|
69
|
-
export { isDisconnected_1 as isDisconnected };
|
|
70
|
-
const isLoading_1: boolean;
|
|
71
|
-
export { isLoading_1 as isLoading };
|
|
72
|
-
const isLoaded_1: boolean;
|
|
73
|
-
export { isLoaded_1 as isLoaded };
|
|
74
|
-
const isRenamable_1: boolean;
|
|
75
|
-
export { isRenamable_1 as isRenamable };
|
|
76
|
-
const showTabTooltip_1: boolean;
|
|
77
|
-
export { showTabTooltip_1 as showTabTooltip };
|
|
78
|
-
const widgetName_1: string;
|
|
79
|
-
export { widgetName_1 as widgetName };
|
|
80
|
-
const widgetType_1: string;
|
|
81
|
-
export { widgetType_1 as widgetType };
|
|
82
|
-
const renderTabTooltip_1: null;
|
|
83
|
-
export { renderTabTooltip_1 as renderTabTooltip };
|
|
84
|
-
const description_1: string;
|
|
85
|
-
export { description_1 as description };
|
|
86
|
-
export function onFocus_1(): void;
|
|
87
|
-
export { onFocus_1 as onFocus };
|
|
88
|
-
export function onBlur_1(): void;
|
|
89
|
-
export { onBlur_1 as onBlur };
|
|
90
|
-
export function onHide_1(): void;
|
|
91
|
-
export { onHide_1 as onHide };
|
|
92
|
-
export function onClearAllFilters_1(): void;
|
|
93
|
-
export { onClearAllFilters_1 as onClearAllFilters };
|
|
94
|
-
export function onResize_1(): void;
|
|
95
|
-
export { onResize_1 as onResize };
|
|
96
|
-
export function onSessionClose_1(): void;
|
|
97
|
-
export { onSessionClose_1 as onSessionClose };
|
|
98
|
-
export function onSessionOpen_1(): void;
|
|
99
|
-
export { onSessionOpen_1 as onSessionOpen };
|
|
100
|
-
export function onShow_1(): void;
|
|
101
|
-
export { onShow_1 as onShow };
|
|
102
|
-
export function onTabBlur_1(): void;
|
|
103
|
-
export { onTabBlur_1 as onTabBlur };
|
|
104
|
-
export function onTabFocus_1(): void;
|
|
105
|
-
export { onTabFocus_1 as onTabFocus };
|
|
106
|
-
export function onTabClicked_1(): void;
|
|
107
|
-
export { onTabClicked_1 as onTabClicked };
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
import React from "react";
|
|
111
|
-
import PropTypes from "prop-types";
|
|
77
|
+
export default WidgetPanel;
|
|
112
78
|
//# sourceMappingURL=WidgetPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetPanel.d.ts","sourceRoot":"","sources":["../../src/panels/WidgetPanel.
|
|
1
|
+
{"version":3,"file":"WidgetPanel.d.ts","sourceRoot":"","sources":["../../src/panels/WidgetPanel.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,SAAS,EACT,aAAa,EACb,YAAY,EACZ,SAAS,EACV,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAInE,OAAO,oBAAoB,CAAC;AAE5B,UAAU,gBAAgB;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,cAAc,EAAE,SAAS,CAAC;IAE1B,WAAW,EAAE,SAAS,CAAC;IACvB,UAAU,EAAE,YAAY,CAAC;IAEzB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,SAAS,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IAEpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,cAAc,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAC7C,aAAa,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAC5C,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,UAAU,gBAAgB;IACxB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,eAAe,EAAE,OAAO,CAAC;CAC1B;AACD;;GAEG;AACH,cAAM,WAAY,SAAQ,aAAa,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IACzE,MAAM,CAAC,YAAY;;;;;;;;;;;;;uBAcJ,IAAI;sBACL,IAAI;sBACJ,IAAI;iCACO,IAAI;wBACb,IAAI;8BACE,IAAI;6BACL,IAAI;sBACX,IAAI;yBACD,IAAI;0BACH,IAAI;4BACF,IAAI;MACtB;gBAEU,KAAK,EAAE,gBAAgB;IAgBnC,cAAc,IAAI,IAAI;IAKtB,eAAe,IAAI,MAAM,GAAG,SAAS;IA4BrC,yBAAyB,mBAEL,OAAO,eACV,SAAS,cACV,MAAM,cACN,MAAM,eACL,MAAM,gCAYrB;IAEF,mBAAmB,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAU7C,mBAAmB,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAK7C,MAAM,IAAI,YAAY;CAwFvB;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
2
|
|
|
3
|
-
import React, {
|
|
3
|
+
import React, { PureComponent } from 'react';
|
|
4
4
|
import classNames from 'classnames';
|
|
5
5
|
import memoize from 'memoize-one';
|
|
6
|
-
import PropTypes from 'prop-types';
|
|
7
6
|
import { ContextActions, ContextActionUtils } from '@deephaven/components';
|
|
8
|
-
import { GLPropTypes } from '@deephaven/dashboard';
|
|
9
7
|
import Panel from "./Panel.js";
|
|
10
8
|
import WidgetPanelTooltip from "./WidgetPanelTooltip.js";
|
|
11
9
|
import "./WidgetPanel.css";
|
|
10
|
+
|
|
12
11
|
/**
|
|
13
12
|
* Widget panel component that has a loading spinner and displays an error message when set
|
|
14
13
|
*/
|
|
15
|
-
|
|
16
14
|
class WidgetPanel extends PureComponent {
|
|
17
15
|
constructor(props) {
|
|
18
16
|
super(props);
|
|
@@ -81,7 +79,7 @@ class WidgetPanel extends PureComponent {
|
|
|
81
79
|
return "".concat(_widgetName, " is unavailable.");
|
|
82
80
|
}
|
|
83
81
|
|
|
84
|
-
return
|
|
82
|
+
return undefined;
|
|
85
83
|
}
|
|
86
84
|
|
|
87
85
|
handleSessionClosed() {
|
|
@@ -176,36 +174,7 @@ class WidgetPanel extends PureComponent {
|
|
|
176
174
|
|
|
177
175
|
}
|
|
178
176
|
|
|
179
|
-
WidgetPanel
|
|
180
|
-
children: PropTypes.node.isRequired,
|
|
181
|
-
componentPanel: PropTypes.instanceOf(Component).isRequired,
|
|
182
|
-
glContainer: GLPropTypes.Container.isRequired,
|
|
183
|
-
glEventHub: GLPropTypes.EventHub.isRequired,
|
|
184
|
-
className: PropTypes.string,
|
|
185
|
-
errorMessage: PropTypes.string,
|
|
186
|
-
isClonable: PropTypes.bool,
|
|
187
|
-
isDisconnected: PropTypes.bool,
|
|
188
|
-
isLoading: PropTypes.bool,
|
|
189
|
-
isLoaded: PropTypes.bool,
|
|
190
|
-
isRenamable: PropTypes.bool,
|
|
191
|
-
showTabTooltip: PropTypes.bool,
|
|
192
|
-
widgetName: PropTypes.string,
|
|
193
|
-
widgetType: PropTypes.string,
|
|
194
|
-
renderTabTooltip: PropTypes.func,
|
|
195
|
-
description: PropTypes.string,
|
|
196
|
-
onFocus: PropTypes.func,
|
|
197
|
-
onBlur: PropTypes.func,
|
|
198
|
-
onHide: PropTypes.func,
|
|
199
|
-
onClearAllFilters: PropTypes.func,
|
|
200
|
-
onResize: PropTypes.func,
|
|
201
|
-
onSessionClose: PropTypes.func,
|
|
202
|
-
onSessionOpen: PropTypes.func,
|
|
203
|
-
onShow: PropTypes.func,
|
|
204
|
-
onTabBlur: PropTypes.func,
|
|
205
|
-
onTabFocus: PropTypes.func,
|
|
206
|
-
onTabClicked: PropTypes.func
|
|
207
|
-
};
|
|
208
|
-
WidgetPanel.defaultProps = {
|
|
177
|
+
_defineProperty(WidgetPanel, "defaultProps", {
|
|
209
178
|
className: '',
|
|
210
179
|
errorMessage: null,
|
|
211
180
|
isClonable: true,
|
|
@@ -218,17 +187,18 @@ WidgetPanel.defaultProps = {
|
|
|
218
187
|
widgetType: 'Widget',
|
|
219
188
|
renderTabTooltip: null,
|
|
220
189
|
description: '',
|
|
221
|
-
onFocus: () =>
|
|
222
|
-
onBlur: () =>
|
|
223
|
-
onHide: () =>
|
|
224
|
-
onClearAllFilters: () =>
|
|
225
|
-
onResize: () =>
|
|
226
|
-
onSessionClose: () =>
|
|
227
|
-
onSessionOpen: () =>
|
|
228
|
-
onShow: () =>
|
|
229
|
-
onTabBlur: () =>
|
|
230
|
-
onTabFocus: () =>
|
|
231
|
-
onTabClicked: () =>
|
|
232
|
-
};
|
|
190
|
+
onFocus: () => undefined,
|
|
191
|
+
onBlur: () => undefined,
|
|
192
|
+
onHide: () => undefined,
|
|
193
|
+
onClearAllFilters: () => undefined,
|
|
194
|
+
onResize: () => undefined,
|
|
195
|
+
onSessionClose: () => undefined,
|
|
196
|
+
onSessionOpen: () => undefined,
|
|
197
|
+
onShow: () => undefined,
|
|
198
|
+
onTabBlur: () => undefined,
|
|
199
|
+
onTabFocus: () => undefined,
|
|
200
|
+
onTabClicked: () => undefined
|
|
201
|
+
});
|
|
202
|
+
|
|
233
203
|
export default WidgetPanel;
|
|
234
204
|
//# sourceMappingURL=WidgetPanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/panels/WidgetPanel.jsx"],"names":["React","Component","PureComponent","classNames","memoize","PropTypes","ContextActions","ContextActionUtils","GLPropTypes","Panel","WidgetPanelTooltip","WidgetPanel","constructor","props","showTabTooltip","glContainer","widgetType","widgetName","description","handleSessionClosed","bind","handleSessionOpened","handleCopyName","state","isClientDisconnected","isPanelDisconnected","isWidgetDisconnected","isWaitingForReconnect","isPanelInactive","copyToClipboard","getErrorMessage","errorMessage","onSessionClose","setState","onSessionOpen","render","children","className","componentPanel","isLoaded","isLoading","glEventHub","isDisconnected","isClonable","isRenamable","renderTabTooltip","onClearAllFilters","onHide","onFocus","onBlur","onResize","onShow","onTabBlur","onTabFocus","onTabClicked","doRenderTabTooltip","getCachedRenderTabTooltip","additionalActions","title","group","groups","medium","order","action","disconnected","inactive","propTypes","node","isRequired","instanceOf","Container","EventHub","string","bool","func","defaultProps"],"mappings":"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","sourcesContent":["import React, { Component, PureComponent } from 'react';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport PropTypes from 'prop-types';\nimport { ContextActions, ContextActionUtils } from '@deephaven/components';\nimport { GLPropTypes } from '@deephaven/dashboard';\nimport Panel from './Panel';\nimport WidgetPanelTooltip from './WidgetPanelTooltip';\nimport './WidgetPanel.scss';\n\n/**\n * Widget panel component that has a loading spinner and displays an error message when set\n */\nclass WidgetPanel extends PureComponent {\n constructor(props) {\n super(props);\n\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleCopyName = this.handleCopyName.bind(this);\n\n this.state = {\n isClientDisconnected: false,\n isPanelDisconnected: false,\n isWidgetDisconnected: false,\n isWaitingForReconnect: false,\n isPanelInactive: false,\n };\n }\n\n handleCopyName() {\n const { widgetName } = this.props;\n ContextActionUtils.copyToClipboard(widgetName);\n }\n\n getErrorMessage() {\n const { errorMessage } = this.props;\n const {\n isClientDisconnected,\n isPanelDisconnected,\n isWidgetDisconnected,\n isWaitingForReconnect,\n } = this.state;\n if (errorMessage) {\n return `${errorMessage}`;\n }\n if (isClientDisconnected && isPanelDisconnected && isWaitingForReconnect) {\n return 'Disconnected from server.\\nCheck your internet connection.';\n }\n if (isClientDisconnected && isPanelDisconnected) {\n return 'Disconnected from server.';\n }\n if (isPanelDisconnected) {\n const { widgetName, widgetType } = this.props;\n return `Variable \"${widgetName}\" not set.\\n${widgetType} does not exist yet.`;\n }\n if (isWidgetDisconnected) {\n const { widgetName } = this.props;\n return `${widgetName} is unavailable.`;\n }\n return null;\n }\n\n getCachedRenderTabTooltip = memoize(\n (showTabTooltip, glContainer, widgetType, widgetName, description) =>\n showTabTooltip\n ? () => (\n <WidgetPanelTooltip\n glContainer={glContainer}\n widgetType={widgetType}\n widgetName={widgetName}\n description={description}\n />\n )\n : null\n );\n\n handleSessionClosed(...args) {\n const { onSessionClose } = this.props;\n // The session has closed and we won't be able to reconnect, as this widget isn't persisted\n this.setState({\n isPanelDisconnected: true,\n isWaitingForReconnect: false,\n });\n onSessionClose(...args);\n }\n\n handleSessionOpened(...args) {\n const { onSessionOpen } = this.props;\n onSessionOpen(...args);\n }\n\n render() {\n const {\n children,\n className,\n componentPanel,\n isLoaded,\n isLoading,\n glContainer,\n glEventHub,\n isDisconnected,\n isClonable,\n isRenamable,\n showTabTooltip,\n renderTabTooltip,\n widgetType,\n widgetName,\n description,\n\n onClearAllFilters,\n onHide,\n onFocus,\n onBlur,\n onResize,\n onShow,\n onTabBlur,\n onTabFocus,\n onTabClicked,\n } = this.props;\n\n const {\n isPanelDisconnected,\n isWidgetDisconnected,\n isPanelInactive,\n } = this.state;\n const errorMessage = this.getErrorMessage();\n const doRenderTabTooltip =\n renderTabTooltip ??\n this.getCachedRenderTabTooltip(\n showTabTooltip,\n glContainer,\n widgetType,\n widgetName,\n description\n );\n\n const additionalActions = [\n {\n title: `Copy ${widgetType} Name`,\n group: ContextActions.groups.medium,\n order: 20,\n action: this.handleCopyName,\n },\n ];\n\n return (\n <Panel\n className={classNames(className, {\n disconnected:\n isPanelDisconnected || isWidgetDisconnected || isDisconnected,\n inactive: isPanelInactive,\n })}\n componentPanel={componentPanel}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onClearAllFilters={onClearAllFilters}\n onHide={onHide}\n onFocus={onFocus}\n onBlur={onBlur}\n onResize={onResize}\n onShow={onShow}\n onSessionClose={this.handleSessionClosed}\n onSessionOpen={this.handleSessionOpened}\n onTabBlur={onTabBlur}\n onTabFocus={onTabFocus}\n onTabClicked={onTabClicked}\n renderTabTooltip={doRenderTabTooltip}\n errorMessage={errorMessage}\n isLoaded={isLoaded}\n isLoading={isLoading}\n isClonable={isClonable}\n isRenamable={isRenamable}\n additionalActions={additionalActions}\n >\n {children}\n {isPanelInactive && <div className=\"fill-parent-absolute\" />}\n </Panel>\n );\n }\n}\n\nWidgetPanel.propTypes = {\n children: PropTypes.node.isRequired,\n componentPanel: PropTypes.instanceOf(Component).isRequired,\n\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n\n className: PropTypes.string,\n errorMessage: PropTypes.string,\n isClonable: PropTypes.bool,\n isDisconnected: PropTypes.bool,\n isLoading: PropTypes.bool,\n isLoaded: PropTypes.bool,\n isRenamable: PropTypes.bool,\n showTabTooltip: PropTypes.bool,\n widgetName: PropTypes.string,\n widgetType: PropTypes.string,\n renderTabTooltip: PropTypes.func,\n description: PropTypes.string,\n\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onHide: PropTypes.func,\n onClearAllFilters: PropTypes.func,\n onResize: PropTypes.func,\n onSessionClose: PropTypes.func,\n onSessionOpen: PropTypes.func,\n onShow: PropTypes.func,\n onTabBlur: PropTypes.func,\n onTabFocus: PropTypes.func,\n onTabClicked: PropTypes.func,\n};\n\nWidgetPanel.defaultProps = {\n className: '',\n errorMessage: null,\n isClonable: true,\n isDisconnected: false,\n isLoading: false,\n isLoaded: true,\n isRenamable: true,\n showTabTooltip: true,\n widgetName: 'Widget',\n widgetType: 'Widget',\n renderTabTooltip: null,\n description: '',\n\n onFocus: () => {},\n onBlur: () => {},\n onHide: () => {},\n onClearAllFilters: () => {},\n onResize: () => {},\n onSessionClose: () => {},\n onSessionOpen: () => {},\n onShow: () => {},\n onTabBlur: () => {},\n onTabFocus: () => {},\n onTabClicked: () => {},\n};\n\nexport default WidgetPanel;\n"],"file":"WidgetPanel.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/panels/WidgetPanel.tsx"],"names":["React","PureComponent","classNames","memoize","ContextActions","ContextActionUtils","Panel","WidgetPanelTooltip","WidgetPanel","constructor","props","showTabTooltip","glContainer","widgetType","widgetName","description","handleSessionClosed","bind","handleSessionOpened","handleCopyName","state","isClientDisconnected","isPanelDisconnected","isWidgetDisconnected","isWaitingForReconnect","isPanelInactive","copyToClipboard","getErrorMessage","errorMessage","undefined","onSessionClose","setState","onSessionOpen","render","children","className","componentPanel","isLoaded","isLoading","glEventHub","isDisconnected","isClonable","isRenamable","renderTabTooltip","onClearAllFilters","onHide","onFocus","onBlur","onResize","onShow","onTabBlur","onTabFocus","onTabClicked","doRenderTabTooltip","getCachedRenderTabTooltip","additionalActions","title","group","groups","medium","order","action","disconnected","inactive"],"mappings":"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","sourcesContent":["import React, {\n Component,\n PureComponent,\n ReactElement,\n ReactNode,\n} from 'react';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport { Container, EventEmitter } from '@deephaven/golden-layout';\nimport { ContextActions, ContextActionUtils } from '@deephaven/components';\nimport Panel from './Panel';\nimport WidgetPanelTooltip from './WidgetPanelTooltip';\nimport './WidgetPanel.scss';\n\ninterface WidgetPanelProps {\n children: ReactNode;\n componentPanel: Component;\n\n glContainer: Container;\n glEventHub: EventEmitter;\n\n className: string;\n errorMessage: string;\n isClonable: boolean;\n isDisconnected: boolean;\n isLoading: boolean;\n isLoaded: boolean;\n isRenamable: boolean;\n showTabTooltip: boolean;\n widgetName: string;\n widgetType: string;\n renderTabTooltip: () => ReactNode;\n description: string;\n\n onFocus: () => void;\n onBlur: () => void;\n onHide: () => void;\n onClearAllFilters: () => void;\n onResize: () => void;\n onSessionClose: (...args: unknown[]) => void;\n onSessionOpen: (...args: unknown[]) => void;\n onShow: () => void;\n onTabBlur: () => void;\n onTabFocus: () => void;\n onTabClicked: () => void;\n}\n\ninterface WidgetPanelState {\n isClientDisconnected: boolean;\n isPanelDisconnected: boolean;\n isWidgetDisconnected: boolean;\n isWaitingForReconnect: boolean;\n isPanelInactive: boolean;\n}\n/**\n * Widget panel component that has a loading spinner and displays an error message when set\n */\nclass WidgetPanel extends PureComponent<WidgetPanelProps, WidgetPanelState> {\n static defaultProps = {\n className: '',\n errorMessage: null,\n isClonable: true,\n isDisconnected: false,\n isLoading: false,\n isLoaded: true,\n isRenamable: true,\n showTabTooltip: true,\n widgetName: 'Widget',\n widgetType: 'Widget',\n renderTabTooltip: null,\n description: '',\n\n onFocus: (): void => undefined,\n onBlur: (): void => undefined,\n onHide: (): void => undefined,\n onClearAllFilters: (): void => undefined,\n onResize: (): void => undefined,\n onSessionClose: (): void => undefined,\n onSessionOpen: (): void => undefined,\n onShow: (): void => undefined,\n onTabBlur: (): void => undefined,\n onTabFocus: (): void => undefined,\n onTabClicked: (): void => undefined,\n };\n\n constructor(props: WidgetPanelProps) {\n super(props);\n\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleCopyName = this.handleCopyName.bind(this);\n\n this.state = {\n isClientDisconnected: false,\n isPanelDisconnected: false,\n isWidgetDisconnected: false,\n isWaitingForReconnect: false,\n isPanelInactive: false,\n };\n }\n\n handleCopyName(): void {\n const { widgetName } = this.props;\n ContextActionUtils.copyToClipboard(widgetName);\n }\n\n getErrorMessage(): string | undefined {\n const { errorMessage } = this.props;\n const {\n isClientDisconnected,\n isPanelDisconnected,\n isWidgetDisconnected,\n isWaitingForReconnect,\n } = this.state;\n if (errorMessage) {\n return `${errorMessage}`;\n }\n if (isClientDisconnected && isPanelDisconnected && isWaitingForReconnect) {\n return 'Disconnected from server.\\nCheck your internet connection.';\n }\n if (isClientDisconnected && isPanelDisconnected) {\n return 'Disconnected from server.';\n }\n if (isPanelDisconnected) {\n const { widgetName, widgetType } = this.props;\n return `Variable \"${widgetName}\" not set.\\n${widgetType} does not exist yet.`;\n }\n if (isWidgetDisconnected) {\n const { widgetName } = this.props;\n return `${widgetName} is unavailable.`;\n }\n return undefined;\n }\n\n getCachedRenderTabTooltip = memoize(\n (\n showTabTooltip: boolean,\n glContainer: Container,\n widgetType: string,\n widgetName: string,\n description: string\n ) =>\n showTabTooltip\n ? () => (\n <WidgetPanelTooltip\n glContainer={glContainer}\n widgetType={widgetType}\n widgetName={widgetName}\n description={description}\n />\n )\n : null\n );\n\n handleSessionClosed(...args: unknown[]): void {\n const { onSessionClose } = this.props;\n // The session has closed and we won't be able to reconnect, as this widget isn't persisted\n this.setState({\n isPanelDisconnected: true,\n isWaitingForReconnect: false,\n });\n onSessionClose(...args);\n }\n\n handleSessionOpened(...args: unknown[]): void {\n const { onSessionOpen } = this.props;\n onSessionOpen(...args);\n }\n\n render(): ReactElement {\n const {\n children,\n className,\n componentPanel,\n isLoaded,\n isLoading,\n glContainer,\n glEventHub,\n isDisconnected,\n isClonable,\n isRenamable,\n showTabTooltip,\n renderTabTooltip,\n widgetType,\n widgetName,\n description,\n\n onClearAllFilters,\n onHide,\n onFocus,\n onBlur,\n onResize,\n onShow,\n onTabBlur,\n onTabFocus,\n onTabClicked,\n } = this.props;\n\n const {\n isPanelDisconnected,\n isWidgetDisconnected,\n isPanelInactive,\n } = this.state;\n const errorMessage = this.getErrorMessage();\n const doRenderTabTooltip =\n renderTabTooltip ??\n this.getCachedRenderTabTooltip(\n showTabTooltip,\n glContainer,\n widgetType,\n widgetName,\n description\n );\n\n const additionalActions = [\n {\n title: `Copy ${widgetType} Name`,\n group: ContextActions.groups.medium,\n order: 20,\n action: this.handleCopyName,\n },\n ];\n\n return (\n <Panel\n className={classNames(className, {\n disconnected:\n isPanelDisconnected || isWidgetDisconnected || isDisconnected,\n inactive: isPanelInactive,\n })}\n componentPanel={componentPanel}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onClearAllFilters={onClearAllFilters}\n onHide={onHide}\n onFocus={onFocus}\n onBlur={onBlur}\n onResize={onResize}\n onShow={onShow}\n onSessionClose={this.handleSessionClosed}\n onSessionOpen={this.handleSessionOpened}\n onTabBlur={onTabBlur}\n onTabFocus={onTabFocus}\n onTabClicked={onTabClicked}\n renderTabTooltip={doRenderTabTooltip}\n errorMessage={errorMessage}\n isLoaded={isLoaded}\n isLoading={isLoading}\n isClonable={isClonable}\n isRenamable={isRenamable}\n additionalActions={additionalActions}\n >\n {children}\n {isPanelInactive && <div className=\"fill-parent-absolute\" />}\n </Panel>\n );\n }\n}\n\nexport default WidgetPanel;\n"],"file":"WidgetPanel.js"}
|