@deephaven/dashboard-core-plugins 0.15.5-vite.12 → 0.15.6-vite.19

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 (203) hide show
  1. package/dist/ChartBuilderPlugin.d.ts.map +1 -1
  2. package/dist/ChartBuilderPlugin.js +2 -1
  3. package/dist/ChartBuilderPlugin.js.map +1 -1
  4. package/dist/ChartPlugin.d.ts +2 -1
  5. package/dist/ChartPlugin.d.ts.map +1 -1
  6. package/dist/ChartPlugin.js.map +1 -1
  7. package/dist/FilterPlugin.js +1 -1
  8. package/dist/FilterPlugin.js.map +1 -1
  9. package/dist/GridPlugin.d.ts +2 -1
  10. package/dist/GridPlugin.d.ts.map +1 -1
  11. package/dist/GridPlugin.js.map +1 -1
  12. package/dist/PandasPlugin.d.ts +2 -1
  13. package/dist/PandasPlugin.d.ts.map +1 -1
  14. package/dist/PandasPlugin.js.map +1 -1
  15. package/dist/controls/ControlType.d.ts +1 -1
  16. package/dist/controls/ControlType.d.ts.map +1 -1
  17. package/dist/controls/ControlType.js.map +1 -1
  18. package/dist/controls/dropdown-filter/DropdownFilter.d.ts +73 -81
  19. package/dist/controls/dropdown-filter/DropdownFilter.d.ts.map +1 -1
  20. package/dist/controls/dropdown-filter/DropdownFilter.js +41 -58
  21. package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
  22. package/dist/controls/input-filter/InputFilter.d.ts +46 -46
  23. package/dist/controls/input-filter/InputFilter.d.ts.map +1 -1
  24. package/dist/controls/input-filter/InputFilter.js +32 -39
  25. package/dist/controls/input-filter/InputFilter.js.map +1 -1
  26. package/dist/controls/markdown/MarkdownContainer.d.ts +11 -16
  27. package/dist/controls/markdown/MarkdownContainer.d.ts.map +1 -1
  28. package/dist/controls/markdown/MarkdownContainer.js +5 -8
  29. package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
  30. package/dist/controls/markdown/MarkdownEditor.d.ts +17 -19
  31. package/dist/controls/markdown/MarkdownEditor.d.ts.map +1 -1
  32. package/dist/controls/markdown/MarkdownEditor.js +5 -8
  33. package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
  34. package/dist/controls/markdown/MarkdownStartPage.d.ts +24 -28
  35. package/dist/controls/markdown/MarkdownStartPage.d.ts.map +1 -1
  36. package/dist/controls/markdown/MarkdownStartPage.js +19 -23
  37. package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
  38. package/dist/controls/markdown/MarkdownUtils.d.ts +4 -4
  39. package/dist/controls/markdown/MarkdownUtils.d.ts.map +1 -1
  40. package/dist/controls/markdown/MarkdownUtils.js +2 -2
  41. package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
  42. package/dist/events/ChartEvent.d.ts +1 -1
  43. package/dist/events/ChartEvent.d.ts.map +1 -1
  44. package/dist/events/ChartEvent.js.map +1 -1
  45. package/dist/events/ConsoleEvent.d.ts +1 -1
  46. package/dist/events/ConsoleEvent.d.ts.map +1 -1
  47. package/dist/events/ConsoleEvent.js.map +1 -1
  48. package/dist/events/InputFilterEvent.d.ts +1 -1
  49. package/dist/events/InputFilterEvent.d.ts.map +1 -1
  50. package/dist/events/InputFilterEvent.js.map +1 -1
  51. package/dist/events/IrisGridEvent.d.ts +1 -1
  52. package/dist/events/IrisGridEvent.d.ts.map +1 -1
  53. package/dist/events/IrisGridEvent.js.map +1 -1
  54. package/dist/events/NotebookEvent.d.ts +1 -1
  55. package/dist/events/NotebookEvent.d.ts.map +1 -1
  56. package/dist/events/NotebookEvent.js.map +1 -1
  57. package/dist/events/PQEvent.d.ts +1 -1
  58. package/dist/events/PQEvent.d.ts.map +1 -1
  59. package/dist/events/PQEvent.js.map +1 -1
  60. package/dist/events/PandasEvent.d.ts +1 -1
  61. package/dist/events/PandasEvent.d.ts.map +1 -1
  62. package/dist/events/PandasEvent.js.map +1 -1
  63. package/dist/events/TabEvent.d.ts +1 -1
  64. package/dist/events/TabEvent.d.ts.map +1 -1
  65. package/dist/events/TabEvent.js.map +1 -1
  66. package/dist/events/index.d.ts +8 -8
  67. package/dist/events/index.d.ts.map +1 -1
  68. package/dist/events/index.js.map +1 -1
  69. package/dist/index.d.ts +1 -0
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +1 -0
  72. package/dist/index.js.map +1 -1
  73. package/dist/linker/ColumnSelectionValidator.d.ts +4 -0
  74. package/dist/linker/ColumnSelectionValidator.d.ts.map +1 -0
  75. package/dist/linker/ColumnSelectionValidator.js +2 -0
  76. package/dist/linker/ColumnSelectionValidator.js.map +1 -0
  77. package/dist/linker/Linker.d.ts +11 -11
  78. package/dist/linker/Linker.js +1 -1
  79. package/dist/linker/Linker.js.map +1 -1
  80. package/dist/linker/LinkerUtils.d.ts +3 -3
  81. package/dist/linker/LinkerUtils.d.ts.map +1 -1
  82. package/dist/linker/LinkerUtils.js.map +1 -1
  83. package/dist/linker/ToolType.d.ts +1 -1
  84. package/dist/linker/ToolType.d.ts.map +1 -1
  85. package/dist/linker/ToolType.js.map +1 -1
  86. package/dist/linker/index.d.ts +2 -0
  87. package/dist/linker/index.d.ts.map +1 -0
  88. package/dist/linker/index.js +2 -0
  89. package/dist/linker/index.js.map +1 -0
  90. package/dist/panels/ChartColumnSelectorOverlay.d.ts +22 -26
  91. package/dist/panels/ChartColumnSelectorOverlay.d.ts.map +1 -1
  92. package/dist/panels/ChartColumnSelectorOverlay.js +5 -14
  93. package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
  94. package/dist/panels/ChartFilterOverlay.d.ts +29 -21
  95. package/dist/panels/ChartFilterOverlay.d.ts.map +1 -1
  96. package/dist/panels/ChartFilterOverlay.js.map +1 -1
  97. package/dist/panels/ChartPanel.d.ts +187 -152
  98. package/dist/panels/ChartPanel.d.ts.map +1 -1
  99. package/dist/panels/ChartPanel.js +87 -84
  100. package/dist/panels/ChartPanel.js.map +1 -1
  101. package/dist/panels/CommandHistoryPanel.d.ts +41 -56
  102. package/dist/panels/CommandHistoryPanel.d.ts.map +1 -1
  103. package/dist/panels/CommandHistoryPanel.js +13 -35
  104. package/dist/panels/CommandHistoryPanel.js.map +1 -1
  105. package/dist/panels/ConsolePanel.d.ts +63 -73
  106. package/dist/panels/ConsolePanel.d.ts.map +1 -1
  107. package/dist/panels/ConsolePanel.js +67 -83
  108. package/dist/panels/ConsolePanel.js.map +1 -1
  109. package/dist/panels/DropdownFilterPanel.d.ts +110 -106
  110. package/dist/panels/DropdownFilterPanel.d.ts.map +1 -1
  111. package/dist/panels/DropdownFilterPanel.js +60 -62
  112. package/dist/panels/DropdownFilterPanel.js.map +1 -1
  113. package/dist/panels/FileExplorerPanel.d.ts +5 -7
  114. package/dist/panels/FileExplorerPanel.d.ts.map +1 -1
  115. package/dist/panels/FileExplorerPanel.js.map +1 -1
  116. package/dist/panels/FilterSetManager.d.ts +3 -1
  117. package/dist/panels/FilterSetManager.d.ts.map +1 -1
  118. package/dist/panels/FilterSetManager.js.map +1 -1
  119. package/dist/panels/FilterSetManagerPanel.d.ts +83 -62
  120. package/dist/panels/FilterSetManagerPanel.d.ts.map +1 -1
  121. package/dist/panels/FilterSetManagerPanel.js +58 -36
  122. package/dist/panels/FilterSetManagerPanel.js.map +1 -1
  123. package/dist/panels/InputFilterPanel.d.ts +50 -51
  124. package/dist/panels/InputFilterPanel.d.ts.map +1 -1
  125. package/dist/panels/InputFilterPanel.js +35 -34
  126. package/dist/panels/InputFilterPanel.js.map +1 -1
  127. package/dist/panels/IrisGridPanel.d.ts +191 -178
  128. package/dist/panels/IrisGridPanel.d.ts.map +1 -1
  129. package/dist/panels/IrisGridPanel.js +150 -179
  130. package/dist/panels/IrisGridPanel.js.map +1 -1
  131. package/dist/panels/LogPanel.d.ts +29 -45
  132. package/dist/panels/LogPanel.d.ts.map +1 -1
  133. package/dist/panels/LogPanel.js +9 -11
  134. package/dist/panels/LogPanel.js.map +1 -1
  135. package/dist/panels/MarkdownNotebook.d.ts +34 -34
  136. package/dist/panels/MarkdownNotebook.d.ts.map +1 -1
  137. package/dist/panels/MarkdownNotebook.js +21 -18
  138. package/dist/panels/MarkdownNotebook.js.map +1 -1
  139. package/dist/panels/MarkdownPanel.d.ts +41 -47
  140. package/dist/panels/MarkdownPanel.d.ts.map +1 -1
  141. package/dist/panels/MarkdownPanel.js +17 -19
  142. package/dist/panels/MarkdownPanel.js.map +1 -1
  143. package/dist/panels/NotebookPanel.d.ts +135 -115
  144. package/dist/panels/NotebookPanel.d.ts.map +1 -1
  145. package/dist/panels/NotebookPanel.js +93 -68
  146. package/dist/panels/NotebookPanel.js.map +1 -1
  147. package/dist/panels/PandasPanel.d.ts +20 -17
  148. package/dist/panels/PandasPanel.d.ts.map +1 -1
  149. package/dist/panels/PandasPanel.js +17 -13
  150. package/dist/panels/PandasPanel.js.map +1 -1
  151. package/dist/panels/Panel.d.ts +87 -123
  152. package/dist/panels/Panel.d.ts.map +1 -1
  153. package/dist/panels/Panel.js +29 -54
  154. package/dist/panels/Panel.js.map +1 -1
  155. package/dist/panels/PanelContextMenu.d.ts +16 -31
  156. package/dist/panels/PanelContextMenu.d.ts.map +1 -1
  157. package/dist/panels/PanelContextMenu.js +12 -15
  158. package/dist/panels/PanelContextMenu.js.map +1 -1
  159. package/dist/panels/RenameDialog.d.ts +26 -28
  160. package/dist/panels/RenameDialog.d.ts.map +1 -1
  161. package/dist/panels/RenameDialog.js +15 -19
  162. package/dist/panels/RenameDialog.js.map +1 -1
  163. package/dist/panels/WidgetPanel.d.ts +72 -106
  164. package/dist/panels/WidgetPanel.d.ts.map +1 -1
  165. package/dist/panels/WidgetPanel.js +17 -47
  166. package/dist/panels/WidgetPanel.js.map +1 -1
  167. package/dist/panels/WidgetPanelTooltip.d.ts +29 -22
  168. package/dist/panels/WidgetPanelTooltip.d.ts.map +1 -1
  169. package/dist/panels/WidgetPanelTooltip.js +1 -1
  170. package/dist/panels/WidgetPanelTooltip.js.map +1 -1
  171. package/dist/panels/index.d.ts +3 -0
  172. package/dist/panels/index.d.ts.map +1 -1
  173. package/dist/panels/index.js +3 -0
  174. package/dist/panels/index.js.map +1 -1
  175. package/dist/prop-types/CommonPropTypes.d.ts +4 -4
  176. package/dist/prop-types/CommonPropTypes.d.ts.map +1 -1
  177. package/dist/prop-types/CommonPropTypes.js +1 -1
  178. package/dist/prop-types/CommonPropTypes.js.map +1 -1
  179. package/dist/prop-types/UIPropTypes.d.ts +2 -7
  180. package/dist/prop-types/UIPropTypes.d.ts.map +1 -1
  181. package/dist/prop-types/UIPropTypes.js +0 -7
  182. package/dist/prop-types/UIPropTypes.js.map +1 -1
  183. package/dist/prop-types/index.d.ts +2 -2
  184. package/dist/prop-types/index.d.ts.map +1 -1
  185. package/dist/prop-types/index.js.map +1 -1
  186. package/dist/redux/actionTypes.d.ts +1 -1
  187. package/dist/redux/actionTypes.d.ts.map +1 -1
  188. package/dist/redux/actionTypes.js.map +1 -1
  189. package/dist/redux/actions.d.ts +63 -8
  190. package/dist/redux/actions.d.ts.map +1 -1
  191. package/dist/redux/actions.js +17 -17
  192. package/dist/redux/actions.js.map +1 -1
  193. package/dist/redux/reducers/index.d.ts +3 -4
  194. package/dist/redux/reducers/index.d.ts.map +1 -1
  195. package/dist/redux/reducers/index.js.map +1 -1
  196. package/dist/redux/reducers/sessionWrapper.d.ts +1 -1
  197. package/dist/redux/reducers/sessionWrapper.d.ts.map +1 -1
  198. package/dist/redux/reducers/sessionWrapper.js.map +1 -1
  199. package/dist/redux/selectors.d.ts +63 -9
  200. package/dist/redux/selectors.d.ts.map +1 -1
  201. package/dist/redux/selectors.js +27 -27
  202. package/dist/redux/selectors.js.map +1 -1
  203. package/package.json +20 -17
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridPanel.js","names":["React","PureComponent","memoize","PropTypes","connect","debounce","GLPropTypes","LayoutUtils","AdvancedSettings","IrisGrid","IrisGridModel","IrisGridUtils","IrisGridTableModel","isIrisGridTableModelTemplate","TableUtils","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","columnHeaderMaxDepth","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"],"sources":["../../src/panels/IrisGridPanel.jsx"],"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 AdvancedSettings,\n IrisGrid,\n IrisGridModel,\n IrisGridUtils,\n IrisGridTableModel,\n isIrisGridTableModelTemplate,\n} from '@deephaven/iris-grid';\nimport { TableUtils } from '@deephaven/jsapi-utils';\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 if (isIrisGridTableModelTemplate(model)) {\n const { table } = model;\n const { pluginName } = table;\n\n if (pluginName) {\n if (loadPlugin && pluginName) {\n const Plugin = loadPlugin(pluginName);\n this.setState({ Plugin });\n }\n }\n glEventHub.emit(InputFilterEvent.TABLE_CHANGED, this, table);\n }\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 columnHeaderMaxDepth,\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 * columnHeaderMaxDepth;\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"],"mappings":"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"}
1
+ {"version":3,"file":"IrisGridPanel.js","names":["React","PureComponent","memoize","connect","debounce","LayoutUtils","AdvancedSettings","IrisGrid","IrisGridModel","IrisGridUtils","IrisGridTableModel","isIrisGridTableModelTemplate","TableUtils","Log","getSettings","getUser","getWorkspace","assertNotNull","PromiseUtils","ContextMenuRoot","ConsoleEvent","InputFilterEvent","IrisGridEvent","getInputFiltersForDashboard","getLinksForDashboard","getColumnSelectionValidatorForDashboard","WidgetPanel","WidgetPanelTooltip","log","module","DEBOUNCE_PANEL_STATE_UPDATE","PLUGIN_COMPONENTS","IrisGridPanel","constructor","props","columns","inputFilters","getInputFiltersForColumns","filter","value","excludePanelIds","id","getIdFromPanel","includes","dashboardLinks","pluginFetchColumns","columnSet","Set","i","length","start","panelId","add","columnName","Plugin","model","user","workspace","pluginState","table","pluginRef","handlePluginFilter","handlePluginFetchColumns","handlePluginStateChange","isSelectingPartition","partition","partitionColumn","dehydrateIrisGridPanelState","sorts","advancedFilters","customColumnFormatMap","isFilterBarShown","quickFilters","customColumns","reverseType","rollupConfig","showSearchBar","searchValue","selectDistinctColumns","selectedSearchColumns","invertSearchColumns","userColumnWidths","userRowHeights","aggregationSettings","pendingDataMap","frozenColumns","conditionalFormats","dehydrateIrisGridState","metrics","movedColumns","movedRows","isStuckToBottom","isStuckToRight","dehydrateGridState","irisGridPanelState","irisGridState","gridState","onPanelStateUpdate","panelState","oldPanelState","state","getCachedPanelState","getDehydratedIrisGridPanelState","getDehydratedIrisGridState","getDehydratedGridState","debug","setState","handleAdvancedSettingsChange","bind","handleColumnsChanged","handleTableChanged","handleColumnSelected","handleDataSelected","handleError","handleGridStateChange","handlePartitionAppend","handleCreateChart","handleResize","handleShow","handleTabClicked","handleDisconnect","handleReconnect","handleLoadSuccess","handleLoadError","isColumnSelectionValid","handleContextMenu","handleClearAllFilters","irisGrid","createRef","error","isDisconnected","isLoaded","isLoading","isModelReady","undefined","Map","aggregations","showOnTop","advancedSettings","DEFAULTS","REVERSE_TYPE","NONE","pluginFilters","modelQueue","irisGridStateOverrides","gridStateOverrides","componentDidMount","initModel","componentDidUpdate","_","prevState","stopModelListening","close","startModelListening","componentWillUnmount","savePanelState","cancel","modelPromise","getTableName","metadata","makeModel","makeCancelable","resolved","then","catch","modelParam","push","m","getModelRollupConfig","originalColumns","initModelQueue","modelInitialized","modelChange","shift","key","get","set","filters","formatter","getFiltersFromInputFilters","timeZone","obj","current","getMenu","data","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","columnHeaderMaxDepth","columnIndex","getColumnIndexByName","visibleIndex","getVisibleColumn","columnX","columnWidth","x","Math","max","left","min","y","top","setFilterMap","filterMap","setAdvancedFilterMap","setFilters","indexedQuickFilters","changeFilterColumnNamesToIndexes","isFilterable","indexedAdvancedFilters","hydrateQuickFilters","hydrateAdvancedFilters","setStateOverrides","overrides","unsetFilterValue","originalIrisGridStateOverrides","savedQuickFilters","savedAdvancedFilters","hydrateIrisGridPanelState","hydrateIrisGridState","hydrateGridState","grid","render","children","glContainer","getDownloadWorker","links","theme","errorMessage","description","childrenContent","getPluginContent","permissions","canCopy","canDownloadCsv","formattedRowCount","displayString","rowCount","getAlwaysFetchColumns","getGridInputFilters","mapStateToProps","ownProps","localDashboardId","forwardRef"],"sources":["../../src/panels/IrisGridPanel.tsx"],"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, {\n PureComponent,\n ReactElement,\n ReactNode,\n RefObject,\n} from 'react';\nimport memoize from 'memoize-one';\nimport { connect } from 'react-redux';\nimport debounce from 'lodash.debounce';\nimport { LayoutUtils, PanelComponent } from '@deephaven/dashboard';\nimport {\n AdvancedSettings,\n IrisGrid,\n IrisGridModel,\n IrisGridUtils,\n IrisGridTableModel,\n isIrisGridTableModelTemplate,\n ColumnName,\n PendingDataMap,\n InputFilter,\n IrisGridThemeType,\n AdvancedFilterMap,\n AggregationSettings,\n AdvancedSettingsType,\n UIRollupConfig,\n UIRow,\n QuickFilterMap,\n FilterMap,\n QuickFilter,\n AdvancedFilter,\n SidebarFormattingRule,\n IrisGridState,\n ChartBuilderSettings,\n DehydratedIrisGridState,\n} from '@deephaven/iris-grid';\nimport {\n AdvancedFilterOptions,\n FormattingRule,\n ReverseType,\n TableUtils,\n} from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport {\n getSettings,\n getUser,\n getWorkspace,\n RootState,\n User,\n Workspace,\n} from '@deephaven/redux';\nimport {\n assertNotNull,\n CancelablePromise,\n PromiseUtils,\n} from '@deephaven/utils';\nimport { ContextAction, ContextMenuRoot } from '@deephaven/components';\nimport { Column, FilterCondition, Sort } from '@deephaven/jsapi-shim';\nimport {\n GridRangeIndex,\n GridState,\n ModelIndex,\n ModelSizeMap,\n MoveOperation,\n} from '@deephaven/grid';\nimport { Container, EventEmitter } from '@deephaven/golden-layout';\nimport { ConsoleEvent, InputFilterEvent, IrisGridEvent } from '../events';\nimport {\n getInputFiltersForDashboard,\n getLinksForDashboard,\n getColumnSelectionValidatorForDashboard,\n} from '../redux';\nimport WidgetPanel from './WidgetPanel';\nimport WidgetPanelTooltip from './WidgetPanelTooltip';\nimport './IrisGridPanel.scss';\nimport { Link, LinkColumn } from '../linker/LinkerUtils';\n\nconst log = Log.module('IrisGridPanel');\n\nconst DEBOUNCE_PANEL_STATE_UPDATE = 500;\n\nconst PLUGIN_COMPONENTS = { IrisGrid, IrisGridTableModel, ContextMenuRoot };\n\ntype ModelQueueFunction = (model: IrisGridModel) => void;\n\ntype ModelQueue = ModelQueueFunction[];\n\ninterface Metadata {\n table: string;\n query?: string;\n querySerial?: string;\n}\n\nexport interface PanelState {\n gridState: {\n isStuckToBottom: boolean;\n isStuckToRight: boolean;\n movedColumns: { from: string | ModelIndex; to: string | ModelIndex }[];\n movedRows: MoveOperation[];\n };\n irisGridState: DehydratedIrisGridState;\n irisGridPanelState: {\n partitionColumn: ColumnName;\n partition: string;\n isSelectingPartition: boolean;\n };\n pluginState: unknown;\n}\n\nexport interface IrisGridPanelProps {\n children?: ReactNode;\n glContainer: Container;\n glEventHub: EventEmitter;\n metadata: Metadata;\n panelState: PanelState | null;\n makeModel: () => IrisGridModel | Promise<IrisGridModel>;\n inputFilters: InputFilter[];\n links: Link[];\n columnSelectionValidator?: (\n panel: PanelComponent,\n tableColumn?: LinkColumn\n ) => boolean;\n onStateChange?: (irisGridState: IrisGridState, gridState: GridState) => void;\n onPanelStateUpdate?: (panelState: PanelState) => void;\n user: User;\n workspace: Workspace;\n settings: { timeZone: string };\n\n // Retrieve a download worker for optimizing exporting tables\n getDownloadWorker: () => Promise<ServiceWorker>;\n\n // Load a plugin defined by the table\n loadPlugin: (pluginName: string) => Plugin;\n\n theme: IrisGridThemeType;\n}\n\ninterface IrisGridPanelState {\n error: unknown;\n isDisconnected: boolean;\n isLoaded: boolean;\n isLoading: boolean;\n isModelReady: boolean;\n model?: IrisGridModel;\n\n isStuckToBottom: boolean;\n isStuckToRight: boolean;\n\n // State is hydrated from panel state when table is loaded\n conditionalFormats: SidebarFormattingRule[];\n selectDistinctColumns: ColumnName[];\n advancedFilters: AdvancedFilterMap;\n aggregationSettings: AggregationSettings;\n advancedSettings: Map<AdvancedSettingsType, boolean>;\n customColumns: ColumnName[];\n customColumnFormatMap: Map<string, FormattingRule>;\n isFilterBarShown: boolean;\n quickFilters: QuickFilterMap;\n sorts: Sort[];\n userColumnWidths: ModelSizeMap;\n userRowHeights: ModelSizeMap;\n reverseType: ReverseType;\n movedColumns: MoveOperation[];\n movedRows: MoveOperation[];\n isSelectingPartition: boolean;\n partition?: string;\n partitionColumn?: Column;\n rollupConfig?: UIRollupConfig;\n showSearchBar: boolean;\n searchValue: string;\n selectedSearchColumns?: string[];\n invertSearchColumns: boolean;\n Plugin?: Plugin;\n pluginFilters: FilterCondition[];\n pluginFetchColumns: unknown[];\n modelQueue: ModelQueue;\n pendingDataMap?: PendingDataMap<UIRow>;\n frozenColumns?: ColumnName[];\n\n // eslint-disable-next-line react/no-unused-state\n panelState: PanelState | null; // Dehydrated panel state that can load this panel\n irisGridStateOverrides: Partial<DehydratedIrisGridState>;\n gridStateOverrides: Partial<GridState>;\n}\n\nexport class IrisGridPanel extends PureComponent<\n IrisGridPanelProps,\n IrisGridPanelState\n> {\n static defaultProps = {\n onStateChange: (): void => undefined,\n onPanelStateUpdate: (): void => undefined,\n };\n\n static displayName = 'IrisGridPanel';\n\n static COMPONENT = 'IrisGridPanel';\n\n constructor(props: IrisGridPanelProps) {\n super(props);\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\n const { panelState } = props;\n\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: undefined,\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: undefined,\n partitionColumn: undefined,\n rollupConfig: undefined,\n showSearchBar: false,\n searchValue: '',\n selectedSearchColumns: undefined,\n invertSearchColumns: true,\n Plugin: undefined,\n pluginFilters: [],\n pluginFetchColumns: [],\n modelQueue: [],\n pendingDataMap: new Map(),\n frozenColumns: undefined,\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 isStuckToBottom: false,\n isStuckToRight: false,\n conditionalFormats: [],\n selectDistinctColumns: [],\n };\n }\n\n componentDidMount(): void {\n this.initModel();\n }\n\n componentDidUpdate(_: never, prevState: IrisGridPanelState): void {\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(): void {\n this.savePanelState.cancel();\n\n if (this.modelPromise != null) {\n this.modelPromise.cancel();\n this.modelPromise = undefined;\n }\n\n const { model } = this.state;\n if (model) {\n this.stopModelListening(model);\n model.close();\n }\n }\n\n irisGrid: RefObject<IrisGrid>;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n pluginRef: RefObject<any>;\n\n modelPromise?: CancelablePromise<IrisGridModel>;\n\n irisGridState?: IrisGridState;\n\n gridState?: GridState;\n\n pluginState: unknown;\n\n getTableName(): string {\n const { metadata } = this.props;\n return metadata.table;\n }\n\n getGridInputFilters = memoize(\n (columns: Column[], inputFilters: InputFilter[]) =>\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(({ value, excludePanelIds }) => {\n const id = LayoutUtils.getIdFromPanel(this);\n return (\n value != null &&\n (excludePanelIds == null || (id && !excludePanelIds.includes(id)))\n );\n })\n )\n );\n\n getAlwaysFetchColumns = memoize(\n (dashboardLinks, pluginFetchColumns): string[] => {\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<string>(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\n getPluginContent = memoize(\n (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Plugin: any,\n model: IrisGridModel | undefined,\n user,\n workspace,\n pluginState\n ) => {\n if (\n !model ||\n !isIrisGridTableModelTemplate(model) ||\n Plugin == null ||\n model.table == null\n ) {\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={model.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\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 pendingDataMap,\n frozenColumns,\n conditionalFormats\n ) =>\n IrisGridUtils.dehydrateIrisGridState(model, {\n advancedFilters,\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 (\n irisGridPanelState,\n irisGridState,\n gridState,\n pluginState\n ): PanelState => ({\n irisGridPanelState,\n irisGridState,\n gridState,\n pluginState,\n })\n );\n\n initModel(): void {\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(makeModel(), resolved =>\n resolved.close()\n );\n this.modelPromise.then(this.handleLoadSuccess).catch(this.handleLoadError);\n }\n\n handleLoadSuccess(modelParam: IrisGridModel): void {\n const model = modelParam;\n const { panelState, irisGridStateOverrides } = this.state;\n const modelQueue: ((m: IrisGridModel) => void)[] = [];\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: IrisGridModel, modelQueue: ModelQueue): void {\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 if (modelChange) {\n modelChange(model);\n }\n this.setState({ modelQueue });\n }\n\n handleAdvancedSettingsChange(\n key: AdvancedSettingsType,\n value: boolean\n ): void {\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: InputFilter[]): void {\n const { model } = this.state;\n assertNotNull(model);\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: unknown[]): void {\n this.setState({ pluginFetchColumns });\n }\n\n handleContextMenu(obj: {\n model: IrisGridModel;\n value: unknown;\n valueText: string | null;\n column: Column;\n rowIndex: GridRangeIndex;\n columnIndex: GridRangeIndex;\n modelRow: GridRangeIndex;\n modelColumn: GridRangeIndex;\n }): ContextAction {\n return this.pluginRef.current.getMenu?.({ data: obj }) ?? [];\n }\n\n isColumnSelectionValid(tableColumn: Column | null): boolean {\n const { columnSelectionValidator } = this.props;\n if (columnSelectionValidator && tableColumn) {\n return columnSelectionValidator(this, tableColumn);\n }\n return false;\n }\n\n handleGridStateChange(\n irisGridState: IrisGridState,\n gridState: GridState\n ): void {\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: unknown): void {\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: Event): void {\n const { isModelReady, model, modelQueue } = this.state;\n if (isModelReady) {\n this.sendColumnsChange((event as CustomEvent).detail);\n } else {\n assertNotNull(model);\n this.initModelQueue(model, modelQueue);\n }\n }\n\n handleTableChanged(event: Event): void {\n log.debug('handleTableChanged', event);\n const { glEventHub } = this.props;\n const { detail: table } = event as CustomEvent;\n glEventHub.emit(InputFilterEvent.TABLE_CHANGED, this, table);\n }\n\n handlePartitionAppend(column: Column, value: unknown): void {\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 settings The settings from the chart builder\n * @param settings.type The settings from the chart builder\n * @param settings.series The names of the series\n * @param model The IrisGridModel object\n */\n handleCreateChart(\n settings: ChartBuilderSettings,\n model: IrisGridModel\n ): void {\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 let tableSettings;\n\n if (panelState) {\n tableSettings = IrisGridUtils.extractTableSettings(\n panelState,\n inputFilters\n );\n }\n glEventHub.emit(IrisGridEvent.CREATE_CHART, {\n metadata: {\n settings,\n sourcePanelId,\n table,\n tableSettings,\n },\n table: isIrisGridTableModelTemplate(model) ? model.table : undefined,\n });\n }\n );\n }\n\n handleColumnSelected(column: Column): void {\n const { glEventHub } = this.props;\n glEventHub.emit(IrisGridEvent.COLUMN_SELECTED, this, column);\n }\n\n handleDataSelected(row: ModelIndex, dataMap: Record<string, unknown>): void {\n const { glEventHub } = this.props;\n glEventHub.emit(IrisGridEvent.DATA_SELECTED, this, dataMap);\n }\n\n handleResize(): void {\n this.updateGrid();\n }\n\n handleShow(): void {\n this.updateGrid();\n }\n\n handleTabClicked(): void {\n if (this.irisGrid.current) {\n this.irisGrid.current.focus();\n }\n }\n\n handleError(error: unknown): void {\n log.error(error);\n this.setState({ error, isLoading: false });\n }\n\n handleDisconnect(): void {\n this.setState({\n error: new Error('Table disconnected'),\n isDisconnected: true,\n isLoading: false,\n });\n }\n\n handleReconnect(): void {\n this.setState({ isDisconnected: false, error: null });\n }\n\n handleLoadError(error: unknown): void {\n if (PromiseUtils.isCanceled(error)) {\n return;\n }\n\n this.handleError(error);\n }\n\n modelInitialized(model: IrisGridModel): void {\n const { glEventHub, loadPlugin } = this.props;\n\n this.modelPromise = undefined;\n\n // Custom columns at this point already initialized, can load state\n this.loadPanelState(model);\n\n this.setState({ isModelReady: true });\n\n if (isIrisGridTableModelTemplate(model)) {\n const { table } = model;\n const { pluginName } = table;\n\n if (pluginName) {\n if (loadPlugin && pluginName) {\n const Plugin = loadPlugin(pluginName);\n this.setState({ Plugin });\n }\n }\n glEventHub.emit(InputFilterEvent.TABLE_CHANGED, this, table);\n }\n\n this.sendColumnsChange(model.columns);\n }\n\n handleClearAllFilters(): void {\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: Column[]): void {\n log.debug2('sendColumnsChange', columns);\n const { glEventHub } = this.props;\n glEventHub.emit(InputFilterEvent.COLUMNS_CHANGED, this, columns);\n }\n\n startModelListening(model: IrisGridModel): void {\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: IrisGridModel): void {\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: ColumnName): [number, number] | null {\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 assertNotNull(irisGrid);\n const { metrics } = irisGrid.state;\n assertNotNull(metrics);\n const {\n columnHeaderHeight,\n visibleColumnXs,\n visibleColumnWidths,\n right,\n columnHeaderMaxDepth,\n } = metrics;\n const columnIndex = model.getColumnIndexByName(columnName);\n assertNotNull(columnIndex);\n const visibleIndex = irisGrid.getVisibleColumn(columnIndex);\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 * columnHeaderMaxDepth;\n\n return [x, y];\n }\n\n setFilterMap(filterMap: FilterMap): void {\n const irisGrid = this.irisGrid.current;\n if (irisGrid != null) {\n irisGrid.setFilterMap(filterMap);\n }\n }\n\n setAdvancedFilterMap(filterMap: AdvancedFilterMap): void {\n const irisGrid = this.irisGrid.current;\n if (irisGrid != null) {\n irisGrid.setAdvancedFilterMap(filterMap);\n }\n }\n\n setFilters({\n quickFilters,\n advancedFilters,\n }: {\n quickFilters: { name: ColumnName; filter: QuickFilter }[];\n advancedFilters: { name: ColumnName; filter: AdvancedFilter }[];\n }): void {\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 assertNotNull(model);\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 irisGridState: Partial<DehydratedIrisGridState>;\n gridState: Partial<GridState>;\n }): void {\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(): void {\n // IrisGridPanel retains the set value after the link is broken\n }\n\n loadPanelState(model: IrisGridModel): void {\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 as unknown) as {\n name: string;\n filter: {\n text: string;\n };\n }[]\n );\n }\n if (savedAdvancedFilters) {\n irisGridStateOverrides.advancedFilters = IrisGridUtils.changeFilterColumnNamesToIndexes(\n model.columns,\n (savedAdvancedFilters as unknown) as {\n name: string;\n filter: { options: AdvancedFilterOptions };\n }[]\n );\n }\n const {\n isSelectingPartition,\n partition,\n partitionColumn,\n } = IrisGridUtils.hydrateIrisGridPanelState(model, irisGridPanelState);\n const {\n advancedFilters,\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 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 = debounce(() => {\n const { irisGridState, gridState, pluginState } = this;\n assertNotNull(irisGridState);\n const { onPanelStateUpdate } = this.props;\n const {\n model,\n panelState: oldPanelState,\n isSelectingPartition,\n partition,\n partitionColumn,\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 assertNotNull(metrics);\n const { userColumnWidths, userRowHeights } = metrics;\n assertNotNull(gridState);\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 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 }, DEBOUNCE_PANEL_STATE_UPDATE);\n\n updateGrid(): void {\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(): ReactElement {\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 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}` : undefined;\n const { table: name } = metadata;\n const description = model?.description ?? undefined;\n const pluginState = panelState?.pluginState ?? null;\n const childrenContent =\n children ??\n this.getPluginContent(Plugin, model, 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 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 && model && (\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 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\nconst mapStateToProps = (\n state: RootState,\n ownProps: { localDashboardId: string }\n) => {\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"],"mappings":"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"}
@@ -1,53 +1,37 @@
1
- declare var _default: import("react-redux").ConnectedComponent<typeof LogPanel, any>;
2
- export default _default;
3
- declare class LogPanel extends React.PureComponent<any, any, any> {
1
+ import { PureComponent } from 'react';
2
+ import { LogView } from '@deephaven/console';
3
+ import { IdeSession } from '@deephaven/jsapi-shim';
4
+ import { Container, EventEmitter } from '@deephaven/golden-layout';
5
+ import './LogPanel.scss';
6
+ interface LogPanelProps {
7
+ glContainer: Container;
8
+ glEventHub: EventEmitter;
9
+ session: IdeSession;
10
+ }
11
+ interface LogPanelState {
12
+ session: IdeSession;
13
+ }
14
+ declare class LogPanel extends PureComponent<LogPanelProps, LogPanelState> {
15
+ static defaultProps: {
16
+ session: null;
17
+ };
4
18
  static COMPONENT: string;
5
19
  static TITLE: string;
6
- constructor(props: any);
20
+ constructor(props: LogPanelProps);
21
+ isBottomVisible: boolean;
22
+ logView: LogView | null;
7
23
  handleResize(): void;
8
24
  handleShow(): void;
9
25
  handleHide(): void;
10
- handleSessionOpened(session: any): void;
11
- handleSessionClosed(session: any): void;
12
- isBottomVisible: boolean;
13
- logView: LogView | null;
26
+ handleSessionOpened(session: IdeSession): void;
27
+ handleSessionClosed(session: IdeSession): void;
14
28
  updateDimensions(): void;
29
+ render(): JSX.Element;
15
30
  }
16
- declare namespace LogPanel {
17
- namespace propTypes {
18
- const glContainer: import("prop-types").Validator<import("prop-types").InferProps<{
19
- on: import("prop-types").Requireable<(...args: any[]) => any>;
20
- off: import("prop-types").Requireable<(...args: any[]) => any>;
21
- isHidden: import("prop-types").Requireable<boolean>;
22
- tab: import("prop-types").Requireable<import("prop-types").InferProps<{
23
- header: import("prop-types").Requireable<import("prop-types").InferProps<{
24
- tabs: import("prop-types").Requireable<(import("prop-types").InferProps<{
25
- contentItem: import("prop-types").Requireable<import("prop-types").InferProps<{}>>;
26
- }> | null | undefined)[]>;
27
- }>>;
28
- }>>;
29
- title: import("prop-types").Requireable<string>;
30
- setTitle: import("prop-types").Requireable<(...args: any[]) => any>;
31
- close: import("prop-types").Requireable<(...args: any[]) => any>;
32
- }>>;
33
- const glEventHub: import("prop-types").Validator<import("prop-types").InferProps<{
34
- on: import("prop-types").Requireable<(...args: any[]) => any>;
35
- off: import("prop-types").Requireable<(...args: any[]) => any>;
36
- emit: import("prop-types").Requireable<(...args: any[]) => any>;
37
- }>>;
38
- const session: import("prop-types").Requireable<import("prop-types").InferProps<{
39
- addEventListener: import("prop-types").Validator<(...args: any[]) => any>;
40
- removeEventListener: import("prop-types").Validator<(...args: any[]) => any>;
41
- onLogMessage: import("prop-types").Requireable<(...args: any[]) => any>;
42
- getTable: import("prop-types").Validator<(...args: any[]) => any>;
43
- runCode: import("prop-types").Validator<(...args: any[]) => any>;
44
- }>>;
45
- }
46
- namespace defaultProps {
47
- const session_1: null;
48
- export { session_1 as session };
49
- }
50
- }
51
- import React from "react";
52
- import { LogView } from "@deephaven/console";
31
+ declare const _default: import("react-redux").ConnectedComponent<typeof LogPanel, import("react-redux").Omit<Pick<LogPanelProps, "glContainer" | "glEventHub"> & Partial<Pick<LogPanelProps, "session">> & Partial<Pick<{
32
+ session: null;
33
+ }, never>>, "session"> & {
34
+ localDashboardId: string;
35
+ }>;
36
+ export default _default;
53
37
  //# sourceMappingURL=LogPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LogPanel.d.ts","sourceRoot":"","sources":["../../src/panels/LogPanel.jsx"],"names":[],"mappings":";;AAcA;IACE,yBAA8B;IAE9B,qBAAqB;IAErB,wBAeC;IAED,qBAEC;IAED,mBASC;IAED,mBAIC;IAED,wCAGC;IAGD,wCAGC;IAtCC,yBAA2B;IAC3B,wBAAmB;IAuCrB,yBAIC;CAgCF"}
1
+ {"version":3,"file":"LogPanel.d.ts","sourceRoot":"","sources":["../../src/panels/LogPanel.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,iBAAiB,CAAC;AAMzB,UAAU,aAAa;IACrB,WAAW,EAAE,SAAS,CAAC;IACvB,UAAU,EAAE,YAAY,CAAC;IACzB,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,UAAU,aAAa;IACrB,OAAO,EAAE,UAAU,CAAC;CACrB;AAED,cAAM,QAAS,SAAQ,aAAa,CAAC,aAAa,EAAE,aAAa,CAAC;IAChE,MAAM,CAAC,YAAY;;MAEjB;IAEF,MAAM,CAAC,SAAS,SAAc;IAE9B,MAAM,CAAC,KAAK,SAAS;gBAET,KAAK,EAAE,aAAa;IAiBhC,eAAe,EAAE,OAAO,CAAC;IAEzB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAExB,YAAY;IAIZ,UAAU;IAWV,UAAU;IAMV,mBAAmB,CAAC,OAAO,EAAE,UAAU;IAMvC,mBAAmB,CAAC,OAAO,EAAE,UAAU;IAKvC,gBAAgB;IAMhB,MAAM;CA8BP;;;;;;AAUD,wBAEE"}
@@ -5,8 +5,6 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
5
5
  import React, { PureComponent } from 'react';
6
6
  import { connect } from 'react-redux';
7
7
  import { LogView } from '@deephaven/console';
8
- import { GLPropTypes } from '@deephaven/dashboard';
9
- import { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';
10
8
  import Log from '@deephaven/log';
11
9
  import "./LogPanel.css";
12
10
  import Panel from "./Panel.js";
@@ -16,6 +14,11 @@ var log = Log.module('LogPanel');
16
14
  class LogPanel extends PureComponent {
17
15
  constructor(props) {
18
16
  super(props);
17
+
18
+ _defineProperty(this, "isBottomVisible", void 0);
19
+
20
+ _defineProperty(this, "logView", void 0);
21
+
19
22
  this.handleResize = this.handleResize.bind(this);
20
23
  this.handleShow = this.handleShow.bind(this);
21
24
  this.handleHide = this.handleHide.bind(this);
@@ -100,19 +103,14 @@ class LogPanel extends PureComponent {
100
103
 
101
104
  }
102
105
 
106
+ _defineProperty(LogPanel, "defaultProps", {
107
+ session: null
108
+ });
109
+
103
110
  _defineProperty(LogPanel, "COMPONENT", 'LogPanel');
104
111
 
105
112
  _defineProperty(LogPanel, "TITLE", 'Log');
106
113
 
107
- LogPanel.propTypes = {
108
- glContainer: GLPropTypes.Container.isRequired,
109
- glEventHub: GLPropTypes.EventHub.isRequired,
110
- session: APIPropTypes.IdeSession
111
- };
112
- LogPanel.defaultProps = {
113
- session: null
114
- };
115
-
116
114
  var mapStateToProps = (state, ownProps) => {
117
115
  var _getDashboardSessionW;
118
116
 
@@ -1 +1 @@
1
- {"version":3,"file":"LogPanel.js","names":["React","PureComponent","connect","LogView","GLPropTypes","PropTypes","APIPropTypes","Log","Panel","getDashboardSessionWrapper","log","module","LogPanel","constructor","props","handleResize","bind","handleShow","handleHide","handleSessionOpened","handleSessionClosed","isBottomVisible","logView","session","state","updateDimensions","triggerFindWidget","scrollToBottom","debug","setState","render","glContainer","glEventHub","propTypes","Container","isRequired","EventHub","IdeSession","defaultProps","mapStateToProps","ownProps","localDashboardId","forwardRef"],"sources":["../../src/panels/LogPanel.jsx"],"sourcesContent":["// Wrapper for the Console for use in a golden layout container\n// Will probably need to handle window popping out from golden layout here.\nimport React, { PureComponent } from 'react';\nimport { connect } from 'react-redux';\nimport { LogView } from '@deephaven/console';\nimport { GLPropTypes } from '@deephaven/dashboard';\nimport { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport './LogPanel.scss';\nimport Panel from './Panel';\nimport { getDashboardSessionWrapper } from '../redux';\n\nconst log = Log.module('LogPanel');\n\nclass LogPanel extends PureComponent {\n static COMPONENT = 'LogPanel';\n\n static TITLE = 'Log';\n\n constructor(props) {\n super(props);\n\n this.handleResize = this.handleResize.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleHide = this.handleHide.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n\n this.isBottomVisible = true;\n this.logView = null;\n\n const { session } = this.props;\n\n this.state = { session };\n }\n\n handleResize() {\n this.updateDimensions();\n }\n\n handleShow() {\n this.updateDimensions();\n if (this.logView) {\n this.logView.triggerFindWidget();\n\n if (this.isBottomVisible) {\n this.logView.scrollToBottom();\n }\n }\n }\n\n handleHide() {\n if (this.logView) {\n this.isBottomVisible = this.logView.isBottomVisible();\n }\n }\n\n handleSessionOpened(session) {\n log.debug('Session opened', [session]);\n this.setState({ session });\n }\n\n // eslint-disable-next-line class-methods-use-this\n handleSessionClosed(session) {\n log.debug('Session closed', session);\n // Keep the session reference in state unchanged until the session is re-connected\n }\n\n updateDimensions() {\n if (this.logView) {\n this.logView.updateDimensions();\n }\n }\n\n render() {\n const { glContainer, glEventHub } = this.props;\n const { session } = this.state;\n return (\n <Panel\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onResize={this.handleResize}\n onHide={this.handleHide}\n onShow={this.handleShow}\n onSessionOpen={this.handleSessionOpened}\n onSessionClose={this.handleSessionClosed}\n >\n {!session && (\n <div className=\"log-panel-disconnected-message\">\n Waiting for session connection\n </div>\n )}\n {session && (\n <LogView\n session={session}\n ref={logView => {\n this.logView = logView;\n }}\n />\n )}\n </Panel>\n );\n }\n}\n\nLogPanel.propTypes = {\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n session: APIPropTypes.IdeSession,\n};\n\nLogPanel.defaultProps = {\n session: null,\n};\n\nconst mapStateToProps = (state, ownProps) => ({\n session: getDashboardSessionWrapper(state, ownProps.localDashboardId)\n ?.session,\n});\n\nexport default connect(mapStateToProps, null, null, { forwardRef: true })(\n LogPanel\n);\n"],"mappings":"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"}
1
+ {"version":3,"file":"LogPanel.js","names":["React","PureComponent","connect","LogView","Log","Panel","getDashboardSessionWrapper","log","module","LogPanel","constructor","props","handleResize","bind","handleShow","handleHide","handleSessionOpened","handleSessionClosed","isBottomVisible","logView","session","state","updateDimensions","triggerFindWidget","scrollToBottom","debug","setState","render","glContainer","glEventHub","mapStateToProps","ownProps","localDashboardId","forwardRef"],"sources":["../../src/panels/LogPanel.tsx"],"sourcesContent":["// Wrapper for the Console for use in a golden layout container\n// Will probably need to handle window popping out from golden layout here.\nimport React, { PureComponent } from 'react';\nimport { connect } from 'react-redux';\nimport { LogView } from '@deephaven/console';\nimport { IdeSession } from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport { Container, EventEmitter } from '@deephaven/golden-layout';\nimport { RootState } from '@deephaven/redux';\nimport './LogPanel.scss';\nimport Panel from './Panel';\nimport { getDashboardSessionWrapper } from '../redux';\n\nconst log = Log.module('LogPanel');\n\ninterface LogPanelProps {\n glContainer: Container;\n glEventHub: EventEmitter;\n session: IdeSession;\n}\n\ninterface LogPanelState {\n session: IdeSession;\n}\n\nclass LogPanel extends PureComponent<LogPanelProps, LogPanelState> {\n static defaultProps = {\n session: null,\n };\n\n static COMPONENT = 'LogPanel';\n\n static TITLE = 'Log';\n\n constructor(props: LogPanelProps) {\n super(props);\n\n this.handleResize = this.handleResize.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleHide = this.handleHide.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n\n this.isBottomVisible = true;\n this.logView = null;\n\n const { session } = this.props;\n\n this.state = { session };\n }\n\n isBottomVisible: boolean;\n\n logView: LogView | null;\n\n handleResize() {\n this.updateDimensions();\n }\n\n handleShow() {\n this.updateDimensions();\n if (this.logView) {\n this.logView.triggerFindWidget();\n\n if (this.isBottomVisible) {\n this.logView.scrollToBottom();\n }\n }\n }\n\n handleHide() {\n if (this.logView) {\n this.isBottomVisible = this.logView.isBottomVisible();\n }\n }\n\n handleSessionOpened(session: IdeSession) {\n log.debug('Session opened', [session]);\n this.setState({ session });\n }\n\n // eslint-disable-next-line class-methods-use-this\n handleSessionClosed(session: IdeSession) {\n log.debug('Session closed', session);\n // Keep the session reference in state unchanged until the session is re-connected\n }\n\n updateDimensions() {\n if (this.logView) {\n this.logView.updateDimensions();\n }\n }\n\n render() {\n const { glContainer, glEventHub } = this.props;\n const { session } = this.state;\n return (\n <Panel\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onResize={this.handleResize}\n onHide={this.handleHide}\n onShow={this.handleShow}\n onSessionOpen={this.handleSessionOpened}\n onSessionClose={this.handleSessionClosed}\n >\n {!session && (\n <div className=\"log-panel-disconnected-message\">\n Waiting for session connection\n </div>\n )}\n {session && (\n <LogView\n session={session}\n ref={logView => {\n this.logView = logView;\n }}\n />\n )}\n </Panel>\n );\n }\n}\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: { localDashboardId: string }\n) => ({\n session: getDashboardSessionWrapper(state, ownProps.localDashboardId)\n ?.session,\n});\n\nexport default connect(mapStateToProps, null, null, { forwardRef: true })(\n LogPanel\n);\n"],"mappings":"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"}
@@ -1,41 +1,41 @@
1
- export class MarkdownNotebook extends React.PureComponent<any, any, any> {
2
- constructor(props: any);
3
- handleRunSelected(event: any): void;
4
- renderCodeBlock(props: any): JSX.Element;
5
- renderLink(props: any): JSX.Element;
6
- commands: Map<any, any>;
1
+ import React, { PureComponent, ReactElement, RefObject, MouseEvent, MouseEventHandler } from 'react';
2
+ import './MarkdownNotebook.scss';
3
+ import { ReactMarkdownProps, TransformImage, TransformLink } from 'react-markdown/src/ast-to-react';
4
+ interface MarkdownNotebookProps {
5
+ onRunCode: (command?: string) => void;
6
+ content: string;
7
+ onLinkClick: MouseEventHandler<HTMLAnchorElement>;
8
+ transformImageUri?: TransformImage;
9
+ transformLinkUri?: false | TransformLink | null;
10
+ }
11
+ interface MarkdownNotebookState {
12
+ hasCode: boolean;
13
+ hasRunCode: boolean;
14
+ nextStartLine: number | null;
15
+ }
16
+ export declare class MarkdownNotebook extends PureComponent<MarkdownNotebookProps, MarkdownNotebookState> {
17
+ static defaultProps: {
18
+ onRunCode: () => void;
19
+ };
20
+ constructor(props: MarkdownNotebookProps);
21
+ componentDidMount(): void;
22
+ componentDidUpdate(): void;
23
+ commands: Map<number, string>;
7
24
  codeElements: Map<any, any>;
8
- editorScrollView: React.RefObject<any>;
25
+ editorScrollView: RefObject<HTMLDivElement>;
9
26
  updateHasCode(): void;
10
27
  /**
11
- * @param {number|null} line The line of the code block to start from
12
- * @returns {number} The next line of the code block to start from
28
+ * @param line The line of the code block to start from
29
+ * @returns The next line of the code block to start from
13
30
  */
14
- getNextStartLine(line: number | null): number;
15
- runCode(command: any): void;
16
- }
17
- export namespace MarkdownNotebook {
18
- namespace propTypes {
19
- const onRunCode: PropTypes.Requireable<(...args: any[]) => any>;
20
- const content: PropTypes.Requireable<string>;
21
- const onLinkClick: PropTypes.Requireable<(...args: any[]) => any>;
22
- const transformImageUri: PropTypes.Requireable<(...args: any[]) => any>;
23
- const transformLinkUri: PropTypes.Requireable<(...args: any[]) => any>;
24
- }
25
- namespace defaultProps {
26
- const content_1: string;
27
- export { content_1 as content };
28
- const onLinkClick_1: undefined;
29
- export { onLinkClick_1 as onLinkClick };
30
- export function onRunCode_1(): void;
31
- export { onRunCode_1 as onRunCode };
32
- const transformImageUri_1: undefined;
33
- export { transformImageUri_1 as transformImageUri };
34
- const transformLinkUri_1: undefined;
35
- export { transformLinkUri_1 as transformLinkUri };
36
- }
31
+ getNextStartLine(line: number | null): number | null;
32
+ handleRunSelected(event: MouseEvent<HTMLButtonElement>): void;
33
+ runCode(command?: string): void;
34
+ renderCodeBlock(props: JSX.IntrinsicElements['code'] & ReactMarkdownProps & {
35
+ inline?: boolean;
36
+ }): ReactElement;
37
+ renderLink(props: React.ClassAttributes<HTMLAnchorElement> & React.AnchorHTMLAttributes<HTMLAnchorElement> & ReactMarkdownProps): ReactElement;
38
+ render(): ReactElement;
37
39
  }
38
40
  export default MarkdownNotebook;
39
- import React from "react";
40
- import PropTypes from "prop-types";
41
41
  //# sourceMappingURL=MarkdownNotebook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownNotebook.d.ts","sourceRoot":"","sources":["../../src/panels/MarkdownNotebook.jsx"],"names":[],"mappings":"AAUA;IACE,wBAqBC;IAkCD,oCA4BC;IASD,yCAwDC;IAED,oCAQC;IAtJC,wBAAyB;IACzB,4BAA6B;IAC7B,uCAAyC;IAqB3C,sBAOC;IAED;;;OAGG;IACH,uBAHW,MAAM,GAAC,IAAI,GACT,MAAM,CAWlB;IAgCD,4BAKC;CAwGF;;;;;;;;;;;;;;QAaY,oCAAQ"}
1
+ {"version":3,"file":"MarkdownNotebook.d.ts","sourceRoot":"","sources":["../../src/panels/MarkdownNotebook.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,aAAa,EACb,YAAY,EACZ,SAAS,EACT,UAAU,EACV,iBAAiB,EAClB,MAAM,OAAO,CAAC;AAOf,OAAO,yBAAyB,CAAC;AACjC,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,EACd,MAAM,iCAAiC,CAAC;AAGzC,UAAU,qBAAqB;IAC7B,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAClD,iBAAiB,CAAC,EAAE,cAAc,CAAC;IACnC,gBAAgB,CAAC,EAAE,KAAK,GAAG,aAAa,GAAG,IAAI,CAAC;CACjD;AAED,UAAU,qBAAqB;IAC7B,OAAO,EAAE,OAAO,CAAC;IAGjB,UAAU,EAAE,OAAO,CAAC;IAGpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,qBAAa,gBAAiB,SAAQ,aAAa,CACjD,qBAAqB,EACrB,qBAAqB,CACtB;IACC,MAAM,CAAC,YAAY;yBACF,IAAI;MACnB;gBAEU,KAAK,EAAE,qBAAqB;IAuBxC,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,IAAI,IAAI;IAI1B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9B,YAAY,gBAAC;IAEb,gBAAgB,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IAE5C,aAAa,IAAI,IAAI;IASrB;;;OAGG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI;IAWpD,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,IAAI;IA8B7D,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAO/B,eAAe,CACb,KAAK,EAAE,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAClC,kBAAkB,GAAG;QACnB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,GACF,YAAY;IA2Df,UAAU,CACR,KAAK,EAAE,KAAK,CAAC,eAAe,CAAC,iBAAiB,CAAC,GAC7C,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAC7C,kBAAkB,GACnB,YAAY;IAUf,MAAM,IAAI,YAAY;CAkCvB;AAED,eAAe,gBAAgB,CAAC"}