@deephaven/dashboard-core-plugins 0.9.4-beta.4 → 0.9.4-js-plugins.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ChartBuilderPlugin.d.ts +9 -0
- package/dist/ChartBuilderPlugin.d.ts.map +1 -0
- package/dist/ChartBuilderPlugin.js +55 -0
- package/dist/ChartBuilderPlugin.js.map +1 -0
- package/dist/ChartPlugin.d.ts.map +1 -1
- package/dist/ChartPlugin.js +27 -19
- package/dist/ChartPlugin.js.map +1 -1
- package/dist/GridPlugin.d.ts +1 -0
- package/dist/GridPlugin.d.ts.map +1 -1
- package/dist/GridPlugin.js +28 -19
- package/dist/GridPlugin.js.map +1 -1
- package/dist/PandasPlugin.d.ts.map +1 -1
- package/dist/PandasPlugin.js +27 -19
- package/dist/PandasPlugin.js.map +1 -1
- package/dist/events/ChartEvent.d.ts +2 -0
- package/dist/events/ChartEvent.d.ts.map +1 -1
- package/dist/events/ChartEvent.js.map +1 -1
- package/dist/events/IrisGridEvent.d.ts +3 -0
- package/dist/events/IrisGridEvent.d.ts.map +1 -1
- package/dist/events/IrisGridEvent.js +2 -0
- package/dist/events/IrisGridEvent.js.map +1 -1
- package/dist/events/PandasEvent.d.ts +2 -0
- package/dist/events/PandasEvent.d.ts.map +1 -1
- package/dist/events/PandasEvent.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/panels/ConsolePanel.d.ts +5 -3
- package/dist/panels/ConsolePanel.d.ts.map +1 -1
- package/dist/panels/ConsolePanel.js +16 -61
- package/dist/panels/ConsolePanel.js.map +1 -1
- package/dist/panels/IrisGridPanel.d.ts +11 -1
- package/dist/panels/IrisGridPanel.d.ts.map +1 -1
- package/dist/panels/IrisGridPanel.js +27 -16
- package/dist/panels/IrisGridPanel.js.map +1 -1
- package/package.json +16 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/panels/IrisGridPanel.jsx"],"names":["React","PureComponent","memoize","PropTypes","connect","debounce","ChartModelFactory","ChartUtils","GLPropTypes","LayoutUtils","IrisGrid","IrisGridModel","IrisGridUtils","IrisGridTableModel","TableUtils","AdvancedSettings","Log","getSettings","getUser","getWorkspace","PromiseUtils","ContextMenuRoot","ChartEvent","ConsoleEvent","InputFilterEvent","IrisGridEvent","getInputFiltersForDashboard","getLinksForDashboard","getColumnSelectionValidatorForDashboard","UIPropTypes","WidgetPanel","log","module","DEBOUNCE_PANEL_STATE_UPDATE","PLUGIN_COMPONENTS","IrisGridPanel","constructor","props","columns","inputFilters","getInputFiltersForColumns","filter","value","excludePanelIds","includes","getIdFromPanel","dashboardLinks","pluginFetchColumns","id","columnSet","Set","i","length","start","panelId","add","columnName","Plugin","table","user","workspace","pluginState","pluginRef","handlePluginFilter","handlePluginFetchColumns","handlePluginStateChange","model","isSelectingPartition","partition","partitionColumn","dehydrateIrisGridPanelState","sorts","advancedFilters","customColumnFormatMap","isFilterBarShown","quickFilters","customColumns","reverseType","rollupConfig","showSearchBar","searchValue","selectDistinctColumns","selectedSearchColumns","invertSearchColumns","userColumnWidths","userRowHeights","aggregationSettings","advancedSettings","pendingDataMap","frozenColumns","dehydrateIrisGridState","metrics","movedColumns","movedRows","isStuckToBottom","isStuckToRight","dehydrateGridState","irisGridPanelState","irisGridState","gridState","savePanelState","bind","handleAdvancedSettingsChange","handleColumnsChanged","handleTableChanged","handleColumnSelected","handleDataSelected","handleError","handleGridStateChange","handlePartitionAppend","handleCreateChart","handleResize","handleShow","handleDisconnect","handleReconnect","handleLoadSuccess","handleLoadError","isColumnSelectionValid","handleContextMenu","handleClearAllFilters","irisGrid","createRef","modelPromise","panelState","metadata","queryName","query","state","error","isDisconnected","isLoaded","isLoading","isModelReady","Map","aggregations","showOnTop","DEFAULTS","REVERSE_TYPE","NONE","pluginFilters","modelQueue","componentDidMount","initModel","componentDidUpdate","_","prevState","stopModelListening","close","startModelListening","componentWillUnmount","cancel","getTableName","setState","makeModel","makeCancelable","resolved","then","catch","modelParam","push","m","getModelRollupConfig","originalColumns","initModelQueue","modelInitialized","modelChange","shift","debug","key","get","set","filters","formatter","getFiltersFromInputFilters","timeZone","data","current","getMenu","tableColumn","columnSelectionValidator","glEventHub","onStateChange","emit","STATE_CHANGED","event","sendColumnsChange","detail","TABLE_CHANGED","column","name","tableName","command","SEND_COMMAND","settings","flush","makeModelFromSettings","querySerial","tableSettings","extractTableSettings","title","titleFromSettings","OPEN","dehydrateSettings","sourcePanelId","COLUMN_SELECTED","row","dataMap","DATA_SELECTED","updateGrid","Error","isCanceled","loadPlugin","loadPanelState","pluginName","clearAllFilters","debug2","COLUMNS_CHANGED","addEventListener","EVENT","DISCONNECT","RECONNECT","removeEventListener","getCoordinateForColumn","gridWrapper","rect","getBoundingClientRect","width","height","columnHeaderHeight","visibleColumnXs","visibleColumnWidths","right","visibleIndex","getVisibleColumn","getColumnIndexByName","columnX","columnWidth","x","Math","max","left","min","y","top","setFilterMap","filterMap","setAdvancedFilterMap","setFilters","hydrateQuickFilters","hydrateAdvancedFilters","unsetFilterValue","hydrateIrisGridPanelState","hydrateIrisGridState","hydrateGridState","onPanelStateUpdate","oldPanelState","getCachedPanelState","getDehydratedIrisGridPanelState","getDehydratedIrisGridState","getDehydratedGridState","grid","render","children","glContainer","getDownloadWorker","links","theme","errorMessage","description","childrenContent","getPluginContent","permissions","canCopy","canDownloadCsv","getAlwaysFetchColumns","getGridInputFilters","propTypes","node","Container","isRequired","EventHub","shape","string","arrayOf","array","func","InputFilter","Links","User","defaultProps","undefined","displayName","mapStateToProps","ownProps","localDashboardId","forwardRef"],"mappings":"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","sourcesContent":["// Wrapper for the IrisGrid 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 memoize from 'memoize-one';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport debounce from 'lodash.debounce';\nimport { ChartModelFactory, ChartUtils } from '@deephaven/chart';\nimport { GLPropTypes, LayoutUtils } from '@deephaven/dashboard';\nimport {\n IrisGrid,\n IrisGridModel,\n IrisGridUtils,\n IrisGridTableModel,\n TableUtils,\n} from '@deephaven/iris-grid';\nimport AdvancedSettings from '@deephaven/iris-grid/dist/sidebar/AdvancedSettings';\nimport Log from '@deephaven/log';\nimport { getSettings, getUser, getWorkspace } from '@deephaven/redux';\nimport { PromiseUtils } from '@deephaven/utils';\nimport { ContextMenuRoot } from '@deephaven/components';\nimport {\n ChartEvent,\n ConsoleEvent,\n InputFilterEvent,\n IrisGridEvent,\n} from '../events';\nimport {\n getInputFiltersForDashboard,\n getLinksForDashboard,\n getColumnSelectionValidatorForDashboard,\n} from '../redux';\nimport { UIPropTypes } from '../prop-types';\nimport WidgetPanel from './WidgetPanel';\nimport './IrisGridPanel.scss';\n\nconst log = Log.module('IrisGridPanel');\n\nconst DEBOUNCE_PANEL_STATE_UPDATE = 500;\n\nconst PLUGIN_COMPONENTS = { IrisGrid, IrisGridTableModel, ContextMenuRoot };\n\nexport class IrisGridPanel extends PureComponent {\n static COMPONENT = 'IrisGridPanel';\n\n constructor(props) {\n super(props);\n\n this.savePanelState = debounce(\n this.savePanelState.bind(this),\n DEBOUNCE_PANEL_STATE_UPDATE\n );\n\n this.handleAdvancedSettingsChange = this.handleAdvancedSettingsChange.bind(\n this\n );\n this.handleColumnsChanged = this.handleColumnsChanged.bind(this);\n this.handleTableChanged = this.handleTableChanged.bind(this);\n this.handleColumnSelected = this.handleColumnSelected.bind(this);\n this.handleDataSelected = this.handleDataSelected.bind(this);\n this.handleError = this.handleError.bind(this);\n this.handleGridStateChange = this.handleGridStateChange.bind(this);\n this.handlePluginStateChange = this.handlePluginStateChange.bind(this);\n this.handlePartitionAppend = this.handlePartitionAppend.bind(this);\n this.handleCreateChart = this.handleCreateChart.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleDisconnect = this.handleDisconnect.bind(this);\n this.handleReconnect = this.handleReconnect.bind(this);\n this.handleLoadSuccess = this.handleLoadSuccess.bind(this);\n this.handleLoadError = this.handleLoadError.bind(this);\n this.isColumnSelectionValid = this.isColumnSelectionValid.bind(this);\n this.handleContextMenu = this.handleContextMenu.bind(this);\n this.handlePluginFilter = this.handlePluginFilter.bind(this);\n this.handlePluginFetchColumns = this.handlePluginFetchColumns.bind(this);\n this.handleClearAllFilters = this.handleClearAllFilters.bind(this);\n\n this.irisGrid = React.createRef();\n this.pluginRef = React.createRef();\n this.modelPromise = null;\n\n const { panelState, metadata } = props;\n const queryName = metadata.query;\n\n this.irisGridState = null;\n this.gridState = null;\n this.pluginState = null;\n\n this.state = {\n error: null,\n isDisconnected: false,\n isLoaded: false,\n isLoading: true,\n isModelReady: false,\n model: null,\n\n // State is hydrated from panel state when table is loaded\n advancedFilters: new Map(),\n aggregationSettings: { aggregations: [], showOnTop: false },\n advancedSettings: new Map(AdvancedSettings.DEFAULTS),\n customColumns: [],\n customColumnFormatMap: new Map(),\n isFilterBarShown: false,\n quickFilters: new Map(),\n sorts: [],\n userColumnWidths: new Map(),\n userRowHeights: new Map(),\n reverseType: TableUtils.REVERSE_TYPE.NONE,\n movedColumns: [],\n movedRows: [],\n isSelectingPartition: false,\n partition: null,\n partitionColumn: null,\n queryName,\n rollupConfig: null,\n showSearchBar: false,\n searchValue: '',\n selectedSearchColumns: null,\n invertSearchColumns: true,\n Plugin: null,\n pluginFilters: [],\n pluginFetchColumns: [],\n modelQueue: [],\n pendingDataMap: new Map(),\n frozenColumns: null,\n\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n componentDidMount() {\n this.initModel();\n }\n\n componentDidUpdate(_, prevState) {\n const { model } = this.state;\n if (model !== prevState.model) {\n if (prevState.model != null) {\n this.stopModelListening(prevState.model);\n prevState.model.close();\n }\n if (model != null) {\n this.startModelListening(model);\n }\n }\n }\n\n componentWillUnmount() {\n this.savePanelState.cancel();\n\n if (this.modelPromise != null) {\n this.modelPromise.cancel();\n this.modelPromise = null;\n }\n\n const { model } = this.state;\n if (model) {\n this.stopModelListening(model);\n model.close();\n }\n }\n\n getTableName() {\n const { metadata } = this.props;\n return metadata.table;\n }\n\n getGridInputFilters = memoize((columns, inputFilters) =>\n IrisGridUtils.getInputFiltersForColumns(\n columns,\n // They may have picked a column, but not actually entered a value yet. In that case, don't need to update.\n inputFilters.filter(\n ({ value, excludePanelIds }) =>\n value != null &&\n (excludePanelIds == null ||\n !excludePanelIds.includes(LayoutUtils.getIdFromPanel(this)))\n )\n )\n );\n\n getAlwaysFetchColumns = memoize((dashboardLinks, pluginFetchColumns) => {\n const id = LayoutUtils.getIdFromPanel(this);\n // Always fetch columns which are the start/source of a link or columns specified by a plugin\n const columnSet = new Set(pluginFetchColumns);\n for (let i = 0; i < dashboardLinks.length; i += 1) {\n const { start } = dashboardLinks[i];\n if (start && start.panelId === id) {\n columnSet.add(start.columnName);\n }\n }\n return [...columnSet];\n });\n\n getPluginContent = memoize((Plugin, table, user, workspace, pluginState) => {\n if (Plugin == null || table == null) {\n return null;\n }\n\n return (\n <div className=\"iris-grid-plugin\">\n <Plugin\n ref={this.pluginRef}\n onFilter={this.handlePluginFilter}\n onFetchColumns={this.handlePluginFetchColumns}\n table={table}\n user={user}\n panel={this}\n workspace={workspace}\n components={PLUGIN_COMPONENTS}\n onStateChange={this.handlePluginStateChange}\n pluginState={pluginState}\n />\n </div>\n );\n });\n\n getDehydratedIrisGridPanelState = memoize(\n (model, isSelectingPartition, partition, partitionColumn) =>\n IrisGridUtils.dehydrateIrisGridPanelState(model, {\n isSelectingPartition,\n partition,\n partitionColumn,\n })\n );\n\n getDehydratedIrisGridState = memoize(\n (\n model,\n sorts,\n advancedFilters,\n customColumnFormatMap,\n isFilterBarShown,\n quickFilters,\n customColumns,\n reverseType,\n rollupConfig,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n userColumnWidths,\n userRowHeights,\n aggregationSettings,\n advancedSettings,\n pendingDataMap,\n frozenColumns\n ) =>\n IrisGridUtils.dehydrateIrisGridState(model, {\n advancedFilters,\n advancedSettings,\n aggregationSettings,\n customColumnFormatMap,\n isFilterBarShown,\n metrics: {\n userColumnWidths,\n userRowHeights,\n },\n quickFilters,\n customColumns,\n reverseType,\n rollupConfig,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n sorts,\n invertSearchColumns,\n pendingDataMap,\n frozenColumns,\n })\n );\n\n getDehydratedGridState = memoize(\n (model, movedColumns, movedRows, isStuckToBottom, isStuckToRight) =>\n IrisGridUtils.dehydrateGridState(model, {\n isStuckToBottom,\n isStuckToRight,\n movedColumns,\n movedRows,\n })\n );\n\n getCachedPanelState = memoize(\n (irisGridPanelState, irisGridState, gridState, pluginState) => ({\n irisGridPanelState,\n irisGridState,\n gridState,\n pluginState,\n })\n );\n\n initModel() {\n this.setState({ isModelReady: false, isLoading: true, error: null });\n const { makeModel } = this.props;\n if (this.modelPromise != null) {\n this.modelPromise.cancel();\n }\n this.modelPromise = PromiseUtils.makeCancelable(\n makeModel(),\n resolved => resolved.close\n );\n this.modelPromise.then(this.handleLoadSuccess).catch(this.handleLoadError);\n }\n\n handleLoadSuccess(modelParam) {\n const model = modelParam;\n const { panelState } = this.props;\n const modelQueue = [];\n\n if (panelState != null) {\n const { irisGridState } = panelState;\n const {\n aggregationSettings,\n customColumns,\n selectDistinctColumns = [],\n rollupConfig,\n } = irisGridState;\n\n if (customColumns.length > 0) {\n modelQueue.push(m => {\n // eslint-disable-next-line no-param-reassign\n m.customColumns = customColumns;\n });\n }\n\n if (rollupConfig != null && rollupConfig.columns.length > 0) {\n // originalColumns might change by the time this model queue item is applied.\n // Instead of pushing a static object, push the function\n // that calculates the config based on the updated model state.\n modelQueue.push(m => {\n // eslint-disable-next-line no-param-reassign\n m.rollupConfig = IrisGridUtils.getModelRollupConfig(\n m.originalColumns,\n rollupConfig,\n aggregationSettings\n );\n });\n }\n\n if (selectDistinctColumns.length > 0) {\n modelQueue.push(m => {\n // eslint-disable-next-line no-param-reassign\n m.selectDistinctColumns = selectDistinctColumns;\n });\n }\n }\n\n this.setState({ model, modelQueue });\n this.initModelQueue(model, modelQueue);\n }\n\n initModelQueue(modelParam, modelQueue) {\n const model = modelParam;\n if (modelQueue.length === 0) {\n this.modelInitialized(model);\n return;\n }\n const modelChange = modelQueue.shift();\n log.debug('initModelQueue', modelChange);\n // Apply next model change. Triggers columnschanged event.\n modelChange(model);\n this.setState({ modelQueue });\n }\n\n handleAdvancedSettingsChange(key, value) {\n log.debug('handleAdvancedSettingsChange', key, value);\n this.setState(({ advancedSettings }) =>\n advancedSettings.get(key) === value\n ? null\n : { advancedSettings: new Map(advancedSettings).set(key, value) }\n );\n }\n\n handlePluginFilter(filters) {\n const { model } = this.state;\n const { columns, formatter } = model;\n const pluginFilters = IrisGridUtils.getFiltersFromInputFilters(\n columns,\n filters,\n formatter.timeZone\n );\n this.setState({ pluginFilters });\n }\n\n handlePluginFetchColumns(pluginFetchColumns) {\n this.setState({ pluginFetchColumns });\n }\n\n handleContextMenu(data) {\n return this.pluginRef.current?.getMenu?.(data) ?? [];\n }\n\n isColumnSelectionValid(tableColumn) {\n const { columnSelectionValidator } = this.props;\n if (columnSelectionValidator) {\n return columnSelectionValidator(this, tableColumn);\n }\n return false;\n }\n\n handleGridStateChange(irisGridState, gridState) {\n this.irisGridState = irisGridState;\n this.gridState = gridState;\n\n // Grid sends it's first state change after it's finished loading\n this.setState({ isLoaded: true, isLoading: false });\n\n this.savePanelState();\n\n const { glEventHub, onStateChange } = this.props;\n glEventHub.emit(IrisGridEvent.STATE_CHANGED, this);\n onStateChange(irisGridState, gridState);\n }\n\n handlePluginStateChange(pluginState) {\n const { irisGridState, gridState } = this;\n this.pluginState = pluginState;\n // Do not save if there is null state\n // The save will happen when the grid loads\n if (irisGridState !== null && gridState !== null) {\n this.savePanelState();\n }\n }\n\n handleColumnsChanged(event) {\n const { isModelReady, model, modelQueue } = this.state;\n if (isModelReady) {\n this.sendColumnsChange(event.detail);\n } else {\n this.initModelQueue(model, modelQueue);\n }\n }\n\n handleTableChanged(event) {\n log.debug('handleTableChanged', event);\n const { glEventHub } = this.props;\n const { detail: table } = event;\n glEventHub.emit(InputFilterEvent.TABLE_CHANGED, this, table);\n }\n\n handlePartitionAppend(column, value) {\n const { glEventHub } = this.props;\n const { name } = column;\n const tableName = this.getTableName();\n const command = `${tableName} = ${tableName}.where(\"${name}=\\`${value}\\`\")`;\n glEventHub.emit(ConsoleEvent.SEND_COMMAND, command, false, true);\n }\n\n handleCreateChart(settings, table) {\n // Panel state is stored with the created chart, so flush it first\n this.savePanelState.flush();\n\n this.setState(\n () => null,\n () => {\n const makeModel = () =>\n ChartModelFactory.makeModelFromSettings(settings, table);\n\n const { glEventHub, inputFilters, metadata } = this.props;\n const { querySerial, table: tableName } = metadata;\n const { panelState } = this.state;\n const id = LayoutUtils.getIdFromPanel(this);\n\n const tableSettings = IrisGridUtils.extractTableSettings(\n panelState,\n inputFilters\n );\n const title = ChartUtils.titleFromSettings(settings);\n glEventHub.emit(ChartEvent.OPEN, title, makeModel, {\n querySerial,\n settings: ChartUtils.dehydrateSettings(settings),\n sourcePanelId: id,\n table: tableName,\n tableSettings,\n });\n }\n );\n }\n\n handleColumnSelected(column) {\n const { glEventHub } = this.props;\n glEventHub.emit(IrisGridEvent.COLUMN_SELECTED, this, column);\n }\n\n handleDataSelected(row, dataMap) {\n const { glEventHub } = this.props;\n glEventHub.emit(IrisGridEvent.DATA_SELECTED, this, dataMap);\n }\n\n handleResize() {\n this.updateGrid();\n }\n\n handleShow() {\n this.updateGrid();\n }\n\n handleError(error) {\n log.error(error);\n this.setState({ error, isLoading: false });\n }\n\n handleDisconnect() {\n this.setState({\n error: new Error('Table disconnected'),\n isDisconnected: true,\n isLoading: false,\n });\n }\n\n handleReconnect() {\n this.setState({ isDisconnected: false, error: null });\n }\n\n handleLoadError(error) {\n if (PromiseUtils.isCanceled(error)) {\n return;\n }\n\n this.handleError(error);\n }\n\n modelInitialized(model) {\n const { glEventHub, loadPlugin } = this.props;\n\n this.modelPromise = null;\n\n // Custom columns at this point already initialized, can load state\n this.loadPanelState(model);\n\n this.setState({ isModelReady: true });\n\n const { table } = model;\n const { pluginName } = table;\n if (loadPlugin && pluginName) {\n const Plugin = loadPlugin(pluginName);\n this.setState({ Plugin });\n }\n glEventHub.emit(InputFilterEvent.TABLE_CHANGED, this, table);\n\n this.sendColumnsChange(model.columns);\n }\n\n handleClearAllFilters() {\n const irisGrid = this.irisGrid.current;\n const { isDisconnected } = this.state;\n if (irisGrid != null && !isDisconnected) {\n irisGrid.clearAllFilters();\n }\n }\n\n sendColumnsChange(columns) {\n log.debug2('sendColumnsChange', columns);\n const { glEventHub } = this.props;\n glEventHub.emit(InputFilterEvent.COLUMNS_CHANGED, this, columns);\n }\n\n startModelListening(model) {\n model.addEventListener(\n IrisGridModel.EVENT.DISCONNECT,\n this.handleDisconnect\n );\n model.addEventListener(IrisGridModel.EVENT.RECONNECT, this.handleReconnect);\n model.addEventListener(\n IrisGridModel.EVENT.COLUMNS_CHANGED,\n this.handleColumnsChanged\n );\n model.addEventListener(\n IrisGridModel.EVENT.TABLE_CHANGED,\n this.handleTableChanged\n );\n }\n\n stopModelListening(model) {\n model.removeEventListener(\n IrisGridModel.EVENT.DISCONNECT,\n this.handleDisconnect\n );\n model.removeEventListener(\n IrisGridModel.EVENT.RECONNECT,\n this.handleReconnect\n );\n model.removeEventListener(\n IrisGridModel.EVENT.COLUMNS_CHANGED,\n this.handleColumnsChanged\n );\n model.removeEventListener(\n IrisGridModel.EVENT.TABLE_CHANGED,\n this.handleTableChanged\n );\n }\n\n getCoordinateForColumn(columnName) {\n const { model } = this.state;\n if (!model) {\n return null;\n }\n\n const irisGrid = this.irisGrid.current;\n const { gridWrapper } = irisGrid || {};\n const rect = gridWrapper?.getBoundingClientRect() ?? null;\n if (rect == null || rect.width <= 0 || rect.height <= 0) {\n return null;\n }\n\n const { metrics } = irisGrid.state;\n const {\n columnHeaderHeight,\n visibleColumnXs,\n visibleColumnWidths,\n right,\n } = metrics;\n const visibleIndex = irisGrid.getVisibleColumn(\n model.getColumnIndexByName(columnName)\n );\n const columnX = visibleColumnXs.get(visibleIndex) || 0;\n const columnWidth = visibleColumnWidths.get(visibleIndex) || 0;\n\n const x = Math.max(\n rect.left,\n Math.min(\n visibleIndex > right\n ? rect.right\n : rect.left + columnX + columnWidth * 0.5,\n rect.right\n )\n );\n const y = rect.top + columnHeaderHeight;\n\n return [x, y];\n }\n\n setFilterMap(filterMap) {\n const irisGrid = this.irisGrid.current;\n if (irisGrid != null) {\n irisGrid.setFilterMap(filterMap);\n }\n }\n\n setAdvancedFilterMap(filterMap) {\n const irisGrid = this.irisGrid.current;\n if (irisGrid != null) {\n irisGrid.setAdvancedFilterMap(filterMap);\n }\n }\n\n setFilters({ quickFilters, advancedFilters }) {\n const irisGrid = this.irisGrid.current;\n const { model, isDisconnected } = this.state;\n if (irisGrid != null && !isDisconnected) {\n const { columns, formatter } = model;\n irisGrid.clearAllFilters();\n irisGrid.setFilters({\n quickFilters: IrisGridUtils.hydrateQuickFilters(\n columns,\n quickFilters,\n formatter.timeZone\n ),\n advancedFilters: IrisGridUtils.hydrateAdvancedFilters(\n columns,\n advancedFilters,\n formatter.timeZone\n ),\n });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n unsetFilterValue() {\n // IrisGridPanel retains the set value after the link is broken\n }\n\n loadPanelState(model) {\n const { panelState } = this.props;\n if (panelState == null) {\n return;\n }\n\n try {\n const { gridState, irisGridState, irisGridPanelState } = panelState;\n const {\n isSelectingPartition,\n partition,\n partitionColumn,\n } = IrisGridUtils.hydrateIrisGridPanelState(model, irisGridPanelState);\n const {\n advancedFilters,\n advancedSettings,\n customColumns,\n customColumnFormatMap,\n isFilterBarShown,\n quickFilters,\n reverseType,\n rollupConfig,\n aggregationSettings,\n sorts,\n userColumnWidths,\n userRowHeights,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n pendingDataMap,\n frozenColumns,\n } = IrisGridUtils.hydrateIrisGridState(model, irisGridState);\n const {\n isStuckToBottom,\n isStuckToRight,\n movedColumns,\n movedRows,\n } = IrisGridUtils.hydrateGridState(\n model,\n gridState,\n irisGridState.customColumns\n );\n this.setState({\n advancedFilters,\n advancedSettings,\n customColumns,\n customColumnFormatMap,\n isFilterBarShown,\n isSelectingPartition,\n movedColumns,\n movedRows,\n partition,\n partitionColumn,\n quickFilters,\n reverseType,\n rollupConfig,\n aggregationSettings,\n sorts,\n userColumnWidths,\n userRowHeights,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n pendingDataMap,\n frozenColumns,\n isStuckToBottom,\n isStuckToRight,\n });\n } catch (error) {\n log.error('loadPanelState failed to load panelState', panelState, error);\n }\n }\n\n savePanelState() {\n const { irisGridState, gridState, pluginState } = this;\n const { onPanelStateUpdate } = this.props;\n const {\n model,\n panelState: oldPanelState,\n isSelectingPartition,\n partition,\n partitionColumn,\n advancedSettings,\n } = this.state;\n const {\n advancedFilters,\n aggregationSettings,\n customColumnFormatMap,\n isFilterBarShown,\n quickFilters,\n customColumns,\n reverseType,\n rollupConfig,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n sorts,\n invertSearchColumns,\n metrics,\n pendingDataMap,\n frozenColumns,\n } = irisGridState;\n const { userColumnWidths, userRowHeights } = metrics;\n const {\n isStuckToBottom,\n isStuckToRight,\n movedColumns,\n movedRows,\n } = gridState;\n\n const panelState = this.getCachedPanelState(\n this.getDehydratedIrisGridPanelState(\n model,\n isSelectingPartition,\n partition,\n partitionColumn\n ),\n this.getDehydratedIrisGridState(\n model,\n sorts,\n advancedFilters,\n customColumnFormatMap,\n isFilterBarShown,\n quickFilters,\n customColumns,\n reverseType,\n rollupConfig,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n userColumnWidths,\n userRowHeights,\n aggregationSettings,\n advancedSettings,\n pendingDataMap,\n frozenColumns\n ),\n this.getDehydratedGridState(\n model,\n movedColumns,\n movedRows,\n isStuckToBottom,\n isStuckToRight\n ),\n pluginState\n );\n\n if (panelState !== oldPanelState) {\n log.debug('Saving panel state', this, panelState);\n\n this.setState({ panelState });\n onPanelStateUpdate(panelState);\n }\n }\n\n updateGrid() {\n const grid = this.irisGrid.current?.grid ?? null;\n if (!grid) return;\n\n // handle resize will verify state and draw and update\n grid.handleResize();\n }\n\n render() {\n const {\n children,\n glContainer,\n glEventHub,\n columnSelectionValidator,\n getDownloadWorker,\n inputFilters,\n links,\n metadata,\n panelState,\n user,\n workspace,\n settings,\n theme,\n } = this.props;\n const {\n advancedFilters,\n aggregationSettings,\n advancedSettings,\n customColumns,\n customColumnFormatMap,\n error,\n isDisconnected,\n isFilterBarShown,\n isSelectingPartition,\n isStuckToBottom,\n isStuckToRight,\n isLoaded,\n isLoading,\n isModelReady,\n model,\n movedColumns,\n movedRows,\n partition,\n partitionColumn,\n queryName,\n quickFilters,\n reverseType,\n rollupConfig,\n sorts,\n userColumnWidths,\n userRowHeights,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n Plugin,\n pluginFilters,\n pluginFetchColumns,\n pendingDataMap,\n frozenColumns,\n } = this.state;\n const errorMessage = error ? `Unable to open table. ${error}` : null;\n const { table: name, querySerial } = metadata;\n const description = model?.description ?? null;\n const pluginState = panelState?.pluginState ?? null;\n const childrenContent =\n children ??\n this.getPluginContent(Plugin, model?.table, user, workspace, pluginState);\n const { permissions } = user;\n const { canCopy, canDownloadCsv } = permissions;\n\n return (\n <WidgetPanel\n errorMessage={errorMessage}\n isDisconnected={isDisconnected}\n isLoading={isLoading}\n isLoaded={isLoaded}\n className=\"iris-grid-panel\"\n glContainer={glContainer}\n glEventHub={glEventHub}\n onClearAllFilters={this.handleClearAllFilters}\n onResize={this.handleResize}\n onShow={this.handleShow}\n onTabFocus={this.handleShow}\n queryName={queryName}\n querySerial={querySerial}\n widgetName={name}\n widgetType=\"Table\"\n description={description}\n componentPanel={this}\n >\n {isModelReady && (\n <IrisGrid\n advancedFilters={advancedFilters}\n aggregationSettings={aggregationSettings}\n advancedSettings={advancedSettings}\n alwaysFetchColumns={this.getAlwaysFetchColumns(\n links,\n pluginFetchColumns\n )}\n columnAllowedCursor=\"linker\"\n columnNotAllowedCursor=\"not-allowed\"\n customColumns={customColumns}\n customColumnFormatMap={customColumnFormatMap}\n columnSelectionValidator={this.isColumnSelectionValid}\n inputFilters={this.getGridInputFilters(model.columns, inputFilters)}\n applyInputFiltersOnInit={panelState == null}\n isFilterBarShown={isFilterBarShown}\n isSelectingColumn={columnSelectionValidator != null}\n isSelectingPartition={isSelectingPartition}\n isStuckToBottom={isStuckToBottom}\n isStuckToRight={isStuckToRight}\n movedColumns={movedColumns}\n movedRows={movedRows}\n partition={partition}\n partitionColumn={partitionColumn}\n quickFilters={quickFilters}\n reverseType={reverseType}\n rollupConfig={rollupConfig}\n settings={settings}\n sorts={sorts}\n userColumnWidths={userColumnWidths}\n userRowHeights={userRowHeights}\n model={model}\n tableName={name}\n showSearchBar={showSearchBar}\n searchValue={searchValue}\n selectedSearchColumns={selectedSearchColumns}\n selectDistinctColumns={selectDistinctColumns}\n invertSearchColumns={invertSearchColumns}\n onColumnSelected={this.handleColumnSelected}\n onCreateChart={this.handleCreateChart}\n onDataSelected={this.handleDataSelected}\n onError={this.handleError}\n onPartitionAppend={this.handlePartitionAppend}\n onStateChange={this.handleGridStateChange}\n onContextMenu={this.handleContextMenu}\n onAdvancedSettingsChange={this.handleAdvancedSettingsChange}\n customFilters={pluginFilters}\n pendingDataMap={pendingDataMap}\n canCopy={canCopy}\n canDownloadCsv={canDownloadCsv}\n ref={this.irisGrid}\n getDownloadWorker={getDownloadWorker}\n frozenColumns={frozenColumns}\n theme={theme}\n >\n {childrenContent}\n </IrisGrid>\n )}\n\n {!isModelReady && <></>}\n </WidgetPanel>\n );\n }\n}\n\nIrisGridPanel.propTypes = {\n children: PropTypes.node,\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n metadata: PropTypes.shape({\n table: PropTypes.string.isRequired,\n query: PropTypes.string,\n querySerial: PropTypes.string,\n }).isRequired,\n panelState: PropTypes.shape({\n gridState: PropTypes.shape({}),\n irisGridState: PropTypes.shape({\n aggregationSettings: PropTypes.shape({}),\n customColumns: PropTypes.arrayOf(PropTypes.string),\n selectDistinctColumns: PropTypes.arrayOf(PropTypes.string),\n rollupConfig: PropTypes.shape({\n columns: PropTypes.arrayOf(PropTypes.string).isRequired,\n }),\n pendingDataMap: PropTypes.arrayOf(PropTypes.array),\n frozenColumns: PropTypes.arrayOf(PropTypes.string),\n }),\n irisGridPanelState: PropTypes.shape({}),\n pluginState: PropTypes.shape({}),\n }),\n makeModel: PropTypes.func.isRequired,\n inputFilters: PropTypes.arrayOf(UIPropTypes.InputFilter).isRequired,\n links: UIPropTypes.Links.isRequired,\n columnSelectionValidator: PropTypes.func,\n onStateChange: PropTypes.func,\n onPanelStateUpdate: PropTypes.func,\n user: UIPropTypes.User.isRequired,\n workspace: PropTypes.shape({}).isRequired,\n settings: PropTypes.shape({ timeZone: PropTypes.string.isRequired })\n .isRequired,\n\n // Retrieve a download worker for optimizing exporting tables\n getDownloadWorker: PropTypes.func,\n\n // Load a plugin defined by the table\n loadPlugin: PropTypes.func,\n\n theme: PropTypes.shape({}),\n};\n\nIrisGridPanel.defaultProps = {\n children: null,\n panelState: null,\n columnSelectionValidator: null,\n onStateChange: () => {},\n onPanelStateUpdate: () => {},\n getDownloadWorker: undefined,\n loadPlugin: undefined,\n theme: undefined,\n};\n\nIrisGridPanel.displayName = 'IrisGridPanel';\n\nconst mapStateToProps = (state, ownProps) => {\n const { localDashboardId } = ownProps;\n return {\n inputFilters: getInputFiltersForDashboard(state, localDashboardId),\n links: getLinksForDashboard(state, localDashboardId),\n columnSelectionValidator: getColumnSelectionValidatorForDashboard(\n state,\n localDashboardId\n ),\n user: getUser(state),\n workspace: getWorkspace(state),\n settings: getSettings(state),\n };\n};\n\nexport default connect(mapStateToProps, null, null, { forwardRef: true })(\n IrisGridPanel\n);\n"],"file":"IrisGridPanel.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/panels/IrisGridPanel.jsx"],"names":["React","PureComponent","memoize","PropTypes","connect","debounce","GLPropTypes","LayoutUtils","IrisGrid","IrisGridModel","IrisGridUtils","IrisGridTableModel","TableUtils","AdvancedSettings","Log","getSettings","getUser","getWorkspace","PromiseUtils","ContextMenuRoot","ConsoleEvent","InputFilterEvent","IrisGridEvent","getInputFiltersForDashboard","getLinksForDashboard","getColumnSelectionValidatorForDashboard","UIPropTypes","WidgetPanel","log","module","DEBOUNCE_PANEL_STATE_UPDATE","PLUGIN_COMPONENTS","IrisGridPanel","constructor","props","columns","inputFilters","getInputFiltersForColumns","filter","value","excludePanelIds","includes","getIdFromPanel","dashboardLinks","pluginFetchColumns","id","columnSet","Set","i","length","start","panelId","add","columnName","Plugin","table","user","workspace","pluginState","pluginRef","handlePluginFilter","handlePluginFetchColumns","handlePluginStateChange","model","isSelectingPartition","partition","partitionColumn","dehydrateIrisGridPanelState","sorts","advancedFilters","customColumnFormatMap","isFilterBarShown","quickFilters","customColumns","reverseType","rollupConfig","showSearchBar","searchValue","selectDistinctColumns","selectedSearchColumns","invertSearchColumns","userColumnWidths","userRowHeights","aggregationSettings","advancedSettings","pendingDataMap","frozenColumns","dehydrateIrisGridState","metrics","movedColumns","movedRows","isStuckToBottom","isStuckToRight","dehydrateGridState","irisGridPanelState","irisGridState","gridState","savePanelState","bind","handleAdvancedSettingsChange","handleColumnsChanged","handleTableChanged","handleColumnSelected","handleDataSelected","handleError","handleGridStateChange","handlePartitionAppend","handleCreateChart","handleResize","handleShow","handleDisconnect","handleReconnect","handleLoadSuccess","handleLoadError","isColumnSelectionValid","handleContextMenu","handleClearAllFilters","irisGrid","createRef","modelPromise","panelState","metadata","queryName","query","state","error","isDisconnected","isLoaded","isLoading","isModelReady","Map","aggregations","showOnTop","DEFAULTS","REVERSE_TYPE","NONE","pluginFilters","modelQueue","componentDidMount","initModel","componentDidUpdate","_","prevState","stopModelListening","close","startModelListening","componentWillUnmount","cancel","getTableName","setState","makeModel","makeCancelable","resolved","then","catch","modelParam","push","m","getModelRollupConfig","originalColumns","initModelQueue","modelInitialized","modelChange","shift","debug","key","get","set","filters","formatter","getFiltersFromInputFilters","timeZone","data","current","getMenu","tableColumn","columnSelectionValidator","glEventHub","onStateChange","emit","STATE_CHANGED","event","sendColumnsChange","detail","TABLE_CHANGED","column","name","tableName","command","SEND_COMMAND","settings","flush","sourcePanelId","tableSettings","extractTableSettings","CREATE_CHART","COLUMN_SELECTED","row","dataMap","DATA_SELECTED","updateGrid","Error","isCanceled","loadPlugin","loadPanelState","pluginName","clearAllFilters","debug2","COLUMNS_CHANGED","addEventListener","EVENT","DISCONNECT","RECONNECT","removeEventListener","getCoordinateForColumn","gridWrapper","rect","getBoundingClientRect","width","height","columnHeaderHeight","visibleColumnXs","visibleColumnWidths","right","visibleIndex","getVisibleColumn","getColumnIndexByName","columnX","columnWidth","x","Math","max","left","min","y","top","setFilterMap","filterMap","setAdvancedFilterMap","setFilters","hydrateQuickFilters","hydrateAdvancedFilters","unsetFilterValue","hydrateIrisGridPanelState","hydrateIrisGridState","hydrateGridState","onPanelStateUpdate","oldPanelState","getCachedPanelState","getDehydratedIrisGridPanelState","getDehydratedIrisGridState","getDehydratedGridState","grid","render","children","glContainer","getDownloadWorker","links","theme","errorMessage","querySerial","description","childrenContent","getPluginContent","permissions","canCopy","canDownloadCsv","getAlwaysFetchColumns","getGridInputFilters","propTypes","node","Container","isRequired","EventHub","shape","string","arrayOf","array","func","InputFilter","Links","User","defaultProps","undefined","displayName","mapStateToProps","ownProps","localDashboardId","forwardRef"],"mappings":"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","sourcesContent":["// Wrapper for the IrisGrid 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 memoize from 'memoize-one';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport debounce from 'lodash.debounce';\nimport { GLPropTypes, LayoutUtils } from '@deephaven/dashboard';\nimport {\n IrisGrid,\n IrisGridModel,\n IrisGridUtils,\n IrisGridTableModel,\n TableUtils,\n} from '@deephaven/iris-grid';\nimport AdvancedSettings from '@deephaven/iris-grid/dist/sidebar/AdvancedSettings';\nimport Log from '@deephaven/log';\nimport { getSettings, getUser, getWorkspace } from '@deephaven/redux';\nimport { PromiseUtils } from '@deephaven/utils';\nimport { ContextMenuRoot } from '@deephaven/components';\nimport { ConsoleEvent, InputFilterEvent, IrisGridEvent } from '../events';\nimport {\n getInputFiltersForDashboard,\n getLinksForDashboard,\n getColumnSelectionValidatorForDashboard,\n} from '../redux';\nimport { UIPropTypes } from '../prop-types';\nimport WidgetPanel from './WidgetPanel';\nimport './IrisGridPanel.scss';\n\nconst log = Log.module('IrisGridPanel');\n\nconst DEBOUNCE_PANEL_STATE_UPDATE = 500;\n\nconst PLUGIN_COMPONENTS = { IrisGrid, IrisGridTableModel, ContextMenuRoot };\n\nexport class IrisGridPanel extends PureComponent {\n static COMPONENT = 'IrisGridPanel';\n\n constructor(props) {\n super(props);\n\n this.savePanelState = debounce(\n this.savePanelState.bind(this),\n DEBOUNCE_PANEL_STATE_UPDATE\n );\n\n this.handleAdvancedSettingsChange = this.handleAdvancedSettingsChange.bind(\n this\n );\n this.handleColumnsChanged = this.handleColumnsChanged.bind(this);\n this.handleTableChanged = this.handleTableChanged.bind(this);\n this.handleColumnSelected = this.handleColumnSelected.bind(this);\n this.handleDataSelected = this.handleDataSelected.bind(this);\n this.handleError = this.handleError.bind(this);\n this.handleGridStateChange = this.handleGridStateChange.bind(this);\n this.handlePluginStateChange = this.handlePluginStateChange.bind(this);\n this.handlePartitionAppend = this.handlePartitionAppend.bind(this);\n this.handleCreateChart = this.handleCreateChart.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleDisconnect = this.handleDisconnect.bind(this);\n this.handleReconnect = this.handleReconnect.bind(this);\n this.handleLoadSuccess = this.handleLoadSuccess.bind(this);\n this.handleLoadError = this.handleLoadError.bind(this);\n this.isColumnSelectionValid = this.isColumnSelectionValid.bind(this);\n this.handleContextMenu = this.handleContextMenu.bind(this);\n this.handlePluginFilter = this.handlePluginFilter.bind(this);\n this.handlePluginFetchColumns = this.handlePluginFetchColumns.bind(this);\n this.handleClearAllFilters = this.handleClearAllFilters.bind(this);\n\n this.irisGrid = React.createRef();\n this.pluginRef = React.createRef();\n this.modelPromise = null;\n\n const { panelState, metadata } = props;\n const queryName = metadata.query;\n\n this.irisGridState = null;\n this.gridState = null;\n this.pluginState = null;\n\n this.state = {\n error: null,\n isDisconnected: false,\n isLoaded: false,\n isLoading: true,\n isModelReady: false,\n model: null,\n\n // State is hydrated from panel state when table is loaded\n advancedFilters: new Map(),\n aggregationSettings: { aggregations: [], showOnTop: false },\n advancedSettings: new Map(AdvancedSettings.DEFAULTS),\n customColumns: [],\n customColumnFormatMap: new Map(),\n isFilterBarShown: false,\n quickFilters: new Map(),\n sorts: [],\n userColumnWidths: new Map(),\n userRowHeights: new Map(),\n reverseType: TableUtils.REVERSE_TYPE.NONE,\n movedColumns: [],\n movedRows: [],\n isSelectingPartition: false,\n partition: null,\n partitionColumn: null,\n queryName,\n rollupConfig: null,\n showSearchBar: false,\n searchValue: '',\n selectedSearchColumns: null,\n invertSearchColumns: true,\n Plugin: null,\n pluginFilters: [],\n pluginFetchColumns: [],\n modelQueue: [],\n pendingDataMap: new Map(),\n frozenColumns: null,\n\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n componentDidMount() {\n this.initModel();\n }\n\n componentDidUpdate(_, prevState) {\n const { model } = this.state;\n if (model !== prevState.model) {\n if (prevState.model != null) {\n this.stopModelListening(prevState.model);\n prevState.model.close();\n }\n if (model != null) {\n this.startModelListening(model);\n }\n }\n }\n\n componentWillUnmount() {\n this.savePanelState.cancel();\n\n if (this.modelPromise != null) {\n this.modelPromise.cancel();\n this.modelPromise = null;\n }\n\n const { model } = this.state;\n if (model) {\n this.stopModelListening(model);\n model.close();\n }\n }\n\n getTableName() {\n const { metadata } = this.props;\n return metadata.table;\n }\n\n getGridInputFilters = memoize((columns, inputFilters) =>\n IrisGridUtils.getInputFiltersForColumns(\n columns,\n // They may have picked a column, but not actually entered a value yet. In that case, don't need to update.\n inputFilters.filter(\n ({ value, excludePanelIds }) =>\n value != null &&\n (excludePanelIds == null ||\n !excludePanelIds.includes(LayoutUtils.getIdFromPanel(this)))\n )\n )\n );\n\n getAlwaysFetchColumns = memoize((dashboardLinks, pluginFetchColumns) => {\n const id = LayoutUtils.getIdFromPanel(this);\n // Always fetch columns which are the start/source of a link or columns specified by a plugin\n const columnSet = new Set(pluginFetchColumns);\n for (let i = 0; i < dashboardLinks.length; i += 1) {\n const { start } = dashboardLinks[i];\n if (start && start.panelId === id) {\n columnSet.add(start.columnName);\n }\n }\n return [...columnSet];\n });\n\n getPluginContent = memoize((Plugin, table, user, workspace, pluginState) => {\n if (Plugin == null || table == null) {\n return null;\n }\n\n return (\n <div className=\"iris-grid-plugin\">\n <Plugin\n ref={this.pluginRef}\n filter={this.handlePluginFilter}\n // onFilter is deprecated\n onFilter={this.handlePluginFilter}\n fetchColumns={this.handlePluginFetchColumns}\n // onFetchColumns is deprecated\n onFetchColumns={this.handlePluginFetchColumns}\n table={table}\n user={user}\n panel={this}\n workspace={workspace}\n components={PLUGIN_COMPONENTS}\n onStateChange={this.handlePluginStateChange}\n pluginState={pluginState}\n />\n </div>\n );\n });\n\n getDehydratedIrisGridPanelState = memoize(\n (model, isSelectingPartition, partition, partitionColumn) =>\n IrisGridUtils.dehydrateIrisGridPanelState(model, {\n isSelectingPartition,\n partition,\n partitionColumn,\n })\n );\n\n getDehydratedIrisGridState = memoize(\n (\n model,\n sorts,\n advancedFilters,\n customColumnFormatMap,\n isFilterBarShown,\n quickFilters,\n customColumns,\n reverseType,\n rollupConfig,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n userColumnWidths,\n userRowHeights,\n aggregationSettings,\n advancedSettings,\n pendingDataMap,\n frozenColumns\n ) =>\n IrisGridUtils.dehydrateIrisGridState(model, {\n advancedFilters,\n advancedSettings,\n aggregationSettings,\n customColumnFormatMap,\n isFilterBarShown,\n metrics: {\n userColumnWidths,\n userRowHeights,\n },\n quickFilters,\n customColumns,\n reverseType,\n rollupConfig,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n sorts,\n invertSearchColumns,\n pendingDataMap,\n frozenColumns,\n })\n );\n\n getDehydratedGridState = memoize(\n (model, movedColumns, movedRows, isStuckToBottom, isStuckToRight) =>\n IrisGridUtils.dehydrateGridState(model, {\n isStuckToBottom,\n isStuckToRight,\n movedColumns,\n movedRows,\n })\n );\n\n getCachedPanelState = memoize(\n (irisGridPanelState, irisGridState, gridState, pluginState) => ({\n irisGridPanelState,\n irisGridState,\n gridState,\n pluginState,\n })\n );\n\n initModel() {\n this.setState({ isModelReady: false, isLoading: true, error: null });\n const { makeModel } = this.props;\n if (this.modelPromise != null) {\n this.modelPromise.cancel();\n }\n this.modelPromise = PromiseUtils.makeCancelable(\n makeModel(),\n resolved => resolved.close\n );\n this.modelPromise.then(this.handleLoadSuccess).catch(this.handleLoadError);\n }\n\n handleLoadSuccess(modelParam) {\n const model = modelParam;\n const { panelState } = this.props;\n const modelQueue = [];\n\n if (panelState != null) {\n const { irisGridState } = panelState;\n const {\n aggregationSettings,\n customColumns,\n selectDistinctColumns = [],\n rollupConfig,\n } = irisGridState;\n\n if (customColumns.length > 0) {\n modelQueue.push(m => {\n // eslint-disable-next-line no-param-reassign\n m.customColumns = customColumns;\n });\n }\n\n if (rollupConfig != null && rollupConfig.columns.length > 0) {\n // originalColumns might change by the time this model queue item is applied.\n // Instead of pushing a static object, push the function\n // that calculates the config based on the updated model state.\n modelQueue.push(m => {\n // eslint-disable-next-line no-param-reassign\n m.rollupConfig = IrisGridUtils.getModelRollupConfig(\n m.originalColumns,\n rollupConfig,\n aggregationSettings\n );\n });\n }\n\n if (selectDistinctColumns.length > 0) {\n modelQueue.push(m => {\n // eslint-disable-next-line no-param-reassign\n m.selectDistinctColumns = selectDistinctColumns;\n });\n }\n }\n\n this.setState({ model, modelQueue });\n this.initModelQueue(model, modelQueue);\n }\n\n initModelQueue(modelParam, modelQueue) {\n const model = modelParam;\n if (modelQueue.length === 0) {\n this.modelInitialized(model);\n return;\n }\n const modelChange = modelQueue.shift();\n log.debug('initModelQueue', modelChange);\n // Apply next model change. Triggers columnschanged event.\n modelChange(model);\n this.setState({ modelQueue });\n }\n\n handleAdvancedSettingsChange(key, value) {\n log.debug('handleAdvancedSettingsChange', key, value);\n this.setState(({ advancedSettings }) =>\n advancedSettings.get(key) === value\n ? null\n : { advancedSettings: new Map(advancedSettings).set(key, value) }\n );\n }\n\n handlePluginFilter(filters) {\n const { model } = this.state;\n const { columns, formatter } = model;\n const pluginFilters = IrisGridUtils.getFiltersFromInputFilters(\n columns,\n filters,\n formatter.timeZone\n );\n this.setState({ pluginFilters });\n }\n\n handlePluginFetchColumns(pluginFetchColumns) {\n this.setState({ pluginFetchColumns });\n }\n\n handleContextMenu(data) {\n return this.pluginRef.current?.getMenu?.(data) ?? [];\n }\n\n isColumnSelectionValid(tableColumn) {\n const { columnSelectionValidator } = this.props;\n if (columnSelectionValidator) {\n return columnSelectionValidator(this, tableColumn);\n }\n return false;\n }\n\n handleGridStateChange(irisGridState, gridState) {\n this.irisGridState = irisGridState;\n this.gridState = gridState;\n\n // Grid sends it's first state change after it's finished loading\n this.setState({ isLoaded: true, isLoading: false });\n\n this.savePanelState();\n\n const { glEventHub, onStateChange } = this.props;\n glEventHub.emit(IrisGridEvent.STATE_CHANGED, this);\n onStateChange(irisGridState, gridState);\n }\n\n handlePluginStateChange(pluginState) {\n const { irisGridState, gridState } = this;\n this.pluginState = pluginState;\n // Do not save if there is null state\n // The save will happen when the grid loads\n if (irisGridState !== null && gridState !== null) {\n this.savePanelState();\n }\n }\n\n handleColumnsChanged(event) {\n const { isModelReady, model, modelQueue } = this.state;\n if (isModelReady) {\n this.sendColumnsChange(event.detail);\n } else {\n this.initModelQueue(model, modelQueue);\n }\n }\n\n handleTableChanged(event) {\n log.debug('handleTableChanged', event);\n const { glEventHub } = this.props;\n const { detail: table } = event;\n glEventHub.emit(InputFilterEvent.TABLE_CHANGED, this, table);\n }\n\n handlePartitionAppend(column, value) {\n const { glEventHub } = this.props;\n const { name } = column;\n const tableName = this.getTableName();\n const command = `${tableName} = ${tableName}.where(\"${name}=\\`${value}\\`\")`;\n glEventHub.emit(ConsoleEvent.SEND_COMMAND, command, false, true);\n }\n\n /**\n * Create a chart with the specified settings\n * @param {ChartBuilderSettings} settings The settings from the chart builder\n * @param {string} settings.type The settings from the chart builder\n * @param {string[]} settings.series The names of the series\n * @param {string} xAxis The xAxis for this chart\n * @param {boolean} isLinked Whether this chart should be linked or not\n * @param {IrisGridModel} model The IrisGridModel object\n */\n handleCreateChart(settings, model) {\n // Panel state is stored with the created chart, so flush it first\n this.savePanelState.flush();\n\n this.setState(\n () => null,\n () => {\n const { glEventHub, inputFilters, metadata } = this.props;\n const { table } = metadata;\n const { panelState } = this.state;\n const sourcePanelId = LayoutUtils.getIdFromPanel(this);\n const tableSettings = IrisGridUtils.extractTableSettings(\n panelState,\n inputFilters\n );\n glEventHub.emit(IrisGridEvent.CREATE_CHART, {\n metadata: {\n settings,\n sourcePanelId,\n table,\n tableSettings,\n },\n table: model.table,\n });\n }\n );\n }\n\n handleColumnSelected(column) {\n const { glEventHub } = this.props;\n glEventHub.emit(IrisGridEvent.COLUMN_SELECTED, this, column);\n }\n\n handleDataSelected(row, dataMap) {\n const { glEventHub } = this.props;\n glEventHub.emit(IrisGridEvent.DATA_SELECTED, this, dataMap);\n }\n\n handleResize() {\n this.updateGrid();\n }\n\n handleShow() {\n this.updateGrid();\n }\n\n handleError(error) {\n log.error(error);\n this.setState({ error, isLoading: false });\n }\n\n handleDisconnect() {\n this.setState({\n error: new Error('Table disconnected'),\n isDisconnected: true,\n isLoading: false,\n });\n }\n\n handleReconnect() {\n this.setState({ isDisconnected: false, error: null });\n }\n\n handleLoadError(error) {\n if (PromiseUtils.isCanceled(error)) {\n return;\n }\n\n this.handleError(error);\n }\n\n modelInitialized(model) {\n const { glEventHub, loadPlugin } = this.props;\n\n this.modelPromise = null;\n\n // Custom columns at this point already initialized, can load state\n this.loadPanelState(model);\n\n this.setState({ isModelReady: true });\n\n const { table } = model;\n const { pluginName } = table;\n if (loadPlugin && pluginName) {\n const Plugin = loadPlugin(pluginName);\n this.setState({ Plugin });\n }\n glEventHub.emit(InputFilterEvent.TABLE_CHANGED, this, table);\n\n this.sendColumnsChange(model.columns);\n }\n\n handleClearAllFilters() {\n const irisGrid = this.irisGrid.current;\n const { isDisconnected } = this.state;\n if (irisGrid != null && !isDisconnected) {\n irisGrid.clearAllFilters();\n }\n }\n\n sendColumnsChange(columns) {\n log.debug2('sendColumnsChange', columns);\n const { glEventHub } = this.props;\n glEventHub.emit(InputFilterEvent.COLUMNS_CHANGED, this, columns);\n }\n\n startModelListening(model) {\n model.addEventListener(\n IrisGridModel.EVENT.DISCONNECT,\n this.handleDisconnect\n );\n model.addEventListener(IrisGridModel.EVENT.RECONNECT, this.handleReconnect);\n model.addEventListener(\n IrisGridModel.EVENT.COLUMNS_CHANGED,\n this.handleColumnsChanged\n );\n model.addEventListener(\n IrisGridModel.EVENT.TABLE_CHANGED,\n this.handleTableChanged\n );\n }\n\n stopModelListening(model) {\n model.removeEventListener(\n IrisGridModel.EVENT.DISCONNECT,\n this.handleDisconnect\n );\n model.removeEventListener(\n IrisGridModel.EVENT.RECONNECT,\n this.handleReconnect\n );\n model.removeEventListener(\n IrisGridModel.EVENT.COLUMNS_CHANGED,\n this.handleColumnsChanged\n );\n model.removeEventListener(\n IrisGridModel.EVENT.TABLE_CHANGED,\n this.handleTableChanged\n );\n }\n\n getCoordinateForColumn(columnName) {\n const { model } = this.state;\n if (!model) {\n return null;\n }\n\n const irisGrid = this.irisGrid.current;\n const { gridWrapper } = irisGrid || {};\n const rect = gridWrapper?.getBoundingClientRect() ?? null;\n if (rect == null || rect.width <= 0 || rect.height <= 0) {\n return null;\n }\n\n const { metrics } = irisGrid.state;\n const {\n columnHeaderHeight,\n visibleColumnXs,\n visibleColumnWidths,\n right,\n } = metrics;\n const visibleIndex = irisGrid.getVisibleColumn(\n model.getColumnIndexByName(columnName)\n );\n const columnX = visibleColumnXs.get(visibleIndex) || 0;\n const columnWidth = visibleColumnWidths.get(visibleIndex) || 0;\n\n const x = Math.max(\n rect.left,\n Math.min(\n visibleIndex > right\n ? rect.right\n : rect.left + columnX + columnWidth * 0.5,\n rect.right\n )\n );\n const y = rect.top + columnHeaderHeight;\n\n return [x, y];\n }\n\n setFilterMap(filterMap) {\n const irisGrid = this.irisGrid.current;\n if (irisGrid != null) {\n irisGrid.setFilterMap(filterMap);\n }\n }\n\n setAdvancedFilterMap(filterMap) {\n const irisGrid = this.irisGrid.current;\n if (irisGrid != null) {\n irisGrid.setAdvancedFilterMap(filterMap);\n }\n }\n\n setFilters({ quickFilters, advancedFilters }) {\n const irisGrid = this.irisGrid.current;\n const { model, isDisconnected } = this.state;\n if (irisGrid != null && !isDisconnected) {\n const { columns, formatter } = model;\n irisGrid.clearAllFilters();\n irisGrid.setFilters({\n quickFilters: IrisGridUtils.hydrateQuickFilters(\n columns,\n quickFilters,\n formatter.timeZone\n ),\n advancedFilters: IrisGridUtils.hydrateAdvancedFilters(\n columns,\n advancedFilters,\n formatter.timeZone\n ),\n });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n unsetFilterValue() {\n // IrisGridPanel retains the set value after the link is broken\n }\n\n loadPanelState(model) {\n const { panelState } = this.props;\n if (panelState == null) {\n return;\n }\n\n try {\n const { gridState, irisGridState, irisGridPanelState } = panelState;\n const {\n isSelectingPartition,\n partition,\n partitionColumn,\n } = IrisGridUtils.hydrateIrisGridPanelState(model, irisGridPanelState);\n const {\n advancedFilters,\n advancedSettings,\n customColumns,\n customColumnFormatMap,\n isFilterBarShown,\n quickFilters,\n reverseType,\n rollupConfig,\n aggregationSettings,\n sorts,\n userColumnWidths,\n userRowHeights,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n pendingDataMap,\n frozenColumns,\n } = IrisGridUtils.hydrateIrisGridState(model, irisGridState);\n const {\n isStuckToBottom,\n isStuckToRight,\n movedColumns,\n movedRows,\n } = IrisGridUtils.hydrateGridState(\n model,\n gridState,\n irisGridState.customColumns\n );\n this.setState({\n advancedFilters,\n advancedSettings,\n customColumns,\n customColumnFormatMap,\n isFilterBarShown,\n isSelectingPartition,\n movedColumns,\n movedRows,\n partition,\n partitionColumn,\n quickFilters,\n reverseType,\n rollupConfig,\n aggregationSettings,\n sorts,\n userColumnWidths,\n userRowHeights,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n pendingDataMap,\n frozenColumns,\n isStuckToBottom,\n isStuckToRight,\n });\n } catch (error) {\n log.error('loadPanelState failed to load panelState', panelState, error);\n }\n }\n\n savePanelState() {\n const { irisGridState, gridState, pluginState } = this;\n const { onPanelStateUpdate } = this.props;\n const {\n model,\n panelState: oldPanelState,\n isSelectingPartition,\n partition,\n partitionColumn,\n advancedSettings,\n } = this.state;\n const {\n advancedFilters,\n aggregationSettings,\n customColumnFormatMap,\n isFilterBarShown,\n quickFilters,\n customColumns,\n reverseType,\n rollupConfig,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n sorts,\n invertSearchColumns,\n metrics,\n pendingDataMap,\n frozenColumns,\n } = irisGridState;\n const { userColumnWidths, userRowHeights } = metrics;\n const {\n isStuckToBottom,\n isStuckToRight,\n movedColumns,\n movedRows,\n } = gridState;\n\n const panelState = this.getCachedPanelState(\n this.getDehydratedIrisGridPanelState(\n model,\n isSelectingPartition,\n partition,\n partitionColumn\n ),\n this.getDehydratedIrisGridState(\n model,\n sorts,\n advancedFilters,\n customColumnFormatMap,\n isFilterBarShown,\n quickFilters,\n customColumns,\n reverseType,\n rollupConfig,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n userColumnWidths,\n userRowHeights,\n aggregationSettings,\n advancedSettings,\n pendingDataMap,\n frozenColumns\n ),\n this.getDehydratedGridState(\n model,\n movedColumns,\n movedRows,\n isStuckToBottom,\n isStuckToRight\n ),\n pluginState\n );\n\n if (panelState !== oldPanelState) {\n log.debug('Saving panel state', this, panelState);\n\n this.setState({ panelState });\n onPanelStateUpdate(panelState);\n }\n }\n\n updateGrid() {\n const grid = this.irisGrid.current?.grid ?? null;\n if (!grid) return;\n\n // handle resize will verify state and draw and update\n grid.handleResize();\n }\n\n render() {\n const {\n children,\n glContainer,\n glEventHub,\n columnSelectionValidator,\n getDownloadWorker,\n inputFilters,\n links,\n metadata,\n panelState,\n user,\n workspace,\n settings,\n theme,\n } = this.props;\n const {\n advancedFilters,\n aggregationSettings,\n advancedSettings,\n customColumns,\n customColumnFormatMap,\n error,\n isDisconnected,\n isFilterBarShown,\n isSelectingPartition,\n isStuckToBottom,\n isStuckToRight,\n isLoaded,\n isLoading,\n isModelReady,\n model,\n movedColumns,\n movedRows,\n partition,\n partitionColumn,\n queryName,\n quickFilters,\n reverseType,\n rollupConfig,\n sorts,\n userColumnWidths,\n userRowHeights,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n Plugin,\n pluginFilters,\n pluginFetchColumns,\n pendingDataMap,\n frozenColumns,\n } = this.state;\n const errorMessage = error ? `Unable to open table. ${error}` : null;\n const { table: name, querySerial } = metadata;\n const description = model?.description ?? null;\n const pluginState = panelState?.pluginState ?? null;\n const childrenContent =\n children ??\n this.getPluginContent(Plugin, model?.table, user, workspace, pluginState);\n const { permissions } = user;\n const { canCopy, canDownloadCsv } = permissions;\n\n return (\n <WidgetPanel\n errorMessage={errorMessage}\n isDisconnected={isDisconnected}\n isLoading={isLoading}\n isLoaded={isLoaded}\n className=\"iris-grid-panel\"\n glContainer={glContainer}\n glEventHub={glEventHub}\n onClearAllFilters={this.handleClearAllFilters}\n onResize={this.handleResize}\n onShow={this.handleShow}\n onTabFocus={this.handleShow}\n queryName={queryName}\n querySerial={querySerial}\n widgetName={name}\n widgetType=\"Table\"\n description={description}\n componentPanel={this}\n >\n {isModelReady && (\n <IrisGrid\n advancedFilters={advancedFilters}\n aggregationSettings={aggregationSettings}\n advancedSettings={advancedSettings}\n alwaysFetchColumns={this.getAlwaysFetchColumns(\n links,\n pluginFetchColumns\n )}\n columnAllowedCursor=\"linker\"\n columnNotAllowedCursor=\"not-allowed\"\n customColumns={customColumns}\n customColumnFormatMap={customColumnFormatMap}\n columnSelectionValidator={this.isColumnSelectionValid}\n inputFilters={this.getGridInputFilters(model.columns, inputFilters)}\n applyInputFiltersOnInit={panelState == null}\n isFilterBarShown={isFilterBarShown}\n isSelectingColumn={columnSelectionValidator != null}\n isSelectingPartition={isSelectingPartition}\n isStuckToBottom={isStuckToBottom}\n isStuckToRight={isStuckToRight}\n movedColumns={movedColumns}\n movedRows={movedRows}\n partition={partition}\n partitionColumn={partitionColumn}\n quickFilters={quickFilters}\n reverseType={reverseType}\n rollupConfig={rollupConfig}\n settings={settings}\n sorts={sorts}\n userColumnWidths={userColumnWidths}\n userRowHeights={userRowHeights}\n model={model}\n tableName={name}\n showSearchBar={showSearchBar}\n searchValue={searchValue}\n selectedSearchColumns={selectedSearchColumns}\n selectDistinctColumns={selectDistinctColumns}\n invertSearchColumns={invertSearchColumns}\n onColumnSelected={this.handleColumnSelected}\n onCreateChart={this.handleCreateChart}\n onDataSelected={this.handleDataSelected}\n onError={this.handleError}\n onPartitionAppend={this.handlePartitionAppend}\n onStateChange={this.handleGridStateChange}\n onContextMenu={this.handleContextMenu}\n onAdvancedSettingsChange={this.handleAdvancedSettingsChange}\n customFilters={pluginFilters}\n pendingDataMap={pendingDataMap}\n canCopy={canCopy}\n canDownloadCsv={canDownloadCsv}\n ref={this.irisGrid}\n getDownloadWorker={getDownloadWorker}\n frozenColumns={frozenColumns}\n theme={theme}\n >\n {childrenContent}\n </IrisGrid>\n )}\n\n {!isModelReady && <></>}\n </WidgetPanel>\n );\n }\n}\n\nIrisGridPanel.propTypes = {\n children: PropTypes.node,\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n metadata: PropTypes.shape({\n table: PropTypes.string.isRequired,\n query: PropTypes.string,\n querySerial: PropTypes.string,\n }).isRequired,\n panelState: PropTypes.shape({\n gridState: PropTypes.shape({}),\n irisGridState: PropTypes.shape({\n aggregationSettings: PropTypes.shape({}),\n customColumns: PropTypes.arrayOf(PropTypes.string),\n selectDistinctColumns: PropTypes.arrayOf(PropTypes.string),\n rollupConfig: PropTypes.shape({\n columns: PropTypes.arrayOf(PropTypes.string).isRequired,\n }),\n pendingDataMap: PropTypes.arrayOf(PropTypes.array),\n frozenColumns: PropTypes.arrayOf(PropTypes.string),\n }),\n irisGridPanelState: PropTypes.shape({}),\n pluginState: PropTypes.shape({}),\n }),\n makeModel: PropTypes.func.isRequired,\n inputFilters: PropTypes.arrayOf(UIPropTypes.InputFilter).isRequired,\n links: UIPropTypes.Links.isRequired,\n columnSelectionValidator: PropTypes.func,\n onStateChange: PropTypes.func,\n onPanelStateUpdate: PropTypes.func,\n user: UIPropTypes.User.isRequired,\n workspace: PropTypes.shape({}).isRequired,\n settings: PropTypes.shape({ timeZone: PropTypes.string.isRequired })\n .isRequired,\n\n // Retrieve a download worker for optimizing exporting tables\n getDownloadWorker: PropTypes.func,\n\n // Load a plugin defined by the table\n loadPlugin: PropTypes.func,\n\n theme: PropTypes.shape({}),\n};\n\nIrisGridPanel.defaultProps = {\n children: null,\n panelState: null,\n columnSelectionValidator: null,\n onStateChange: () => {},\n onPanelStateUpdate: () => {},\n getDownloadWorker: undefined,\n loadPlugin: undefined,\n theme: undefined,\n};\n\nIrisGridPanel.displayName = 'IrisGridPanel';\n\nconst mapStateToProps = (state, ownProps) => {\n const { localDashboardId } = ownProps;\n return {\n inputFilters: getInputFiltersForDashboard(state, localDashboardId),\n links: getLinksForDashboard(state, localDashboardId),\n columnSelectionValidator: getColumnSelectionValidatorForDashboard(\n state,\n localDashboardId\n ),\n user: getUser(state),\n workspace: getWorkspace(state),\n settings: getSettings(state),\n };\n};\n\nexport default connect(mapStateToProps, null, null, { forwardRef: true })(\n IrisGridPanel\n);\n"],"file":"IrisGridPanel.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/dashboard-core-plugins",
|
|
3
|
-
"version": "0.9.4-
|
|
3
|
+
"version": "0.9.4-js-plugins.9+b9ea40a",
|
|
4
4
|
"description": "Deephaven Dashboard Core Plugins",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -29,15 +29,15 @@
|
|
|
29
29
|
"start": "cross-env NODE_ENV=development npm run watch"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@deephaven/chart": "^0.9.4-
|
|
33
|
-
"@deephaven/console": "^0.9.4-
|
|
34
|
-
"@deephaven/dashboard": "^0.9.4-
|
|
35
|
-
"@deephaven/file-explorer": "^0.9.4-
|
|
36
|
-
"@deephaven/golden-layout": "^0.9.4-
|
|
37
|
-
"@deephaven/icons": "^0.9.4-
|
|
38
|
-
"@deephaven/iris-grid": "^0.9.4-
|
|
39
|
-
"@deephaven/jsapi-shim": "^0.9.4-
|
|
40
|
-
"@deephaven/utils": "^0.9.4-
|
|
32
|
+
"@deephaven/chart": "^0.9.4-js-plugins.9+b9ea40a",
|
|
33
|
+
"@deephaven/console": "^0.9.4-js-plugins.9+b9ea40a",
|
|
34
|
+
"@deephaven/dashboard": "^0.9.4-js-plugins.9+b9ea40a",
|
|
35
|
+
"@deephaven/file-explorer": "^0.9.4-js-plugins.9+b9ea40a",
|
|
36
|
+
"@deephaven/golden-layout": "^0.9.4-js-plugins.9+b9ea40a",
|
|
37
|
+
"@deephaven/icons": "^0.9.4-js-plugins.9+b9ea40a",
|
|
38
|
+
"@deephaven/iris-grid": "^0.9.4-js-plugins.9+b9ea40a",
|
|
39
|
+
"@deephaven/jsapi-shim": "^0.9.4-js-plugins.9+b9ea40a",
|
|
40
|
+
"@deephaven/utils": "^0.9.4-js-plugins.9+b9ea40a",
|
|
41
41
|
"@fortawesome/react-fontawesome": "^0.1.12",
|
|
42
42
|
"classnames": "^2.3.1",
|
|
43
43
|
"deep-equal": "^2.0.4",
|
|
@@ -62,11 +62,11 @@
|
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
64
|
"@babel/cli": "^7.16.0",
|
|
65
|
-
"@deephaven/components": "^0.9.4-
|
|
66
|
-
"@deephaven/log": "^0.9.4-
|
|
67
|
-
"@deephaven/mocks": "^0.9.4-
|
|
68
|
-
"@deephaven/redux": "^0.9.4-
|
|
69
|
-
"@deephaven/tsconfig": "^0.9.4-
|
|
65
|
+
"@deephaven/components": "^0.9.4-js-plugins.9+b9ea40a",
|
|
66
|
+
"@deephaven/log": "^0.9.4-js-plugins.9+b9ea40a",
|
|
67
|
+
"@deephaven/mocks": "^0.9.4-js-plugins.9+b9ea40a",
|
|
68
|
+
"@deephaven/redux": "^0.9.4-js-plugins.9+b9ea40a",
|
|
69
|
+
"@deephaven/tsconfig": "^0.9.4-js-plugins.9+b9ea40a",
|
|
70
70
|
"@storybook/addon-actions": "^6.2.3",
|
|
71
71
|
"@storybook/addon-essentials": "^6.2.3",
|
|
72
72
|
"@storybook/addon-links": "^6.2.3",
|
|
@@ -88,5 +88,5 @@
|
|
|
88
88
|
"publishConfig": {
|
|
89
89
|
"access": "public"
|
|
90
90
|
},
|
|
91
|
-
"gitHead": "
|
|
91
|
+
"gitHead": "b9ea40ab24f060dc1a201caec2082d76a92752d6"
|
|
92
92
|
}
|