@deephaven/dashboard-core-plugins 0.38.1-beta.9 → 0.38.1-deglobalized-jsapi.15

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 (44) hide show
  1. package/dist/ChartBuilderPlugin.d.ts.map +1 -1
  2. package/dist/ChartBuilderPlugin.js +3 -1
  3. package/dist/ChartBuilderPlugin.js.map +1 -1
  4. package/dist/GridPlugin.d.ts.map +1 -1
  5. package/dist/GridPlugin.js +6 -4
  6. package/dist/GridPlugin.js.map +1 -1
  7. package/dist/PandasPlugin.d.ts.map +1 -1
  8. package/dist/PandasPlugin.js +3 -1
  9. package/dist/PandasPlugin.js.map +1 -1
  10. package/dist/controls/dropdown-filter/DropdownFilter.d.ts +1 -1
  11. package/dist/controls/dropdown-filter/DropdownFilter.d.ts.map +1 -1
  12. package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
  13. package/dist/controls/input-filter/InputFilter.d.ts +1 -1
  14. package/dist/controls/input-filter/InputFilter.d.ts.map +1 -1
  15. package/dist/controls/input-filter/InputFilter.js.map +1 -1
  16. package/dist/panels/CommandHistoryPanel.d.ts +1 -1
  17. package/dist/panels/CommandHistoryPanel.d.ts.map +1 -1
  18. package/dist/panels/CommandHistoryPanel.js.map +1 -1
  19. package/dist/panels/ConsolePanel.d.ts +1 -1
  20. package/dist/panels/ConsolePanel.d.ts.map +1 -1
  21. package/dist/panels/ConsolePanel.js +3 -1
  22. package/dist/panels/ConsolePanel.js.map +1 -1
  23. package/dist/panels/FileExplorerPanel.d.ts +1 -1
  24. package/dist/panels/FileExplorerPanel.d.ts.map +1 -1
  25. package/dist/panels/FileExplorerPanel.js.map +1 -1
  26. package/dist/panels/FilterSetManagerPanel.d.ts +1 -1
  27. package/dist/panels/FilterSetManagerPanel.d.ts.map +1 -1
  28. package/dist/panels/FilterSetManagerPanel.js.map +1 -1
  29. package/dist/panels/LogPanel.d.ts +1 -1
  30. package/dist/panels/LogPanel.d.ts.map +1 -1
  31. package/dist/panels/LogPanel.js.map +1 -1
  32. package/dist/panels/NotebookPanel.d.ts +1 -1
  33. package/dist/panels/NotebookPanel.d.ts.map +1 -1
  34. package/dist/panels/NotebookPanel.js.map +1 -1
  35. package/dist/panels/Panel.d.ts +1 -1
  36. package/dist/panels/Panel.d.ts.map +1 -1
  37. package/dist/panels/Panel.js.map +1 -1
  38. package/dist/redux/actions.d.ts +1 -1
  39. package/dist/redux/actions.d.ts.map +1 -1
  40. package/dist/redux/actions.js.map +1 -1
  41. package/dist/redux/selectors.d.ts +1 -1
  42. package/dist/redux/selectors.d.ts.map +1 -1
  43. package/dist/redux/selectors.js.map +1 -1
  44. package/package.json +23 -23
@@ -1 +1 @@
1
- {"version":3,"file":"ConsolePanel.d.ts","sourceRoot":"","sources":["../../src/panels/ConsolePanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConsolePanel.d.ts","sourceRoot":"","sources":["../../src/panels/ConsolePanel.tsx"],"names":[],"mappings":"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"}
@@ -307,7 +307,8 @@ export class ConsolePanel extends PureComponent {
307
307
  config,
308
308
  session,
309
309
  connection,
310
- details = {}
310
+ details = {},
311
+ dh
311
312
  } = sessionWrapper;
312
313
  var {
313
314
  workerName,
@@ -327,6 +328,7 @@ export class ConsolePanel extends PureComponent {
327
328
  onTabFocus: this.handleTabFocus,
328
329
  errorMessage: error != null ? "".concat(error) : undefined
329
330
  }, session != null && /*#__PURE__*/React.createElement(Console, {
331
+ dh: dh,
330
332
  ref: this.consoleRef,
331
333
  settings: consoleSettings,
332
334
  session: session,
@@ -1 +1 @@
1
- {"version":3,"file":"ConsolePanel.js","names":["React","PureComponent","shortid","debounce","connect","Console","ConsoleConstants","HeapUsage","PanelEvent","Log","getCommandHistoryStorage","getTimeZone","assertNotNull","ConsoleEvent","Panel","getDashboardSessionWrapper","log","module","DEBOUNCE_PANEL_STATE_UPDATE","DEFAULT_PANEL_STATE","Object","freeze","consoleSettings","itemIds","ConsolePanel","constructor","props","state","panelState","debug","setState","handleFocusCommandHistory","bind","handleOpenObject","handleCloseObject","handleResize","handleSettingsChange","handleShow","handlePanelMount","consoleRef","createRef","initialPanelState","Map","objectMap","error","undefined","componentDidMount","glEventHub","closeDisconnectedPanels","on","MOUNT","subscribeToFieldUpdates","componentDidUpdate","prevProps","prevState","savePanelState","componentWillUnmount","flush","off","objectSubscriptionCleanup","sessionWrapper","session","updates","updated","created","removed","objectsToRemove","newObjectMap","forEach","toRemove","title","delete","objectsToAdd","toAdd","set","setItemId","name","id","newItemIds","getItemId","createIfNecessary","get","generate","handleTabFocus","current","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","force","isClosePanelsOnDisconnectEnabled","panelIdsToClose","render","commandHistoryStorage","glContainer","timeZone","unzip","config","connection","details","workerName","processInfoId","sessionId","type","language","LANGUAGE_MAP","mapStateToProps","ownProps","localDashboardId","ConnectedConsolePanel","forwardRef"],"sources":["../../src/panels/ConsolePanel.tsx"],"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, ReactElement, RefObject } from 'react';\nimport shortid from 'shortid';\nimport debounce from 'lodash.debounce';\nimport { connect } from 'react-redux';\nimport {\n CommandHistoryStorage,\n Console,\n ConsoleConstants,\n HeapUsage,\n} from '@deephaven/console';\nimport { PanelEvent } from '@deephaven/dashboard';\nimport { IdeSession, VariableDefinition } from '@deephaven/jsapi-shim';\nimport { SessionWrapper } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport {\n getCommandHistoryStorage,\n getTimeZone,\n RootState,\n} from '@deephaven/redux';\nimport type { Container, EventEmitter } from '@deephaven/golden-layout';\nimport { assertNotNull } from '@deephaven/utils';\nimport type { JSZipObject } from 'jszip';\nimport { ConsoleEvent } from '../events';\nimport Panel from './Panel';\nimport { getDashboardSessionWrapper } from '../redux';\nimport './ConsolePanel.scss';\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\ninterface ConsoleSettings {\n isClosePanelsOnDisconnectEnabled?: boolean;\n}\n\ninterface PanelState {\n consoleSettings: ConsoleSettings;\n itemIds: [string, string][];\n}\n\ntype ItemIds = Map<string, string>;\n\ninterface ConsolePanelProps {\n commandHistoryStorage: CommandHistoryStorage;\n glContainer: Container;\n glEventHub: EventEmitter;\n\n panelState?: PanelState;\n\n sessionWrapper: SessionWrapper;\n\n timeZone: string;\n unzip?: (file: File) => Promise<JSZipObject[]>;\n}\n\ninterface ConsolePanelState {\n consoleSettings: ConsoleSettings;\n itemIds: ItemIds;\n\n objectMap: Map<string, VariableDefinition>;\n\n // eslint-disable-next-line react/no-unused-state\n panelState: PanelState;\n error: unknown;\n}\n\nexport class ConsolePanel extends PureComponent<\n ConsolePanelProps,\n ConsolePanelState\n> {\n static COMPONENT = 'ConsolePanel';\n\n static TITLE = 'Console';\n\n constructor(props: ConsolePanelProps) {\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.handlePanelMount = this.handlePanelMount.bind(this);\n\n this.consoleRef = React.createRef();\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 error: undefined,\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n componentDidMount(): void {\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(\n prevProps: ConsolePanelProps,\n prevState: ConsolePanelState\n ): void {\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(): void {\n const { glEventHub } = this.props;\n this.savePanelState.flush();\n glEventHub.off(PanelEvent.MOUNT, this.handlePanelMount);\n this.objectSubscriptionCleanup?.();\n }\n\n consoleRef: RefObject<Console>;\n\n objectSubscriptionCleanup?: () => void;\n\n subscribeToFieldUpdates(): void {\n const { sessionWrapper } = this.props;\n const { session } = sessionWrapper;\n\n this.objectSubscriptionCleanup = session.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 const { title } = toRemove;\n if (title !== undefined) {\n newObjectMap.delete(title);\n }\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.title !== undefined) {\n newObjectMap.set(toAdd.title, toAdd);\n }\n });\n\n return { objectMap: newObjectMap };\n });\n }\n );\n }\n\n setItemId(name: string, id: string): void {\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: string, createIfNecessary = true): string | undefined {\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 handleTabFocus(): void {\n this.consoleRef.current?.focus();\n }\n\n handlePanelMount(panel: {\n props: { id: string; metadata: { sourcePanelId: string } };\n }): void {\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(): void {\n const { glEventHub } = this.props;\n glEventHub.emit(ConsoleEvent.FOCUS_HISTORY);\n }\n\n handleResize(): void {\n this.updateDimensions();\n }\n\n handleShow(): void {\n this.updateDimensions();\n }\n\n handleOpenObject(object: VariableDefinition): void {\n const { sessionWrapper } = this.props;\n const { session } = sessionWrapper;\n this.openWidget(object, session);\n }\n\n handleCloseObject(object: VariableDefinition): void {\n const { title } = object;\n if (title !== undefined) {\n const id = this.getItemId(title, false);\n const { glEventHub } = this.props;\n glEventHub.emit(PanelEvent.CLOSE, id);\n }\n }\n\n handleSettingsChange(consoleSettings: Record<string, unknown>): void {\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 widget The widget to open\n * @param session The session object\n */\n openWidget(widget: VariableDefinition, session: IdeSession): void {\n const { glEventHub } = this.props;\n const { title } = widget;\n assertNotNull(title);\n const panelId = this.getItemId(title);\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: string, focus = true, execute = false): void {\n this.consoleRef.current?.addCommand(command, focus, execute);\n }\n\n /**\n * Close the disconnected panels from this session\n * @param force True to force the panels closed regardless of the current setting\n */\n closeDisconnectedPanels(force = false): void {\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 = debounce((): void => {\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 }, DEBOUNCE_PANEL_STATE_UPDATE);\n\n updateDimensions(): void {\n this.consoleRef.current?.updateDimensions();\n }\n\n render(): ReactElement {\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, connection, details = {} } = sessionWrapper;\n const { workerName, processInfoId } = details;\n const { id: sessionId, type: language } = config;\n\n return (\n <Panel\n className=\"iris-panel-console\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onResize={this.handleResize}\n onShow={this.handleShow}\n onTabFocus={this.handleTabFocus}\n errorMessage={error != null ? `${error}` : undefined}\n >\n {session != null && (\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 {workerName != null && (\n <>\n <div>&nbsp;•&nbsp;</div>\n {workerName}\n </>\n )}\n {processInfoId != null && (\n <>\n <div>&nbsp;•&nbsp;</div>\n {processInfoId}\n <div>&nbsp;•</div>\n </>\n )}\n <div>&nbsp;</div>\n <div>\n <HeapUsage\n connection={connection}\n defaultUpdateInterval={10 * 1000}\n hoverUpdateInterval={3 * 1000}\n monitorDuration={10 * 60 * 1000}\n />\n </div>\n <div>&nbsp;</div>\n </>\n }\n scope={sessionId}\n timeZone={timeZone}\n objectMap={objectMap}\n unzip={unzip}\n />\n )}\n </Panel>\n );\n }\n}\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: { localDashboardId: string }\n) => ({\n commandHistoryStorage: getCommandHistoryStorage(\n state\n ) as CommandHistoryStorage,\n sessionWrapper: getDashboardSessionWrapper(state, ownProps.localDashboardId),\n timeZone: getTimeZone(state),\n});\n\nconst ConnectedConsolePanel = connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(ConsolePanel);\n\nexport default ConnectedConsolePanel;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ConsolePanel.js","names":["React","PureComponent","shortid","debounce","connect","Console","ConsoleConstants","HeapUsage","PanelEvent","Log","getCommandHistoryStorage","getTimeZone","assertNotNull","ConsoleEvent","Panel","getDashboardSessionWrapper","log","module","DEBOUNCE_PANEL_STATE_UPDATE","DEFAULT_PANEL_STATE","Object","freeze","consoleSettings","itemIds","ConsolePanel","constructor","props","state","panelState","debug","setState","handleFocusCommandHistory","bind","handleOpenObject","handleCloseObject","handleResize","handleSettingsChange","handleShow","handlePanelMount","consoleRef","createRef","initialPanelState","Map","objectMap","error","undefined","componentDidMount","glEventHub","closeDisconnectedPanels","on","MOUNT","subscribeToFieldUpdates","componentDidUpdate","prevProps","prevState","savePanelState","componentWillUnmount","flush","off","objectSubscriptionCleanup","sessionWrapper","session","updates","updated","created","removed","objectsToRemove","newObjectMap","forEach","toRemove","title","delete","objectsToAdd","toAdd","set","setItemId","name","id","newItemIds","getItemId","createIfNecessary","get","generate","handleTabFocus","current","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","force","isClosePanelsOnDisconnectEnabled","panelIdsToClose","render","commandHistoryStorage","glContainer","timeZone","unzip","config","connection","details","dh","workerName","processInfoId","sessionId","type","language","LANGUAGE_MAP","mapStateToProps","ownProps","localDashboardId","ConnectedConsolePanel","forwardRef"],"sources":["../../src/panels/ConsolePanel.tsx"],"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, ReactElement, RefObject } from 'react';\nimport shortid from 'shortid';\nimport debounce from 'lodash.debounce';\nimport { connect } from 'react-redux';\nimport {\n CommandHistoryStorage,\n Console,\n ConsoleConstants,\n HeapUsage,\n} from '@deephaven/console';\nimport { PanelEvent } from '@deephaven/dashboard';\nimport type { IdeSession, VariableDefinition } from '@deephaven/jsapi-types';\nimport { SessionWrapper } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport {\n getCommandHistoryStorage,\n getTimeZone,\n RootState,\n} from '@deephaven/redux';\nimport type { Container, EventEmitter } from '@deephaven/golden-layout';\nimport { assertNotNull } from '@deephaven/utils';\nimport type { JSZipObject } from 'jszip';\nimport { ConsoleEvent } from '../events';\nimport Panel from './Panel';\nimport { getDashboardSessionWrapper } from '../redux';\nimport './ConsolePanel.scss';\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\ninterface ConsoleSettings {\n isClosePanelsOnDisconnectEnabled?: boolean;\n}\n\ninterface PanelState {\n consoleSettings: ConsoleSettings;\n itemIds: [string, string][];\n}\n\ntype ItemIds = Map<string, string>;\n\ninterface ConsolePanelProps {\n commandHistoryStorage: CommandHistoryStorage;\n glContainer: Container;\n glEventHub: EventEmitter;\n\n panelState?: PanelState;\n\n sessionWrapper: SessionWrapper;\n\n timeZone: string;\n unzip?: (file: File) => Promise<JSZipObject[]>;\n}\n\ninterface ConsolePanelState {\n consoleSettings: ConsoleSettings;\n itemIds: ItemIds;\n\n objectMap: Map<string, VariableDefinition>;\n\n // eslint-disable-next-line react/no-unused-state\n panelState: PanelState;\n error: unknown;\n}\n\nexport class ConsolePanel extends PureComponent<\n ConsolePanelProps,\n ConsolePanelState\n> {\n static COMPONENT = 'ConsolePanel';\n\n static TITLE = 'Console';\n\n constructor(props: ConsolePanelProps) {\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.handlePanelMount = this.handlePanelMount.bind(this);\n\n this.consoleRef = React.createRef();\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 error: undefined,\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n componentDidMount(): void {\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(\n prevProps: ConsolePanelProps,\n prevState: ConsolePanelState\n ): void {\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(): void {\n const { glEventHub } = this.props;\n this.savePanelState.flush();\n glEventHub.off(PanelEvent.MOUNT, this.handlePanelMount);\n this.objectSubscriptionCleanup?.();\n }\n\n consoleRef: RefObject<Console>;\n\n objectSubscriptionCleanup?: () => void;\n\n subscribeToFieldUpdates(): void {\n const { sessionWrapper } = this.props;\n const { session } = sessionWrapper;\n\n this.objectSubscriptionCleanup = session.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 const { title } = toRemove;\n if (title !== undefined) {\n newObjectMap.delete(title);\n }\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.title !== undefined) {\n newObjectMap.set(toAdd.title, toAdd);\n }\n });\n\n return { objectMap: newObjectMap };\n });\n }\n );\n }\n\n setItemId(name: string, id: string): void {\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: string, createIfNecessary = true): string | undefined {\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 handleTabFocus(): void {\n this.consoleRef.current?.focus();\n }\n\n handlePanelMount(panel: {\n props: { id: string; metadata: { sourcePanelId: string } };\n }): void {\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(): void {\n const { glEventHub } = this.props;\n glEventHub.emit(ConsoleEvent.FOCUS_HISTORY);\n }\n\n handleResize(): void {\n this.updateDimensions();\n }\n\n handleShow(): void {\n this.updateDimensions();\n }\n\n handleOpenObject(object: VariableDefinition): void {\n const { sessionWrapper } = this.props;\n const { session } = sessionWrapper;\n this.openWidget(object, session);\n }\n\n handleCloseObject(object: VariableDefinition): void {\n const { title } = object;\n if (title !== undefined) {\n const id = this.getItemId(title, false);\n const { glEventHub } = this.props;\n glEventHub.emit(PanelEvent.CLOSE, id);\n }\n }\n\n handleSettingsChange(consoleSettings: Record<string, unknown>): void {\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 widget The widget to open\n * @param session The session object\n */\n openWidget(widget: VariableDefinition, session: IdeSession): void {\n const { glEventHub } = this.props;\n const { title } = widget;\n assertNotNull(title);\n const panelId = this.getItemId(title);\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: string, focus = true, execute = false): void {\n this.consoleRef.current?.addCommand(command, focus, execute);\n }\n\n /**\n * Close the disconnected panels from this session\n * @param force True to force the panels closed regardless of the current setting\n */\n closeDisconnectedPanels(force = false): void {\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 = debounce((): void => {\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 }, DEBOUNCE_PANEL_STATE_UPDATE);\n\n updateDimensions(): void {\n this.consoleRef.current?.updateDimensions();\n }\n\n render(): ReactElement {\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, connection, details = {}, dh } = sessionWrapper;\n const { workerName, processInfoId } = details;\n const { id: sessionId, type: language } = config;\n\n return (\n <Panel\n className=\"iris-panel-console\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onResize={this.handleResize}\n onShow={this.handleShow}\n onTabFocus={this.handleTabFocus}\n errorMessage={error != null ? `${error}` : undefined}\n >\n {session != null && (\n <Console\n dh={dh}\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 {workerName != null && (\n <>\n <div>&nbsp;•&nbsp;</div>\n {workerName}\n </>\n )}\n {processInfoId != null && (\n <>\n <div>&nbsp;•&nbsp;</div>\n {processInfoId}\n <div>&nbsp;•</div>\n </>\n )}\n <div>&nbsp;</div>\n <div>\n <HeapUsage\n connection={connection}\n defaultUpdateInterval={10 * 1000}\n hoverUpdateInterval={3 * 1000}\n monitorDuration={10 * 60 * 1000}\n />\n </div>\n <div>&nbsp;</div>\n </>\n }\n scope={sessionId}\n timeZone={timeZone}\n objectMap={objectMap}\n unzip={unzip}\n />\n )}\n </Panel>\n );\n }\n}\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: { localDashboardId: string }\n) => ({\n commandHistoryStorage: getCommandHistoryStorage(\n state\n ) as CommandHistoryStorage,\n sessionWrapper: getDashboardSessionWrapper(state, ownProps.localDashboardId),\n timeZone: getTimeZone(state),\n});\n\nconst ConnectedConsolePanel = connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(ConsolePanel);\n\nexport default ConnectedConsolePanel;\n"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { DashboardPanelProps } from '@deephaven/dashboard';
2
2
  import { FileStorage, FileStorageItem } from '@deephaven/file-explorer';
3
3
  import React, { ReactNode } from 'react';
4
4
  import { ConnectedProps } from 'react-redux';
5
- import { IdeSession } from '@deephaven/jsapi-shim';
5
+ import type { IdeSession } from '@deephaven/jsapi-types';
6
6
  import './FileExplorerPanel.scss';
7
7
  type StateProps = {
8
8
  fileStorage: FileStorage;
@@ -1 +1 @@
1
- {"version":3,"file":"FileExplorerPanel.d.ts","sourceRoot":"","sources":["../../src/panels/FileExplorerPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAqB,EAEnB,WAAW,EACX,eAAe,EAGhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAW,cAAc,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,0BAA0B,CAAC;AAKlC,KAAK,UAAU,GAAG;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB,CAAC;AAEF,KAAK,QAAQ,GAAG,mBAAmB,CAAC;AAkBpC,QAAA,MAAM,SAAS,4JAA6D,CAAC;AAE7E,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAC3C,UAAU,GACV,cAAc,CAAC,OAAO,SAAS,CAAC,CAAC;AAEnC,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAOF;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK,CAAC,SAAS,CACpD,sBAAsB,EACtB,sBAAsB,CACvB;IACC,MAAM,CAAC,SAAS,SAAuB;IAEvC,MAAM,CAAC,KAAK,SAAmB;IAE/B,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAItC;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,GAAG,OAAO;gBAU7C,KAAK,EAAE,sBAAsB;IA6BzC,iBAAiB,IAAI,IAAI;IAMzB,gBAAgB,IAAI,IAAI;IAgBxB,qBAAqB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAI1C,2BAA2B,IAAI,IAAI;IAOnC,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO/C,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,IAAI;IAU5C,qBAAqB,CAAC,aAAa,EAAE,eAAe,EAAE,GAAG,IAAI;IAY7D,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI;IAwB1E,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAMpD,mBAAmB,CACjB,OAAO,EAAE,UAAU,EACnB,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GACjC,IAAI;IAOP,mBAAmB,IAAI,IAAI;IAO3B,UAAU,IAAI,IAAI;IAIlB,QAAQ,IAAI,OAAO;IAMnB,MAAM,IAAI,SAAS;CAuCpB;AAED,QAAA,MAAM,0BAA0B;;;;;;EAA+B,CAAC;AAEhE,eAAe,0BAA0B,CAAC"}
1
+ {"version":3,"file":"FileExplorerPanel.d.ts","sourceRoot":"","sources":["../../src/panels/FileExplorerPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAqB,EAEnB,WAAW,EACX,eAAe,EAGhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAW,cAAc,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,0BAA0B,CAAC;AAKlC,KAAK,UAAU,GAAG;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB,CAAC;AAEF,KAAK,QAAQ,GAAG,mBAAmB,CAAC;AAkBpC,QAAA,MAAM,SAAS,4JAA6D,CAAC;AAE7E,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAC3C,UAAU,GACV,cAAc,CAAC,OAAO,SAAS,CAAC,CAAC;AAEnC,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAOF;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK,CAAC,SAAS,CACpD,sBAAsB,EACtB,sBAAsB,CACvB;IACC,MAAM,CAAC,SAAS,SAAuB;IAEvC,MAAM,CAAC,KAAK,SAAmB;IAE/B,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAItC;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,GAAG,OAAO;gBAU7C,KAAK,EAAE,sBAAsB;IA6BzC,iBAAiB,IAAI,IAAI;IAMzB,gBAAgB,IAAI,IAAI;IAgBxB,qBAAqB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAI1C,2BAA2B,IAAI,IAAI;IAOnC,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO/C,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,IAAI;IAU5C,qBAAqB,CAAC,aAAa,EAAE,eAAe,EAAE,GAAG,IAAI;IAY7D,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI;IAwB1E,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAMpD,mBAAmB,CACjB,OAAO,EAAE,UAAU,EACnB,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GACjC,IAAI;IAOP,mBAAmB,IAAI,IAAI;IAO3B,UAAU,IAAI,IAAI;IAIlB,QAAQ,IAAI,OAAO;IAMnB,MAAM,IAAI,SAAS;CAuCpB;AAED,QAAA,MAAM,0BAA0B;;;;;;EAA+B,CAAC;AAEhE,eAAe,0BAA0B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FileExplorerPanel.js","names":["Log","getFileStorage","FileExplorer","FileExplorerToolbar","FileUtils","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","handleSelectionChange","isShown","showCreateFolder","focusedFilePath","componentDidMount","isHidden","setState","glEventHub","notebookSettings","value","debug","emit","CREATE_NOTEBOOK","path","createDirectory","catch","files","forEach","file","CLOSE_FILE","id","filename","itemName","selectedItems","length","makePath","getPath","shouldFocus","fileMetadata","SELECT_NOTEBOOK","oldName","newName","RENAME_FILE","undefined","glContainer","render","ConnectedFileExplorerPanel"],"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 FileUtils,\n NewItemModal,\n} from '@deephaven/file-explorer';\nimport React, { ReactNode } from 'react';\nimport { connect, ConnectedProps } from 'react-redux';\nimport { IdeSession } from '@deephaven/jsapi-shim';\nimport Panel from './Panel';\nimport { NotebookEvent } from '../events';\nimport './FileExplorerPanel.scss';\nimport { getDashboardSessionWrapper } from '../redux';\n\nconst log = Log.module('FileExplorerPanel');\n\ntype StateProps = {\n fileStorage: FileStorage;\n language: string;\n session?: IdeSession;\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?: IdeSession;\n showCreateFolder: boolean;\n focusedFilePath: string;\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 != null && 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 this.handleSelectionChange = this.handleSelectionChange.bind(this);\n\n const { session, language } = props;\n this.state = {\n isShown: false,\n language,\n session,\n showCreateFolder: false,\n focusedFilePath: '/',\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 handleSelectionChange(selectedItems: FileStorageItem[]): void {\n let path = '/';\n if (selectedItems.length === 1) {\n if (selectedItems[0].type === 'directory') {\n path = FileUtils.makePath(selectedItems[0].filename);\n } else {\n path = FileUtils.getPath(selectedItems[0].filename);\n }\n }\n this.setState({ focusedFilePath: path });\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: IdeSession,\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, focusedFilePath } = 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 onSelectionChange={this.handleSelectionChange}\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 defaultValue={focusedFilePath}\n />\n </Panel>\n );\n }\n}\n\nconst ConnectedFileExplorerPanel = connector(FileExplorerPanel);\n\nexport default ConnectedFileExplorerPanel;\n"],"mappings":"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"}
1
+ {"version":3,"file":"FileExplorerPanel.js","names":["Log","getFileStorage","FileExplorer","FileExplorerToolbar","FileUtils","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","handleSelectionChange","isShown","showCreateFolder","focusedFilePath","componentDidMount","isHidden","setState","glEventHub","notebookSettings","value","debug","emit","CREATE_NOTEBOOK","path","createDirectory","catch","files","forEach","file","CLOSE_FILE","id","filename","itemName","selectedItems","length","makePath","getPath","shouldFocus","fileMetadata","SELECT_NOTEBOOK","oldName","newName","RENAME_FILE","undefined","glContainer","render","ConnectedFileExplorerPanel"],"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 FileUtils,\n NewItemModal,\n} from '@deephaven/file-explorer';\nimport React, { ReactNode } from 'react';\nimport { connect, ConnectedProps } from 'react-redux';\nimport type { IdeSession } from '@deephaven/jsapi-types';\nimport Panel from './Panel';\nimport { NotebookEvent } from '../events';\nimport './FileExplorerPanel.scss';\nimport { getDashboardSessionWrapper } from '../redux';\n\nconst log = Log.module('FileExplorerPanel');\n\ntype StateProps = {\n fileStorage: FileStorage;\n language: string;\n session?: IdeSession;\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?: IdeSession;\n showCreateFolder: boolean;\n focusedFilePath: string;\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 != null && 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 this.handleSelectionChange = this.handleSelectionChange.bind(this);\n\n const { session, language } = props;\n this.state = {\n isShown: false,\n language,\n session,\n showCreateFolder: false,\n focusedFilePath: '/',\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 handleSelectionChange(selectedItems: FileStorageItem[]): void {\n let path = '/';\n if (selectedItems.length === 1) {\n if (selectedItems[0].type === 'directory') {\n path = FileUtils.makePath(selectedItems[0].filename);\n } else {\n path = FileUtils.getPath(selectedItems[0].filename);\n }\n }\n this.setState({ focusedFilePath: path });\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: IdeSession,\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, focusedFilePath } = 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 onSelectionChange={this.handleSelectionChange}\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 defaultValue={focusedFilePath}\n />\n </Panel>\n );\n }\n}\n\nconst ConnectedFileExplorerPanel = connector(FileExplorerPanel);\n\nexport default ConnectedFileExplorerPanel;\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { Component, ReactElement } from 'react';
2
2
  import { PanelComponent } from '@deephaven/dashboard';
3
3
  import type { Container, EventEmitter } from '@deephaven/golden-layout';
4
- import { TableTemplate } from '@deephaven/jsapi-shim';
4
+ import type { TableTemplate } from '@deephaven/jsapi-types';
5
5
  import { AdvancedFilter, ColumnName, DehydratedIrisGridState, QuickFilter } from '@deephaven/iris-grid';
6
6
  import { GridState } from '@deephaven/grid';
7
7
  import { ChangeHandlerArgs, FilterSet, FilterSetPanel } from './FilterSetManager';
@@ -1 +1 @@
1
- {"version":3,"file":"FilterSetManagerPanel.d.ts","sourceRoot":"","sources":["../../src/panels/FilterSetManagerPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FilterSetManagerPanel.d.ts","sourceRoot":"","sources":["../../src/panels/FilterSetManagerPanel.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilterSetManagerPanel.js","names":["React","Component","connect","getOpenedPanelMapForDashboard","LayoutUtils","Log","getFilterSetsForDashboard","getInputFiltersForDashboard","getTableMapForDashboard","setDashboardFilterSets","setDashboardFilterSetsAction","Panel","FilterSetManager","IrisGridPanel","DropdownFilterPanel","InputFilterPanel","log","module","hasSetPanelState","panel","setPanelState","FilterSetManagerPanel","changeFilterIndexesToColumnNames","table","configs","map","index","filter","columns","length","name","config","constructor","props","handleChange","bind","handleFilterApply","handleSetsUpdate","handleGetFilterState","panelState","filterSets","selectedId","id","undefined","isValueShown","state","getFilterState","dashboardOpenedPanelMap","panels","keys","forEach","key","get","error","componentName","getComponentNameFromPanel","panelId","getIdFromPanel","debug","glContainer","getComponentConfigFromContainer","getPanelComponentState","getComponentName","getIrisGridPanelFilters","push","type","value","panelTableMap","irisGridState","advancedFilters","quickFilters","gridState","indexedAdvancedFilters","indexedQuickFilters","setState","updatePanelState","filterSet","restoreFullState","has","restoreIrisGridFilters","restoreInputFilterState","modifiedFilterSets","localDashboardId","prevAdvancedFilters","prevQuickFilters","setStateOverrides","setFilters","inputFilterState","render","glEventHub","mapStateToProps","ownProps","dashboardInputFilters","ConnectedFilterSetManagerPanel","forwardRef"],"sources":["../../src/panels/FilterSetManagerPanel.tsx"],"sourcesContent":["import React, { Component, ReactElement } from 'react';\nimport { connect } from 'react-redux';\nimport {\n getOpenedPanelMapForDashboard,\n LayoutUtils,\n PanelComponent,\n} from '@deephaven/dashboard';\nimport Log from '@deephaven/log';\nimport type { Container, EventEmitter } from '@deephaven/golden-layout';\nimport { TableTemplate } from '@deephaven/jsapi-shim';\nimport { RootState } from '@deephaven/redux';\nimport {\n AdvancedFilter,\n ColumnName,\n DehydratedIrisGridState,\n QuickFilter,\n} from '@deephaven/iris-grid';\nimport { GridState } from '@deephaven/grid';\nimport {\n getFilterSetsForDashboard,\n getInputFiltersForDashboard,\n getTableMapForDashboard,\n setDashboardFilterSets as setDashboardFilterSetsAction,\n} from '../redux';\nimport Panel from './Panel';\nimport FilterSetManager, {\n ChangeHandlerArgs,\n FilterSet,\n FilterSetPanel,\n} from './FilterSetManager';\nimport { IrisGridPanel } from './IrisGridPanel';\nimport DropdownFilterPanel from './DropdownFilterPanel';\nimport InputFilterPanel, {\n PanelState as InputFilterPanelState,\n} from './InputFilterPanel';\nimport './FilterSetManagerPanel.scss';\n\nconst log = Log.module('FilterSetManagerPanel');\ninterface IrisGridState {\n advancedFilters: [number, AdvancedFilter][];\n quickFilters: [number, QuickFilter][];\n}\n\ninterface PanelState {\n irisGridState?: IrisGridState;\n gridState?: Partial<GridState>;\n selectedId?: string | string[];\n isValueShown?: boolean;\n name?: string;\n type?: string;\n value?: string;\n}\n\ninterface FilterSetManagerPanelProps {\n glContainer: Container;\n glEventHub: EventEmitter;\n panelState: PanelState;\n filterSets: FilterSet[];\n localDashboardId: string;\n dashboardOpenedPanelMap: Map<string | string[], PanelComponent>;\n setDashboardFilterSets: (\n dashboardId: string,\n filterSets: FilterSet[]\n ) => void;\n panelTableMap: Map<string | string[], TableTemplate>;\n}\n\ninterface FilterSetManagerPanelState {\n selectedId?: string | string[];\n isValueShown: boolean;\n // eslint-disable-next-line react/no-unused-state\n panelState: PanelState; // Dehydrated panel state that can load this panel\n}\n\nfunction hasSetPanelState(\n panel: PanelComponent\n): panel is PanelComponent & {\n setPanelState: (state: InputFilterPanelState) => void;\n} {\n return (\n (panel as PanelComponent & {\n setPanelState: (state: InputFilterPanelState) => void;\n }).setPanelState != null\n );\n}\nexport class FilterSetManagerPanel extends Component<\n FilterSetManagerPanelProps,\n FilterSetManagerPanelState\n> {\n static defaultProps = {\n panelState: null,\n };\n\n static COMPONENT = 'FilterSetManagerPanel';\n\n static changeFilterIndexesToColumnNames<T>(\n table: TableTemplate,\n configs: [number, T][]\n ): { name: string; filter: T }[] {\n return configs\n .map(([index, filter]) => {\n if (index >= table.columns.length) {\n return null;\n }\n const { name } = table.columns[index];\n return { name, filter };\n })\n .filter(config => config != null) as { name: string; filter: T }[];\n }\n\n constructor(props: FilterSetManagerPanelProps) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n this.handleFilterApply = this.handleFilterApply.bind(this);\n this.handleSetsUpdate = this.handleSetsUpdate.bind(this);\n this.handleGetFilterState = this.handleGetFilterState.bind(this);\n\n const { panelState, filterSets } = props;\n const {\n selectedId = filterSets.length > 0 ? filterSets[0].id : undefined,\n isValueShown = false,\n } = panelState ?? {};\n\n this.state = {\n selectedId,\n isValueShown,\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n // Collect all filter values for each dashboard panel\n getFilterState(): FilterSetPanel[] {\n const { dashboardOpenedPanelMap } = this.props;\n const panels: FilterSetPanel[] = [];\n [...dashboardOpenedPanelMap.keys()].forEach(key => {\n const panel = dashboardOpenedPanelMap.get(key);\n\n if (panel === undefined) {\n log.error('Could not get panel', panel);\n return;\n }\n\n const componentName = LayoutUtils.getComponentNameFromPanel(panel);\n const panelId = LayoutUtils.getIdFromPanel(panel);\n log.debug('Panel:', panel, componentName);\n\n const { glContainer = null } = panel.props;\n if (glContainer == null) {\n log.error('Could not get panel container', panel);\n return;\n }\n const config = LayoutUtils.getComponentConfigFromContainer(glContainer);\n if (config == null) {\n log.error('Could not get component config from container', glContainer);\n return;\n }\n const panelState = LayoutUtils.getPanelComponentState(\n config\n ) as PanelState;\n if (panelState == null) {\n log.debug(`Panel state is null ${panelId}`);\n return;\n }\n switch (componentName) {\n case LayoutUtils.getComponentName(IrisGridPanel): {\n let state;\n if (panelId != null) {\n state = this.getIrisGridPanelFilters(panelId, panelState);\n }\n if (state != null) {\n panels.push({\n panelId,\n type: componentName,\n state,\n });\n }\n break;\n }\n case LayoutUtils.getComponentName(InputFilterPanel):\n case LayoutUtils.getComponentName(DropdownFilterPanel): {\n const { isValueShown, name, type, value } = panelState;\n panels.push({\n panelId,\n type: componentName,\n state: { isValueShown, name, type, value },\n });\n break;\n }\n default:\n }\n });\n return panels;\n }\n\n getIrisGridPanelFilters(\n panelId: string | string[],\n panelState: PanelState\n ): {\n irisGridState: Omit<IrisGridState, 'advancedFilters' | 'quickFilters'> & {\n advancedFilters?: {\n name: string;\n filter: AdvancedFilter;\n }[];\n quickFilters?: {\n name: string;\n filter: QuickFilter;\n }[];\n };\n gridState: Partial<GridState>;\n } | null {\n const { panelTableMap } = this.props;\n const table = panelTableMap.get(panelId);\n if (table == null) {\n log.error(`Unable to get table for panel ${panelId}.`);\n return null;\n }\n // IrisGridUtils.hydrate uses numeric indexes for columns\n // Change indexes to column names to make it work for proxy models\n const {\n irisGridState = { advancedFilters: undefined, quickFilters: undefined },\n gridState = {},\n } = panelState;\n const {\n advancedFilters: indexedAdvancedFilters,\n quickFilters: indexedQuickFilters,\n } = irisGridState;\n let advancedFilters;\n if (indexedAdvancedFilters) {\n advancedFilters = FilterSetManagerPanel.changeFilterIndexesToColumnNames(\n table,\n indexedAdvancedFilters\n );\n }\n\n let quickFilters;\n if (indexedQuickFilters) {\n quickFilters = FilterSetManagerPanel.changeFilterIndexesToColumnNames(\n table,\n indexedQuickFilters\n );\n }\n return {\n irisGridState: {\n ...irisGridState,\n advancedFilters,\n quickFilters,\n },\n gridState: { ...gridState },\n };\n }\n\n handleGetFilterState(): FilterSetPanel[] {\n return this.getFilterState();\n }\n\n handleChange({ isValueShown, selectedId }: ChangeHandlerArgs): void {\n log.debug('handleChange', isValueShown, selectedId);\n this.setState({ isValueShown, selectedId });\n this.updatePanelState();\n }\n\n handleFilterApply(filterSet: FilterSet): void {\n const { dashboardOpenedPanelMap } = this.props;\n const { panels, restoreFullState = false } = filterSet;\n log.debug(`Apply filters from filter set`, filterSet);\n panels.forEach(({ panelId, type, state }) => {\n if (panelId == null) {\n log.debug('panel is null', panelId);\n return;\n }\n if (!dashboardOpenedPanelMap.has(panelId)) {\n log.debug('Ignore closed panel', panelId);\n return;\n }\n log.debug('Apply panel filters', panelId, type, state);\n const panel = dashboardOpenedPanelMap.get(panelId);\n switch (type) {\n case LayoutUtils.getComponentName(IrisGridPanel):\n this.restoreIrisGridFilters(\n panel as IrisGridPanel,\n state as {\n irisGridState: Partial<DehydratedIrisGridState>;\n gridState: Partial<GridState>;\n advancedFilters: { name: string; filter: AdvancedFilter }[];\n quickFilters: { name: string; filter: QuickFilter }[];\n },\n restoreFullState\n );\n break;\n case LayoutUtils.getComponentName(InputFilterPanel):\n case LayoutUtils.getComponentName(DropdownFilterPanel):\n this.restoreInputFilterState(panel, state as InputFilterPanelState);\n break;\n default:\n }\n });\n }\n\n handleSetsUpdate(modifiedFilterSets: FilterSet[]): void {\n const { setDashboardFilterSets, localDashboardId } = this.props;\n log.debug('Saving updated sets', modifiedFilterSets);\n // Filter sets are stored in dashboard data instead of the panelState\n // because they need to be shared between the filter view manager panels\n setDashboardFilterSets(localDashboardId, [...modifiedFilterSets]);\n }\n\n updatePanelState(): void {\n this.setState(({ selectedId, isValueShown }) => ({\n // eslint-disable-next-line react/no-unused-state\n panelState: {\n selectedId,\n isValueShown,\n },\n }));\n }\n\n restoreIrisGridFilters(\n panel: IrisGridPanel,\n state: {\n irisGridState: Partial<DehydratedIrisGridState>;\n gridState: Partial<GridState>;\n advancedFilters: { name: ColumnName; filter: AdvancedFilter }[];\n quickFilters: { name: ColumnName; filter: QuickFilter }[];\n },\n restoreFullState: boolean\n ): void {\n // Fall back to state.advancedFilters and state.quickFilters\n // for backward compatibility with filter sets that only contain filters\n const {\n irisGridState = {},\n advancedFilters: prevAdvancedFilters = [],\n quickFilters: prevQuickFilters = [],\n } = state;\n const {\n advancedFilters = prevAdvancedFilters,\n quickFilters = prevQuickFilters,\n } = irisGridState;\n const { panelTableMap } = this.props;\n const panelId = LayoutUtils.getIdFromPanel(panel);\n if (panelId == null) {\n log.error(`Panel Id is null.`);\n return;\n }\n const table = panelTableMap.get(panelId);\n if (table == null) {\n log.error(`Unable to get table for panel ${panelId}.`);\n return;\n }\n log.debug('restoreIrisGridFilters', panelId, state, restoreFullState);\n if (restoreFullState) {\n panel.setStateOverrides(state);\n } else {\n panel.setFilters({\n quickFilters: quickFilters as {\n name: string;\n filter: QuickFilter;\n }[],\n advancedFilters: advancedFilters as {\n name: string;\n filter: AdvancedFilter;\n }[],\n });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n restoreInputFilterState(\n panel: PanelComponent | undefined,\n state: InputFilterPanelState\n ): void {\n const inputFilterState = { ...state };\n // Restore state but don't flip the card\n delete inputFilterState.isValueShown;\n log.debug('restoreInputFilterState', panel, inputFilterState);\n if (panel && hasSetPanelState(panel)) {\n panel.setPanelState(inputFilterState);\n }\n }\n\n render(): ReactElement {\n const { glContainer, glEventHub, filterSets } = this.props;\n const { isValueShown, selectedId } = this.state;\n return (\n <Panel\n className=\"filter-set-manager-panel\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n isClonable\n isRenamable\n >\n <div className=\"input-filter-container h-100 w-100 container\">\n <FilterSetManager\n onChange={this.handleChange}\n onApply={this.handleFilterApply}\n onUpdateSets={this.handleSetsUpdate}\n isValueShown={isValueShown}\n filterSets={filterSets}\n selectedId={selectedId as string}\n getFilterState={this.handleGetFilterState}\n />\n </div>\n </Panel>\n );\n }\n}\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: { localDashboardId: string }\n) => {\n const { localDashboardId } = ownProps;\n return {\n filterSets: getFilterSetsForDashboard(state, localDashboardId),\n dashboardOpenedPanelMap: getOpenedPanelMapForDashboard(\n state,\n localDashboardId\n ),\n dashboardInputFilters: getInputFiltersForDashboard(state, localDashboardId),\n panelTableMap: getTableMapForDashboard(state, localDashboardId),\n };\n};\n\nconst ConnectedFilterSetManagerPanel = connect(\n mapStateToProps,\n {\n setDashboardFilterSets: setDashboardFilterSetsAction,\n },\n null,\n { forwardRef: true }\n)(FilterSetManagerPanel);\n\nexport default ConnectedFilterSetManagerPanel;\n"],"mappings":"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"}
1
+ {"version":3,"file":"FilterSetManagerPanel.js","names":["React","Component","connect","getOpenedPanelMapForDashboard","LayoutUtils","Log","getFilterSetsForDashboard","getInputFiltersForDashboard","getTableMapForDashboard","setDashboardFilterSets","setDashboardFilterSetsAction","Panel","FilterSetManager","IrisGridPanel","DropdownFilterPanel","InputFilterPanel","log","module","hasSetPanelState","panel","setPanelState","FilterSetManagerPanel","changeFilterIndexesToColumnNames","table","configs","map","index","filter","columns","length","name","config","constructor","props","handleChange","bind","handleFilterApply","handleSetsUpdate","handleGetFilterState","panelState","filterSets","selectedId","id","undefined","isValueShown","state","getFilterState","dashboardOpenedPanelMap","panels","keys","forEach","key","get","error","componentName","getComponentNameFromPanel","panelId","getIdFromPanel","debug","glContainer","getComponentConfigFromContainer","getPanelComponentState","getComponentName","getIrisGridPanelFilters","push","type","value","panelTableMap","irisGridState","advancedFilters","quickFilters","gridState","indexedAdvancedFilters","indexedQuickFilters","setState","updatePanelState","filterSet","restoreFullState","has","restoreIrisGridFilters","restoreInputFilterState","modifiedFilterSets","localDashboardId","prevAdvancedFilters","prevQuickFilters","setStateOverrides","setFilters","inputFilterState","render","glEventHub","mapStateToProps","ownProps","dashboardInputFilters","ConnectedFilterSetManagerPanel","forwardRef"],"sources":["../../src/panels/FilterSetManagerPanel.tsx"],"sourcesContent":["import React, { Component, ReactElement } from 'react';\nimport { connect } from 'react-redux';\nimport {\n getOpenedPanelMapForDashboard,\n LayoutUtils,\n PanelComponent,\n} from '@deephaven/dashboard';\nimport Log from '@deephaven/log';\nimport type { Container, EventEmitter } from '@deephaven/golden-layout';\nimport type { TableTemplate } from '@deephaven/jsapi-types';\nimport { RootState } from '@deephaven/redux';\nimport {\n AdvancedFilter,\n ColumnName,\n DehydratedIrisGridState,\n QuickFilter,\n} from '@deephaven/iris-grid';\nimport { GridState } from '@deephaven/grid';\nimport {\n getFilterSetsForDashboard,\n getInputFiltersForDashboard,\n getTableMapForDashboard,\n setDashboardFilterSets as setDashboardFilterSetsAction,\n} from '../redux';\nimport Panel from './Panel';\nimport FilterSetManager, {\n ChangeHandlerArgs,\n FilterSet,\n FilterSetPanel,\n} from './FilterSetManager';\nimport { IrisGridPanel } from './IrisGridPanel';\nimport DropdownFilterPanel from './DropdownFilterPanel';\nimport InputFilterPanel, {\n PanelState as InputFilterPanelState,\n} from './InputFilterPanel';\nimport './FilterSetManagerPanel.scss';\n\nconst log = Log.module('FilterSetManagerPanel');\ninterface IrisGridState {\n advancedFilters: [number, AdvancedFilter][];\n quickFilters: [number, QuickFilter][];\n}\n\ninterface PanelState {\n irisGridState?: IrisGridState;\n gridState?: Partial<GridState>;\n selectedId?: string | string[];\n isValueShown?: boolean;\n name?: string;\n type?: string;\n value?: string;\n}\n\ninterface FilterSetManagerPanelProps {\n glContainer: Container;\n glEventHub: EventEmitter;\n panelState: PanelState;\n filterSets: FilterSet[];\n localDashboardId: string;\n dashboardOpenedPanelMap: Map<string | string[], PanelComponent>;\n setDashboardFilterSets: (\n dashboardId: string,\n filterSets: FilterSet[]\n ) => void;\n panelTableMap: Map<string | string[], TableTemplate>;\n}\n\ninterface FilterSetManagerPanelState {\n selectedId?: string | string[];\n isValueShown: boolean;\n // eslint-disable-next-line react/no-unused-state\n panelState: PanelState; // Dehydrated panel state that can load this panel\n}\n\nfunction hasSetPanelState(\n panel: PanelComponent\n): panel is PanelComponent & {\n setPanelState: (state: InputFilterPanelState) => void;\n} {\n return (\n (panel as PanelComponent & {\n setPanelState: (state: InputFilterPanelState) => void;\n }).setPanelState != null\n );\n}\nexport class FilterSetManagerPanel extends Component<\n FilterSetManagerPanelProps,\n FilterSetManagerPanelState\n> {\n static defaultProps = {\n panelState: null,\n };\n\n static COMPONENT = 'FilterSetManagerPanel';\n\n static changeFilterIndexesToColumnNames<T>(\n table: TableTemplate,\n configs: [number, T][]\n ): { name: string; filter: T }[] {\n return configs\n .map(([index, filter]) => {\n if (index >= table.columns.length) {\n return null;\n }\n const { name } = table.columns[index];\n return { name, filter };\n })\n .filter(config => config != null) as { name: string; filter: T }[];\n }\n\n constructor(props: FilterSetManagerPanelProps) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n this.handleFilterApply = this.handleFilterApply.bind(this);\n this.handleSetsUpdate = this.handleSetsUpdate.bind(this);\n this.handleGetFilterState = this.handleGetFilterState.bind(this);\n\n const { panelState, filterSets } = props;\n const {\n selectedId = filterSets.length > 0 ? filterSets[0].id : undefined,\n isValueShown = false,\n } = panelState ?? {};\n\n this.state = {\n selectedId,\n isValueShown,\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n // Collect all filter values for each dashboard panel\n getFilterState(): FilterSetPanel[] {\n const { dashboardOpenedPanelMap } = this.props;\n const panels: FilterSetPanel[] = [];\n [...dashboardOpenedPanelMap.keys()].forEach(key => {\n const panel = dashboardOpenedPanelMap.get(key);\n\n if (panel === undefined) {\n log.error('Could not get panel', panel);\n return;\n }\n\n const componentName = LayoutUtils.getComponentNameFromPanel(panel);\n const panelId = LayoutUtils.getIdFromPanel(panel);\n log.debug('Panel:', panel, componentName);\n\n const { glContainer = null } = panel.props;\n if (glContainer == null) {\n log.error('Could not get panel container', panel);\n return;\n }\n const config = LayoutUtils.getComponentConfigFromContainer(glContainer);\n if (config == null) {\n log.error('Could not get component config from container', glContainer);\n return;\n }\n const panelState = LayoutUtils.getPanelComponentState(\n config\n ) as PanelState;\n if (panelState == null) {\n log.debug(`Panel state is null ${panelId}`);\n return;\n }\n switch (componentName) {\n case LayoutUtils.getComponentName(IrisGridPanel): {\n let state;\n if (panelId != null) {\n state = this.getIrisGridPanelFilters(panelId, panelState);\n }\n if (state != null) {\n panels.push({\n panelId,\n type: componentName,\n state,\n });\n }\n break;\n }\n case LayoutUtils.getComponentName(InputFilterPanel):\n case LayoutUtils.getComponentName(DropdownFilterPanel): {\n const { isValueShown, name, type, value } = panelState;\n panels.push({\n panelId,\n type: componentName,\n state: { isValueShown, name, type, value },\n });\n break;\n }\n default:\n }\n });\n return panels;\n }\n\n getIrisGridPanelFilters(\n panelId: string | string[],\n panelState: PanelState\n ): {\n irisGridState: Omit<IrisGridState, 'advancedFilters' | 'quickFilters'> & {\n advancedFilters?: {\n name: string;\n filter: AdvancedFilter;\n }[];\n quickFilters?: {\n name: string;\n filter: QuickFilter;\n }[];\n };\n gridState: Partial<GridState>;\n } | null {\n const { panelTableMap } = this.props;\n const table = panelTableMap.get(panelId);\n if (table == null) {\n log.error(`Unable to get table for panel ${panelId}.`);\n return null;\n }\n // IrisGridUtils.hydrate uses numeric indexes for columns\n // Change indexes to column names to make it work for proxy models\n const {\n irisGridState = { advancedFilters: undefined, quickFilters: undefined },\n gridState = {},\n } = panelState;\n const {\n advancedFilters: indexedAdvancedFilters,\n quickFilters: indexedQuickFilters,\n } = irisGridState;\n let advancedFilters;\n if (indexedAdvancedFilters) {\n advancedFilters = FilterSetManagerPanel.changeFilterIndexesToColumnNames(\n table,\n indexedAdvancedFilters\n );\n }\n\n let quickFilters;\n if (indexedQuickFilters) {\n quickFilters = FilterSetManagerPanel.changeFilterIndexesToColumnNames(\n table,\n indexedQuickFilters\n );\n }\n return {\n irisGridState: {\n ...irisGridState,\n advancedFilters,\n quickFilters,\n },\n gridState: { ...gridState },\n };\n }\n\n handleGetFilterState(): FilterSetPanel[] {\n return this.getFilterState();\n }\n\n handleChange({ isValueShown, selectedId }: ChangeHandlerArgs): void {\n log.debug('handleChange', isValueShown, selectedId);\n this.setState({ isValueShown, selectedId });\n this.updatePanelState();\n }\n\n handleFilterApply(filterSet: FilterSet): void {\n const { dashboardOpenedPanelMap } = this.props;\n const { panels, restoreFullState = false } = filterSet;\n log.debug(`Apply filters from filter set`, filterSet);\n panels.forEach(({ panelId, type, state }) => {\n if (panelId == null) {\n log.debug('panel is null', panelId);\n return;\n }\n if (!dashboardOpenedPanelMap.has(panelId)) {\n log.debug('Ignore closed panel', panelId);\n return;\n }\n log.debug('Apply panel filters', panelId, type, state);\n const panel = dashboardOpenedPanelMap.get(panelId);\n switch (type) {\n case LayoutUtils.getComponentName(IrisGridPanel):\n this.restoreIrisGridFilters(\n panel as IrisGridPanel,\n state as {\n irisGridState: Partial<DehydratedIrisGridState>;\n gridState: Partial<GridState>;\n advancedFilters: { name: string; filter: AdvancedFilter }[];\n quickFilters: { name: string; filter: QuickFilter }[];\n },\n restoreFullState\n );\n break;\n case LayoutUtils.getComponentName(InputFilterPanel):\n case LayoutUtils.getComponentName(DropdownFilterPanel):\n this.restoreInputFilterState(panel, state as InputFilterPanelState);\n break;\n default:\n }\n });\n }\n\n handleSetsUpdate(modifiedFilterSets: FilterSet[]): void {\n const { setDashboardFilterSets, localDashboardId } = this.props;\n log.debug('Saving updated sets', modifiedFilterSets);\n // Filter sets are stored in dashboard data instead of the panelState\n // because they need to be shared between the filter view manager panels\n setDashboardFilterSets(localDashboardId, [...modifiedFilterSets]);\n }\n\n updatePanelState(): void {\n this.setState(({ selectedId, isValueShown }) => ({\n // eslint-disable-next-line react/no-unused-state\n panelState: {\n selectedId,\n isValueShown,\n },\n }));\n }\n\n restoreIrisGridFilters(\n panel: IrisGridPanel,\n state: {\n irisGridState: Partial<DehydratedIrisGridState>;\n gridState: Partial<GridState>;\n advancedFilters: { name: ColumnName; filter: AdvancedFilter }[];\n quickFilters: { name: ColumnName; filter: QuickFilter }[];\n },\n restoreFullState: boolean\n ): void {\n // Fall back to state.advancedFilters and state.quickFilters\n // for backward compatibility with filter sets that only contain filters\n const {\n irisGridState = {},\n advancedFilters: prevAdvancedFilters = [],\n quickFilters: prevQuickFilters = [],\n } = state;\n const {\n advancedFilters = prevAdvancedFilters,\n quickFilters = prevQuickFilters,\n } = irisGridState;\n const { panelTableMap } = this.props;\n const panelId = LayoutUtils.getIdFromPanel(panel);\n if (panelId == null) {\n log.error(`Panel Id is null.`);\n return;\n }\n const table = panelTableMap.get(panelId);\n if (table == null) {\n log.error(`Unable to get table for panel ${panelId}.`);\n return;\n }\n log.debug('restoreIrisGridFilters', panelId, state, restoreFullState);\n if (restoreFullState) {\n panel.setStateOverrides(state);\n } else {\n panel.setFilters({\n quickFilters: quickFilters as {\n name: string;\n filter: QuickFilter;\n }[],\n advancedFilters: advancedFilters as {\n name: string;\n filter: AdvancedFilter;\n }[],\n });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n restoreInputFilterState(\n panel: PanelComponent | undefined,\n state: InputFilterPanelState\n ): void {\n const inputFilterState = { ...state };\n // Restore state but don't flip the card\n delete inputFilterState.isValueShown;\n log.debug('restoreInputFilterState', panel, inputFilterState);\n if (panel && hasSetPanelState(panel)) {\n panel.setPanelState(inputFilterState);\n }\n }\n\n render(): ReactElement {\n const { glContainer, glEventHub, filterSets } = this.props;\n const { isValueShown, selectedId } = this.state;\n return (\n <Panel\n className=\"filter-set-manager-panel\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n isClonable\n isRenamable\n >\n <div className=\"input-filter-container h-100 w-100 container\">\n <FilterSetManager\n onChange={this.handleChange}\n onApply={this.handleFilterApply}\n onUpdateSets={this.handleSetsUpdate}\n isValueShown={isValueShown}\n filterSets={filterSets}\n selectedId={selectedId as string}\n getFilterState={this.handleGetFilterState}\n />\n </div>\n </Panel>\n );\n }\n}\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: { localDashboardId: string }\n) => {\n const { localDashboardId } = ownProps;\n return {\n filterSets: getFilterSetsForDashboard(state, localDashboardId),\n dashboardOpenedPanelMap: getOpenedPanelMapForDashboard(\n state,\n localDashboardId\n ),\n dashboardInputFilters: getInputFiltersForDashboard(state, localDashboardId),\n panelTableMap: getTableMapForDashboard(state, localDashboardId),\n };\n};\n\nconst ConnectedFilterSetManagerPanel = connect(\n mapStateToProps,\n {\n setDashboardFilterSets: setDashboardFilterSetsAction,\n },\n null,\n { forwardRef: true }\n)(FilterSetManagerPanel);\n\nexport default ConnectedFilterSetManagerPanel;\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAsB,OAAO;AACtD,SAASC,OAAO,QAAQ,aAAa;AACrC,SACEC,6BAA6B,EAC7BC,WAAW,QAEN,sBAAsB;AAC7B,OAAOC,GAAG,MAAM,gBAAgB;AAAC,SAY/BC,yBAAyB,EACzBC,2BAA2B,EAC3BC,uBAAuB,EACvBC,sBAAsB,IAAIC,4BAA4B;AAAA,OAEjDC,KAAK;AAAA,OACLC,gBAAgB;AAAA,SAKdC,aAAa;AAAA,OACfC,mBAAmB;AAAA,OACnBC,gBAAgB;AAAA;AAKvB,IAAMC,GAAG,GAAGX,GAAG,CAACY,MAAM,CAAC,uBAAuB,CAAC;AAqC/C,SAASC,gBAAgB,CACvBC,KAAqB,EAGrB;EACA,OACGA,KAAK,CAEHC,aAAa,IAAI,IAAI;AAE5B;AACA,OAAO,MAAMC,qBAAqB,SAASpB,SAAS,CAGlD;EAOA,OAAOqB,gCAAgC,CACrCC,KAAoB,EACpBC,OAAsB,EACS;IAC/B,OAAOA,OAAO,CACXC,GAAG,CAAC,QAAqB;MAAA,IAApB,CAACC,KAAK,EAAEC,MAAM,CAAC;MACnB,IAAID,KAAK,IAAIH,KAAK,CAACK,OAAO,CAACC,MAAM,EAAE;QACjC,OAAO,IAAI;MACb;MACA,IAAM;QAAEC;MAAK,CAAC,GAAGP,KAAK,CAACK,OAAO,CAACF,KAAK,CAAC;MACrC,OAAO;QAAEI,IAAI;QAAEH;MAAO,CAAC;IACzB,CAAC,CAAC,CACDA,MAAM,CAACI,MAAM,IAAIA,MAAM,IAAI,IAAI,CAAC;EACrC;EAEAC,WAAW,CAACC,KAAiC,EAAE;IAC7C,KAAK,CAACA,KAAK,CAAC;IAEZ,IAAI,CAACC,YAAY,GAAG,IAAI,CAACA,YAAY,CAACC,IAAI,CAAC,IAAI,CAAC;IAChD,IAAI,CAACC,iBAAiB,GAAG,IAAI,CAACA,iBAAiB,CAACD,IAAI,CAAC,IAAI,CAAC;IAC1D,IAAI,CAACE,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,CAACF,IAAI,CAAC,IAAI,CAAC;IACxD,IAAI,CAACG,oBAAoB,GAAG,IAAI,CAACA,oBAAoB,CAACH,IAAI,CAAC,IAAI,CAAC;IAEhE,IAAM;MAAEI,UAAU;MAAEC;IAAW,CAAC,GAAGP,KAAK;IACxC,IAAM;MACJQ,UAAU,GAAGD,UAAU,CAACX,MAAM,GAAG,CAAC,GAAGW,UAAU,CAAC,CAAC,CAAC,CAACE,EAAE,GAAGC,SAAS;MACjEC,YAAY,GAAG;IACjB,CAAC,GAAGL,UAAU,aAAVA,UAAU,cAAVA,UAAU,GAAI,CAAC,CAAC;IAEpB,IAAI,CAACM,KAAK,GAAG;MACXJ,UAAU;MACVG,YAAY;MACZ;MACAL,UAAU,CAAE;IACd,CAAC;EACH;;EAEA;EACAO,cAAc,GAAqB;IACjC,IAAM;MAAEC;IAAwB,CAAC,GAAG,IAAI,CAACd,KAAK;IAC9C,IAAMe,MAAwB,GAAG,EAAE;IACnC,CAAC,GAAGD,uBAAuB,CAACE,IAAI,EAAE,CAAC,CAACC,OAAO,CAACC,GAAG,IAAI;MACjD,IAAMhC,KAAK,GAAG4B,uBAAuB,CAACK,GAAG,CAACD,GAAG,CAAC;MAE9C,IAAIhC,KAAK,KAAKwB,SAAS,EAAE;QACvB3B,GAAG,CAACqC,KAAK,CAAC,qBAAqB,EAAElC,KAAK,CAAC;QACvC;MACF;MAEA,IAAMmC,aAAa,GAAGlD,WAAW,CAACmD,yBAAyB,CAACpC,KAAK,CAAC;MAClE,IAAMqC,OAAO,GAAGpD,WAAW,CAACqD,cAAc,CAACtC,KAAK,CAAC;MACjDH,GAAG,CAAC0C,KAAK,CAAC,QAAQ,EAAEvC,KAAK,EAAEmC,aAAa,CAAC;MAEzC,IAAM;QAAEK,WAAW,GAAG;MAAK,CAAC,GAAGxC,KAAK,CAACc,KAAK;MAC1C,IAAI0B,WAAW,IAAI,IAAI,EAAE;QACvB3C,GAAG,CAACqC,KAAK,CAAC,+BAA+B,EAAElC,KAAK,CAAC;QACjD;MACF;MACA,IAAMY,MAAM,GAAG3B,WAAW,CAACwD,+BAA+B,CAACD,WAAW,CAAC;MACvE,IAAI5B,MAAM,IAAI,IAAI,EAAE;QAClBf,GAAG,CAACqC,KAAK,CAAC,+CAA+C,EAAEM,WAAW,CAAC;QACvE;MACF;MACA,IAAMpB,UAAU,GAAGnC,WAAW,CAACyD,sBAAsB,CACnD9B,MAAM,CACO;MACf,IAAIQ,UAAU,IAAI,IAAI,EAAE;QACtBvB,GAAG,CAAC0C,KAAK,+BAAwBF,OAAO,EAAG;QAC3C;MACF;MACA,QAAQF,aAAa;QACnB,KAAKlD,WAAW,CAAC0D,gBAAgB,CAACjD,aAAa,CAAC;UAAE;YAChD,IAAIgC,MAAK;YACT,IAAIW,OAAO,IAAI,IAAI,EAAE;cACnBX,MAAK,GAAG,IAAI,CAACkB,uBAAuB,CAACP,OAAO,EAAEjB,UAAU,CAAC;YAC3D;YACA,IAAIM,MAAK,IAAI,IAAI,EAAE;cACjBG,MAAM,CAACgB,IAAI,CAAC;gBACVR,OAAO;gBACPS,IAAI,EAAEX,aAAa;gBACnBT,KAAK,EAALA;cACF,CAAC,CAAC;YACJ;YACA;UACF;QACA,KAAKzC,WAAW,CAAC0D,gBAAgB,CAAC/C,gBAAgB,CAAC;QACnD,KAAKX,WAAW,CAAC0D,gBAAgB,CAAChD,mBAAmB,CAAC;UAAE;YACtD,IAAM;cAAE8B,YAAY;cAAEd,IAAI;cAAEmC,IAAI;cAAEC;YAAM,CAAC,GAAG3B,UAAU;YACtDS,MAAM,CAACgB,IAAI,CAAC;cACVR,OAAO;cACPS,IAAI,EAAEX,aAAa;cACnBT,KAAK,EAAE;gBAAED,YAAY;gBAAEd,IAAI;gBAAEmC,IAAI;gBAAEC;cAAM;YAC3C,CAAC,CAAC;YACF;UACF;QACA;MAAQ;IAEZ,CAAC,CAAC;IACF,OAAOlB,MAAM;EACf;EAEAe,uBAAuB,CACrBP,OAA0B,EAC1BjB,UAAsB,EAaf;IACP,IAAM;MAAE4B;IAAc,CAAC,GAAG,IAAI,CAAClC,KAAK;IACpC,IAAMV,KAAK,GAAG4C,aAAa,CAACf,GAAG,CAACI,OAAO,CAAC;IACxC,IAAIjC,KAAK,IAAI,IAAI,EAAE;MACjBP,GAAG,CAACqC,KAAK,yCAAkCG,OAAO,OAAI;MACtD,OAAO,IAAI;IACb;IACA;IACA;IACA,IAAM;MACJY,aAAa,GAAG;QAAEC,eAAe,EAAE1B,SAAS;QAAE2B,YAAY,EAAE3B;MAAU,CAAC;MACvE4B,SAAS,GAAG,CAAC;IACf,CAAC,GAAGhC,UAAU;IACd,IAAM;MACJ8B,eAAe,EAAEG,sBAAsB;MACvCF,YAAY,EAAEG;IAChB,CAAC,GAAGL,aAAa;IACjB,IAAIC,eAAe;IACnB,IAAIG,sBAAsB,EAAE;MAC1BH,eAAe,GAAGhD,qBAAqB,CAACC,gCAAgC,CACtEC,KAAK,EACLiD,sBAAsB,CACvB;IACH;IAEA,IAAIF,YAAY;IAChB,IAAIG,mBAAmB,EAAE;MACvBH,YAAY,GAAGjD,qBAAqB,CAACC,gCAAgC,CACnEC,KAAK,EACLkD,mBAAmB,CACpB;IACH;IACA,OAAO;MACLL,aAAa,kCACRA,aAAa;QAChBC,eAAe;QACfC;MAAY,EACb;MACDC,SAAS,oBAAOA,SAAS;IAC3B,CAAC;EACH;EAEAjC,oBAAoB,GAAqB;IACvC,OAAO,IAAI,CAACQ,cAAc,EAAE;EAC9B;EAEAZ,YAAY,QAAwD;IAAA,IAAvD;MAAEU,YAAY;MAAEH;IAA8B,CAAC;IAC1DzB,GAAG,CAAC0C,KAAK,CAAC,cAAc,EAAEd,YAAY,EAAEH,UAAU,CAAC;IACnD,IAAI,CAACiC,QAAQ,CAAC;MAAE9B,YAAY;MAAEH;IAAW,CAAC,CAAC;IAC3C,IAAI,CAACkC,gBAAgB,EAAE;EACzB;EAEAvC,iBAAiB,CAACwC,SAAoB,EAAQ;IAC5C,IAAM;MAAE7B;IAAwB,CAAC,GAAG,IAAI,CAACd,KAAK;IAC9C,IAAM;MAAEe,MAAM;MAAE6B,gBAAgB,GAAG;IAAM,CAAC,GAAGD,SAAS;IACtD5D,GAAG,CAAC0C,KAAK,kCAAkCkB,SAAS,CAAC;IACrD5B,MAAM,CAACE,OAAO,CAAC,SAA8B;MAAA,IAA7B;QAAEM,OAAO;QAAES,IAAI;QAAEpB;MAAM,CAAC;MACtC,IAAIW,OAAO,IAAI,IAAI,EAAE;QACnBxC,GAAG,CAAC0C,KAAK,CAAC,eAAe,EAAEF,OAAO,CAAC;QACnC;MACF;MACA,IAAI,CAACT,uBAAuB,CAAC+B,GAAG,CAACtB,OAAO,CAAC,EAAE;QACzCxC,GAAG,CAAC0C,KAAK,CAAC,qBAAqB,EAAEF,OAAO,CAAC;QACzC;MACF;MACAxC,GAAG,CAAC0C,KAAK,CAAC,qBAAqB,EAAEF,OAAO,EAAES,IAAI,EAAEpB,KAAK,CAAC;MACtD,IAAM1B,KAAK,GAAG4B,uBAAuB,CAACK,GAAG,CAACI,OAAO,CAAC;MAClD,QAAQS,IAAI;QACV,KAAK7D,WAAW,CAAC0D,gBAAgB,CAACjD,aAAa,CAAC;UAC9C,IAAI,CAACkE,sBAAsB,CACzB5D,KAAK,EACL0B,KAAK,EAMLgC,gBAAgB,CACjB;UACD;QACF,KAAKzE,WAAW,CAAC0D,gBAAgB,CAAC/C,gBAAgB,CAAC;QACnD,KAAKX,WAAW,CAAC0D,gBAAgB,CAAChD,mBAAmB,CAAC;UACpD,IAAI,CAACkE,uBAAuB,CAAC7D,KAAK,EAAE0B,KAAK,CAA0B;UACnE;QACF;MAAQ;IAEZ,CAAC,CAAC;EACJ;EAEAR,gBAAgB,CAAC4C,kBAA+B,EAAQ;IACtD,IAAM;MAAExE,sBAAsB;MAAEyE;IAAiB,CAAC,GAAG,IAAI,CAACjD,KAAK;IAC/DjB,GAAG,CAAC0C,KAAK,CAAC,qBAAqB,EAAEuB,kBAAkB,CAAC;IACpD;IACA;IACAxE,sBAAsB,CAACyE,gBAAgB,EAAE,CAAC,GAAGD,kBAAkB,CAAC,CAAC;EACnE;EAEAN,gBAAgB,GAAS;IACvB,IAAI,CAACD,QAAQ,CAAC;MAAA,IAAC;QAAEjC,UAAU;QAAEG;MAAa,CAAC;MAAA,OAAM;QAC/C;QACAL,UAAU,EAAE;UACVE,UAAU;UACVG;QACF;MACF,CAAC;IAAA,CAAC,CAAC;EACL;EAEAmC,sBAAsB,CACpB5D,KAAoB,EACpB0B,KAKC,EACDgC,gBAAyB,EACnB;IACN;IACA;IACA,IAAM;MACJT,aAAa,GAAG,CAAC,CAAC;MAClBC,eAAe,EAAEc,mBAAmB,GAAG,EAAE;MACzCb,YAAY,EAAEc,gBAAgB,GAAG;IACnC,CAAC,GAAGvC,KAAK;IACT,IAAM;MACJwB,eAAe,GAAGc,mBAAmB;MACrCb,YAAY,GAAGc;IACjB,CAAC,GAAGhB,aAAa;IACjB,IAAM;MAAED;IAAc,CAAC,GAAG,IAAI,CAAClC,KAAK;IACpC,IAAMuB,OAAO,GAAGpD,WAAW,CAACqD,cAAc,CAACtC,KAAK,CAAC;IACjD,IAAIqC,OAAO,IAAI,IAAI,EAAE;MACnBxC,GAAG,CAACqC,KAAK,qBAAqB;MAC9B;IACF;IACA,IAAM9B,KAAK,GAAG4C,aAAa,CAACf,GAAG,CAACI,OAAO,CAAC;IACxC,IAAIjC,KAAK,IAAI,IAAI,EAAE;MACjBP,GAAG,CAACqC,KAAK,yCAAkCG,OAAO,OAAI;MACtD;IACF;IACAxC,GAAG,CAAC0C,KAAK,CAAC,wBAAwB,EAAEF,OAAO,EAAEX,KAAK,EAAEgC,gBAAgB,CAAC;IACrE,IAAIA,gBAAgB,EAAE;MACpB1D,KAAK,CAACkE,iBAAiB,CAACxC,KAAK,CAAC;IAChC,CAAC,MAAM;MACL1B,KAAK,CAACmE,UAAU,CAAC;QACfhB,YAAY,EAAEA,YAGX;QACHD,eAAe,EAAEA;MAInB,CAAC,CAAC;IACJ;EACF;;EAEA;EACAW,uBAAuB,CACrB7D,KAAiC,EACjC0B,KAA4B,EACtB;IACN,IAAM0C,gBAAgB,qBAAQ1C,KAAK,CAAE;IACrC;IACA,OAAO0C,gBAAgB,CAAC3C,YAAY;IACpC5B,GAAG,CAAC0C,KAAK,CAAC,yBAAyB,EAAEvC,KAAK,EAAEoE,gBAAgB,CAAC;IAC7D,IAAIpE,KAAK,IAAID,gBAAgB,CAACC,KAAK,CAAC,EAAE;MACpCA,KAAK,CAACC,aAAa,CAACmE,gBAAgB,CAAC;IACvC;EACF;EAEAC,MAAM,GAAiB;IACrB,IAAM;MAAE7B,WAAW;MAAE8B,UAAU;MAAEjD;IAAW,CAAC,GAAG,IAAI,CAACP,KAAK;IAC1D,IAAM;MAAEW,YAAY;MAAEH;IAAW,CAAC,GAAG,IAAI,CAACI,KAAK;IAC/C,oBACE,oBAAC,KAAK;MACJ,SAAS,EAAC,0BAA0B;MACpC,cAAc,EAAE,IAAK;MACrB,WAAW,EAAEc,WAAY;MACzB,UAAU,EAAE8B,UAAW;MACvB,UAAU;MACV,WAAW;IAAA,gBAEX;MAAK,SAAS,EAAC;IAA8C,gBAC3D,oBAAC,gBAAgB;MACf,QAAQ,EAAE,IAAI,CAACvD,YAAa;MAC5B,OAAO,EAAE,IAAI,CAACE,iBAAkB;MAChC,YAAY,EAAE,IAAI,CAACC,gBAAiB;MACpC,YAAY,EAAEO,YAAa;MAC3B,UAAU,EAAEJ,UAAW;MACvB,UAAU,EAAEC,UAAqB;MACjC,cAAc,EAAE,IAAI,CAACH;IAAqB,EAC1C,CACE,CACA;EAEZ;AACF;AAAC,gBAlUYjB,qBAAqB,kBAIV;EACpBkB,UAAU,EAAE;AACd,CAAC;AAAA,gBANUlB,qBAAqB,eAQb,uBAAuB;AA4T5C,IAAMqE,eAAe,GAAG,CACtB7C,KAAgB,EAChB8C,QAAsC,KACnC;EACH,IAAM;IAAET;EAAiB,CAAC,GAAGS,QAAQ;EACrC,OAAO;IACLnD,UAAU,EAAElC,yBAAyB,CAACuC,KAAK,EAAEqC,gBAAgB,CAAC;IAC9DnC,uBAAuB,EAAE5C,6BAA6B,CACpD0C,KAAK,EACLqC,gBAAgB,CACjB;IACDU,qBAAqB,EAAErF,2BAA2B,CAACsC,KAAK,EAAEqC,gBAAgB,CAAC;IAC3Ef,aAAa,EAAE3D,uBAAuB,CAACqC,KAAK,EAAEqC,gBAAgB;EAChE,CAAC;AACH,CAAC;AAED,IAAMW,8BAA8B,GAAG3F,OAAO,CAC5CwF,eAAe,EACf;EACEjF,sBAAsB,EAAEC;AAC1B,CAAC,EACD,IAAI,EACJ;EAAEoF,UAAU,EAAE;AAAK,CAAC,CACrB,CAACzE,qBAAqB,CAAC;AAExB,eAAewE,8BAA8B"}
@@ -1,6 +1,6 @@
1
1
  import { PureComponent } from 'react';
2
2
  import { LogView } from '@deephaven/console';
3
- import { IdeSession } from '@deephaven/jsapi-shim';
3
+ import type { IdeSession } from '@deephaven/jsapi-types';
4
4
  import type { Container, EventEmitter } from '@deephaven/golden-layout';
5
5
  import './LogPanel.scss';
6
6
  interface LogPanelProps {
@@ -1 +1 @@
1
- {"version":3,"file":"LogPanel.d.ts","sourceRoot":"","sources":["../../src/panels/LogPanel.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExE,OAAO,iBAAiB,CAAC;AAMzB,UAAU,aAAa;IACrB,WAAW,EAAE,SAAS,CAAC;IACvB,UAAU,EAAE,YAAY,CAAC;IACzB,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,UAAU,aAAa;IACrB,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,cAAM,QAAS,SAAQ,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC;IAChE,MAAM,CAAC,YAAY;;MAEjB;IAEF,MAAM,CAAC,SAAS,SAAc;IAE9B,MAAM,CAAC,KAAK,SAAS;gBAET,KAAK,EAAE,aAAa;IAiBhC,eAAe,EAAE,OAAO,CAAC;IAEzB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAExB,YAAY;IAIZ,UAAU;IAWV,UAAU;IAMV,mBAAmB,CAAC,OAAO,EAAE,UAAU;IAMvC,mBAAmB,CAAC,OAAO,EAAE,UAAU;IAKvC,gBAAgB;IAMhB,MAAM;CA8BP;AAUD,QAAA,MAAM,iBAAiB;;;sBANS,MAAM;EAQ1B,CAAC;AAEb,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"LogPanel.d.ts","sourceRoot":"","sources":["../../src/panels/LogPanel.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExE,OAAO,iBAAiB,CAAC;AAMzB,UAAU,aAAa;IACrB,WAAW,EAAE,SAAS,CAAC;IACvB,UAAU,EAAE,YAAY,CAAC;IACzB,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,UAAU,aAAa;IACrB,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,cAAM,QAAS,SAAQ,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC;IAChE,MAAM,CAAC,YAAY;;MAEjB;IAEF,MAAM,CAAC,SAAS,SAAc;IAE9B,MAAM,CAAC,KAAK,SAAS;gBAET,KAAK,EAAE,aAAa;IAiBhC,eAAe,EAAE,OAAO,CAAC;IAEzB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAExB,YAAY;IAIZ,UAAU;IAWV,UAAU;IAMV,mBAAmB,CAAC,OAAO,EAAE,UAAU;IAMvC,mBAAmB,CAAC,OAAO,EAAE,UAAU;IAKvC,gBAAgB;IAMhB,MAAM;CA8BP;AAUD,QAAA,MAAM,iBAAiB;;;sBANS,MAAM;EAQ1B,CAAC;AAEb,eAAe,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"LogPanel.js","names":["React","PureComponent","connect","LogView","Log","Panel","getDashboardSessionWrapper","log","module","LogPanel","constructor","props","handleResize","bind","handleShow","handleHide","handleSessionOpened","handleSessionClosed","isBottomVisible","logView","session","state","updateDimensions","triggerFindWidget","scrollToBottom","debug","setState","render","glContainer","glEventHub","mapStateToProps","ownProps","localDashboardId","ConnectedLogPanel","forwardRef"],"sources":["../../src/panels/LogPanel.tsx"],"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 { connect } from 'react-redux';\nimport { LogView } from '@deephaven/console';\nimport { IdeSession } from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport type { Container, EventEmitter } from '@deephaven/golden-layout';\nimport { RootState } from '@deephaven/redux';\nimport './LogPanel.scss';\nimport Panel from './Panel';\nimport { getDashboardSessionWrapper } from '../redux';\n\nconst log = Log.module('LogPanel');\n\ninterface LogPanelProps {\n glContainer: Container;\n glEventHub: EventEmitter;\n session: IdeSession;\n}\n\ninterface LogPanelState {\n session: IdeSession;\n}\n\nclass LogPanel extends PureComponent<LogPanelProps, LogPanelState> {\n static defaultProps = {\n session: null,\n };\n\n static COMPONENT = 'LogPanel';\n\n static TITLE = 'Log';\n\n constructor(props: LogPanelProps) {\n super(props);\n\n this.handleResize = this.handleResize.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleHide = this.handleHide.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n\n this.isBottomVisible = true;\n this.logView = null;\n\n const { session } = this.props;\n\n this.state = { session };\n }\n\n isBottomVisible: boolean;\n\n logView: LogView | null;\n\n handleResize() {\n this.updateDimensions();\n }\n\n handleShow() {\n this.updateDimensions();\n if (this.logView) {\n this.logView.triggerFindWidget();\n\n if (this.isBottomVisible) {\n this.logView.scrollToBottom();\n }\n }\n }\n\n handleHide() {\n if (this.logView) {\n this.isBottomVisible = this.logView.isBottomVisible();\n }\n }\n\n handleSessionOpened(session: IdeSession) {\n log.debug('Session opened', [session]);\n this.setState({ session });\n }\n\n // eslint-disable-next-line class-methods-use-this\n handleSessionClosed(session: IdeSession) {\n log.debug('Session closed', session);\n // Keep the session reference in state unchanged until the session is re-connected\n }\n\n updateDimensions() {\n if (this.logView) {\n this.logView.updateDimensions();\n }\n }\n\n render() {\n const { glContainer, glEventHub } = this.props;\n const { session } = this.state;\n return (\n <Panel\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onResize={this.handleResize}\n onHide={this.handleHide}\n onShow={this.handleShow}\n onSessionOpen={this.handleSessionOpened}\n onSessionClose={this.handleSessionClosed}\n >\n {session == null && (\n <div className=\"log-panel-disconnected-message\">\n Waiting for session connection\n </div>\n )}\n {session != null && (\n <LogView\n session={session}\n ref={logView => {\n this.logView = logView;\n }}\n />\n )}\n </Panel>\n );\n }\n}\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: { localDashboardId: string }\n) => ({\n session: getDashboardSessionWrapper(state, ownProps.localDashboardId)\n ?.session,\n});\n\nconst ConnectedLogPanel = connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(LogPanel);\n\nexport default ConnectedLogPanel;\n"],"mappings":"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"}
1
+ {"version":3,"file":"LogPanel.js","names":["React","PureComponent","connect","LogView","Log","Panel","getDashboardSessionWrapper","log","module","LogPanel","constructor","props","handleResize","bind","handleShow","handleHide","handleSessionOpened","handleSessionClosed","isBottomVisible","logView","session","state","updateDimensions","triggerFindWidget","scrollToBottom","debug","setState","render","glContainer","glEventHub","mapStateToProps","ownProps","localDashboardId","ConnectedLogPanel","forwardRef"],"sources":["../../src/panels/LogPanel.tsx"],"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 { connect } from 'react-redux';\nimport { LogView } from '@deephaven/console';\nimport type { IdeSession } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport type { Container, EventEmitter } from '@deephaven/golden-layout';\nimport { RootState } from '@deephaven/redux';\nimport './LogPanel.scss';\nimport Panel from './Panel';\nimport { getDashboardSessionWrapper } from '../redux';\n\nconst log = Log.module('LogPanel');\n\ninterface LogPanelProps {\n glContainer: Container;\n glEventHub: EventEmitter;\n session: IdeSession;\n}\n\ninterface LogPanelState {\n session: IdeSession;\n}\n\nclass LogPanel extends PureComponent<LogPanelProps, LogPanelState> {\n static defaultProps = {\n session: null,\n };\n\n static COMPONENT = 'LogPanel';\n\n static TITLE = 'Log';\n\n constructor(props: LogPanelProps) {\n super(props);\n\n this.handleResize = this.handleResize.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleHide = this.handleHide.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n\n this.isBottomVisible = true;\n this.logView = null;\n\n const { session } = this.props;\n\n this.state = { session };\n }\n\n isBottomVisible: boolean;\n\n logView: LogView | null;\n\n handleResize() {\n this.updateDimensions();\n }\n\n handleShow() {\n this.updateDimensions();\n if (this.logView) {\n this.logView.triggerFindWidget();\n\n if (this.isBottomVisible) {\n this.logView.scrollToBottom();\n }\n }\n }\n\n handleHide() {\n if (this.logView) {\n this.isBottomVisible = this.logView.isBottomVisible();\n }\n }\n\n handleSessionOpened(session: IdeSession) {\n log.debug('Session opened', [session]);\n this.setState({ session });\n }\n\n // eslint-disable-next-line class-methods-use-this\n handleSessionClosed(session: IdeSession) {\n log.debug('Session closed', session);\n // Keep the session reference in state unchanged until the session is re-connected\n }\n\n updateDimensions() {\n if (this.logView) {\n this.logView.updateDimensions();\n }\n }\n\n render() {\n const { glContainer, glEventHub } = this.props;\n const { session } = this.state;\n return (\n <Panel\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onResize={this.handleResize}\n onHide={this.handleHide}\n onShow={this.handleShow}\n onSessionOpen={this.handleSessionOpened}\n onSessionClose={this.handleSessionClosed}\n >\n {session == null && (\n <div className=\"log-panel-disconnected-message\">\n Waiting for session connection\n </div>\n )}\n {session != null && (\n <LogView\n session={session}\n ref={logView => {\n this.logView = logView;\n }}\n />\n )}\n </Panel>\n );\n }\n}\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: { localDashboardId: string }\n) => ({\n session: getDashboardSessionWrapper(state, ownProps.localDashboardId)\n ?.session,\n});\n\nconst ConnectedLogPanel = connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(LogPanel);\n\nexport default ConnectedLogPanel;\n"],"mappings":"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"}
@@ -6,7 +6,7 @@ import { FileStorage, File } from '@deephaven/file-explorer';
6
6
  import { WorkspaceSettings } from '@deephaven/redux';
7
7
  import { Pending } from '@deephaven/utils';
8
8
  import type { Container, EventEmitter, Tab } from '@deephaven/golden-layout';
9
- import { IdeSession } from '@deephaven/jsapi-shim';
9
+ import type { IdeSession } from '@deephaven/jsapi-types';
10
10
  import './NotebookPanel.scss';
11
11
  interface Metadata {
12
12
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"NotebookPanel.d.ts","sourceRoot":"","sources":["../../src/panels/NotebookPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NotebookPanel.d.ts","sourceRoot":"","sources":["../../src/panels/NotebookPanel.tsx"],"names":[],"mappings":"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"}