@deephaven/dashboard-core-plugins 0.9.4-updatestylelint.5 → 0.10.1-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/ChartBuilderPlugin.d.ts +9 -0
  2. package/dist/ChartBuilderPlugin.d.ts.map +1 -0
  3. package/dist/ChartBuilderPlugin.js +55 -0
  4. package/dist/ChartBuilderPlugin.js.map +1 -0
  5. package/dist/ChartPlugin.d.ts.map +1 -1
  6. package/dist/ChartPlugin.js +27 -19
  7. package/dist/ChartPlugin.js.map +1 -1
  8. package/dist/GridPlugin.d.ts +1 -0
  9. package/dist/GridPlugin.d.ts.map +1 -1
  10. package/dist/GridPlugin.js +28 -19
  11. package/dist/GridPlugin.js.map +1 -1
  12. package/dist/PandasPlugin.d.ts.map +1 -1
  13. package/dist/PandasPlugin.js +27 -19
  14. package/dist/PandasPlugin.js.map +1 -1
  15. package/dist/events/ChartEvent.d.ts +2 -0
  16. package/dist/events/ChartEvent.d.ts.map +1 -1
  17. package/dist/events/ChartEvent.js.map +1 -1
  18. package/dist/events/IrisGridEvent.d.ts +3 -0
  19. package/dist/events/IrisGridEvent.d.ts.map +1 -1
  20. package/dist/events/IrisGridEvent.js +2 -0
  21. package/dist/events/IrisGridEvent.js.map +1 -1
  22. package/dist/events/PandasEvent.d.ts +2 -0
  23. package/dist/events/PandasEvent.d.ts.map +1 -1
  24. package/dist/events/PandasEvent.js.map +1 -1
  25. package/dist/index.d.ts +1 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +1 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/panels/ConsolePanel.d.ts +5 -3
  30. package/dist/panels/ConsolePanel.d.ts.map +1 -1
  31. package/dist/panels/ConsolePanel.js +16 -61
  32. package/dist/panels/ConsolePanel.js.map +1 -1
  33. package/dist/panels/IrisGridPanel.d.ts +14 -2
  34. package/dist/panels/IrisGridPanel.d.ts.map +1 -1
  35. package/dist/panels/IrisGridPanel.js +39 -21
  36. package/dist/panels/IrisGridPanel.js.map +1 -1
  37. package/package.json +16 -16
@@ -11,14 +11,12 @@ import PropTypes from 'prop-types';
11
11
  import shortid from 'shortid';
12
12
  import debounce from 'lodash.debounce';
13
13
  import { connect } from 'react-redux';
14
- import { ChartModelFactory } from '@deephaven/chart';
15
- import { Console, ConsoleConstants, ConsoleUtils } from '@deephaven/console';
14
+ import { Console, ConsoleConstants } from '@deephaven/console';
16
15
  import { GLPropTypes, PanelEvent } from '@deephaven/dashboard';
17
- import { IrisGridModelFactory } from '@deephaven/iris-grid';
18
16
  import { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';
19
17
  import Log from '@deephaven/log';
20
18
  import { getCommandHistoryStorage, getTimeZone } from '@deephaven/redux';
21
- import { ChartEvent, ConsoleEvent, IrisGridEvent, PandasEvent } from "../events/index.js";
19
+ import { ConsoleEvent } from "../events/index.js";
22
20
  import "./ConsolePanel.css";
23
21
  import Panel from "./Panel.js";
24
22
  import { getDashboardSessionWrapper } from "../redux/index.js";
@@ -215,19 +213,7 @@ class ConsolePanel extends PureComponent {
215
213
  var {
216
214
  session
217
215
  } = sessionWrapper;
218
- var {
219
- type
220
- } = object;
221
-
222
- if (ConsoleUtils.isTableType(type)) {
223
- this.openTable(object, session);
224
- } else if (ConsoleUtils.isFigureType(type)) {
225
- this.openFigure(object, session);
226
- } else if (ConsoleUtils.isPandas(type)) {
227
- this.openPandas(object, session);
228
- } else {
229
- log.error('Unknown object', object);
230
- }
216
+ this.openWidget(object, session);
231
217
  }
232
218
 
233
219
  handleCloseObject(object) {
@@ -251,58 +237,27 @@ class ConsolePanel extends PureComponent {
251
237
  });
252
238
  glEventHub.emit(ConsoleEvent.SETTINGS_CHANGED, consoleSettings);
253
239
  }
240
+ /**
241
+ * @param {VariableDefinition} widget The widget to open
242
+ * @param {dh.Session} session The session object
243
+ */
254
244
 
255
- openTable(object, session) {
256
- var {
257
- name
258
- } = object;
259
- var id = this.getItemId(name);
260
- var metadata = {
261
- table: name
262
- };
263
- var {
264
- glEventHub
265
- } = this.props;
266
-
267
- var makeModel = () => session.getObject(object).then(table => IrisGridModelFactory.makeModel(table, true));
268
-
269
- log.debug('handleOpenTable', id);
270
- glEventHub.emit(IrisGridEvent.OPEN_GRID, name, makeModel, metadata, id);
271
- }
272
-
273
- openFigure(object, session) {
274
- var {
275
- name
276
- } = object;
277
- var id = this.getItemId(name);
278
- var metadata = {
279
- figure: name
280
- };
281
-
282
- var makeModel = () => session.getObject(object).then(result => ChartModelFactory.makeModel(undefined, result));
283
245
 
246
+ openWidget(widget, session) {
284
247
  var {
285
248
  glEventHub
286
249
  } = this.props;
287
- glEventHub.emit(ChartEvent.OPEN, name, makeModel, metadata, id);
288
- }
289
-
290
- openPandas(object, session) {
291
250
  var {
292
251
  name
293
- } = object;
294
- var id = this.getItemId(name);
295
- var metadata = {
296
- table: name
252
+ } = widget;
253
+ var panelId = this.getItemId(name);
254
+ var openOptions = {
255
+ fetch: () => session.getObject(widget),
256
+ panelId,
257
+ widget
297
258
  };
298
- var {
299
- glEventHub
300
- } = this.props;
301
-
302
- var makeModel = () => session.getObject(object).then(table => IrisGridModelFactory.makeModel(table, true));
303
-
304
- log.debug('handleOpenTable', id);
305
- glEventHub.emit(PandasEvent.OPEN, name, makeModel, metadata, id);
259
+ log.debug('openWidget', openOptions);
260
+ glEventHub.emit(PanelEvent.OPEN, openOptions);
306
261
  }
307
262
 
308
263
  addCommand(command) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/panels/ConsolePanel.jsx"],"names":["React","PureComponent","PropTypes","shortid","debounce","connect","ChartModelFactory","Console","ConsoleConstants","ConsoleUtils","GLPropTypes","PanelEvent","IrisGridModelFactory","APIPropTypes","Log","getCommandHistoryStorage","getTimeZone","ChartEvent","ConsoleEvent","IrisGridEvent","PandasEvent","Panel","getDashboardSessionWrapper","log","module","DEBOUNCE_PANEL_STATE_UPDATE","DEFAULT_PANEL_STATE","Object","freeze","consoleSettings","itemIds","ConsolePanel","constructor","props","handleFocusCommandHistory","bind","handleOpenObject","handleCloseObject","handleResize","handleSettingsChange","handleShow","handleTabBlur","handleTabFocus","handlePanelMount","savePanelState","consoleRef","createRef","objectSubscriptionCleanup","panelState","initialPanelState","state","Map","objectMap","componentDidMount","glEventHub","closeDisconnectedPanels","on","MOUNT","subscribeToFieldUpdates","componentDidUpdate","prevProps","prevState","componentWillUnmount","flush","off","sessionWrapper","session","connection","updates","debug","setState","updated","created","removed","objectsToRemove","newObjectMap","forEach","toRemove","delete","name","objectsToAdd","toAdd","set","setItemId","id","newItemIds","getItemId","createIfNecessary","get","generate","blur","focus","panel","panelId","sourceId","metadata","sourcePanelId","pandelIds","Set","values","has","emit","FOCUS_HISTORY","updateDimensions","object","type","isTableType","openTable","isFigureType","openFigure","isPandas","openPandas","error","CLOSE","SETTINGS_CHANGED","table","makeModel","getObject","then","OPEN_GRID","figure","result","undefined","OPEN","addCommand","command","execute","current","force","isClosePanelsOnDisconnectEnabled","panelIdsToClose","render","commandHistoryStorage","glContainer","timeZone","config","sessionId","language","LANGUAGE_MAP","propTypes","shape","isRequired","Container","EventHub","consoleCreatorSettings","array","IdeSession","string","defaultProps","mapStateToProps","ownProps","localDashboardId","forwardRef"],"mappings":"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","sourcesContent":["// Wrapper for the Console for use in a golden layout container\n// Will probably need to handle window popping out from golden layout here.\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport shortid from 'shortid';\nimport debounce from 'lodash.debounce';\nimport { connect } from 'react-redux';\nimport { ChartModelFactory } from '@deephaven/chart';\nimport { Console, ConsoleConstants, ConsoleUtils } from '@deephaven/console';\nimport { GLPropTypes, PanelEvent } from '@deephaven/dashboard';\nimport { IrisGridModelFactory } from '@deephaven/iris-grid';\nimport { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport { getCommandHistoryStorage, getTimeZone } from '@deephaven/redux';\nimport {\n ChartEvent,\n ConsoleEvent,\n IrisGridEvent,\n PandasEvent,\n} from '../events';\nimport './ConsolePanel.scss';\nimport Panel from './Panel';\nimport { getDashboardSessionWrapper } from '../redux';\n\nconst log = Log.module('ConsolePanel');\n\nconst DEBOUNCE_PANEL_STATE_UPDATE = 500;\n\nconst DEFAULT_PANEL_STATE = Object.freeze({\n consoleSettings: {},\n itemIds: [],\n});\n\nclass ConsolePanel extends PureComponent {\n static COMPONENT = 'ConsolePanel';\n\n static TITLE = 'Console';\n\n constructor(props) {\n super(props);\n\n this.handleFocusCommandHistory = this.handleFocusCommandHistory.bind(this);\n this.handleOpenObject = this.handleOpenObject.bind(this);\n this.handleCloseObject = this.handleCloseObject.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleSettingsChange = this.handleSettingsChange.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleTabBlur = this.handleTabBlur.bind(this);\n this.handleTabFocus = this.handleTabFocus.bind(this);\n this.handlePanelMount = this.handlePanelMount.bind(this);\n\n this.savePanelState = debounce(\n this.savePanelState.bind(this),\n DEBOUNCE_PANEL_STATE_UPDATE\n );\n\n this.consoleRef = React.createRef();\n this.objectSubscriptionCleanup = null;\n\n const { panelState: initialPanelState } = props;\n const panelState = {\n ...DEFAULT_PANEL_STATE,\n ...(initialPanelState || {}),\n };\n const { consoleSettings, itemIds } = panelState;\n\n this.state = {\n consoleSettings,\n itemIds: new Map(itemIds),\n\n objectMap: new Map(),\n\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n componentDidMount() {\n const { glEventHub } = this.props;\n // Need to close the disconnected panels when we're first loaded,\n // as they may have been saved with the dashboard\n this.closeDisconnectedPanels();\n glEventHub.on(PanelEvent.MOUNT, this.handlePanelMount);\n this.subscribeToFieldUpdates();\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { consoleSettings, itemIds } = this.state;\n if (\n prevState.consoleSettings !== consoleSettings ||\n prevState.itemIds !== itemIds\n ) {\n this.savePanelState();\n }\n }\n\n componentWillUnmount() {\n const { glEventHub } = this.props;\n this.savePanelState.flush();\n glEventHub.off(PanelEvent.MOUNT, this.handlePanelMount);\n this.objectSubscriptionCleanup();\n }\n\n subscribeToFieldUpdates() {\n const { sessionWrapper } = this.props;\n const { session } = sessionWrapper;\n\n this.objectSubscriptionCleanup = session.connection.subscribeToFieldUpdates(\n updates => {\n log.debug('Got updates', updates);\n this.setState(({ objectMap }) => {\n const { updated, created, removed } = updates;\n\n // Remove from the array if it's been removed OR modified. We'll add it back after if it was modified.\n const objectsToRemove = [...updated, ...removed];\n const newObjectMap = new Map(objectMap);\n objectsToRemove.forEach(toRemove => {\n newObjectMap.delete(toRemove.name);\n });\n\n // Now add all the modified and updated widgets back in\n const objectsToAdd = [...updated, ...created];\n objectsToAdd.forEach(toAdd => {\n if (toAdd.name) {\n newObjectMap.set(toAdd.name, toAdd);\n }\n });\n\n return { objectMap: newObjectMap };\n });\n }\n );\n }\n\n setItemId(name, id) {\n this.setState(({ itemIds }) => {\n const newItemIds = new Map(itemIds);\n newItemIds.set(name, id);\n return { itemIds: newItemIds };\n });\n }\n\n getItemId(name, createIfNecessary = true) {\n const { itemIds } = this.state;\n let id = itemIds.get(name);\n if (id == null && createIfNecessary) {\n id = shortid.generate();\n this.setItemId(name, id);\n }\n return id;\n }\n\n handleTabBlur() {\n if (this.consoleRef) {\n this.consoleRef.blur();\n }\n }\n\n handleTabFocus() {\n if (this.consoleRef) {\n this.consoleRef.focus();\n }\n }\n\n handlePanelMount(panel) {\n const { itemIds } = this.state;\n const panelId = panel?.props?.id;\n const sourceId = panel?.props?.metadata?.sourcePanelId;\n if (panelId && sourceId) {\n // Check if the panel was created from a panel in this console\n const pandelIds = new Set(itemIds.values());\n if (pandelIds.has(sourceId)) {\n // The Chart Panel does not have name so map panelId to panelId\n this.setItemId(panelId, panelId);\n }\n }\n }\n\n handleFocusCommandHistory() {\n const { glEventHub } = this.props;\n glEventHub.emit(ConsoleEvent.FOCUS_HISTORY);\n }\n\n handleResize() {\n this.updateDimensions();\n }\n\n handleShow() {\n this.updateDimensions();\n }\n\n handleOpenObject(object) {\n const { sessionWrapper } = this.props;\n const { session } = sessionWrapper;\n const { type } = object;\n if (ConsoleUtils.isTableType(type)) {\n this.openTable(object, session);\n } else if (ConsoleUtils.isFigureType(type)) {\n this.openFigure(object, session);\n } else if (ConsoleUtils.isPandas(type)) {\n this.openPandas(object, session);\n } else {\n log.error('Unknown object', object);\n }\n }\n\n handleCloseObject(object) {\n const { name } = object;\n const id = this.getItemId(name, false);\n const { glEventHub } = this.props;\n glEventHub.emit(PanelEvent.CLOSE, id);\n }\n\n handleSettingsChange(consoleSettings) {\n const { glEventHub } = this.props;\n log.debug('handleSettingsChange', consoleSettings);\n this.setState({\n consoleSettings,\n });\n glEventHub.emit(ConsoleEvent.SETTINGS_CHANGED, consoleSettings);\n }\n\n openTable(object, session) {\n const { name } = object;\n const id = this.getItemId(name);\n const metadata = { table: name };\n const { glEventHub } = this.props;\n const makeModel = () =>\n session\n .getObject(object)\n .then(table => IrisGridModelFactory.makeModel(table, true));\n\n log.debug('handleOpenTable', id);\n\n glEventHub.emit(IrisGridEvent.OPEN_GRID, name, makeModel, metadata, id);\n }\n\n openFigure(object, session) {\n const { name } = object;\n const id = this.getItemId(name);\n const metadata = { figure: name };\n const makeModel = () =>\n session\n .getObject(object)\n .then(result => ChartModelFactory.makeModel(undefined, result));\n\n const { glEventHub } = this.props;\n glEventHub.emit(ChartEvent.OPEN, name, makeModel, metadata, id);\n }\n\n openPandas(object, session) {\n const { name } = object;\n const id = this.getItemId(name);\n const metadata = { table: name };\n const { glEventHub } = this.props;\n const makeModel = () =>\n session\n .getObject(object)\n .then(table => IrisGridModelFactory.makeModel(table, true));\n\n log.debug('handleOpenTable', id);\n\n glEventHub.emit(PandasEvent.OPEN, name, makeModel, metadata, id);\n }\n\n addCommand(command, focus = true, execute = false) {\n this.consoleRef.current?.addCommand(command, focus, execute);\n }\n\n /**\n * Close the disconnected panels from this session\n * @param {boolean} force True to force the panels closed regardless of the current setting\n */\n closeDisconnectedPanels(force = false) {\n const { consoleSettings, itemIds } = this.state;\n const { isClosePanelsOnDisconnectEnabled = true } = consoleSettings;\n if (!isClosePanelsOnDisconnectEnabled && !force) {\n return;\n }\n\n const panelIdsToClose = [...itemIds.values()];\n const { glEventHub } = this.props;\n panelIdsToClose.forEach(panelId => {\n glEventHub.emit(PanelEvent.CLOSE, panelId);\n });\n\n this.setState({ itemIds: new Map() });\n }\n\n savePanelState() {\n const { consoleSettings, itemIds } = this.state;\n const panelState = {\n consoleSettings,\n itemIds: [...itemIds],\n };\n log.debug('Saving panel state', panelState);\n // eslint-disable-next-line react/no-unused-state\n this.setState({ panelState });\n }\n\n updateDimensions() {\n this.consoleRef.current?.updateDimensions();\n }\n\n render() {\n const {\n commandHistoryStorage,\n glContainer,\n glEventHub,\n sessionWrapper,\n timeZone,\n } = this.props;\n const { consoleSettings, error, objectMap } = this.state;\n const { config, session } = sessionWrapper;\n const { id: sessionId, type: language } = config;\n\n return (\n <Panel\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onResize={this.handleResize}\n onShow={this.handleShow}\n onTabFocus={this.handleTabFocus}\n onTabBlur={this.handleTabBlur}\n errorMessage={error != null ? `${error}` : null}\n >\n <>\n {session && (\n <Console\n ref={this.consoleRef}\n settings={consoleSettings}\n session={session}\n focusCommandHistory={this.handleFocusCommandHistory}\n openObject={this.handleOpenObject}\n closeObject={this.handleCloseObject}\n commandHistoryStorage={commandHistoryStorage}\n onSettingsChange={this.handleSettingsChange}\n language={language}\n statusBarChildren={\n <>\n <div>&nbsp;</div>\n <div>{ConsoleConstants.LANGUAGE_MAP.get(language)}</div>\n </>\n }\n scope={sessionId}\n timeZone={timeZone}\n objectMap={objectMap}\n />\n )}\n </>\n </Panel>\n );\n }\n}\n\nConsolePanel.propTypes = {\n commandHistoryStorage: PropTypes.shape({}).isRequired,\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n\n panelState: PropTypes.shape({\n consoleCreatorSettings: PropTypes.shape({}),\n consoleSettings: PropTypes.shape({}),\n itemIds: PropTypes.array,\n }),\n\n sessionWrapper: PropTypes.shape({\n session: APIPropTypes.IdeSession.isRequired,\n config: PropTypes.shape({ type: PropTypes.string, id: PropTypes.string })\n .isRequired,\n }).isRequired,\n\n timeZone: PropTypes.string.isRequired,\n};\n\nConsolePanel.defaultProps = {\n panelState: null,\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n commandHistoryStorage: getCommandHistoryStorage(state),\n sessionWrapper: getDashboardSessionWrapper(state, ownProps.localDashboardId),\n timeZone: getTimeZone(state),\n});\n\nexport default connect(mapStateToProps, null, null, { forwardRef: true })(\n ConsolePanel\n);\n"],"file":"ConsolePanel.js"}
1
+ {"version":3,"sources":["../../src/panels/ConsolePanel.jsx"],"names":["React","PureComponent","PropTypes","shortid","debounce","connect","Console","ConsoleConstants","GLPropTypes","PanelEvent","APIPropTypes","Log","getCommandHistoryStorage","getTimeZone","ConsoleEvent","Panel","getDashboardSessionWrapper","log","module","DEBOUNCE_PANEL_STATE_UPDATE","DEFAULT_PANEL_STATE","Object","freeze","consoleSettings","itemIds","ConsolePanel","constructor","props","handleFocusCommandHistory","bind","handleOpenObject","handleCloseObject","handleResize","handleSettingsChange","handleShow","handleTabBlur","handleTabFocus","handlePanelMount","savePanelState","consoleRef","createRef","objectSubscriptionCleanup","panelState","initialPanelState","state","Map","objectMap","componentDidMount","glEventHub","closeDisconnectedPanels","on","MOUNT","subscribeToFieldUpdates","componentDidUpdate","prevProps","prevState","componentWillUnmount","flush","off","sessionWrapper","session","connection","updates","debug","setState","updated","created","removed","objectsToRemove","newObjectMap","forEach","toRemove","delete","name","objectsToAdd","toAdd","set","setItemId","id","newItemIds","getItemId","createIfNecessary","get","generate","blur","focus","panel","panelId","sourceId","metadata","sourcePanelId","pandelIds","Set","values","has","emit","FOCUS_HISTORY","updateDimensions","object","openWidget","CLOSE","SETTINGS_CHANGED","widget","openOptions","fetch","getObject","OPEN","addCommand","command","execute","current","force","isClosePanelsOnDisconnectEnabled","panelIdsToClose","render","commandHistoryStorage","glContainer","timeZone","error","config","sessionId","type","language","LANGUAGE_MAP","propTypes","shape","isRequired","Container","EventHub","consoleCreatorSettings","array","IdeSession","string","defaultProps","mapStateToProps","ownProps","localDashboardId","forwardRef"],"mappings":"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","sourcesContent":["// Wrapper for the Console for use in a golden layout container\n// Will probably need to handle window popping out from golden layout here.\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport shortid from 'shortid';\nimport debounce from 'lodash.debounce';\nimport { connect } from 'react-redux';\nimport { Console, ConsoleConstants } from '@deephaven/console';\nimport { GLPropTypes, PanelEvent } from '@deephaven/dashboard';\nimport { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport { getCommandHistoryStorage, getTimeZone } from '@deephaven/redux';\nimport { ConsoleEvent } from '../events';\nimport './ConsolePanel.scss';\nimport Panel from './Panel';\nimport { getDashboardSessionWrapper } from '../redux';\n\nconst log = Log.module('ConsolePanel');\n\nconst DEBOUNCE_PANEL_STATE_UPDATE = 500;\n\nconst DEFAULT_PANEL_STATE = Object.freeze({\n consoleSettings: {},\n itemIds: [],\n});\n\nclass ConsolePanel extends PureComponent {\n static COMPONENT = 'ConsolePanel';\n\n static TITLE = 'Console';\n\n constructor(props) {\n super(props);\n\n this.handleFocusCommandHistory = this.handleFocusCommandHistory.bind(this);\n this.handleOpenObject = this.handleOpenObject.bind(this);\n this.handleCloseObject = this.handleCloseObject.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleSettingsChange = this.handleSettingsChange.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleTabBlur = this.handleTabBlur.bind(this);\n this.handleTabFocus = this.handleTabFocus.bind(this);\n this.handlePanelMount = this.handlePanelMount.bind(this);\n\n this.savePanelState = debounce(\n this.savePanelState.bind(this),\n DEBOUNCE_PANEL_STATE_UPDATE\n );\n\n this.consoleRef = React.createRef();\n this.objectSubscriptionCleanup = null;\n\n const { panelState: initialPanelState } = props;\n const panelState = {\n ...DEFAULT_PANEL_STATE,\n ...(initialPanelState || {}),\n };\n const { consoleSettings, itemIds } = panelState;\n\n this.state = {\n consoleSettings,\n itemIds: new Map(itemIds),\n\n objectMap: new Map(),\n\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n componentDidMount() {\n const { glEventHub } = this.props;\n // Need to close the disconnected panels when we're first loaded,\n // as they may have been saved with the dashboard\n this.closeDisconnectedPanels();\n glEventHub.on(PanelEvent.MOUNT, this.handlePanelMount);\n this.subscribeToFieldUpdates();\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { consoleSettings, itemIds } = this.state;\n if (\n prevState.consoleSettings !== consoleSettings ||\n prevState.itemIds !== itemIds\n ) {\n this.savePanelState();\n }\n }\n\n componentWillUnmount() {\n const { glEventHub } = this.props;\n this.savePanelState.flush();\n glEventHub.off(PanelEvent.MOUNT, this.handlePanelMount);\n this.objectSubscriptionCleanup();\n }\n\n subscribeToFieldUpdates() {\n const { sessionWrapper } = this.props;\n const { session } = sessionWrapper;\n\n this.objectSubscriptionCleanup = session.connection.subscribeToFieldUpdates(\n updates => {\n log.debug('Got updates', updates);\n this.setState(({ objectMap }) => {\n const { updated, created, removed } = updates;\n\n // Remove from the array if it's been removed OR modified. We'll add it back after if it was modified.\n const objectsToRemove = [...updated, ...removed];\n const newObjectMap = new Map(objectMap);\n objectsToRemove.forEach(toRemove => {\n newObjectMap.delete(toRemove.name);\n });\n\n // Now add all the modified and updated widgets back in\n const objectsToAdd = [...updated, ...created];\n objectsToAdd.forEach(toAdd => {\n if (toAdd.name) {\n newObjectMap.set(toAdd.name, toAdd);\n }\n });\n\n return { objectMap: newObjectMap };\n });\n }\n );\n }\n\n setItemId(name, id) {\n this.setState(({ itemIds }) => {\n const newItemIds = new Map(itemIds);\n newItemIds.set(name, id);\n return { itemIds: newItemIds };\n });\n }\n\n getItemId(name, createIfNecessary = true) {\n const { itemIds } = this.state;\n let id = itemIds.get(name);\n if (id == null && createIfNecessary) {\n id = shortid.generate();\n this.setItemId(name, id);\n }\n return id;\n }\n\n handleTabBlur() {\n if (this.consoleRef) {\n this.consoleRef.blur();\n }\n }\n\n handleTabFocus() {\n if (this.consoleRef) {\n this.consoleRef.focus();\n }\n }\n\n handlePanelMount(panel) {\n const { itemIds } = this.state;\n const panelId = panel?.props?.id;\n const sourceId = panel?.props?.metadata?.sourcePanelId;\n if (panelId && sourceId) {\n // Check if the panel was created from a panel in this console\n const pandelIds = new Set(itemIds.values());\n if (pandelIds.has(sourceId)) {\n // The Chart Panel does not have name so map panelId to panelId\n this.setItemId(panelId, panelId);\n }\n }\n }\n\n handleFocusCommandHistory() {\n const { glEventHub } = this.props;\n glEventHub.emit(ConsoleEvent.FOCUS_HISTORY);\n }\n\n handleResize() {\n this.updateDimensions();\n }\n\n handleShow() {\n this.updateDimensions();\n }\n\n handleOpenObject(object) {\n const { sessionWrapper } = this.props;\n const { session } = sessionWrapper;\n this.openWidget(object, session);\n }\n\n handleCloseObject(object) {\n const { name } = object;\n const id = this.getItemId(name, false);\n const { glEventHub } = this.props;\n glEventHub.emit(PanelEvent.CLOSE, id);\n }\n\n handleSettingsChange(consoleSettings) {\n const { glEventHub } = this.props;\n log.debug('handleSettingsChange', consoleSettings);\n this.setState({\n consoleSettings,\n });\n glEventHub.emit(ConsoleEvent.SETTINGS_CHANGED, consoleSettings);\n }\n\n /**\n * @param {VariableDefinition} widget The widget to open\n * @param {dh.Session} session The session object\n */\n openWidget(widget, session) {\n const { glEventHub } = this.props;\n const { name } = widget;\n const panelId = this.getItemId(name);\n const openOptions = {\n fetch: () => session.getObject(widget),\n panelId,\n widget,\n };\n\n log.debug('openWidget', openOptions);\n\n glEventHub.emit(PanelEvent.OPEN, openOptions);\n }\n\n addCommand(command, focus = true, execute = false) {\n this.consoleRef.current?.addCommand(command, focus, execute);\n }\n\n /**\n * Close the disconnected panels from this session\n * @param {boolean} force True to force the panels closed regardless of the current setting\n */\n closeDisconnectedPanels(force = false) {\n const { consoleSettings, itemIds } = this.state;\n const { isClosePanelsOnDisconnectEnabled = true } = consoleSettings;\n if (!isClosePanelsOnDisconnectEnabled && !force) {\n return;\n }\n\n const panelIdsToClose = [...itemIds.values()];\n const { glEventHub } = this.props;\n panelIdsToClose.forEach(panelId => {\n glEventHub.emit(PanelEvent.CLOSE, panelId);\n });\n\n this.setState({ itemIds: new Map() });\n }\n\n savePanelState() {\n const { consoleSettings, itemIds } = this.state;\n const panelState = {\n consoleSettings,\n itemIds: [...itemIds],\n };\n log.debug('Saving panel state', panelState);\n // eslint-disable-next-line react/no-unused-state\n this.setState({ panelState });\n }\n\n updateDimensions() {\n this.consoleRef.current?.updateDimensions();\n }\n\n render() {\n const {\n commandHistoryStorage,\n glContainer,\n glEventHub,\n sessionWrapper,\n timeZone,\n } = this.props;\n const { consoleSettings, error, objectMap } = this.state;\n const { config, session } = sessionWrapper;\n const { id: sessionId, type: language } = config;\n\n return (\n <Panel\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onResize={this.handleResize}\n onShow={this.handleShow}\n onTabFocus={this.handleTabFocus}\n onTabBlur={this.handleTabBlur}\n errorMessage={error != null ? `${error}` : null}\n >\n <>\n {session && (\n <Console\n ref={this.consoleRef}\n settings={consoleSettings}\n session={session}\n focusCommandHistory={this.handleFocusCommandHistory}\n openObject={this.handleOpenObject}\n closeObject={this.handleCloseObject}\n commandHistoryStorage={commandHistoryStorage}\n onSettingsChange={this.handleSettingsChange}\n language={language}\n statusBarChildren={\n <>\n <div>&nbsp;</div>\n <div>{ConsoleConstants.LANGUAGE_MAP.get(language)}</div>\n </>\n }\n scope={sessionId}\n timeZone={timeZone}\n objectMap={objectMap}\n />\n )}\n </>\n </Panel>\n );\n }\n}\n\nConsolePanel.propTypes = {\n commandHistoryStorage: PropTypes.shape({}).isRequired,\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n\n panelState: PropTypes.shape({\n consoleCreatorSettings: PropTypes.shape({}),\n consoleSettings: PropTypes.shape({}),\n itemIds: PropTypes.array,\n }),\n\n sessionWrapper: PropTypes.shape({\n session: APIPropTypes.IdeSession.isRequired,\n config: PropTypes.shape({ type: PropTypes.string, id: PropTypes.string })\n .isRequired,\n }).isRequired,\n\n timeZone: PropTypes.string.isRequired,\n};\n\nConsolePanel.defaultProps = {\n panelState: null,\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n commandHistoryStorage: getCommandHistoryStorage(state),\n sessionWrapper: getDashboardSessionWrapper(state, ownProps.localDashboardId),\n timeZone: getTimeZone(state),\n});\n\nexport default connect(mapStateToProps, null, null, { forwardRef: true })(\n ConsolePanel\n);\n"],"file":"ConsolePanel.js"}
@@ -11,7 +11,16 @@ export class IrisGridPanel extends React.PureComponent<any, any, any> {
11
11
  handleGridStateChange(irisGridState: any, gridState: any): void;
12
12
  handlePluginStateChange(pluginState: any): void;
13
13
  handlePartitionAppend(column: any, value: any): void;
14
- handleCreateChart(settings: any, table: any): void;
14
+ /**
15
+ * Create a chart with the specified settings
16
+ * @param {ChartBuilderSettings} settings The settings from the chart builder
17
+ * @param {string} settings.type The settings from the chart builder
18
+ * @param {string[]} settings.series The names of the series
19
+ * @param {string} xAxis The xAxis for this chart
20
+ * @param {boolean} isLinked Whether this chart should be linked or not
21
+ * @param {IrisGridModel} model The IrisGridModel object
22
+ */
23
+ handleCreateChart(settings: ChartBuilderSettings, model: IrisGridModel): void;
15
24
  handleResize(): void;
16
25
  handleShow(): void;
17
26
  handleDisconnect(): void;
@@ -34,7 +43,7 @@ export class IrisGridPanel extends React.PureComponent<any, any, any> {
34
43
  getAlwaysFetchColumns: (this: any, dashboardLinks: any, pluginFetchColumns: any) => any[];
35
44
  getPluginContent: (this: any, Plugin: any, table: any, user: any, workspace: any, pluginState: any) => JSX.Element | null;
36
45
  getDehydratedIrisGridPanelState: (this: any, model: any, isSelectingPartition: any, partition: any, partitionColumn: any) => Object;
37
- getDehydratedIrisGridState: (this: any, model: any, sorts: any, advancedFilters: any, customColumnFormatMap: any, isFilterBarShown: any, quickFilters: any, customColumns: any, reverseType: any, rollupConfig: any, showSearchBar: any, searchValue: any, selectDistinctColumns: any, selectedSearchColumns: any, invertSearchColumns: any, userColumnWidths: any, userRowHeights: any, aggregationSettings: any, advancedSettings: any, pendingDataMap: any, frozenColumns: any) => {
46
+ getDehydratedIrisGridState: (this: any, model: any, sorts: any, advancedFilters: any, customColumnFormatMap: any, isFilterBarShown: any, quickFilters: any, customColumns: any, reverseType: any, rollupConfig: any, showSearchBar: any, searchValue: any, selectDistinctColumns: any, selectedSearchColumns: any, invertSearchColumns: any, userColumnWidths: any, userRowHeights: any, aggregationSettings: any, advancedSettings: any, pendingDataMap: any, frozenColumns: any, conditionalFormats: any) => {
38
47
  advancedFilters: Object;
39
48
  advancedSettings: any[];
40
49
  aggregationSettings: any;
@@ -45,6 +54,7 @@ export class IrisGridPanel extends React.PureComponent<any, any, any> {
45
54
  userColumnWidths: any[][];
46
55
  userRowHeights: any[];
47
56
  customColumns: any[];
57
+ conditionalFormats: any[];
48
58
  reverseType: any;
49
59
  rollupConfig: any;
50
60
  showSearchBar: any;
@@ -112,6 +122,7 @@ export namespace IrisGridPanel {
112
122
  irisGridState: PropTypes.Requireable<PropTypes.InferProps<{
113
123
  aggregationSettings: PropTypes.Requireable<PropTypes.InferProps<{}>>;
114
124
  customColumns: PropTypes.Requireable<(string | null | undefined)[]>;
125
+ conditionalFormats: PropTypes.Requireable<(PropTypes.InferProps<{}> | null | undefined)[]>;
115
126
  selectDistinctColumns: PropTypes.Requireable<(string | null | undefined)[]>;
116
127
  rollupConfig: PropTypes.Requireable<PropTypes.InferProps<{
117
128
  columns: PropTypes.Validator<(string | null | undefined)[]>;
@@ -190,5 +201,6 @@ export namespace IrisGridPanel {
190
201
  declare var _default: import("react-redux").ConnectedComponent<typeof IrisGridPanel, any>;
191
202
  export default _default;
192
203
  import React from "react";
204
+ import { IrisGridModel } from "@deephaven/iris-grid";
193
205
  import PropTypes from "prop-types";
194
206
  //# sourceMappingURL=IrisGridPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridPanel.d.ts","sourceRoot":"","sources":["../../src/panels/IrisGridPanel.jsx"],"names":[],"mappings":"AA0CA;IACE,yBAAmC;IAEnC,wBAoFC;IA8mBD,uBAmFC;IApdD,yDAOC;IAqDD,uCAOC;IAED,qCAKC;IAyCD,wCAGC;IAED,iDAGC;IAUD,8BAGC;IApGD,gEAYC;IAED,gDAQC;IAkBD,qDAMC;IAED,mDA6BC;IAYD,qBAEC;IAED,mBAEC;IAOD,yBAMC;IAED,wBAEC;IAhND,yCA6CC;IAqKD,kCAMC;IAhID,8CAMC;IAVD,kCAEC;IAjBD,uCASC;IAED,wDAEC;IA6JD,8BAMC;IA1dC,+BAAiC;IACjC,gCAAkC;IAClC,uEAAwB;IAKxB,mBAAyB;IACzB,eAAqB;IACrB,iBAAuB;IA6EzB,oBAGC;IAED,2EAWE;IAEF,0FAWG;IAEH,0HAqBG;IAEH,oIAOE;IAEF;;;;;;;;;;;;;;;;;;;;MA8CE;IAEF,wIAQE;IAEF;;;;;MAOE;IAEF,kBAWC;IAiDD,uDAWC;IAgKD,mCAmBC;IAUD,sCAIC;IAED,sCAcC;IAED,qCAiBC;IAED,sDAsCC;IAED,mCAKC;IAED,2CAKC;IAED;;;aAmBC;IAGD,yBAEC;IAED,iCA2EC;IAuFD,mBAMC;CAsJF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAkDgB,wCAAQ;;QACH,6CAAQ"}
1
+ {"version":3,"file":"IrisGridPanel.d.ts","sourceRoot":"","sources":["../../src/panels/IrisGridPanel.jsx"],"names":[],"mappings":"AAoCA;IACE,yBAAmC;IAEnC,wBAoFC;IA4nBD,uBAqFC;IA9dD,yDAOC;IAqDD,uCAOC;IAED,qCAKC;IA+CD,wCAGC;IAED,iDAGC;IAUD,8BAGC;IA1GD,gEAYC;IAED,gDAQC;IAkBD,qDAMC;IAED;;;;;;;;OAQG;IACH,yDAFW,aAAa,QA4BvB;IAYD,qBAEC;IAED,mBAEC;IAOD,yBAMC;IAED,wBAEC;IAtND,yCA6CC;IA2KD,kCAMC;IAtID,8CAMC;IAVD,kCAEC;IAjBD,uCASC;IAED,wDAEC;IAmKD,8BAMC;IAteC,+BAAiC;IACjC,gCAAkC;IAClC,uEAAwB;IAKxB,mBAAyB;IACzB,eAAqB;IACrB,iBAAuB;IA6EzB,oBAGC;IAED,2EAWE;IAEF,0FAWG;IAEH,0HAyBG;IAEH,oIAOE;IAEF;;;;;;;;;;;;;;;;;;;;;MAgDE;IAEF,wIAQE;IAEF;;;;;MAOE;IAEF,kBAWC;IAiDD,uDAWC;IAsKD,mCAmBC;IAUD,sCAIC;IAED,sCAcC;IAED,qCAiBC;IAED,sDAsCC;IAED,mCAKC;IAED,2CAKC;IAED;;;aAmBC;IAGD,yBAEC;IAED,iCA6EC;IAyFD,mBAMC;CAwJF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAmDgB,wCAAQ;;QACH,6CAAQ"}
@@ -7,7 +7,6 @@ import memoize from 'memoize-one';
7
7
  import PropTypes from 'prop-types';
8
8
  import { connect } from 'react-redux';
9
9
  import debounce from 'lodash.debounce';
10
- import { ChartModelFactory, ChartUtils } from '@deephaven/chart';
11
10
  import { GLPropTypes, LayoutUtils } from '@deephaven/dashboard';
12
11
  import { IrisGrid, IrisGridModel, IrisGridUtils, IrisGridTableModel, TableUtils } from '@deephaven/iris-grid';
13
12
  import AdvancedSettings from '@deephaven/iris-grid/dist/sidebar/AdvancedSettings';
@@ -15,7 +14,7 @@ import Log from '@deephaven/log';
15
14
  import { getSettings, getUser, getWorkspace } from '@deephaven/redux';
16
15
  import { PromiseUtils } from '@deephaven/utils';
17
16
  import { ContextMenuRoot } from '@deephaven/components';
18
- import { ChartEvent, ConsoleEvent, InputFilterEvent, IrisGridEvent } from "../events/index.js";
17
+ import { ConsoleEvent, InputFilterEvent, IrisGridEvent } from "../events/index.js";
19
18
  import { getInputFiltersForDashboard, getLinksForDashboard, getColumnSelectionValidatorForDashboard } from "../redux/index.js";
20
19
  import { UIPropTypes } from "../prop-types/index.js";
21
20
  import WidgetPanel from "./WidgetPanel.js";
@@ -67,7 +66,11 @@ export class IrisGridPanel extends PureComponent {
67
66
  className: "iris-grid-plugin"
68
67
  }, /*#__PURE__*/React.createElement(Plugin, {
69
68
  ref: this.pluginRef,
69
+ filter: this.handlePluginFilter // onFilter is deprecated
70
+ ,
70
71
  onFilter: this.handlePluginFilter,
72
+ fetchColumns: this.handlePluginFetchColumns // onFetchColumns is deprecated
73
+ ,
71
74
  onFetchColumns: this.handlePluginFetchColumns,
72
75
  table: table,
73
76
  user: user,
@@ -85,7 +88,7 @@ export class IrisGridPanel extends PureComponent {
85
88
  partitionColumn
86
89
  })));
87
90
 
88
- _defineProperty(this, "getDehydratedIrisGridState", memoize((model, sorts, advancedFilters, customColumnFormatMap, isFilterBarShown, quickFilters, customColumns, reverseType, rollupConfig, showSearchBar, searchValue, selectDistinctColumns, selectedSearchColumns, invertSearchColumns, userColumnWidths, userRowHeights, aggregationSettings, advancedSettings, pendingDataMap, frozenColumns) => IrisGridUtils.dehydrateIrisGridState(model, {
91
+ _defineProperty(this, "getDehydratedIrisGridState", memoize((model, sorts, advancedFilters, customColumnFormatMap, isFilterBarShown, quickFilters, customColumns, reverseType, rollupConfig, showSearchBar, searchValue, selectDistinctColumns, selectedSearchColumns, invertSearchColumns, userColumnWidths, userRowHeights, aggregationSettings, advancedSettings, pendingDataMap, frozenColumns, conditionalFormats) => IrisGridUtils.dehydrateIrisGridState(model, {
89
92
  advancedFilters,
90
93
  advancedSettings,
91
94
  aggregationSettings,
@@ -106,7 +109,8 @@ export class IrisGridPanel extends PureComponent {
106
109
  sorts,
107
110
  invertSearchColumns,
108
111
  pendingDataMap,
109
- frozenColumns
112
+ frozenColumns,
113
+ conditionalFormats
110
114
  })));
111
115
 
112
116
  _defineProperty(this, "getDehydratedGridState", memoize((model, movedColumns, movedRows, isStuckToBottom, isStuckToRight) => IrisGridUtils.dehydrateGridState(model, {
@@ -448,34 +452,42 @@ export class IrisGridPanel extends PureComponent {
448
452
  var command = "".concat(tableName, " = ").concat(tableName, ".where(\"").concat(name, "=`").concat(value, "`\")");
449
453
  glEventHub.emit(ConsoleEvent.SEND_COMMAND, command, false, true);
450
454
  }
451
-
452
- handleCreateChart(settings, table) {
455
+ /**
456
+ * Create a chart with the specified settings
457
+ * @param {ChartBuilderSettings} settings The settings from the chart builder
458
+ * @param {string} settings.type The settings from the chart builder
459
+ * @param {string[]} settings.series The names of the series
460
+ * @param {string} xAxis The xAxis for this chart
461
+ * @param {boolean} isLinked Whether this chart should be linked or not
462
+ * @param {IrisGridModel} model The IrisGridModel object
463
+ */
464
+
465
+
466
+ handleCreateChart(settings, model) {
453
467
  // Panel state is stored with the created chart, so flush it first
454
468
  this.savePanelState.flush();
455
469
  this.setState(() => null, () => {
456
- var makeModel = () => ChartModelFactory.makeModelFromSettings(settings, table);
457
-
458
470
  var {
459
471
  glEventHub,
460
472
  inputFilters,
461
473
  metadata
462
474
  } = this.props;
463
475
  var {
464
- querySerial,
465
- table: tableName
476
+ table
466
477
  } = metadata;
467
478
  var {
468
479
  panelState
469
480
  } = this.state;
470
- var id = LayoutUtils.getIdFromPanel(this);
481
+ var sourcePanelId = LayoutUtils.getIdFromPanel(this);
471
482
  var tableSettings = IrisGridUtils.extractTableSettings(panelState, inputFilters);
472
- var title = ChartUtils.titleFromSettings(settings);
473
- glEventHub.emit(ChartEvent.OPEN, title, makeModel, {
474
- querySerial,
475
- settings: ChartUtils.dehydrateSettings(settings),
476
- sourcePanelId: id,
477
- table: tableName,
478
- tableSettings
483
+ glEventHub.emit(IrisGridEvent.CREATE_CHART, {
484
+ metadata: {
485
+ settings,
486
+ sourcePanelId,
487
+ table,
488
+ tableSettings
489
+ },
490
+ table: model.table
479
491
  });
480
492
  });
481
493
  }
@@ -716,7 +728,8 @@ export class IrisGridPanel extends PureComponent {
716
728
  selectedSearchColumns,
717
729
  invertSearchColumns,
718
730
  pendingDataMap,
719
- frozenColumns
731
+ frozenColumns,
732
+ conditionalFormats
720
733
  } = IrisGridUtils.hydrateIrisGridState(model, irisGridState);
721
734
  var {
722
735
  isStuckToBottom,
@@ -727,6 +740,7 @@ export class IrisGridPanel extends PureComponent {
727
740
  this.setState({
728
741
  advancedFilters,
729
742
  advancedSettings,
743
+ conditionalFormats,
730
744
  customColumns,
731
745
  customColumnFormatMap,
732
746
  isFilterBarShown,
@@ -791,7 +805,8 @@ export class IrisGridPanel extends PureComponent {
791
805
  invertSearchColumns,
792
806
  metrics,
793
807
  pendingDataMap,
794
- frozenColumns
808
+ frozenColumns,
809
+ conditionalFormats
795
810
  } = irisGridState;
796
811
  var {
797
812
  userColumnWidths,
@@ -803,7 +818,7 @@ export class IrisGridPanel extends PureComponent {
803
818
  movedColumns,
804
819
  movedRows
805
820
  } = gridState;
806
- var panelState = this.getCachedPanelState(this.getDehydratedIrisGridPanelState(model, isSelectingPartition, partition, partitionColumn), this.getDehydratedIrisGridState(model, sorts, advancedFilters, customColumnFormatMap, isFilterBarShown, quickFilters, customColumns, reverseType, rollupConfig, showSearchBar, searchValue, selectDistinctColumns, selectedSearchColumns, invertSearchColumns, userColumnWidths, userRowHeights, aggregationSettings, advancedSettings, pendingDataMap, frozenColumns), this.getDehydratedGridState(model, movedColumns, movedRows, isStuckToBottom, isStuckToRight), pluginState);
821
+ var panelState = this.getCachedPanelState(this.getDehydratedIrisGridPanelState(model, isSelectingPartition, partition, partitionColumn), this.getDehydratedIrisGridState(model, sorts, advancedFilters, customColumnFormatMap, isFilterBarShown, quickFilters, customColumns, reverseType, rollupConfig, showSearchBar, searchValue, selectDistinctColumns, selectedSearchColumns, invertSearchColumns, userColumnWidths, userRowHeights, aggregationSettings, advancedSettings, pendingDataMap, frozenColumns, conditionalFormats), this.getDehydratedGridState(model, movedColumns, movedRows, isStuckToBottom, isStuckToRight), pluginState);
807
822
 
808
823
  if (panelState !== oldPanelState) {
809
824
  log.debug('Saving panel state', this, panelState);
@@ -845,6 +860,7 @@ export class IrisGridPanel extends PureComponent {
845
860
  advancedFilters,
846
861
  aggregationSettings,
847
862
  advancedSettings,
863
+ conditionalFormats,
848
864
  customColumns,
849
865
  customColumnFormatMap,
850
866
  error,
@@ -922,6 +938,7 @@ export class IrisGridPanel extends PureComponent {
922
938
  customColumns: customColumns,
923
939
  customColumnFormatMap: customColumnFormatMap,
924
940
  columnSelectionValidator: this.isColumnSelectionValid,
941
+ conditionalFormats: conditionalFormats,
925
942
  inputFilters: this.getGridInputFilters(model.columns, inputFilters),
926
943
  applyInputFiltersOnInit: panelState == null,
927
944
  isFilterBarShown: isFilterBarShown,
@@ -984,6 +1001,7 @@ IrisGridPanel.propTypes = {
984
1001
  irisGridState: PropTypes.shape({
985
1002
  aggregationSettings: PropTypes.shape({}),
986
1003
  customColumns: PropTypes.arrayOf(PropTypes.string),
1004
+ conditionalFormats: PropTypes.arrayOf(PropTypes.shape({})),
987
1005
  selectDistinctColumns: PropTypes.arrayOf(PropTypes.string),
988
1006
  rollupConfig: PropTypes.shape({
989
1007
  columns: PropTypes.arrayOf(PropTypes.string).isRequired