@deephaven/dashboard-core-plugins 0.15.5-beta.3 → 0.15.5-beta.4

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 (182) 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/FilterPlugin.js +1 -1
  5. package/dist/FilterPlugin.js.map +1 -1
  6. package/dist/controls/ControlType.d.ts +1 -1
  7. package/dist/controls/ControlType.d.ts.map +1 -1
  8. package/dist/controls/ControlType.js.map +1 -1
  9. package/dist/controls/dropdown-filter/DropdownFilter.d.ts +73 -81
  10. package/dist/controls/dropdown-filter/DropdownFilter.d.ts.map +1 -1
  11. package/dist/controls/dropdown-filter/DropdownFilter.js +41 -58
  12. package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
  13. package/dist/controls/input-filter/InputFilter.d.ts +46 -46
  14. package/dist/controls/input-filter/InputFilter.d.ts.map +1 -1
  15. package/dist/controls/input-filter/InputFilter.js +32 -39
  16. package/dist/controls/input-filter/InputFilter.js.map +1 -1
  17. package/dist/controls/markdown/MarkdownContainer.d.ts +11 -16
  18. package/dist/controls/markdown/MarkdownContainer.d.ts.map +1 -1
  19. package/dist/controls/markdown/MarkdownContainer.js +5 -8
  20. package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
  21. package/dist/controls/markdown/MarkdownEditor.d.ts +17 -19
  22. package/dist/controls/markdown/MarkdownEditor.d.ts.map +1 -1
  23. package/dist/controls/markdown/MarkdownEditor.js +5 -8
  24. package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
  25. package/dist/controls/markdown/MarkdownStartPage.d.ts +24 -28
  26. package/dist/controls/markdown/MarkdownStartPage.d.ts.map +1 -1
  27. package/dist/controls/markdown/MarkdownStartPage.js +19 -23
  28. package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
  29. package/dist/controls/markdown/MarkdownUtils.d.ts +4 -4
  30. package/dist/controls/markdown/MarkdownUtils.d.ts.map +1 -1
  31. package/dist/controls/markdown/MarkdownUtils.js +2 -2
  32. package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
  33. package/dist/events/ChartEvent.d.ts +1 -1
  34. package/dist/events/ChartEvent.d.ts.map +1 -1
  35. package/dist/events/ChartEvent.js.map +1 -1
  36. package/dist/events/ConsoleEvent.d.ts +1 -1
  37. package/dist/events/ConsoleEvent.d.ts.map +1 -1
  38. package/dist/events/ConsoleEvent.js.map +1 -1
  39. package/dist/events/InputFilterEvent.d.ts +1 -1
  40. package/dist/events/InputFilterEvent.d.ts.map +1 -1
  41. package/dist/events/InputFilterEvent.js.map +1 -1
  42. package/dist/events/IrisGridEvent.d.ts +1 -1
  43. package/dist/events/IrisGridEvent.d.ts.map +1 -1
  44. package/dist/events/IrisGridEvent.js.map +1 -1
  45. package/dist/events/NotebookEvent.d.ts +1 -1
  46. package/dist/events/NotebookEvent.d.ts.map +1 -1
  47. package/dist/events/NotebookEvent.js.map +1 -1
  48. package/dist/events/PQEvent.d.ts +1 -1
  49. package/dist/events/PQEvent.d.ts.map +1 -1
  50. package/dist/events/PQEvent.js.map +1 -1
  51. package/dist/events/PandasEvent.d.ts +1 -1
  52. package/dist/events/PandasEvent.d.ts.map +1 -1
  53. package/dist/events/PandasEvent.js.map +1 -1
  54. package/dist/events/TabEvent.d.ts +1 -1
  55. package/dist/events/TabEvent.d.ts.map +1 -1
  56. package/dist/events/TabEvent.js.map +1 -1
  57. package/dist/events/index.d.ts +8 -8
  58. package/dist/events/index.d.ts.map +1 -1
  59. package/dist/events/index.js.map +1 -1
  60. package/dist/linker/ColumnSelectionValidator.d.ts +4 -0
  61. package/dist/linker/ColumnSelectionValidator.d.ts.map +1 -0
  62. package/dist/linker/ColumnSelectionValidator.js +2 -0
  63. package/dist/linker/ColumnSelectionValidator.js.map +1 -0
  64. package/dist/linker/Linker.d.ts +11 -11
  65. package/dist/linker/Linker.js +1 -1
  66. package/dist/linker/Linker.js.map +1 -1
  67. package/dist/linker/LinkerUtils.d.ts +3 -3
  68. package/dist/linker/LinkerUtils.d.ts.map +1 -1
  69. package/dist/linker/LinkerUtils.js.map +1 -1
  70. package/dist/linker/ToolType.d.ts +1 -1
  71. package/dist/linker/ToolType.d.ts.map +1 -1
  72. package/dist/linker/ToolType.js.map +1 -1
  73. package/dist/panels/ChartColumnSelectorOverlay.d.ts +22 -26
  74. package/dist/panels/ChartColumnSelectorOverlay.d.ts.map +1 -1
  75. package/dist/panels/ChartColumnSelectorOverlay.js +5 -14
  76. package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
  77. package/dist/panels/ChartFilterOverlay.d.ts +27 -21
  78. package/dist/panels/ChartFilterOverlay.d.ts.map +1 -1
  79. package/dist/panels/ChartFilterOverlay.js.map +1 -1
  80. package/dist/panels/ChartPanel.d.ts +149 -152
  81. package/dist/panels/ChartPanel.d.ts.map +1 -1
  82. package/dist/panels/ChartPanel.js +65 -73
  83. package/dist/panels/ChartPanel.js.map +1 -1
  84. package/dist/panels/CommandHistoryPanel.d.ts +41 -56
  85. package/dist/panels/CommandHistoryPanel.d.ts.map +1 -1
  86. package/dist/panels/CommandHistoryPanel.js +13 -35
  87. package/dist/panels/CommandHistoryPanel.js.map +1 -1
  88. package/dist/panels/ConsolePanel.d.ts +63 -73
  89. package/dist/panels/ConsolePanel.d.ts.map +1 -1
  90. package/dist/panels/ConsolePanel.js +67 -83
  91. package/dist/panels/ConsolePanel.js.map +1 -1
  92. package/dist/panels/DropdownFilterPanel.d.ts +110 -106
  93. package/dist/panels/DropdownFilterPanel.d.ts.map +1 -1
  94. package/dist/panels/DropdownFilterPanel.js +60 -62
  95. package/dist/panels/DropdownFilterPanel.js.map +1 -1
  96. package/dist/panels/FileExplorerPanel.d.ts +5 -7
  97. package/dist/panels/FileExplorerPanel.d.ts.map +1 -1
  98. package/dist/panels/FileExplorerPanel.js.map +1 -1
  99. package/dist/panels/FilterSetManager.d.ts +3 -1
  100. package/dist/panels/FilterSetManager.d.ts.map +1 -1
  101. package/dist/panels/FilterSetManager.js.map +1 -1
  102. package/dist/panels/FilterSetManagerPanel.d.ts +83 -62
  103. package/dist/panels/FilterSetManagerPanel.d.ts.map +1 -1
  104. package/dist/panels/FilterSetManagerPanel.js +58 -36
  105. package/dist/panels/FilterSetManagerPanel.js.map +1 -1
  106. package/dist/panels/InputFilterPanel.d.ts +50 -51
  107. package/dist/panels/InputFilterPanel.d.ts.map +1 -1
  108. package/dist/panels/InputFilterPanel.js +35 -34
  109. package/dist/panels/InputFilterPanel.js.map +1 -1
  110. package/dist/panels/IrisGridPanel.d.ts +191 -178
  111. package/dist/panels/IrisGridPanel.d.ts.map +1 -1
  112. package/dist/panels/IrisGridPanel.js +150 -179
  113. package/dist/panels/IrisGridPanel.js.map +1 -1
  114. package/dist/panels/LogPanel.d.ts +29 -45
  115. package/dist/panels/LogPanel.d.ts.map +1 -1
  116. package/dist/panels/LogPanel.js +9 -11
  117. package/dist/panels/LogPanel.js.map +1 -1
  118. package/dist/panels/MarkdownNotebook.d.ts +34 -34
  119. package/dist/panels/MarkdownNotebook.d.ts.map +1 -1
  120. package/dist/panels/MarkdownNotebook.js +21 -18
  121. package/dist/panels/MarkdownNotebook.js.map +1 -1
  122. package/dist/panels/MarkdownPanel.d.ts +41 -47
  123. package/dist/panels/MarkdownPanel.d.ts.map +1 -1
  124. package/dist/panels/MarkdownPanel.js +17 -19
  125. package/dist/panels/MarkdownPanel.js.map +1 -1
  126. package/dist/panels/NotebookPanel.d.ts +137 -115
  127. package/dist/panels/NotebookPanel.d.ts.map +1 -1
  128. package/dist/panels/NotebookPanel.js +95 -68
  129. package/dist/panels/NotebookPanel.js.map +1 -1
  130. package/dist/panels/PandasPanel.d.ts +20 -17
  131. package/dist/panels/PandasPanel.d.ts.map +1 -1
  132. package/dist/panels/PandasPanel.js +17 -13
  133. package/dist/panels/PandasPanel.js.map +1 -1
  134. package/dist/panels/Panel.d.ts +87 -123
  135. package/dist/panels/Panel.d.ts.map +1 -1
  136. package/dist/panels/Panel.js +29 -54
  137. package/dist/panels/Panel.js.map +1 -1
  138. package/dist/panels/PanelContextMenu.d.ts +16 -31
  139. package/dist/panels/PanelContextMenu.d.ts.map +1 -1
  140. package/dist/panels/PanelContextMenu.js +12 -15
  141. package/dist/panels/PanelContextMenu.js.map +1 -1
  142. package/dist/panels/RenameDialog.d.ts +26 -28
  143. package/dist/panels/RenameDialog.d.ts.map +1 -1
  144. package/dist/panels/RenameDialog.js +15 -19
  145. package/dist/panels/RenameDialog.js.map +1 -1
  146. package/dist/panels/WidgetPanel.d.ts +72 -106
  147. package/dist/panels/WidgetPanel.d.ts.map +1 -1
  148. package/dist/panels/WidgetPanel.js +17 -47
  149. package/dist/panels/WidgetPanel.js.map +1 -1
  150. package/dist/panels/WidgetPanelTooltip.d.ts +29 -22
  151. package/dist/panels/WidgetPanelTooltip.d.ts.map +1 -1
  152. package/dist/panels/WidgetPanelTooltip.js +1 -1
  153. package/dist/panels/WidgetPanelTooltip.js.map +1 -1
  154. package/dist/prop-types/CommonPropTypes.d.ts +4 -4
  155. package/dist/prop-types/CommonPropTypes.d.ts.map +1 -1
  156. package/dist/prop-types/CommonPropTypes.js +1 -1
  157. package/dist/prop-types/CommonPropTypes.js.map +1 -1
  158. package/dist/prop-types/UIPropTypes.d.ts +2 -7
  159. package/dist/prop-types/UIPropTypes.d.ts.map +1 -1
  160. package/dist/prop-types/UIPropTypes.js +0 -7
  161. package/dist/prop-types/UIPropTypes.js.map +1 -1
  162. package/dist/prop-types/index.d.ts +2 -2
  163. package/dist/prop-types/index.d.ts.map +1 -1
  164. package/dist/prop-types/index.js.map +1 -1
  165. package/dist/redux/actionTypes.d.ts +1 -1
  166. package/dist/redux/actionTypes.d.ts.map +1 -1
  167. package/dist/redux/actionTypes.js.map +1 -1
  168. package/dist/redux/actions.d.ts +63 -8
  169. package/dist/redux/actions.d.ts.map +1 -1
  170. package/dist/redux/actions.js +17 -17
  171. package/dist/redux/actions.js.map +1 -1
  172. package/dist/redux/reducers/index.d.ts +3 -4
  173. package/dist/redux/reducers/index.d.ts.map +1 -1
  174. package/dist/redux/reducers/index.js.map +1 -1
  175. package/dist/redux/reducers/sessionWrapper.d.ts +1 -1
  176. package/dist/redux/reducers/sessionWrapper.d.ts.map +1 -1
  177. package/dist/redux/reducers/sessionWrapper.js.map +1 -1
  178. package/dist/redux/selectors.d.ts +63 -9
  179. package/dist/redux/selectors.d.ts.map +1 -1
  180. package/dist/redux/selectors.js +24 -24
  181. package/dist/redux/selectors.js.map +1 -1
  182. package/package.json +20 -17
@@ -1,67 +1,156 @@
1
- export class ChartPanel extends React.Component<any, any, any> {
1
+ import { Component, ReactElement, RefObject } from 'react';
2
+ import { Chart, ChartModel } from '@deephaven/chart';
3
+ import { PanelComponent } from '@deephaven/dashboard';
4
+ import { InputFilter, ColumnName } from '@deephaven/iris-grid';
5
+ import { Column, SeriesPlotStyle, TableTemplate } from '@deephaven/jsapi-shim';
6
+ import { WorkspaceSettings } from '@deephaven/redux';
7
+ import { Pending } from '@deephaven/utils';
8
+ import GoldenLayout from '@deephaven/golden-layout';
9
+ import { ColumnMap } from './ChartFilterOverlay';
10
+ import { SelectorColumn } from './ChartColumnSelectorOverlay';
11
+ import './ChartPanel.scss';
12
+ import { Link } from '../linker/LinkerUtils';
13
+ import { ColumnSelectionValidator } from '../linker/ColumnSelectionValidator';
14
+ export declare type InputFilterMap = Map<string, InputFilter>;
15
+ export declare type FilterMap = Map<string, string>;
16
+ export declare type LinkedColumnMap = Map<string, Column>;
17
+ export interface ChartPanelMetaData {
18
+ figure: string;
19
+ table: string;
20
+ query: string;
21
+ querySerial: string;
22
+ sourcePanelId: string;
23
+ settings: {
24
+ isLinked: boolean;
25
+ title: string;
26
+ xAxis: string;
27
+ series: string[];
28
+ type: SeriesPlotStyle;
29
+ };
30
+ }
31
+ declare type Settings = Record<string, unknown>;
32
+ interface PanelState {
33
+ filterValueMap: [string, string][];
34
+ settings: Partial<WorkspaceSettings>;
35
+ tableSettings: unknown;
36
+ irisGridState?: {
37
+ advancedFilters: unknown;
38
+ quickFilters: unknown;
39
+ sorts: unknown;
40
+ };
41
+ irisGridPanelState?: {
42
+ partitionColumn: string;
43
+ partition: unknown;
44
+ };
45
+ }
46
+ interface ChartPanelProps {
47
+ glContainer: GoldenLayout.Container;
48
+ glEventHub: GoldenLayout.EventEmitter;
49
+ metadata: ChartPanelMetaData;
50
+ /** Function to build the ChartModel used by this ChartPanel. Can return a promise. */
51
+ makeModel: () => ChartModel;
52
+ inputFilters: InputFilter[];
53
+ links: Link[];
54
+ localDashboardId: string;
55
+ isLinkerActive: boolean;
56
+ source?: TableTemplate;
57
+ sourcePanel?: PanelComponent;
58
+ columnSelectionValidator?: ColumnSelectionValidator;
59
+ setActiveTool: (tool: string) => void;
60
+ setDashboardIsolatedLinkerPanelId: (id: string, secondParam: undefined) => void;
61
+ panelState: PanelState;
62
+ settings: Partial<WorkspaceSettings>;
63
+ }
64
+ interface ChartPanelState {
65
+ settings: Partial<WorkspaceSettings>;
66
+ error?: unknown;
67
+ isActive: boolean;
68
+ isDisconnected: boolean;
69
+ isLoading: boolean;
70
+ isLoaded: boolean;
71
+ isLinked: boolean;
72
+ filterMap: Map<string, string>;
73
+ filterValueMap: Map<string, string>;
74
+ model?: ChartModel;
75
+ columnMap: ColumnMap;
76
+ panelState: PanelState;
77
+ }
78
+ export declare class ChartPanel extends Component<ChartPanelProps, ChartPanelState> {
79
+ static defaultProps: {
80
+ columnSelectionValidator: null;
81
+ isLinkerActive: boolean;
82
+ source: null;
83
+ sourcePanel: null;
84
+ panelState: null;
85
+ settings: {};
86
+ };
87
+ static displayName: string;
2
88
  static COMPONENT: string;
3
- constructor(props: any);
4
- handleColumnSelected(columnName: any): void;
5
- handleColumnMouseEnter({ type, name }: {
6
- type: any;
7
- name: any;
8
- }): void;
89
+ constructor(props: ChartPanelProps);
90
+ componentDidMount(): void;
91
+ componentDidUpdate(prevProps: ChartPanelProps, prevState: ChartPanelState): void;
92
+ componentWillUnmount(): void;
93
+ panelContainer: RefObject<HTMLDivElement>;
94
+ chart: RefObject<Chart>;
95
+ pending: Pending;
96
+ initModel(): void;
97
+ getWaitingInputMap: (isFilterRequired: boolean, columnMap: ColumnMap, filterMap: FilterMap) => Map<string, Column>;
98
+ getWaitingFilterMap: (isFilterRequired: boolean, columnMap: ColumnMap, filterMap: FilterMap, linkedColumnMap: LinkedColumnMap, inputFilterMap: InputFilterMap) => Map<any, any>;
99
+ getInputFilterColumnMap: (columnMap: ColumnMap, inputFilters: InputFilter[]) => Map<string, InputFilter>;
100
+ getLinkedColumnMap: (columnMap: ColumnMap, links: Link[]) => Map<string, Column>;
101
+ getSelectorColumns: (columnMap: ColumnMap, linkedColumnMap: LinkedColumnMap, columnSelectionValidator?: ColumnSelectionValidator | undefined) => {
102
+ name: string;
103
+ type: string;
104
+ isValid: boolean;
105
+ isActive: boolean;
106
+ }[];
107
+ startListeningToSource(table: TableTemplate): void;
108
+ stopListeningToSource(table: TableTemplate): void;
109
+ loadModelIfNecessary(): void;
110
+ isHidden(): boolean;
111
+ handleColumnSelected(columnName: string): void;
112
+ handleColumnMouseEnter({ type, name }: SelectorColumn): void;
9
113
  handleColumnMouseLeave(): void;
10
114
  handleDisconnect(): void;
11
- handleReconnect(): void;
12
- handleFilterAdd(columns: any): void;
13
- handleHide(): void;
14
- handleError(): void;
15
- handleLoadError(error: any): void;
16
- handleLoadSuccess(model: any): void;
17
- handleResize(): void;
18
- handleSettingsChanged(update: any): void;
115
+ handleFilterAdd(columns: InputFilter[]): void;
19
116
  handleOpenLinker(): void;
20
- handleShow(): void;
117
+ handleReconnect(): void;
118
+ handleLoadSuccess(model: ChartModel): void;
119
+ handleLoadError(error: unknown): void;
21
120
  handleSourceColumnChange(): void;
22
121
  handleSourceFilterChange(): void;
23
122
  handleSourceSortChange(): void;
123
+ updateModelFromSource(): void;
124
+ updatePanelState(): void;
125
+ handleError(): void;
126
+ handleResize(): void;
127
+ handleSettingsChanged(update: Partial<Settings>): void;
128
+ handleHide(): void;
129
+ handleShow(): void;
24
130
  handleTabBlur(): void;
25
131
  handleTabFocus(): void;
26
132
  handleUpdate(): void;
27
- updateModelFromSource(): void;
28
133
  handleClearAllFilters(): void;
29
- panelContainer: React.RefObject<any>;
30
- chart: React.RefObject<any>;
31
- pending: Pending;
32
- initModel(): void;
33
- getWaitingInputMap: (this: any, isFilterRequired: any, columnMap: any, filterMap: any) => Map<any, any>;
34
- getWaitingFilterMap: (this: any, isFilterRequired: any, columnMap: any, filterMap: any, linkedColumnMap: any, inputFilterMap: any) => Map<any, any>;
35
- getInputFilterColumnMap: (this: any, columnMap: any, inputFilters: any) => Map<any, any>;
36
- getLinkedColumnMap: (this: any, columnMap: any, links: any) => Map<any, any>;
37
- getSelectorColumns: (this: any, columnMap: any, linkedColumnMap: any, columnSelectionValidator: any) => {
38
- name: any;
39
- type: any;
40
- isValid: any;
41
- isActive: any;
42
- }[];
43
- startListeningToSource(table: any): void;
44
- stopListeningToSource(table: any): void;
45
- loadModelIfNecessary(): void;
46
- isHidden(): any;
47
- updatePanelState(): void;
48
134
  /**
49
135
  * Create an input filter panel for the provided column
50
- * @param {dh.Column} column The column to create the input filter for
136
+ * @param column The column to create the input filter for
51
137
  */
52
- openInputFilter(column: dh.Column): void;
53
- setActive(isActive: any): void;
138
+ openInputFilter(column: InputFilter): void;
139
+ setActive(isActive: boolean): void;
54
140
  sendColumnChange(): void;
55
- getCoordinateForColumn(columnName: any): any[] | null;
141
+ getCoordinateForColumn(columnName: ColumnName): [number, number] | null;
56
142
  /**
57
143
  * Set chart filters based on the filter map
58
- * @param {Map<string, Object>} filterMapParam Filter map
144
+ * @param filterMapParam Filter map
59
145
  */
60
- setFilterMap(filterMapParam: Map<string, Object>): void;
61
- unsetFilterValue(columnName: any): void;
62
- updateChangedInputFilters(inputFilters: any, prevInputFilters: any): void;
63
- updateInputFilters(inputFilters: any, forceUpdate?: boolean): void;
64
- deleteInputFilters(inputFilters: any, forceUpdate?: boolean): void;
146
+ setFilterMap(filterMapParam: Map<string, {
147
+ columnType: string;
148
+ value: string;
149
+ }>): void;
150
+ unsetFilterValue(columnName: ColumnName): void;
151
+ updateChangedInputFilters(inputFilters: InputFilter[], prevInputFilters: InputFilter[]): void;
152
+ updateInputFilters(inputFilters: InputFilter[], forceUpdate?: boolean): void;
153
+ deleteInputFilters(inputFilters: InputFilter[], forceUpdate?: boolean): void;
65
154
  updateColumnFilters(): void;
66
155
  updateFilters(): void;
67
156
  /**
@@ -69,112 +158,20 @@ export class ChartPanel extends React.Component<any, any, any> {
69
158
  */
70
159
  pruneFilterMaps(): void;
71
160
  updateChart(): void;
161
+ render(): ReactElement;
72
162
  }
73
- export namespace ChartPanel {
74
- namespace propTypes {
75
- const glContainer: PropTypes.Validator<PropTypes.InferProps<{
76
- on: PropTypes.Requireable<(...args: any[]) => any>;
77
- off: PropTypes.Requireable<(...args: any[]) => any>;
78
- isHidden: PropTypes.Requireable<boolean>;
79
- tab: PropTypes.Requireable<PropTypes.InferProps<{
80
- header: PropTypes.Requireable<PropTypes.InferProps<{
81
- tabs: PropTypes.Requireable<(PropTypes.InferProps<{
82
- contentItem: PropTypes.Requireable<PropTypes.InferProps<{}>>;
83
- }> | null | undefined)[]>;
84
- }>>;
85
- }>>;
86
- title: PropTypes.Requireable<string>;
87
- setTitle: PropTypes.Requireable<(...args: any[]) => any>;
88
- close: PropTypes.Requireable<(...args: any[]) => any>;
89
- }>>;
90
- const glEventHub: PropTypes.Validator<PropTypes.InferProps<{
91
- on: PropTypes.Requireable<(...args: any[]) => any>;
92
- off: PropTypes.Requireable<(...args: any[]) => any>;
93
- emit: PropTypes.Requireable<(...args: any[]) => any>;
94
- }>>;
95
- const metadata: PropTypes.Validator<PropTypes.InferProps<{
96
- figure: PropTypes.Requireable<string>;
97
- table: PropTypes.Requireable<string>;
98
- query: PropTypes.Requireable<string>;
99
- querySerial: PropTypes.Requireable<string>;
100
- sourcePanelId: PropTypes.Requireable<string>;
101
- settings: PropTypes.Requireable<PropTypes.InferProps<{
102
- isLinked: PropTypes.Requireable<boolean>;
103
- }>>;
104
- }>>;
105
- const makeModel: PropTypes.Validator<(...args: any[]) => any>;
106
- const inputFilters: PropTypes.Validator<(PropTypes.InferProps<{
107
- name: PropTypes.Validator<string>;
108
- type: PropTypes.Validator<string>;
109
- value: any;
110
- }> | null | undefined)[]>;
111
- const links: PropTypes.Validator<(PropTypes.InferProps<{
112
- start: PropTypes.Requireable<PropTypes.InferProps<{
113
- panelId: PropTypes.Validator<string>;
114
- columnName: PropTypes.Validator<string>;
115
- }>>;
116
- end: PropTypes.Requireable<PropTypes.InferProps<{
117
- panelId: PropTypes.Validator<string>;
118
- columnName: PropTypes.Validator<string>;
119
- }>>;
120
- id: PropTypes.Requireable<string>;
121
- isReversed: PropTypes.Requireable<boolean>;
122
- }> | null | undefined)[]>;
123
- const localDashboardId: PropTypes.Validator<string>;
124
- const isLinkerActive: PropTypes.Requireable<boolean>;
125
- const source: PropTypes.Requireable<PropTypes.InferProps<{
126
- columns: PropTypes.Validator<(PropTypes.InferProps<{
127
- name: PropTypes.Validator<string>;
128
- type: PropTypes.Validator<string>;
129
- description: PropTypes.Requireable<string>;
130
- constituentType: PropTypes.Requireable<string>;
131
- }> | null | undefined)[]>;
132
- customColumns: PropTypes.Validator<(string | null | undefined)[]>;
133
- filter: PropTypes.Requireable<(PropTypes.InferProps<{
134
- not: PropTypes.Validator<(...args: any[]) => any>;
135
- and: PropTypes.Validator<(...args: any[]) => any>;
136
- or: PropTypes.Validator<(...args: any[]) => any>;
137
- }> | null | undefined)[]>;
138
- addEventListener: PropTypes.Validator<(...args: any[]) => any>;
139
- removeEventListener: PropTypes.Validator<(...args: any[]) => any>;
140
- size: PropTypes.Validator<number>;
141
- sort: PropTypes.Requireable<any[]>;
142
- copy: PropTypes.Validator<(...args: any[]) => any>;
143
- applyFilter: PropTypes.Validator<(...args: any[]) => any>;
144
- applySort: PropTypes.Validator<(...args: any[]) => any>;
145
- applyCustomColumns: PropTypes.Validator<(...args: any[]) => any>;
146
- description: PropTypes.Requireable<string>;
147
- }>>;
148
- const sourcePanel: PropTypes.Requireable<PropTypes.InferProps<{
149
- state: PropTypes.Requireable<PropTypes.InferProps<{
150
- panelState: PropTypes.Requireable<PropTypes.InferProps<{}>>;
151
- }>>;
152
- }>>;
153
- const columnSelectionValidator: PropTypes.Requireable<(...args: any[]) => any>;
154
- const setActiveTool: PropTypes.Validator<(...args: any[]) => any>;
155
- const setDashboardIsolatedLinkerPanelId: PropTypes.Validator<(...args: any[]) => any>;
156
- const panelState: PropTypes.Requireable<PropTypes.InferProps<{}>>;
157
- const settings: PropTypes.Requireable<PropTypes.InferProps<{}>>;
158
- }
159
- namespace defaultProps {
160
- const columnSelectionValidator_1: null;
161
- export { columnSelectionValidator_1 as columnSelectionValidator };
162
- const isLinkerActive_1: boolean;
163
- export { isLinkerActive_1 as isLinkerActive };
164
- const source_1: null;
165
- export { source_1 as source };
166
- const sourcePanel_1: null;
167
- export { sourcePanel_1 as sourcePanel };
168
- const panelState_1: null;
169
- export { panelState_1 as panelState };
170
- const settings_1: {};
171
- export { settings_1 as settings };
172
- }
173
- const displayName: string;
174
- }
175
- declare var _default: import("react-redux").ConnectedComponent<typeof ChartPanel, any>;
163
+ declare const _default: import("react-redux").ConnectedComponent<typeof ChartPanel, import("react-redux").Omit<Pick<ChartPanelProps, "glContainer" | "metadata" | "glEventHub" | "localDashboardId" | "inputFilters" | "links" | "makeModel" | "setActiveTool" | "setDashboardIsolatedLinkerPanelId"> & Partial<Pick<ChartPanelProps, "source" | "panelState" | "columnSelectionValidator" | "isLinkerActive" | "settings" | "sourcePanel">> & Partial<Pick<{
164
+ columnSelectionValidator: null;
165
+ isLinkerActive: boolean;
166
+ source: null;
167
+ sourcePanel: null;
168
+ panelState: null;
169
+ settings: {};
170
+ }, never>>, "source" | "columnSelectionValidator" | "isLinkerActive" | "settings" | "inputFilters" | "links" | "setActiveTool" | "setDashboardIsolatedLinkerPanelId" | "sourcePanel"> & {
171
+ localDashboardId: string;
172
+ metadata: {
173
+ sourcePanelId: string;
174
+ };
175
+ }>;
176
176
  export default _default;
177
- import React from "react";
178
- import { Pending } from "@deephaven/utils";
179
- import PropTypes from "prop-types";
180
177
  //# sourceMappingURL=ChartPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartPanel.d.ts","sourceRoot":"","sources":["../../src/panels/ChartPanel.jsx"],"names":[],"mappings":"AA0CA;IACE,yBAAgC;IAEhC,wBA4DC;IA0ND,4CAQC;IAED;;;aAOC;IAED,+BAOC;IAED,yBAKC;IAkBD,wBAIC;IApBD,oCAIC;IA0ID,mBAEC;IAvBD,oBAIC;IA3ED,kCAOC;IAnCD,oCA0BC;IA+ED,qBAEC;IAED,yCASC;IAtID,yBAQC;IAoID,mBAEC;IAzFD,iCAEC;IAED,iCAEC;IAED,+BAEC;IAiFD,sBAEC;IAED,uBAGC;IAED,qBAEC;IA1FD,8BAqBC;IAuED,8BAQC;IAvcC,qCAAuC;IACvC,4BAA8B;IAC9B,iBAA4B;IAoG9B,kBASC;IAED,wGASG;IAEH,oJAwBE;IAEF,yFAWG;IAEH,6EAyBG;IAEH;;;;;QAUE;IAEF,yCAeC;IAED,wCAeC;IAED,6BAKC;IAED,gBAIC;IAmID,yBAyBC;IAsDD;;;OAGG;IACH,yCAaC;IAED,+BAOC;IAED,yBAWC;IAED,sDAiBC;IAED;;;OAGG;IACH,6BAFW,IAAI,MAAM,EAAE,MAAM,CAAC,QA4B7B;IAED,wCAqCC;IAED,0EAmBC;IAED,mEA+BC;IAED,mEA6BC;IAED,4BAQC;IAED,sBAiCC;IAED;;OAEG;IACH,wBAsBC;IAED,oBAIC;CAoIF"}
1
+ {"version":3,"file":"ChartPanel.d.ts","sourceRoot":"","sources":["../../src/panels/ChartPanel.tsx"],"names":[],"mappings":"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"}
@@ -6,22 +6,20 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
6
6
 
7
7
  import React, { Component } from 'react';
8
8
  import classNames from 'classnames';
9
- import PropTypes from 'prop-types';
10
9
  import memoize from 'memoize-one';
11
10
  import { connect } from 'react-redux';
12
11
  import { CSSTransition } from 'react-transition-group';
13
12
  import debounce from 'lodash.debounce';
14
- import { Chart, ChartUtils } from '@deephaven/chart';
15
- import { getOpenedPanelMapForDashboard, GLPropTypes, LayoutUtils } from '@deephaven/dashboard';
13
+ import { Chart, ChartUtils, isFigureChartModel } from '@deephaven/chart';
14
+ import { getOpenedPanelMapForDashboard, LayoutUtils } from '@deephaven/dashboard';
16
15
  import { IrisGridUtils } from '@deephaven/iris-grid';
17
- import dh, { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';
16
+ import dh from '@deephaven/jsapi-shim';
18
17
  import { ThemeExport } from '@deephaven/components';
19
18
  import Log from '@deephaven/log';
20
19
  import { getActiveTool, getSettings, setActiveTool as setActiveToolAction } from '@deephaven/redux';
21
- import { Pending, PromiseUtils, TextUtils } from '@deephaven/utils';
20
+ import { assertNotNull, Pending, PromiseUtils, TextUtils } from '@deephaven/utils';
22
21
  import WidgetPanel from "./WidgetPanel.js";
23
22
  import ToolType from "../linker/ToolType.js";
24
- import { UIPropTypes } from "../prop-types/index.js";
25
23
  import { InputFilterEvent, ChartEvent } from "../events/index.js";
26
24
  import { getColumnSelectionValidatorForDashboard, getInputFiltersForDashboard, getIsolatedLinkerPanelIdForDashboard, getLinksForDashboard, getTableMapForDashboard, setDashboardIsolatedLinkerPanelId as setDashboardIsolatedLinkerPanelIdAction } from "../redux/index.js";
27
25
  import ChartFilterOverlay from "./ChartFilterOverlay.js";
@@ -29,10 +27,25 @@ import ChartColumnSelectorOverlay from "./ChartColumnSelectorOverlay.js";
29
27
  import "./ChartPanel.css";
30
28
  var log = Log.module('ChartPanel');
31
29
  var UPDATE_MODEL_DEBOUNCE = 150;
30
+
31
+ function hasInputFilter(panel) {
32
+ return panel.inputFilters != null;
33
+ }
34
+
35
+ function hasPanelState(panel) {
36
+ return panel.panelState != null;
37
+ }
38
+
32
39
  export class ChartPanel extends Component {
33
40
  constructor(props) {
34
41
  super(props);
35
42
 
43
+ _defineProperty(this, "panelContainer", void 0);
44
+
45
+ _defineProperty(this, "chart", void 0);
46
+
47
+ _defineProperty(this, "pending", void 0);
48
+
36
49
  _defineProperty(this, "getWaitingInputMap", memoize((isFilterRequired, columnMap, filterMap) => {
37
50
  if (!isFilterRequired) {
38
51
  return new Map();
@@ -97,7 +110,9 @@ export class ChartPanel extends Component {
97
110
  }
98
111
 
99
112
  if (columnName != null && columnMap.has(columnName)) {
100
- linkedColumnMap.set(columnName, columnMap.get(columnName));
113
+ var column = columnMap.get(columnName);
114
+ assertNotNull(column);
115
+ linkedColumnMap.set(columnName, column);
101
116
  }
102
117
  }
103
118
 
@@ -144,10 +159,9 @@ export class ChartPanel extends Component {
144
159
  filterValueMap = [],
145
160
  settings = {}
146
161
  } = panelState !== null && panelState !== void 0 ? panelState : {};
147
- var queryName = metadata.query;
148
162
  this.state = {
149
163
  settings,
150
- error: null,
164
+ error: undefined,
151
165
  isActive: false,
152
166
  isDisconnected: false,
153
167
  isLoading: false,
@@ -159,9 +173,8 @@ export class ChartPanel extends Component {
159
173
  // Map of filter values set from links, stored in panelState.
160
174
  // Combined with inputFilters to get applied filters (filterMap).
161
175
  filterValueMap: new Map(filterValueMap),
162
- model: null,
176
+ model: undefined,
163
177
  columnMap: new Map(),
164
- queryName,
165
178
  // eslint-disable-next-line react/no-unused-state
166
179
  panelState
167
180
  };
@@ -208,7 +221,7 @@ export class ChartPanel extends Component {
208
221
  this.updatePanelState();
209
222
  }
210
223
 
211
- if (settings !== prevState.settings) {
224
+ if (settings !== prevState.settings && isFigureChartModel(model)) {
212
225
  model.updateSettings(settings);
213
226
  this.updatePanelState();
214
227
  }
@@ -249,7 +262,7 @@ export class ChartPanel extends Component {
249
262
  this.setState({
250
263
  isLoading: true,
251
264
  isLoaded: false,
252
- error: null
265
+ error: undefined
253
266
  });
254
267
  var {
255
268
  makeModel
@@ -335,7 +348,7 @@ export class ChartPanel extends Component {
335
348
  return;
336
349
  }
337
350
 
338
- columnSelectionValidator(this, null);
351
+ columnSelectionValidator(this, undefined);
339
352
  }
340
353
 
341
354
  handleDisconnect() {
@@ -364,7 +377,7 @@ export class ChartPanel extends Component {
364
377
  handleReconnect() {
365
378
  this.setState({
366
379
  isDisconnected: false,
367
- error: null
380
+ error: undefined
368
381
  });
369
382
  this.sendColumnChange();
370
383
  this.updateColumnFilters();
@@ -446,7 +459,9 @@ export class ChartPanel extends Component {
446
459
 
447
460
  this.pending.cancel();
448
461
  this.pending.add(dh.plot.Figure.create(ChartUtils.makeFigureSettings(settings, source))).then(figure => {
449
- model.setFigure(figure);
462
+ if (isFigureChartModel(model)) {
463
+ model.setFigure(figure);
464
+ }
450
465
  }).catch(this.handleLoadError);
451
466
  this.updatePanelState();
452
467
  }
@@ -467,15 +482,17 @@ export class ChartPanel extends Component {
467
482
  if (sourcePanel) {
468
483
  // Right now just update the panel state from the source
469
484
  // If the source isn't available, just keep the state that's already saved
470
- var {
471
- inputFilters
472
- } = sourcePanel.props;
473
- var {
474
- panelState: sourcePanelState
475
- } = sourcePanel.state;
485
+ if (hasInputFilter(sourcePanel.props) && hasPanelState(sourcePanel.state)) {
486
+ var {
487
+ inputFilters
488
+ } = sourcePanel.props;
489
+ var {
490
+ panelState: sourcePanelState
491
+ } = sourcePanel.state;
476
492
 
477
- if (sourcePanelState) {
478
- tableSettings = IrisGridUtils.extractTableSettings(sourcePanelState, inputFilters);
493
+ if (sourcePanelState) {
494
+ tableSettings = IrisGridUtils.extractTableSettings(sourcePanelState, inputFilters);
495
+ }
479
496
  }
480
497
  } // eslint-disable-next-line react/no-unused-state
481
498
 
@@ -550,7 +567,7 @@ export class ChartPanel extends Component {
550
567
  }
551
568
  /**
552
569
  * Create an input filter panel for the provided column
553
- * @param {dh.Column} column The column to create the input filter for
570
+ * @param column The column to create the input filter for
554
571
  */
555
572
 
556
573
 
@@ -622,7 +639,7 @@ export class ChartPanel extends Component {
622
639
  }
623
640
  /**
624
641
  * Set chart filters based on the filter map
625
- * @param {Map<string, Object>} filterMapParam Filter map
642
+ * @param filterMapParam Filter map
626
643
  */
627
644
 
628
645
 
@@ -693,8 +710,10 @@ export class ChartPanel extends Component {
693
710
  var inputFilterMap = this.getInputFilterColumnMap(columnMap, inputFilters);
694
711
 
695
712
  if (inputFilterMap.has(columnName)) {
713
+ var _inputFilterMap$get;
714
+
696
715
  var filterValue = filterMap.get(columnName);
697
- var inputFilterValue = inputFilterMap.get(columnName).value;
716
+ var inputFilterValue = (_inputFilterMap$get = inputFilterMap.get(columnName)) === null || _inputFilterMap$get === void 0 ? void 0 : _inputFilterMap$get.value;
698
717
 
699
718
  if (inputFilterValue != null && filterValue !== inputFilterValue) {
700
719
  filterMap = new Map(state.filterMap);
@@ -800,7 +819,7 @@ export class ChartPanel extends Component {
800
819
  if (filterValueMap.has(name)) {
801
820
  var linkValue = filterValueMap.get(name);
802
821
 
803
- if (linkValue !== filterValue) {
822
+ if (linkValue !== filterValue && linkValue != null) {
804
823
  needsUpdate = true;
805
824
  filterMap.set(name, linkValue);
806
825
  }
@@ -841,6 +860,7 @@ export class ChartPanel extends Component {
841
860
  filterMap,
842
861
  model
843
862
  } = this.state;
863
+ assertNotNull(model);
844
864
  var waitingInputMap = this.getWaitingInputMap(model.isFilterRequired(), columnMap, filterMap);
845
865
  model.setFilter(filterMap);
846
866
 
@@ -922,7 +942,6 @@ export class ChartPanel extends Component {
922
942
  filterMap,
923
943
  error,
924
944
  model,
925
- queryName,
926
945
  isActive,
927
946
  isDisconnected,
928
947
  isLoaded,
@@ -930,14 +949,13 @@ export class ChartPanel extends Component {
930
949
  } = this.state;
931
950
  var {
932
951
  figure: figureName,
933
- querySerial,
934
952
  table: tableName
935
953
  } = metadata;
936
954
  var inputFilterMap = this.getInputFilterColumnMap(columnMap, inputFilters);
937
955
  var linkedColumnMap = this.getLinkedColumnMap(columnMap, links);
938
956
  var waitingInputMap = model != null ? this.getWaitingInputMap(model.isFilterRequired(), columnMap, filterMap) : new Map();
939
957
  var waitingFilterMap = model != null ? this.getWaitingFilterMap(model.isFilterRequired(), columnMap, filterMap, linkedColumnMap, inputFilterMap) : new Map();
940
- var errorMessage = error ? "Unable to open chart. ".concat(error) : null;
958
+ var errorMessage = error ? "Unable to open chart. ".concat(error) : undefined;
941
959
  var isWaitingForFilter = waitingInputMap.size > 0;
942
960
  var isSelectingColumn = columnMap.size > 0 && isLinkerActive;
943
961
  return /*#__PURE__*/React.createElement(WidgetPanel, {
@@ -957,8 +975,6 @@ export class ChartPanel extends Component {
957
975
  isDisconnected: isDisconnected,
958
976
  isLoading: isLoading,
959
977
  isLoaded: isLoaded,
960
- queryName: queryName,
961
- querySerial: querySerial,
962
978
  widgetName: figureName || tableName,
963
979
  widgetType: "Chart"
964
980
  }, /*#__PURE__*/React.createElement("div", {
@@ -966,7 +982,7 @@ export class ChartPanel extends Component {
966
982
  className: "chart-panel-container h-100 w-100"
967
983
  }, /*#__PURE__*/React.createElement("div", {
968
984
  className: "chart-container h-100 w-100"
969
- }, isLoaded && /*#__PURE__*/React.createElement(Chart, {
985
+ }, isLoaded && model && /*#__PURE__*/React.createElement(Chart, {
970
986
  isActive: isActive,
971
987
  model: model,
972
988
  settings: settings,
@@ -1006,54 +1022,30 @@ export class ChartPanel extends Component {
1006
1022
 
1007
1023
  }
1008
1024
 
1009
- _defineProperty(ChartPanel, "COMPONENT", 'ChartPanel');
1010
-
1011
- ChartPanel.propTypes = {
1012
- glContainer: GLPropTypes.Container.isRequired,
1013
- glEventHub: GLPropTypes.EventHub.isRequired,
1014
- metadata: PropTypes.shape({
1015
- figure: PropTypes.string,
1016
- table: PropTypes.string,
1017
- query: PropTypes.string,
1018
- querySerial: PropTypes.string,
1019
- sourcePanelId: PropTypes.string,
1020
- settings: PropTypes.shape({
1021
- isLinked: PropTypes.bool
1022
- })
1023
- }).isRequired,
1024
-
1025
- /** Function to build the ChartModel used by this ChartPanel. Can return a promise. */
1026
- makeModel: PropTypes.func.isRequired,
1027
- inputFilters: PropTypes.arrayOf(UIPropTypes.InputFilter).isRequired,
1028
- links: UIPropTypes.Links.isRequired,
1029
- localDashboardId: PropTypes.string.isRequired,
1030
- isLinkerActive: PropTypes.bool,
1031
- source: APIPropTypes.Table,
1032
- sourcePanel: UIPropTypes.Panel,
1033
- columnSelectionValidator: PropTypes.func,
1034
- setActiveTool: PropTypes.func.isRequired,
1035
- setDashboardIsolatedLinkerPanelId: PropTypes.func.isRequired,
1036
- panelState: PropTypes.shape({}),
1037
- settings: PropTypes.shape({})
1038
- };
1039
- ChartPanel.defaultProps = {
1025
+ _defineProperty(ChartPanel, "defaultProps", {
1040
1026
  columnSelectionValidator: null,
1041
1027
  isLinkerActive: false,
1042
1028
  source: null,
1043
1029
  sourcePanel: null,
1044
1030
  panelState: null,
1045
1031
  settings: {}
1046
- };
1047
- ChartPanel.displayName = 'ChartPanel';
1032
+ });
1033
+
1034
+ _defineProperty(ChartPanel, "displayName", 'ChartPanel');
1035
+
1036
+ _defineProperty(ChartPanel, "COMPONENT", 'ChartPanel');
1048
1037
 
1049
1038
  var mapStateToProps = (state, ownProps) => {
1050
1039
  var {
1051
1040
  localDashboardId,
1052
- metadata = {}
1041
+ metadata
1053
1042
  } = ownProps;
1054
- var {
1055
- sourcePanelId
1056
- } = metadata;
1043
+ var sourcePanelId;
1044
+
1045
+ if (metadata) {
1046
+ sourcePanelId = metadata.sourcePanelId;
1047
+ }
1048
+
1057
1049
  var panelTableMap = getTableMapForDashboard(state, localDashboardId);
1058
1050
  var openedPanelMap = getOpenedPanelMapForDashboard(state, localDashboardId);
1059
1051
  var activeTool = getActiveTool(state);
@@ -1064,8 +1056,8 @@ var mapStateToProps = (state, ownProps) => {
1064
1056
  isLinkerActive,
1065
1057
  inputFilters: getInputFiltersForDashboard(state, localDashboardId),
1066
1058
  links: getLinksForDashboard(state, localDashboardId),
1067
- source: panelTableMap.get(sourcePanelId),
1068
- sourcePanel: openedPanelMap.get(sourcePanelId),
1059
+ source: sourcePanelId != null ? panelTableMap.get(sourcePanelId) : undefined,
1060
+ sourcePanel: sourcePanelId != null ? openedPanelMap.get(sourcePanelId) : undefined,
1069
1061
  settings: getSettings(state)
1070
1062
  };
1071
1063
  };