@deephaven/dashboard-core-plugins 0.15.5-beta.0 → 0.15.5-vite.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/ChartBuilderPlugin.js.map +1 -1
  2. package/dist/ChartPlugin.js.map +1 -1
  3. package/dist/ConsolePlugin.d.ts +1 -0
  4. package/dist/ConsolePlugin.d.ts.map +1 -1
  5. package/dist/ConsolePlugin.js +5 -3
  6. package/dist/ConsolePlugin.js.map +1 -1
  7. package/dist/FilterPlugin.js.map +1 -1
  8. package/dist/GridPlugin.js.map +1 -1
  9. package/dist/LinkerPlugin.js.map +1 -1
  10. package/dist/MarkdownPlugin.js.map +1 -1
  11. package/dist/PandasPlugin.js.map +1 -1
  12. package/dist/controls/ControlType.js.map +1 -1
  13. package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
  14. package/dist/controls/input-filter/InputFilter.js.map +1 -1
  15. package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
  16. package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
  17. package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
  18. package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
  19. package/dist/events/ChartEvent.js.map +1 -1
  20. package/dist/events/ConsoleEvent.js.map +1 -1
  21. package/dist/events/InputFilterEvent.js.map +1 -1
  22. package/dist/events/IrisGridEvent.js.map +1 -1
  23. package/dist/events/MarkdownEvent.js.map +1 -1
  24. package/dist/events/NotebookEvent.js.map +1 -1
  25. package/dist/events/PQEvent.js.map +1 -1
  26. package/dist/events/PandasEvent.js.map +1 -1
  27. package/dist/events/TabEvent.js.map +1 -1
  28. package/dist/events/index.js.map +1 -1
  29. package/dist/index.js.map +1 -1
  30. package/dist/linker/Linker.js.map +1 -1
  31. package/dist/linker/LinkerLink.js.map +1 -1
  32. package/dist/linker/LinkerOverlayContent.js.map +1 -1
  33. package/dist/linker/LinkerUtils.js.map +1 -1
  34. package/dist/linker/ToolType.js.map +1 -1
  35. package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
  36. package/dist/panels/ChartFilterOverlay.js.map +1 -1
  37. package/dist/panels/ChartPanel.js.map +1 -1
  38. package/dist/panels/CommandHistoryPanel.js.map +1 -1
  39. package/dist/panels/ConsolePanel.js.map +1 -1
  40. package/dist/panels/DropdownFilterPanel.js.map +1 -1
  41. package/dist/panels/FileExplorerPanel.js.map +1 -1
  42. package/dist/panels/FilterSetManager.js.map +1 -1
  43. package/dist/panels/FilterSetManagerPanel.js.map +1 -1
  44. package/dist/panels/InputFilterPanel.js.map +1 -1
  45. package/dist/panels/IrisGridPanel.js.map +1 -1
  46. package/dist/panels/LogPanel.js.map +1 -1
  47. package/dist/panels/MarkdownNotebook.js.map +1 -1
  48. package/dist/panels/MarkdownPanel.js.map +1 -1
  49. package/dist/panels/NotebookPanel.d.ts +1 -3
  50. package/dist/panels/NotebookPanel.js +2 -3
  51. package/dist/panels/NotebookPanel.js.map +1 -1
  52. package/dist/panels/PandasPanel.js +1 -1
  53. package/dist/panels/PandasPanel.js.map +1 -1
  54. package/dist/panels/Panel.js.map +1 -1
  55. package/dist/panels/PanelContextMenu.js.map +1 -1
  56. package/dist/panels/RenameDialog.js.map +1 -1
  57. package/dist/panels/WidgetPanel.js.map +1 -1
  58. package/dist/panels/WidgetPanelTooltip.js.map +1 -1
  59. package/dist/panels/index.js.map +1 -1
  60. package/dist/prop-types/CommonPropTypes.js.map +1 -1
  61. package/dist/prop-types/UIPropTypes.js.map +1 -1
  62. package/dist/prop-types/index.js.map +1 -1
  63. package/dist/redux/actionTypes.js.map +1 -1
  64. package/dist/redux/actions.js.map +1 -1
  65. package/dist/redux/index.js.map +1 -1
  66. package/dist/redux/reducers/index.js.map +1 -1
  67. package/dist/redux/reducers/sessionWrapper.js.map +1 -1
  68. package/dist/redux/selectors.js.map +1 -1
  69. package/package.json +17 -18
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/panels/ConsolePanel.jsx"],"names":["React","PureComponent","PropTypes","shortid","debounce","connect","Console","ConsoleConstants","GLPropTypes","PanelEvent","APIPropTypes","Log","getCommandHistoryStorage","getTimeZone","ConsoleEvent","Panel","getDashboardSessionWrapper","log","module","DEBOUNCE_PANEL_STATE_UPDATE","DEFAULT_PANEL_STATE","Object","freeze","consoleSettings","itemIds","ConsolePanel","constructor","props","handleFocusCommandHistory","bind","handleOpenObject","handleCloseObject","handleResize","handleSettingsChange","handleShow","handleTabBlur","handleTabFocus","handlePanelMount","savePanelState","consoleRef","createRef","objectSubscriptionCleanup","panelState","initialPanelState","state","Map","objectMap","componentDidMount","glEventHub","closeDisconnectedPanels","on","MOUNT","subscribeToFieldUpdates","componentDidUpdate","prevProps","prevState","componentWillUnmount","flush","off","sessionWrapper","session","connection","updates","debug","setState","updated","created","removed","objectsToRemove","newObjectMap","forEach","toRemove","delete","name","objectsToAdd","toAdd","set","setItemId","id","newItemIds","getItemId","createIfNecessary","get","generate","blur","focus","panel","panelId","sourceId","metadata","sourcePanelId","pandelIds","Set","values","has","emit","FOCUS_HISTORY","updateDimensions","object","openWidget","CLOSE","SETTINGS_CHANGED","widget","openOptions","fetch","getObject","OPEN","addCommand","command","execute","current","force","isClosePanelsOnDisconnectEnabled","panelIdsToClose","render","commandHistoryStorage","glContainer","timeZone","unzip","error","config","sessionId","type","language","LANGUAGE_MAP","propTypes","shape","isRequired","Container","EventHub","consoleCreatorSettings","array","IdeSession","string","func","defaultProps","mapStateToProps","ownProps","localDashboardId","forwardRef"],"mappings":"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","sourcesContent":["// Wrapper for the Console for use in a golden layout container\n// Will probably need to handle window popping out from golden layout here.\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport shortid from 'shortid';\nimport debounce from 'lodash.debounce';\nimport { connect } from 'react-redux';\nimport { Console, ConsoleConstants } from '@deephaven/console';\nimport { GLPropTypes, PanelEvent } from '@deephaven/dashboard';\nimport { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport { getCommandHistoryStorage, getTimeZone } from '@deephaven/redux';\nimport { ConsoleEvent } from '../events';\nimport './ConsolePanel.scss';\nimport Panel from './Panel';\nimport { getDashboardSessionWrapper } from '../redux';\n\nconst log = Log.module('ConsolePanel');\n\nconst DEBOUNCE_PANEL_STATE_UPDATE = 500;\n\nconst DEFAULT_PANEL_STATE = Object.freeze({\n consoleSettings: {},\n itemIds: [],\n});\n\nexport class ConsolePanel extends PureComponent {\n static COMPONENT = 'ConsolePanel';\n\n static TITLE = 'Console';\n\n constructor(props) {\n super(props);\n\n this.handleFocusCommandHistory = this.handleFocusCommandHistory.bind(this);\n this.handleOpenObject = this.handleOpenObject.bind(this);\n this.handleCloseObject = this.handleCloseObject.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleSettingsChange = this.handleSettingsChange.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.handlePanelMount = this.handlePanelMount.bind(this);\n\n this.savePanelState = debounce(\n this.savePanelState.bind(this),\n DEBOUNCE_PANEL_STATE_UPDATE\n );\n\n this.consoleRef = React.createRef();\n this.objectSubscriptionCleanup = null;\n\n const { panelState: initialPanelState } = props;\n const panelState = {\n ...DEFAULT_PANEL_STATE,\n ...(initialPanelState || {}),\n };\n const { consoleSettings, itemIds } = panelState;\n\n this.state = {\n consoleSettings,\n itemIds: new Map(itemIds),\n\n objectMap: new Map(),\n\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n componentDidMount() {\n const { glEventHub } = this.props;\n // Need to close the disconnected panels when we're first loaded,\n // as they may have been saved with the dashboard\n this.closeDisconnectedPanels();\n glEventHub.on(PanelEvent.MOUNT, this.handlePanelMount);\n this.subscribeToFieldUpdates();\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { consoleSettings, itemIds } = this.state;\n if (\n prevState.consoleSettings !== consoleSettings ||\n prevState.itemIds !== itemIds\n ) {\n this.savePanelState();\n }\n }\n\n componentWillUnmount() {\n const { glEventHub } = this.props;\n this.savePanelState.flush();\n glEventHub.off(PanelEvent.MOUNT, this.handlePanelMount);\n this.objectSubscriptionCleanup();\n }\n\n subscribeToFieldUpdates() {\n const { sessionWrapper } = this.props;\n const { session } = sessionWrapper;\n\n this.objectSubscriptionCleanup = session.connection.subscribeToFieldUpdates(\n updates => {\n log.debug('Got updates', updates);\n this.setState(({ objectMap }) => {\n const { updated, created, removed } = updates;\n\n // Remove from the array if it's been removed OR modified. We'll add it back after if it was modified.\n const objectsToRemove = [...updated, ...removed];\n const newObjectMap = new Map(objectMap);\n objectsToRemove.forEach(toRemove => {\n newObjectMap.delete(toRemove.name);\n });\n\n // Now add all the modified and updated widgets back in\n const objectsToAdd = [...updated, ...created];\n objectsToAdd.forEach(toAdd => {\n if (toAdd.name) {\n newObjectMap.set(toAdd.name, toAdd);\n }\n });\n\n return { objectMap: newObjectMap };\n });\n }\n );\n }\n\n setItemId(name, id) {\n this.setState(({ itemIds }) => {\n const newItemIds = new Map(itemIds);\n newItemIds.set(name, id);\n return { itemIds: newItemIds };\n });\n }\n\n getItemId(name, createIfNecessary = true) {\n const { itemIds } = this.state;\n let id = itemIds.get(name);\n if (id == null && createIfNecessary) {\n id = shortid.generate();\n this.setItemId(name, id);\n }\n return id;\n }\n\n handleTabBlur() {\n if (this.consoleRef) {\n this.consoleRef.blur();\n }\n }\n\n handleTabFocus() {\n if (this.consoleRef) {\n this.consoleRef.focus();\n }\n }\n\n handlePanelMount(panel) {\n const { itemIds } = this.state;\n const panelId = panel?.props?.id;\n const sourceId = panel?.props?.metadata?.sourcePanelId;\n if (panelId && sourceId) {\n // Check if the panel was created from a panel in this console\n const pandelIds = new Set(itemIds.values());\n if (pandelIds.has(sourceId)) {\n // The Chart Panel does not have name so map panelId to panelId\n this.setItemId(panelId, panelId);\n }\n }\n }\n\n handleFocusCommandHistory() {\n const { glEventHub } = this.props;\n glEventHub.emit(ConsoleEvent.FOCUS_HISTORY);\n }\n\n handleResize() {\n this.updateDimensions();\n }\n\n handleShow() {\n this.updateDimensions();\n }\n\n handleOpenObject(object) {\n const { sessionWrapper } = this.props;\n const { session } = sessionWrapper;\n this.openWidget(object, session);\n }\n\n handleCloseObject(object) {\n const { name } = object;\n const id = this.getItemId(name, false);\n const { glEventHub } = this.props;\n glEventHub.emit(PanelEvent.CLOSE, id);\n }\n\n handleSettingsChange(consoleSettings) {\n const { glEventHub } = this.props;\n log.debug('handleSettingsChange', consoleSettings);\n this.setState({\n consoleSettings,\n });\n glEventHub.emit(ConsoleEvent.SETTINGS_CHANGED, consoleSettings);\n }\n\n /**\n * @param {VariableDefinition} widget The widget to open\n * @param {dh.Session} session The session object\n */\n openWidget(widget, session) {\n const { glEventHub } = this.props;\n const { name } = widget;\n const panelId = this.getItemId(name);\n const openOptions = {\n fetch: () => session.getObject(widget),\n panelId,\n widget,\n };\n\n log.debug('openWidget', openOptions);\n\n glEventHub.emit(PanelEvent.OPEN, openOptions);\n }\n\n addCommand(command, focus = true, execute = false) {\n this.consoleRef.current?.addCommand(command, focus, execute);\n }\n\n /**\n * Close the disconnected panels from this session\n * @param {boolean} force True to force the panels closed regardless of the current setting\n */\n closeDisconnectedPanels(force = false) {\n const { consoleSettings, itemIds } = this.state;\n const { isClosePanelsOnDisconnectEnabled = true } = consoleSettings;\n if (!isClosePanelsOnDisconnectEnabled && !force) {\n return;\n }\n\n const panelIdsToClose = [...itemIds.values()];\n const { glEventHub } = this.props;\n panelIdsToClose.forEach(panelId => {\n glEventHub.emit(PanelEvent.CLOSE, panelId);\n });\n\n this.setState({ itemIds: new Map() });\n }\n\n savePanelState() {\n const { consoleSettings, itemIds } = this.state;\n const panelState = {\n consoleSettings,\n itemIds: [...itemIds],\n };\n log.debug('Saving panel state', panelState);\n // eslint-disable-next-line react/no-unused-state\n this.setState({ panelState });\n }\n\n updateDimensions() {\n this.consoleRef.current?.updateDimensions();\n }\n\n render() {\n const {\n commandHistoryStorage,\n glContainer,\n glEventHub,\n sessionWrapper,\n timeZone,\n unzip,\n } = this.props;\n const { consoleSettings, error, objectMap } = this.state;\n const { config, session } = sessionWrapper;\n const { id: sessionId, type: language } = config;\n\n return (\n <Panel\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onResize={this.handleResize}\n onShow={this.handleShow}\n onTabFocus={this.handleTabFocus}\n onTabBlur={this.handleTabBlur}\n errorMessage={error != null ? `${error}` : null}\n >\n <>\n {session && (\n <Console\n ref={this.consoleRef}\n settings={consoleSettings}\n session={session}\n focusCommandHistory={this.handleFocusCommandHistory}\n openObject={this.handleOpenObject}\n closeObject={this.handleCloseObject}\n commandHistoryStorage={commandHistoryStorage}\n onSettingsChange={this.handleSettingsChange}\n language={language}\n statusBarChildren={\n <>\n <div>&nbsp;</div>\n <div>{ConsoleConstants.LANGUAGE_MAP.get(language)}</div>\n </>\n }\n scope={sessionId}\n timeZone={timeZone}\n objectMap={objectMap}\n unzip={unzip}\n />\n )}\n </>\n </Panel>\n );\n }\n}\n\nConsolePanel.propTypes = {\n commandHistoryStorage: PropTypes.shape({}).isRequired,\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n\n panelState: PropTypes.shape({\n consoleCreatorSettings: PropTypes.shape({}),\n consoleSettings: PropTypes.shape({}),\n itemIds: PropTypes.array,\n }),\n\n sessionWrapper: PropTypes.shape({\n session: APIPropTypes.IdeSession.isRequired,\n config: PropTypes.shape({ type: PropTypes.string, id: PropTypes.string })\n .isRequired,\n }).isRequired,\n\n timeZone: PropTypes.string.isRequired,\n unzip: PropTypes.func,\n};\n\nConsolePanel.defaultProps = {\n panelState: null,\n unzip: null,\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n commandHistoryStorage: getCommandHistoryStorage(state),\n sessionWrapper: getDashboardSessionWrapper(state, ownProps.localDashboardId),\n timeZone: getTimeZone(state),\n});\n\nexport default connect(mapStateToProps, null, null, { forwardRef: true })(\n ConsolePanel\n);\n"],"file":"ConsolePanel.js"}
1
+ {"version":3,"file":"ConsolePanel.js","names":["React","PureComponent","PropTypes","shortid","debounce","connect","Console","ConsoleConstants","GLPropTypes","PanelEvent","APIPropTypes","Log","getCommandHistoryStorage","getTimeZone","ConsoleEvent","Panel","getDashboardSessionWrapper","log","module","DEBOUNCE_PANEL_STATE_UPDATE","DEFAULT_PANEL_STATE","Object","freeze","consoleSettings","itemIds","ConsolePanel","constructor","props","handleFocusCommandHistory","bind","handleOpenObject","handleCloseObject","handleResize","handleSettingsChange","handleShow","handleTabBlur","handleTabFocus","handlePanelMount","savePanelState","consoleRef","createRef","objectSubscriptionCleanup","panelState","initialPanelState","state","Map","objectMap","componentDidMount","glEventHub","closeDisconnectedPanels","on","MOUNT","subscribeToFieldUpdates","componentDidUpdate","prevProps","prevState","componentWillUnmount","flush","off","sessionWrapper","session","connection","updates","debug","setState","updated","created","removed","objectsToRemove","newObjectMap","forEach","toRemove","delete","name","objectsToAdd","toAdd","set","setItemId","id","newItemIds","getItemId","createIfNecessary","get","generate","blur","focus","panel","panelId","sourceId","metadata","sourcePanelId","pandelIds","Set","values","has","emit","FOCUS_HISTORY","updateDimensions","object","openWidget","CLOSE","SETTINGS_CHANGED","widget","openOptions","fetch","getObject","OPEN","addCommand","command","execute","current","force","isClosePanelsOnDisconnectEnabled","panelIdsToClose","render","commandHistoryStorage","glContainer","timeZone","unzip","error","config","sessionId","type","language","LANGUAGE_MAP","propTypes","shape","isRequired","Container","EventHub","consoleCreatorSettings","array","IdeSession","string","func","defaultProps","mapStateToProps","ownProps","localDashboardId","forwardRef"],"sources":["../../src/panels/ConsolePanel.jsx"],"sourcesContent":["// Wrapper for the Console for use in a golden layout container\n// Will probably need to handle window popping out from golden layout here.\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport shortid from 'shortid';\nimport debounce from 'lodash.debounce';\nimport { connect } from 'react-redux';\nimport { Console, ConsoleConstants } from '@deephaven/console';\nimport { GLPropTypes, PanelEvent } from '@deephaven/dashboard';\nimport { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport { getCommandHistoryStorage, getTimeZone } from '@deephaven/redux';\nimport { ConsoleEvent } from '../events';\nimport './ConsolePanel.scss';\nimport Panel from './Panel';\nimport { getDashboardSessionWrapper } from '../redux';\n\nconst log = Log.module('ConsolePanel');\n\nconst DEBOUNCE_PANEL_STATE_UPDATE = 500;\n\nconst DEFAULT_PANEL_STATE = Object.freeze({\n consoleSettings: {},\n itemIds: [],\n});\n\nexport class ConsolePanel extends PureComponent {\n static COMPONENT = 'ConsolePanel';\n\n static TITLE = 'Console';\n\n constructor(props) {\n super(props);\n\n this.handleFocusCommandHistory = this.handleFocusCommandHistory.bind(this);\n this.handleOpenObject = this.handleOpenObject.bind(this);\n this.handleCloseObject = this.handleCloseObject.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleSettingsChange = this.handleSettingsChange.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.handlePanelMount = this.handlePanelMount.bind(this);\n\n this.savePanelState = debounce(\n this.savePanelState.bind(this),\n DEBOUNCE_PANEL_STATE_UPDATE\n );\n\n this.consoleRef = React.createRef();\n this.objectSubscriptionCleanup = null;\n\n const { panelState: initialPanelState } = props;\n const panelState = {\n ...DEFAULT_PANEL_STATE,\n ...(initialPanelState || {}),\n };\n const { consoleSettings, itemIds } = panelState;\n\n this.state = {\n consoleSettings,\n itemIds: new Map(itemIds),\n\n objectMap: new Map(),\n\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n componentDidMount() {\n const { glEventHub } = this.props;\n // Need to close the disconnected panels when we're first loaded,\n // as they may have been saved with the dashboard\n this.closeDisconnectedPanels();\n glEventHub.on(PanelEvent.MOUNT, this.handlePanelMount);\n this.subscribeToFieldUpdates();\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { consoleSettings, itemIds } = this.state;\n if (\n prevState.consoleSettings !== consoleSettings ||\n prevState.itemIds !== itemIds\n ) {\n this.savePanelState();\n }\n }\n\n componentWillUnmount() {\n const { glEventHub } = this.props;\n this.savePanelState.flush();\n glEventHub.off(PanelEvent.MOUNT, this.handlePanelMount);\n this.objectSubscriptionCleanup();\n }\n\n subscribeToFieldUpdates() {\n const { sessionWrapper } = this.props;\n const { session } = sessionWrapper;\n\n this.objectSubscriptionCleanup = session.connection.subscribeToFieldUpdates(\n updates => {\n log.debug('Got updates', updates);\n this.setState(({ objectMap }) => {\n const { updated, created, removed } = updates;\n\n // Remove from the array if it's been removed OR modified. We'll add it back after if it was modified.\n const objectsToRemove = [...updated, ...removed];\n const newObjectMap = new Map(objectMap);\n objectsToRemove.forEach(toRemove => {\n newObjectMap.delete(toRemove.name);\n });\n\n // Now add all the modified and updated widgets back in\n const objectsToAdd = [...updated, ...created];\n objectsToAdd.forEach(toAdd => {\n if (toAdd.name) {\n newObjectMap.set(toAdd.name, toAdd);\n }\n });\n\n return { objectMap: newObjectMap };\n });\n }\n );\n }\n\n setItemId(name, id) {\n this.setState(({ itemIds }) => {\n const newItemIds = new Map(itemIds);\n newItemIds.set(name, id);\n return { itemIds: newItemIds };\n });\n }\n\n getItemId(name, createIfNecessary = true) {\n const { itemIds } = this.state;\n let id = itemIds.get(name);\n if (id == null && createIfNecessary) {\n id = shortid.generate();\n this.setItemId(name, id);\n }\n return id;\n }\n\n handleTabBlur() {\n if (this.consoleRef) {\n this.consoleRef.blur();\n }\n }\n\n handleTabFocus() {\n if (this.consoleRef) {\n this.consoleRef.focus();\n }\n }\n\n handlePanelMount(panel) {\n const { itemIds } = this.state;\n const panelId = panel?.props?.id;\n const sourceId = panel?.props?.metadata?.sourcePanelId;\n if (panelId && sourceId) {\n // Check if the panel was created from a panel in this console\n const pandelIds = new Set(itemIds.values());\n if (pandelIds.has(sourceId)) {\n // The Chart Panel does not have name so map panelId to panelId\n this.setItemId(panelId, panelId);\n }\n }\n }\n\n handleFocusCommandHistory() {\n const { glEventHub } = this.props;\n glEventHub.emit(ConsoleEvent.FOCUS_HISTORY);\n }\n\n handleResize() {\n this.updateDimensions();\n }\n\n handleShow() {\n this.updateDimensions();\n }\n\n handleOpenObject(object) {\n const { sessionWrapper } = this.props;\n const { session } = sessionWrapper;\n this.openWidget(object, session);\n }\n\n handleCloseObject(object) {\n const { name } = object;\n const id = this.getItemId(name, false);\n const { glEventHub } = this.props;\n glEventHub.emit(PanelEvent.CLOSE, id);\n }\n\n handleSettingsChange(consoleSettings) {\n const { glEventHub } = this.props;\n log.debug('handleSettingsChange', consoleSettings);\n this.setState({\n consoleSettings,\n });\n glEventHub.emit(ConsoleEvent.SETTINGS_CHANGED, consoleSettings);\n }\n\n /**\n * @param {VariableDefinition} widget The widget to open\n * @param {dh.Session} session The session object\n */\n openWidget(widget, session) {\n const { glEventHub } = this.props;\n const { name } = widget;\n const panelId = this.getItemId(name);\n const openOptions = {\n fetch: () => session.getObject(widget),\n panelId,\n widget,\n };\n\n log.debug('openWidget', openOptions);\n\n glEventHub.emit(PanelEvent.OPEN, openOptions);\n }\n\n addCommand(command, focus = true, execute = false) {\n this.consoleRef.current?.addCommand(command, focus, execute);\n }\n\n /**\n * Close the disconnected panels from this session\n * @param {boolean} force True to force the panels closed regardless of the current setting\n */\n closeDisconnectedPanels(force = false) {\n const { consoleSettings, itemIds } = this.state;\n const { isClosePanelsOnDisconnectEnabled = true } = consoleSettings;\n if (!isClosePanelsOnDisconnectEnabled && !force) {\n return;\n }\n\n const panelIdsToClose = [...itemIds.values()];\n const { glEventHub } = this.props;\n panelIdsToClose.forEach(panelId => {\n glEventHub.emit(PanelEvent.CLOSE, panelId);\n });\n\n this.setState({ itemIds: new Map() });\n }\n\n savePanelState() {\n const { consoleSettings, itemIds } = this.state;\n const panelState = {\n consoleSettings,\n itemIds: [...itemIds],\n };\n log.debug('Saving panel state', panelState);\n // eslint-disable-next-line react/no-unused-state\n this.setState({ panelState });\n }\n\n updateDimensions() {\n this.consoleRef.current?.updateDimensions();\n }\n\n render() {\n const {\n commandHistoryStorage,\n glContainer,\n glEventHub,\n sessionWrapper,\n timeZone,\n unzip,\n } = this.props;\n const { consoleSettings, error, objectMap } = this.state;\n const { config, session } = sessionWrapper;\n const { id: sessionId, type: language } = config;\n\n return (\n <Panel\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onResize={this.handleResize}\n onShow={this.handleShow}\n onTabFocus={this.handleTabFocus}\n onTabBlur={this.handleTabBlur}\n errorMessage={error != null ? `${error}` : null}\n >\n <>\n {session && (\n <Console\n ref={this.consoleRef}\n settings={consoleSettings}\n session={session}\n focusCommandHistory={this.handleFocusCommandHistory}\n openObject={this.handleOpenObject}\n closeObject={this.handleCloseObject}\n commandHistoryStorage={commandHistoryStorage}\n onSettingsChange={this.handleSettingsChange}\n language={language}\n statusBarChildren={\n <>\n <div>&nbsp;</div>\n <div>{ConsoleConstants.LANGUAGE_MAP.get(language)}</div>\n </>\n }\n scope={sessionId}\n timeZone={timeZone}\n objectMap={objectMap}\n unzip={unzip}\n />\n )}\n </>\n </Panel>\n );\n }\n}\n\nConsolePanel.propTypes = {\n commandHistoryStorage: PropTypes.shape({}).isRequired,\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n\n panelState: PropTypes.shape({\n consoleCreatorSettings: PropTypes.shape({}),\n consoleSettings: PropTypes.shape({}),\n itemIds: PropTypes.array,\n }),\n\n sessionWrapper: PropTypes.shape({\n session: APIPropTypes.IdeSession.isRequired,\n config: PropTypes.shape({ type: PropTypes.string, id: PropTypes.string })\n .isRequired,\n }).isRequired,\n\n timeZone: PropTypes.string.isRequired,\n unzip: PropTypes.func,\n};\n\nConsolePanel.defaultProps = {\n panelState: null,\n unzip: null,\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n commandHistoryStorage: getCommandHistoryStorage(state),\n sessionWrapper: getDashboardSessionWrapper(state, ownProps.localDashboardId),\n timeZone: getTimeZone(state),\n});\n\nexport default connect(mapStateToProps, null, null, { forwardRef: true })(\n ConsolePanel\n);\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/panels/DropdownFilterPanel.jsx"],"names":["React","Component","PropTypes","connect","debounce","deepEqual","memoize","GLPropTypes","LayoutUtils","dh","DateTimeColumnFormatter","Formatter","FormatterUtils","TableUtils","Log","getActiveTool","getSettings","Pending","PromiseUtils","DropdownFilter","InputFilterEvent","getColumnsForDashboard","getColumnSelectionValidatorForDashboard","getIsolatedLinkerPanelIdForDashboard","getLinksForDashboard","getTableMapForDashboard","UIPropTypes","ToolType","WidgetPanel","log","module","DROPDOWN_FILTER_DEBOUNCE","DropdownFilterPanel","constructor","props","rawValues","formatter","type","name","isDateType","map","value","DATETIME_FORMATTER","format","getFormattedString","dashboardLinks","panel","panelId","getIdFromPanel","debug","filter","link","end","links","source","length","start","error","panelTableMap","get","table","columns","find","columnName","columnType","handleChange","bind","handleClearAllFilters","handleDisconnect","handleReconnect","handleColumnSelected","handleSourceFilterChange","handleSourceSortChange","handleSourceSizeChange","handleSourceMouseEnter","handleSourceMouseLeave","handleValuesTableUpdate","dropdownFilterRef","createRef","panelContainer","pending","cleanup","panelState","settings","columnFormats","isValueShown","timestamp","column","state","valuesTable","valuesColumn","sourceSize","values","wasFlipped","skipUpdate","isDisconnected","isLoading","isLoaded","componentDidMount","updateValuesTable","sourceTable","getSourceTable","startListeningToSource","sendUpdate","componentDidUpdate","prevProps","prevState","getSource","prevSource","prevSourceTable","updateFormatterSettings","close","stopListeningToSource","componentWillUnmount","cancel","getCoordinateForColumn","current","element","querySelector","SOURCE_BUTTON_CLASS_NAME","rect","getBoundingClientRect","width","height","x","left","y","bottom","getSettingsErrorMessage","MAX_TABLE_SIZE","getPanelErrorMessage","panelLinks","getCachedPanelLinks","getCachedSource","getCachedSourceTable","getValuesColumn","getCachedSourceColumn","addEventListener","Table","EVENT_FILTERCHANGED","EVENT_SORTCHANGED","EVENT_SIZECHANGED","EVENT_DISCONNECT","EVENT_RECONNECT","removeEventListener","Date","now","setState","prevTimestamp","isFlip","Error","applySourceFilters","applySourceSorts","detail","glEventHub","emit","COLUMN_SELECTED","SOURCE_COLUMN","clearFilter","setPanelState","setFilterState","sourcePanelId","excludePanelIds","FILTERS_CHANGED","size","add","copy","resolved","then","updateViewportListener","catch","isCancelled","sort","sorts","applySort","setViewport","filters","applyFilter","EVENT_UPDATED","getColumnFormats","rows","row","columnSelectionValidator","render","disableLinking","glContainer","isLinkerActive","settingsErrorMessage","panelErrorMessage","formattedValues","getCachedValues","showTimeZone","showTSeparator","defaultDateTimeFormatString","Object","freeze","propTypes","Container","isRequired","EventHub","shape","string","bool","arrayOf","func","instanceOf","Map","Links","defaultProps","displayName","mapStateToProps","ownProps","localDashboardId","activeTool","isolatedLinkerPanelId","LINKER","undefined","forwardRef"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport debounce from 'lodash.debounce';\nimport deepEqual from 'deep-equal';\nimport memoize from 'memoize-one';\nimport { GLPropTypes, LayoutUtils } from '@deephaven/dashboard';\nimport dh from '@deephaven/jsapi-shim';\nimport {\n DateTimeColumnFormatter,\n Formatter,\n FormatterUtils,\n TableUtils,\n} from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport { getActiveTool, getSettings } from '@deephaven/redux';\nimport { Pending, PromiseUtils } from '@deephaven/utils';\nimport DropdownFilter from '../controls/dropdown-filter/DropdownFilter';\nimport { InputFilterEvent } from '../events';\nimport {\n getColumnsForDashboard,\n getColumnSelectionValidatorForDashboard,\n getIsolatedLinkerPanelIdForDashboard,\n getLinksForDashboard,\n getTableMapForDashboard,\n} from '../redux';\nimport './DropdownFilterPanel.scss';\nimport { UIPropTypes } from '../prop-types';\nimport ToolType from '../linker/ToolType';\nimport WidgetPanel from './WidgetPanel';\n\nconst log = Log.module('DropdownFilterPanel');\n\nconst DROPDOWN_FILTER_DEBOUNCE = 250;\n\nclass DropdownFilterPanel extends Component {\n static COMPONENT = 'DropdownFilterPanel';\n\n static MAX_TABLE_SIZE = 256;\n\n // Filter dropdown needs to show and send full timestamp format with nanoseconds\n static DATETIME_FORMATTER = new DateTimeColumnFormatter({\n showTimeZone: false,\n showTSeparator: true,\n defaultDateTimeFormatString: `yyyy-MM-dd HH:mm:ss.SSSSSSSSS`,\n });\n\n static SOURCE_COLUMN = Object.freeze({\n name: 'FilterSource',\n type: null,\n });\n\n constructor(props) {\n super(props);\n\n this.handleChange = debounce(\n this.handleChange.bind(this),\n DROPDOWN_FILTER_DEBOUNCE\n );\n this.handleClearAllFilters = this.handleClearAllFilters.bind(this);\n this.handleDisconnect = this.handleDisconnect.bind(this);\n this.handleReconnect = this.handleReconnect.bind(this);\n this.handleColumnSelected = this.handleColumnSelected.bind(this);\n this.handleSourceFilterChange = this.handleSourceFilterChange.bind(this);\n this.handleSourceSortChange = this.handleSourceSortChange.bind(this);\n this.handleSourceSizeChange = this.handleSourceSizeChange.bind(this);\n this.handleSourceMouseEnter = this.handleSourceMouseEnter.bind(this);\n this.handleSourceMouseLeave = this.handleSourceMouseLeave.bind(this);\n this.handleValuesTableUpdate = this.handleValuesTableUpdate.bind(this);\n\n this.dropdownFilterRef = React.createRef();\n this.panelContainer = React.createRef();\n this.pending = new Pending();\n this.cleanup = null;\n\n const { panelState, settings } = props;\n this.columnFormats = settings.columnFormats;\n const { value = '', isValueShown = false, name, type, timestamp = null } =\n panelState ?? {};\n const column = name != null && type != null ? { name, type } : null;\n this.state = {\n column,\n formatter: new Formatter(this.columnFormats),\n valuesTable: null,\n valuesColumn: null,\n sourceSize: 0,\n value,\n timestamp,\n values: [],\n isValueShown,\n wasFlipped: false,\n skipUpdate: false,\n\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n\n isDisconnected: false,\n isLoading: false,\n isLoaded: false,\n error: null,\n };\n }\n\n componentDidMount() {\n this.updateValuesTable();\n const { column, value, timestamp } = this.state;\n const sourceTable = this.getSourceTable();\n if (sourceTable !== null) {\n this.startListeningToSource(sourceTable);\n }\n if (column != null) {\n const { name, type } = column;\n this.sendUpdate(name, type, value, timestamp);\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { valuesTable } = this.state;\n const { settings } = this.props;\n const source = this.getSource();\n const sourceTable = this.getSourceTable();\n const prevSource = this.getSource(prevProps);\n const prevSourceTable = this.getSourceTable(prevProps);\n\n if (settings !== prevProps.settings) {\n this.updateFormatterSettings(settings);\n }\n\n if (\n valuesTable !== prevState.valuesTable &&\n prevState.valuesTable !== null\n ) {\n log.debug('Table in state modified, closing the old table.');\n prevState.valuesTable.close();\n }\n\n // Checking source change in addition to table change\n // in case a different column is selected in the same table\n if (sourceTable !== prevSourceTable || source !== prevSource) {\n this.updateValuesTable();\n }\n\n if (sourceTable !== prevSourceTable) {\n if (prevSourceTable !== null) {\n this.stopListeningToSource(prevSourceTable);\n }\n if (sourceTable !== null) {\n this.startListeningToSource(sourceTable);\n }\n }\n }\n\n componentWillUnmount() {\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable();\n this.pending.cancel();\n if (sourceTable !== null) {\n this.stopListeningToSource(sourceTable);\n }\n if (this.cleanup) {\n this.cleanup();\n }\n if (valuesTable !== null) {\n valuesTable.close();\n }\n }\n\n getCachedValues = memoize((rawValues, { type, name }, formatter) => {\n if (TableUtils.isDateType(type)) {\n return rawValues.map(value =>\n DropdownFilterPanel.DATETIME_FORMATTER.format(value)\n );\n }\n return rawValues.map(value =>\n // Skip formatting for nulls so they don't get converted to ''\n value != null ? formatter.getFormattedString(value, type, name) : null\n );\n });\n\n getCoordinateForColumn() {\n if (!this.panelContainer.current) {\n return null;\n }\n\n const element = this.panelContainer.current.querySelector(\n `.${DropdownFilter.SOURCE_BUTTON_CLASS_NAME}`\n );\n const rect = element?.getBoundingClientRect() ?? null;\n if (rect == null || rect.width <= 0 || rect.height <= 0) {\n return null;\n }\n const x = rect.left + rect.width / 2;\n const y = rect.bottom;\n return [x, y];\n }\n\n getSettingsErrorMessage() {\n const { sourceSize } = this.state;\n if (sourceSize > DropdownFilterPanel.MAX_TABLE_SIZE) {\n return `Table too large, must have fewer than ${DropdownFilterPanel.MAX_TABLE_SIZE} options.`;\n }\n return null;\n }\n\n getPanelErrorMessage() {\n const { error } = this.state;\n return error ? `${error}` : null;\n }\n\n getCachedPanelLinks = memoize((dashboardLinks, panel) => {\n const panelId = LayoutUtils.getIdFromPanel(panel);\n log.debug('getCachedPanelLinks', dashboardLinks, panelId);\n return dashboardLinks.filter(link => link.end?.panelId === panelId);\n });\n\n getCachedSource = memoize(links => {\n log.debug('getCachedSource', links);\n let source = null;\n if (links.length > 0) {\n const [link] = links;\n source = link.start;\n if (links.length > 1) {\n log.error('Filter has more that one link', links);\n }\n }\n return source;\n });\n\n getCachedSourceTable = memoize((panelTableMap, source) => {\n log.debug('getCachedSourceTable', panelTableMap, source);\n if (source == null) {\n return null;\n }\n const { panelId } = source;\n return panelTableMap.get(panelId) ?? null;\n });\n\n getCachedSourceColumn = memoize((table, source) => {\n log.debug('getCachedSourceColumn', table, source);\n if (table == null || source == null) {\n return null;\n }\n return (\n table.columns.find(\n ({ name, type }) =>\n name === source.columnName && type === source.columnType\n ) ?? null\n );\n });\n\n getSource(props = this.props) {\n const { dashboardLinks } = props;\n const panelLinks = this.getCachedPanelLinks(dashboardLinks, this);\n return this.getCachedSource(panelLinks);\n }\n\n getSourceTable(props = this.props) {\n const { panelTableMap } = props;\n const source = this.getSource(props);\n return this.getCachedSourceTable(panelTableMap, source);\n }\n\n getValuesColumn(valuesTable) {\n const source = this.getSource();\n return this.getCachedSourceColumn(valuesTable, source);\n }\n\n startListeningToSource(sourceTable) {\n log.debug('startListeningToSource');\n sourceTable.addEventListener(\n dh.Table.EVENT_FILTERCHANGED,\n this.handleSourceFilterChange\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_SORTCHANGED,\n this.handleSourceSortChange\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_SIZECHANGED,\n this.handleSourceSizeChange\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_DISCONNECT,\n this.handleDisconnect\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_RECONNECT,\n this.handleReconnect\n );\n }\n\n stopListeningToSource(sourceTable) {\n log.debug('stopListeningToSource');\n sourceTable.removeEventListener(\n dh.Table.EVENT_FILTERCHANGED,\n this.handleSourceFilterChange\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_SORTCHANGED,\n this.handleSourceSortChange\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_SIZECHANGED,\n this.handleSourceSizeChange\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_DISCONNECT,\n this.handleDisconnect\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_RECONNECT,\n this.handleReconnect\n );\n }\n\n handleChange({ column, isValueShown, value }) {\n const { name = null, type = null } = column ?? {};\n let sendUpdate = true;\n let timestamp = Date.now();\n this.setState(\n ({ panelState, timestamp: prevTimestamp, wasFlipped, skipUpdate }) => {\n // If the user had a value set, and they flip the card over and flip it back without changing any settings, ignore it\n const isFlip =\n panelState != null &&\n isValueShown !== panelState.isValueShown &&\n name === panelState.name &&\n type === panelState.type &&\n value === panelState.value;\n sendUpdate = !skipUpdate && isValueShown && (!isFlip || !wasFlipped);\n\n if (!sendUpdate) {\n timestamp = prevTimestamp;\n }\n\n return {\n panelState: {\n isValueShown,\n name,\n type,\n value,\n timestamp,\n },\n timestamp,\n wasFlipped: isFlip,\n skipUpdate: false,\n };\n },\n () => {\n if (sendUpdate) {\n this.sendUpdate(name, type, value, timestamp);\n }\n }\n );\n }\n\n handleDisconnect() {\n this.setState({\n error: new Error('Table disconnected'),\n isDisconnected: true,\n isLoading: false,\n });\n }\n\n handleReconnect() {\n this.setState({ isDisconnected: false, error: null });\n }\n\n handleSourceFilterChange() {\n this.applySourceFilters();\n }\n\n handleSourceSortChange() {\n this.applySourceSorts();\n }\n\n handleSourceSizeChange({ detail }) {\n this.setState({ sourceSize: detail });\n }\n\n handleColumnSelected() {\n log.debug('handleColumnSelected');\n const { glEventHub } = this.props;\n glEventHub.emit(\n InputFilterEvent.COLUMN_SELECTED,\n this,\n DropdownFilterPanel.SOURCE_COLUMN\n );\n }\n\n handleClearAllFilters() {\n this.dropdownFilterRef.current.clearFilter();\n }\n\n /**\n * Set the filter value, card side, selected column\n * @param {Object} state Filter state to set\n * @param {boolean} sendUpdate Emit filters changed event if true\n */\n setPanelState(state, sendUpdate = false) {\n if (this.getSource() == null) {\n log.debug('Ignore state update for unlinked filter', state);\n return;\n }\n // Set the skipUpdate flag so the next onChange handler call doesn't emit the FILTERS_CHANGED event\n this.setState({ skipUpdate: !sendUpdate });\n\n // Changing the inputFilter state via props doesn't quite work because of the delays on manual input changes\n // Setting the ref state directly triggers the onChange handler and updates the panelState\n this.dropdownFilterRef.current?.setFilterState(state);\n }\n\n sendUpdate(name, type, value, timestamp) {\n const { glEventHub } = this.props;\n const sourcePanelId = this.getSource()?.panelId;\n const excludePanelIds = sourcePanelId === null ? [] : [sourcePanelId];\n log.debug('sendUpdate', {\n name,\n type,\n value,\n timestamp,\n excludePanelIds,\n });\n\n glEventHub.emit(InputFilterEvent.FILTERS_CHANGED, this, {\n name,\n type,\n value: value != null ? value : '=null',\n timestamp,\n excludePanelIds,\n });\n }\n\n updateValuesTable() {\n const source = this.getSource();\n const sourceTable = this.getSourceTable();\n log.debug('updateValuesTable', source, sourceTable);\n\n this.setState({\n values: [],\n valuesTable: null,\n error: null,\n });\n\n if (source == null) {\n log.debug('Filter unlinked.');\n this.setState({\n isLoading: false,\n isLoaded: true,\n isValueShown: false,\n sourceSize: 0,\n });\n return;\n }\n\n this.setState({ isLoading: true });\n\n if (sourceTable == null) {\n return;\n }\n\n this.setState({ isLoaded: false, sourceSize: sourceTable.size });\n\n this.pending\n .add(sourceTable.copy(), resolved => resolved.close())\n .then(valuesTable => {\n // Loading/loaded will be set when values array is actually populated\n this.updateViewportListener(valuesTable);\n this.setState({ valuesTable });\n })\n .catch(error => {\n if (PromiseUtils.isCancelled(error)) {\n return;\n }\n log.error(error);\n this.setState({ isLoading: false, error });\n });\n }\n\n applySourceSorts() {\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable();\n log.debug('applySourceSorts', sourceTable.sort);\n if (valuesTable == null) {\n log.debug('Table not initialized');\n return;\n }\n const sorts = [...sourceTable.sort];\n valuesTable.applySort(sorts);\n this.setViewport(valuesTable);\n }\n\n applySourceFilters() {\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable();\n log.debug('applySourceFilters', sourceTable.filter);\n if (valuesTable == null) {\n log.debug('Table not initialized');\n return;\n }\n const filters = [...sourceTable.filter];\n valuesTable.applyFilter(filters);\n this.setViewport(valuesTable);\n }\n\n updateViewportListener(valuesTable) {\n log.debug('updateViewportListener', valuesTable?.size);\n\n if (this.cleanup) {\n this.cleanup();\n }\n\n if (valuesTable == null) {\n this.cleanup = null;\n return;\n }\n\n this.cleanup = valuesTable.addEventListener(\n dh.Table.EVENT_UPDATED,\n this.handleValuesTableUpdate\n );\n\n this.setViewport(valuesTable);\n }\n\n setViewport(valuesTable) {\n const valuesColumn = this.getValuesColumn(valuesTable);\n valuesTable.setViewport(0, DropdownFilterPanel.MAX_TABLE_SIZE - 1, [\n valuesColumn,\n ]);\n }\n\n updateFormatterSettings(settings) {\n const columnFormats = FormatterUtils.getColumnFormats(settings);\n if (!deepEqual(this.columnFormats, columnFormats)) {\n this.columnFormats = columnFormats;\n this.setState({ formatter: new Formatter(columnFormats) });\n }\n }\n\n handleValuesTableUpdate({ detail }) {\n const { rows } = detail;\n const { valuesTable } = this.state;\n const valuesColumn = this.getValuesColumn(valuesTable);\n if (!valuesColumn) {\n log.error('Values column not found');\n return;\n }\n const values = rows.map(row => row.get(valuesColumn));\n this.setState({ values, isLoading: false, isLoaded: true, valuesColumn });\n }\n\n handleSourceMouseEnter() {\n const { columnSelectionValidator } = this.props;\n if (!columnSelectionValidator) {\n return;\n }\n columnSelectionValidator(this, DropdownFilterPanel.SOURCE_COLUMN);\n }\n\n handleSourceMouseLeave() {\n const { columnSelectionValidator } = this.props;\n if (!columnSelectionValidator) {\n return;\n }\n columnSelectionValidator(this, null);\n }\n\n render() {\n const {\n columns,\n disableLinking,\n glContainer,\n glEventHub,\n isLinkerActive,\n } = this.props;\n const {\n column,\n formatter,\n isDisconnected,\n isValueShown,\n value,\n values,\n valuesColumn,\n isLoading,\n isLoaded,\n } = this.state;\n\n const source = this.getSource();\n const settingsErrorMessage = this.getSettingsErrorMessage();\n const panelErrorMessage = this.getPanelErrorMessage();\n const formattedValues =\n isLoaded && valuesColumn != null\n ? this.getCachedValues(values, valuesColumn, formatter)\n : [];\n\n return (\n <WidgetPanel\n errorMessage={panelErrorMessage}\n isLoading={isLoading}\n isLoaded={isLoaded}\n isDisconnected={isDisconnected}\n className=\"iris-dropdown-filter-panel\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onClearAllFilters={this.handleClearAllFilters}\n widgetName=\"Dropdown Filter\"\n widgetType=\"DropdownFilter\"\n >\n <div\n ref={this.panelContainer}\n className=\"dropdown-filter-container h-100 w-100 container\"\n >\n <DropdownFilter\n ref={this.dropdownFilterRef}\n column={column}\n columns={columns}\n isValueShown={isValueShown}\n isLinkerActive={isLinkerActive}\n disableLinking={disableLinking}\n isLoaded={isLoaded}\n settingsError={settingsErrorMessage}\n source={source}\n value={value}\n values={formattedValues}\n onChange={this.handleChange}\n onColumnSelected={this.handleColumnSelected}\n onSourceMouseEnter={this.handleSourceMouseEnter}\n onSourceMouseLeave={this.handleSourceMouseLeave}\n />\n </div>\n </WidgetPanel>\n );\n }\n}\n\nDropdownFilterPanel.propTypes = {\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n panelState: PropTypes.shape({\n name: PropTypes.string,\n type: PropTypes.string,\n value: PropTypes.string,\n isValueShown: PropTypes.bool,\n }),\n isLinkerActive: PropTypes.bool.isRequired,\n columns: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n columnSelectionValidator: PropTypes.func,\n disableLinking: PropTypes.bool.isRequired,\n settings: PropTypes.shape({\n columnFormats: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n panelTableMap: PropTypes.instanceOf(Map).isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n dashboardLinks: UIPropTypes.Links.isRequired,\n};\n\nDropdownFilterPanel.defaultProps = {\n columnSelectionValidator: null,\n panelState: null,\n};\n\nDropdownFilterPanel.displayName = 'DropdownFilterPanel';\n\nconst mapStateToProps = (state, ownProps) => {\n const { localDashboardId } = ownProps;\n const panelId = LayoutUtils.getIdFromPanel({ props: ownProps });\n const panelTableMap = getTableMapForDashboard(state, localDashboardId);\n const dashboardLinks = getLinksForDashboard(state, localDashboardId);\n const activeTool = getActiveTool(state);\n const isolatedLinkerPanelId = getIsolatedLinkerPanelIdForDashboard(\n state,\n localDashboardId\n );\n const isLinkerActive =\n activeTool === ToolType.LINKER &&\n (isolatedLinkerPanelId === undefined || isolatedLinkerPanelId === panelId);\n // Disable linking if linker is in isolated mode for a different panel\n const disableLinking =\n activeTool === ToolType.LINKER &&\n isolatedLinkerPanelId !== undefined &&\n isolatedLinkerPanelId !== panelId;\n\n return {\n columns: getColumnsForDashboard(state, localDashboardId),\n columnSelectionValidator: getColumnSelectionValidatorForDashboard(\n state,\n localDashboardId\n ),\n isLinkerActive,\n disableLinking,\n settings: getSettings(state),\n panelTableMap,\n dashboardLinks,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { forwardRef: true })(\n DropdownFilterPanel\n);\n"],"file":"DropdownFilterPanel.js"}
1
+ {"version":3,"file":"DropdownFilterPanel.js","names":["React","Component","PropTypes","connect","debounce","deepEqual","memoize","GLPropTypes","LayoutUtils","dh","DateTimeColumnFormatter","Formatter","FormatterUtils","TableUtils","Log","getActiveTool","getSettings","Pending","PromiseUtils","DropdownFilter","InputFilterEvent","getColumnsForDashboard","getColumnSelectionValidatorForDashboard","getIsolatedLinkerPanelIdForDashboard","getLinksForDashboard","getTableMapForDashboard","UIPropTypes","ToolType","WidgetPanel","log","module","DROPDOWN_FILTER_DEBOUNCE","DropdownFilterPanel","constructor","props","rawValues","formatter","type","name","isDateType","map","value","DATETIME_FORMATTER","format","getFormattedString","dashboardLinks","panel","panelId","getIdFromPanel","debug","filter","link","end","links","source","length","start","error","panelTableMap","get","table","columns","find","columnName","columnType","handleChange","bind","handleClearAllFilters","handleDisconnect","handleReconnect","handleColumnSelected","handleSourceFilterChange","handleSourceSortChange","handleSourceSizeChange","handleSourceMouseEnter","handleSourceMouseLeave","handleValuesTableUpdate","dropdownFilterRef","createRef","panelContainer","pending","cleanup","panelState","settings","columnFormats","isValueShown","timestamp","column","state","valuesTable","valuesColumn","sourceSize","values","wasFlipped","skipUpdate","isDisconnected","isLoading","isLoaded","componentDidMount","updateValuesTable","sourceTable","getSourceTable","startListeningToSource","sendUpdate","componentDidUpdate","prevProps","prevState","getSource","prevSource","prevSourceTable","updateFormatterSettings","close","stopListeningToSource","componentWillUnmount","cancel","getCoordinateForColumn","current","element","querySelector","SOURCE_BUTTON_CLASS_NAME","rect","getBoundingClientRect","width","height","x","left","y","bottom","getSettingsErrorMessage","MAX_TABLE_SIZE","getPanelErrorMessage","panelLinks","getCachedPanelLinks","getCachedSource","getCachedSourceTable","getValuesColumn","getCachedSourceColumn","addEventListener","Table","EVENT_FILTERCHANGED","EVENT_SORTCHANGED","EVENT_SIZECHANGED","EVENT_DISCONNECT","EVENT_RECONNECT","removeEventListener","Date","now","setState","prevTimestamp","isFlip","Error","applySourceFilters","applySourceSorts","detail","glEventHub","emit","COLUMN_SELECTED","SOURCE_COLUMN","clearFilter","setPanelState","setFilterState","sourcePanelId","excludePanelIds","FILTERS_CHANGED","size","add","copy","resolved","then","updateViewportListener","catch","isCancelled","sort","sorts","applySort","setViewport","filters","applyFilter","EVENT_UPDATED","getColumnFormats","rows","row","columnSelectionValidator","render","disableLinking","glContainer","isLinkerActive","settingsErrorMessage","panelErrorMessage","formattedValues","getCachedValues","showTimeZone","showTSeparator","defaultDateTimeFormatString","Object","freeze","propTypes","Container","isRequired","EventHub","shape","string","bool","arrayOf","func","instanceOf","Map","Links","defaultProps","displayName","mapStateToProps","ownProps","localDashboardId","activeTool","isolatedLinkerPanelId","LINKER","undefined","forwardRef"],"sources":["../../src/panels/DropdownFilterPanel.jsx"],"sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport debounce from 'lodash.debounce';\nimport deepEqual from 'deep-equal';\nimport memoize from 'memoize-one';\nimport { GLPropTypes, LayoutUtils } from '@deephaven/dashboard';\nimport dh from '@deephaven/jsapi-shim';\nimport {\n DateTimeColumnFormatter,\n Formatter,\n FormatterUtils,\n TableUtils,\n} from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport { getActiveTool, getSettings } from '@deephaven/redux';\nimport { Pending, PromiseUtils } from '@deephaven/utils';\nimport DropdownFilter from '../controls/dropdown-filter/DropdownFilter';\nimport { InputFilterEvent } from '../events';\nimport {\n getColumnsForDashboard,\n getColumnSelectionValidatorForDashboard,\n getIsolatedLinkerPanelIdForDashboard,\n getLinksForDashboard,\n getTableMapForDashboard,\n} from '../redux';\nimport './DropdownFilterPanel.scss';\nimport { UIPropTypes } from '../prop-types';\nimport ToolType from '../linker/ToolType';\nimport WidgetPanel from './WidgetPanel';\n\nconst log = Log.module('DropdownFilterPanel');\n\nconst DROPDOWN_FILTER_DEBOUNCE = 250;\n\nclass DropdownFilterPanel extends Component {\n static COMPONENT = 'DropdownFilterPanel';\n\n static MAX_TABLE_SIZE = 256;\n\n // Filter dropdown needs to show and send full timestamp format with nanoseconds\n static DATETIME_FORMATTER = new DateTimeColumnFormatter({\n showTimeZone: false,\n showTSeparator: true,\n defaultDateTimeFormatString: `yyyy-MM-dd HH:mm:ss.SSSSSSSSS`,\n });\n\n static SOURCE_COLUMN = Object.freeze({\n name: 'FilterSource',\n type: null,\n });\n\n constructor(props) {\n super(props);\n\n this.handleChange = debounce(\n this.handleChange.bind(this),\n DROPDOWN_FILTER_DEBOUNCE\n );\n this.handleClearAllFilters = this.handleClearAllFilters.bind(this);\n this.handleDisconnect = this.handleDisconnect.bind(this);\n this.handleReconnect = this.handleReconnect.bind(this);\n this.handleColumnSelected = this.handleColumnSelected.bind(this);\n this.handleSourceFilterChange = this.handleSourceFilterChange.bind(this);\n this.handleSourceSortChange = this.handleSourceSortChange.bind(this);\n this.handleSourceSizeChange = this.handleSourceSizeChange.bind(this);\n this.handleSourceMouseEnter = this.handleSourceMouseEnter.bind(this);\n this.handleSourceMouseLeave = this.handleSourceMouseLeave.bind(this);\n this.handleValuesTableUpdate = this.handleValuesTableUpdate.bind(this);\n\n this.dropdownFilterRef = React.createRef();\n this.panelContainer = React.createRef();\n this.pending = new Pending();\n this.cleanup = null;\n\n const { panelState, settings } = props;\n this.columnFormats = settings.columnFormats;\n const { value = '', isValueShown = false, name, type, timestamp = null } =\n panelState ?? {};\n const column = name != null && type != null ? { name, type } : null;\n this.state = {\n column,\n formatter: new Formatter(this.columnFormats),\n valuesTable: null,\n valuesColumn: null,\n sourceSize: 0,\n value,\n timestamp,\n values: [],\n isValueShown,\n wasFlipped: false,\n skipUpdate: false,\n\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n\n isDisconnected: false,\n isLoading: false,\n isLoaded: false,\n error: null,\n };\n }\n\n componentDidMount() {\n this.updateValuesTable();\n const { column, value, timestamp } = this.state;\n const sourceTable = this.getSourceTable();\n if (sourceTable !== null) {\n this.startListeningToSource(sourceTable);\n }\n if (column != null) {\n const { name, type } = column;\n this.sendUpdate(name, type, value, timestamp);\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { valuesTable } = this.state;\n const { settings } = this.props;\n const source = this.getSource();\n const sourceTable = this.getSourceTable();\n const prevSource = this.getSource(prevProps);\n const prevSourceTable = this.getSourceTable(prevProps);\n\n if (settings !== prevProps.settings) {\n this.updateFormatterSettings(settings);\n }\n\n if (\n valuesTable !== prevState.valuesTable &&\n prevState.valuesTable !== null\n ) {\n log.debug('Table in state modified, closing the old table.');\n prevState.valuesTable.close();\n }\n\n // Checking source change in addition to table change\n // in case a different column is selected in the same table\n if (sourceTable !== prevSourceTable || source !== prevSource) {\n this.updateValuesTable();\n }\n\n if (sourceTable !== prevSourceTable) {\n if (prevSourceTable !== null) {\n this.stopListeningToSource(prevSourceTable);\n }\n if (sourceTable !== null) {\n this.startListeningToSource(sourceTable);\n }\n }\n }\n\n componentWillUnmount() {\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable();\n this.pending.cancel();\n if (sourceTable !== null) {\n this.stopListeningToSource(sourceTable);\n }\n if (this.cleanup) {\n this.cleanup();\n }\n if (valuesTable !== null) {\n valuesTable.close();\n }\n }\n\n getCachedValues = memoize((rawValues, { type, name }, formatter) => {\n if (TableUtils.isDateType(type)) {\n return rawValues.map(value =>\n DropdownFilterPanel.DATETIME_FORMATTER.format(value)\n );\n }\n return rawValues.map(value =>\n // Skip formatting for nulls so they don't get converted to ''\n value != null ? formatter.getFormattedString(value, type, name) : null\n );\n });\n\n getCoordinateForColumn() {\n if (!this.panelContainer.current) {\n return null;\n }\n\n const element = this.panelContainer.current.querySelector(\n `.${DropdownFilter.SOURCE_BUTTON_CLASS_NAME}`\n );\n const rect = element?.getBoundingClientRect() ?? null;\n if (rect == null || rect.width <= 0 || rect.height <= 0) {\n return null;\n }\n const x = rect.left + rect.width / 2;\n const y = rect.bottom;\n return [x, y];\n }\n\n getSettingsErrorMessage() {\n const { sourceSize } = this.state;\n if (sourceSize > DropdownFilterPanel.MAX_TABLE_SIZE) {\n return `Table too large, must have fewer than ${DropdownFilterPanel.MAX_TABLE_SIZE} options.`;\n }\n return null;\n }\n\n getPanelErrorMessage() {\n const { error } = this.state;\n return error ? `${error}` : null;\n }\n\n getCachedPanelLinks = memoize((dashboardLinks, panel) => {\n const panelId = LayoutUtils.getIdFromPanel(panel);\n log.debug('getCachedPanelLinks', dashboardLinks, panelId);\n return dashboardLinks.filter(link => link.end?.panelId === panelId);\n });\n\n getCachedSource = memoize(links => {\n log.debug('getCachedSource', links);\n let source = null;\n if (links.length > 0) {\n const [link] = links;\n source = link.start;\n if (links.length > 1) {\n log.error('Filter has more that one link', links);\n }\n }\n return source;\n });\n\n getCachedSourceTable = memoize((panelTableMap, source) => {\n log.debug('getCachedSourceTable', panelTableMap, source);\n if (source == null) {\n return null;\n }\n const { panelId } = source;\n return panelTableMap.get(panelId) ?? null;\n });\n\n getCachedSourceColumn = memoize((table, source) => {\n log.debug('getCachedSourceColumn', table, source);\n if (table == null || source == null) {\n return null;\n }\n return (\n table.columns.find(\n ({ name, type }) =>\n name === source.columnName && type === source.columnType\n ) ?? null\n );\n });\n\n getSource(props = this.props) {\n const { dashboardLinks } = props;\n const panelLinks = this.getCachedPanelLinks(dashboardLinks, this);\n return this.getCachedSource(panelLinks);\n }\n\n getSourceTable(props = this.props) {\n const { panelTableMap } = props;\n const source = this.getSource(props);\n return this.getCachedSourceTable(panelTableMap, source);\n }\n\n getValuesColumn(valuesTable) {\n const source = this.getSource();\n return this.getCachedSourceColumn(valuesTable, source);\n }\n\n startListeningToSource(sourceTable) {\n log.debug('startListeningToSource');\n sourceTable.addEventListener(\n dh.Table.EVENT_FILTERCHANGED,\n this.handleSourceFilterChange\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_SORTCHANGED,\n this.handleSourceSortChange\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_SIZECHANGED,\n this.handleSourceSizeChange\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_DISCONNECT,\n this.handleDisconnect\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_RECONNECT,\n this.handleReconnect\n );\n }\n\n stopListeningToSource(sourceTable) {\n log.debug('stopListeningToSource');\n sourceTable.removeEventListener(\n dh.Table.EVENT_FILTERCHANGED,\n this.handleSourceFilterChange\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_SORTCHANGED,\n this.handleSourceSortChange\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_SIZECHANGED,\n this.handleSourceSizeChange\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_DISCONNECT,\n this.handleDisconnect\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_RECONNECT,\n this.handleReconnect\n );\n }\n\n handleChange({ column, isValueShown, value }) {\n const { name = null, type = null } = column ?? {};\n let sendUpdate = true;\n let timestamp = Date.now();\n this.setState(\n ({ panelState, timestamp: prevTimestamp, wasFlipped, skipUpdate }) => {\n // If the user had a value set, and they flip the card over and flip it back without changing any settings, ignore it\n const isFlip =\n panelState != null &&\n isValueShown !== panelState.isValueShown &&\n name === panelState.name &&\n type === panelState.type &&\n value === panelState.value;\n sendUpdate = !skipUpdate && isValueShown && (!isFlip || !wasFlipped);\n\n if (!sendUpdate) {\n timestamp = prevTimestamp;\n }\n\n return {\n panelState: {\n isValueShown,\n name,\n type,\n value,\n timestamp,\n },\n timestamp,\n wasFlipped: isFlip,\n skipUpdate: false,\n };\n },\n () => {\n if (sendUpdate) {\n this.sendUpdate(name, type, value, timestamp);\n }\n }\n );\n }\n\n handleDisconnect() {\n this.setState({\n error: new Error('Table disconnected'),\n isDisconnected: true,\n isLoading: false,\n });\n }\n\n handleReconnect() {\n this.setState({ isDisconnected: false, error: null });\n }\n\n handleSourceFilterChange() {\n this.applySourceFilters();\n }\n\n handleSourceSortChange() {\n this.applySourceSorts();\n }\n\n handleSourceSizeChange({ detail }) {\n this.setState({ sourceSize: detail });\n }\n\n handleColumnSelected() {\n log.debug('handleColumnSelected');\n const { glEventHub } = this.props;\n glEventHub.emit(\n InputFilterEvent.COLUMN_SELECTED,\n this,\n DropdownFilterPanel.SOURCE_COLUMN\n );\n }\n\n handleClearAllFilters() {\n this.dropdownFilterRef.current.clearFilter();\n }\n\n /**\n * Set the filter value, card side, selected column\n * @param {Object} state Filter state to set\n * @param {boolean} sendUpdate Emit filters changed event if true\n */\n setPanelState(state, sendUpdate = false) {\n if (this.getSource() == null) {\n log.debug('Ignore state update for unlinked filter', state);\n return;\n }\n // Set the skipUpdate flag so the next onChange handler call doesn't emit the FILTERS_CHANGED event\n this.setState({ skipUpdate: !sendUpdate });\n\n // Changing the inputFilter state via props doesn't quite work because of the delays on manual input changes\n // Setting the ref state directly triggers the onChange handler and updates the panelState\n this.dropdownFilterRef.current?.setFilterState(state);\n }\n\n sendUpdate(name, type, value, timestamp) {\n const { glEventHub } = this.props;\n const sourcePanelId = this.getSource()?.panelId;\n const excludePanelIds = sourcePanelId === null ? [] : [sourcePanelId];\n log.debug('sendUpdate', {\n name,\n type,\n value,\n timestamp,\n excludePanelIds,\n });\n\n glEventHub.emit(InputFilterEvent.FILTERS_CHANGED, this, {\n name,\n type,\n value: value != null ? value : '=null',\n timestamp,\n excludePanelIds,\n });\n }\n\n updateValuesTable() {\n const source = this.getSource();\n const sourceTable = this.getSourceTable();\n log.debug('updateValuesTable', source, sourceTable);\n\n this.setState({\n values: [],\n valuesTable: null,\n error: null,\n });\n\n if (source == null) {\n log.debug('Filter unlinked.');\n this.setState({\n isLoading: false,\n isLoaded: true,\n isValueShown: false,\n sourceSize: 0,\n });\n return;\n }\n\n this.setState({ isLoading: true });\n\n if (sourceTable == null) {\n return;\n }\n\n this.setState({ isLoaded: false, sourceSize: sourceTable.size });\n\n this.pending\n .add(sourceTable.copy(), resolved => resolved.close())\n .then(valuesTable => {\n // Loading/loaded will be set when values array is actually populated\n this.updateViewportListener(valuesTable);\n this.setState({ valuesTable });\n })\n .catch(error => {\n if (PromiseUtils.isCancelled(error)) {\n return;\n }\n log.error(error);\n this.setState({ isLoading: false, error });\n });\n }\n\n applySourceSorts() {\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable();\n log.debug('applySourceSorts', sourceTable.sort);\n if (valuesTable == null) {\n log.debug('Table not initialized');\n return;\n }\n const sorts = [...sourceTable.sort];\n valuesTable.applySort(sorts);\n this.setViewport(valuesTable);\n }\n\n applySourceFilters() {\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable();\n log.debug('applySourceFilters', sourceTable.filter);\n if (valuesTable == null) {\n log.debug('Table not initialized');\n return;\n }\n const filters = [...sourceTable.filter];\n valuesTable.applyFilter(filters);\n this.setViewport(valuesTable);\n }\n\n updateViewportListener(valuesTable) {\n log.debug('updateViewportListener', valuesTable?.size);\n\n if (this.cleanup) {\n this.cleanup();\n }\n\n if (valuesTable == null) {\n this.cleanup = null;\n return;\n }\n\n this.cleanup = valuesTable.addEventListener(\n dh.Table.EVENT_UPDATED,\n this.handleValuesTableUpdate\n );\n\n this.setViewport(valuesTable);\n }\n\n setViewport(valuesTable) {\n const valuesColumn = this.getValuesColumn(valuesTable);\n valuesTable.setViewport(0, DropdownFilterPanel.MAX_TABLE_SIZE - 1, [\n valuesColumn,\n ]);\n }\n\n updateFormatterSettings(settings) {\n const columnFormats = FormatterUtils.getColumnFormats(settings);\n if (!deepEqual(this.columnFormats, columnFormats)) {\n this.columnFormats = columnFormats;\n this.setState({ formatter: new Formatter(columnFormats) });\n }\n }\n\n handleValuesTableUpdate({ detail }) {\n const { rows } = detail;\n const { valuesTable } = this.state;\n const valuesColumn = this.getValuesColumn(valuesTable);\n if (!valuesColumn) {\n log.error('Values column not found');\n return;\n }\n const values = rows.map(row => row.get(valuesColumn));\n this.setState({ values, isLoading: false, isLoaded: true, valuesColumn });\n }\n\n handleSourceMouseEnter() {\n const { columnSelectionValidator } = this.props;\n if (!columnSelectionValidator) {\n return;\n }\n columnSelectionValidator(this, DropdownFilterPanel.SOURCE_COLUMN);\n }\n\n handleSourceMouseLeave() {\n const { columnSelectionValidator } = this.props;\n if (!columnSelectionValidator) {\n return;\n }\n columnSelectionValidator(this, null);\n }\n\n render() {\n const {\n columns,\n disableLinking,\n glContainer,\n glEventHub,\n isLinkerActive,\n } = this.props;\n const {\n column,\n formatter,\n isDisconnected,\n isValueShown,\n value,\n values,\n valuesColumn,\n isLoading,\n isLoaded,\n } = this.state;\n\n const source = this.getSource();\n const settingsErrorMessage = this.getSettingsErrorMessage();\n const panelErrorMessage = this.getPanelErrorMessage();\n const formattedValues =\n isLoaded && valuesColumn != null\n ? this.getCachedValues(values, valuesColumn, formatter)\n : [];\n\n return (\n <WidgetPanel\n errorMessage={panelErrorMessage}\n isLoading={isLoading}\n isLoaded={isLoaded}\n isDisconnected={isDisconnected}\n className=\"iris-dropdown-filter-panel\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onClearAllFilters={this.handleClearAllFilters}\n widgetName=\"Dropdown Filter\"\n widgetType=\"DropdownFilter\"\n >\n <div\n ref={this.panelContainer}\n className=\"dropdown-filter-container h-100 w-100 container\"\n >\n <DropdownFilter\n ref={this.dropdownFilterRef}\n column={column}\n columns={columns}\n isValueShown={isValueShown}\n isLinkerActive={isLinkerActive}\n disableLinking={disableLinking}\n isLoaded={isLoaded}\n settingsError={settingsErrorMessage}\n source={source}\n value={value}\n values={formattedValues}\n onChange={this.handleChange}\n onColumnSelected={this.handleColumnSelected}\n onSourceMouseEnter={this.handleSourceMouseEnter}\n onSourceMouseLeave={this.handleSourceMouseLeave}\n />\n </div>\n </WidgetPanel>\n );\n }\n}\n\nDropdownFilterPanel.propTypes = {\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n panelState: PropTypes.shape({\n name: PropTypes.string,\n type: PropTypes.string,\n value: PropTypes.string,\n isValueShown: PropTypes.bool,\n }),\n isLinkerActive: PropTypes.bool.isRequired,\n columns: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n columnSelectionValidator: PropTypes.func,\n disableLinking: PropTypes.bool.isRequired,\n settings: PropTypes.shape({\n columnFormats: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n panelTableMap: PropTypes.instanceOf(Map).isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n dashboardLinks: UIPropTypes.Links.isRequired,\n};\n\nDropdownFilterPanel.defaultProps = {\n columnSelectionValidator: null,\n panelState: null,\n};\n\nDropdownFilterPanel.displayName = 'DropdownFilterPanel';\n\nconst mapStateToProps = (state, ownProps) => {\n const { localDashboardId } = ownProps;\n const panelId = LayoutUtils.getIdFromPanel({ props: ownProps });\n const panelTableMap = getTableMapForDashboard(state, localDashboardId);\n const dashboardLinks = getLinksForDashboard(state, localDashboardId);\n const activeTool = getActiveTool(state);\n const isolatedLinkerPanelId = getIsolatedLinkerPanelIdForDashboard(\n state,\n localDashboardId\n );\n const isLinkerActive =\n activeTool === ToolType.LINKER &&\n (isolatedLinkerPanelId === undefined || isolatedLinkerPanelId === panelId);\n // Disable linking if linker is in isolated mode for a different panel\n const disableLinking =\n activeTool === ToolType.LINKER &&\n isolatedLinkerPanelId !== undefined &&\n isolatedLinkerPanelId !== panelId;\n\n return {\n columns: getColumnsForDashboard(state, localDashboardId),\n columnSelectionValidator: getColumnSelectionValidatorForDashboard(\n state,\n localDashboardId\n ),\n isLinkerActive,\n disableLinking,\n settings: getSettings(state),\n panelTableMap,\n dashboardLinks,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { forwardRef: true })(\n DropdownFilterPanel\n);\n"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,OAAT,QAAwB,aAAxB;AACA,OAAOC,QAAP,MAAqB,iBAArB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,OAAP,MAAoB,aAApB;AACA,SAASC,WAAT,EAAsBC,WAAtB,QAAyC,sBAAzC;AACA,OAAOC,EAAP,MAAe,uBAAf;AACA,SACEC,uBADF,EAEEC,SAFF,EAGEC,cAHF,EAIEC,UAJF,QAKO,wBALP;AAMA,OAAOC,GAAP,MAAgB,gBAAhB;AACA,SAASC,aAAT,EAAwBC,WAAxB,QAA2C,kBAA3C;AACA,SAASC,OAAT,EAAkBC,YAAlB,QAAsC,kBAAtC;OACOC,c;SACEC,gB;SAEPC,sB,EACAC,uC,EACAC,oC,EACAC,oB,EACAC,uB;;SAGOC,W;OACFC,Q;OACAC,W;AAEP,IAAMC,GAAG,GAAGf,GAAG,CAACgB,MAAJ,CAAW,qBAAX,CAAZ;AAEA,IAAMC,wBAAwB,GAAG,GAAjC;;AAEA,MAAMC,mBAAN,SAAkC/B,SAAlC,CAA4C;EAK1C;EAYAgC,WAAW,CAACC,KAAD,EAAQ;IACjB,MAAMA,KAAN;;IADiB,yCAmHD5B,OAAO,CAAC,CAAC6B,SAAD,QAA4BC,SAA5B,KAA0C;MAAA,IAA9B;QAAEC,IAAF;QAAQC;MAAR,CAA8B;;MAClE,IAAIzB,UAAU,CAAC0B,UAAX,CAAsBF,IAAtB,CAAJ,EAAiC;QAC/B,OAAOF,SAAS,CAACK,GAAV,CAAcC,KAAK,IACxBT,mBAAmB,CAACU,kBAApB,CAAuCC,MAAvC,CAA8CF,KAA9C,CADK,CAAP;MAGD;;MACD,OAAON,SAAS,CAACK,GAAV,CAAcC,KAAK,IACxB;MACAA,KAAK,IAAI,IAAT,GAAgBL,SAAS,CAACQ,kBAAV,CAA6BH,KAA7B,EAAoCJ,IAApC,EAA0CC,IAA1C,CAAhB,GAAkE,IAF7D,CAAP;IAID,CAVwB,CAnHN;;IAAA,6CA6JGhC,OAAO,CAAC,CAACuC,cAAD,EAAiBC,KAAjB,KAA2B;MACvD,IAAMC,OAAO,GAAGvC,WAAW,CAACwC,cAAZ,CAA2BF,KAA3B,CAAhB;MACAjB,GAAG,CAACoB,KAAJ,CAAU,qBAAV,EAAiCJ,cAAjC,EAAiDE,OAAjD;MACA,OAAOF,cAAc,CAACK,MAAf,CAAsBC,IAAI;QAAA;;QAAA,OAAI,cAAAA,IAAI,CAACC,GAAL,wDAAUL,OAAV,MAAsBA,OAA1B;MAAA,CAA1B,CAAP;IACD,CAJ4B,CA7JV;;IAAA,yCAmKDzC,OAAO,CAAC+C,KAAK,IAAI;MACjCxB,GAAG,CAACoB,KAAJ,CAAU,iBAAV,EAA6BI,KAA7B;MACA,IAAIC,MAAM,GAAG,IAAb;;MACA,IAAID,KAAK,CAACE,MAAN,GAAe,CAAnB,EAAsB;QACpB,IAAM,CAACJ,IAAD,IAASE,KAAf;QACAC,MAAM,GAAGH,IAAI,CAACK,KAAd;;QACA,IAAIH,KAAK,CAACE,MAAN,GAAe,CAAnB,EAAsB;UACpB1B,GAAG,CAAC4B,KAAJ,CAAU,+BAAV,EAA2CJ,KAA3C;QACD;MACF;;MACD,OAAOC,MAAP;IACD,CAXwB,CAnKN;;IAAA,8CAgLIhD,OAAO,CAAC,CAACoD,aAAD,EAAgBJ,MAAhB,KAA2B;MAAA;;MACxDzB,GAAG,CAACoB,KAAJ,CAAU,sBAAV,EAAkCS,aAAlC,EAAiDJ,MAAjD;;MACA,IAAIA,MAAM,IAAI,IAAd,EAAoB;QAClB,OAAO,IAAP;MACD;;MACD,IAAM;QAAEP;MAAF,IAAcO,MAApB;MACA,6BAAOI,aAAa,CAACC,GAAd,CAAkBZ,OAAlB,CAAP,mEAAqC,IAArC;IACD,CAP6B,CAhLX;;IAAA,+CAyLKzC,OAAO,CAAC,CAACsD,KAAD,EAAQN,MAAR,KAAmB;MAAA;;MACjDzB,GAAG,CAACoB,KAAJ,CAAU,uBAAV,EAAmCW,KAAnC,EAA0CN,MAA1C;;MACA,IAAIM,KAAK,IAAI,IAAT,IAAiBN,MAAM,IAAI,IAA/B,EAAqC;QACnC,OAAO,IAAP;MACD;;MACD,8BACEM,KAAK,CAACC,OAAN,CAAcC,IAAd,CACE;QAAA,IAAC;UAAExB,IAAF;UAAQD;QAAR,CAAD;QAAA,OACEC,IAAI,KAAKgB,MAAM,CAACS,UAAhB,IAA8B1B,IAAI,KAAKiB,MAAM,CAACU,UADhD;MAAA,CADF,CADF,qEAIO,IAJP;IAMD,CAX8B,CAzLZ;;IAGjB,KAAKC,YAAL,GAAoB7D,QAAQ,CAC1B,KAAK6D,YAAL,CAAkBC,IAAlB,CAAuB,IAAvB,CAD0B,EAE1BnC,wBAF0B,CAA5B;IAIA,KAAKoC,qBAAL,GAA6B,KAAKA,qBAAL,CAA2BD,IAA3B,CAAgC,IAAhC,CAA7B;IACA,KAAKE,gBAAL,GAAwB,KAAKA,gBAAL,CAAsBF,IAAtB,CAA2B,IAA3B,CAAxB;IACA,KAAKG,eAAL,GAAuB,KAAKA,eAAL,CAAqBH,IAArB,CAA0B,IAA1B,CAAvB;IACA,KAAKI,oBAAL,GAA4B,KAAKA,oBAAL,CAA0BJ,IAA1B,CAA+B,IAA/B,CAA5B;IACA,KAAKK,wBAAL,GAAgC,KAAKA,wBAAL,CAA8BL,IAA9B,CAAmC,IAAnC,CAAhC;IACA,KAAKM,sBAAL,GAA8B,KAAKA,sBAAL,CAA4BN,IAA5B,CAAiC,IAAjC,CAA9B;IACA,KAAKO,sBAAL,GAA8B,KAAKA,sBAAL,CAA4BP,IAA5B,CAAiC,IAAjC,CAA9B;IACA,KAAKQ,sBAAL,GAA8B,KAAKA,sBAAL,CAA4BR,IAA5B,CAAiC,IAAjC,CAA9B;IACA,KAAKS,sBAAL,GAA8B,KAAKA,sBAAL,CAA4BT,IAA5B,CAAiC,IAAjC,CAA9B;IACA,KAAKU,uBAAL,GAA+B,KAAKA,uBAAL,CAA6BV,IAA7B,CAAkC,IAAlC,CAA/B;IAEA,KAAKW,iBAAL,gBAAyB7E,KAAK,CAAC8E,SAAN,EAAzB;IACA,KAAKC,cAAL,gBAAsB/E,KAAK,CAAC8E,SAAN,EAAtB;IACA,KAAKE,OAAL,GAAe,IAAI/D,OAAJ,EAAf;IACA,KAAKgE,OAAL,GAAe,IAAf;IAEA,IAAM;MAAEC,UAAF;MAAcC;IAAd,IAA2BjD,KAAjC;IACA,KAAKkD,aAAL,GAAqBD,QAAQ,CAACC,aAA9B;IACA,IAAM;MAAE3C,KAAK,EAALA,MAAK,GAAG,EAAV;MAAc4C,YAAY,GAAG,KAA7B;MAAoC/C,IAAI,EAAJA,KAApC;MAA0CD,IAAI,EAAJA,KAA1C;MAAgDiD,SAAS,GAAG;IAA5D,IACJJ,UADI,aACJA,UADI,cACJA,UADI,GACU,EADhB;IAEA,IAAMK,MAAM,GAAGjD,KAAI,IAAI,IAAR,IAAgBD,KAAI,IAAI,IAAxB,GAA+B;MAAEC,IAAI,EAAJA,KAAF;MAAQD,IAAI,EAAJA;IAAR,CAA/B,GAAgD,IAA/D;IACA,KAAKmD,KAAL,GAAa;MACXD,MADW;MAEXnD,SAAS,EAAE,IAAIzB,SAAJ,CAAc,KAAKyE,aAAnB,CAFA;MAGXK,WAAW,EAAE,IAHF;MAIXC,YAAY,EAAE,IAJH;MAKXC,UAAU,EAAE,CALD;MAMXlD,KAAK,EAALA,MANW;MAOX6C,SAPW;MAQXM,MAAM,EAAE,EARG;MASXP,YATW;MAUXQ,UAAU,EAAE,KAVD;MAWXC,UAAU,EAAE,KAXD;MAaX;MACAZ,UAdW;MAcC;MAEZa,cAAc,EAAE,KAhBL;MAiBXC,SAAS,EAAE,KAjBA;MAkBXC,QAAQ,EAAE,KAlBC;MAmBXxC,KAAK,EAAE;IAnBI,CAAb;EAqBD;;EAEDyC,iBAAiB,GAAG;IAClB,KAAKC,iBAAL;IACA,IAAM;MAAEZ,MAAF;MAAU9C,KAAV;MAAiB6C;IAAjB,IAA+B,KAAKE,KAA1C;IACA,IAAMY,WAAW,GAAG,KAAKC,cAAL,EAApB;;IACA,IAAID,WAAW,KAAK,IAApB,EAA0B;MACxB,KAAKE,sBAAL,CAA4BF,WAA5B;IACD;;IACD,IAAIb,MAAM,IAAI,IAAd,EAAoB;MAClB,IAAM;QAAEjD,IAAF;QAAQD;MAAR,IAAiBkD,MAAvB;MACA,KAAKgB,UAAL,CAAgBjE,IAAhB,EAAsBD,IAAtB,EAA4BI,KAA5B,EAAmC6C,SAAnC;IACD;EACF;;EAEDkB,kBAAkB,CAACC,SAAD,EAAYC,SAAZ,EAAuB;IACvC,IAAM;MAAEjB;IAAF,IAAkB,KAAKD,KAA7B;IACA,IAAM;MAAEL;IAAF,IAAe,KAAKjD,KAA1B;IACA,IAAMoB,MAAM,GAAG,KAAKqD,SAAL,EAAf;IACA,IAAMP,WAAW,GAAG,KAAKC,cAAL,EAApB;IACA,IAAMO,UAAU,GAAG,KAAKD,SAAL,CAAeF,SAAf,CAAnB;IACA,IAAMI,eAAe,GAAG,KAAKR,cAAL,CAAoBI,SAApB,CAAxB;;IAEA,IAAItB,QAAQ,KAAKsB,SAAS,CAACtB,QAA3B,EAAqC;MACnC,KAAK2B,uBAAL,CAA6B3B,QAA7B;IACD;;IAED,IACEM,WAAW,KAAKiB,SAAS,CAACjB,WAA1B,IACAiB,SAAS,CAACjB,WAAV,KAA0B,IAF5B,EAGE;MACA5D,GAAG,CAACoB,KAAJ,CAAU,iDAAV;MACAyD,SAAS,CAACjB,WAAV,CAAsBsB,KAAtB;IACD,CAlBsC,CAoBvC;IACA;;;IACA,IAAIX,WAAW,KAAKS,eAAhB,IAAmCvD,MAAM,KAAKsD,UAAlD,EAA8D;MAC5D,KAAKT,iBAAL;IACD;;IAED,IAAIC,WAAW,KAAKS,eAApB,EAAqC;MACnC,IAAIA,eAAe,KAAK,IAAxB,EAA8B;QAC5B,KAAKG,qBAAL,CAA2BH,eAA3B;MACD;;MACD,IAAIT,WAAW,KAAK,IAApB,EAA0B;QACxB,KAAKE,sBAAL,CAA4BF,WAA5B;MACD;IACF;EACF;;EAEDa,oBAAoB,GAAG;IACrB,IAAM;MAAExB;IAAF,IAAkB,KAAKD,KAA7B;IACA,IAAMY,WAAW,GAAG,KAAKC,cAAL,EAApB;IACA,KAAKrB,OAAL,CAAakC,MAAb;;IACA,IAAId,WAAW,KAAK,IAApB,EAA0B;MACxB,KAAKY,qBAAL,CAA2BZ,WAA3B;IACD;;IACD,IAAI,KAAKnB,OAAT,EAAkB;MAChB,KAAKA,OAAL;IACD;;IACD,IAAIQ,WAAW,KAAK,IAApB,EAA0B;MACxBA,WAAW,CAACsB,KAAZ;IACD;EACF;;EAcDI,sBAAsB,GAAG;IAAA;;IACvB,IAAI,CAAC,KAAKpC,cAAL,CAAoBqC,OAAzB,EAAkC;MAChC,OAAO,IAAP;IACD;;IAED,IAAMC,OAAO,GAAG,KAAKtC,cAAL,CAAoBqC,OAApB,CAA4BE,aAA5B,YACVnG,cAAc,CAACoG,wBADL,EAAhB;IAGA,IAAMC,IAAI,4BAAGH,OAAH,aAAGA,OAAH,uBAAGA,OAAO,CAAEI,qBAAT,EAAH,yEAAuC,IAAjD;;IACA,IAAID,IAAI,IAAI,IAAR,IAAgBA,IAAI,CAACE,KAAL,IAAc,CAA9B,IAAmCF,IAAI,CAACG,MAAL,IAAe,CAAtD,EAAyD;MACvD,OAAO,IAAP;IACD;;IACD,IAAMC,CAAC,GAAGJ,IAAI,CAACK,IAAL,GAAYL,IAAI,CAACE,KAAL,GAAa,CAAnC;IACA,IAAMI,CAAC,GAAGN,IAAI,CAACO,MAAf;IACA,OAAO,CAACH,CAAD,EAAIE,CAAJ,CAAP;EACD;;EAEDE,uBAAuB,GAAG;IACxB,IAAM;MAAErC;IAAF,IAAiB,KAAKH,KAA5B;;IACA,IAAIG,UAAU,GAAG3D,mBAAmB,CAACiG,cAArC,EAAqD;MACnD,uDAAgDjG,mBAAmB,CAACiG,cAApE;IACD;;IACD,OAAO,IAAP;EACD;;EAEDC,oBAAoB,GAAG;IACrB,IAAM;MAAEzE;IAAF,IAAY,KAAK+B,KAAvB;IACA,OAAO/B,KAAK,aAAMA,KAAN,IAAgB,IAA5B;EACD;;EA2CDkD,SAAS,GAAqB;IAAA,IAApBzE,KAAoB,uEAAZ,KAAKA,KAAO;IAC5B,IAAM;MAAEW;IAAF,IAAqBX,KAA3B;IACA,IAAMiG,UAAU,GAAG,KAAKC,mBAAL,CAAyBvF,cAAzB,EAAyC,IAAzC,CAAnB;IACA,OAAO,KAAKwF,eAAL,CAAqBF,UAArB,CAAP;EACD;;EAED9B,cAAc,GAAqB;IAAA,IAApBnE,KAAoB,uEAAZ,KAAKA,KAAO;IACjC,IAAM;MAAEwB;IAAF,IAAoBxB,KAA1B;IACA,IAAMoB,MAAM,GAAG,KAAKqD,SAAL,CAAezE,KAAf,CAAf;IACA,OAAO,KAAKoG,oBAAL,CAA0B5E,aAA1B,EAAyCJ,MAAzC,CAAP;EACD;;EAEDiF,eAAe,CAAC9C,WAAD,EAAc;IAC3B,IAAMnC,MAAM,GAAG,KAAKqD,SAAL,EAAf;IACA,OAAO,KAAK6B,qBAAL,CAA2B/C,WAA3B,EAAwCnC,MAAxC,CAAP;EACD;;EAEDgD,sBAAsB,CAACF,WAAD,EAAc;IAClCvE,GAAG,CAACoB,KAAJ,CAAU,wBAAV;IACAmD,WAAW,CAACqC,gBAAZ,CACEhI,EAAE,CAACiI,KAAH,CAASC,mBADX,EAEE,KAAKpE,wBAFP;IAIA6B,WAAW,CAACqC,gBAAZ,CACEhI,EAAE,CAACiI,KAAH,CAASE,iBADX,EAEE,KAAKpE,sBAFP;IAIA4B,WAAW,CAACqC,gBAAZ,CACEhI,EAAE,CAACiI,KAAH,CAASG,iBADX,EAEE,KAAKpE,sBAFP;IAIA2B,WAAW,CAACqC,gBAAZ,CACEhI,EAAE,CAACiI,KAAH,CAASI,gBADX,EAEE,KAAK1E,gBAFP;IAIAgC,WAAW,CAACqC,gBAAZ,CACEhI,EAAE,CAACiI,KAAH,CAASK,eADX,EAEE,KAAK1E,eAFP;EAID;;EAED2C,qBAAqB,CAACZ,WAAD,EAAc;IACjCvE,GAAG,CAACoB,KAAJ,CAAU,uBAAV;IACAmD,WAAW,CAAC4C,mBAAZ,CACEvI,EAAE,CAACiI,KAAH,CAASC,mBADX,EAEE,KAAKpE,wBAFP;IAIA6B,WAAW,CAAC4C,mBAAZ,CACEvI,EAAE,CAACiI,KAAH,CAASE,iBADX,EAEE,KAAKpE,sBAFP;IAIA4B,WAAW,CAAC4C,mBAAZ,CACEvI,EAAE,CAACiI,KAAH,CAASG,iBADX,EAEE,KAAKpE,sBAFP;IAIA2B,WAAW,CAAC4C,mBAAZ,CACEvI,EAAE,CAACiI,KAAH,CAASI,gBADX,EAEE,KAAK1E,gBAFP;IAIAgC,WAAW,CAAC4C,mBAAZ,CACEvI,EAAE,CAACiI,KAAH,CAASK,eADX,EAEE,KAAK1E,eAFP;EAID;;EAEDJ,YAAY,QAAkC;IAAA,IAAjC;MAAEsB,MAAF;MAAUF,YAAV;MAAwB5C;IAAxB,CAAiC;IAC5C,IAAM;MAAEH,IAAI,GAAG,IAAT;MAAeD,IAAI,GAAG;IAAtB,IAA+BkD,MAA/B,aAA+BA,MAA/B,cAA+BA,MAA/B,GAAyC,EAA/C;IACA,IAAIgB,UAAU,GAAG,IAAjB;IACA,IAAIjB,SAAS,GAAG2D,IAAI,CAACC,GAAL,EAAhB;IACA,KAAKC,QAAL,CACE,SAAsE;MAAA,IAArE;QAAEjE,UAAF;QAAcI,SAAS,EAAE8D,aAAzB;QAAwCvD,UAAxC;QAAoDC;MAApD,CAAqE;MACpE;MACA,IAAMuD,MAAM,GACVnE,UAAU,IAAI,IAAd,IACAG,YAAY,KAAKH,UAAU,CAACG,YAD5B,IAEA/C,IAAI,KAAK4C,UAAU,CAAC5C,IAFpB,IAGAD,IAAI,KAAK6C,UAAU,CAAC7C,IAHpB,IAIAI,KAAK,KAAKyC,UAAU,CAACzC,KALvB;MAMA8D,UAAU,GAAG,CAACT,UAAD,IAAeT,YAAf,KAAgC,CAACgE,MAAD,IAAW,CAACxD,UAA5C,CAAb;;MAEA,IAAI,CAACU,UAAL,EAAiB;QACfjB,SAAS,GAAG8D,aAAZ;MACD;;MAED,OAAO;QACLlE,UAAU,EAAE;UACVG,YADU;UAEV/C,IAFU;UAGVD,IAHU;UAIVI,KAJU;UAKV6C;QALU,CADP;QAQLA,SARK;QASLO,UAAU,EAAEwD,MATP;QAULvD,UAAU,EAAE;MAVP,CAAP;IAYD,CA3BH,EA4BE,MAAM;MACJ,IAAIS,UAAJ,EAAgB;QACd,KAAKA,UAAL,CAAgBjE,IAAhB,EAAsBD,IAAtB,EAA4BI,KAA5B,EAAmC6C,SAAnC;MACD;IACF,CAhCH;EAkCD;;EAEDlB,gBAAgB,GAAG;IACjB,KAAK+E,QAAL,CAAc;MACZ1F,KAAK,EAAE,IAAI6F,KAAJ,CAAU,oBAAV,CADK;MAEZvD,cAAc,EAAE,IAFJ;MAGZC,SAAS,EAAE;IAHC,CAAd;EAKD;;EAED3B,eAAe,GAAG;IAChB,KAAK8E,QAAL,CAAc;MAAEpD,cAAc,EAAE,KAAlB;MAAyBtC,KAAK,EAAE;IAAhC,CAAd;EACD;;EAEDc,wBAAwB,GAAG;IACzB,KAAKgF,kBAAL;EACD;;EAED/E,sBAAsB,GAAG;IACvB,KAAKgF,gBAAL;EACD;;EAED/E,sBAAsB,QAAa;IAAA,IAAZ;MAAEgF;IAAF,CAAY;IACjC,KAAKN,QAAL,CAAc;MAAExD,UAAU,EAAE8D;IAAd,CAAd;EACD;;EAEDnF,oBAAoB,GAAG;IACrBzC,GAAG,CAACoB,KAAJ,CAAU,sBAAV;IACA,IAAM;MAAEyG;IAAF,IAAiB,KAAKxH,KAA5B;IACAwH,UAAU,CAACC,IAAX,CACEvI,gBAAgB,CAACwI,eADnB,EAEE,IAFF,EAGE5H,mBAAmB,CAAC6H,aAHtB;EAKD;;EAED1F,qBAAqB,GAAG;IACtB,KAAKU,iBAAL,CAAuBuC,OAAvB,CAA+B0C,WAA/B;EACD;EAED;AACF;AACA;AACA;AACA;;;EACEC,aAAa,CAACvE,KAAD,EAA4B;IAAA;;IAAA,IAApBe,UAAoB,uEAAP,KAAO;;IACvC,IAAI,KAAKI,SAAL,MAAoB,IAAxB,EAA8B;MAC5B9E,GAAG,CAACoB,KAAJ,CAAU,yCAAV,EAAqDuC,KAArD;MACA;IACD,CAJsC,CAKvC;;;IACA,KAAK2D,QAAL,CAAc;MAAErD,UAAU,EAAE,CAACS;IAAf,CAAd,EANuC,CAQvC;IACA;;IACA,8BAAK1B,iBAAL,CAAuBuC,OAAvB,gFAAgC4C,cAAhC,CAA+CxE,KAA/C;EACD;;EAEDe,UAAU,CAACjE,IAAD,EAAOD,IAAP,EAAaI,KAAb,EAAoB6C,SAApB,EAA+B;IAAA;;IACvC,IAAM;MAAEoE;IAAF,IAAiB,KAAKxH,KAA5B;IACA,IAAM+H,aAAa,sBAAG,KAAKtD,SAAL,EAAH,oDAAG,gBAAkB5D,OAAxC;IACA,IAAMmH,eAAe,GAAGD,aAAa,KAAK,IAAlB,GAAyB,EAAzB,GAA8B,CAACA,aAAD,CAAtD;IACApI,GAAG,CAACoB,KAAJ,CAAU,YAAV,EAAwB;MACtBX,IADsB;MAEtBD,IAFsB;MAGtBI,KAHsB;MAItB6C,SAJsB;MAKtB4E;IALsB,CAAxB;IAQAR,UAAU,CAACC,IAAX,CAAgBvI,gBAAgB,CAAC+I,eAAjC,EAAkD,IAAlD,EAAwD;MACtD7H,IADsD;MAEtDD,IAFsD;MAGtDI,KAAK,EAAEA,KAAK,IAAI,IAAT,GAAgBA,KAAhB,GAAwB,OAHuB;MAItD6C,SAJsD;MAKtD4E;IALsD,CAAxD;EAOD;;EAED/D,iBAAiB,GAAG;IAClB,IAAM7C,MAAM,GAAG,KAAKqD,SAAL,EAAf;IACA,IAAMP,WAAW,GAAG,KAAKC,cAAL,EAApB;IACAxE,GAAG,CAACoB,KAAJ,CAAU,mBAAV,EAA+BK,MAA/B,EAAuC8C,WAAvC;IAEA,KAAK+C,QAAL,CAAc;MACZvD,MAAM,EAAE,EADI;MAEZH,WAAW,EAAE,IAFD;MAGZhC,KAAK,EAAE;IAHK,CAAd;;IAMA,IAAIH,MAAM,IAAI,IAAd,EAAoB;MAClBzB,GAAG,CAACoB,KAAJ,CAAU,kBAAV;MACA,KAAKkG,QAAL,CAAc;QACZnD,SAAS,EAAE,KADC;QAEZC,QAAQ,EAAE,IAFE;QAGZZ,YAAY,EAAE,KAHF;QAIZM,UAAU,EAAE;MAJA,CAAd;MAMA;IACD;;IAED,KAAKwD,QAAL,CAAc;MAAEnD,SAAS,EAAE;IAAb,CAAd;;IAEA,IAAII,WAAW,IAAI,IAAnB,EAAyB;MACvB;IACD;;IAED,KAAK+C,QAAL,CAAc;MAAElD,QAAQ,EAAE,KAAZ;MAAmBN,UAAU,EAAES,WAAW,CAACgE;IAA3C,CAAd;IAEA,KAAKpF,OAAL,CACGqF,GADH,CACOjE,WAAW,CAACkE,IAAZ,EADP,EAC2BC,QAAQ,IAAIA,QAAQ,CAACxD,KAAT,EADvC,EAEGyD,IAFH,CAEQ/E,WAAW,IAAI;MACnB;MACA,KAAKgF,sBAAL,CAA4BhF,WAA5B;MACA,KAAK0D,QAAL,CAAc;QAAE1D;MAAF,CAAd;IACD,CANH,EAOGiF,KAPH,CAOSjH,KAAK,IAAI;MACd,IAAIvC,YAAY,CAACyJ,WAAb,CAAyBlH,KAAzB,CAAJ,EAAqC;QACnC;MACD;;MACD5B,GAAG,CAAC4B,KAAJ,CAAUA,KAAV;MACA,KAAK0F,QAAL,CAAc;QAAEnD,SAAS,EAAE,KAAb;QAAoBvC;MAApB,CAAd;IACD,CAbH;EAcD;;EAED+F,gBAAgB,GAAG;IACjB,IAAM;MAAE/D;IAAF,IAAkB,KAAKD,KAA7B;IACA,IAAMY,WAAW,GAAG,KAAKC,cAAL,EAApB;IACAxE,GAAG,CAACoB,KAAJ,CAAU,kBAAV,EAA8BmD,WAAW,CAACwE,IAA1C;;IACA,IAAInF,WAAW,IAAI,IAAnB,EAAyB;MACvB5D,GAAG,CAACoB,KAAJ,CAAU,uBAAV;MACA;IACD;;IACD,IAAM4H,KAAK,GAAG,CAAC,GAAGzE,WAAW,CAACwE,IAAhB,CAAd;IACAnF,WAAW,CAACqF,SAAZ,CAAsBD,KAAtB;IACA,KAAKE,WAAL,CAAiBtF,WAAjB;EACD;;EAED8D,kBAAkB,GAAG;IACnB,IAAM;MAAE9D;IAAF,IAAkB,KAAKD,KAA7B;IACA,IAAMY,WAAW,GAAG,KAAKC,cAAL,EAApB;IACAxE,GAAG,CAACoB,KAAJ,CAAU,oBAAV,EAAgCmD,WAAW,CAAClD,MAA5C;;IACA,IAAIuC,WAAW,IAAI,IAAnB,EAAyB;MACvB5D,GAAG,CAACoB,KAAJ,CAAU,uBAAV;MACA;IACD;;IACD,IAAM+H,OAAO,GAAG,CAAC,GAAG5E,WAAW,CAAClD,MAAhB,CAAhB;IACAuC,WAAW,CAACwF,WAAZ,CAAwBD,OAAxB;IACA,KAAKD,WAAL,CAAiBtF,WAAjB;EACD;;EAEDgF,sBAAsB,CAAChF,WAAD,EAAc;IAClC5D,GAAG,CAACoB,KAAJ,CAAU,wBAAV,EAAoCwC,WAApC,aAAoCA,WAApC,uBAAoCA,WAAW,CAAE2E,IAAjD;;IAEA,IAAI,KAAKnF,OAAT,EAAkB;MAChB,KAAKA,OAAL;IACD;;IAED,IAAIQ,WAAW,IAAI,IAAnB,EAAyB;MACvB,KAAKR,OAAL,GAAe,IAAf;MACA;IACD;;IAED,KAAKA,OAAL,GAAeQ,WAAW,CAACgD,gBAAZ,CACbhI,EAAE,CAACiI,KAAH,CAASwC,aADI,EAEb,KAAKtG,uBAFQ,CAAf;IAKA,KAAKmG,WAAL,CAAiBtF,WAAjB;EACD;;EAEDsF,WAAW,CAACtF,WAAD,EAAc;IACvB,IAAMC,YAAY,GAAG,KAAK6C,eAAL,CAAqB9C,WAArB,CAArB;IACAA,WAAW,CAACsF,WAAZ,CAAwB,CAAxB,EAA2B/I,mBAAmB,CAACiG,cAApB,GAAqC,CAAhE,EAAmE,CACjEvC,YADiE,CAAnE;EAGD;;EAEDoB,uBAAuB,CAAC3B,QAAD,EAAW;IAChC,IAAMC,aAAa,GAAGxE,cAAc,CAACuK,gBAAf,CAAgChG,QAAhC,CAAtB;;IACA,IAAI,CAAC9E,SAAS,CAAC,KAAK+E,aAAN,EAAqBA,aAArB,CAAd,EAAmD;MACjD,KAAKA,aAAL,GAAqBA,aAArB;MACA,KAAK+D,QAAL,CAAc;QAAE/G,SAAS,EAAE,IAAIzB,SAAJ,CAAcyE,aAAd;MAAb,CAAd;IACD;EACF;;EAEDR,uBAAuB,QAAa;IAAA,IAAZ;MAAE6E;IAAF,CAAY;IAClC,IAAM;MAAE2B;IAAF,IAAW3B,MAAjB;IACA,IAAM;MAAEhE;IAAF,IAAkB,KAAKD,KAA7B;IACA,IAAME,YAAY,GAAG,KAAK6C,eAAL,CAAqB9C,WAArB,CAArB;;IACA,IAAI,CAACC,YAAL,EAAmB;MACjB7D,GAAG,CAAC4B,KAAJ,CAAU,yBAAV;MACA;IACD;;IACD,IAAMmC,MAAM,GAAGwF,IAAI,CAAC5I,GAAL,CAAS6I,GAAG,IAAIA,GAAG,CAAC1H,GAAJ,CAAQ+B,YAAR,CAAhB,CAAf;IACA,KAAKyD,QAAL,CAAc;MAAEvD,MAAF;MAAUI,SAAS,EAAE,KAArB;MAA4BC,QAAQ,EAAE,IAAtC;MAA4CP;IAA5C,CAAd;EACD;;EAEDhB,sBAAsB,GAAG;IACvB,IAAM;MAAE4G;IAAF,IAA+B,KAAKpJ,KAA1C;;IACA,IAAI,CAACoJ,wBAAL,EAA+B;MAC7B;IACD;;IACDA,wBAAwB,CAAC,IAAD,EAAOtJ,mBAAmB,CAAC6H,aAA3B,CAAxB;EACD;;EAEDlF,sBAAsB,GAAG;IACvB,IAAM;MAAE2G;IAAF,IAA+B,KAAKpJ,KAA1C;;IACA,IAAI,CAACoJ,wBAAL,EAA+B;MAC7B;IACD;;IACDA,wBAAwB,CAAC,IAAD,EAAO,IAAP,CAAxB;EACD;;EAEDC,MAAM,GAAG;IACP,IAAM;MACJ1H,OADI;MAEJ2H,cAFI;MAGJC,WAHI;MAIJ/B,UAJI;MAKJgC;IALI,IAMF,KAAKxJ,KANT;IAOA,IAAM;MACJqD,MADI;MAEJnD,SAFI;MAGJ2D,cAHI;MAIJV,YAJI;MAKJ5C,KALI;MAMJmD,MANI;MAOJF,YAPI;MAQJM,SARI;MASJC;IATI,IAUF,KAAKT,KAVT;IAYA,IAAMlC,MAAM,GAAG,KAAKqD,SAAL,EAAf;IACA,IAAMgF,oBAAoB,GAAG,KAAK3D,uBAAL,EAA7B;IACA,IAAM4D,iBAAiB,GAAG,KAAK1D,oBAAL,EAA1B;IACA,IAAM2D,eAAe,GACnB5F,QAAQ,IAAIP,YAAY,IAAI,IAA5B,GACI,KAAKoG,eAAL,CAAqBlG,MAArB,EAA6BF,YAA7B,EAA2CtD,SAA3C,CADJ,GAEI,EAHN;IAKA,oBACE,oBAAC,WAAD;MACE,YAAY,EAAEwJ,iBADhB;MAEE,SAAS,EAAE5F,SAFb;MAGE,QAAQ,EAAEC,QAHZ;MAIE,cAAc,EAAEF,cAJlB;MAKE,SAAS,EAAC,4BALZ;MAME,cAAc,EAAE,IANlB;MAOE,WAAW,EAAE0F,WAPf;MAQE,UAAU,EAAE/B,UARd;MASE,iBAAiB,EAAE,KAAKvF,qBAT1B;MAUE,UAAU,EAAC,iBAVb;MAWE,UAAU,EAAC;IAXb,gBAaE;MACE,GAAG,EAAE,KAAKY,cADZ;MAEE,SAAS,EAAC;IAFZ,gBAIE,oBAAC,cAAD;MACE,GAAG,EAAE,KAAKF,iBADZ;MAEE,MAAM,EAAEU,MAFV;MAGE,OAAO,EAAE1B,OAHX;MAIE,YAAY,EAAEwB,YAJhB;MAKE,cAAc,EAAEqG,cALlB;MAME,cAAc,EAAEF,cANlB;MAOE,QAAQ,EAAEvF,QAPZ;MAQE,aAAa,EAAE0F,oBARjB;MASE,MAAM,EAAErI,MATV;MAUE,KAAK,EAAEb,KAVT;MAWE,MAAM,EAAEoJ,eAXV;MAYE,QAAQ,EAAE,KAAK5H,YAZjB;MAaE,gBAAgB,EAAE,KAAKK,oBAbzB;MAcE,kBAAkB,EAAE,KAAKI,sBAd3B;MAeE,kBAAkB,EAAE,KAAKC;IAf3B,EAJF,CAbF,CADF;EAsCD;;AAtlByC;;gBAAtC3C,mB,eACe,qB;;gBADfA,mB,oBAGoB,G;;gBAHpBA,mB,wBAMwB,IAAItB,uBAAJ,CAA4B;EACtDqL,YAAY,EAAE,KADwC;EAEtDC,cAAc,EAAE,IAFsC;EAGtDC,2BAA2B;AAH2B,CAA5B,C;;gBANxBjK,mB,mBAYmBkK,MAAM,CAACC,MAAP,CAAc;EACnC7J,IAAI,EAAE,cAD6B;EAEnCD,IAAI,EAAE;AAF6B,CAAd,C;;AA6kBzBL,mBAAmB,CAACoK,SAApB,GAAgC;EAC9BX,WAAW,EAAElL,WAAW,CAAC8L,SAAZ,CAAsBC,UADL;EAE9B5C,UAAU,EAAEnJ,WAAW,CAACgM,QAAZ,CAAqBD,UAFH;EAG9BpH,UAAU,EAAEhF,SAAS,CAACsM,KAAV,CAAgB;IAC1BlK,IAAI,EAAEpC,SAAS,CAACuM,MADU;IAE1BpK,IAAI,EAAEnC,SAAS,CAACuM,MAFU;IAG1BhK,KAAK,EAAEvC,SAAS,CAACuM,MAHS;IAI1BpH,YAAY,EAAEnF,SAAS,CAACwM;EAJE,CAAhB,CAHkB;EAS9BhB,cAAc,EAAExL,SAAS,CAACwM,IAAV,CAAeJ,UATD;EAU9BzI,OAAO,EAAE3D,SAAS,CAACyM,OAAV,CAAkBzM,SAAS,CAACsM,KAAV,CAAgB,EAAhB,CAAlB,EAAuCF,UAVlB;EAW9BhB,wBAAwB,EAAEpL,SAAS,CAAC0M,IAXN;EAY9BpB,cAAc,EAAEtL,SAAS,CAACwM,IAAV,CAAeJ,UAZD;EAa9BnH,QAAQ,EAAEjF,SAAS,CAACsM,KAAV,CAAgB;IACxBpH,aAAa,EAAElF,SAAS,CAACyM,OAAV,CAAkBzM,SAAS,CAACsM,KAAV,CAAgB,EAAhB,CAAlB;EADS,CAAhB,EAEPF,UAf2B;EAgB9B;EACA5I,aAAa,EAAExD,SAAS,CAAC2M,UAAV,CAAqBC,GAArB,EAA0BR,UAjBX;EAkB9B;EACAzJ,cAAc,EAAEnB,WAAW,CAACqL,KAAZ,CAAkBT;AAnBJ,CAAhC;AAsBAtK,mBAAmB,CAACgL,YAApB,GAAmC;EACjC1B,wBAAwB,EAAE,IADO;EAEjCpG,UAAU,EAAE;AAFqB,CAAnC;AAKAlD,mBAAmB,CAACiL,WAApB,GAAkC,qBAAlC;;AAEA,IAAMC,eAAe,GAAG,CAAC1H,KAAD,EAAQ2H,QAAR,KAAqB;EAC3C,IAAM;IAAEC;EAAF,IAAuBD,QAA7B;EACA,IAAMpK,OAAO,GAAGvC,WAAW,CAACwC,cAAZ,CAA2B;IAAEd,KAAK,EAAEiL;EAAT,CAA3B,CAAhB;EACA,IAAMzJ,aAAa,GAAGjC,uBAAuB,CAAC+D,KAAD,EAAQ4H,gBAAR,CAA7C;EACA,IAAMvK,cAAc,GAAGrB,oBAAoB,CAACgE,KAAD,EAAQ4H,gBAAR,CAA3C;EACA,IAAMC,UAAU,GAAGtM,aAAa,CAACyE,KAAD,CAAhC;EACA,IAAM8H,qBAAqB,GAAG/L,oCAAoC,CAChEiE,KADgE,EAEhE4H,gBAFgE,CAAlE;EAIA,IAAM1B,cAAc,GAClB2B,UAAU,KAAK1L,QAAQ,CAAC4L,MAAxB,KACCD,qBAAqB,KAAKE,SAA1B,IAAuCF,qBAAqB,KAAKvK,OADlE,CADF,CAV2C,CAa3C;;EACA,IAAMyI,cAAc,GAClB6B,UAAU,KAAK1L,QAAQ,CAAC4L,MAAxB,IACAD,qBAAqB,KAAKE,SAD1B,IAEAF,qBAAqB,KAAKvK,OAH5B;EAKA,OAAO;IACLc,OAAO,EAAExC,sBAAsB,CAACmE,KAAD,EAAQ4H,gBAAR,CAD1B;IAEL9B,wBAAwB,EAAEhK,uCAAuC,CAC/DkE,KAD+D,EAE/D4H,gBAF+D,CAF5D;IAML1B,cANK;IAOLF,cAPK;IAQLrG,QAAQ,EAAEnE,WAAW,CAACwE,KAAD,CARhB;IASL9B,aATK;IAULb;EAVK,CAAP;AAYD,CA/BD;;AAiCA,eAAe1C,OAAO,CAAC+M,eAAD,EAAkB,IAAlB,EAAwB,IAAxB,EAA8B;EAAEO,UAAU,EAAE;AAAd,CAA9B,CAAP,CACbzL,mBADa,CAAf"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/panels/FileExplorerPanel.tsx"],"names":["Log","getFileStorage","FileExplorer","FileExplorerToolbar","NewItemModal","React","connect","Panel","NotebookEvent","getDashboardSessionWrapper","log","module","mapStateToProps","state","ownProps","fileStorage","sessionWrapper","localDashboardId","session","config","sessionConfig","language","type","connector","forwardRef","isMouseEvent","e","mouseEvent","button","FileExplorerPanel","Component","handleError","error","isFocusEvent","event","detail","constructor","props","handleFileSelect","bind","handleCreateFile","handleCreateDirectory","handleCreateDirectoryCancel","handleCreateDirectorySubmit","handleDelete","handleRename","handleSessionOpened","handleSessionClosed","handleShow","isShown","showCreateFolder","componentDidMount","isHidden","setState","glEventHub","notebookSettings","value","debug","emit","CREATE_NOTEBOOK","path","createDirectory","catch","files","forEach","file","CLOSE_FILE","id","filename","itemName","shouldFocus","fileMetadata","SELECT_NOTEBOOK","oldName","newName","RENAME_FILE","undefined","glContainer","render"],"mappings":";;AACA,OAAOA,GAAP,MAAgB,gBAAhB;AACA,SAASC,cAAT,QAA0C,kBAA1C;AACA,OAAOC,YAAP,IACEC,mBADF,EAIEC,YAJF,QAKO,0BALP;AAMA,OAAOC,KAAP,MAAiC,OAAjC;AACA,SAASC,OAAT,QAAwC,aAAxC;OACOC,K;SACEC,a;;SAEAC,0B;AAET,IAAMC,GAAG,GAAGV,GAAG,CAACW,MAAJ,CAAW,mBAAX,CAAZ;;AAcA,IAAMC,eAAe,GAAG,CAACC,KAAD,EAAmBC,QAAnB,KAAsD;AAC5E,MAAMC,WAAW,GAAGd,cAAc,CAACY,KAAD,CAAlC;AACA,MAAMG,cAAc,GAAGP,0BAA0B,CAC/CI,KAD+C,EAE/CC,QAAQ,CAACG,gBAFsC,CAAjD;AAIA,MAAM;AAAEC,IAAAA,OAAF;AAAWC,IAAAA,MAAM,EAAEC;AAAnB,MAAqCJ,cAArC,aAAqCA,cAArC,cAAqCA,cAArC,GAAuD,EAA7D;AACA,MAAMK,QAAQ,GAAGD,aAAH,aAAGA,aAAH,uBAAGA,aAAa,CAAEE,IAAhC;AAEA,SAAO;AACLP,IAAAA,WADK;AAELM,IAAAA,QAFK;AAGLH,IAAAA;AAHK,GAAP;AAKD,CAdD;;AAgBA,IAAMK,SAAS,GAAGjB,OAAO,CAACM,eAAD,EAAkB,IAAlB,EAAwB,IAAxB,EAA8B;AAAEY,EAAAA,UAAU,EAAE;AAAd,CAA9B,CAAzB;;AAaA,SAASC,YAAT,CAAyBC,CAAzB,EAA+E;AAC7E,MAAMC,UAAU,GAAGD,CAAnB;AACA,SAAOC,UAAU,IAAI,OAAOA,UAAU,CAACC,MAAlB,KAA6B,QAAlD;AACD;AAED;AACA;AACA;;;AACA,OAAO,MAAMC,iBAAN,SAAgCxB,KAAK,CAACyB,SAAtC,CAGL;AAKkB,SAAXC,WAAW,CAACC,KAAD,EAAqB;AACrCtB,IAAAA,GAAG,CAACsB,KAAJ,CAAUA,KAAV;AACD;AAED;AACF;AACA;AACA;;;AACqB,SAAZC,YAAY,CAACC,KAAD,EAAuC;AACxD,QAAIT,YAAY,CAACS,KAAD,CAAhB,EAAyB;AACvB;AACA,aAAOA,KAAK,CAACC,MAAN,IAAgB,CAAvB;AACD,KAJuD,CAMxD;;;AACA,WAAO,IAAP;AACD;;AAEDC,EAAAA,WAAW,CAACC,KAAD,EAAgC;AACzC,UAAMA,KAAN;AAEA,SAAKC,gBAAL,GAAwB,KAAKA,gBAAL,CAAsBC,IAAtB,CAA2B,IAA3B,CAAxB;AACA,SAAKC,gBAAL,GAAwB,KAAKA,gBAAL,CAAsBD,IAAtB,CAA2B,IAA3B,CAAxB;AACA,SAAKE,qBAAL,GAA6B,KAAKA,qBAAL,CAA2BF,IAA3B,CAAgC,IAAhC,CAA7B;AACA,SAAKG,2BAAL,GAAmC,KAAKA,2BAAL,CAAiCH,IAAjC,CACjC,IADiC,CAAnC;AAGA,SAAKI,2BAAL,GAAmC,KAAKA,2BAAL,CAAiCJ,IAAjC,CACjC,IADiC,CAAnC;AAGA,SAAKK,YAAL,GAAoB,KAAKA,YAAL,CAAkBL,IAAlB,CAAuB,IAAvB,CAApB;AACA,SAAKM,YAAL,GAAoB,KAAKA,YAAL,CAAkBN,IAAlB,CAAuB,IAAvB,CAApB;AACA,SAAKO,mBAAL,GAA2B,KAAKA,mBAAL,CAAyBP,IAAzB,CAA8B,IAA9B,CAA3B;AACA,SAAKQ,mBAAL,GAA2B,KAAKA,mBAAL,CAAyBR,IAAzB,CAA8B,IAA9B,CAA3B;AACA,SAAKS,UAAL,GAAkB,KAAKA,UAAL,CAAgBT,IAAhB,CAAqB,IAArB,CAAlB;AAEA,QAAM;AAAErB,MAAAA,OAAF;AAAWG,MAAAA;AAAX,QAAwBgB,KAA9B;AACA,SAAKxB,KAAL,GAAa;AACXoC,MAAAA,OAAO,EAAE,KADE;AAEX5B,MAAAA,QAFW;AAGXH,MAAAA,OAHW;AAIXgC,MAAAA,gBAAgB,EAAE;AAJP,KAAb;AAMD;;AAEDC,EAAAA,iBAAiB,GAAS;AACxB,QAAI,CAAC,KAAKC,QAAL,EAAL,EAAsB;AACpB,WAAKC,QAAL,CAAc;AAAEJ,QAAAA,OAAO,EAAE;AAAX,OAAd;AACD;AACF;;AAEDT,EAAAA,gBAAgB,GAAS;AACvB,QAAM;AAAEc,MAAAA;AAAF,QAAiB,KAAKjB,KAA5B;AACA,QAAM;AAAEnB,MAAAA,OAAF;AAAWG,MAAAA;AAAX,QAAwB,KAAKR,KAAnC;AACA,QAAM0C,gBAAgB,GAAG;AACvBlC,MAAAA,QADuB;AAEvBmC,MAAAA,KAAK,EAAE;AAFgB,KAAzB;AAIA9C,IAAAA,GAAG,CAAC+C,KAAJ,CAAU,kBAAV,EAA8BvC,OAA9B,EAAuCG,QAAvC,EAAiDkC,gBAAjD;AACAD,IAAAA,UAAU,CAACI,IAAX,CACElD,aAAa,CAACmD,eADhB,EAEEzC,OAFF,EAGEG,QAHF,EAIEkC,gBAJF;AAMD;;AAEDd,EAAAA,qBAAqB,CAACmB,IAAD,EAAsB;AACzC,SAAKP,QAAL,CAAc;AAAEH,MAAAA,gBAAgB,EAAE;AAApB,KAAd;AACD;;AAEDR,EAAAA,2BAA2B,GAAS;AAClChC,IAAAA,GAAG,CAAC+C,KAAJ,CAAU,6BAAV;AACA,SAAKJ,QAAL,CAAc;AACZH,MAAAA,gBAAgB,EAAE;AADN,KAAd;AAGD;;AAEDP,EAAAA,2BAA2B,CAACiB,IAAD,EAAqB;AAC9ClD,IAAAA,GAAG,CAAC+C,KAAJ,CAAU,6BAAV,EAAyCG,IAAzC;AACA,SAAKP,QAAL,CAAc;AAAEH,MAAAA,gBAAgB,EAAE;AAApB,KAAd;AACA,QAAM;AAAEnC,MAAAA;AAAF,QAAkB,KAAKsB,KAA7B;AACAtB,IAAAA,WAAW,CAAC8C,eAAZ,CAA4BD,IAA5B,EAAkCE,KAAlC,CAAwCjC,iBAAiB,CAACE,WAA1D;AACD;;AAEDa,EAAAA,YAAY,CAACmB,KAAD,EAAiC;AAC3C,QAAM;AAAET,MAAAA;AAAF,QAAiB,KAAKjB,KAA5B;AACA0B,IAAAA,KAAK,CAACC,OAAN,CAAcC,IAAI,IAAI;AACpBX,MAAAA,UAAU,CAACI,IAAX,CAAgBlD,aAAa,CAAC0D,UAA9B,EAA0C;AACxCC,QAAAA,EAAE,EAAEF,IAAI,CAACG,QAD+B;AAExCC,QAAAA,QAAQ,EAAEJ,IAAI,CAACG;AAFyB,OAA1C;AAID,KALD;AAMD;;AAED9B,EAAAA,gBAAgB,CAAC2B,IAAD,EAAwB/B,KAAxB,EAA2D;AACzExB,IAAAA,GAAG,CAAC+C,KAAJ,CAAU,YAAV,EAAwBQ,IAAxB;;AACA,QAAIA,IAAI,CAAC3C,IAAL,KAAc,WAAlB,EAA+B;AAC7B;AACD;;AAED,QAAMgD,WAAW,GAAGzC,iBAAiB,CAACI,YAAlB,CAA+BC,KAA/B,CAApB;AACA,QAAMqC,YAAY,GAAG;AAAEJ,MAAAA,EAAE,EAAEF,IAAI,CAACG,QAAX;AAAqBC,MAAAA,QAAQ,EAAEJ,IAAI,CAACG;AAApC,KAArB;AACA,QAAM;AAAEd,MAAAA;AAAF,QAAiB,KAAKjB,KAA5B;AACA,QAAM;AAAEnB,MAAAA,OAAF;AAAWG,MAAAA;AAAX,QAAwB,KAAKR,KAAnC;AACA,QAAM0C,gBAAgB,GAAG;AACvBC,MAAAA,KAAK,EAAE,IADgB;AAEvBnC,MAAAA;AAFuB,KAAzB;AAIAiC,IAAAA,UAAU,CAACI,IAAX,CACElD,aAAa,CAACgE,eADhB,EAEEtD,OAFF,EAGEG,QAHF,EAIEkC,gBAJF,EAKEgB,YALF,EAMED,WANF;AAQD;;AAEDzB,EAAAA,YAAY,CAAC4B,OAAD,EAAkBC,OAAlB,EAAyC;AACnD,QAAM;AAAEpB,MAAAA;AAAF,QAAiB,KAAKjB,KAA5B;AACA3B,IAAAA,GAAG,CAAC+C,KAAJ,CAAU,cAAV,EAA0BgB,OAA1B,EAAmCC,OAAnC;AACApB,IAAAA,UAAU,CAACI,IAAX,CAAgBlD,aAAa,CAACmE,WAA9B,EAA2CF,OAA3C,EAAoDC,OAApD;AACD;;AAED5B,EAAAA,mBAAmB,CACjB5B,OADiB,QAGX;AAAA,QADN;AAAEG,MAAAA;AAAF,KACM;AACN,SAAKgC,QAAL,CAAc;AACZnC,MAAAA,OADY;AAEZG,MAAAA;AAFY,KAAd;AAID;;AAED0B,EAAAA,mBAAmB,GAAS;AAC1B,SAAKM,QAAL,CAAc;AACZnC,MAAAA,OAAO,EAAE0D,SADG;AAEZvD,MAAAA,QAAQ,EAAEuD;AAFE,KAAd;AAID;;AAED5B,EAAAA,UAAU,GAAS;AACjB,SAAKK,QAAL,CAAc;AAAEJ,MAAAA,OAAO,EAAE;AAAX,KAAd;AACD;;AAEDG,EAAAA,QAAQ,GAAY;AAClB,QAAM;AAAEyB,MAAAA;AAAF,QAAkB,KAAKxC,KAA7B;AACA,QAAM;AAAEe,MAAAA;AAAF,QAAeyB,WAArB;AACA,WAAOzB,QAAP;AACD;;AAED0B,EAAAA,MAAM,GAAc;AAClB,QAAM;AAAE/D,MAAAA,WAAF;AAAe8D,MAAAA,WAAf;AAA4BvB,MAAAA;AAA5B,QAA2C,KAAKjB,KAAtD;AACA,QAAM;AAAEY,MAAAA,OAAF;AAAWC,MAAAA;AAAX,QAAgC,KAAKrC,KAA3C;AACA,wBACE,oBAAC,KAAD;AACE,MAAA,SAAS,EAAC,qBADZ;AAEE,MAAA,cAAc,EAAE,IAFlB;AAGE,MAAA,WAAW,EAAEgE,WAHf;AAIE,MAAA,UAAU,EAAEvB,UAJd;AAKE,MAAA,aAAa,EAAE,KAAKR,mBALtB;AAME,MAAA,cAAc,EAAE,KAAKC,mBANvB;AAOE,MAAA,MAAM,EAAE,KAAKC;AAPf,oBASE,oBAAC,mBAAD;AACE,MAAA,UAAU,EAAE,KAAKR,gBADnB;AAEE,MAAA,YAAY,EAAE,KAAKC;AAFrB,MATF,EAaGQ,OAAO,iBACN,oBAAC,YAAD;AACE,MAAA,aAAa,MADf;AAEE,MAAA,OAAO,EAAElC,WAFX;AAGE,MAAA,QAAQ,EAAE,KAAK6B,YAHjB;AAIE,MAAA,QAAQ,EAAE,KAAKC,YAJjB;AAKE,MAAA,QAAQ,EAAE,KAAKP;AALjB,MAdJ,eAsBE,oBAAC,YAAD;AACE,MAAA,MAAM,EAAEY,gBADV;AAEE,MAAA,IAAI,EAAC,WAFP;AAGE,MAAA,KAAK,EAAC,mBAHR;AAIE,MAAA,OAAO,EAAEnC,WAJX;AAKE,MAAA,QAAQ,EAAE,KAAK4B,2BALjB;AAME,MAAA,QAAQ,EAAE,KAAKD;AANjB,MAtBF,CADF;AAiCD;;AAjMD;;gBAHWb,iB,eAIQ,mB;;gBAJRA,iB,WAMI,e;;AAiMjB,eAAeN,SAAS,CAACM,iBAAD,CAAxB","sourcesContent":["import { DashboardPanelProps } from '@deephaven/dashboard';\nimport Log from '@deephaven/log';\nimport { getFileStorage, RootState } from '@deephaven/redux';\nimport FileExplorer, {\n FileExplorerToolbar,\n FileStorage,\n FileStorageItem,\n NewItemModal,\n} from '@deephaven/file-explorer';\nimport React, { ReactNode } from 'react';\nimport { connect, ConnectedProps } from 'react-redux';\nimport Panel from './Panel';\nimport { NotebookEvent } from '../events';\nimport './FileExplorerPanel.scss';\nimport { getDashboardSessionWrapper } from '../redux';\n\nconst log = Log.module('FileExplorerPanel');\n\ntype DhSession = {\n close: () => void;\n};\n\ntype StateProps = {\n fileStorage: FileStorage;\n language: string;\n session?: DhSession;\n};\n\ntype OwnProps = DashboardPanelProps;\n\nconst mapStateToProps = (state: RootState, ownProps: OwnProps): StateProps => {\n const fileStorage = getFileStorage(state);\n const sessionWrapper = getDashboardSessionWrapper(\n state,\n ownProps.localDashboardId\n );\n const { session, config: sessionConfig } = sessionWrapper ?? {};\n const language = sessionConfig?.type;\n\n return {\n fileStorage,\n language,\n session,\n };\n};\n\nconst connector = connect(mapStateToProps, null, null, { forwardRef: true });\n\nexport type FileExplorerPanelProps = OwnProps &\n StateProps &\n ConnectedProps<typeof connector>;\n\nexport type FileExplorerPanelState = {\n isShown: boolean;\n language?: string;\n session?: DhSession;\n showCreateFolder: boolean;\n};\n\nfunction isMouseEvent<T>(e: React.SyntheticEvent<T>): e is React.MouseEvent<T> {\n const mouseEvent = e as React.MouseEvent<T>;\n return mouseEvent && typeof mouseEvent.button === 'number';\n}\n\n/**\n * Panel for showing a FileExplorer in a Dashboard.\n */\nexport class FileExplorerPanel extends React.Component<\n FileExplorerPanelProps,\n FileExplorerPanelState\n> {\n static COMPONENT = 'FileExplorerPanel';\n\n static TITLE = 'File Explorer';\n\n static handleError(error: Error): void {\n log.error(error);\n }\n\n /**\n * Return true if the event should open a file and focus it, otherwise false\n * @param event The event to check\n */\n static isFocusEvent(event: React.SyntheticEvent): boolean {\n if (isMouseEvent(event)) {\n // If it's not a double click, then it's a preview event\n return event.detail >= 2;\n }\n\n // Keyboard event should always open with focus\n return true;\n }\n\n constructor(props: FileExplorerPanelProps) {\n super(props);\n\n this.handleFileSelect = this.handleFileSelect.bind(this);\n this.handleCreateFile = this.handleCreateFile.bind(this);\n this.handleCreateDirectory = this.handleCreateDirectory.bind(this);\n this.handleCreateDirectoryCancel = this.handleCreateDirectoryCancel.bind(\n this\n );\n this.handleCreateDirectorySubmit = this.handleCreateDirectorySubmit.bind(\n this\n );\n this.handleDelete = this.handleDelete.bind(this);\n this.handleRename = this.handleRename.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n this.handleShow = this.handleShow.bind(this);\n\n const { session, language } = props;\n this.state = {\n isShown: false,\n language,\n session,\n showCreateFolder: false,\n };\n }\n\n componentDidMount(): void {\n if (!this.isHidden()) {\n this.setState({ isShown: true });\n }\n }\n\n handleCreateFile(): void {\n const { glEventHub } = this.props;\n const { session, language } = this.state;\n const notebookSettings = {\n language,\n value: '',\n };\n log.debug('handleCreateFile', session, language, notebookSettings);\n glEventHub.emit(\n NotebookEvent.CREATE_NOTEBOOK,\n session,\n language,\n notebookSettings\n );\n }\n\n handleCreateDirectory(path?: string): void {\n this.setState({ showCreateFolder: true });\n }\n\n handleCreateDirectoryCancel(): void {\n log.debug('handleCreateDirectoryCancel');\n this.setState({\n showCreateFolder: false,\n });\n }\n\n handleCreateDirectorySubmit(path: string): void {\n log.debug('handleCreateDirectorySubmit', path);\n this.setState({ showCreateFolder: false });\n const { fileStorage } = this.props;\n fileStorage.createDirectory(path).catch(FileExplorerPanel.handleError);\n }\n\n handleDelete(files: FileStorageItem[]): void {\n const { glEventHub } = this.props;\n files.forEach(file => {\n glEventHub.emit(NotebookEvent.CLOSE_FILE, {\n id: file.filename,\n itemName: file.filename,\n });\n });\n }\n\n handleFileSelect(file: FileStorageItem, event: React.SyntheticEvent): void {\n log.debug('fileSelect', file);\n if (file.type === 'directory') {\n return;\n }\n\n const shouldFocus = FileExplorerPanel.isFocusEvent(event);\n const fileMetadata = { id: file.filename, itemName: file.filename };\n const { glEventHub } = this.props;\n const { session, language } = this.state;\n const notebookSettings = {\n value: null,\n language,\n };\n glEventHub.emit(\n NotebookEvent.SELECT_NOTEBOOK,\n session,\n language,\n notebookSettings,\n fileMetadata,\n shouldFocus\n );\n }\n\n handleRename(oldName: string, newName: string): void {\n const { glEventHub } = this.props;\n log.debug('handleRename', oldName, newName);\n glEventHub.emit(NotebookEvent.RENAME_FILE, oldName, newName);\n }\n\n handleSessionOpened(\n session: DhSession,\n { language }: { language: string }\n ): void {\n this.setState({\n session,\n language,\n });\n }\n\n handleSessionClosed(): void {\n this.setState({\n session: undefined,\n language: undefined,\n });\n }\n\n handleShow(): void {\n this.setState({ isShown: true });\n }\n\n isHidden(): boolean {\n const { glContainer } = this.props;\n const { isHidden } = glContainer;\n return isHidden;\n }\n\n render(): ReactNode {\n const { fileStorage, glContainer, glEventHub } = this.props;\n const { isShown, showCreateFolder } = this.state;\n return (\n <Panel\n className=\"file-explorer-panel\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onSessionOpen={this.handleSessionOpened}\n onSessionClose={this.handleSessionClosed}\n onShow={this.handleShow}\n >\n <FileExplorerToolbar\n createFile={this.handleCreateFile}\n createFolder={this.handleCreateDirectory}\n />\n {isShown && (\n <FileExplorer\n isMultiSelect\n storage={fileStorage}\n onDelete={this.handleDelete}\n onRename={this.handleRename}\n onSelect={this.handleFileSelect}\n />\n )}\n <NewItemModal\n isOpen={showCreateFolder}\n type=\"directory\"\n title=\"Create New Folder\"\n storage={fileStorage}\n onSubmit={this.handleCreateDirectorySubmit}\n onCancel={this.handleCreateDirectoryCancel}\n />\n </Panel>\n );\n }\n}\n\nexport default connector(FileExplorerPanel);\n"],"file":"FileExplorerPanel.js"}
1
+ {"version":3,"file":"FileExplorerPanel.js","names":["Log","getFileStorage","FileExplorer","FileExplorerToolbar","NewItemModal","React","connect","Panel","NotebookEvent","getDashboardSessionWrapper","log","module","mapStateToProps","state","ownProps","fileStorage","sessionWrapper","localDashboardId","session","config","sessionConfig","language","type","connector","forwardRef","isMouseEvent","e","mouseEvent","button","FileExplorerPanel","Component","handleError","error","isFocusEvent","event","detail","constructor","props","handleFileSelect","bind","handleCreateFile","handleCreateDirectory","handleCreateDirectoryCancel","handleCreateDirectorySubmit","handleDelete","handleRename","handleSessionOpened","handleSessionClosed","handleShow","isShown","showCreateFolder","componentDidMount","isHidden","setState","glEventHub","notebookSettings","value","debug","emit","CREATE_NOTEBOOK","path","createDirectory","catch","files","forEach","file","CLOSE_FILE","id","filename","itemName","shouldFocus","fileMetadata","SELECT_NOTEBOOK","oldName","newName","RENAME_FILE","undefined","glContainer","render"],"sources":["../../src/panels/FileExplorerPanel.tsx"],"sourcesContent":["import { DashboardPanelProps } from '@deephaven/dashboard';\nimport Log from '@deephaven/log';\nimport { getFileStorage, RootState } from '@deephaven/redux';\nimport FileExplorer, {\n FileExplorerToolbar,\n FileStorage,\n FileStorageItem,\n NewItemModal,\n} from '@deephaven/file-explorer';\nimport React, { ReactNode } from 'react';\nimport { connect, ConnectedProps } from 'react-redux';\nimport Panel from './Panel';\nimport { NotebookEvent } from '../events';\nimport './FileExplorerPanel.scss';\nimport { getDashboardSessionWrapper } from '../redux';\n\nconst log = Log.module('FileExplorerPanel');\n\ntype DhSession = {\n close: () => void;\n};\n\ntype StateProps = {\n fileStorage: FileStorage;\n language: string;\n session?: DhSession;\n};\n\ntype OwnProps = DashboardPanelProps;\n\nconst mapStateToProps = (state: RootState, ownProps: OwnProps): StateProps => {\n const fileStorage = getFileStorage(state);\n const sessionWrapper = getDashboardSessionWrapper(\n state,\n ownProps.localDashboardId\n );\n const { session, config: sessionConfig } = sessionWrapper ?? {};\n const language = sessionConfig?.type;\n\n return {\n fileStorage,\n language,\n session,\n };\n};\n\nconst connector = connect(mapStateToProps, null, null, { forwardRef: true });\n\nexport type FileExplorerPanelProps = OwnProps &\n StateProps &\n ConnectedProps<typeof connector>;\n\nexport type FileExplorerPanelState = {\n isShown: boolean;\n language?: string;\n session?: DhSession;\n showCreateFolder: boolean;\n};\n\nfunction isMouseEvent<T>(e: React.SyntheticEvent<T>): e is React.MouseEvent<T> {\n const mouseEvent = e as React.MouseEvent<T>;\n return mouseEvent && typeof mouseEvent.button === 'number';\n}\n\n/**\n * Panel for showing a FileExplorer in a Dashboard.\n */\nexport class FileExplorerPanel extends React.Component<\n FileExplorerPanelProps,\n FileExplorerPanelState\n> {\n static COMPONENT = 'FileExplorerPanel';\n\n static TITLE = 'File Explorer';\n\n static handleError(error: Error): void {\n log.error(error);\n }\n\n /**\n * Return true if the event should open a file and focus it, otherwise false\n * @param event The event to check\n */\n static isFocusEvent(event: React.SyntheticEvent): boolean {\n if (isMouseEvent(event)) {\n // If it's not a double click, then it's a preview event\n return event.detail >= 2;\n }\n\n // Keyboard event should always open with focus\n return true;\n }\n\n constructor(props: FileExplorerPanelProps) {\n super(props);\n\n this.handleFileSelect = this.handleFileSelect.bind(this);\n this.handleCreateFile = this.handleCreateFile.bind(this);\n this.handleCreateDirectory = this.handleCreateDirectory.bind(this);\n this.handleCreateDirectoryCancel = this.handleCreateDirectoryCancel.bind(\n this\n );\n this.handleCreateDirectorySubmit = this.handleCreateDirectorySubmit.bind(\n this\n );\n this.handleDelete = this.handleDelete.bind(this);\n this.handleRename = this.handleRename.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n this.handleShow = this.handleShow.bind(this);\n\n const { session, language } = props;\n this.state = {\n isShown: false,\n language,\n session,\n showCreateFolder: false,\n };\n }\n\n componentDidMount(): void {\n if (!this.isHidden()) {\n this.setState({ isShown: true });\n }\n }\n\n handleCreateFile(): void {\n const { glEventHub } = this.props;\n const { session, language } = this.state;\n const notebookSettings = {\n language,\n value: '',\n };\n log.debug('handleCreateFile', session, language, notebookSettings);\n glEventHub.emit(\n NotebookEvent.CREATE_NOTEBOOK,\n session,\n language,\n notebookSettings\n );\n }\n\n handleCreateDirectory(path?: string): void {\n this.setState({ showCreateFolder: true });\n }\n\n handleCreateDirectoryCancel(): void {\n log.debug('handleCreateDirectoryCancel');\n this.setState({\n showCreateFolder: false,\n });\n }\n\n handleCreateDirectorySubmit(path: string): void {\n log.debug('handleCreateDirectorySubmit', path);\n this.setState({ showCreateFolder: false });\n const { fileStorage } = this.props;\n fileStorage.createDirectory(path).catch(FileExplorerPanel.handleError);\n }\n\n handleDelete(files: FileStorageItem[]): void {\n const { glEventHub } = this.props;\n files.forEach(file => {\n glEventHub.emit(NotebookEvent.CLOSE_FILE, {\n id: file.filename,\n itemName: file.filename,\n });\n });\n }\n\n handleFileSelect(file: FileStorageItem, event: React.SyntheticEvent): void {\n log.debug('fileSelect', file);\n if (file.type === 'directory') {\n return;\n }\n\n const shouldFocus = FileExplorerPanel.isFocusEvent(event);\n const fileMetadata = { id: file.filename, itemName: file.filename };\n const { glEventHub } = this.props;\n const { session, language } = this.state;\n const notebookSettings = {\n value: null,\n language,\n };\n glEventHub.emit(\n NotebookEvent.SELECT_NOTEBOOK,\n session,\n language,\n notebookSettings,\n fileMetadata,\n shouldFocus\n );\n }\n\n handleRename(oldName: string, newName: string): void {\n const { glEventHub } = this.props;\n log.debug('handleRename', oldName, newName);\n glEventHub.emit(NotebookEvent.RENAME_FILE, oldName, newName);\n }\n\n handleSessionOpened(\n session: DhSession,\n { language }: { language: string }\n ): void {\n this.setState({\n session,\n language,\n });\n }\n\n handleSessionClosed(): void {\n this.setState({\n session: undefined,\n language: undefined,\n });\n }\n\n handleShow(): void {\n this.setState({ isShown: true });\n }\n\n isHidden(): boolean {\n const { glContainer } = this.props;\n const { isHidden } = glContainer;\n return isHidden;\n }\n\n render(): ReactNode {\n const { fileStorage, glContainer, glEventHub } = this.props;\n const { isShown, showCreateFolder } = this.state;\n return (\n <Panel\n className=\"file-explorer-panel\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onSessionOpen={this.handleSessionOpened}\n onSessionClose={this.handleSessionClosed}\n onShow={this.handleShow}\n >\n <FileExplorerToolbar\n createFile={this.handleCreateFile}\n createFolder={this.handleCreateDirectory}\n />\n {isShown && (\n <FileExplorer\n isMultiSelect\n storage={fileStorage}\n onDelete={this.handleDelete}\n onRename={this.handleRename}\n onSelect={this.handleFileSelect}\n />\n )}\n <NewItemModal\n isOpen={showCreateFolder}\n type=\"directory\"\n title=\"Create New Folder\"\n storage={fileStorage}\n onSubmit={this.handleCreateDirectorySubmit}\n onCancel={this.handleCreateDirectoryCancel}\n />\n </Panel>\n );\n }\n}\n\nexport default connector(FileExplorerPanel);\n"],"mappings":"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"}