@deephaven/dashboard-core-plugins 0.11.5-beta.1 → 0.11.6-beta.11
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/controls/dropdown-filter/DropdownFilter.css.map +1 -1
- package/dist/controls/input-filter/InputFilter.css.map +1 -1
- package/dist/linker/LinkerOverlayContent.css.map +1 -1
- package/dist/panels/FilterSetManager.css.map +1 -1
- package/dist/panels/FilterSetManager.d.ts +4 -1
- package/dist/panels/FilterSetManager.d.ts.map +1 -1
- package/dist/panels/FilterSetManager.js +45 -16
- package/dist/panels/FilterSetManager.js.map +1 -1
- package/dist/panels/FilterSetManagerPanel.css.map +1 -1
- package/dist/panels/FilterSetManagerPanel.d.ts +7 -8
- package/dist/panels/FilterSetManagerPanel.d.ts.map +1 -1
- package/dist/panels/FilterSetManagerPanel.js +42 -39
- package/dist/panels/FilterSetManagerPanel.js.map +1 -1
- package/dist/panels/IrisGridPanel.d.ts +2 -0
- package/dist/panels/IrisGridPanel.d.ts.map +1 -1
- package/dist/panels/IrisGridPanel.js +80 -20
- package/dist/panels/IrisGridPanel.js.map +1 -1
- package/dist/panels/Panel.d.ts +4 -0
- package/dist/panels/Panel.d.ts.map +1 -1
- package/dist/panels/Panel.js +12 -0
- package/dist/panels/Panel.js.map +1 -1
- package/dist/panels/WidgetPanel.d.ts +3 -0
- package/dist/panels/WidgetPanel.d.ts.map +1 -1
- package/dist/panels/WidgetPanel.js +7 -3
- package/dist/panels/WidgetPanel.js.map +1 -1
- package/package.json +15 -15
|
@@ -1 +1 @@
|
|
|
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","WidgetPanelTooltip","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","conditionalFormats","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","formattedRowCount","displayString","rowCount","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 WidgetPanelTooltip from './WidgetPanelTooltip';\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 conditionalFormats\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 conditionalFormats,\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 conditionalFormats,\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 conditionalFormats,\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 conditionalFormats,\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 conditionalFormats\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 conditionalFormats,\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 const formattedRowCount = model?.displayString(\n model?.rowCount ?? 0,\n 'long'\n );\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 renderTabTooltip={() => (\n <WidgetPanelTooltip\n widgetType=\"Table\"\n widgetName={name}\n glContainer={glContainer}\n description={description}\n >\n <div className=\"column-statistics-grid\">\n <span className=\"column-statistic-operation\">Number of Rows</span>\n <span className=\"column-statistic-value\">\n {formattedRowCount}\n </span>\n </div>\n </WidgetPanelTooltip>\n )}\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 conditionalFormats={conditionalFormats}\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 conditionalFormats: PropTypes.arrayOf(PropTypes.shape({})),\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","WidgetPanelTooltip","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","conditionalFormats","dehydrateIrisGridState","metrics","movedColumns","movedRows","isStuckToBottom","isStuckToRight","dehydrateGridState","irisGridPanelState","irisGridState","gridState","savePanelState","bind","handleAdvancedSettingsChange","handleColumnsChanged","handleTableChanged","handleColumnSelected","handleDataSelected","handleError","handleGridStateChange","handlePartitionAppend","handleCreateChart","handleResize","handleShow","handleTabClicked","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","irisGridStateOverrides","gridStateOverrides","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","focus","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","indexedQuickFilters","changeFilterColumnNamesToIndexes","columnIndex","isFilterable","indexedAdvancedFilters","hydrateQuickFilters","hydrateAdvancedFilters","setStateOverrides","overrides","unsetFilterValue","originalIrisGridStateOverrides","savedQuickFilters","savedAdvancedFilters","hydrateIrisGridPanelState","hydrateIrisGridState","hydrateGridState","onPanelStateUpdate","oldPanelState","getCachedPanelState","getDehydratedIrisGridPanelState","getDehydratedIrisGridState","getDehydratedGridState","grid","render","children","glContainer","getDownloadWorker","links","theme","errorMessage","querySerial","description","childrenContent","getPluginContent","permissions","canCopy","canDownloadCsv","formattedRowCount","displayString","rowCount","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 WidgetPanelTooltip from './WidgetPanelTooltip';\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.handleTabClicked = this.handleTabClicked.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 irisGridStateOverrides: {},\n gridStateOverrides: {},\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 conditionalFormats\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 conditionalFormats,\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, irisGridStateOverrides } = this.state;\n const modelQueue = [];\n\n if (panelState != null) {\n const { irisGridState } = panelState;\n const {\n aggregationSettings,\n customColumns,\n selectDistinctColumns = [],\n rollupConfig,\n } = { ...irisGridState, ...irisGridStateOverrides };\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 handleTabClicked() {\n if (this.irisGrid.current) {\n this.irisGrid.current.focus();\n }\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 log.debug('setFilters', quickFilters, advancedFilters);\n const { model, isDisconnected } = this.state;\n const irisGrid = this.irisGrid.current;\n if (irisGrid == null || isDisconnected) {\n log.debug('Ignore setFilters, model disconnected');\n return;\n }\n const { columns, formatter } = model;\n const indexedQuickFilters = IrisGridUtils.changeFilterColumnNamesToIndexes(\n model.columns,\n quickFilters\n ).filter(([columnIndex]) => model.isFilterable(columnIndex));\n const indexedAdvancedFilters = IrisGridUtils.changeFilterColumnNamesToIndexes(\n model.columns,\n advancedFilters\n ).filter(([columnIndex]) => model.isFilterable(columnIndex));\n\n irisGrid.clearAllFilters();\n irisGrid.setFilters({\n quickFilters: IrisGridUtils.hydrateQuickFilters(\n columns,\n indexedQuickFilters,\n formatter.timeZone\n ),\n advancedFilters: IrisGridUtils.hydrateAdvancedFilters(\n columns,\n indexedAdvancedFilters,\n formatter.timeZone\n ),\n });\n }\n\n setStateOverrides(overrides) {\n log.debug('setStateOverrides', overrides);\n const {\n irisGridState: irisGridStateOverrides,\n gridState: gridStateOverrides,\n } = overrides;\n this.setState({ irisGridStateOverrides, gridStateOverrides }, () => {\n this.initModel();\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 {\n panelState,\n irisGridStateOverrides: originalIrisGridStateOverrides,\n gridStateOverrides,\n } = this.state;\n if (panelState == null) {\n return;\n }\n\n try {\n const { gridState, irisGridState, irisGridPanelState } = panelState;\n const irisGridStateOverrides = { ...originalIrisGridStateOverrides };\n const {\n quickFilters: savedQuickFilters,\n advancedFilters: savedAdvancedFilters,\n } = irisGridStateOverrides;\n if (savedQuickFilters) {\n irisGridStateOverrides.quickFilters = IrisGridUtils.changeFilterColumnNamesToIndexes(\n model.columns,\n savedQuickFilters\n );\n }\n if (savedAdvancedFilters) {\n irisGridStateOverrides.advancedFilters = IrisGridUtils.changeFilterColumnNamesToIndexes(\n model.columns,\n savedAdvancedFilters\n );\n }\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 conditionalFormats,\n } = IrisGridUtils.hydrateIrisGridState(model, {\n ...irisGridState,\n ...irisGridStateOverrides,\n });\n const {\n isStuckToBottom,\n isStuckToRight,\n movedColumns,\n movedRows,\n } = IrisGridUtils.hydrateGridState(\n model,\n { ...gridState, ...gridStateOverrides },\n irisGridState.customColumns\n );\n this.setState({\n advancedFilters,\n advancedSettings,\n conditionalFormats,\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 conditionalFormats,\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 conditionalFormats\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 conditionalFormats,\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 const formattedRowCount = model?.displayString(\n model?.rowCount ?? 0,\n 'long'\n );\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 onTabClicked={this.handleTabClicked}\n queryName={queryName}\n querySerial={querySerial}\n widgetName={name}\n widgetType=\"Table\"\n description={description}\n componentPanel={this}\n renderTabTooltip={() => (\n <WidgetPanelTooltip\n widgetType=\"Table\"\n widgetName={name}\n glContainer={glContainer}\n description={description}\n >\n <div className=\"column-statistics-grid\">\n <span className=\"column-statistic-operation\">Number of Rows</span>\n <span className=\"column-statistic-value\">\n {formattedRowCount}\n </span>\n </div>\n </WidgetPanelTooltip>\n )}\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 conditionalFormats={conditionalFormats}\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 conditionalFormats: PropTypes.arrayOf(PropTypes.shape({})),\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/dist/panels/Panel.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ declare class Panel extends React.PureComponent<any, any, any> {
|
|
|
21
21
|
handleRenameCancel(): void;
|
|
22
22
|
handleRenameSubmit(newTitle: any): void;
|
|
23
23
|
handleShowRenameDialog(): void;
|
|
24
|
+
handleTabClicked(...args: any[]): void;
|
|
24
25
|
handleTab(tab: any): void;
|
|
25
26
|
getCloneAction(): {
|
|
26
27
|
title: string;
|
|
@@ -64,6 +65,7 @@ declare namespace Panel {
|
|
|
64
65
|
const onFocus: PropTypes.Requireable<(...args: any[]) => any>;
|
|
65
66
|
const onBlur: PropTypes.Requireable<(...args: any[]) => any>;
|
|
66
67
|
const onTab: PropTypes.Requireable<(...args: any[]) => any>;
|
|
68
|
+
const onTabClicked: PropTypes.Requireable<(...args: any[]) => any>;
|
|
67
69
|
const onClearAllFilters: PropTypes.Requireable<(...args: any[]) => any>;
|
|
68
70
|
const onHide: PropTypes.Requireable<(...args: any[]) => any>;
|
|
69
71
|
const onResize: PropTypes.Requireable<(...args: any[]) => any>;
|
|
@@ -86,6 +88,8 @@ declare namespace Panel {
|
|
|
86
88
|
export { className_1 as className };
|
|
87
89
|
export function onTab_1(): void;
|
|
88
90
|
export { onTab_1 as onTab };
|
|
91
|
+
export function onTabClicked_1(): void;
|
|
92
|
+
export { onTabClicked_1 as onTabClicked };
|
|
89
93
|
export function onClearAllFilters_1(): void;
|
|
90
94
|
export { onClearAllFilters_1 as onClearAllFilters };
|
|
91
95
|
export function onFocus_1(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../src/panels/Panel.jsx"],"names":[],"mappings":";AAcA;;;;GAIG;AACH;IACE,wBA0BC;
|
|
1
|
+
{"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../src/panels/Panel.jsx"],"names":[],"mappings":";AAcA;;;;GAIG;AACH;IACE,wBA0BC;IA+DD,4CAGC;IAuED,wBAYC;IAjFD,kCAMC;IAED,iCAGC;IAED,iCAGC;IAED,mCAGC;IAED,0CAGC;IAED,0CAGC;IAED,uCAGC;IAED,iCAGC;IAED,oCAGC;IAED,qCAGC;IAED,2BAEC;IAMD,wCAMC;IAVD,+BAEC;IArED,uCAGC;IAjBD,0BAYC;IA+FD;;;;;MAOC;IAED;;;;;MAOC;IAED,0FASG;CAmEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAgCQ,gCAAQ;;QACD,uCAAQ;;QACH,4CAAQ;;QAClB,kCAAQ;;QACT,iCAAQ;;QACR,iCAAQ;;QACN,mCAAQ;;QACF,yCAAQ;;QACT,wCAAQ;;QACT,uCAAQ;;QACd,iCAAQ;;QACL,oCAAQ;;QACP,qCAAQ"}
|
package/dist/panels/Panel.js
CHANGED
|
@@ -51,6 +51,7 @@ class Panel extends PureComponent {
|
|
|
51
51
|
this.handleRenameCancel = this.handleRenameCancel.bind(this);
|
|
52
52
|
this.handleRenameSubmit = this.handleRenameSubmit.bind(this);
|
|
53
53
|
this.handleShowRenameDialog = this.handleShowRenameDialog.bind(this);
|
|
54
|
+
this.handleTabClicked = this.handleTabClicked.bind(this);
|
|
54
55
|
this.handleTab = this.handleTab.bind(this);
|
|
55
56
|
var {
|
|
56
57
|
glContainer
|
|
@@ -72,6 +73,7 @@ class Panel extends PureComponent {
|
|
|
72
73
|
glContainer.on('shown', this.handleShow);
|
|
73
74
|
glContainer.on('hide', this.handleHide);
|
|
74
75
|
glContainer.on('tab', this.handleTab);
|
|
76
|
+
glContainer.on('tabClicked', this.handleTabClicked);
|
|
75
77
|
glEventHub.on(ConsoleEvent.SESSION_CLOSED, this.handleSessionClosed);
|
|
76
78
|
glEventHub.on(ConsoleEvent.SESSION_OPENED, this.handleSessionOpened);
|
|
77
79
|
glEventHub.on(TabEvent.focus, this.handleTabFocus);
|
|
@@ -91,6 +93,7 @@ class Panel extends PureComponent {
|
|
|
91
93
|
glContainer.off('shown', this.handleShow);
|
|
92
94
|
glContainer.off('hide', this.handleHide);
|
|
93
95
|
glContainer.off('tab', this.handleTab);
|
|
96
|
+
glContainer.off('tabClicked', this.handleTabClicked);
|
|
94
97
|
glEventHub.off(ConsoleEvent.SESSION_CLOSED, this.handleSessionClosed);
|
|
95
98
|
glEventHub.off(ConsoleEvent.SESSION_OPENED, this.handleSessionOpened);
|
|
96
99
|
glEventHub.off(TabEvent.focus, this.handleTabFocus);
|
|
@@ -115,6 +118,13 @@ class Panel extends PureComponent {
|
|
|
115
118
|
onTab(tab);
|
|
116
119
|
}
|
|
117
120
|
|
|
121
|
+
handleTabClicked() {
|
|
122
|
+
var {
|
|
123
|
+
onTabClicked
|
|
124
|
+
} = this.props;
|
|
125
|
+
onTabClicked(...arguments);
|
|
126
|
+
}
|
|
127
|
+
|
|
118
128
|
handleClearAllFilters() {
|
|
119
129
|
var {
|
|
120
130
|
onClearAllFilters
|
|
@@ -318,6 +328,7 @@ Panel.propTypes = {
|
|
|
318
328
|
onFocus: PropTypes.func,
|
|
319
329
|
onBlur: PropTypes.func,
|
|
320
330
|
onTab: PropTypes.func,
|
|
331
|
+
onTabClicked: PropTypes.func,
|
|
321
332
|
onClearAllFilters: PropTypes.func,
|
|
322
333
|
onHide: PropTypes.func,
|
|
323
334
|
onResize: PropTypes.func,
|
|
@@ -338,6 +349,7 @@ Panel.propTypes = {
|
|
|
338
349
|
Panel.defaultProps = {
|
|
339
350
|
className: '',
|
|
340
351
|
onTab: () => {},
|
|
352
|
+
onTabClicked: () => {},
|
|
341
353
|
onClearAllFilters: () => {},
|
|
342
354
|
onFocus: () => {},
|
|
343
355
|
onBlur: () => {},
|
package/dist/panels/Panel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/panels/Panel.jsx"],"names":["React","Component","PureComponent","ReactDOM","PropTypes","classNames","memoize","ContextActions","LoadingOverlay","Tooltip","GLPropTypes","LayoutUtils","PanelEvent","Log","ConsoleEvent","InputFilterEvent","TabEvent","PanelContextMenu","RenameDialog","log","module","Panel","constructor","props","actions","isClonable","isRenamable","additionalActions","push","getCloneAction","getRenameAction","handleClearAllFilters","bind","handleCopyPanel","handleFocus","handleBlur","handleHide","handleResize","handleSessionClosed","handleSessionOpened","handleBeforeShow","handleShow","handleTabBlur","handleTabFocus","handleRenameCancel","handleRenameSubmit","handleShowRenameDialog","handleTab","glContainer","state","title","getTitleFromContainer","showRenameDialog","componentDidMount","componentPanel","glEventHub","on","SESSION_CLOSED","SESSION_OPENED","focus","blur","CLEAR_ALL_FILTERS","emit","MOUNT","componentWillUnmount","off","UNMOUNT","tab","setState","getTitleFromTab","forceUpdate","onTab","onClearAllFilters","FOCUS","onFocus","onBlur","onHide","onResize","onSessionClose","onSessionOpen","onBeforeShow","onShow","onTabBlur","onTabFocus","newTitle","root","getRootFromContainer","config","getComponentConfigFromContainer","renameComponent","error","cloneConfig","cloneComponent","CLONED","order","group","groups","high","action","render","children","className","renderTabTooltip","errorMessage","isLoaded","isLoading","glTab","createPortal","getAdditionActions","placement","element","propTypes","instanceOf","isRequired","node","Container","EventHub","string","func","oneOfType","array","bool","defaultProps"],"mappings":"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","sourcesContent":["import React, { Component, PureComponent } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport { ContextActions, LoadingOverlay, Tooltip } from '@deephaven/components';\nimport { GLPropTypes, LayoutUtils, PanelEvent } from '@deephaven/dashboard';\nimport Log from '@deephaven/log';\nimport { ConsoleEvent, InputFilterEvent, TabEvent } from '../events';\nimport PanelContextMenu from './PanelContextMenu';\nimport RenameDialog from './RenameDialog';\n\nconst log = Log.module('Panel');\n\n/**\n * Generic panel component that emits mount/unmount/focus events.\n * Also wires up some triggers for common events:\n * Focus, Resize, Show, Session open/close, client disconnect/reconnect.\n */\nclass Panel extends PureComponent {\n constructor(props) {\n super(props);\n\n this.handleClearAllFilters = this.handleClearAllFilters.bind(this);\n this.handleCopyPanel = this.handleCopyPanel.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleHide = this.handleHide.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleBeforeShow = this.handleBeforeShow.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleTabBlur = this.handleTabBlur.bind(this);\n this.handleTabFocus = this.handleTabFocus.bind(this);\n this.handleRenameCancel = this.handleRenameCancel.bind(this);\n this.handleRenameSubmit = this.handleRenameSubmit.bind(this);\n this.handleShowRenameDialog = this.handleShowRenameDialog.bind(this);\n\n this.handleTab = this.handleTab.bind(this);\n\n const { glContainer } = this.props;\n this.state = {\n title: LayoutUtils.getTitleFromContainer(glContainer),\n showRenameDialog: false,\n };\n }\n\n componentDidMount() {\n const { componentPanel, glContainer, glEventHub } = this.props;\n\n glContainer.on('resize', this.handleResize);\n glContainer.on('show', this.handleBeforeShow);\n glContainer.on('shown', this.handleShow);\n glContainer.on('hide', this.handleHide);\n glContainer.on('tab', this.handleTab);\n glEventHub.on(ConsoleEvent.SESSION_CLOSED, this.handleSessionClosed);\n glEventHub.on(ConsoleEvent.SESSION_OPENED, this.handleSessionOpened);\n glEventHub.on(TabEvent.focus, this.handleTabFocus);\n glEventHub.on(TabEvent.blur, this.handleTabBlur);\n glEventHub.on(\n InputFilterEvent.CLEAR_ALL_FILTERS,\n this.handleClearAllFilters\n );\n\n glEventHub.emit(PanelEvent.MOUNT, componentPanel);\n }\n\n componentWillUnmount() {\n const { componentPanel, glContainer, glEventHub } = this.props;\n\n glContainer.off('resize', this.handleResize);\n glContainer.off('show', this.handleBeforeShow);\n glContainer.off('shown', this.handleShow);\n glContainer.off('hide', this.handleHide);\n glContainer.off('tab', this.handleTab);\n glEventHub.off(ConsoleEvent.SESSION_CLOSED, this.handleSessionClosed);\n glEventHub.off(ConsoleEvent.SESSION_OPENED, this.handleSessionOpened);\n glEventHub.off(TabEvent.focus, this.handleTabFocus);\n glEventHub.off(TabEvent.blur, this.handleTabBlur);\n glEventHub.off(\n InputFilterEvent.CLEAR_ALL_FILTERS,\n this.handleClearAllFilters\n );\n\n glEventHub.emit(PanelEvent.UNMOUNT, componentPanel);\n }\n\n handleTab(tab) {\n if (tab) {\n this.setState({\n title: LayoutUtils.getTitleFromTab(tab),\n });\n }\n // render after move can happen before tab event, glTab could be null\n // when tab event is emitted, force a render update\n this.forceUpdate();\n\n const { onTab } = this.props;\n onTab(tab);\n }\n\n handleClearAllFilters(...args) {\n const { onClearAllFilters } = this.props;\n onClearAllFilters(...args);\n }\n\n handleFocus(...args) {\n const { componentPanel, glEventHub } = this.props;\n glEventHub.emit(PanelEvent.FOCUS, componentPanel);\n\n const { onFocus } = this.props;\n onFocus(...args);\n }\n\n handleBlur(...args) {\n const { onBlur } = this.props;\n onBlur(...args);\n }\n\n handleHide(...args) {\n const { onHide } = this.props;\n onHide(...args);\n }\n\n handleResize(...args) {\n const { onResize } = this.props;\n onResize(...args);\n }\n\n handleSessionClosed(...args) {\n const { onSessionClose } = this.props;\n onSessionClose(...args);\n }\n\n handleSessionOpened(...args) {\n const { onSessionOpen } = this.props;\n onSessionOpen(...args);\n }\n\n handleBeforeShow(...args) {\n const { onBeforeShow } = this.props;\n onBeforeShow(...args);\n }\n\n handleShow(...args) {\n const { onShow } = this.props;\n onShow(...args);\n }\n\n handleTabBlur(...args) {\n const { onTabBlur } = this.props;\n onTabBlur(...args);\n }\n\n handleTabFocus(...args) {\n const { onTabFocus } = this.props;\n onTabFocus(...args);\n }\n\n handleRenameCancel() {\n this.setState({ showRenameDialog: false });\n }\n\n handleShowRenameDialog() {\n this.setState({ showRenameDialog: true });\n }\n\n handleRenameSubmit(newTitle) {\n const { glContainer } = this.props;\n this.setState({ showRenameDialog: false, title: newTitle });\n const root = LayoutUtils.getRootFromContainer(glContainer);\n const config = LayoutUtils.getComponentConfigFromContainer(glContainer);\n LayoutUtils.renameComponent(root, config, newTitle);\n }\n\n handleCopyPanel() {\n const { glContainer, glEventHub } = this.props;\n const root = LayoutUtils.getRootFromContainer(glContainer);\n const config = LayoutUtils.getComponentConfigFromContainer(glContainer);\n if (config == null) {\n log.error('Could not get component config from container', glContainer);\n return;\n }\n const cloneConfig = LayoutUtils.cloneComponent(root, config);\n if (cloneConfig !== null) {\n glEventHub.emit(PanelEvent.CLONED, this, cloneConfig);\n }\n }\n\n getCloneAction() {\n return {\n title: 'Copy Panel',\n order: 10,\n group: ContextActions.groups.high,\n action: this.handleCopyPanel,\n };\n }\n\n getRenameAction() {\n return {\n title: 'Rename',\n order: 10,\n group: ContextActions.groups.high,\n action: this.handleShowRenameDialog,\n };\n }\n\n getAdditionActions = memoize((actions, isClonable, isRenamable) => {\n const additionalActions = [];\n if (isClonable) {\n additionalActions.push(this.getCloneAction());\n }\n if (isRenamable) {\n additionalActions.push(this.getRenameAction());\n }\n return [...additionalActions, ...actions];\n });\n\n render() {\n const {\n children,\n className,\n renderTabTooltip,\n glContainer,\n additionalActions,\n errorMessage,\n isLoaded,\n isLoading,\n isClonable,\n isRenamable,\n } = this.props;\n const { tab: glTab } = glContainer;\n const { showRenameDialog, title } = this.state;\n\n return (\n <div\n className={classNames('h-100 w-100 iris-panel', className)}\n onFocusCapture={this.handleFocus}\n onBlurCapture={this.handleBlur}\n >\n {children}\n <LoadingOverlay\n errorMessage={errorMessage}\n isLoaded={isLoaded}\n isLoading={isLoading}\n />\n {glTab &&\n ReactDOM.createPortal(\n <>\n <PanelContextMenu\n glContainer={glContainer}\n additionalActions={this.getAdditionActions(\n additionalActions,\n isClonable,\n isRenamable\n )}\n />\n {isRenamable && (\n <RenameDialog\n isShown={showRenameDialog}\n value={title}\n itemType=\"Panel\"\n onCancel={this.handleRenameCancel}\n onSubmit={this.handleRenameSubmit}\n />\n )}\n {renderTabTooltip && (\n <Tooltip\n interactive\n options={{\n placement: 'bottom',\n }}\n popperClassName=\"panel-tab-popper\"\n >\n {renderTabTooltip()}\n </Tooltip>\n )}\n </>,\n glTab.element[0] // tab.element is jquery element, we want a dom element\n )}\n </div>\n );\n }\n}\n\nPanel.propTypes = {\n componentPanel: PropTypes.instanceOf(Component).isRequired,\n children: PropTypes.node.isRequired,\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n className: PropTypes.string,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onTab: PropTypes.func,\n onClearAllFilters: PropTypes.func,\n onHide: PropTypes.func,\n onResize: PropTypes.func,\n onSessionClose: PropTypes.func,\n onSessionOpen: PropTypes.func,\n onBeforeShow: PropTypes.func,\n onShow: PropTypes.func,\n onTabBlur: PropTypes.func,\n onTabFocus: PropTypes.func,\n renderTabTooltip: PropTypes.func,\n additionalActions: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\n errorMessage: PropTypes.string,\n isLoading: PropTypes.bool,\n isLoaded: PropTypes.bool,\n isClonable: PropTypes.bool,\n isRenamable: PropTypes.bool,\n};\n\nPanel.defaultProps = {\n className: '',\n onTab: () => {},\n onClearAllFilters: () => {},\n onFocus: () => {},\n onBlur: () => {},\n onHide: () => {},\n onResize: () => {},\n onSessionClose: () => {},\n onSessionOpen: () => {},\n onBeforeShow: () => {},\n onShow: () => {},\n onTabBlur: () => {},\n onTabFocus: () => {},\n renderTabTooltip: null,\n additionalActions: [],\n errorMessage: null,\n isLoading: false,\n isLoaded: true,\n isClonable: false,\n isRenamable: false,\n};\n\nexport default Panel;\n"],"file":"Panel.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/panels/Panel.jsx"],"names":["React","Component","PureComponent","ReactDOM","PropTypes","classNames","memoize","ContextActions","LoadingOverlay","Tooltip","GLPropTypes","LayoutUtils","PanelEvent","Log","ConsoleEvent","InputFilterEvent","TabEvent","PanelContextMenu","RenameDialog","log","module","Panel","constructor","props","actions","isClonable","isRenamable","additionalActions","push","getCloneAction","getRenameAction","handleClearAllFilters","bind","handleCopyPanel","handleFocus","handleBlur","handleHide","handleResize","handleSessionClosed","handleSessionOpened","handleBeforeShow","handleShow","handleTabBlur","handleTabFocus","handleRenameCancel","handleRenameSubmit","handleShowRenameDialog","handleTabClicked","handleTab","glContainer","state","title","getTitleFromContainer","showRenameDialog","componentDidMount","componentPanel","glEventHub","on","SESSION_CLOSED","SESSION_OPENED","focus","blur","CLEAR_ALL_FILTERS","emit","MOUNT","componentWillUnmount","off","UNMOUNT","tab","setState","getTitleFromTab","forceUpdate","onTab","onTabClicked","onClearAllFilters","FOCUS","onFocus","onBlur","onHide","onResize","onSessionClose","onSessionOpen","onBeforeShow","onShow","onTabBlur","onTabFocus","newTitle","root","getRootFromContainer","config","getComponentConfigFromContainer","renameComponent","error","cloneConfig","cloneComponent","CLONED","order","group","groups","high","action","render","children","className","renderTabTooltip","errorMessage","isLoaded","isLoading","glTab","createPortal","getAdditionActions","placement","element","propTypes","instanceOf","isRequired","node","Container","EventHub","string","func","oneOfType","array","bool","defaultProps"],"mappings":"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","sourcesContent":["import React, { Component, PureComponent } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport { ContextActions, LoadingOverlay, Tooltip } from '@deephaven/components';\nimport { GLPropTypes, LayoutUtils, PanelEvent } from '@deephaven/dashboard';\nimport Log from '@deephaven/log';\nimport { ConsoleEvent, InputFilterEvent, TabEvent } from '../events';\nimport PanelContextMenu from './PanelContextMenu';\nimport RenameDialog from './RenameDialog';\n\nconst log = Log.module('Panel');\n\n/**\n * Generic panel component that emits mount/unmount/focus events.\n * Also wires up some triggers for common events:\n * Focus, Resize, Show, Session open/close, client disconnect/reconnect.\n */\nclass Panel extends PureComponent {\n constructor(props) {\n super(props);\n\n this.handleClearAllFilters = this.handleClearAllFilters.bind(this);\n this.handleCopyPanel = this.handleCopyPanel.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleHide = this.handleHide.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleBeforeShow = this.handleBeforeShow.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleTabBlur = this.handleTabBlur.bind(this);\n this.handleTabFocus = this.handleTabFocus.bind(this);\n this.handleRenameCancel = this.handleRenameCancel.bind(this);\n this.handleRenameSubmit = this.handleRenameSubmit.bind(this);\n this.handleShowRenameDialog = this.handleShowRenameDialog.bind(this);\n this.handleTabClicked = this.handleTabClicked.bind(this);\n this.handleTab = this.handleTab.bind(this);\n\n const { glContainer } = this.props;\n this.state = {\n title: LayoutUtils.getTitleFromContainer(glContainer),\n showRenameDialog: false,\n };\n }\n\n componentDidMount() {\n const { componentPanel, glContainer, glEventHub } = this.props;\n\n glContainer.on('resize', this.handleResize);\n glContainer.on('show', this.handleBeforeShow);\n glContainer.on('shown', this.handleShow);\n glContainer.on('hide', this.handleHide);\n glContainer.on('tab', this.handleTab);\n glContainer.on('tabClicked', this.handleTabClicked);\n glEventHub.on(ConsoleEvent.SESSION_CLOSED, this.handleSessionClosed);\n glEventHub.on(ConsoleEvent.SESSION_OPENED, this.handleSessionOpened);\n glEventHub.on(TabEvent.focus, this.handleTabFocus);\n glEventHub.on(TabEvent.blur, this.handleTabBlur);\n glEventHub.on(\n InputFilterEvent.CLEAR_ALL_FILTERS,\n this.handleClearAllFilters\n );\n\n glEventHub.emit(PanelEvent.MOUNT, componentPanel);\n }\n\n componentWillUnmount() {\n const { componentPanel, glContainer, glEventHub } = this.props;\n\n glContainer.off('resize', this.handleResize);\n glContainer.off('show', this.handleBeforeShow);\n glContainer.off('shown', this.handleShow);\n glContainer.off('hide', this.handleHide);\n glContainer.off('tab', this.handleTab);\n glContainer.off('tabClicked', this.handleTabClicked);\n glEventHub.off(ConsoleEvent.SESSION_CLOSED, this.handleSessionClosed);\n glEventHub.off(ConsoleEvent.SESSION_OPENED, this.handleSessionOpened);\n glEventHub.off(TabEvent.focus, this.handleTabFocus);\n glEventHub.off(TabEvent.blur, this.handleTabBlur);\n glEventHub.off(\n InputFilterEvent.CLEAR_ALL_FILTERS,\n this.handleClearAllFilters\n );\n\n glEventHub.emit(PanelEvent.UNMOUNT, componentPanel);\n }\n\n handleTab(tab) {\n if (tab) {\n this.setState({\n title: LayoutUtils.getTitleFromTab(tab),\n });\n }\n // render after move can happen before tab event, glTab could be null\n // when tab event is emitted, force a render update\n this.forceUpdate();\n\n const { onTab } = this.props;\n onTab(tab);\n }\n\n handleTabClicked(...args) {\n const { onTabClicked } = this.props;\n onTabClicked(...args);\n }\n\n handleClearAllFilters(...args) {\n const { onClearAllFilters } = this.props;\n onClearAllFilters(...args);\n }\n\n handleFocus(...args) {\n const { componentPanel, glEventHub } = this.props;\n glEventHub.emit(PanelEvent.FOCUS, componentPanel);\n\n const { onFocus } = this.props;\n onFocus(...args);\n }\n\n handleBlur(...args) {\n const { onBlur } = this.props;\n onBlur(...args);\n }\n\n handleHide(...args) {\n const { onHide } = this.props;\n onHide(...args);\n }\n\n handleResize(...args) {\n const { onResize } = this.props;\n onResize(...args);\n }\n\n handleSessionClosed(...args) {\n const { onSessionClose } = this.props;\n onSessionClose(...args);\n }\n\n handleSessionOpened(...args) {\n const { onSessionOpen } = this.props;\n onSessionOpen(...args);\n }\n\n handleBeforeShow(...args) {\n const { onBeforeShow } = this.props;\n onBeforeShow(...args);\n }\n\n handleShow(...args) {\n const { onShow } = this.props;\n onShow(...args);\n }\n\n handleTabBlur(...args) {\n const { onTabBlur } = this.props;\n onTabBlur(...args);\n }\n\n handleTabFocus(...args) {\n const { onTabFocus } = this.props;\n onTabFocus(...args);\n }\n\n handleRenameCancel() {\n this.setState({ showRenameDialog: false });\n }\n\n handleShowRenameDialog() {\n this.setState({ showRenameDialog: true });\n }\n\n handleRenameSubmit(newTitle) {\n const { glContainer } = this.props;\n this.setState({ showRenameDialog: false, title: newTitle });\n const root = LayoutUtils.getRootFromContainer(glContainer);\n const config = LayoutUtils.getComponentConfigFromContainer(glContainer);\n LayoutUtils.renameComponent(root, config, newTitle);\n }\n\n handleCopyPanel() {\n const { glContainer, glEventHub } = this.props;\n const root = LayoutUtils.getRootFromContainer(glContainer);\n const config = LayoutUtils.getComponentConfigFromContainer(glContainer);\n if (config == null) {\n log.error('Could not get component config from container', glContainer);\n return;\n }\n const cloneConfig = LayoutUtils.cloneComponent(root, config);\n if (cloneConfig !== null) {\n glEventHub.emit(PanelEvent.CLONED, this, cloneConfig);\n }\n }\n\n getCloneAction() {\n return {\n title: 'Copy Panel',\n order: 10,\n group: ContextActions.groups.high,\n action: this.handleCopyPanel,\n };\n }\n\n getRenameAction() {\n return {\n title: 'Rename',\n order: 10,\n group: ContextActions.groups.high,\n action: this.handleShowRenameDialog,\n };\n }\n\n getAdditionActions = memoize((actions, isClonable, isRenamable) => {\n const additionalActions = [];\n if (isClonable) {\n additionalActions.push(this.getCloneAction());\n }\n if (isRenamable) {\n additionalActions.push(this.getRenameAction());\n }\n return [...additionalActions, ...actions];\n });\n\n render() {\n const {\n children,\n className,\n renderTabTooltip,\n glContainer,\n additionalActions,\n errorMessage,\n isLoaded,\n isLoading,\n isClonable,\n isRenamable,\n } = this.props;\n const { tab: glTab } = glContainer;\n const { showRenameDialog, title } = this.state;\n\n return (\n <div\n className={classNames('h-100 w-100 iris-panel', className)}\n onFocusCapture={this.handleFocus}\n onBlurCapture={this.handleBlur}\n >\n {children}\n <LoadingOverlay\n errorMessage={errorMessage}\n isLoaded={isLoaded}\n isLoading={isLoading}\n />\n {glTab &&\n ReactDOM.createPortal(\n <>\n <PanelContextMenu\n glContainer={glContainer}\n additionalActions={this.getAdditionActions(\n additionalActions,\n isClonable,\n isRenamable\n )}\n />\n {isRenamable && (\n <RenameDialog\n isShown={showRenameDialog}\n value={title}\n itemType=\"Panel\"\n onCancel={this.handleRenameCancel}\n onSubmit={this.handleRenameSubmit}\n />\n )}\n {renderTabTooltip && (\n <Tooltip\n interactive\n options={{\n placement: 'bottom',\n }}\n popperClassName=\"panel-tab-popper\"\n >\n {renderTabTooltip()}\n </Tooltip>\n )}\n </>,\n glTab.element[0] // tab.element is jquery element, we want a dom element\n )}\n </div>\n );\n }\n}\n\nPanel.propTypes = {\n componentPanel: PropTypes.instanceOf(Component).isRequired,\n children: PropTypes.node.isRequired,\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n className: PropTypes.string,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onTab: PropTypes.func,\n onTabClicked: PropTypes.func,\n onClearAllFilters: PropTypes.func,\n onHide: PropTypes.func,\n onResize: PropTypes.func,\n onSessionClose: PropTypes.func,\n onSessionOpen: PropTypes.func,\n onBeforeShow: PropTypes.func,\n onShow: PropTypes.func,\n onTabBlur: PropTypes.func,\n onTabFocus: PropTypes.func,\n renderTabTooltip: PropTypes.func,\n additionalActions: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\n errorMessage: PropTypes.string,\n isLoading: PropTypes.bool,\n isLoaded: PropTypes.bool,\n isClonable: PropTypes.bool,\n isRenamable: PropTypes.bool,\n};\n\nPanel.defaultProps = {\n className: '',\n onTab: () => {},\n onTabClicked: () => {},\n onClearAllFilters: () => {},\n onFocus: () => {},\n onBlur: () => {},\n onHide: () => {},\n onResize: () => {},\n onSessionClose: () => {},\n onSessionOpen: () => {},\n onBeforeShow: () => {},\n onShow: () => {},\n onTabBlur: () => {},\n onTabFocus: () => {},\n renderTabTooltip: null,\n additionalActions: [],\n errorMessage: null,\n isLoading: false,\n isLoaded: true,\n isClonable: false,\n isRenamable: false,\n};\n\nexport default Panel;\n"],"file":"Panel.js"}
|
|
@@ -55,6 +55,7 @@ declare namespace WidgetPanel {
|
|
|
55
55
|
const onShow: PropTypes.Requireable<(...args: any[]) => any>;
|
|
56
56
|
const onTabBlur: PropTypes.Requireable<(...args: any[]) => any>;
|
|
57
57
|
const onTabFocus: PropTypes.Requireable<(...args: any[]) => any>;
|
|
58
|
+
const onTabClicked: PropTypes.Requireable<(...args: any[]) => any>;
|
|
58
59
|
}
|
|
59
60
|
namespace defaultProps {
|
|
60
61
|
const className_1: string;
|
|
@@ -101,6 +102,8 @@ declare namespace WidgetPanel {
|
|
|
101
102
|
export { onTabBlur_1 as onTabBlur };
|
|
102
103
|
export function onTabFocus_1(): void;
|
|
103
104
|
export { onTabFocus_1 as onTabFocus };
|
|
105
|
+
export function onTabClicked_1(): void;
|
|
106
|
+
export { onTabClicked_1 as onTabClicked };
|
|
104
107
|
}
|
|
105
108
|
}
|
|
106
109
|
import React from "react";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetPanel.d.ts","sourceRoot":"","sources":["../../src/panels/WidgetPanel.jsx"],"names":[],"mappings":";AASA;;GAEG;AACH;IACE,wBAaC;IA4CD,0CAQC;IAED,0CAGC;IAvDD,iCA0BC;IAED,gKAYE;
|
|
1
|
+
{"version":3,"file":"WidgetPanel.d.ts","sourceRoot":"","sources":["../../src/panels/WidgetPanel.jsx"],"names":[],"mappings":";AASA;;GAEG;AACH;IACE,wBAaC;IA4CD,0CAQC;IAED,0CAGC;IAvDD,iCA0BC;IAED,gKAYE;CA+FH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAiDU,kCAAQ;;QACT,iCAAQ;;QACR,iCAAQ;;QACG,4CAAQ;;QACjB,mCAAQ;;QACF,yCAAQ;;QACT,wCAAQ;;QACf,iCAAQ;;QACL,oCAAQ;;QACP,qCAAQ;;QACN,uCAAQ"}
|
|
@@ -118,7 +118,8 @@ class WidgetPanel extends PureComponent {
|
|
|
118
118
|
onResize,
|
|
119
119
|
onShow,
|
|
120
120
|
onTabBlur,
|
|
121
|
-
onTabFocus
|
|
121
|
+
onTabFocus,
|
|
122
|
+
onTabClicked
|
|
122
123
|
} = this.props;
|
|
123
124
|
var {
|
|
124
125
|
isPanelDisconnected,
|
|
@@ -145,6 +146,7 @@ class WidgetPanel extends PureComponent {
|
|
|
145
146
|
onSessionOpen: this.handleSessionOpened,
|
|
146
147
|
onTabBlur: onTabBlur,
|
|
147
148
|
onTabFocus: onTabFocus,
|
|
149
|
+
onTabClicked: onTabClicked,
|
|
148
150
|
renderTabTooltip: doRenderTabTooltip,
|
|
149
151
|
errorMessage: errorMessage,
|
|
150
152
|
isLoaded: isLoaded,
|
|
@@ -184,7 +186,8 @@ WidgetPanel.propTypes = {
|
|
|
184
186
|
onSessionOpen: PropTypes.func,
|
|
185
187
|
onShow: PropTypes.func,
|
|
186
188
|
onTabBlur: PropTypes.func,
|
|
187
|
-
onTabFocus: PropTypes.func
|
|
189
|
+
onTabFocus: PropTypes.func,
|
|
190
|
+
onTabClicked: PropTypes.func
|
|
188
191
|
};
|
|
189
192
|
WidgetPanel.defaultProps = {
|
|
190
193
|
className: '',
|
|
@@ -208,7 +211,8 @@ WidgetPanel.defaultProps = {
|
|
|
208
211
|
onSessionOpen: () => {},
|
|
209
212
|
onShow: () => {},
|
|
210
213
|
onTabBlur: () => {},
|
|
211
|
-
onTabFocus: () => {}
|
|
214
|
+
onTabFocus: () => {},
|
|
215
|
+
onTabClicked: () => {}
|
|
212
216
|
};
|
|
213
217
|
export default WidgetPanel;
|
|
214
218
|
//# sourceMappingURL=WidgetPanel.js.map
|