@deephaven/dashboard-core-plugins 0.15.1-beta.1 → 0.15.1
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/panels/NotebookPanel.d.ts +1 -1
- package/dist/panels/NotebookPanel.d.ts.map +1 -1
- package/dist/panels/Panel.js +1 -1
- package/dist/panels/Panel.js.map +1 -1
- package/dist/panels/WidgetPanel.d.ts +1 -0
- package/dist/panels/WidgetPanel.d.ts.map +1 -1
- package/dist/panels/WidgetPanel.js +17 -1
- package/dist/panels/WidgetPanel.js.map +1 -1
- package/dist/panels/WidgetPanelTooltip.css +4 -0
- package/dist/panels/WidgetPanelTooltip.css.map +1 -1
- package/dist/panels/WidgetPanelTooltip.d.ts.map +1 -1
- package/dist/panels/WidgetPanelTooltip.js +15 -2
- package/dist/panels/WidgetPanelTooltip.js.map +1 -1
- package/package.json +17 -17
|
@@ -60,7 +60,7 @@ declare class NotebookPanel extends React.Component<any, any, any> {
|
|
|
60
60
|
initTab(tab: any): void;
|
|
61
61
|
initTabCloseOverride(): void;
|
|
62
62
|
initTabClasses(tab: any): void;
|
|
63
|
-
getNotebookValue():
|
|
63
|
+
getNotebookValue(): string;
|
|
64
64
|
initNotebookContent(): void;
|
|
65
65
|
closeFileTabById(id: any): void;
|
|
66
66
|
registerFileMetadata(fileMetadata: any, isPreview: any): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotebookPanel.d.ts","sourceRoot":"","sources":["../../src/panels/NotebookPanel.jsx"],"names":[],"mappings":";;AAuCA;IACE,yBAAmC;IAEnC;;MAAoD;IAEpD,4BAAiC;IAEjC,qCAKC;IAED,iFAaC;IAED,wBA4GC;IA6SD,mBAGC;IAhDD,0BAGC;IAnBD,2BAKC;IAED,wBAOC;IAOD,mBAQC;IAED,iCAsBC;IAED,mBAIC;IAOD,oBAGC;IAED;;OAEG;IACH,uBAFW,UAAU,QAoCpB;IAED,0BAMC;IAED,uCAUC;IAoJD,4BAGC;IAjFD,mDAMC;IAED,qBAEC;IAED,qCAEC;IAED,qBAMC;IAED,0BAMC;IAlGD,mBAGC;IA2CD,2BAEC;IAED,oCAgBC;IA/BD,kCASC;IAvCD,mCA4BC;IAmED;;aAKC;IAED,4BAKC;IAED,mBAGC;IAED,yBAEC;IAED,0BAGC;IAED,qCASC;IAED,sBAKC;IAOD;;;;OAIG;IACH,4CAsBC;IA9mBC,iBAA4B;IAE5B,oEAGC;IAED,0DAGC;IAED,8BAAoB;IAEpB,qBAA2B;IAC3B,sBAA4B;IAC5B,qBAAwB;IACxB,2BAA6B;IAyF/B,wBAMC;IAGD,6BAWC;IAED,+BAMC;IAED,
|
|
1
|
+
{"version":3,"file":"NotebookPanel.d.ts","sourceRoot":"","sources":["../../src/panels/NotebookPanel.jsx"],"names":[],"mappings":";;AAuCA;IACE,yBAAmC;IAEnC;;MAAoD;IAEpD,4BAAiC;IAEjC,qCAKC;IAED,iFAaC;IAED,wBA4GC;IA6SD,mBAGC;IAhDD,0BAGC;IAnBD,2BAKC;IAED,wBAOC;IAOD,mBAQC;IAED,iCAsBC;IAED,mBAIC;IAOD,oBAGC;IAED;;OAEG;IACH,uBAFW,UAAU,QAoCpB;IAED,0BAMC;IAED,uCAUC;IAoJD,4BAGC;IAjFD,mDAMC;IAED,qBAEC;IAED,qCAEC;IAED,qBAMC;IAED,0BAMC;IAlGD,mBAGC;IA2CD,2BAEC;IAED,oCAgBC;IA/BD,kCASC;IAvCD,mCA4BC;IAmED;;aAKC;IAED,4BAKC;IAED,mBAGC;IAED,yBAEC;IAED,0BAGC;IAED,qCASC;IAED,sBAKC;IAOD;;;;OAIG;IACH,4CAsBC;IA9mBC,iBAA4B;IAE5B,oEAGC;IAED,0DAGC;IAED,8BAAoB;IAEpB,qBAA2B;IAC3B,sBAA4B;IAC5B,qBAAwB;IACxB,2BAA6B;IAyF/B,wBAMC;IAGD,6BAWC;IAED,+BAMC;IAED,2BAQC;IAED,4BAiBC;IAED,gCAGC;IAID,8DASC;IAED,qCAGC;IAED,aA8BC;IAED;;;OAGG;IACH,QAFa,OAAO,CAYnB;IAED;;;;OAIG;IACH,sBAHW,MAAM,WACN,MAAM,QAUhB;IAED,+BAEC;IAED,yBAWC;IAED;;;;;;;QASG;IAEH,uBAiCC;IAwTD,cAMC;IAED,iEA0BC;IAED,+BAUC;IAED,4BASC;CAkNF"}
|
package/dist/panels/Panel.js
CHANGED
package/dist/panels/Panel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/panels/Panel.jsx"],"names":["React","Component","PureComponent","ReactDOM","PropTypes","classNames","memoize","ContextActions","LoadingOverlay","Tooltip","GLPropTypes","LayoutUtils","PanelEvent","Log","ConsoleEvent","InputFilterEvent","TabEvent","PanelContextMenu","RenameDialog","log","module","Panel","constructor","props","actions","isClonable","isRenamable","additionalActions","push","getCloneAction","getRenameAction","handleClearAllFilters","bind","handleCopyPanel","handleFocus","handleBlur","handleHide","handleResize","handleSessionClosed","handleSessionOpened","handleBeforeShow","handleShow","handleTabBlur","handleTabFocus","handleRenameCancel","handleRenameSubmit","handleShowRenameDialog","handleTabClicked","handleTab","glContainer","state","title","getTitleFromContainer","showRenameDialog","componentDidMount","componentPanel","glEventHub","on","SESSION_CLOSED","SESSION_OPENED","focus","blur","CLEAR_ALL_FILTERS","emit","MOUNT","componentWillUnmount","off","UNMOUNT","tab","setState","getTitleFromTab","forceUpdate","onTab","onTabClicked","onClearAllFilters","FOCUS","onFocus","onBlur","onHide","onResize","onSessionClose","onSessionOpen","onBeforeShow","onShow","onTabBlur","onTabFocus","newTitle","root","getRootFromContainer","config","getComponentConfigFromContainer","renameComponent","error","cloneConfig","cloneComponent","CLONED","order","group","groups","high","action","render","children","className","renderTabTooltip","errorMessage","isLoaded","isLoading","glTab","createPortal","getAdditionActions","placement","element","propTypes","instanceOf","isRequired","node","Container","EventHub","string","func","oneOfType","array","bool","defaultProps"],"mappings":"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","sourcesContent":["import React, { Component, PureComponent } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport { ContextActions, LoadingOverlay, Tooltip } from '@deephaven/components';\nimport { GLPropTypes, LayoutUtils, PanelEvent } from '@deephaven/dashboard';\nimport Log from '@deephaven/log';\nimport { ConsoleEvent, InputFilterEvent, TabEvent } from '../events';\nimport PanelContextMenu from './PanelContextMenu';\nimport RenameDialog from './RenameDialog';\n\nconst log = Log.module('Panel');\n\n/**\n * Generic panel component that emits mount/unmount/focus events.\n * Also wires up some triggers for common events:\n * Focus, Resize, Show, Session open/close, client disconnect/reconnect.\n */\nclass Panel extends PureComponent {\n constructor(props) {\n super(props);\n\n this.handleClearAllFilters = this.handleClearAllFilters.bind(this);\n this.handleCopyPanel = this.handleCopyPanel.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleHide = this.handleHide.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleBeforeShow = this.handleBeforeShow.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleTabBlur = this.handleTabBlur.bind(this);\n this.handleTabFocus = this.handleTabFocus.bind(this);\n this.handleRenameCancel = this.handleRenameCancel.bind(this);\n this.handleRenameSubmit = this.handleRenameSubmit.bind(this);\n this.handleShowRenameDialog = this.handleShowRenameDialog.bind(this);\n this.handleTabClicked = this.handleTabClicked.bind(this);\n this.handleTab = this.handleTab.bind(this);\n\n const { glContainer } = this.props;\n this.state = {\n title: LayoutUtils.getTitleFromContainer(glContainer),\n showRenameDialog: false,\n };\n }\n\n componentDidMount() {\n const { componentPanel, glContainer, glEventHub } = this.props;\n\n glContainer.on('resize', this.handleResize);\n glContainer.on('show', this.handleBeforeShow);\n glContainer.on('shown', this.handleShow);\n glContainer.on('hide', this.handleHide);\n glContainer.on('tab', this.handleTab);\n glContainer.on('tabClicked', this.handleTabClicked);\n glEventHub.on(ConsoleEvent.SESSION_CLOSED, this.handleSessionClosed);\n glEventHub.on(ConsoleEvent.SESSION_OPENED, this.handleSessionOpened);\n glEventHub.on(TabEvent.focus, this.handleTabFocus);\n glEventHub.on(TabEvent.blur, this.handleTabBlur);\n glEventHub.on(\n InputFilterEvent.CLEAR_ALL_FILTERS,\n this.handleClearAllFilters\n );\n\n glEventHub.emit(PanelEvent.MOUNT, componentPanel);\n }\n\n componentWillUnmount() {\n const { componentPanel, glContainer, glEventHub } = this.props;\n\n glContainer.off('resize', this.handleResize);\n glContainer.off('show', this.handleBeforeShow);\n glContainer.off('shown', this.handleShow);\n glContainer.off('hide', this.handleHide);\n glContainer.off('tab', this.handleTab);\n glContainer.off('tabClicked', this.handleTabClicked);\n glEventHub.off(ConsoleEvent.SESSION_CLOSED, this.handleSessionClosed);\n glEventHub.off(ConsoleEvent.SESSION_OPENED, this.handleSessionOpened);\n glEventHub.off(TabEvent.focus, this.handleTabFocus);\n glEventHub.off(TabEvent.blur, this.handleTabBlur);\n glEventHub.off(\n InputFilterEvent.CLEAR_ALL_FILTERS,\n this.handleClearAllFilters\n );\n\n glEventHub.emit(PanelEvent.UNMOUNT, componentPanel);\n }\n\n handleTab(tab) {\n if (tab) {\n this.setState({\n title: LayoutUtils.getTitleFromTab(tab),\n });\n }\n // render after move can happen before tab event, glTab could be null\n // when tab event is emitted, force a render update\n this.forceUpdate();\n\n const { onTab } = this.props;\n onTab(tab);\n }\n\n handleTabClicked(...args) {\n const { onTabClicked } = this.props;\n onTabClicked(...args);\n }\n\n handleClearAllFilters(...args) {\n const { onClearAllFilters } = this.props;\n onClearAllFilters(...args);\n }\n\n handleFocus(...args) {\n const { componentPanel, glEventHub } = this.props;\n glEventHub.emit(PanelEvent.FOCUS, componentPanel);\n\n const { onFocus } = this.props;\n onFocus(...args);\n }\n\n handleBlur(...args) {\n const { onBlur } = this.props;\n onBlur(...args);\n }\n\n handleHide(...args) {\n const { onHide } = this.props;\n onHide(...args);\n }\n\n handleResize(...args) {\n const { onResize } = this.props;\n onResize(...args);\n }\n\n handleSessionClosed(...args) {\n const { onSessionClose } = this.props;\n onSessionClose(...args);\n }\n\n handleSessionOpened(...args) {\n const { onSessionOpen } = this.props;\n onSessionOpen(...args);\n }\n\n handleBeforeShow(...args) {\n const { onBeforeShow } = this.props;\n onBeforeShow(...args);\n }\n\n handleShow(...args) {\n const { onShow } = this.props;\n onShow(...args);\n }\n\n handleTabBlur(...args) {\n const { onTabBlur } = this.props;\n onTabBlur(...args);\n }\n\n handleTabFocus(...args) {\n const { onTabFocus } = this.props;\n onTabFocus(...args);\n }\n\n handleRenameCancel() {\n this.setState({ showRenameDialog: false });\n }\n\n handleShowRenameDialog() {\n this.setState({ showRenameDialog: true });\n }\n\n handleRenameSubmit(newTitle) {\n const { glContainer } = this.props;\n this.setState({ showRenameDialog: false, title: newTitle });\n const root = LayoutUtils.getRootFromContainer(glContainer);\n const config = LayoutUtils.getComponentConfigFromContainer(glContainer);\n LayoutUtils.renameComponent(root, config, newTitle);\n }\n\n handleCopyPanel() {\n const { glContainer, glEventHub } = this.props;\n const root = LayoutUtils.getRootFromContainer(glContainer);\n const config = LayoutUtils.getComponentConfigFromContainer(glContainer);\n if (config == null) {\n log.error('Could not get component config from container', glContainer);\n return;\n }\n const cloneConfig = LayoutUtils.cloneComponent(root, config);\n if (cloneConfig !== null) {\n glEventHub.emit(PanelEvent.CLONED, this, cloneConfig);\n }\n }\n\n getCloneAction() {\n return {\n title: 'Copy Panel',\n order: 10,\n group: ContextActions.groups.high,\n action: this.handleCopyPanel,\n };\n }\n\n getRenameAction() {\n return {\n title: 'Rename',\n order: 10,\n group: ContextActions.groups.high,\n action: this.handleShowRenameDialog,\n };\n }\n\n getAdditionActions = memoize((actions, isClonable, isRenamable) => {\n const additionalActions = [];\n if (isClonable) {\n additionalActions.push(this.getCloneAction());\n }\n if (isRenamable) {\n additionalActions.push(this.getRenameAction());\n }\n return [...additionalActions, ...actions];\n });\n\n render() {\n const {\n children,\n className,\n renderTabTooltip,\n glContainer,\n additionalActions,\n errorMessage,\n isLoaded,\n isLoading,\n isClonable,\n isRenamable,\n } = this.props;\n const { tab: glTab } = glContainer;\n const { showRenameDialog, title } = this.state;\n\n return (\n <div\n className={classNames('h-100 w-100 iris-panel', className)}\n onFocusCapture={this.handleFocus}\n onBlurCapture={this.handleBlur}\n >\n {children}\n <LoadingOverlay\n errorMessage={errorMessage}\n isLoaded={isLoaded}\n isLoading={isLoading}\n />\n {glTab &&\n ReactDOM.createPortal(\n <>\n <PanelContextMenu\n glContainer={glContainer}\n additionalActions={this.getAdditionActions(\n additionalActions,\n isClonable,\n isRenamable\n )}\n />\n {isRenamable && (\n <RenameDialog\n isShown={showRenameDialog}\n value={title}\n itemType=\"Panel\"\n onCancel={this.handleRenameCancel}\n onSubmit={this.handleRenameSubmit}\n />\n )}\n {renderTabTooltip && (\n <Tooltip\n interactive\n options={{\n placement: 'bottom',\n }}\n popperClassName=\"panel-tab-popper\"\n >\n {renderTabTooltip()}\n </Tooltip>\n )}\n </>,\n glTab.element[0] // tab.element is jquery element, we want a dom element\n )}\n </div>\n );\n }\n}\n\nPanel.propTypes = {\n componentPanel: PropTypes.instanceOf(Component).isRequired,\n children: PropTypes.node.isRequired,\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n className: PropTypes.string,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onTab: PropTypes.func,\n onTabClicked: PropTypes.func,\n onClearAllFilters: PropTypes.func,\n onHide: PropTypes.func,\n onResize: PropTypes.func,\n onSessionClose: PropTypes.func,\n onSessionOpen: PropTypes.func,\n onBeforeShow: PropTypes.func,\n onShow: PropTypes.func,\n onTabBlur: PropTypes.func,\n onTabFocus: PropTypes.func,\n renderTabTooltip: PropTypes.func,\n additionalActions: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\n errorMessage: PropTypes.string,\n isLoading: PropTypes.bool,\n isLoaded: PropTypes.bool,\n isClonable: PropTypes.bool,\n isRenamable: PropTypes.bool,\n};\n\nPanel.defaultProps = {\n className: '',\n onTab: () => {},\n onTabClicked: () => {},\n onClearAllFilters: () => {},\n onFocus: () => {},\n onBlur: () => {},\n onHide: () => {},\n onResize: () => {},\n onSessionClose: () => {},\n onSessionOpen: () => {},\n onBeforeShow: () => {},\n onShow: () => {},\n onTabBlur: () => {},\n onTabFocus: () => {},\n renderTabTooltip: null,\n additionalActions: [],\n errorMessage: null,\n isLoading: false,\n isLoaded: true,\n isClonable: false,\n isRenamable: false,\n};\n\nexport default Panel;\n"],"file":"Panel.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/panels/Panel.jsx"],"names":["React","Component","PureComponent","ReactDOM","PropTypes","classNames","memoize","ContextActions","LoadingOverlay","Tooltip","GLPropTypes","LayoutUtils","PanelEvent","Log","ConsoleEvent","InputFilterEvent","TabEvent","PanelContextMenu","RenameDialog","log","module","Panel","constructor","props","actions","isClonable","isRenamable","additionalActions","push","getCloneAction","getRenameAction","handleClearAllFilters","bind","handleCopyPanel","handleFocus","handleBlur","handleHide","handleResize","handleSessionClosed","handleSessionOpened","handleBeforeShow","handleShow","handleTabBlur","handleTabFocus","handleRenameCancel","handleRenameSubmit","handleShowRenameDialog","handleTabClicked","handleTab","glContainer","state","title","getTitleFromContainer","showRenameDialog","componentDidMount","componentPanel","glEventHub","on","SESSION_CLOSED","SESSION_OPENED","focus","blur","CLEAR_ALL_FILTERS","emit","MOUNT","componentWillUnmount","off","UNMOUNT","tab","setState","getTitleFromTab","forceUpdate","onTab","onTabClicked","onClearAllFilters","FOCUS","onFocus","onBlur","onHide","onResize","onSessionClose","onSessionOpen","onBeforeShow","onShow","onTabBlur","onTabFocus","newTitle","root","getRootFromContainer","config","getComponentConfigFromContainer","renameComponent","error","cloneConfig","cloneComponent","CLONED","order","group","groups","high","action","medium","render","children","className","renderTabTooltip","errorMessage","isLoaded","isLoading","glTab","createPortal","getAdditionActions","placement","element","propTypes","instanceOf","isRequired","node","Container","EventHub","string","func","oneOfType","array","bool","defaultProps"],"mappings":"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","sourcesContent":["import React, { Component, PureComponent } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport { ContextActions, LoadingOverlay, Tooltip } from '@deephaven/components';\nimport { GLPropTypes, LayoutUtils, PanelEvent } from '@deephaven/dashboard';\nimport Log from '@deephaven/log';\nimport { ConsoleEvent, InputFilterEvent, TabEvent } from '../events';\nimport PanelContextMenu from './PanelContextMenu';\nimport RenameDialog from './RenameDialog';\n\nconst log = Log.module('Panel');\n\n/**\n * Generic panel component that emits mount/unmount/focus events.\n * Also wires up some triggers for common events:\n * Focus, Resize, Show, Session open/close, client disconnect/reconnect.\n */\nclass Panel extends PureComponent {\n constructor(props) {\n super(props);\n\n this.handleClearAllFilters = this.handleClearAllFilters.bind(this);\n this.handleCopyPanel = this.handleCopyPanel.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleHide = this.handleHide.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleBeforeShow = this.handleBeforeShow.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleTabBlur = this.handleTabBlur.bind(this);\n this.handleTabFocus = this.handleTabFocus.bind(this);\n this.handleRenameCancel = this.handleRenameCancel.bind(this);\n this.handleRenameSubmit = this.handleRenameSubmit.bind(this);\n this.handleShowRenameDialog = this.handleShowRenameDialog.bind(this);\n this.handleTabClicked = this.handleTabClicked.bind(this);\n this.handleTab = this.handleTab.bind(this);\n\n const { glContainer } = this.props;\n this.state = {\n title: LayoutUtils.getTitleFromContainer(glContainer),\n showRenameDialog: false,\n };\n }\n\n componentDidMount() {\n const { componentPanel, glContainer, glEventHub } = this.props;\n\n glContainer.on('resize', this.handleResize);\n glContainer.on('show', this.handleBeforeShow);\n glContainer.on('shown', this.handleShow);\n glContainer.on('hide', this.handleHide);\n glContainer.on('tab', this.handleTab);\n glContainer.on('tabClicked', this.handleTabClicked);\n glEventHub.on(ConsoleEvent.SESSION_CLOSED, this.handleSessionClosed);\n glEventHub.on(ConsoleEvent.SESSION_OPENED, this.handleSessionOpened);\n glEventHub.on(TabEvent.focus, this.handleTabFocus);\n glEventHub.on(TabEvent.blur, this.handleTabBlur);\n glEventHub.on(\n InputFilterEvent.CLEAR_ALL_FILTERS,\n this.handleClearAllFilters\n );\n\n glEventHub.emit(PanelEvent.MOUNT, componentPanel);\n }\n\n componentWillUnmount() {\n const { componentPanel, glContainer, glEventHub } = this.props;\n\n glContainer.off('resize', this.handleResize);\n glContainer.off('show', this.handleBeforeShow);\n glContainer.off('shown', this.handleShow);\n glContainer.off('hide', this.handleHide);\n glContainer.off('tab', this.handleTab);\n glContainer.off('tabClicked', this.handleTabClicked);\n glEventHub.off(ConsoleEvent.SESSION_CLOSED, this.handleSessionClosed);\n glEventHub.off(ConsoleEvent.SESSION_OPENED, this.handleSessionOpened);\n glEventHub.off(TabEvent.focus, this.handleTabFocus);\n glEventHub.off(TabEvent.blur, this.handleTabBlur);\n glEventHub.off(\n InputFilterEvent.CLEAR_ALL_FILTERS,\n this.handleClearAllFilters\n );\n\n glEventHub.emit(PanelEvent.UNMOUNT, componentPanel);\n }\n\n handleTab(tab) {\n if (tab) {\n this.setState({\n title: LayoutUtils.getTitleFromTab(tab),\n });\n }\n // render after move can happen before tab event, glTab could be null\n // when tab event is emitted, force a render update\n this.forceUpdate();\n\n const { onTab } = this.props;\n onTab(tab);\n }\n\n handleTabClicked(...args) {\n const { onTabClicked } = this.props;\n onTabClicked(...args);\n }\n\n handleClearAllFilters(...args) {\n const { onClearAllFilters } = this.props;\n onClearAllFilters(...args);\n }\n\n handleFocus(...args) {\n const { componentPanel, glEventHub } = this.props;\n glEventHub.emit(PanelEvent.FOCUS, componentPanel);\n\n const { onFocus } = this.props;\n onFocus(...args);\n }\n\n handleBlur(...args) {\n const { onBlur } = this.props;\n onBlur(...args);\n }\n\n handleHide(...args) {\n const { onHide } = this.props;\n onHide(...args);\n }\n\n handleResize(...args) {\n const { onResize } = this.props;\n onResize(...args);\n }\n\n handleSessionClosed(...args) {\n const { onSessionClose } = this.props;\n onSessionClose(...args);\n }\n\n handleSessionOpened(...args) {\n const { onSessionOpen } = this.props;\n onSessionOpen(...args);\n }\n\n handleBeforeShow(...args) {\n const { onBeforeShow } = this.props;\n onBeforeShow(...args);\n }\n\n handleShow(...args) {\n const { onShow } = this.props;\n onShow(...args);\n }\n\n handleTabBlur(...args) {\n const { onTabBlur } = this.props;\n onTabBlur(...args);\n }\n\n handleTabFocus(...args) {\n const { onTabFocus } = this.props;\n onTabFocus(...args);\n }\n\n handleRenameCancel() {\n this.setState({ showRenameDialog: false });\n }\n\n handleShowRenameDialog() {\n this.setState({ showRenameDialog: true });\n }\n\n handleRenameSubmit(newTitle) {\n const { glContainer } = this.props;\n this.setState({ showRenameDialog: false, title: newTitle });\n const root = LayoutUtils.getRootFromContainer(glContainer);\n const config = LayoutUtils.getComponentConfigFromContainer(glContainer);\n LayoutUtils.renameComponent(root, config, newTitle);\n }\n\n handleCopyPanel() {\n const { glContainer, glEventHub } = this.props;\n const root = LayoutUtils.getRootFromContainer(glContainer);\n const config = LayoutUtils.getComponentConfigFromContainer(glContainer);\n if (config == null) {\n log.error('Could not get component config from container', glContainer);\n return;\n }\n const cloneConfig = LayoutUtils.cloneComponent(root, config);\n if (cloneConfig !== null) {\n glEventHub.emit(PanelEvent.CLONED, this, cloneConfig);\n }\n }\n\n getCloneAction() {\n return {\n title: 'Copy Panel',\n order: 10,\n group: ContextActions.groups.high,\n action: this.handleCopyPanel,\n };\n }\n\n getRenameAction() {\n return {\n title: 'Rename',\n order: 10,\n group: ContextActions.groups.medium,\n action: this.handleShowRenameDialog,\n };\n }\n\n getAdditionActions = memoize((actions, isClonable, isRenamable) => {\n const additionalActions = [];\n if (isClonable) {\n additionalActions.push(this.getCloneAction());\n }\n if (isRenamable) {\n additionalActions.push(this.getRenameAction());\n }\n return [...additionalActions, ...actions];\n });\n\n render() {\n const {\n children,\n className,\n renderTabTooltip,\n glContainer,\n additionalActions,\n errorMessage,\n isLoaded,\n isLoading,\n isClonable,\n isRenamable,\n } = this.props;\n const { tab: glTab } = glContainer;\n const { showRenameDialog, title } = this.state;\n\n return (\n <div\n className={classNames('h-100 w-100 iris-panel', className)}\n onFocusCapture={this.handleFocus}\n onBlurCapture={this.handleBlur}\n >\n {children}\n <LoadingOverlay\n errorMessage={errorMessage}\n isLoaded={isLoaded}\n isLoading={isLoading}\n />\n {glTab &&\n ReactDOM.createPortal(\n <>\n <PanelContextMenu\n glContainer={glContainer}\n additionalActions={this.getAdditionActions(\n additionalActions,\n isClonable,\n isRenamable\n )}\n />\n {isRenamable && (\n <RenameDialog\n isShown={showRenameDialog}\n value={title}\n itemType=\"Panel\"\n onCancel={this.handleRenameCancel}\n onSubmit={this.handleRenameSubmit}\n />\n )}\n {renderTabTooltip && (\n <Tooltip\n interactive\n options={{\n placement: 'bottom',\n }}\n popperClassName=\"panel-tab-popper\"\n >\n {renderTabTooltip()}\n </Tooltip>\n )}\n </>,\n glTab.element[0] // tab.element is jquery element, we want a dom element\n )}\n </div>\n );\n }\n}\n\nPanel.propTypes = {\n componentPanel: PropTypes.instanceOf(Component).isRequired,\n children: PropTypes.node.isRequired,\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n className: PropTypes.string,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onTab: PropTypes.func,\n onTabClicked: PropTypes.func,\n onClearAllFilters: PropTypes.func,\n onHide: PropTypes.func,\n onResize: PropTypes.func,\n onSessionClose: PropTypes.func,\n onSessionOpen: PropTypes.func,\n onBeforeShow: PropTypes.func,\n onShow: PropTypes.func,\n onTabBlur: PropTypes.func,\n onTabFocus: PropTypes.func,\n renderTabTooltip: PropTypes.func,\n additionalActions: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\n errorMessage: PropTypes.string,\n isLoading: PropTypes.bool,\n isLoaded: PropTypes.bool,\n isClonable: PropTypes.bool,\n isRenamable: PropTypes.bool,\n};\n\nPanel.defaultProps = {\n className: '',\n onTab: () => {},\n onTabClicked: () => {},\n onClearAllFilters: () => {},\n onFocus: () => {},\n onBlur: () => {},\n onHide: () => {},\n onResize: () => {},\n onSessionClose: () => {},\n onSessionOpen: () => {},\n onBeforeShow: () => {},\n onShow: () => {},\n onTabBlur: () => {},\n onTabFocus: () => {},\n renderTabTooltip: null,\n additionalActions: [],\n errorMessage: null,\n isLoading: false,\n isLoaded: true,\n isClonable: false,\n isRenamable: false,\n};\n\nexport default Panel;\n"],"file":"Panel.js"}
|
|
@@ -6,6 +6,7 @@ declare class WidgetPanel extends React.PureComponent<any, any, any> {
|
|
|
6
6
|
constructor(props: any);
|
|
7
7
|
handleSessionClosed(...args: any[]): void;
|
|
8
8
|
handleSessionOpened(...args: any[]): void;
|
|
9
|
+
handleCopyName(): void;
|
|
9
10
|
getErrorMessage(): string | null;
|
|
10
11
|
getCachedRenderTabTooltip: (this: any, showTabTooltip: any, glContainer: any, widgetType: any, widgetName: any, description: any) => (() => JSX.Element) | null;
|
|
11
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetPanel.d.ts","sourceRoot":"","sources":["../../src/panels/WidgetPanel.jsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"WidgetPanel.d.ts","sourceRoot":"","sources":["../../src/panels/WidgetPanel.jsx"],"names":[],"mappings":";AAUA;;GAEG;AACH;IACE,wBAcC;IAiDD,0CAQC;IAED,0CAGC;IA5DD,uBAGC;IAED,iCA0BC;IAED,gKAYE;CAyGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAiDU,kCAAQ;;QACT,iCAAQ;;QACR,iCAAQ;;QACG,4CAAQ;;QACjB,mCAAQ;;QACF,yCAAQ;;QACT,wCAAQ;;QACf,iCAAQ;;QACL,oCAAQ;;QACP,qCAAQ;;QACN,uCAAQ"}
|
|
@@ -4,6 +4,7 @@ import React, { Component, PureComponent } from 'react';
|
|
|
4
4
|
import classNames from 'classnames';
|
|
5
5
|
import memoize from 'memoize-one';
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
|
+
import { ContextActions, ContextActionUtils } from '@deephaven/components';
|
|
7
8
|
import { GLPropTypes } from '@deephaven/dashboard';
|
|
8
9
|
import Panel from "./Panel.js";
|
|
9
10
|
import WidgetPanelTooltip from "./WidgetPanelTooltip.js";
|
|
@@ -25,6 +26,7 @@ class WidgetPanel extends PureComponent {
|
|
|
25
26
|
|
|
26
27
|
this.handleSessionClosed = this.handleSessionClosed.bind(this);
|
|
27
28
|
this.handleSessionOpened = this.handleSessionOpened.bind(this);
|
|
29
|
+
this.handleCopyName = this.handleCopyName.bind(this);
|
|
28
30
|
this.state = {
|
|
29
31
|
isClientDisconnected: false,
|
|
30
32
|
isPanelDisconnected: false,
|
|
@@ -34,6 +36,13 @@ class WidgetPanel extends PureComponent {
|
|
|
34
36
|
};
|
|
35
37
|
}
|
|
36
38
|
|
|
39
|
+
handleCopyName() {
|
|
40
|
+
var {
|
|
41
|
+
widgetName
|
|
42
|
+
} = this.props;
|
|
43
|
+
ContextActionUtils.copyToClipboard(widgetName);
|
|
44
|
+
}
|
|
45
|
+
|
|
37
46
|
getErrorMessage() {
|
|
38
47
|
var {
|
|
39
48
|
errorMessage
|
|
@@ -128,6 +137,12 @@ class WidgetPanel extends PureComponent {
|
|
|
128
137
|
} = this.state;
|
|
129
138
|
var errorMessage = this.getErrorMessage();
|
|
130
139
|
var doRenderTabTooltip = renderTabTooltip !== null && renderTabTooltip !== void 0 ? renderTabTooltip : this.getCachedRenderTabTooltip(showTabTooltip, glContainer, widgetType, widgetName, description);
|
|
140
|
+
var additionalActions = [{
|
|
141
|
+
title: "Copy ".concat(widgetType, " Name"),
|
|
142
|
+
group: ContextActions.groups.medium,
|
|
143
|
+
order: 20,
|
|
144
|
+
action: this.handleCopyName
|
|
145
|
+
}];
|
|
131
146
|
return /*#__PURE__*/React.createElement(Panel, {
|
|
132
147
|
className: classNames(className, {
|
|
133
148
|
disconnected: isPanelDisconnected || isWidgetDisconnected || isDisconnected,
|
|
@@ -152,7 +167,8 @@ class WidgetPanel extends PureComponent {
|
|
|
152
167
|
isLoaded: isLoaded,
|
|
153
168
|
isLoading: isLoading,
|
|
154
169
|
isClonable: isClonable,
|
|
155
|
-
isRenamable: isRenamable
|
|
170
|
+
isRenamable: isRenamable,
|
|
171
|
+
additionalActions: additionalActions
|
|
156
172
|
}, children, isPanelInactive && /*#__PURE__*/React.createElement("div", {
|
|
157
173
|
className: "fill-parent-absolute"
|
|
158
174
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/panels/WidgetPanel.jsx"],"names":["React","Component","PureComponent","classNames","memoize","PropTypes","GLPropTypes","Panel","WidgetPanelTooltip","WidgetPanel","constructor","props","showTabTooltip","glContainer","widgetType","widgetName","description","handleSessionClosed","bind","handleSessionOpened","state","isClientDisconnected","isPanelDisconnected","isWidgetDisconnected","isWaitingForReconnect","isPanelInactive","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","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 { 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\n this.state = {\n isClientDisconnected: false,\n isPanelDisconnected: false,\n isWidgetDisconnected: false,\n isWaitingForReconnect: false,\n isPanelInactive: false,\n };\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 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 >\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.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 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../src/panels/WidgetPanelTooltip.scss"],"names":[],"mappings":"AAGA;EACE;EACA,WALwB;EAMxB;;AAEA;EACE,WARkB;;AAWpB;EACE;EACA;EACA","file":"WidgetPanelTooltip.css"}
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../src/panels/WidgetPanelTooltip.scss"],"names":[],"mappings":"AAGA;EACE;EACA,WALwB;EAMxB;;AAEA;EACE,WARkB;;AAWpB;EACE;EACA;EACA;;AAGF;EACE;EACA","file":"WidgetPanelTooltip.css"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetPanelTooltip.d.ts","sourceRoot":"","sources":["../../src/panels/WidgetPanelTooltip.jsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"WidgetPanelTooltip.d.ts","sourceRoot":"","sources":["../../src/panels/WidgetPanelTooltip.jsx"],"names":[],"mappings":";AAUA,6DAyCC"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
+
import { Button, ContextActionUtils } from '@deephaven/components';
|
|
4
|
+
import { vsCopy, vsPassFilled } from '@deephaven/icons';
|
|
3
5
|
import { GLPropTypes, LayoutUtils } from '@deephaven/dashboard';
|
|
6
|
+
import Log from '@deephaven/log';
|
|
4
7
|
import "./WidgetPanelTooltip.css";
|
|
8
|
+
var log = Log.module('WidgetPanelTooltip');
|
|
5
9
|
|
|
6
10
|
var WidgetPanelTooltip = props => {
|
|
7
11
|
var {
|
|
@@ -12,6 +16,7 @@ var WidgetPanelTooltip = props => {
|
|
|
12
16
|
children
|
|
13
17
|
} = props;
|
|
14
18
|
var panelTitle = LayoutUtils.getTitleFromContainer(glContainer);
|
|
19
|
+
var [copied, setCopied] = useState(false);
|
|
15
20
|
return /*#__PURE__*/React.createElement("div", {
|
|
16
21
|
className: "tab-tooltip-container"
|
|
17
22
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -20,7 +25,15 @@ var WidgetPanelTooltip = props => {
|
|
|
20
25
|
className: "tab-tooltip-title"
|
|
21
26
|
}, /*#__PURE__*/React.createElement("b", null, widgetType, " Name ")), /*#__PURE__*/React.createElement("span", {
|
|
22
27
|
className: "tab-tooltip-name"
|
|
23
|
-
}, widgetName)
|
|
28
|
+
}, widgetName), /*#__PURE__*/React.createElement(Button, {
|
|
29
|
+
kind: "ghost",
|
|
30
|
+
className: "tab-tooltip-copy",
|
|
31
|
+
icon: copied ? vsPassFilled : vsCopy,
|
|
32
|
+
onClick: () => {
|
|
33
|
+
ContextActionUtils.copyToClipboard(widgetName).then(setCopied(true)).catch(e => log.error('Unable to column name', e));
|
|
34
|
+
},
|
|
35
|
+
tooltip: copied ? 'Copied text' : 'Copy name'
|
|
36
|
+
})), widgetName !== panelTitle && /*#__PURE__*/React.createElement("div", {
|
|
24
37
|
className: "row"
|
|
25
38
|
}, /*#__PURE__*/React.createElement("span", {
|
|
26
39
|
className: "tab-tooltip-title"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/panels/WidgetPanelTooltip.jsx"],"names":["React","PropTypes","GLPropTypes","LayoutUtils","WidgetPanelTooltip","props","widgetType","widgetName","glContainer","description","children","panelTitle","getTitleFromContainer","propTypes","Container","isRequired","string","node","defaultProps"],"mappings":"AAAA,OAAOA,KAAP,
|
|
1
|
+
{"version":3,"sources":["../../src/panels/WidgetPanelTooltip.jsx"],"names":["React","useState","PropTypes","Button","ContextActionUtils","vsCopy","vsPassFilled","GLPropTypes","LayoutUtils","Log","log","module","WidgetPanelTooltip","props","widgetType","widgetName","glContainer","description","children","panelTitle","getTitleFromContainer","copied","setCopied","copyToClipboard","then","catch","e","error","propTypes","Container","isRequired","string","node","defaultProps"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,MAAT,EAAiBC,kBAAjB,QAA2C,uBAA3C;AACA,SAASC,MAAT,EAAiBC,YAAjB,QAAqC,kBAArC;AACA,SAASC,WAAT,EAAsBC,WAAtB,QAAyC,sBAAzC;AACA,OAAOC,GAAP,MAAgB,gBAAhB;;AAGA,IAAMC,GAAG,GAAGD,GAAG,CAACE,MAAJ,CAAW,oBAAX,CAAZ;;AAEA,IAAMC,kBAAkB,GAAGC,KAAK,IAAI;AAClC,MAAM;AAAEC,IAAAA,UAAF;AAAcC,IAAAA,UAAd;AAA0BC,IAAAA,WAA1B;AAAuCC,IAAAA,WAAvC;AAAoDC,IAAAA;AAApD,MAAiEL,KAAvE;AACA,MAAMM,UAAU,GAAGX,WAAW,CAACY,qBAAZ,CAAkCJ,WAAlC,CAAnB;AACA,MAAM,CAACK,MAAD,EAASC,SAAT,IAAsBrB,QAAQ,CAAC,KAAD,CAApC;AAEA,sBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAM,IAAA,SAAS,EAAC;AAAhB,kBACE,+BAAIa,UAAJ,WADF,CADF,eAIE;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAoCC,UAApC,CAJF,eAME,oBAAC,MAAD;AACE,IAAA,IAAI,EAAC,OADP;AAEE,IAAA,SAAS,EAAC,kBAFZ;AAGE,IAAA,IAAI,EAAEM,MAAM,GAAGf,YAAH,GAAkBD,MAHhC;AAIE,IAAA,OAAO,EAAE,MAAM;AACbD,MAAAA,kBAAkB,CAACmB,eAAnB,CAAmCR,UAAnC,EACGS,IADH,CACQF,SAAS,CAAC,IAAD,CADjB,EAEGG,KAFH,CAESC,CAAC,IAAIhB,GAAG,CAACiB,KAAJ,CAAU,uBAAV,EAAmCD,CAAnC,CAFd;AAGD,KARH;AASE,IAAA,OAAO,EAAEL,MAAM,GAAG,aAAH,GAAmB;AATpC,IANF,CADF,EAmBGN,UAAU,KAAKI,UAAf,iBACC;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAM,IAAA,SAAS,EAAC;AAAhB,kBACE,8CADF,CADF,eAIE;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAoCA,UAApC,CAJF,CApBJ,EA2BGF,WAAW,iBACV;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAM,IAAA,SAAS,EAAC;AAAhB,KAA2CA,WAA3C,CADF,CA5BJ,EAgCGC,QAhCH,CADF;AAoCD,CAzCD;;AA2CAN,kBAAkB,CAACgB,SAAnB,GAA+B;AAC7BZ,EAAAA,WAAW,EAAET,WAAW,CAACsB,SAAZ,CAAsBC,UADN;AAE7BhB,EAAAA,UAAU,EAAEZ,SAAS,CAAC6B,MAFO;AAG7BhB,EAAAA,UAAU,EAAEb,SAAS,CAAC6B,MAHO;AAI7Bd,EAAAA,WAAW,EAAEf,SAAS,CAAC6B,MAJM;AAK7Bb,EAAAA,QAAQ,EAAEhB,SAAS,CAAC8B;AALS,CAA/B;AAQApB,kBAAkB,CAACqB,YAAnB,GAAkC;AAChCnB,EAAAA,UAAU,EAAE,EADoB;AAEhCC,EAAAA,UAAU,EAAE,EAFoB;AAGhCE,EAAAA,WAAW,EAAE,IAHmB;AAIhCC,EAAAA,QAAQ,EAAE;AAJsB,CAAlC;AAOA,eAAeN,kBAAf","sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, ContextActionUtils } from '@deephaven/components';\nimport { vsCopy, vsPassFilled } from '@deephaven/icons';\nimport { GLPropTypes, LayoutUtils } from '@deephaven/dashboard';\nimport Log from '@deephaven/log';\nimport './WidgetPanelTooltip.scss';\n\nconst log = Log.module('WidgetPanelTooltip');\n\nconst WidgetPanelTooltip = props => {\n const { widgetType, widgetName, glContainer, description, children } = props;\n const panelTitle = LayoutUtils.getTitleFromContainer(glContainer);\n const [copied, setCopied] = useState(false);\n\n return (\n <div className=\"tab-tooltip-container\">\n <div className=\"row\">\n <span className=\"tab-tooltip-title\">\n <b>{widgetType} Name </b>\n </span>\n <span className=\"tab-tooltip-name\">{widgetName}</span>\n\n <Button\n kind=\"ghost\"\n className=\"tab-tooltip-copy\"\n icon={copied ? vsPassFilled : vsCopy}\n onClick={() => {\n ContextActionUtils.copyToClipboard(widgetName)\n .then(setCopied(true))\n .catch(e => log.error('Unable to column name', e));\n }}\n tooltip={copied ? 'Copied text' : 'Copy name'}\n />\n </div>\n {widgetName !== panelTitle && (\n <div className=\"row\">\n <span className=\"tab-tooltip-title\">\n <b>Display Name</b>\n </span>\n <span className=\"tab-tooltip-name\">{panelTitle}</span>\n </div>\n )}\n {description && (\n <div className=\"row\">\n <span className=\"tab-tooltip-description\">{description}</span>\n </div>\n )}\n {children}\n </div>\n );\n};\n\nWidgetPanelTooltip.propTypes = {\n glContainer: GLPropTypes.Container.isRequired,\n widgetType: PropTypes.string,\n widgetName: PropTypes.string,\n description: PropTypes.string,\n children: PropTypes.node,\n};\n\nWidgetPanelTooltip.defaultProps = {\n widgetType: '',\n widgetName: '',\n description: null,\n children: null,\n};\n\nexport default WidgetPanelTooltip;\n"],"file":"WidgetPanelTooltip.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/dashboard-core-plugins",
|
|
3
|
-
"version": "0.15.1
|
|
3
|
+
"version": "0.15.1",
|
|
4
4
|
"description": "Deephaven Dashboard Core Plugins",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -30,19 +30,19 @@
|
|
|
30
30
|
"start": "cross-env NODE_ENV=development npm run watch"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@deephaven/chart": "^0.15.1
|
|
34
|
-
"@deephaven/components": "^0.15.1
|
|
35
|
-
"@deephaven/console": "^0.15.1
|
|
36
|
-
"@deephaven/dashboard": "^0.15.1
|
|
37
|
-
"@deephaven/file-explorer": "^0.15.1
|
|
38
|
-
"@deephaven/golden-layout": "^0.15.
|
|
39
|
-
"@deephaven/icons": "^0.15.
|
|
40
|
-
"@deephaven/iris-grid": "^0.15.1
|
|
41
|
-
"@deephaven/jsapi-shim": "^0.15.1
|
|
42
|
-
"@deephaven/jsapi-utils": "^0.15.1
|
|
43
|
-
"@deephaven/log": "^0.15.1
|
|
44
|
-
"@deephaven/redux": "^0.15.1
|
|
45
|
-
"@deephaven/utils": "^0.15.
|
|
33
|
+
"@deephaven/chart": "^0.15.1",
|
|
34
|
+
"@deephaven/components": "^0.15.1",
|
|
35
|
+
"@deephaven/console": "^0.15.1",
|
|
36
|
+
"@deephaven/dashboard": "^0.15.1",
|
|
37
|
+
"@deephaven/file-explorer": "^0.15.1",
|
|
38
|
+
"@deephaven/golden-layout": "^0.15.0",
|
|
39
|
+
"@deephaven/icons": "^0.15.0",
|
|
40
|
+
"@deephaven/iris-grid": "^0.15.1",
|
|
41
|
+
"@deephaven/jsapi-shim": "^0.15.1",
|
|
42
|
+
"@deephaven/jsapi-utils": "^0.15.1",
|
|
43
|
+
"@deephaven/log": "^0.15.1",
|
|
44
|
+
"@deephaven/redux": "^0.15.1",
|
|
45
|
+
"@deephaven/utils": "^0.15.0",
|
|
46
46
|
"@fortawesome/react-fontawesome": "^0.1.18",
|
|
47
47
|
"classnames": "^2.3.1",
|
|
48
48
|
"deep-equal": "^2.0.5",
|
|
@@ -63,8 +63,8 @@
|
|
|
63
63
|
"react-redux": "^7.2.4"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
|
-
"@deephaven/mocks": "^0.15.
|
|
67
|
-
"@deephaven/tsconfig": "^0.15.
|
|
66
|
+
"@deephaven/mocks": "^0.15.0",
|
|
67
|
+
"@deephaven/tsconfig": "^0.15.0"
|
|
68
68
|
},
|
|
69
69
|
"files": [
|
|
70
70
|
"dist"
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
"publishConfig": {
|
|
73
73
|
"access": "public"
|
|
74
74
|
},
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "ebdc3452ada8cca6744aee0feef98313ebaef3ba"
|
|
76
76
|
}
|