@deephaven/dashboard-core-plugins 0.15.5-vite.12 → 0.15.6-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ChartBuilderPlugin.d.ts.map +1 -1
- package/dist/ChartBuilderPlugin.js +2 -1
- package/dist/ChartBuilderPlugin.js.map +1 -1
- package/dist/ChartPlugin.d.ts +2 -1
- package/dist/ChartPlugin.d.ts.map +1 -1
- package/dist/ChartPlugin.js.map +1 -1
- package/dist/ConsolePlugin.js.map +1 -1
- package/dist/FilterPlugin.js +1 -1
- package/dist/FilterPlugin.js.map +1 -1
- package/dist/GridPlugin.d.ts +2 -1
- package/dist/GridPlugin.d.ts.map +1 -1
- package/dist/GridPlugin.js.map +1 -1
- package/dist/LinkerPlugin.js.map +1 -1
- package/dist/MarkdownPlugin.js.map +1 -1
- package/dist/PandasPlugin.d.ts +2 -1
- package/dist/PandasPlugin.d.ts.map +1 -1
- package/dist/PandasPlugin.js.map +1 -1
- package/dist/controls/ControlType.d.ts +1 -1
- package/dist/controls/ControlType.d.ts.map +1 -1
- package/dist/controls/ControlType.js.map +1 -1
- package/dist/controls/dropdown-filter/DropdownFilter.d.ts +73 -81
- package/dist/controls/dropdown-filter/DropdownFilter.d.ts.map +1 -1
- package/dist/controls/dropdown-filter/DropdownFilter.js +41 -58
- package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
- package/dist/controls/input-filter/InputFilter.d.ts +46 -46
- package/dist/controls/input-filter/InputFilter.d.ts.map +1 -1
- package/dist/controls/input-filter/InputFilter.js +32 -39
- package/dist/controls/input-filter/InputFilter.js.map +1 -1
- package/dist/controls/markdown/MarkdownContainer.d.ts +11 -16
- package/dist/controls/markdown/MarkdownContainer.d.ts.map +1 -1
- package/dist/controls/markdown/MarkdownContainer.js +5 -8
- package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
- package/dist/controls/markdown/MarkdownEditor.d.ts +17 -19
- package/dist/controls/markdown/MarkdownEditor.d.ts.map +1 -1
- package/dist/controls/markdown/MarkdownEditor.js +5 -8
- package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
- package/dist/controls/markdown/MarkdownStartPage.d.ts +24 -28
- package/dist/controls/markdown/MarkdownStartPage.d.ts.map +1 -1
- package/dist/controls/markdown/MarkdownStartPage.js +19 -23
- package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
- package/dist/controls/markdown/MarkdownUtils.d.ts +4 -4
- package/dist/controls/markdown/MarkdownUtils.d.ts.map +1 -1
- package/dist/controls/markdown/MarkdownUtils.js +2 -2
- package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
- package/dist/events/ChartEvent.d.ts +1 -1
- package/dist/events/ChartEvent.d.ts.map +1 -1
- package/dist/events/ChartEvent.js.map +1 -1
- package/dist/events/ConsoleEvent.d.ts +1 -1
- package/dist/events/ConsoleEvent.d.ts.map +1 -1
- package/dist/events/ConsoleEvent.js.map +1 -1
- package/dist/events/InputFilterEvent.d.ts +1 -1
- package/dist/events/InputFilterEvent.d.ts.map +1 -1
- package/dist/events/InputFilterEvent.js.map +1 -1
- package/dist/events/IrisGridEvent.d.ts +1 -1
- package/dist/events/IrisGridEvent.d.ts.map +1 -1
- package/dist/events/IrisGridEvent.js.map +1 -1
- package/dist/events/MarkdownEvent.js.map +1 -1
- package/dist/events/NotebookEvent.d.ts +1 -1
- package/dist/events/NotebookEvent.d.ts.map +1 -1
- package/dist/events/NotebookEvent.js.map +1 -1
- package/dist/events/PQEvent.d.ts +1 -1
- package/dist/events/PQEvent.d.ts.map +1 -1
- package/dist/events/PQEvent.js.map +1 -1
- package/dist/events/PandasEvent.d.ts +1 -1
- package/dist/events/PandasEvent.d.ts.map +1 -1
- package/dist/events/PandasEvent.js.map +1 -1
- package/dist/events/TabEvent.d.ts +1 -1
- package/dist/events/TabEvent.d.ts.map +1 -1
- package/dist/events/TabEvent.js.map +1 -1
- package/dist/events/index.d.ts +8 -8
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/linker/ColumnSelectionValidator.d.ts +4 -0
- package/dist/linker/ColumnSelectionValidator.d.ts.map +1 -0
- package/dist/linker/ColumnSelectionValidator.js +2 -0
- package/dist/linker/ColumnSelectionValidator.js.map +1 -0
- package/dist/linker/Linker.d.ts +11 -11
- package/dist/linker/Linker.js +1 -1
- package/dist/linker/Linker.js.map +1 -1
- package/dist/linker/LinkerLink.js.map +1 -1
- package/dist/linker/LinkerOverlayContent.js.map +1 -1
- package/dist/linker/LinkerUtils.d.ts +3 -3
- package/dist/linker/LinkerUtils.d.ts.map +1 -1
- package/dist/linker/LinkerUtils.js.map +1 -1
- package/dist/linker/ToolType.d.ts +1 -1
- package/dist/linker/ToolType.d.ts.map +1 -1
- package/dist/linker/ToolType.js.map +1 -1
- package/dist/linker/index.d.ts +2 -0
- package/dist/linker/index.d.ts.map +1 -0
- package/dist/linker/index.js +2 -0
- package/dist/linker/index.js.map +1 -0
- package/dist/panels/ChartColumnSelectorOverlay.d.ts +22 -26
- package/dist/panels/ChartColumnSelectorOverlay.d.ts.map +1 -1
- package/dist/panels/ChartColumnSelectorOverlay.js +5 -14
- package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
- package/dist/panels/ChartFilterOverlay.d.ts +29 -21
- package/dist/panels/ChartFilterOverlay.d.ts.map +1 -1
- package/dist/panels/ChartFilterOverlay.js.map +1 -1
- package/dist/panels/ChartPanel.d.ts +187 -152
- package/dist/panels/ChartPanel.d.ts.map +1 -1
- package/dist/panels/ChartPanel.js +87 -84
- package/dist/panels/ChartPanel.js.map +1 -1
- package/dist/panels/CommandHistoryPanel.d.ts +41 -56
- package/dist/panels/CommandHistoryPanel.d.ts.map +1 -1
- package/dist/panels/CommandHistoryPanel.js +13 -35
- package/dist/panels/CommandHistoryPanel.js.map +1 -1
- package/dist/panels/ConsolePanel.d.ts +63 -73
- package/dist/panels/ConsolePanel.d.ts.map +1 -1
- package/dist/panels/ConsolePanel.js +67 -83
- package/dist/panels/ConsolePanel.js.map +1 -1
- package/dist/panels/DropdownFilterPanel.d.ts +110 -106
- package/dist/panels/DropdownFilterPanel.d.ts.map +1 -1
- package/dist/panels/DropdownFilterPanel.js +60 -62
- package/dist/panels/DropdownFilterPanel.js.map +1 -1
- package/dist/panels/FileExplorerPanel.d.ts +5 -7
- package/dist/panels/FileExplorerPanel.d.ts.map +1 -1
- package/dist/panels/FileExplorerPanel.js.map +1 -1
- package/dist/panels/FilterSetManager.d.ts +3 -1
- package/dist/panels/FilterSetManager.d.ts.map +1 -1
- package/dist/panels/FilterSetManager.js.map +1 -1
- package/dist/panels/FilterSetManagerPanel.d.ts +83 -62
- package/dist/panels/FilterSetManagerPanel.d.ts.map +1 -1
- package/dist/panels/FilterSetManagerPanel.js +58 -36
- package/dist/panels/FilterSetManagerPanel.js.map +1 -1
- package/dist/panels/InputFilterPanel.d.ts +50 -51
- package/dist/panels/InputFilterPanel.d.ts.map +1 -1
- package/dist/panels/InputFilterPanel.js +35 -34
- package/dist/panels/InputFilterPanel.js.map +1 -1
- package/dist/panels/IrisGridPanel.d.ts +191 -178
- package/dist/panels/IrisGridPanel.d.ts.map +1 -1
- package/dist/panels/IrisGridPanel.js +150 -179
- package/dist/panels/IrisGridPanel.js.map +1 -1
- package/dist/panels/LogPanel.d.ts +29 -45
- package/dist/panels/LogPanel.d.ts.map +1 -1
- package/dist/panels/LogPanel.js +9 -11
- package/dist/panels/LogPanel.js.map +1 -1
- package/dist/panels/MarkdownNotebook.d.ts +34 -34
- package/dist/panels/MarkdownNotebook.d.ts.map +1 -1
- package/dist/panels/MarkdownNotebook.js +21 -18
- package/dist/panels/MarkdownNotebook.js.map +1 -1
- package/dist/panels/MarkdownPanel.d.ts +41 -47
- package/dist/panels/MarkdownPanel.d.ts.map +1 -1
- package/dist/panels/MarkdownPanel.js +17 -19
- package/dist/panels/MarkdownPanel.js.map +1 -1
- package/dist/panels/NotebookPanel.d.ts +137 -115
- package/dist/panels/NotebookPanel.d.ts.map +1 -1
- package/dist/panels/NotebookPanel.js +95 -69
- package/dist/panels/NotebookPanel.js.map +1 -1
- package/dist/panels/PandasPanel.d.ts +20 -17
- package/dist/panels/PandasPanel.d.ts.map +1 -1
- package/dist/panels/PandasPanel.js +18 -14
- package/dist/panels/PandasPanel.js.map +1 -1
- package/dist/panels/Panel.d.ts +87 -123
- package/dist/panels/Panel.d.ts.map +1 -1
- package/dist/panels/Panel.js +29 -54
- package/dist/panels/Panel.js.map +1 -1
- package/dist/panels/PanelContextMenu.d.ts +16 -31
- package/dist/panels/PanelContextMenu.d.ts.map +1 -1
- package/dist/panels/PanelContextMenu.js +12 -15
- package/dist/panels/PanelContextMenu.js.map +1 -1
- package/dist/panels/RenameDialog.d.ts +26 -28
- package/dist/panels/RenameDialog.d.ts.map +1 -1
- package/dist/panels/RenameDialog.js +15 -19
- package/dist/panels/RenameDialog.js.map +1 -1
- package/dist/panels/WidgetPanel.d.ts +72 -106
- package/dist/panels/WidgetPanel.d.ts.map +1 -1
- package/dist/panels/WidgetPanel.js +17 -47
- package/dist/panels/WidgetPanel.js.map +1 -1
- package/dist/panels/WidgetPanelTooltip.d.ts +29 -22
- package/dist/panels/WidgetPanelTooltip.d.ts.map +1 -1
- package/dist/panels/WidgetPanelTooltip.js +1 -1
- package/dist/panels/WidgetPanelTooltip.js.map +1 -1
- package/dist/panels/index.d.ts +3 -0
- package/dist/panels/index.d.ts.map +1 -1
- package/dist/panels/index.js +3 -0
- package/dist/panels/index.js.map +1 -1
- package/dist/prop-types/CommonPropTypes.d.ts +4 -4
- package/dist/prop-types/CommonPropTypes.d.ts.map +1 -1
- package/dist/prop-types/CommonPropTypes.js +1 -1
- package/dist/prop-types/CommonPropTypes.js.map +1 -1
- package/dist/prop-types/UIPropTypes.d.ts +2 -7
- package/dist/prop-types/UIPropTypes.d.ts.map +1 -1
- package/dist/prop-types/UIPropTypes.js +0 -7
- package/dist/prop-types/UIPropTypes.js.map +1 -1
- package/dist/prop-types/index.d.ts +2 -2
- package/dist/prop-types/index.d.ts.map +1 -1
- package/dist/prop-types/index.js.map +1 -1
- package/dist/redux/actionTypes.d.ts +1 -1
- package/dist/redux/actionTypes.d.ts.map +1 -1
- package/dist/redux/actionTypes.js.map +1 -1
- package/dist/redux/actions.d.ts +63 -8
- package/dist/redux/actions.d.ts.map +1 -1
- package/dist/redux/actions.js +17 -17
- package/dist/redux/actions.js.map +1 -1
- package/dist/redux/index.js.map +1 -1
- package/dist/redux/reducers/index.d.ts +3 -4
- package/dist/redux/reducers/index.d.ts.map +1 -1
- package/dist/redux/reducers/index.js.map +1 -1
- package/dist/redux/reducers/sessionWrapper.d.ts +1 -1
- package/dist/redux/reducers/sessionWrapper.d.ts.map +1 -1
- package/dist/redux/reducers/sessionWrapper.js.map +1 -1
- package/dist/redux/selectors.d.ts +63 -9
- package/dist/redux/selectors.d.ts.map +1 -1
- package/dist/redux/selectors.js +27 -27
- package/dist/redux/selectors.js.map +1 -1
- package/package.json +21 -17
|
@@ -1,68 +1,89 @@
|
|
|
1
|
-
|
|
1
|
+
import { Component, ReactElement } from 'react';
|
|
2
|
+
import { PanelComponent } from '@deephaven/dashboard';
|
|
3
|
+
import { Container, EventEmitter } from '@deephaven/golden-layout';
|
|
4
|
+
import { TableTemplate } from '@deephaven/jsapi-shim';
|
|
5
|
+
import { AdvancedFilter, ColumnName, DehydratedIrisGridState, QuickFilter } from '@deephaven/iris-grid';
|
|
6
|
+
import { GridState } from '@deephaven/grid';
|
|
7
|
+
import { ChangeHandlerArgs, FilterSet, FilterSetPanel } from './FilterSetManager';
|
|
8
|
+
import { IrisGridPanel } from './IrisGridPanel';
|
|
9
|
+
import { PanelState as InputFilterPanelState } from './InputFilterPanel';
|
|
10
|
+
import './FilterSetManagerPanel.scss';
|
|
11
|
+
interface IrisGridState {
|
|
12
|
+
advancedFilters: [number, AdvancedFilter][];
|
|
13
|
+
quickFilters: [number, QuickFilter][];
|
|
14
|
+
}
|
|
15
|
+
interface PanelState {
|
|
16
|
+
irisGridState?: IrisGridState;
|
|
17
|
+
gridState?: Partial<GridState>;
|
|
18
|
+
selectedId?: string | string[];
|
|
19
|
+
isValueShown?: boolean;
|
|
20
|
+
name?: string;
|
|
21
|
+
type?: string;
|
|
22
|
+
value?: string;
|
|
23
|
+
}
|
|
24
|
+
interface FilterSetManagerPanelProps {
|
|
25
|
+
glContainer: Container;
|
|
26
|
+
glEventHub: EventEmitter;
|
|
27
|
+
panelState: PanelState;
|
|
28
|
+
filterSets: FilterSet[];
|
|
29
|
+
localDashboardId: string;
|
|
30
|
+
dashboardOpenedPanelMap: Map<string | string[], PanelComponent>;
|
|
31
|
+
setDashboardFilterSets: (dashboardId: string, filterSets: FilterSet[]) => void;
|
|
32
|
+
panelTableMap: Map<string | string[], TableTemplate>;
|
|
33
|
+
}
|
|
34
|
+
interface FilterSetManagerPanelState {
|
|
35
|
+
selectedId?: string | string[];
|
|
36
|
+
isValueShown: boolean;
|
|
37
|
+
panelState: PanelState;
|
|
38
|
+
}
|
|
39
|
+
export declare class FilterSetManagerPanel extends Component<FilterSetManagerPanelProps, FilterSetManagerPanelState> {
|
|
40
|
+
static defaultProps: {
|
|
41
|
+
panelState: null;
|
|
42
|
+
};
|
|
2
43
|
static COMPONENT: string;
|
|
3
|
-
static changeFilterIndexesToColumnNames(table:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
44
|
+
static changeFilterIndexesToColumnNames<T>(table: TableTemplate, configs: [number, T][]): {
|
|
45
|
+
name: string;
|
|
46
|
+
filter: T;
|
|
47
|
+
}[];
|
|
48
|
+
constructor(props: FilterSetManagerPanelProps);
|
|
49
|
+
getFilterState(): FilterSetPanel[];
|
|
50
|
+
getIrisGridPanelFilters(panelId: string | string[], panelState: PanelState): {
|
|
51
|
+
irisGridState: Omit<IrisGridState, 'advancedFilters' | 'quickFilters'> & {
|
|
52
|
+
advancedFilters?: {
|
|
53
|
+
name: string;
|
|
54
|
+
filter: AdvancedFilter;
|
|
55
|
+
}[];
|
|
56
|
+
quickFilters?: {
|
|
57
|
+
name: string;
|
|
58
|
+
filter: QuickFilter;
|
|
59
|
+
}[];
|
|
60
|
+
};
|
|
61
|
+
gridState: Partial<GridState>;
|
|
16
62
|
} | null;
|
|
63
|
+
handleGetFilterState(): FilterSetPanel[];
|
|
64
|
+
handleChange({ isValueShown, selectedId }: ChangeHandlerArgs): void;
|
|
65
|
+
handleFilterApply(filterSet: FilterSet): void;
|
|
66
|
+
handleSetsUpdate(modifiedFilterSets: FilterSet[]): void;
|
|
17
67
|
updatePanelState(): void;
|
|
18
|
-
restoreIrisGridFilters(panel:
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}>>;
|
|
33
|
-
}>>;
|
|
34
|
-
title: PropTypes.Requireable<string>;
|
|
35
|
-
setTitle: PropTypes.Requireable<(...args: any[]) => any>;
|
|
36
|
-
close: PropTypes.Requireable<(...args: any[]) => any>;
|
|
37
|
-
}>>;
|
|
38
|
-
const glEventHub: PropTypes.Validator<PropTypes.InferProps<{
|
|
39
|
-
on: PropTypes.Requireable<(...args: any[]) => any>;
|
|
40
|
-
off: PropTypes.Requireable<(...args: any[]) => any>;
|
|
41
|
-
emit: PropTypes.Requireable<(...args: any[]) => any>;
|
|
42
|
-
}>>;
|
|
43
|
-
const panelState: PropTypes.Requireable<PropTypes.InferProps<{
|
|
44
|
-
name: PropTypes.Requireable<string>;
|
|
45
|
-
type: PropTypes.Requireable<string>;
|
|
46
|
-
selectedId: PropTypes.Requireable<string>;
|
|
47
|
-
isValueShown: PropTypes.Requireable<boolean>;
|
|
48
|
-
}>>;
|
|
49
|
-
const filterSets: PropTypes.Validator<(PropTypes.InferProps<{
|
|
50
|
-
id: PropTypes.Validator<string>;
|
|
51
|
-
title: PropTypes.Validator<string>;
|
|
52
|
-
panels: PropTypes.Validator<(PropTypes.InferProps<{}> | null | undefined)[]>;
|
|
53
|
-
}> | null | undefined)[]>;
|
|
54
|
-
const localDashboardId: PropTypes.Validator<string>;
|
|
55
|
-
const dashboardOpenedPanelMap: PropTypes.Validator<Map<unknown, unknown>>;
|
|
56
|
-
const setDashboardFilterSets: PropTypes.Validator<(...args: any[]) => any>;
|
|
57
|
-
const panelTableMap: PropTypes.Validator<Map<unknown, unknown>>;
|
|
58
|
-
}
|
|
59
|
-
namespace defaultProps {
|
|
60
|
-
const panelState_1: null;
|
|
61
|
-
export { panelState_1 as panelState };
|
|
62
|
-
}
|
|
68
|
+
restoreIrisGridFilters(panel: IrisGridPanel, state: {
|
|
69
|
+
irisGridState: Partial<DehydratedIrisGridState>;
|
|
70
|
+
gridState: Partial<GridState>;
|
|
71
|
+
advancedFilters: {
|
|
72
|
+
name: ColumnName;
|
|
73
|
+
filter: AdvancedFilter;
|
|
74
|
+
}[];
|
|
75
|
+
quickFilters: {
|
|
76
|
+
name: ColumnName;
|
|
77
|
+
filter: QuickFilter;
|
|
78
|
+
}[];
|
|
79
|
+
}, restoreFullState: boolean): void;
|
|
80
|
+
restoreInputFilterState(panel: PanelComponent | undefined, state: InputFilterPanelState): void;
|
|
81
|
+
render(): ReactElement;
|
|
63
82
|
}
|
|
64
|
-
declare
|
|
83
|
+
declare const _default: import("react-redux").ConnectedComponent<typeof FilterSetManagerPanel, import("react-redux").Omit<Pick<FilterSetManagerPanelProps, "glContainer" | "glEventHub" | "localDashboardId" | "panelTableMap" | "setDashboardFilterSets" | "filterSets" | "dashboardOpenedPanelMap"> & Partial<Pick<FilterSetManagerPanelProps, "panelState">> & Partial<Pick<{
|
|
84
|
+
panelState: null;
|
|
85
|
+
}, never>>, "panelTableMap" | "setDashboardFilterSets" | "filterSets" | "dashboardOpenedPanelMap"> & {
|
|
86
|
+
localDashboardId: string;
|
|
87
|
+
}>;
|
|
65
88
|
export default _default;
|
|
66
|
-
import React from "react";
|
|
67
|
-
import PropTypes from "prop-types";
|
|
68
89
|
//# sourceMappingURL=FilterSetManagerPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterSetManagerPanel.d.ts","sourceRoot":"","sources":["../../src/panels/FilterSetManagerPanel.
|
|
1
|
+
{"version":3,"file":"FilterSetManagerPanel.d.ts","sourceRoot":"","sources":["../../src/panels/FilterSetManagerPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,18 +5,22 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
5
5
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
6
|
|
|
7
7
|
import React, { Component } from 'react';
|
|
8
|
-
import PropTypes from 'prop-types';
|
|
9
8
|
import { connect } from 'react-redux';
|
|
10
|
-
import { getOpenedPanelMapForDashboard,
|
|
9
|
+
import { getOpenedPanelMapForDashboard, LayoutUtils } from '@deephaven/dashboard';
|
|
11
10
|
import Log from '@deephaven/log';
|
|
12
11
|
import { getFilterSetsForDashboard, getInputFiltersForDashboard, getTableMapForDashboard, setDashboardFilterSets as setDashboardFilterSetsAction } from "../redux/index.js";
|
|
13
12
|
import Panel from "./Panel.js";
|
|
14
13
|
import FilterSetManager from "./FilterSetManager.js";
|
|
15
|
-
import IrisGridPanel from "./IrisGridPanel.js";
|
|
16
|
-
import InputFilterPanel from "./InputFilterPanel.js";
|
|
14
|
+
import { IrisGridPanel } from "./IrisGridPanel.js";
|
|
17
15
|
import DropdownFilterPanel from "./DropdownFilterPanel.js";
|
|
16
|
+
import InputFilterPanel from "./InputFilterPanel.js";
|
|
18
17
|
import "./FilterSetManagerPanel.css";
|
|
19
18
|
var log = Log.module('FilterSetManagerPanel');
|
|
19
|
+
|
|
20
|
+
function hasSetPanelState(panel) {
|
|
21
|
+
return panel.setPanelState != null;
|
|
22
|
+
}
|
|
23
|
+
|
|
20
24
|
export class FilterSetManagerPanel extends Component {
|
|
21
25
|
static changeFilterIndexesToColumnNames(table, configs) {
|
|
22
26
|
return configs.map(_ref => {
|
|
@@ -67,6 +71,12 @@ export class FilterSetManagerPanel extends Component {
|
|
|
67
71
|
var panels = [];
|
|
68
72
|
[...dashboardOpenedPanelMap.keys()].forEach(key => {
|
|
69
73
|
var panel = dashboardOpenedPanelMap.get(key);
|
|
74
|
+
|
|
75
|
+
if (panel === undefined) {
|
|
76
|
+
log.error('Could not get panel', panel);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
|
|
70
80
|
var componentName = LayoutUtils.getComponentNameFromPanel(panel);
|
|
71
81
|
var panelId = LayoutUtils.getIdFromPanel(panel);
|
|
72
82
|
log.debug('Panel:', panel, componentName);
|
|
@@ -96,13 +106,17 @@ export class FilterSetManagerPanel extends Component {
|
|
|
96
106
|
switch (componentName) {
|
|
97
107
|
case LayoutUtils.getComponentName(IrisGridPanel):
|
|
98
108
|
{
|
|
99
|
-
var
|
|
109
|
+
var _state;
|
|
100
110
|
|
|
101
|
-
if (
|
|
111
|
+
if (panelId != null) {
|
|
112
|
+
_state = this.getIrisGridPanelFilters(panelId, panelState);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (_state != null) {
|
|
102
116
|
panels.push({
|
|
103
117
|
panelId,
|
|
104
118
|
type: componentName,
|
|
105
|
-
state
|
|
119
|
+
state: _state
|
|
106
120
|
});
|
|
107
121
|
}
|
|
108
122
|
|
|
@@ -151,15 +165,28 @@ export class FilterSetManagerPanel extends Component {
|
|
|
151
165
|
|
|
152
166
|
|
|
153
167
|
var {
|
|
154
|
-
irisGridState = {
|
|
168
|
+
irisGridState = {
|
|
169
|
+
advancedFilters: undefined,
|
|
170
|
+
quickFilters: undefined
|
|
171
|
+
},
|
|
155
172
|
gridState = {}
|
|
156
173
|
} = panelState;
|
|
157
174
|
var {
|
|
158
175
|
advancedFilters: indexedAdvancedFilters,
|
|
159
176
|
quickFilters: indexedQuickFilters
|
|
160
177
|
} = irisGridState;
|
|
161
|
-
var advancedFilters
|
|
162
|
-
|
|
178
|
+
var advancedFilters;
|
|
179
|
+
|
|
180
|
+
if (indexedAdvancedFilters) {
|
|
181
|
+
advancedFilters = FilterSetManagerPanel.changeFilterIndexesToColumnNames(table, indexedAdvancedFilters);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
var quickFilters;
|
|
185
|
+
|
|
186
|
+
if (indexedQuickFilters) {
|
|
187
|
+
quickFilters = FilterSetManagerPanel.changeFilterIndexesToColumnNames(table, indexedQuickFilters);
|
|
188
|
+
}
|
|
189
|
+
|
|
163
190
|
return {
|
|
164
191
|
irisGridState: _objectSpread(_objectSpread({}, irisGridState), {}, {
|
|
165
192
|
advancedFilters,
|
|
@@ -202,6 +229,11 @@ export class FilterSetManagerPanel extends Component {
|
|
|
202
229
|
state
|
|
203
230
|
} = _ref3;
|
|
204
231
|
|
|
232
|
+
if (panelId == null) {
|
|
233
|
+
log.debug('panel is null', panelId);
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
|
|
205
237
|
if (!dashboardOpenedPanelMap.has(panelId)) {
|
|
206
238
|
log.debug('Ignore closed panel', panelId);
|
|
207
239
|
return;
|
|
@@ -268,6 +300,12 @@ export class FilterSetManagerPanel extends Component {
|
|
|
268
300
|
panelTableMap
|
|
269
301
|
} = this.props;
|
|
270
302
|
var panelId = LayoutUtils.getIdFromPanel(panel);
|
|
303
|
+
|
|
304
|
+
if (panelId == null) {
|
|
305
|
+
log.error("Panel Id is null.");
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
|
|
271
309
|
var table = panelTableMap.get(panelId);
|
|
272
310
|
|
|
273
311
|
if (table == null) {
|
|
@@ -281,8 +319,8 @@ export class FilterSetManagerPanel extends Component {
|
|
|
281
319
|
panel.setStateOverrides(state);
|
|
282
320
|
} else {
|
|
283
321
|
panel.setFilters({
|
|
284
|
-
quickFilters,
|
|
285
|
-
advancedFilters
|
|
322
|
+
quickFilters: quickFilters,
|
|
323
|
+
advancedFilters: advancedFilters
|
|
286
324
|
});
|
|
287
325
|
}
|
|
288
326
|
} // eslint-disable-next-line class-methods-use-this
|
|
@@ -294,7 +332,10 @@ export class FilterSetManagerPanel extends Component {
|
|
|
294
332
|
|
|
295
333
|
delete inputFilterState.isValueShown;
|
|
296
334
|
log.debug('restoreInputFilterState', panel, inputFilterState);
|
|
297
|
-
|
|
335
|
+
|
|
336
|
+
if (panel && hasSetPanelState(panel)) {
|
|
337
|
+
panel.setPanelState(inputFilterState);
|
|
338
|
+
}
|
|
298
339
|
}
|
|
299
340
|
|
|
300
341
|
render() {
|
|
@@ -329,30 +370,11 @@ export class FilterSetManagerPanel extends Component {
|
|
|
329
370
|
|
|
330
371
|
}
|
|
331
372
|
|
|
332
|
-
_defineProperty(FilterSetManagerPanel, "
|
|
333
|
-
|
|
334
|
-
FilterSetManagerPanel.propTypes = {
|
|
335
|
-
glContainer: GLPropTypes.Container.isRequired,
|
|
336
|
-
glEventHub: GLPropTypes.EventHub.isRequired,
|
|
337
|
-
panelState: PropTypes.shape({
|
|
338
|
-
name: PropTypes.string,
|
|
339
|
-
type: PropTypes.string,
|
|
340
|
-
selectedId: PropTypes.string,
|
|
341
|
-
isValueShown: PropTypes.bool
|
|
342
|
-
}),
|
|
343
|
-
filterSets: PropTypes.arrayOf(PropTypes.shape({
|
|
344
|
-
id: PropTypes.string.isRequired,
|
|
345
|
-
title: PropTypes.string.isRequired,
|
|
346
|
-
panels: PropTypes.arrayOf(PropTypes.shape({})).isRequired
|
|
347
|
-
})).isRequired,
|
|
348
|
-
localDashboardId: PropTypes.string.isRequired,
|
|
349
|
-
dashboardOpenedPanelMap: PropTypes.instanceOf(Map).isRequired,
|
|
350
|
-
setDashboardFilterSets: PropTypes.func.isRequired,
|
|
351
|
-
panelTableMap: PropTypes.instanceOf(Map).isRequired
|
|
352
|
-
};
|
|
353
|
-
FilterSetManagerPanel.defaultProps = {
|
|
373
|
+
_defineProperty(FilterSetManagerPanel, "defaultProps", {
|
|
354
374
|
panelState: null
|
|
355
|
-
};
|
|
375
|
+
});
|
|
376
|
+
|
|
377
|
+
_defineProperty(FilterSetManagerPanel, "COMPONENT", 'FilterSetManagerPanel');
|
|
356
378
|
|
|
357
379
|
var mapStateToProps = (state, ownProps) => {
|
|
358
380
|
var {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterSetManagerPanel.js","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"],"sources":["../../src/panels/FilterSetManagerPanel.jsx"],"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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/panels/FilterSetManagerPanel.tsx"],"names":["React","Component","connect","getOpenedPanelMapForDashboard","LayoutUtils","Log","getFilterSetsForDashboard","getInputFiltersForDashboard","getTableMapForDashboard","setDashboardFilterSets","setDashboardFilterSetsAction","Panel","FilterSetManager","IrisGridPanel","DropdownFilterPanel","InputFilterPanel","log","module","hasSetPanelState","panel","setPanelState","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","get","error","componentName","getComponentNameFromPanel","panelId","getIdFromPanel","debug","glContainer","getComponentConfigFromContainer","getPanelComponentState","getComponentName","getIrisGridPanelFilters","push","type","value","panelTableMap","irisGridState","advancedFilters","quickFilters","gridState","indexedAdvancedFilters","indexedQuickFilters","setState","updatePanelState","filterSet","restoreFullState","has","restoreIrisGridFilters","restoreInputFilterState","modifiedFilterSets","localDashboardId","prevAdvancedFilters","prevQuickFilters","setStateOverrides","setFilters","inputFilterState","render","glEventHub","mapStateToProps","ownProps","dashboardInputFilters","forwardRef"],"mappings":"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","sourcesContent":["import React, { Component, ReactElement } from 'react';\nimport { connect } from 'react-redux';\nimport {\n getOpenedPanelMapForDashboard,\n LayoutUtils,\n PanelComponent,\n} from '@deephaven/dashboard';\nimport Log from '@deephaven/log';\nimport { Container, EventEmitter } from '@deephaven/golden-layout';\nimport { TableTemplate } from '@deephaven/jsapi-shim';\nimport { RootState } from '@deephaven/redux';\nimport {\n AdvancedFilter,\n ColumnName,\n DehydratedIrisGridState,\n QuickFilter,\n} from '@deephaven/iris-grid';\nimport { GridState } from '@deephaven/grid';\nimport {\n getFilterSetsForDashboard,\n getInputFiltersForDashboard,\n getTableMapForDashboard,\n setDashboardFilterSets as setDashboardFilterSetsAction,\n} from '../redux';\nimport Panel from './Panel';\nimport FilterSetManager, {\n ChangeHandlerArgs,\n FilterSet,\n FilterSetPanel,\n} from './FilterSetManager';\nimport { IrisGridPanel } from './IrisGridPanel';\nimport DropdownFilterPanel from './DropdownFilterPanel';\nimport InputFilterPanel, {\n PanelState as InputFilterPanelState,\n} from './InputFilterPanel';\nimport './FilterSetManagerPanel.scss';\n\nconst log = Log.module('FilterSetManagerPanel');\ninterface IrisGridState {\n advancedFilters: [number, AdvancedFilter][];\n quickFilters: [number, QuickFilter][];\n}\n\ninterface PanelState {\n irisGridState?: IrisGridState;\n gridState?: Partial<GridState>;\n selectedId?: string | string[];\n isValueShown?: boolean;\n name?: string;\n type?: string;\n value?: string;\n}\n\ninterface FilterSetManagerPanelProps {\n glContainer: Container;\n glEventHub: EventEmitter;\n panelState: PanelState;\n filterSets: FilterSet[];\n localDashboardId: string;\n dashboardOpenedPanelMap: Map<string | string[], PanelComponent>;\n setDashboardFilterSets: (\n dashboardId: string,\n filterSets: FilterSet[]\n ) => void;\n panelTableMap: Map<string | string[], TableTemplate>;\n}\n\ninterface FilterSetManagerPanelState {\n selectedId?: string | string[];\n isValueShown: boolean;\n // eslint-disable-next-line react/no-unused-state\n panelState: PanelState; // Dehydrated panel state that can load this panel\n}\n\nfunction hasSetPanelState(\n panel: PanelComponent\n): panel is PanelComponent & {\n setPanelState: (state: InputFilterPanelState) => void;\n} {\n return (\n (panel as PanelComponent & {\n setPanelState: (state: InputFilterPanelState) => void;\n }).setPanelState != null\n );\n}\nexport class FilterSetManagerPanel extends Component<\n FilterSetManagerPanelProps,\n FilterSetManagerPanelState\n> {\n static defaultProps = {\n panelState: null,\n };\n\n static COMPONENT = 'FilterSetManagerPanel';\n\n static changeFilterIndexesToColumnNames<T>(\n table: TableTemplate,\n configs: [number, T][]\n ): { name: string; filter: T }[] {\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) as { name: string; filter: T }[];\n }\n\n constructor(props: FilterSetManagerPanelProps) {\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(): FilterSetPanel[] {\n const { dashboardOpenedPanelMap } = this.props;\n const panels: FilterSetPanel[] = [];\n [...dashboardOpenedPanelMap.keys()].forEach(key => {\n const panel = dashboardOpenedPanelMap.get(key);\n\n if (panel === undefined) {\n log.error('Could not get panel', panel);\n return;\n }\n\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(\n config\n ) as PanelState;\n if (panelState == null) {\n log.debug(`Panel state is null ${panelId}`);\n return;\n }\n switch (componentName) {\n case LayoutUtils.getComponentName(IrisGridPanel): {\n let state;\n if (panelId != null) {\n state = this.getIrisGridPanelFilters(panelId, panelState);\n }\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(\n panelId: string | string[],\n panelState: PanelState\n ): {\n irisGridState: Omit<IrisGridState, 'advancedFilters' | 'quickFilters'> & {\n advancedFilters?: {\n name: string;\n filter: AdvancedFilter;\n }[];\n quickFilters?: {\n name: string;\n filter: QuickFilter;\n }[];\n };\n gridState: Partial<GridState>;\n } | null {\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 {\n irisGridState = { advancedFilters: undefined, quickFilters: undefined },\n gridState = {},\n } = panelState;\n const {\n advancedFilters: indexedAdvancedFilters,\n quickFilters: indexedQuickFilters,\n } = irisGridState;\n let advancedFilters;\n if (indexedAdvancedFilters) {\n advancedFilters = FilterSetManagerPanel.changeFilterIndexesToColumnNames(\n table,\n indexedAdvancedFilters\n );\n }\n\n let quickFilters;\n if (indexedQuickFilters) {\n quickFilters = FilterSetManagerPanel.changeFilterIndexesToColumnNames(\n table,\n indexedQuickFilters\n );\n }\n return {\n irisGridState: {\n ...irisGridState,\n advancedFilters,\n quickFilters,\n },\n gridState: { ...gridState },\n };\n }\n\n handleGetFilterState(): FilterSetPanel[] {\n return this.getFilterState();\n }\n\n handleChange({ isValueShown, selectedId }: ChangeHandlerArgs): void {\n log.debug('handleChange', isValueShown, selectedId);\n this.setState({ isValueShown, selectedId });\n this.updatePanelState();\n }\n\n handleFilterApply(filterSet: FilterSet): void {\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 (panelId == null) {\n log.debug('panel is null', panelId);\n return;\n }\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(\n panel as IrisGridPanel,\n state as {\n irisGridState: Partial<DehydratedIrisGridState>;\n gridState: Partial<GridState>;\n advancedFilters: { name: string; filter: AdvancedFilter }[];\n quickFilters: { name: string; filter: QuickFilter }[];\n },\n restoreFullState\n );\n break;\n case LayoutUtils.getComponentName(InputFilterPanel):\n case LayoutUtils.getComponentName(DropdownFilterPanel):\n this.restoreInputFilterState(panel, state as InputFilterPanelState);\n break;\n default:\n }\n });\n }\n\n handleSetsUpdate(modifiedFilterSets: FilterSet[]): void {\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(): void {\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(\n panel: IrisGridPanel,\n state: {\n irisGridState: Partial<DehydratedIrisGridState>;\n gridState: Partial<GridState>;\n advancedFilters: { name: ColumnName; filter: AdvancedFilter }[];\n quickFilters: { name: ColumnName; filter: QuickFilter }[];\n },\n restoreFullState: boolean\n ): void {\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 if (panelId == null) {\n log.error(`Panel Id is null.`);\n return;\n }\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({\n quickFilters: quickFilters as {\n name: string;\n filter: QuickFilter;\n }[],\n advancedFilters: advancedFilters as {\n name: string;\n filter: AdvancedFilter;\n }[],\n });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n restoreInputFilterState(\n panel: PanelComponent | undefined,\n state: InputFilterPanelState\n ): void {\n const inputFilterState = { ...state };\n // Restore state but don't flip the card\n delete inputFilterState.isValueShown;\n log.debug('restoreInputFilterState', panel, inputFilterState);\n if (panel && hasSetPanelState(panel)) {\n panel.setPanelState(inputFilterState);\n }\n }\n\n render(): ReactElement {\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 as string}\n getFilterState={this.handleGetFilterState}\n />\n </div>\n </Panel>\n );\n }\n}\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: { localDashboardId: string }\n) => {\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,60 +1,59 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { Component, RefObject } from 'react';
|
|
2
|
+
import { Container, EventEmitter } from '@deephaven/golden-layout';
|
|
3
|
+
import InputFilter, { InputFilterColumn } from '../controls/input-filter/InputFilter';
|
|
4
|
+
export interface PanelState {
|
|
5
|
+
name?: string;
|
|
6
|
+
type?: string;
|
|
7
|
+
value?: string;
|
|
8
|
+
isValueShown?: boolean;
|
|
9
|
+
timestamp?: number;
|
|
10
|
+
}
|
|
11
|
+
interface InputFilterPanelProps {
|
|
12
|
+
glContainer: Container;
|
|
13
|
+
glEventHub: EventEmitter;
|
|
14
|
+
panelState: PanelState;
|
|
15
|
+
columns: InputFilterColumn[];
|
|
16
|
+
}
|
|
17
|
+
interface InputFilterPanelState {
|
|
18
|
+
columns: InputFilterColumn[];
|
|
19
|
+
column?: InputFilterColumn;
|
|
20
|
+
value?: string;
|
|
21
|
+
timestamp?: number;
|
|
22
|
+
isValueShown: boolean;
|
|
23
|
+
wasFlipped: boolean;
|
|
24
|
+
skipUpdate: boolean;
|
|
25
|
+
panelState: PanelState;
|
|
26
|
+
}
|
|
27
|
+
declare class InputFilterPanel extends Component<InputFilterPanelProps, InputFilterPanelState> {
|
|
28
|
+
static defaultProps: {
|
|
29
|
+
panelState: null;
|
|
30
|
+
};
|
|
4
31
|
static COMPONENT: string;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
32
|
+
static displayName: string;
|
|
33
|
+
constructor(props: InputFilterPanelProps);
|
|
34
|
+
componentDidMount(): void;
|
|
35
|
+
componentDidUpdate(prevProps: InputFilterPanelProps): void;
|
|
36
|
+
inputFilterRef: RefObject<InputFilter>;
|
|
37
|
+
handleChange({ column, isValueShown, value, }: {
|
|
38
|
+
column?: InputFilterColumn;
|
|
39
|
+
isValueShown?: boolean;
|
|
40
|
+
value?: string;
|
|
10
41
|
}): void;
|
|
11
42
|
handleClearAllFilters(): void;
|
|
12
|
-
|
|
13
|
-
sendUpdate(name: any, type: any, value: any, timestamp: any): void;
|
|
43
|
+
sendUpdate(name?: string, type?: string, value?: string, timestamp?: number): void;
|
|
14
44
|
/**
|
|
15
45
|
* Set the filter value, card side, selected column
|
|
16
|
-
* @param
|
|
17
|
-
* @param
|
|
46
|
+
* @param state Filter state to set
|
|
47
|
+
* @param sendUpdate Emit filters changed event if true
|
|
18
48
|
*/
|
|
19
|
-
setPanelState(state:
|
|
49
|
+
setPanelState(state: PanelState, sendUpdate?: boolean): void;
|
|
20
50
|
updateColumns(): void;
|
|
51
|
+
render(): JSX.Element;
|
|
21
52
|
}
|
|
22
|
-
declare
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
tab: PropTypes.Requireable<PropTypes.InferProps<{
|
|
29
|
-
header: PropTypes.Requireable<PropTypes.InferProps<{
|
|
30
|
-
tabs: PropTypes.Requireable<(PropTypes.InferProps<{
|
|
31
|
-
contentItem: PropTypes.Requireable<PropTypes.InferProps<{}>>;
|
|
32
|
-
}> | null | undefined)[]>;
|
|
33
|
-
}>>;
|
|
34
|
-
}>>;
|
|
35
|
-
title: PropTypes.Requireable<string>;
|
|
36
|
-
setTitle: PropTypes.Requireable<(...args: any[]) => any>;
|
|
37
|
-
close: PropTypes.Requireable<(...args: any[]) => any>;
|
|
38
|
-
}>>;
|
|
39
|
-
const glEventHub: PropTypes.Validator<PropTypes.InferProps<{
|
|
40
|
-
on: PropTypes.Requireable<(...args: any[]) => any>;
|
|
41
|
-
off: PropTypes.Requireable<(...args: any[]) => any>;
|
|
42
|
-
emit: PropTypes.Requireable<(...args: any[]) => any>;
|
|
43
|
-
}>>;
|
|
44
|
-
const panelState: PropTypes.Requireable<PropTypes.InferProps<{
|
|
45
|
-
name: PropTypes.Requireable<string>;
|
|
46
|
-
type: PropTypes.Requireable<string>;
|
|
47
|
-
value: PropTypes.Requireable<string>;
|
|
48
|
-
isValueShown: PropTypes.Requireable<boolean>;
|
|
49
|
-
}>>;
|
|
50
|
-
const columns: PropTypes.Validator<(PropTypes.InferProps<{}> | null | undefined)[]>;
|
|
51
|
-
}
|
|
52
|
-
namespace defaultProps {
|
|
53
|
-
const panelState_1: null;
|
|
54
|
-
export { panelState_1 as panelState };
|
|
55
|
-
}
|
|
56
|
-
const displayName: string;
|
|
57
|
-
}
|
|
58
|
-
import React from "react";
|
|
59
|
-
import PropTypes from "prop-types";
|
|
53
|
+
declare const _default: import("react-redux").ConnectedComponent<typeof InputFilterPanel, import("react-redux").Omit<Pick<InputFilterPanelProps, "glContainer" | "glEventHub" | "columns"> & Partial<Pick<InputFilterPanelProps, "panelState">> & Partial<Pick<{
|
|
54
|
+
panelState: null;
|
|
55
|
+
}, never>>, "columns"> & {
|
|
56
|
+
localDashboardId: string;
|
|
57
|
+
}>;
|
|
58
|
+
export default _default;
|
|
60
59
|
//# sourceMappingURL=InputFilterPanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputFilterPanel.d.ts","sourceRoot":"","sources":["../../src/panels/InputFilterPanel.
|
|
1
|
+
{"version":3,"file":"InputFilterPanel.d.ts","sourceRoot":"","sources":["../../src/panels/InputFilterPanel.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGpD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGnE,OAAO,WAAW,EAAE,EAClB,iBAAiB,EAClB,MAAM,sCAAsC,CAAC;AAM9C,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,qBAAqB;IAC7B,WAAW,EAAE,SAAS,CAAC;IACvB,UAAU,EAAE,YAAY,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AAED,UAAU,qBAAqB;IAC7B,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IAEpB,UAAU,EAAE,UAAU,CAAC;CACxB;AACD,cAAM,gBAAiB,SAAQ,SAAS,CACtC,qBAAqB,EACrB,qBAAqB,CACtB;IACC,MAAM,CAAC,YAAY;;MAEjB;IAEF,MAAM,CAAC,SAAS,SAAsB;IAItC,MAAM,CAAC,WAAW,SAAsB;gBAE5B,KAAK,EAAE,qBAAqB;IA6BxC,iBAAiB;IAUjB,kBAAkB,CAAC,SAAS,EAAE,qBAAqB;IAOnD,cAAc,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAEvC,YAAY,CAAC,EACX,MAAM,EACN,YAAY,EACZ,KAAK,GACN,EAAE;QACD,MAAM,CAAC,EAAE,iBAAiB,CAAC;QAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;IA6CD,qBAAqB,IAAI,IAAI;IAI7B,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAU3E;;;;OAIG;IACH,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,UAAQ;IASnD,aAAa;IA6Bb,MAAM;CAwBP;;;;;;AAaD,wBAEE"}
|