@deephaven/dashboard-core-plugins 0.5.2-matplotlib.2 → 0.6.1-fixed-deps.2
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/ChartPlugin.js +25 -22
- package/dist/ChartPlugin.js.map +1 -1
- package/dist/ConsolePlugin.d.ts.map +1 -1
- package/dist/ConsolePlugin.js +130 -134
- package/dist/ConsolePlugin.js.map +1 -1
- package/dist/FilterPlugin.d.ts.map +1 -1
- package/dist/FilterPlugin.js +114 -116
- package/dist/FilterPlugin.js.map +1 -1
- package/dist/GridPlugin.js +29 -26
- package/dist/GridPlugin.js.map +1 -1
- package/dist/LinkerPlugin.js +7 -5
- package/dist/LinkerPlugin.js.map +1 -1
- package/dist/MarkdownPlugin.js +44 -45
- package/dist/MarkdownPlugin.js.map +1 -1
- package/dist/PandasPlugin.d.ts +5 -2
- package/dist/PandasPlugin.d.ts.map +1 -1
- package/dist/PandasPlugin.js +12 -12
- package/dist/PandasPlugin.js.map +1 -1
- package/dist/controls/ControlType.d.ts +1 -0
- package/dist/controls/ControlType.d.ts.map +1 -1
- package/dist/controls/ControlType.js +3 -5
- package/dist/controls/ControlType.js.map +1 -1
- package/dist/controls/dropdown-filter/DropdownFilter.d.ts +6 -0
- package/dist/controls/dropdown-filter/DropdownFilter.d.ts.map +1 -1
- package/dist/controls/dropdown-filter/DropdownFilter.js +356 -394
- package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
- package/dist/controls/input-filter/InputFilter.d.ts +6 -0
- package/dist/controls/input-filter/InputFilter.d.ts.map +1 -1
- package/dist/controls/input-filter/InputFilter.js +256 -270
- package/dist/controls/input-filter/InputFilter.js.map +1 -1
- package/dist/controls/markdown/MarkdownContainer.js +18 -56
- package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
- package/dist/controls/markdown/MarkdownEditor.js +36 -75
- package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
- package/dist/controls/markdown/MarkdownStartPage.js +93 -133
- package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
- package/dist/controls/markdown/MarkdownUtils.js +17 -32
- package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
- package/dist/events/ChartEvent.js +1 -5
- package/dist/events/ChartEvent.js.map +1 -1
- package/dist/events/ConsoleEvent.js +1 -5
- package/dist/events/ConsoleEvent.js.map +1 -1
- package/dist/events/ControlEvent.js +1 -5
- package/dist/events/ControlEvent.js.map +1 -1
- package/dist/events/InputFilterEvent.d.ts +2 -0
- package/dist/events/InputFilterEvent.d.ts.map +1 -1
- package/dist/events/InputFilterEvent.js +3 -5
- package/dist/events/InputFilterEvent.js.map +1 -1
- package/dist/events/IrisGridEvent.js +1 -5
- package/dist/events/IrisGridEvent.js.map +1 -1
- package/dist/events/NotebookEvent.js +1 -5
- package/dist/events/NotebookEvent.js.map +1 -1
- package/dist/events/PQEvent.js +1 -5
- package/dist/events/PQEvent.js.map +1 -1
- package/dist/events/PandasEvent.js +1 -5
- package/dist/events/PandasEvent.js.map +1 -1
- package/dist/events/TabEvent.js +1 -5
- package/dist/events/TabEvent.js.map +1 -1
- package/dist/events/index.d.ts +0 -1
- package/dist/events/index.js +9 -10
- package/dist/events/index.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -11
- package/dist/index.js.map +1 -1
- package/dist/linker/Linker.d.ts +1 -1
- package/dist/linker/Linker.js +594 -606
- package/dist/linker/Linker.js.map +1 -1
- package/dist/linker/LinkerLink.js +92 -126
- package/dist/linker/LinkerLink.js.map +1 -1
- package/dist/linker/LinkerOverlayContent.js +162 -220
- package/dist/linker/LinkerOverlayContent.js.map +1 -1
- package/dist/linker/LinkerUtils.js +105 -114
- package/dist/linker/LinkerUtils.js.map +1 -1
- package/dist/panels/ChartColumnSelectorOverlay.js +19 -25
- package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
- package/dist/panels/ChartFilterOverlay.js +18 -24
- package/dist/panels/ChartFilterOverlay.js.map +1 -1
- package/dist/panels/ChartPanel.d.ts +3 -0
- package/dist/panels/ChartPanel.d.ts.map +1 -1
- package/dist/panels/ChartPanel.js +839 -873
- package/dist/panels/ChartPanel.js.map +1 -1
- package/dist/panels/CommandHistoryPanel.d.ts.map +1 -1
- package/dist/panels/CommandHistoryPanel.js +160 -186
- package/dist/panels/CommandHistoryPanel.js.map +1 -1
- package/dist/panels/ConsolePanel.d.ts +1 -1
- package/dist/panels/ConsolePanel.d.ts.map +1 -1
- package/dist/panels/ConsolePanel.js +327 -374
- package/dist/panels/ConsolePanel.js.map +1 -1
- package/dist/panels/DropdownFilterPanel.d.ts +6 -0
- package/dist/panels/DropdownFilterPanel.d.ts.map +1 -1
- package/dist/panels/DropdownFilterPanel.js +537 -566
- package/dist/panels/DropdownFilterPanel.js.map +1 -1
- package/dist/panels/FileExplorerPanel.d.ts +6 -1
- package/dist/panels/FileExplorerPanel.d.ts.map +1 -1
- package/dist/panels/FileExplorerPanel.js +208 -210
- package/dist/panels/FileExplorerPanel.js.map +1 -1
- package/dist/panels/FilterSetManager.css +111 -0
- package/dist/panels/FilterSetManager.css.map +1 -0
- package/dist/panels/FilterSetManager.d.ts +66 -0
- package/dist/panels/FilterSetManager.d.ts.map +1 -0
- package/dist/panels/FilterSetManager.js +732 -0
- package/dist/panels/FilterSetManager.js.map +1 -0
- package/dist/panels/FilterSetManagerPanel.css +33 -0
- package/dist/panels/FilterSetManagerPanel.css.map +1 -0
- package/dist/panels/FilterSetManagerPanel.d.ts +69 -0
- package/dist/panels/FilterSetManagerPanel.d.ts.map +1 -0
- package/dist/panels/FilterSetManagerPanel.js +383 -0
- package/dist/panels/FilterSetManagerPanel.js.map +1 -0
- package/dist/panels/InputFilterPanel.d.ts +7 -0
- package/dist/panels/InputFilterPanel.d.ts.map +1 -1
- package/dist/panels/InputFilterPanel.js +198 -206
- package/dist/panels/InputFilterPanel.js.map +1 -1
- package/dist/panels/IrisGridPanel.d.ts +11 -3
- package/dist/panels/IrisGridPanel.d.ts.map +1 -1
- package/dist/panels/IrisGridPanel.js +779 -771
- package/dist/panels/IrisGridPanel.js.map +1 -1
- package/dist/panels/LogPanel.js +80 -116
- package/dist/panels/LogPanel.js.map +1 -1
- package/dist/panels/MarkdownPanel.js +165 -199
- package/dist/panels/MarkdownPanel.js.map +1 -1
- package/dist/panels/NotebookPanel.d.ts +3 -1
- package/dist/panels/NotebookPanel.d.ts.map +1 -1
- package/dist/panels/NotebookPanel.js +870 -862
- package/dist/panels/NotebookPanel.js.map +1 -1
- package/dist/panels/PandasPanel.js +56 -90
- package/dist/panels/PandasPanel.js.map +1 -1
- package/dist/panels/Panel.js +282 -313
- package/dist/panels/Panel.js.map +1 -1
- package/dist/panels/PanelContextMenu.js +107 -158
- package/dist/panels/PanelContextMenu.js.map +1 -1
- package/dist/panels/RenameDialog.js +144 -172
- package/dist/panels/RenameDialog.js.map +1 -1
- package/dist/panels/Shortcuts.js +1 -1
- package/dist/panels/Shortcuts.js.map +1 -1
- package/dist/panels/WidgetPanel.js +133 -163
- package/dist/panels/WidgetPanel.js.map +1 -1
- package/dist/panels/WidgetPanelTooltip.js +7 -5
- package/dist/panels/WidgetPanelTooltip.js.map +1 -1
- package/dist/panels/index.d.ts +1 -1
- package/dist/panels/index.js +16 -16
- package/dist/panels/index.js.map +1 -1
- package/dist/prop-types/CommonPropTypes.js +4 -8
- package/dist/prop-types/CommonPropTypes.js.map +1 -1
- package/dist/prop-types/UIPropTypes.js +6 -6
- package/dist/prop-types/UIPropTypes.js.map +1 -1
- package/dist/prop-types/index.js +2 -2
- package/dist/prop-types/index.js.map +1 -1
- package/dist/redux/actions.d.ts +1 -0
- package/dist/redux/actions.d.ts.map +1 -1
- package/dist/redux/actions.js +33 -54
- package/dist/redux/actions.js.map +1 -1
- package/dist/redux/index.js +6 -21
- package/dist/redux/index.js.map +1 -1
- package/dist/redux/reducers/index.js +2 -2
- package/dist/redux/reducers/index.js.map +1 -1
- package/dist/redux/reducers/sessionWrapper.js +1 -1
- package/dist/redux/reducers/sessionWrapper.js.map +1 -1
- package/dist/redux/selectors.d.ts +1 -0
- package/dist/redux/selectors.d.ts.map +1 -1
- package/dist/redux/selectors.js +22 -18
- package/dist/redux/selectors.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +27 -54
- package/dist/MatPlotLibPlugin.d.ts +0 -5
- package/dist/MatPlotLibPlugin.d.ts.map +0 -1
- package/dist/MatPlotLibPlugin.js +0 -45
- package/dist/MatPlotLibPlugin.js.map +0 -1
- package/dist/events/MatPlotLibEvent.d.ts +0 -5
- package/dist/events/MatPlotLibEvent.d.ts.map +0 -1
- package/dist/events/MatPlotLibEvent.js +0 -12
- package/dist/events/MatPlotLibEvent.js.map +0 -1
- package/dist/panels/MatPlotLibPanel.d.ts +0 -22
- package/dist/panels/MatPlotLibPanel.d.ts.map +0 -1
- package/dist/panels/MatPlotLibPanel.js +0 -123
- package/dist/panels/MatPlotLibPanel.js.map +0 -1
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","props","actions","isClonable","isRenamable","additionalActions","push","getCloneAction","getRenameAction","handleClearAllFilters","bind","handleCopyPanel","handleFocus","handleBlur","handleHide","handleResize","handleSessionClosed","handleSessionOpened","handleBeforeShow","handleShow","handleTabBlur","handleTabFocus","handleRenameCancel","handleRenameSubmit","handleShowRenameDialog","handleTab","glContainer","state","title","getTitleFromContainer","showRenameDialog","componentPanel","glEventHub","on","SESSION_CLOSED","SESSION_OPENED","focus","blur","CLEAR_ALL_FILTERS","emit","MOUNT","off","UNMOUNT","tab","setState","getTitleFromTab","forceUpdate","onTab","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","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\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 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 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 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 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 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","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","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":";;AAAA,OAAOA,KAAP,IAAgBC,SAAhB,EAA2BC,aAA3B,QAAgD,OAAhD;AACA,OAAOC,QAAP,MAAqB,WAArB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,OAAP,MAAoB,aAApB;AACA,SAASC,cAAT,EAAyBC,cAAzB,EAAyCC,OAAzC,QAAwD,uBAAxD;AACA,SAASC,WAAT,EAAsBC,WAAtB,EAAmCC,UAAnC,QAAqD,sBAArD;AACA,OAAOC,GAAP,MAAgB,gBAAhB;SACSC,Y,EAAcC,gB,EAAkBC,Q;OAClCC,gB;OACAC,Y;AAEP,IAAMC,GAAG,GAAGN,GAAG,CAACO,MAAJ,CAAW,OAAX,CAAZ;AAEA;AACA;AACA;AACA;AACA;;AACA,MAAMC,KAAN,SAAoBnB,aAApB,CAAkC;AAChCoB,EAAAA,WAAW,CAACC,KAAD,EAAQ;AACjB,UAAMA,KAAN;;AADiB,gDA4LEjB,OAAO,CAAC,CAACkB,OAAD,EAAUC,UAAV,EAAsBC,WAAtB,KAAsC;AACjE,UAAMC,iBAAiB,GAAG,EAA1B;;AACA,UAAIF,UAAJ,EAAgB;AACdE,QAAAA,iBAAiB,CAACC,IAAlB,CAAuB,KAAKC,cAAL,EAAvB;AACD;;AACD,UAAIH,WAAJ,EAAiB;AACfC,QAAAA,iBAAiB,CAACC,IAAlB,CAAuB,KAAKE,eAAL,EAAvB;AACD;;AACD,aAAO,CAAC,GAAGH,iBAAJ,EAAuB,GAAGH,OAA1B,CAAP;AACD,KAT2B,CA5LT;;AAGjB,SAAKO,qBAAL,GAA6B,KAAKA,qBAAL,CAA2BC,IAA3B,CAAgC,IAAhC,CAA7B;AACA,SAAKC,eAAL,GAAuB,KAAKA,eAAL,CAAqBD,IAArB,CAA0B,IAA1B,CAAvB;AACA,SAAKE,WAAL,GAAmB,KAAKA,WAAL,CAAiBF,IAAjB,CAAsB,IAAtB,CAAnB;AACA,SAAKG,UAAL,GAAkB,KAAKA,UAAL,CAAgBH,IAAhB,CAAqB,IAArB,CAAlB;AACA,SAAKI,UAAL,GAAkB,KAAKA,UAAL,CAAgBJ,IAAhB,CAAqB,IAArB,CAAlB;AACA,SAAKK,YAAL,GAAoB,KAAKA,YAAL,CAAkBL,IAAlB,CAAuB,IAAvB,CAApB;AACA,SAAKM,mBAAL,GAA2B,KAAKA,mBAAL,CAAyBN,IAAzB,CAA8B,IAA9B,CAA3B;AACA,SAAKO,mBAAL,GAA2B,KAAKA,mBAAL,CAAyBP,IAAzB,CAA8B,IAA9B,CAA3B;AACA,SAAKQ,gBAAL,GAAwB,KAAKA,gBAAL,CAAsBR,IAAtB,CAA2B,IAA3B,CAAxB;AACA,SAAKS,UAAL,GAAkB,KAAKA,UAAL,CAAgBT,IAAhB,CAAqB,IAArB,CAAlB;AACA,SAAKU,aAAL,GAAqB,KAAKA,aAAL,CAAmBV,IAAnB,CAAwB,IAAxB,CAArB;AACA,SAAKW,cAAL,GAAsB,KAAKA,cAAL,CAAoBX,IAApB,CAAyB,IAAzB,CAAtB;AACA,SAAKY,kBAAL,GAA0B,KAAKA,kBAAL,CAAwBZ,IAAxB,CAA6B,IAA7B,CAA1B;AACA,SAAKa,kBAAL,GAA0B,KAAKA,kBAAL,CAAwBb,IAAxB,CAA6B,IAA7B,CAA1B;AACA,SAAKc,sBAAL,GAA8B,KAAKA,sBAAL,CAA4Bd,IAA5B,CAAiC,IAAjC,CAA9B;AAEA,SAAKe,SAAL,GAAiB,KAAKA,SAAL,CAAef,IAAf,CAAoB,IAApB,CAAjB;AAEA,QAAM;AAAEgB,MAAAA;AAAF,QAAkB,KAAKzB,KAA7B;AACA,SAAK0B,KAAL,GAAa;AACXC,MAAAA,KAAK,EAAEvC,WAAW,CAACwC,qBAAZ,CAAkCH,WAAlC,CADI;AAEXI,MAAAA,gBAAgB,EAAE;AAFP,KAAb;AAID;;AAEDC,EAAAA,iBAAiB,GAAG;AAClB,QAAM;AAAEC,MAAAA,cAAF;AAAkBN,MAAAA,WAAlB;AAA+BO,MAAAA;AAA/B,QAA8C,KAAKhC,KAAzD;AAEAyB,IAAAA,WAAW,CAACQ,EAAZ,CAAe,QAAf,EAAyB,KAAKnB,YAA9B;AACAW,IAAAA,WAAW,CAACQ,EAAZ,CAAe,MAAf,EAAuB,KAAKhB,gBAA5B;AACAQ,IAAAA,WAAW,CAACQ,EAAZ,CAAe,OAAf,EAAwB,KAAKf,UAA7B;AACAO,IAAAA,WAAW,CAACQ,EAAZ,CAAe,MAAf,EAAuB,KAAKpB,UAA5B;AACAY,IAAAA,WAAW,CAACQ,EAAZ,CAAe,KAAf,EAAsB,KAAKT,SAA3B;AACAQ,IAAAA,UAAU,CAACC,EAAX,CAAc1C,YAAY,CAAC2C,cAA3B,EAA2C,KAAKnB,mBAAhD;AACAiB,IAAAA,UAAU,CAACC,EAAX,CAAc1C,YAAY,CAAC4C,cAA3B,EAA2C,KAAKnB,mBAAhD;AACAgB,IAAAA,UAAU,CAACC,EAAX,CAAcxC,QAAQ,CAAC2C,KAAvB,EAA8B,KAAKhB,cAAnC;AACAY,IAAAA,UAAU,CAACC,EAAX,CAAcxC,QAAQ,CAAC4C,IAAvB,EAA6B,KAAKlB,aAAlC;AACAa,IAAAA,UAAU,CAACC,EAAX,CACEzC,gBAAgB,CAAC8C,iBADnB,EAEE,KAAK9B,qBAFP;AAKAwB,IAAAA,UAAU,CAACO,IAAX,CAAgBlD,UAAU,CAACmD,KAA3B,EAAkCT,cAAlC;AACD;;AAEDU,EAAAA,oBAAoB,GAAG;AACrB,QAAM;AAAEV,MAAAA,cAAF;AAAkBN,MAAAA,WAAlB;AAA+BO,MAAAA;AAA/B,QAA8C,KAAKhC,KAAzD;AAEAyB,IAAAA,WAAW,CAACiB,GAAZ,CAAgB,QAAhB,EAA0B,KAAK5B,YAA/B;AACAW,IAAAA,WAAW,CAACiB,GAAZ,CAAgB,MAAhB,EAAwB,KAAKzB,gBAA7B;AACAQ,IAAAA,WAAW,CAACiB,GAAZ,CAAgB,OAAhB,EAAyB,KAAKxB,UAA9B;AACAO,IAAAA,WAAW,CAACiB,GAAZ,CAAgB,MAAhB,EAAwB,KAAK7B,UAA7B;AACAY,IAAAA,WAAW,CAACiB,GAAZ,CAAgB,KAAhB,EAAuB,KAAKlB,SAA5B;AACAQ,IAAAA,UAAU,CAACU,GAAX,CAAenD,YAAY,CAAC2C,cAA5B,EAA4C,KAAKnB,mBAAjD;AACAiB,IAAAA,UAAU,CAACU,GAAX,CAAenD,YAAY,CAAC4C,cAA5B,EAA4C,KAAKnB,mBAAjD;AACAgB,IAAAA,UAAU,CAACU,GAAX,CAAejD,QAAQ,CAAC2C,KAAxB,EAA+B,KAAKhB,cAApC;AACAY,IAAAA,UAAU,CAACU,GAAX,CAAejD,QAAQ,CAAC4C,IAAxB,EAA8B,KAAKlB,aAAnC;AACAa,IAAAA,UAAU,CAACU,GAAX,CACElD,gBAAgB,CAAC8C,iBADnB,EAEE,KAAK9B,qBAFP;AAKAwB,IAAAA,UAAU,CAACO,IAAX,CAAgBlD,UAAU,CAACsD,OAA3B,EAAoCZ,cAApC;AACD;;AAEDP,EAAAA,SAAS,CAACoB,GAAD,EAAM;AACb,QAAIA,GAAJ,EAAS;AACP,WAAKC,QAAL,CAAc;AACZlB,QAAAA,KAAK,EAAEvC,WAAW,CAAC0D,eAAZ,CAA4BF,GAA5B;AADK,OAAd;AAGD,KALY,CAMb;AACA;;;AACA,SAAKG,WAAL;AAEA,QAAM;AAAEC,MAAAA;AAAF,QAAY,KAAKhD,KAAvB;AACAgD,IAAAA,KAAK,CAACJ,GAAD,CAAL;AACD;;AAEDpC,EAAAA,qBAAqB,GAAU;AAC7B,QAAM;AAAEyC,MAAAA;AAAF,QAAwB,KAAKjD,KAAnC;AACAiD,IAAAA,iBAAiB,CAAC,YAAD,CAAjB;AACD;;AAEDtC,EAAAA,WAAW,GAAU;AACnB,QAAM;AAAEoB,MAAAA,cAAF;AAAkBC,MAAAA;AAAlB,QAAiC,KAAKhC,KAA5C;AACAgC,IAAAA,UAAU,CAACO,IAAX,CAAgBlD,UAAU,CAAC6D,KAA3B,EAAkCnB,cAAlC;AAEA,QAAM;AAAEoB,MAAAA;AAAF,QAAc,KAAKnD,KAAzB;AACAmD,IAAAA,OAAO,CAAC,YAAD,CAAP;AACD;;AAEDvC,EAAAA,UAAU,GAAU;AAClB,QAAM;AAAEwC,MAAAA;AAAF,QAAa,KAAKpD,KAAxB;AACAoD,IAAAA,MAAM,CAAC,YAAD,CAAN;AACD;;AAEDvC,EAAAA,UAAU,GAAU;AAClB,QAAM;AAAEwC,MAAAA;AAAF,QAAa,KAAKrD,KAAxB;AACAqD,IAAAA,MAAM,CAAC,YAAD,CAAN;AACD;;AAEDvC,EAAAA,YAAY,GAAU;AACpB,QAAM;AAAEwC,MAAAA;AAAF,QAAe,KAAKtD,KAA1B;AACAsD,IAAAA,QAAQ,CAAC,YAAD,CAAR;AACD;;AAEDvC,EAAAA,mBAAmB,GAAU;AAC3B,QAAM;AAAEwC,MAAAA;AAAF,QAAqB,KAAKvD,KAAhC;AACAuD,IAAAA,cAAc,CAAC,YAAD,CAAd;AACD;;AAEDvC,EAAAA,mBAAmB,GAAU;AAC3B,QAAM;AAAEwC,MAAAA;AAAF,QAAoB,KAAKxD,KAA/B;AACAwD,IAAAA,aAAa,CAAC,YAAD,CAAb;AACD;;AAEDvC,EAAAA,gBAAgB,GAAU;AACxB,QAAM;AAAEwC,MAAAA;AAAF,QAAmB,KAAKzD,KAA9B;AACAyD,IAAAA,YAAY,CAAC,YAAD,CAAZ;AACD;;AAEDvC,EAAAA,UAAU,GAAU;AAClB,QAAM;AAAEwC,MAAAA;AAAF,QAAa,KAAK1D,KAAxB;AACA0D,IAAAA,MAAM,CAAC,YAAD,CAAN;AACD;;AAEDvC,EAAAA,aAAa,GAAU;AACrB,QAAM;AAAEwC,MAAAA;AAAF,QAAgB,KAAK3D,KAA3B;AACA2D,IAAAA,SAAS,CAAC,YAAD,CAAT;AACD;;AAEDvC,EAAAA,cAAc,GAAU;AACtB,QAAM;AAAEwC,MAAAA;AAAF,QAAiB,KAAK5D,KAA5B;AACA4D,IAAAA,UAAU,CAAC,YAAD,CAAV;AACD;;AAEDvC,EAAAA,kBAAkB,GAAG;AACnB,SAAKwB,QAAL,CAAc;AAAEhB,MAAAA,gBAAgB,EAAE;AAApB,KAAd;AACD;;AAEDN,EAAAA,sBAAsB,GAAG;AACvB,SAAKsB,QAAL,CAAc;AAAEhB,MAAAA,gBAAgB,EAAE;AAApB,KAAd;AACD;;AAEDP,EAAAA,kBAAkB,CAACuC,QAAD,EAAW;AAC3B,QAAM;AAAEpC,MAAAA;AAAF,QAAkB,KAAKzB,KAA7B;AACA,SAAK6C,QAAL,CAAc;AAAEhB,MAAAA,gBAAgB,EAAE,KAApB;AAA2BF,MAAAA,KAAK,EAAEkC;AAAlC,KAAd;AACA,QAAMC,IAAI,GAAG1E,WAAW,CAAC2E,oBAAZ,CAAiCtC,WAAjC,CAAb;AACA,QAAMuC,MAAM,GAAG5E,WAAW,CAAC6E,+BAAZ,CAA4CxC,WAA5C,CAAf;AACArC,IAAAA,WAAW,CAAC8E,eAAZ,CAA4BJ,IAA5B,EAAkCE,MAAlC,EAA0CH,QAA1C;AACD;;AAEDnD,EAAAA,eAAe,GAAG;AAChB,QAAM;AAAEe,MAAAA,WAAF;AAAeO,MAAAA;AAAf,QAA8B,KAAKhC,KAAzC;AACA,QAAM8D,IAAI,GAAG1E,WAAW,CAAC2E,oBAAZ,CAAiCtC,WAAjC,CAAb;AACA,QAAMuC,MAAM,GAAG5E,WAAW,CAAC6E,+BAAZ,CAA4CxC,WAA5C,CAAf;;AACA,QAAIuC,MAAM,IAAI,IAAd,EAAoB;AAClBpE,MAAAA,GAAG,CAACuE,KAAJ,CAAU,+CAAV,EAA2D1C,WAA3D;AACA;AACD;;AACD,QAAM2C,WAAW,GAAGhF,WAAW,CAACiF,cAAZ,CAA2BP,IAA3B,EAAiCE,MAAjC,CAApB;;AACA,QAAII,WAAW,KAAK,IAApB,EAA0B;AACxBpC,MAAAA,UAAU,CAACO,IAAX,CAAgBlD,UAAU,CAACiF,MAA3B,EAAmC,IAAnC,EAAyCF,WAAzC;AACD;AACF;;AAED9D,EAAAA,cAAc,GAAG;AACf,WAAO;AACLqB,MAAAA,KAAK,EAAE,YADF;AAEL4C,MAAAA,KAAK,EAAE,EAFF;AAGLC,MAAAA,KAAK,EAAExF,cAAc,CAACyF,MAAf,CAAsBC,IAHxB;AAILC,MAAAA,MAAM,EAAE,KAAKjE;AAJR,KAAP;AAMD;;AAEDH,EAAAA,eAAe,GAAG;AAChB,WAAO;AACLoB,MAAAA,KAAK,EAAE,QADF;AAEL4C,MAAAA,KAAK,EAAE,EAFF;AAGLC,MAAAA,KAAK,EAAExF,cAAc,CAACyF,MAAf,CAAsBC,IAHxB;AAILC,MAAAA,MAAM,EAAE,KAAKpD;AAJR,KAAP;AAMD;;AAaDqD,EAAAA,MAAM,GAAG;AACP,QAAM;AACJC,MAAAA,QADI;AAEJC,MAAAA,SAFI;AAGJC,MAAAA,gBAHI;AAIJtD,MAAAA,WAJI;AAKJrB,MAAAA,iBALI;AAMJ4E,MAAAA,YANI;AAOJC,MAAAA,QAPI;AAQJC,MAAAA,SARI;AASJhF,MAAAA,UATI;AAUJC,MAAAA;AAVI,QAWF,KAAKH,KAXT;AAYA,QAAM;AAAE4C,MAAAA,GAAG,EAAEuC;AAAP,QAAiB1D,WAAvB;AACA,QAAM;AAAEI,MAAAA,gBAAF;AAAoBF,MAAAA;AAApB,QAA8B,KAAKD,KAAzC;AAEA,wBACE;AACE,MAAA,SAAS,EAAE5C,UAAU,CAAC,wBAAD,EAA2BgG,SAA3B,CADvB;AAEE,MAAA,cAAc,EAAE,KAAKnE,WAFvB;AAGE,MAAA,aAAa,EAAE,KAAKC;AAHtB,OAKGiE,QALH,eAME,oBAAC,cAAD;AACE,MAAA,YAAY,EAAEG,YADhB;AAEE,MAAA,QAAQ,EAAEC,QAFZ;AAGE,MAAA,SAAS,EAAEC;AAHb,MANF,EAWGC,KAAK,iBACJvG,QAAQ,CAACwG,YAAT,eACE,uDACE,oBAAC,gBAAD;AACE,MAAA,WAAW,EAAE3D,WADf;AAEE,MAAA,iBAAiB,EAAE,KAAK4D,kBAAL,CACjBjF,iBADiB,EAEjBF,UAFiB,EAGjBC,WAHiB;AAFrB,MADF,EASGA,WAAW,iBACV,oBAAC,YAAD;AACE,MAAA,OAAO,EAAE0B,gBADX;AAEE,MAAA,KAAK,EAAEF,KAFT;AAGE,MAAA,QAAQ,EAAC,OAHX;AAIE,MAAA,QAAQ,EAAE,KAAKN,kBAJjB;AAKE,MAAA,QAAQ,EAAE,KAAKC;AALjB,MAVJ,EAkBGyD,gBAAgB,iBACf,oBAAC,OAAD;AACE,MAAA,WAAW,MADb;AAEE,MAAA,OAAO,EAAE;AACPO,QAAAA,SAAS,EAAE;AADJ,OAFX;AAKE,MAAA,eAAe,EAAC;AALlB,OAOGP,gBAAgB,EAPnB,CAnBJ,CADF,EA+BEI,KAAK,CAACI,OAAN,CAAc,CAAd,CA/BF,CA+BmB;AA/BnB,KAZJ,CADF;AAgDD;;AAxQ+B;;AA2QlCzF,KAAK,CAAC0F,SAAN,GAAkB;AAChBzD,EAAAA,cAAc,EAAElD,SAAS,CAAC4G,UAAV,CAAqB/G,SAArB,EAAgCgH,UADhC;AAEhBb,EAAAA,QAAQ,EAAEhG,SAAS,CAAC8G,IAAV,CAAeD,UAFT;AAGhBjE,EAAAA,WAAW,EAAEtC,WAAW,CAACyG,SAAZ,CAAsBF,UAHnB;AAIhB1D,EAAAA,UAAU,EAAE7C,WAAW,CAAC0G,QAAZ,CAAqBH,UAJjB;AAKhBZ,EAAAA,SAAS,EAAEjG,SAAS,CAACiH,MALL;AAMhB3C,EAAAA,OAAO,EAAEtE,SAAS,CAACkH,IANH;AAOhB3C,EAAAA,MAAM,EAAEvE,SAAS,CAACkH,IAPF;AAQhB/C,EAAAA,KAAK,EAAEnE,SAAS,CAACkH,IARD;AAShB9C,EAAAA,iBAAiB,EAAEpE,SAAS,CAACkH,IATb;AAUhB1C,EAAAA,MAAM,EAAExE,SAAS,CAACkH,IAVF;AAWhBzC,EAAAA,QAAQ,EAAEzE,SAAS,CAACkH,IAXJ;AAYhBxC,EAAAA,cAAc,EAAE1E,SAAS,CAACkH,IAZV;AAahBvC,EAAAA,aAAa,EAAE3E,SAAS,CAACkH,IAbT;AAchBtC,EAAAA,YAAY,EAAE5E,SAAS,CAACkH,IAdR;AAehBrC,EAAAA,MAAM,EAAE7E,SAAS,CAACkH,IAfF;AAgBhBpC,EAAAA,SAAS,EAAE9E,SAAS,CAACkH,IAhBL;AAiBhBnC,EAAAA,UAAU,EAAE/E,SAAS,CAACkH,IAjBN;AAkBhBhB,EAAAA,gBAAgB,EAAElG,SAAS,CAACkH,IAlBZ;AAmBhB3F,EAAAA,iBAAiB,EAAEvB,SAAS,CAACmH,SAAV,CAAoB,CAACnH,SAAS,CAACoH,KAAX,EAAkBpH,SAAS,CAACkH,IAA5B,CAApB,CAnBH;AAoBhBf,EAAAA,YAAY,EAAEnG,SAAS,CAACiH,MApBR;AAqBhBZ,EAAAA,SAAS,EAAErG,SAAS,CAACqH,IArBL;AAsBhBjB,EAAAA,QAAQ,EAAEpG,SAAS,CAACqH,IAtBJ;AAuBhBhG,EAAAA,UAAU,EAAErB,SAAS,CAACqH,IAvBN;AAwBhB/F,EAAAA,WAAW,EAAEtB,SAAS,CAACqH;AAxBP,CAAlB;AA2BApG,KAAK,CAACqG,YAAN,GAAqB;AACnBrB,EAAAA,SAAS,EAAE,EADQ;AAEnB9B,EAAAA,KAAK,EAAE,MAAM,CAAE,CAFI;AAGnBC,EAAAA,iBAAiB,EAAE,MAAM,CAAE,CAHR;AAInBE,EAAAA,OAAO,EAAE,MAAM,CAAE,CAJE;AAKnBC,EAAAA,MAAM,EAAE,MAAM,CAAE,CALG;AAMnBC,EAAAA,MAAM,EAAE,MAAM,CAAE,CANG;AAOnBC,EAAAA,QAAQ,EAAE,MAAM,CAAE,CAPC;AAQnBC,EAAAA,cAAc,EAAE,MAAM,CAAE,CARL;AASnBC,EAAAA,aAAa,EAAE,MAAM,CAAE,CATJ;AAUnBC,EAAAA,YAAY,EAAE,MAAM,CAAE,CAVH;AAWnBC,EAAAA,MAAM,EAAE,MAAM,CAAE,CAXG;AAYnBC,EAAAA,SAAS,EAAE,MAAM,CAAE,CAZA;AAanBC,EAAAA,UAAU,EAAE,MAAM,CAAE,CAbD;AAcnBmB,EAAAA,gBAAgB,EAAE,IAdC;AAenB3E,EAAAA,iBAAiB,EAAE,EAfA;AAgBnB4E,EAAAA,YAAY,EAAE,IAhBK;AAiBnBE,EAAAA,SAAS,EAAE,KAjBQ;AAkBnBD,EAAAA,QAAQ,EAAE,IAlBS;AAmBnB/E,EAAAA,UAAU,EAAE,KAnBO;AAoBnBC,EAAAA,WAAW,EAAE;AApBM,CAArB;AAuBA,eAAeL,KAAf","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\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 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 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 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 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 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,188 +1,137 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
6
|
-
|
|
7
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
8
|
-
|
|
9
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
|
10
|
-
|
|
11
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
12
|
-
|
|
13
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
14
|
-
|
|
15
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
16
|
-
|
|
17
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
18
|
-
|
|
19
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
20
|
-
|
|
21
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
1
|
+
import React, { PureComponent } from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import { ContextActions } from '@deephaven/components';
|
|
4
|
+
import { GLPropTypes } from '@deephaven/dashboard';
|
|
22
5
|
|
|
23
|
-
|
|
6
|
+
class PanelContextMenu extends PureComponent {
|
|
7
|
+
constructor(props) {
|
|
8
|
+
super(props);
|
|
9
|
+
this.handleCloseTab = this.handleCloseTab.bind(this);
|
|
10
|
+
this.handleCloseTabsRight = this.handleCloseTabsRight.bind(this);
|
|
11
|
+
this.handleCloseTabsAll = this.handleCloseTabsAll.bind(this);
|
|
12
|
+
}
|
|
24
13
|
|
|
25
|
-
|
|
14
|
+
getAllTabs() {
|
|
15
|
+
var _glContainer$tab$head, _glContainer$tab, _glContainer$tab$head2;
|
|
26
16
|
|
|
27
|
-
|
|
17
|
+
// return a clone of the tabs array, or returns empty array if null
|
|
18
|
+
var {
|
|
19
|
+
glContainer
|
|
20
|
+
} = this.props;
|
|
21
|
+
return [...((_glContainer$tab$head = glContainer === null || glContainer === void 0 ? void 0 : (_glContainer$tab = glContainer.tab) === null || _glContainer$tab === void 0 ? void 0 : (_glContainer$tab$head2 = _glContainer$tab.header) === null || _glContainer$tab$head2 === void 0 ? void 0 : _glContainer$tab$head2.tabs) !== null && _glContainer$tab$head !== void 0 ? _glContainer$tab$head : [])];
|
|
22
|
+
}
|
|
28
23
|
|
|
29
|
-
|
|
24
|
+
handleCloseTab() {
|
|
25
|
+
var {
|
|
26
|
+
glContainer
|
|
27
|
+
} = this.props;
|
|
28
|
+
glContainer.close();
|
|
29
|
+
}
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
handleCloseTabsAll() {
|
|
32
|
+
var tabs = this.getAllTabs(); // No need to check if isClosable, golden-layout returns
|
|
33
|
+
// false when attempting to close tabs that you can't
|
|
32
34
|
|
|
33
|
-
|
|
35
|
+
tabs.forEach(tab => {
|
|
36
|
+
var _tab$contentItem, _tab$contentItem$cont;
|
|
34
37
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
import { GLPropTypes } from '@deephaven/dashboard';
|
|
38
|
+
return tab === null || tab === void 0 ? void 0 : (_tab$contentItem = tab.contentItem) === null || _tab$contentItem === void 0 ? void 0 : (_tab$contentItem$cont = _tab$contentItem.container) === null || _tab$contentItem$cont === void 0 ? void 0 : _tab$contentItem$cont.close();
|
|
39
|
+
});
|
|
40
|
+
}
|
|
39
41
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
+
handleCloseTabsRight() {
|
|
43
|
+
var {
|
|
44
|
+
glContainer
|
|
45
|
+
} = this.props;
|
|
46
|
+
var tabs = this.getAllTabs();
|
|
42
47
|
|
|
43
|
-
|
|
48
|
+
for (var i = tabs.length - 1; i > 0; i -= 1) {
|
|
49
|
+
var _tabs$i$contentItem, _tabs$i$contentItem$c, _glContainer$tab2, _glContainer$tab2$con, _glContainer$tab2$con2, _tabs$i, _tabs$i$contentItem2, _tabs$i$contentItem2$;
|
|
44
50
|
|
|
45
|
-
|
|
46
|
-
|
|
51
|
+
if (((_tabs$i$contentItem = tabs[i].contentItem) === null || _tabs$i$contentItem === void 0 ? void 0 : (_tabs$i$contentItem$c = _tabs$i$contentItem.config) === null || _tabs$i$contentItem$c === void 0 ? void 0 : _tabs$i$contentItem$c.id) === ((_glContainer$tab2 = glContainer.tab) === null || _glContainer$tab2 === void 0 ? void 0 : (_glContainer$tab2$con = _glContainer$tab2.contentItem) === null || _glContainer$tab2$con === void 0 ? void 0 : (_glContainer$tab2$con2 = _glContainer$tab2$con.config) === null || _glContainer$tab2$con2 === void 0 ? void 0 : _glContainer$tab2$con2.id)) {
|
|
52
|
+
break; // end when we get back to current id
|
|
53
|
+
} // eslint-disable-next-line no-unused-expressions
|
|
47
54
|
|
|
48
|
-
_classCallCheck(this, PanelContextMenu);
|
|
49
55
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
_this.handleCloseTabsRight = _this.handleCloseTabsRight.bind(_assertThisInitialized(_this));
|
|
53
|
-
_this.handleCloseTabsAll = _this.handleCloseTabsAll.bind(_assertThisInitialized(_this));
|
|
54
|
-
return _this;
|
|
56
|
+
(_tabs$i = tabs[i]) === null || _tabs$i === void 0 ? void 0 : (_tabs$i$contentItem2 = _tabs$i.contentItem) === null || _tabs$i$contentItem2 === void 0 ? void 0 : (_tabs$i$contentItem2$ = _tabs$i$contentItem2.container) === null || _tabs$i$contentItem2$ === void 0 ? void 0 : _tabs$i$contentItem2$.close();
|
|
57
|
+
}
|
|
55
58
|
}
|
|
56
59
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
60
|
+
canCloseTabsRight() {
|
|
61
|
+
var {
|
|
62
|
+
glContainer
|
|
63
|
+
} = this.props;
|
|
64
|
+
var tabs = this.getAllTabs();
|
|
65
|
+
var disabled = true;
|
|
61
66
|
|
|
62
|
-
|
|
63
|
-
var
|
|
64
|
-
return _toConsumableArray((_glContainer$tab$head = glContainer === null || glContainer === void 0 ? void 0 : (_glContainer$tab = glContainer.tab) === null || _glContainer$tab === void 0 ? void 0 : (_glContainer$tab$head2 = _glContainer$tab.header) === null || _glContainer$tab$head2 === void 0 ? void 0 : _glContainer$tab$head2.tabs) !== null && _glContainer$tab$head !== void 0 ? _glContainer$tab$head : []);
|
|
65
|
-
}
|
|
66
|
-
}, {
|
|
67
|
-
key: "handleCloseTab",
|
|
68
|
-
value: function handleCloseTab() {
|
|
69
|
-
var glContainer = this.props.glContainer;
|
|
70
|
-
glContainer.close();
|
|
71
|
-
}
|
|
72
|
-
}, {
|
|
73
|
-
key: "handleCloseTabsAll",
|
|
74
|
-
value: function handleCloseTabsAll() {
|
|
75
|
-
var tabs = this.getAllTabs(); // No need to check if isClosable, golden-layout returns
|
|
76
|
-
// false when attempting to close tabs that you can't
|
|
67
|
+
for (var i = tabs.length - 1; i > 0; i -= 1) {
|
|
68
|
+
var _tabs$i$contentItem3, _tabs$i$contentItem3$, _glContainer$tab3, _glContainer$tab3$con, _glContainer$tab3$con2, _tabs$i2, _tabs$i2$contentItem, _tabs$i2$contentItem$;
|
|
77
69
|
|
|
78
|
-
tabs.
|
|
79
|
-
|
|
70
|
+
if (((_tabs$i$contentItem3 = tabs[i].contentItem) === null || _tabs$i$contentItem3 === void 0 ? void 0 : (_tabs$i$contentItem3$ = _tabs$i$contentItem3.config) === null || _tabs$i$contentItem3$ === void 0 ? void 0 : _tabs$i$contentItem3$.id) === ((_glContainer$tab3 = glContainer.tab) === null || _glContainer$tab3 === void 0 ? void 0 : (_glContainer$tab3$con = _glContainer$tab3.contentItem) === null || _glContainer$tab3$con === void 0 ? void 0 : (_glContainer$tab3$con2 = _glContainer$tab3$con.config) === null || _glContainer$tab3$con2 === void 0 ? void 0 : _glContainer$tab3$con2.id)) {
|
|
71
|
+
break; // end when we get back to current id
|
|
72
|
+
}
|
|
80
73
|
|
|
81
|
-
|
|
82
|
-
|
|
74
|
+
if ((_tabs$i2 = tabs[i]) !== null && _tabs$i2 !== void 0 && (_tabs$i2$contentItem = _tabs$i2.contentItem) !== null && _tabs$i2$contentItem !== void 0 && (_tabs$i2$contentItem$ = _tabs$i2$contentItem.config) !== null && _tabs$i2$contentItem$ !== void 0 && _tabs$i2$contentItem$.isClosable) {
|
|
75
|
+
disabled = false;
|
|
76
|
+
break; // end if we find a closeable tab
|
|
77
|
+
}
|
|
83
78
|
}
|
|
84
|
-
}, {
|
|
85
|
-
key: "handleCloseTabsRight",
|
|
86
|
-
value: function handleCloseTabsRight() {
|
|
87
|
-
var glContainer = this.props.glContainer;
|
|
88
|
-
var tabs = this.getAllTabs();
|
|
89
79
|
|
|
90
|
-
|
|
91
|
-
|
|
80
|
+
return disabled;
|
|
81
|
+
}
|
|
92
82
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
83
|
+
canCloseAny() {
|
|
84
|
+
var tabs = this.getAllTabs();
|
|
85
|
+
var disabled = true;
|
|
96
86
|
|
|
87
|
+
for (var i = tabs.length - 1; i > 0; i -= 1) {
|
|
88
|
+
var _tabs$i3, _tabs$i3$contentItem, _tabs$i3$contentItem$;
|
|
97
89
|
|
|
98
|
-
|
|
90
|
+
if ((_tabs$i3 = tabs[i]) !== null && _tabs$i3 !== void 0 && (_tabs$i3$contentItem = _tabs$i3.contentItem) !== null && _tabs$i3$contentItem !== void 0 && (_tabs$i3$contentItem$ = _tabs$i3$contentItem.config) !== null && _tabs$i3$contentItem$ !== void 0 && _tabs$i3$contentItem$.isClosable) {
|
|
91
|
+
disabled = false;
|
|
92
|
+
break;
|
|
99
93
|
}
|
|
100
94
|
}
|
|
101
|
-
}, {
|
|
102
|
-
key: "canCloseTabsRight",
|
|
103
|
-
value: function canCloseTabsRight() {
|
|
104
|
-
var glContainer = this.props.glContainer;
|
|
105
|
-
var tabs = this.getAllTabs();
|
|
106
|
-
var disabled = true;
|
|
107
|
-
|
|
108
|
-
for (var i = tabs.length - 1; i > 0; i -= 1) {
|
|
109
|
-
var _tabs$i$contentItem3, _tabs$i$contentItem3$, _glContainer$tab3, _glContainer$tab3$con, _glContainer$tab3$con2, _tabs$i2, _tabs$i2$contentItem, _tabs$i2$contentItem$;
|
|
110
|
-
|
|
111
|
-
if (((_tabs$i$contentItem3 = tabs[i].contentItem) === null || _tabs$i$contentItem3 === void 0 ? void 0 : (_tabs$i$contentItem3$ = _tabs$i$contentItem3.config) === null || _tabs$i$contentItem3$ === void 0 ? void 0 : _tabs$i$contentItem3$.id) === ((_glContainer$tab3 = glContainer.tab) === null || _glContainer$tab3 === void 0 ? void 0 : (_glContainer$tab3$con = _glContainer$tab3.contentItem) === null || _glContainer$tab3$con === void 0 ? void 0 : (_glContainer$tab3$con2 = _glContainer$tab3$con.config) === null || _glContainer$tab3$con2 === void 0 ? void 0 : _glContainer$tab3$con2.id)) {
|
|
112
|
-
break; // end when we get back to current id
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
if ((_tabs$i2 = tabs[i]) !== null && _tabs$i2 !== void 0 && (_tabs$i2$contentItem = _tabs$i2.contentItem) !== null && _tabs$i2$contentItem !== void 0 && (_tabs$i2$contentItem$ = _tabs$i2$contentItem.config) !== null && _tabs$i2$contentItem$ !== void 0 && _tabs$i2$contentItem$.isClosable) {
|
|
116
|
-
disabled = false;
|
|
117
|
-
break; // end if we find a closeable tab
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
95
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}, {
|
|
124
|
-
key: "canCloseAny",
|
|
125
|
-
value: function canCloseAny() {
|
|
126
|
-
var tabs = this.getAllTabs();
|
|
127
|
-
var disabled = true;
|
|
128
|
-
|
|
129
|
-
for (var i = tabs.length - 1; i > 0; i -= 1) {
|
|
130
|
-
var _tabs$i3, _tabs$i3$contentItem, _tabs$i3$contentItem$;
|
|
131
|
-
|
|
132
|
-
if ((_tabs$i3 = tabs[i]) !== null && _tabs$i3 !== void 0 && (_tabs$i3$contentItem = _tabs$i3.contentItem) !== null && _tabs$i3$contentItem !== void 0 && (_tabs$i3$contentItem$ = _tabs$i3$contentItem.config) !== null && _tabs$i3$contentItem$ !== void 0 && _tabs$i3$contentItem$.isClosable) {
|
|
133
|
-
disabled = false;
|
|
134
|
-
break;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
96
|
+
return disabled;
|
|
97
|
+
}
|
|
137
98
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
contextActions
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
order: 30,
|
|
173
|
-
group: ContextActions.groups.low,
|
|
174
|
-
action: _this2.handleCloseTabsAll,
|
|
175
|
-
disabled: _this2.canCloseAny()
|
|
176
|
-
};
|
|
177
|
-
});
|
|
178
|
-
return /*#__PURE__*/React.createElement(ContextActions, {
|
|
179
|
-
actions: contextActions
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
}]);
|
|
99
|
+
render() {
|
|
100
|
+
var _glContainer$tab4, _glContainer$tab4$con, _glContainer$tab4$con2;
|
|
101
|
+
|
|
102
|
+
var {
|
|
103
|
+
additionalActions,
|
|
104
|
+
glContainer
|
|
105
|
+
} = this.props;
|
|
106
|
+
var contextActions = [].concat(additionalActions);
|
|
107
|
+
contextActions.push({
|
|
108
|
+
title: 'Close',
|
|
109
|
+
order: 10,
|
|
110
|
+
group: ContextActions.groups.low,
|
|
111
|
+
action: this.handleCloseTab,
|
|
112
|
+
disabled: !((_glContainer$tab4 = glContainer.tab) !== null && _glContainer$tab4 !== void 0 && (_glContainer$tab4$con = _glContainer$tab4.contentItem) !== null && _glContainer$tab4$con !== void 0 && (_glContainer$tab4$con2 = _glContainer$tab4$con.config) !== null && _glContainer$tab4$con2 !== void 0 && _glContainer$tab4$con2.isClosable)
|
|
113
|
+
}); // pushed as function so the disable check happens on run
|
|
114
|
+
|
|
115
|
+
contextActions.push(() => ({
|
|
116
|
+
title: 'Close Tabs to Right',
|
|
117
|
+
order: 20,
|
|
118
|
+
group: ContextActions.groups.low,
|
|
119
|
+
action: this.handleCloseTabsRight,
|
|
120
|
+
disabled: this.canCloseTabsRight()
|
|
121
|
+
}));
|
|
122
|
+
contextActions.push(() => ({
|
|
123
|
+
title: 'Close All',
|
|
124
|
+
order: 30,
|
|
125
|
+
group: ContextActions.groups.low,
|
|
126
|
+
action: this.handleCloseTabsAll,
|
|
127
|
+
disabled: this.canCloseAny()
|
|
128
|
+
}));
|
|
129
|
+
return /*#__PURE__*/React.createElement(ContextActions, {
|
|
130
|
+
actions: contextActions
|
|
131
|
+
});
|
|
132
|
+
}
|
|
183
133
|
|
|
184
|
-
|
|
185
|
-
}(PureComponent);
|
|
134
|
+
}
|
|
186
135
|
|
|
187
136
|
PanelContextMenu.propTypes = {
|
|
188
137
|
additionalActions: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/panels/PanelContextMenu.jsx"],"names":["React","PureComponent","PropTypes","ContextActions","GLPropTypes","PanelContextMenu","props","handleCloseTab","bind","handleCloseTabsRight","handleCloseTabsAll","glContainer","tab","header","tabs","close","
|
|
1
|
+
{"version":3,"sources":["../../src/panels/PanelContextMenu.jsx"],"names":["React","PureComponent","PropTypes","ContextActions","GLPropTypes","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","concat","push","title","order","group","groups","low","action","propTypes","oneOfType","array","func","Container","isRequired","defaultProps"],"mappings":"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","sourcesContent":["import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { ContextActions } from '@deephaven/components';\nimport { GLPropTypes } from '@deephaven/dashboard';\n\nclass PanelContextMenu extends PureComponent {\n constructor(props) {\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() {\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() {\n const { glContainer } = this.props;\n glContainer.close();\n }\n\n handleCloseTabsAll() {\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 => tab?.contentItem?.container?.close());\n }\n\n handleCloseTabsRight() {\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?.container?.close();\n }\n }\n\n canCloseTabsRight() {\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() {\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() {\n const { additionalActions, glContainer } = this.props;\n\n const contextActions = [].concat(additionalActions);\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\nPanelContextMenu.propTypes = {\n additionalActions: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\n glContainer: GLPropTypes.Container.isRequired,\n};\n\nPanelContextMenu.defaultProps = {\n additionalActions: [],\n};\n\nexport default PanelContextMenu;\n"],"file":"PanelContextMenu.js"}
|