@deephaven/dashboard-core-plugins 0.14.2-beta.1 → 0.15.0
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterSetManagerPanel.d.ts","sourceRoot":"","sources":["../../src/panels/FilterSetManagerPanel.jsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FilterSetManagerPanel.d.ts","sourceRoot":"","sources":["../../src/panels/FilterSetManagerPanel.jsx"],"names":[],"mappings":"AAyBA;IACE,yBAA2C;IAE3C,uEAUC;IAED,wBAoBC;IA2FD;;;aAIC;IAED,wCAsBC;IAED,gDAMC;IAxCD,8BAEC;IAtFD,wBAkDC;IAED;;;aA8BC;IA4CD,yBAQC;IAED,4EAyBC;IAGD,sDAMC;CA4BF"}
|
|
@@ -8,7 +8,6 @@ import React, { Component } from 'react';
|
|
|
8
8
|
import PropTypes from 'prop-types';
|
|
9
9
|
import { connect } from 'react-redux';
|
|
10
10
|
import { getOpenedPanelMapForDashboard, GLPropTypes, LayoutUtils } from '@deephaven/dashboard';
|
|
11
|
-
import { IrisGridUtils } from '@deephaven/iris-grid';
|
|
12
11
|
import Log from '@deephaven/log';
|
|
13
12
|
import { getFilterSetsForDashboard, getInputFiltersForDashboard, getTableMapForDashboard, setDashboardFilterSets as setDashboardFilterSetsAction } from "../redux/index.js";
|
|
14
13
|
import Panel from "./Panel.js";
|
|
@@ -159,10 +158,8 @@ export class FilterSetManagerPanel extends Component {
|
|
|
159
158
|
advancedFilters: indexedAdvancedFilters,
|
|
160
159
|
quickFilters: indexedQuickFilters
|
|
161
160
|
} = irisGridState;
|
|
162
|
-
var
|
|
163
|
-
var
|
|
164
|
-
var dehydratedQuickFilters = IrisGridUtils.dehydrateQuickFilters(indexedQuickFilters);
|
|
165
|
-
var quickFilters = FilterSetManagerPanel.changeFilterIndexesToColumnNames(table, dehydratedQuickFilters);
|
|
161
|
+
var advancedFilters = FilterSetManagerPanel.changeFilterIndexesToColumnNames(table, indexedAdvancedFilters);
|
|
162
|
+
var quickFilters = FilterSetManagerPanel.changeFilterIndexesToColumnNames(table, indexedQuickFilters);
|
|
166
163
|
return {
|
|
167
164
|
irisGridState: _objectSpread(_objectSpread({}, irisGridState), {}, {
|
|
168
165
|
advancedFilters,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/panels/FilterSetManagerPanel.jsx"],"names":["React","Component","PropTypes","connect","getOpenedPanelMapForDashboard","GLPropTypes","LayoutUtils","IrisGridUtils","Log","getFilterSetsForDashboard","getInputFiltersForDashboard","getTableMapForDashboard","setDashboardFilterSets","setDashboardFilterSetsAction","Panel","FilterSetManager","IrisGridPanel","InputFilterPanel","DropdownFilterPanel","log","module","FilterSetManagerPanel","changeFilterIndexesToColumnNames","table","configs","map","index","filter","columns","length","name","config","constructor","props","handleChange","bind","handleFilterApply","handleSetsUpdate","handleGetFilterState","panelState","filterSets","selectedId","id","undefined","isValueShown","state","getFilterState","dashboardOpenedPanelMap","panels","keys","forEach","key","panel","get","componentName","getComponentNameFromPanel","panelId","getIdFromPanel","debug","glContainer","error","getComponentConfigFromContainer","getPanelComponentState","getComponentName","getIrisGridPanelFilters","push","type","value","panelTableMap","irisGridState","gridState","advancedFilters","indexedAdvancedFilters","quickFilters","indexedQuickFilters","dehydratedAdvancedFilters","dehydrateAdvancedFilters","dehydratedQuickFilters","dehydrateQuickFilters","setState","updatePanelState","filterSet","restoreFullState","has","restoreIrisGridFilters","restoreInputFilterState","modifiedFilterSets","localDashboardId","prevAdvancedFilters","prevQuickFilters","setStateOverrides","setFilters","inputFilterState","setPanelState","render","glEventHub","propTypes","Container","isRequired","EventHub","shape","string","bool","arrayOf","title","instanceOf","Map","func","defaultProps","mapStateToProps","ownProps","dashboardInputFilters","forwardRef"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport {\n getOpenedPanelMapForDashboard,\n GLPropTypes,\n LayoutUtils,\n} from '@deephaven/dashboard';\nimport { IrisGridUtils } from '@deephaven/iris-grid';\nimport Log from '@deephaven/log';\nimport {\n getFilterSetsForDashboard,\n getInputFiltersForDashboard,\n getTableMapForDashboard,\n setDashboardFilterSets as setDashboardFilterSetsAction,\n} from '../redux';\nimport Panel from './Panel';\nimport FilterSetManager from './FilterSetManager';\nimport IrisGridPanel from './IrisGridPanel';\nimport InputFilterPanel from './InputFilterPanel';\nimport DropdownFilterPanel from './DropdownFilterPanel';\n\nimport './FilterSetManagerPanel.scss';\n\nconst log = Log.module('FilterSetManagerPanel');\n\nexport class FilterSetManagerPanel extends Component {\n static COMPONENT = 'FilterSetManagerPanel';\n\n static changeFilterIndexesToColumnNames(table, configs) {\n return configs\n .map(([index, filter]) => {\n if (index >= table.columns.length) {\n return null;\n }\n const { name } = table.columns[index];\n return { name, filter };\n })\n .filter(config => config != null);\n }\n\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n this.handleFilterApply = this.handleFilterApply.bind(this);\n this.handleSetsUpdate = this.handleSetsUpdate.bind(this);\n this.handleGetFilterState = this.handleGetFilterState.bind(this);\n\n const { panelState, filterSets } = props;\n const {\n selectedId = filterSets.length > 0 ? filterSets[0].id : undefined,\n isValueShown = false,\n } = panelState ?? {};\n\n this.state = {\n selectedId,\n isValueShown,\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n // Collect all filter values for each dashboard panel\n getFilterState() {\n const { dashboardOpenedPanelMap } = this.props;\n const panels = [];\n [...dashboardOpenedPanelMap.keys()].forEach(key => {\n const panel = dashboardOpenedPanelMap.get(key);\n const componentName = LayoutUtils.getComponentNameFromPanel(panel);\n const panelId = LayoutUtils.getIdFromPanel(panel);\n log.debug('Panel:', panel, componentName);\n\n const { glContainer = null } = panel.props;\n if (glContainer == null) {\n log.error('Could not get panel container', panel);\n return;\n }\n const config = LayoutUtils.getComponentConfigFromContainer(glContainer);\n if (config == null) {\n log.error('Could not get component config from container', glContainer);\n return;\n }\n const panelState = LayoutUtils.getPanelComponentState(config);\n if (panelState == null) {\n log.debug(`Panel state is null ${panelId}`);\n return;\n }\n switch (componentName) {\n case LayoutUtils.getComponentName(IrisGridPanel): {\n const state = this.getIrisGridPanelFilters(panelId, panelState);\n if (state != null) {\n panels.push({\n panelId,\n type: componentName,\n state,\n });\n }\n break;\n }\n case LayoutUtils.getComponentName(InputFilterPanel):\n case LayoutUtils.getComponentName(DropdownFilterPanel): {\n const { isValueShown, name, type, value } = panelState;\n panels.push({\n panelId,\n type: componentName,\n state: { isValueShown, name, type, value },\n });\n break;\n }\n default:\n }\n });\n return panels;\n }\n\n getIrisGridPanelFilters(panelId, panelState) {\n const { panelTableMap } = this.props;\n const table = panelTableMap.get(panelId);\n if (table == null) {\n log.error(`Unable to get table for panel ${panelId}.`);\n return null;\n }\n // IrisGridUtils.hydrate uses numeric indexes for columns\n // Change indexes to column names to make it work for proxy models\n const { irisGridState = {}, gridState = {} } = panelState;\n const {\n advancedFilters: indexedAdvancedFilters,\n quickFilters: indexedQuickFilters,\n } = irisGridState;\n const dehydratedAdvancedFilters = IrisGridUtils.dehydrateAdvancedFilters(\n table.columns,\n indexedAdvancedFilters\n );\n const advancedFilters = FilterSetManagerPanel.changeFilterIndexesToColumnNames(\n table,\n dehydratedAdvancedFilters\n );\n const dehydratedQuickFilters = IrisGridUtils.dehydrateQuickFilters(\n indexedQuickFilters\n );\n const quickFilters = FilterSetManagerPanel.changeFilterIndexesToColumnNames(\n table,\n dehydratedQuickFilters\n );\n return {\n irisGridState: {\n ...irisGridState,\n advancedFilters,\n quickFilters,\n },\n gridState: { ...gridState },\n };\n }\n\n handleGetFilterState() {\n return this.getFilterState();\n }\n\n handleChange({ isValueShown, selectedId }) {\n log.debug('handleChange', isValueShown, selectedId);\n this.setState({ isValueShown, selectedId });\n this.updatePanelState();\n }\n\n handleFilterApply(filterSet) {\n const { dashboardOpenedPanelMap } = this.props;\n const { panels, restoreFullState = false } = filterSet;\n log.debug(`Apply filters from filter set`, filterSet);\n panels.forEach(({ panelId, type, state }) => {\n if (!dashboardOpenedPanelMap.has(panelId)) {\n log.debug('Ignore closed panel', panelId);\n return;\n }\n log.debug('Apply panel filters', panelId, type, state);\n const panel = dashboardOpenedPanelMap.get(panelId);\n switch (type) {\n case LayoutUtils.getComponentName(IrisGridPanel):\n this.restoreIrisGridFilters(panel, state, restoreFullState);\n break;\n case LayoutUtils.getComponentName(InputFilterPanel):\n case LayoutUtils.getComponentName(DropdownFilterPanel):\n this.restoreInputFilterState(panel, state);\n break;\n default:\n }\n });\n }\n\n handleSetsUpdate(modifiedFilterSets) {\n const { setDashboardFilterSets, localDashboardId } = this.props;\n log.debug('Saving updated sets', modifiedFilterSets);\n // Filter sets are stored in dashboard data instead of the panelState\n // because they need to be shared between the filter view manager panels\n setDashboardFilterSets(localDashboardId, [...modifiedFilterSets]);\n }\n\n updatePanelState() {\n this.setState(({ selectedId, isValueShown }) => ({\n // eslint-disable-next-line react/no-unused-state\n panelState: {\n selectedId,\n isValueShown,\n },\n }));\n }\n\n restoreIrisGridFilters(panel, state, restoreFullState) {\n // Fall back to state.advancedFilters and state.quickFilters\n // for backward compatibility with filter sets that only contain filters\n const {\n irisGridState = {},\n advancedFilters: prevAdvancedFilters = [],\n quickFilters: prevQuickFilters = [],\n } = state;\n const {\n advancedFilters = prevAdvancedFilters,\n quickFilters = prevQuickFilters,\n } = irisGridState;\n const { panelTableMap } = this.props;\n const panelId = LayoutUtils.getIdFromPanel(panel);\n const table = panelTableMap.get(panelId);\n if (table == null) {\n log.error(`Unable to get table for panel ${panelId}.`);\n return;\n }\n log.debug('restoreIrisGridFilters', panelId, state, restoreFullState);\n if (restoreFullState) {\n panel.setStateOverrides(state);\n } else {\n panel.setFilters({ quickFilters, advancedFilters });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n restoreInputFilterState(panel, state) {\n const inputFilterState = { ...state };\n // Restore state but don't flip the card\n delete inputFilterState.isValueShown;\n log.debug('restoreInputFilterState', panel, inputFilterState);\n panel.setPanelState(inputFilterState);\n }\n\n render() {\n const { glContainer, glEventHub, filterSets } = this.props;\n const { isValueShown, selectedId } = this.state;\n return (\n <Panel\n className=\"filter-set-manager-panel\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n isClonable\n isRenamable\n >\n <div className=\"input-filter-container h-100 w-100 container\">\n <FilterSetManager\n onChange={this.handleChange}\n onApply={this.handleFilterApply}\n onUpdateSets={this.handleSetsUpdate}\n isValueShown={isValueShown}\n filterSets={filterSets}\n selectedId={selectedId}\n getFilterState={this.handleGetFilterState}\n />\n </div>\n </Panel>\n );\n }\n}\n\nFilterSetManagerPanel.propTypes = {\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n panelState: PropTypes.shape({\n name: PropTypes.string,\n type: PropTypes.string,\n selectedId: PropTypes.string,\n isValueShown: PropTypes.bool,\n }),\n filterSets: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n panels: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n })\n ).isRequired,\n localDashboardId: PropTypes.string.isRequired,\n dashboardOpenedPanelMap: PropTypes.instanceOf(Map).isRequired,\n setDashboardFilterSets: PropTypes.func.isRequired,\n panelTableMap: PropTypes.instanceOf(Map).isRequired,\n};\n\nFilterSetManagerPanel.defaultProps = {\n panelState: null,\n};\n\nconst mapStateToProps = (state, ownProps) => {\n const { localDashboardId } = ownProps;\n return {\n filterSets: getFilterSetsForDashboard(state, localDashboardId),\n dashboardOpenedPanelMap: getOpenedPanelMapForDashboard(\n state,\n localDashboardId\n ),\n dashboardInputFilters: getInputFiltersForDashboard(state, localDashboardId),\n panelTableMap: getTableMapForDashboard(state, localDashboardId),\n };\n};\n\nexport default connect(\n mapStateToProps,\n {\n setDashboardFilterSets: setDashboardFilterSetsAction,\n },\n null,\n { forwardRef: true }\n)(FilterSetManagerPanel);\n"],"file":"FilterSetManagerPanel.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/panels/FilterSetManagerPanel.jsx"],"names":["React","Component","PropTypes","connect","getOpenedPanelMapForDashboard","GLPropTypes","LayoutUtils","Log","getFilterSetsForDashboard","getInputFiltersForDashboard","getTableMapForDashboard","setDashboardFilterSets","setDashboardFilterSetsAction","Panel","FilterSetManager","IrisGridPanel","InputFilterPanel","DropdownFilterPanel","log","module","FilterSetManagerPanel","changeFilterIndexesToColumnNames","table","configs","map","index","filter","columns","length","name","config","constructor","props","handleChange","bind","handleFilterApply","handleSetsUpdate","handleGetFilterState","panelState","filterSets","selectedId","id","undefined","isValueShown","state","getFilterState","dashboardOpenedPanelMap","panels","keys","forEach","key","panel","get","componentName","getComponentNameFromPanel","panelId","getIdFromPanel","debug","glContainer","error","getComponentConfigFromContainer","getPanelComponentState","getComponentName","getIrisGridPanelFilters","push","type","value","panelTableMap","irisGridState","gridState","advancedFilters","indexedAdvancedFilters","quickFilters","indexedQuickFilters","setState","updatePanelState","filterSet","restoreFullState","has","restoreIrisGridFilters","restoreInputFilterState","modifiedFilterSets","localDashboardId","prevAdvancedFilters","prevQuickFilters","setStateOverrides","setFilters","inputFilterState","setPanelState","render","glEventHub","propTypes","Container","isRequired","EventHub","shape","string","bool","arrayOf","title","instanceOf","Map","func","defaultProps","mapStateToProps","ownProps","dashboardInputFilters","forwardRef"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport {\n getOpenedPanelMapForDashboard,\n GLPropTypes,\n LayoutUtils,\n} from '@deephaven/dashboard';\nimport Log from '@deephaven/log';\nimport {\n getFilterSetsForDashboard,\n getInputFiltersForDashboard,\n getTableMapForDashboard,\n setDashboardFilterSets as setDashboardFilterSetsAction,\n} from '../redux';\nimport Panel from './Panel';\nimport FilterSetManager from './FilterSetManager';\nimport IrisGridPanel from './IrisGridPanel';\nimport InputFilterPanel from './InputFilterPanel';\nimport DropdownFilterPanel from './DropdownFilterPanel';\n\nimport './FilterSetManagerPanel.scss';\n\nconst log = Log.module('FilterSetManagerPanel');\n\nexport class FilterSetManagerPanel extends Component {\n static COMPONENT = 'FilterSetManagerPanel';\n\n static changeFilterIndexesToColumnNames(table, configs) {\n return configs\n .map(([index, filter]) => {\n if (index >= table.columns.length) {\n return null;\n }\n const { name } = table.columns[index];\n return { name, filter };\n })\n .filter(config => config != null);\n }\n\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n this.handleFilterApply = this.handleFilterApply.bind(this);\n this.handleSetsUpdate = this.handleSetsUpdate.bind(this);\n this.handleGetFilterState = this.handleGetFilterState.bind(this);\n\n const { panelState, filterSets } = props;\n const {\n selectedId = filterSets.length > 0 ? filterSets[0].id : undefined,\n isValueShown = false,\n } = panelState ?? {};\n\n this.state = {\n selectedId,\n isValueShown,\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n // Collect all filter values for each dashboard panel\n getFilterState() {\n const { dashboardOpenedPanelMap } = this.props;\n const panels = [];\n [...dashboardOpenedPanelMap.keys()].forEach(key => {\n const panel = dashboardOpenedPanelMap.get(key);\n const componentName = LayoutUtils.getComponentNameFromPanel(panel);\n const panelId = LayoutUtils.getIdFromPanel(panel);\n log.debug('Panel:', panel, componentName);\n\n const { glContainer = null } = panel.props;\n if (glContainer == null) {\n log.error('Could not get panel container', panel);\n return;\n }\n const config = LayoutUtils.getComponentConfigFromContainer(glContainer);\n if (config == null) {\n log.error('Could not get component config from container', glContainer);\n return;\n }\n const panelState = LayoutUtils.getPanelComponentState(config);\n if (panelState == null) {\n log.debug(`Panel state is null ${panelId}`);\n return;\n }\n switch (componentName) {\n case LayoutUtils.getComponentName(IrisGridPanel): {\n const state = this.getIrisGridPanelFilters(panelId, panelState);\n if (state != null) {\n panels.push({\n panelId,\n type: componentName,\n state,\n });\n }\n break;\n }\n case LayoutUtils.getComponentName(InputFilterPanel):\n case LayoutUtils.getComponentName(DropdownFilterPanel): {\n const { isValueShown, name, type, value } = panelState;\n panels.push({\n panelId,\n type: componentName,\n state: { isValueShown, name, type, value },\n });\n break;\n }\n default:\n }\n });\n return panels;\n }\n\n getIrisGridPanelFilters(panelId, panelState) {\n const { panelTableMap } = this.props;\n const table = panelTableMap.get(panelId);\n if (table == null) {\n log.error(`Unable to get table for panel ${panelId}.`);\n return null;\n }\n // IrisGridUtils.hydrate uses numeric indexes for columns\n // Change indexes to column names to make it work for proxy models\n const { irisGridState = {}, gridState = {} } = panelState;\n const {\n advancedFilters: indexedAdvancedFilters,\n quickFilters: indexedQuickFilters,\n } = irisGridState;\n const advancedFilters = FilterSetManagerPanel.changeFilterIndexesToColumnNames(\n table,\n indexedAdvancedFilters\n );\n const quickFilters = FilterSetManagerPanel.changeFilterIndexesToColumnNames(\n table,\n indexedQuickFilters\n );\n return {\n irisGridState: {\n ...irisGridState,\n advancedFilters,\n quickFilters,\n },\n gridState: { ...gridState },\n };\n }\n\n handleGetFilterState() {\n return this.getFilterState();\n }\n\n handleChange({ isValueShown, selectedId }) {\n log.debug('handleChange', isValueShown, selectedId);\n this.setState({ isValueShown, selectedId });\n this.updatePanelState();\n }\n\n handleFilterApply(filterSet) {\n const { dashboardOpenedPanelMap } = this.props;\n const { panels, restoreFullState = false } = filterSet;\n log.debug(`Apply filters from filter set`, filterSet);\n panels.forEach(({ panelId, type, state }) => {\n if (!dashboardOpenedPanelMap.has(panelId)) {\n log.debug('Ignore closed panel', panelId);\n return;\n }\n log.debug('Apply panel filters', panelId, type, state);\n const panel = dashboardOpenedPanelMap.get(panelId);\n switch (type) {\n case LayoutUtils.getComponentName(IrisGridPanel):\n this.restoreIrisGridFilters(panel, state, restoreFullState);\n break;\n case LayoutUtils.getComponentName(InputFilterPanel):\n case LayoutUtils.getComponentName(DropdownFilterPanel):\n this.restoreInputFilterState(panel, state);\n break;\n default:\n }\n });\n }\n\n handleSetsUpdate(modifiedFilterSets) {\n const { setDashboardFilterSets, localDashboardId } = this.props;\n log.debug('Saving updated sets', modifiedFilterSets);\n // Filter sets are stored in dashboard data instead of the panelState\n // because they need to be shared between the filter view manager panels\n setDashboardFilterSets(localDashboardId, [...modifiedFilterSets]);\n }\n\n updatePanelState() {\n this.setState(({ selectedId, isValueShown }) => ({\n // eslint-disable-next-line react/no-unused-state\n panelState: {\n selectedId,\n isValueShown,\n },\n }));\n }\n\n restoreIrisGridFilters(panel, state, restoreFullState) {\n // Fall back to state.advancedFilters and state.quickFilters\n // for backward compatibility with filter sets that only contain filters\n const {\n irisGridState = {},\n advancedFilters: prevAdvancedFilters = [],\n quickFilters: prevQuickFilters = [],\n } = state;\n const {\n advancedFilters = prevAdvancedFilters,\n quickFilters = prevQuickFilters,\n } = irisGridState;\n const { panelTableMap } = this.props;\n const panelId = LayoutUtils.getIdFromPanel(panel);\n const table = panelTableMap.get(panelId);\n if (table == null) {\n log.error(`Unable to get table for panel ${panelId}.`);\n return;\n }\n log.debug('restoreIrisGridFilters', panelId, state, restoreFullState);\n if (restoreFullState) {\n panel.setStateOverrides(state);\n } else {\n panel.setFilters({ quickFilters, advancedFilters });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n restoreInputFilterState(panel, state) {\n const inputFilterState = { ...state };\n // Restore state but don't flip the card\n delete inputFilterState.isValueShown;\n log.debug('restoreInputFilterState', panel, inputFilterState);\n panel.setPanelState(inputFilterState);\n }\n\n render() {\n const { glContainer, glEventHub, filterSets } = this.props;\n const { isValueShown, selectedId } = this.state;\n return (\n <Panel\n className=\"filter-set-manager-panel\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n isClonable\n isRenamable\n >\n <div className=\"input-filter-container h-100 w-100 container\">\n <FilterSetManager\n onChange={this.handleChange}\n onApply={this.handleFilterApply}\n onUpdateSets={this.handleSetsUpdate}\n isValueShown={isValueShown}\n filterSets={filterSets}\n selectedId={selectedId}\n getFilterState={this.handleGetFilterState}\n />\n </div>\n </Panel>\n );\n }\n}\n\nFilterSetManagerPanel.propTypes = {\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n panelState: PropTypes.shape({\n name: PropTypes.string,\n type: PropTypes.string,\n selectedId: PropTypes.string,\n isValueShown: PropTypes.bool,\n }),\n filterSets: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n panels: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n })\n ).isRequired,\n localDashboardId: PropTypes.string.isRequired,\n dashboardOpenedPanelMap: PropTypes.instanceOf(Map).isRequired,\n setDashboardFilterSets: PropTypes.func.isRequired,\n panelTableMap: PropTypes.instanceOf(Map).isRequired,\n};\n\nFilterSetManagerPanel.defaultProps = {\n panelState: null,\n};\n\nconst mapStateToProps = (state, ownProps) => {\n const { localDashboardId } = ownProps;\n return {\n filterSets: getFilterSetsForDashboard(state, localDashboardId),\n dashboardOpenedPanelMap: getOpenedPanelMapForDashboard(\n state,\n localDashboardId\n ),\n dashboardInputFilters: getInputFiltersForDashboard(state, localDashboardId),\n panelTableMap: getTableMapForDashboard(state, localDashboardId),\n };\n};\n\nexport default connect(\n mapStateToProps,\n {\n setDashboardFilterSets: setDashboardFilterSetsAction,\n },\n null,\n { forwardRef: true }\n)(FilterSetManagerPanel);\n"],"file":"FilterSetManagerPanel.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/dashboard-core-plugins",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"description": "Deephaven Dashboard Core Plugins",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -30,19 +30,19 @@
|
|
|
30
30
|
"start": "cross-env NODE_ENV=development npm run watch"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@deephaven/chart": "^0.
|
|
34
|
-
"@deephaven/components": "^0.
|
|
35
|
-
"@deephaven/console": "^0.
|
|
36
|
-
"@deephaven/dashboard": "^0.
|
|
37
|
-
"@deephaven/file-explorer": "^0.
|
|
38
|
-
"@deephaven/golden-layout": "^0.
|
|
39
|
-
"@deephaven/icons": "^0.
|
|
40
|
-
"@deephaven/iris-grid": "^0.
|
|
41
|
-
"@deephaven/jsapi-shim": "^0.
|
|
42
|
-
"@deephaven/jsapi-utils": "^0.
|
|
43
|
-
"@deephaven/log": "^0.
|
|
44
|
-
"@deephaven/redux": "^0.
|
|
45
|
-
"@deephaven/utils": "^0.
|
|
33
|
+
"@deephaven/chart": "^0.15.0",
|
|
34
|
+
"@deephaven/components": "^0.15.0",
|
|
35
|
+
"@deephaven/console": "^0.15.0",
|
|
36
|
+
"@deephaven/dashboard": "^0.15.0",
|
|
37
|
+
"@deephaven/file-explorer": "^0.15.0",
|
|
38
|
+
"@deephaven/golden-layout": "^0.15.0",
|
|
39
|
+
"@deephaven/icons": "^0.15.0",
|
|
40
|
+
"@deephaven/iris-grid": "^0.15.0",
|
|
41
|
+
"@deephaven/jsapi-shim": "^0.15.0",
|
|
42
|
+
"@deephaven/jsapi-utils": "^0.15.0",
|
|
43
|
+
"@deephaven/log": "^0.15.0",
|
|
44
|
+
"@deephaven/redux": "^0.15.0",
|
|
45
|
+
"@deephaven/utils": "^0.15.0",
|
|
46
46
|
"@fortawesome/react-fontawesome": "^0.1.18",
|
|
47
47
|
"classnames": "^2.3.1",
|
|
48
48
|
"deep-equal": "^2.0.5",
|
|
@@ -63,8 +63,8 @@
|
|
|
63
63
|
"react-redux": "^7.2.4"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
|
-
"@deephaven/mocks": "^0.
|
|
67
|
-
"@deephaven/tsconfig": "^0.
|
|
66
|
+
"@deephaven/mocks": "^0.15.0",
|
|
67
|
+
"@deephaven/tsconfig": "^0.15.0"
|
|
68
68
|
},
|
|
69
69
|
"files": [
|
|
70
70
|
"dist"
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
"publishConfig": {
|
|
73
73
|
"access": "public"
|
|
74
74
|
},
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "64a15340fe7ebd492c85dcf2f4ba3b53647b625d"
|
|
76
76
|
}
|