@deephaven/dashboard-core-plugins 0.15.5-beta.0 → 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 (186) 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/ConsolePlugin.d.ts +1 -0
  5. package/dist/ConsolePlugin.d.ts.map +1 -1
  6. package/dist/ConsolePlugin.js +5 -3
  7. package/dist/ConsolePlugin.js.map +1 -1
  8. package/dist/FilterPlugin.js +1 -1
  9. package/dist/FilterPlugin.js.map +1 -1
  10. package/dist/controls/ControlType.d.ts +1 -1
  11. package/dist/controls/ControlType.d.ts.map +1 -1
  12. package/dist/controls/ControlType.js.map +1 -1
  13. package/dist/controls/dropdown-filter/DropdownFilter.d.ts +73 -81
  14. package/dist/controls/dropdown-filter/DropdownFilter.d.ts.map +1 -1
  15. package/dist/controls/dropdown-filter/DropdownFilter.js +41 -58
  16. package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
  17. package/dist/controls/input-filter/InputFilter.d.ts +46 -46
  18. package/dist/controls/input-filter/InputFilter.d.ts.map +1 -1
  19. package/dist/controls/input-filter/InputFilter.js +32 -39
  20. package/dist/controls/input-filter/InputFilter.js.map +1 -1
  21. package/dist/controls/markdown/MarkdownContainer.d.ts +11 -16
  22. package/dist/controls/markdown/MarkdownContainer.d.ts.map +1 -1
  23. package/dist/controls/markdown/MarkdownContainer.js +5 -8
  24. package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
  25. package/dist/controls/markdown/MarkdownEditor.d.ts +17 -19
  26. package/dist/controls/markdown/MarkdownEditor.d.ts.map +1 -1
  27. package/dist/controls/markdown/MarkdownEditor.js +5 -8
  28. package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
  29. package/dist/controls/markdown/MarkdownStartPage.d.ts +24 -28
  30. package/dist/controls/markdown/MarkdownStartPage.d.ts.map +1 -1
  31. package/dist/controls/markdown/MarkdownStartPage.js +19 -23
  32. package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
  33. package/dist/controls/markdown/MarkdownUtils.d.ts +4 -4
  34. package/dist/controls/markdown/MarkdownUtils.d.ts.map +1 -1
  35. package/dist/controls/markdown/MarkdownUtils.js +2 -2
  36. package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
  37. package/dist/events/ChartEvent.d.ts +1 -1
  38. package/dist/events/ChartEvent.d.ts.map +1 -1
  39. package/dist/events/ChartEvent.js.map +1 -1
  40. package/dist/events/ConsoleEvent.d.ts +1 -1
  41. package/dist/events/ConsoleEvent.d.ts.map +1 -1
  42. package/dist/events/ConsoleEvent.js.map +1 -1
  43. package/dist/events/InputFilterEvent.d.ts +1 -1
  44. package/dist/events/InputFilterEvent.d.ts.map +1 -1
  45. package/dist/events/InputFilterEvent.js.map +1 -1
  46. package/dist/events/IrisGridEvent.d.ts +1 -1
  47. package/dist/events/IrisGridEvent.d.ts.map +1 -1
  48. package/dist/events/IrisGridEvent.js.map +1 -1
  49. package/dist/events/NotebookEvent.d.ts +1 -1
  50. package/dist/events/NotebookEvent.d.ts.map +1 -1
  51. package/dist/events/NotebookEvent.js.map +1 -1
  52. package/dist/events/PQEvent.d.ts +1 -1
  53. package/dist/events/PQEvent.d.ts.map +1 -1
  54. package/dist/events/PQEvent.js.map +1 -1
  55. package/dist/events/PandasEvent.d.ts +1 -1
  56. package/dist/events/PandasEvent.d.ts.map +1 -1
  57. package/dist/events/PandasEvent.js.map +1 -1
  58. package/dist/events/TabEvent.d.ts +1 -1
  59. package/dist/events/TabEvent.d.ts.map +1 -1
  60. package/dist/events/TabEvent.js.map +1 -1
  61. package/dist/events/index.d.ts +8 -8
  62. package/dist/events/index.d.ts.map +1 -1
  63. package/dist/events/index.js.map +1 -1
  64. package/dist/linker/ColumnSelectionValidator.d.ts +4 -0
  65. package/dist/linker/ColumnSelectionValidator.d.ts.map +1 -0
  66. package/dist/linker/ColumnSelectionValidator.js +2 -0
  67. package/dist/linker/ColumnSelectionValidator.js.map +1 -0
  68. package/dist/linker/Linker.d.ts +11 -11
  69. package/dist/linker/Linker.js +1 -1
  70. package/dist/linker/Linker.js.map +1 -1
  71. package/dist/linker/LinkerUtils.d.ts +3 -3
  72. package/dist/linker/LinkerUtils.d.ts.map +1 -1
  73. package/dist/linker/LinkerUtils.js.map +1 -1
  74. package/dist/linker/ToolType.d.ts +1 -1
  75. package/dist/linker/ToolType.d.ts.map +1 -1
  76. package/dist/linker/ToolType.js.map +1 -1
  77. package/dist/panels/ChartColumnSelectorOverlay.d.ts +22 -26
  78. package/dist/panels/ChartColumnSelectorOverlay.d.ts.map +1 -1
  79. package/dist/panels/ChartColumnSelectorOverlay.js +5 -14
  80. package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
  81. package/dist/panels/ChartFilterOverlay.d.ts +27 -21
  82. package/dist/panels/ChartFilterOverlay.d.ts.map +1 -1
  83. package/dist/panels/ChartFilterOverlay.js.map +1 -1
  84. package/dist/panels/ChartPanel.d.ts +149 -152
  85. package/dist/panels/ChartPanel.d.ts.map +1 -1
  86. package/dist/panels/ChartPanel.js +65 -73
  87. package/dist/panels/ChartPanel.js.map +1 -1
  88. package/dist/panels/CommandHistoryPanel.d.ts +41 -56
  89. package/dist/panels/CommandHistoryPanel.d.ts.map +1 -1
  90. package/dist/panels/CommandHistoryPanel.js +13 -35
  91. package/dist/panels/CommandHistoryPanel.js.map +1 -1
  92. package/dist/panels/ConsolePanel.d.ts +63 -73
  93. package/dist/panels/ConsolePanel.d.ts.map +1 -1
  94. package/dist/panels/ConsolePanel.js +67 -83
  95. package/dist/panels/ConsolePanel.js.map +1 -1
  96. package/dist/panels/DropdownFilterPanel.d.ts +110 -106
  97. package/dist/panels/DropdownFilterPanel.d.ts.map +1 -1
  98. package/dist/panels/DropdownFilterPanel.js +60 -62
  99. package/dist/panels/DropdownFilterPanel.js.map +1 -1
  100. package/dist/panels/FileExplorerPanel.d.ts +5 -7
  101. package/dist/panels/FileExplorerPanel.d.ts.map +1 -1
  102. package/dist/panels/FileExplorerPanel.js.map +1 -1
  103. package/dist/panels/FilterSetManager.d.ts +3 -1
  104. package/dist/panels/FilterSetManager.d.ts.map +1 -1
  105. package/dist/panels/FilterSetManager.js.map +1 -1
  106. package/dist/panels/FilterSetManagerPanel.d.ts +83 -62
  107. package/dist/panels/FilterSetManagerPanel.d.ts.map +1 -1
  108. package/dist/panels/FilterSetManagerPanel.js +58 -36
  109. package/dist/panels/FilterSetManagerPanel.js.map +1 -1
  110. package/dist/panels/InputFilterPanel.d.ts +50 -51
  111. package/dist/panels/InputFilterPanel.d.ts.map +1 -1
  112. package/dist/panels/InputFilterPanel.js +35 -34
  113. package/dist/panels/InputFilterPanel.js.map +1 -1
  114. package/dist/panels/IrisGridPanel.d.ts +191 -178
  115. package/dist/panels/IrisGridPanel.d.ts.map +1 -1
  116. package/dist/panels/IrisGridPanel.js +150 -179
  117. package/dist/panels/IrisGridPanel.js.map +1 -1
  118. package/dist/panels/LogPanel.d.ts +29 -45
  119. package/dist/panels/LogPanel.d.ts.map +1 -1
  120. package/dist/panels/LogPanel.js +9 -11
  121. package/dist/panels/LogPanel.js.map +1 -1
  122. package/dist/panels/MarkdownNotebook.d.ts +34 -34
  123. package/dist/panels/MarkdownNotebook.d.ts.map +1 -1
  124. package/dist/panels/MarkdownNotebook.js +21 -18
  125. package/dist/panels/MarkdownNotebook.js.map +1 -1
  126. package/dist/panels/MarkdownPanel.d.ts +41 -47
  127. package/dist/panels/MarkdownPanel.d.ts.map +1 -1
  128. package/dist/panels/MarkdownPanel.js +17 -19
  129. package/dist/panels/MarkdownPanel.js.map +1 -1
  130. package/dist/panels/NotebookPanel.d.ts +137 -117
  131. package/dist/panels/NotebookPanel.d.ts.map +1 -1
  132. package/dist/panels/NotebookPanel.js +94 -68
  133. package/dist/panels/NotebookPanel.js.map +1 -1
  134. package/dist/panels/PandasPanel.d.ts +20 -17
  135. package/dist/panels/PandasPanel.d.ts.map +1 -1
  136. package/dist/panels/PandasPanel.js +17 -13
  137. package/dist/panels/PandasPanel.js.map +1 -1
  138. package/dist/panels/Panel.d.ts +87 -123
  139. package/dist/panels/Panel.d.ts.map +1 -1
  140. package/dist/panels/Panel.js +29 -54
  141. package/dist/panels/Panel.js.map +1 -1
  142. package/dist/panels/PanelContextMenu.d.ts +16 -31
  143. package/dist/panels/PanelContextMenu.d.ts.map +1 -1
  144. package/dist/panels/PanelContextMenu.js +12 -15
  145. package/dist/panels/PanelContextMenu.js.map +1 -1
  146. package/dist/panels/RenameDialog.d.ts +26 -28
  147. package/dist/panels/RenameDialog.d.ts.map +1 -1
  148. package/dist/panels/RenameDialog.js +15 -19
  149. package/dist/panels/RenameDialog.js.map +1 -1
  150. package/dist/panels/WidgetPanel.d.ts +72 -106
  151. package/dist/panels/WidgetPanel.d.ts.map +1 -1
  152. package/dist/panels/WidgetPanel.js +17 -47
  153. package/dist/panels/WidgetPanel.js.map +1 -1
  154. package/dist/panels/WidgetPanelTooltip.d.ts +29 -22
  155. package/dist/panels/WidgetPanelTooltip.d.ts.map +1 -1
  156. package/dist/panels/WidgetPanelTooltip.js +1 -1
  157. package/dist/panels/WidgetPanelTooltip.js.map +1 -1
  158. package/dist/prop-types/CommonPropTypes.d.ts +4 -4
  159. package/dist/prop-types/CommonPropTypes.d.ts.map +1 -1
  160. package/dist/prop-types/CommonPropTypes.js +1 -1
  161. package/dist/prop-types/CommonPropTypes.js.map +1 -1
  162. package/dist/prop-types/UIPropTypes.d.ts +2 -7
  163. package/dist/prop-types/UIPropTypes.d.ts.map +1 -1
  164. package/dist/prop-types/UIPropTypes.js +0 -7
  165. package/dist/prop-types/UIPropTypes.js.map +1 -1
  166. package/dist/prop-types/index.d.ts +2 -2
  167. package/dist/prop-types/index.d.ts.map +1 -1
  168. package/dist/prop-types/index.js.map +1 -1
  169. package/dist/redux/actionTypes.d.ts +1 -1
  170. package/dist/redux/actionTypes.d.ts.map +1 -1
  171. package/dist/redux/actionTypes.js.map +1 -1
  172. package/dist/redux/actions.d.ts +63 -8
  173. package/dist/redux/actions.d.ts.map +1 -1
  174. package/dist/redux/actions.js +17 -17
  175. package/dist/redux/actions.js.map +1 -1
  176. package/dist/redux/reducers/index.d.ts +3 -4
  177. package/dist/redux/reducers/index.d.ts.map +1 -1
  178. package/dist/redux/reducers/index.js.map +1 -1
  179. package/dist/redux/reducers/sessionWrapper.d.ts +1 -1
  180. package/dist/redux/reducers/sessionWrapper.d.ts.map +1 -1
  181. package/dist/redux/reducers/sessionWrapper.js.map +1 -1
  182. package/dist/redux/selectors.d.ts +63 -9
  183. package/dist/redux/selectors.d.ts.map +1 -1
  184. package/dist/redux/selectors.js +24 -24
  185. package/dist/redux/selectors.js.map +1 -1
  186. package/package.json +20 -17
@@ -1,133 +1,97 @@
1
- export default Panel;
1
+ import { Component, FocusEvent, FocusEventHandler, PureComponent, ReactElement, ReactNode } from 'react';
2
+ import { ContextAction } from '@deephaven/components';
3
+ import { Container, EventEmitter, Tab } from '@deephaven/golden-layout';
4
+ import { IdeSession } from '@deephaven/jsapi-shim';
5
+ interface PanelProps {
6
+ componentPanel: Component;
7
+ children: ReactNode;
8
+ glContainer: Container;
9
+ glEventHub: EventEmitter;
10
+ className: string;
11
+ onFocus: FocusEventHandler<HTMLDivElement>;
12
+ onBlur: FocusEventHandler<HTMLDivElement>;
13
+ onTab: (tab: Tab) => void;
14
+ onTabClicked: (...args: unknown[]) => void;
15
+ onClearAllFilters: (...args: unknown[]) => void;
16
+ onHide: (...args: unknown[]) => void;
17
+ onResize: (...args: unknown[]) => void;
18
+ onSessionClose: (session: IdeSession) => void;
19
+ onSessionOpen: (session: IdeSession, { language, sessionId }: {
20
+ language: string;
21
+ sessionId: string;
22
+ }) => void;
23
+ onBeforeShow: (...args: unknown[]) => void;
24
+ onShow: (...args: unknown[]) => void;
25
+ onTabBlur: (...args: unknown[]) => void;
26
+ onTabFocus: (...args: unknown[]) => void;
27
+ renderTabTooltip: () => ReactNode;
28
+ additionalActions: ContextAction[];
29
+ errorMessage: string;
30
+ isLoading: boolean;
31
+ isLoaded: boolean;
32
+ isClonable: boolean;
33
+ isRenamable: boolean;
34
+ }
35
+ interface PanelState {
36
+ title?: string | null;
37
+ showRenameDialog: boolean;
38
+ }
2
39
  /**
3
40
  * Generic panel component that emits mount/unmount/focus events.
4
41
  * Also wires up some triggers for common events:
5
42
  * Focus, Resize, Show, Session open/close, client disconnect/reconnect.
6
43
  */
7
- declare class Panel extends React.PureComponent<any, any, any> {
8
- constructor(props: any);
9
- handleClearAllFilters(...args: any[]): void;
10
- handleCopyPanel(): void;
11
- handleFocus(...args: any[]): void;
12
- handleBlur(...args: any[]): void;
13
- handleHide(...args: any[]): void;
14
- handleResize(...args: any[]): void;
15
- handleSessionClosed(...args: any[]): void;
16
- handleSessionOpened(...args: any[]): void;
17
- handleBeforeShow(...args: any[]): void;
18
- handleShow(...args: any[]): void;
19
- handleTabBlur(...args: any[]): void;
20
- handleTabFocus(...args: any[]): void;
44
+ declare class Panel extends PureComponent<PanelProps, PanelState> {
45
+ static defaultProps: {
46
+ className: string;
47
+ onTab: () => void;
48
+ onTabClicked: () => void;
49
+ onClearAllFilters: () => void;
50
+ onFocus: () => void;
51
+ onBlur: () => void;
52
+ onHide: () => void;
53
+ onResize: () => void;
54
+ onSessionClose: () => void;
55
+ onSessionOpen: () => void;
56
+ onBeforeShow: () => void;
57
+ onShow: () => void;
58
+ onTabBlur: () => void;
59
+ onTabFocus: () => void;
60
+ renderTabTooltip: null;
61
+ additionalActions: never[];
62
+ errorMessage: null;
63
+ isLoading: boolean;
64
+ isLoaded: boolean;
65
+ isClonable: boolean;
66
+ isRenamable: boolean;
67
+ };
68
+ constructor(props: PanelProps);
69
+ componentDidMount(): void;
70
+ componentWillUnmount(): void;
71
+ handleTab(tab: Tab): void;
72
+ handleTabClicked(...args: unknown[]): void;
73
+ handleClearAllFilters(...args: unknown[]): void;
74
+ handleFocus(event: FocusEvent<HTMLDivElement>): void;
75
+ handleBlur(event: FocusEvent<HTMLDivElement>): void;
76
+ handleHide(...args: unknown[]): void;
77
+ handleResize(...args: unknown[]): void;
78
+ handleSessionClosed(session: IdeSession): void;
79
+ handleSessionOpened(session: IdeSession, params: {
80
+ language: string;
81
+ sessionId: string;
82
+ }): void;
83
+ handleBeforeShow(...args: unknown[]): void;
84
+ handleShow(...args: unknown[]): void;
85
+ handleTabBlur(...args: unknown[]): void;
86
+ handleTabFocus(...args: unknown[]): void;
21
87
  handleRenameCancel(): void;
22
- handleRenameSubmit(newTitle: any): void;
23
88
  handleShowRenameDialog(): void;
24
- handleTabClicked(...args: any[]): void;
25
- handleTab(tab: any): void;
26
- getCloneAction(): {
27
- title: string;
28
- order: number;
29
- group: number;
30
- action: () => void;
31
- };
32
- getRenameAction(): {
33
- title: string;
34
- order: number;
35
- group: number;
36
- action: () => void;
37
- };
89
+ handleRenameSubmit(newTitle: string): void;
90
+ handleCopyPanel(): void;
91
+ getCloneAction(): ContextAction;
92
+ getRenameAction(): ContextAction;
38
93
  getAdditionActions: (this: any, actions: any, isClonable: any, isRenamable: any) => any[];
94
+ render(): ReactElement;
39
95
  }
40
- declare namespace Panel {
41
- namespace propTypes {
42
- const componentPanel: PropTypes.Validator<React.Component<unknown, unknown, unknown>>;
43
- const children: PropTypes.Validator<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
44
- const glContainer: PropTypes.Validator<PropTypes.InferProps<{
45
- on: PropTypes.Requireable<(...args: any[]) => any>;
46
- off: PropTypes.Requireable<(...args: any[]) => any>;
47
- isHidden: PropTypes.Requireable<boolean>;
48
- tab: PropTypes.Requireable<PropTypes.InferProps<{
49
- header: PropTypes.Requireable<PropTypes.InferProps<{
50
- tabs: PropTypes.Requireable<(PropTypes.InferProps<{
51
- contentItem: PropTypes.Requireable<PropTypes.InferProps<{}>>;
52
- }> | null | undefined)[]>;
53
- }>>;
54
- }>>;
55
- title: PropTypes.Requireable<string>;
56
- setTitle: PropTypes.Requireable<(...args: any[]) => any>;
57
- close: PropTypes.Requireable<(...args: any[]) => any>;
58
- }>>;
59
- const glEventHub: PropTypes.Validator<PropTypes.InferProps<{
60
- on: PropTypes.Requireable<(...args: any[]) => any>;
61
- off: PropTypes.Requireable<(...args: any[]) => any>;
62
- emit: PropTypes.Requireable<(...args: any[]) => any>;
63
- }>>;
64
- const className: PropTypes.Requireable<string>;
65
- const onFocus: PropTypes.Requireable<(...args: any[]) => any>;
66
- const onBlur: PropTypes.Requireable<(...args: any[]) => any>;
67
- const onTab: PropTypes.Requireable<(...args: any[]) => any>;
68
- const onTabClicked: PropTypes.Requireable<(...args: any[]) => any>;
69
- const onClearAllFilters: PropTypes.Requireable<(...args: any[]) => any>;
70
- const onHide: PropTypes.Requireable<(...args: any[]) => any>;
71
- const onResize: PropTypes.Requireable<(...args: any[]) => any>;
72
- const onSessionClose: PropTypes.Requireable<(...args: any[]) => any>;
73
- const onSessionOpen: PropTypes.Requireable<(...args: any[]) => any>;
74
- const onBeforeShow: PropTypes.Requireable<(...args: any[]) => any>;
75
- const onShow: PropTypes.Requireable<(...args: any[]) => any>;
76
- const onTabBlur: PropTypes.Requireable<(...args: any[]) => any>;
77
- const onTabFocus: PropTypes.Requireable<(...args: any[]) => any>;
78
- const renderTabTooltip: PropTypes.Requireable<(...args: any[]) => any>;
79
- const additionalActions: PropTypes.Requireable<any[] | ((...args: any[]) => any)>;
80
- const errorMessage: PropTypes.Requireable<string>;
81
- const isLoading: PropTypes.Requireable<boolean>;
82
- const isLoaded: PropTypes.Requireable<boolean>;
83
- const isClonable: PropTypes.Requireable<boolean>;
84
- const isRenamable: PropTypes.Requireable<boolean>;
85
- }
86
- namespace defaultProps {
87
- const className_1: string;
88
- export { className_1 as className };
89
- export function onTab_1(): void;
90
- export { onTab_1 as onTab };
91
- export function onTabClicked_1(): void;
92
- export { onTabClicked_1 as onTabClicked };
93
- export function onClearAllFilters_1(): void;
94
- export { onClearAllFilters_1 as onClearAllFilters };
95
- export function onFocus_1(): void;
96
- export { onFocus_1 as onFocus };
97
- export function onBlur_1(): void;
98
- export { onBlur_1 as onBlur };
99
- export function onHide_1(): void;
100
- export { onHide_1 as onHide };
101
- export function onResize_1(): void;
102
- export { onResize_1 as onResize };
103
- export function onSessionClose_1(): void;
104
- export { onSessionClose_1 as onSessionClose };
105
- export function onSessionOpen_1(): void;
106
- export { onSessionOpen_1 as onSessionOpen };
107
- export function onBeforeShow_1(): void;
108
- export { onBeforeShow_1 as onBeforeShow };
109
- export function onShow_1(): void;
110
- export { onShow_1 as onShow };
111
- export function onTabBlur_1(): void;
112
- export { onTabBlur_1 as onTabBlur };
113
- export function onTabFocus_1(): void;
114
- export { onTabFocus_1 as onTabFocus };
115
- const renderTabTooltip_1: null;
116
- export { renderTabTooltip_1 as renderTabTooltip };
117
- const additionalActions_1: never[];
118
- export { additionalActions_1 as additionalActions };
119
- const errorMessage_1: null;
120
- export { errorMessage_1 as errorMessage };
121
- const isLoading_1: boolean;
122
- export { isLoading_1 as isLoading };
123
- const isLoaded_1: boolean;
124
- export { isLoaded_1 as isLoaded };
125
- const isClonable_1: boolean;
126
- export { isClonable_1 as isClonable };
127
- const isRenamable_1: boolean;
128
- export { isRenamable_1 as isRenamable };
129
- }
130
- }
131
- import React from "react";
132
- import PropTypes from "prop-types";
96
+ export default Panel;
133
97
  //# sourceMappingURL=Panel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../src/panels/Panel.jsx"],"names":[],"mappings":";AAcA;;;;GAIG;AACH;IACE,wBA0BC;IA+DD,4CAGC;IAuED,wBAYC;IAjFD,kCAMC;IAED,iCAGC;IAED,iCAGC;IAED,mCAGC;IAED,0CAGC;IAED,0CAGC;IAED,uCAGC;IAED,iCAGC;IAED,oCAGC;IAED,qCAGC;IAED,2BAEC;IAMD,wCAMC;IAVD,+BAEC;IArED,uCAGC;IAjBD,0BAYC;IA+FD;;;;;MAOC;IAED;;;;;MAOC;IAED,0FASG;CAmEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAgCQ,gCAAQ;;QACD,uCAAQ;;QACH,4CAAQ;;QAClB,kCAAQ;;QACT,iCAAQ;;QACR,iCAAQ;;QACN,mCAAQ;;QACF,yCAAQ;;QACT,wCAAQ;;QACT,uCAAQ;;QACd,iCAAQ;;QACL,oCAAQ;;QACP,qCAAQ"}
1
+ {"version":3,"file":"Panel.d.ts","sourceRoot":"","sources":["../../src/panels/Panel.tsx"],"names":[],"mappings":"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"}
@@ -1,23 +1,23 @@
1
1
  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; }
2
2
 
3
- import React, { Component, PureComponent } from 'react';
3
+ import React, { PureComponent } from 'react';
4
4
  import ReactDOM from 'react-dom';
5
- import PropTypes from 'prop-types';
6
5
  import classNames from 'classnames';
7
6
  import memoize from 'memoize-one';
8
7
  import { ContextActions, LoadingOverlay, Tooltip } from '@deephaven/components';
9
- import { GLPropTypes, LayoutUtils, PanelEvent } from '@deephaven/dashboard';
8
+ import { LayoutUtils, PanelEvent } from '@deephaven/dashboard';
9
+ import { assertNotNull } from '@deephaven/utils';
10
10
  import Log from '@deephaven/log';
11
11
  import { ConsoleEvent, InputFilterEvent, TabEvent } from "../events/index.js";
12
12
  import PanelContextMenu from "./PanelContextMenu.js";
13
13
  import RenameDialog from "./RenameDialog.js";
14
14
  var log = Log.module('Panel');
15
+
15
16
  /**
16
17
  * Generic panel component that emits mount/unmount/focus events.
17
18
  * Also wires up some triggers for common events:
18
19
  * Focus, Resize, Show, Session open/close, client disconnect/reconnect.
19
20
  */
20
-
21
21
  class Panel extends PureComponent {
22
22
  constructor(props) {
23
23
  super(props);
@@ -132,7 +132,7 @@ class Panel extends PureComponent {
132
132
  onClearAllFilters(...arguments);
133
133
  }
134
134
 
135
- handleFocus() {
135
+ handleFocus(event) {
136
136
  var {
137
137
  componentPanel,
138
138
  glEventHub
@@ -141,14 +141,14 @@ class Panel extends PureComponent {
141
141
  var {
142
142
  onFocus
143
143
  } = this.props;
144
- onFocus(...arguments);
144
+ onFocus(event);
145
145
  }
146
146
 
147
- handleBlur() {
147
+ handleBlur(event) {
148
148
  var {
149
149
  onBlur
150
150
  } = this.props;
151
- onBlur(...arguments);
151
+ onBlur(event);
152
152
  }
153
153
 
154
154
  handleHide() {
@@ -165,18 +165,18 @@ class Panel extends PureComponent {
165
165
  onResize(...arguments);
166
166
  }
167
167
 
168
- handleSessionClosed() {
168
+ handleSessionClosed(session) {
169
169
  var {
170
170
  onSessionClose
171
171
  } = this.props;
172
- onSessionClose(...arguments);
172
+ onSessionClose(session);
173
173
  }
174
174
 
175
- handleSessionOpened() {
175
+ handleSessionOpened(session, params) {
176
176
  var {
177
177
  onSessionOpen
178
178
  } = this.props;
179
- onSessionOpen(...arguments);
179
+ onSessionOpen(session, params);
180
180
  }
181
181
 
182
182
  handleBeforeShow() {
@@ -229,6 +229,7 @@ class Panel extends PureComponent {
229
229
  });
230
230
  var root = LayoutUtils.getRootFromContainer(glContainer);
231
231
  var config = LayoutUtils.getComponentConfigFromContainer(glContainer);
232
+ assertNotNull(config);
232
233
  LayoutUtils.renameComponent(root, config, newTitle);
233
234
  }
234
235
 
@@ -319,48 +320,21 @@ class Panel extends PureComponent {
319
320
 
320
321
  }
321
322
 
322
- Panel.propTypes = {
323
- componentPanel: PropTypes.instanceOf(Component).isRequired,
324
- children: PropTypes.node.isRequired,
325
- glContainer: GLPropTypes.Container.isRequired,
326
- glEventHub: GLPropTypes.EventHub.isRequired,
327
- className: PropTypes.string,
328
- onFocus: PropTypes.func,
329
- onBlur: PropTypes.func,
330
- onTab: PropTypes.func,
331
- onTabClicked: PropTypes.func,
332
- onClearAllFilters: PropTypes.func,
333
- onHide: PropTypes.func,
334
- onResize: PropTypes.func,
335
- onSessionClose: PropTypes.func,
336
- onSessionOpen: PropTypes.func,
337
- onBeforeShow: PropTypes.func,
338
- onShow: PropTypes.func,
339
- onTabBlur: PropTypes.func,
340
- onTabFocus: PropTypes.func,
341
- renderTabTooltip: PropTypes.func,
342
- additionalActions: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),
343
- errorMessage: PropTypes.string,
344
- isLoading: PropTypes.bool,
345
- isLoaded: PropTypes.bool,
346
- isClonable: PropTypes.bool,
347
- isRenamable: PropTypes.bool
348
- };
349
- Panel.defaultProps = {
323
+ _defineProperty(Panel, "defaultProps", {
350
324
  className: '',
351
- onTab: () => {},
352
- onTabClicked: () => {},
353
- onClearAllFilters: () => {},
354
- onFocus: () => {},
355
- onBlur: () => {},
356
- onHide: () => {},
357
- onResize: () => {},
358
- onSessionClose: () => {},
359
- onSessionOpen: () => {},
360
- onBeforeShow: () => {},
361
- onShow: () => {},
362
- onTabBlur: () => {},
363
- onTabFocus: () => {},
325
+ onTab: () => undefined,
326
+ onTabClicked: () => undefined,
327
+ onClearAllFilters: () => undefined,
328
+ onFocus: () => undefined,
329
+ onBlur: () => undefined,
330
+ onHide: () => undefined,
331
+ onResize: () => undefined,
332
+ onSessionClose: () => undefined,
333
+ onSessionOpen: () => undefined,
334
+ onBeforeShow: () => undefined,
335
+ onShow: () => undefined,
336
+ onTabBlur: () => undefined,
337
+ onTabFocus: () => undefined,
364
338
  renderTabTooltip: null,
365
339
  additionalActions: [],
366
340
  errorMessage: null,
@@ -368,6 +342,7 @@ Panel.defaultProps = {
368
342
  isLoaded: true,
369
343
  isClonable: false,
370
344
  isRenamable: false
371
- };
345
+ });
346
+
372
347
  export default Panel;
373
348
  //# sourceMappingURL=Panel.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/panels/Panel.jsx"],"names":["React","Component","PureComponent","ReactDOM","PropTypes","classNames","memoize","ContextActions","LoadingOverlay","Tooltip","GLPropTypes","LayoutUtils","PanelEvent","Log","ConsoleEvent","InputFilterEvent","TabEvent","PanelContextMenu","RenameDialog","log","module","Panel","constructor","props","actions","isClonable","isRenamable","additionalActions","push","getCloneAction","getRenameAction","handleClearAllFilters","bind","handleCopyPanel","handleFocus","handleBlur","handleHide","handleResize","handleSessionClosed","handleSessionOpened","handleBeforeShow","handleShow","handleTabBlur","handleTabFocus","handleRenameCancel","handleRenameSubmit","handleShowRenameDialog","handleTabClicked","handleTab","glContainer","state","title","getTitleFromContainer","showRenameDialog","componentDidMount","componentPanel","glEventHub","on","SESSION_CLOSED","SESSION_OPENED","focus","blur","CLEAR_ALL_FILTERS","emit","MOUNT","componentWillUnmount","off","UNMOUNT","tab","setState","getTitleFromTab","forceUpdate","onTab","onTabClicked","onClearAllFilters","FOCUS","onFocus","onBlur","onHide","onResize","onSessionClose","onSessionOpen","onBeforeShow","onShow","onTabBlur","onTabFocus","newTitle","root","getRootFromContainer","config","getComponentConfigFromContainer","renameComponent","error","cloneConfig","cloneComponent","CLONED","order","group","groups","high","action","medium","render","children","className","renderTabTooltip","errorMessage","isLoaded","isLoading","glTab","createPortal","getAdditionActions","placement","element","propTypes","instanceOf","isRequired","node","Container","EventHub","string","func","oneOfType","array","bool","defaultProps"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,SAAhB,EAA2BC,aAA3B,QAAgD,OAAhD;AACA,OAAOC,QAAP,MAAqB,WAArB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,OAAP,MAAoB,aAApB;AACA,SAASC,cAAT,EAAyBC,cAAzB,EAAyCC,OAAzC,QAAwD,uBAAxD;AACA,SAASC,WAAT,EAAsBC,WAAtB,EAAmCC,UAAnC,QAAqD,sBAArD;AACA,OAAOC,GAAP,MAAgB,gBAAhB;SACSC,Y,EAAcC,gB,EAAkBC,Q;OAClCC,gB;OACAC,Y;AAEP,IAAMC,GAAG,GAAGN,GAAG,CAACO,MAAJ,CAAW,OAAX,CAAZ;AAEA;AACA;AACA;AACA;AACA;;AACA,MAAMC,KAAN,SAAoBnB,aAApB,CAAkC;AAChCoB,EAAAA,WAAW,CAACC,KAAD,EAAQ;AACjB,UAAMA,KAAN;;AADiB,gDAmMEjB,OAAO,CAAC,CAACkB,OAAD,EAAUC,UAAV,EAAsBC,WAAtB,KAAsC;AACjE,UAAMC,iBAAiB,GAAG,EAA1B;;AACA,UAAIF,UAAJ,EAAgB;AACdE,QAAAA,iBAAiB,CAACC,IAAlB,CAAuB,KAAKC,cAAL,EAAvB;AACD;;AACD,UAAIH,WAAJ,EAAiB;AACfC,QAAAA,iBAAiB,CAACC,IAAlB,CAAuB,KAAKE,eAAL,EAAvB;AACD;;AACD,aAAO,CAAC,GAAGH,iBAAJ,EAAuB,GAAGH,OAA1B,CAAP;AACD,KAT2B,CAnMT;;AAGjB,SAAKO,qBAAL,GAA6B,KAAKA,qBAAL,CAA2BC,IAA3B,CAAgC,IAAhC,CAA7B;AACA,SAAKC,eAAL,GAAuB,KAAKA,eAAL,CAAqBD,IAArB,CAA0B,IAA1B,CAAvB;AACA,SAAKE,WAAL,GAAmB,KAAKA,WAAL,CAAiBF,IAAjB,CAAsB,IAAtB,CAAnB;AACA,SAAKG,UAAL,GAAkB,KAAKA,UAAL,CAAgBH,IAAhB,CAAqB,IAArB,CAAlB;AACA,SAAKI,UAAL,GAAkB,KAAKA,UAAL,CAAgBJ,IAAhB,CAAqB,IAArB,CAAlB;AACA,SAAKK,YAAL,GAAoB,KAAKA,YAAL,CAAkBL,IAAlB,CAAuB,IAAvB,CAApB;AACA,SAAKM,mBAAL,GAA2B,KAAKA,mBAAL,CAAyBN,IAAzB,CAA8B,IAA9B,CAA3B;AACA,SAAKO,mBAAL,GAA2B,KAAKA,mBAAL,CAAyBP,IAAzB,CAA8B,IAA9B,CAA3B;AACA,SAAKQ,gBAAL,GAAwB,KAAKA,gBAAL,CAAsBR,IAAtB,CAA2B,IAA3B,CAAxB;AACA,SAAKS,UAAL,GAAkB,KAAKA,UAAL,CAAgBT,IAAhB,CAAqB,IAArB,CAAlB;AACA,SAAKU,aAAL,GAAqB,KAAKA,aAAL,CAAmBV,IAAnB,CAAwB,IAAxB,CAArB;AACA,SAAKW,cAAL,GAAsB,KAAKA,cAAL,CAAoBX,IAApB,CAAyB,IAAzB,CAAtB;AACA,SAAKY,kBAAL,GAA0B,KAAKA,kBAAL,CAAwBZ,IAAxB,CAA6B,IAA7B,CAA1B;AACA,SAAKa,kBAAL,GAA0B,KAAKA,kBAAL,CAAwBb,IAAxB,CAA6B,IAA7B,CAA1B;AACA,SAAKc,sBAAL,GAA8B,KAAKA,sBAAL,CAA4Bd,IAA5B,CAAiC,IAAjC,CAA9B;AACA,SAAKe,gBAAL,GAAwB,KAAKA,gBAAL,CAAsBf,IAAtB,CAA2B,IAA3B,CAAxB;AACA,SAAKgB,SAAL,GAAiB,KAAKA,SAAL,CAAehB,IAAf,CAAoB,IAApB,CAAjB;AAEA,QAAM;AAAEiB,MAAAA;AAAF,QAAkB,KAAK1B,KAA7B;AACA,SAAK2B,KAAL,GAAa;AACXC,MAAAA,KAAK,EAAExC,WAAW,CAACyC,qBAAZ,CAAkCH,WAAlC,CADI;AAEXI,MAAAA,gBAAgB,EAAE;AAFP,KAAb;AAID;;AAEDC,EAAAA,iBAAiB,GAAG;AAClB,QAAM;AAAEC,MAAAA,cAAF;AAAkBN,MAAAA,WAAlB;AAA+BO,MAAAA;AAA/B,QAA8C,KAAKjC,KAAzD;AAEA0B,IAAAA,WAAW,CAACQ,EAAZ,CAAe,QAAf,EAAyB,KAAKpB,YAA9B;AACAY,IAAAA,WAAW,CAACQ,EAAZ,CAAe,MAAf,EAAuB,KAAKjB,gBAA5B;AACAS,IAAAA,WAAW,CAACQ,EAAZ,CAAe,OAAf,EAAwB,KAAKhB,UAA7B;AACAQ,IAAAA,WAAW,CAACQ,EAAZ,CAAe,MAAf,EAAuB,KAAKrB,UAA5B;AACAa,IAAAA,WAAW,CAACQ,EAAZ,CAAe,KAAf,EAAsB,KAAKT,SAA3B;AACAC,IAAAA,WAAW,CAACQ,EAAZ,CAAe,YAAf,EAA6B,KAAKV,gBAAlC;AACAS,IAAAA,UAAU,CAACC,EAAX,CAAc3C,YAAY,CAAC4C,cAA3B,EAA2C,KAAKpB,mBAAhD;AACAkB,IAAAA,UAAU,CAACC,EAAX,CAAc3C,YAAY,CAAC6C,cAA3B,EAA2C,KAAKpB,mBAAhD;AACAiB,IAAAA,UAAU,CAACC,EAAX,CAAczC,QAAQ,CAAC4C,KAAvB,EAA8B,KAAKjB,cAAnC;AACAa,IAAAA,UAAU,CAACC,EAAX,CAAczC,QAAQ,CAAC6C,IAAvB,EAA6B,KAAKnB,aAAlC;AACAc,IAAAA,UAAU,CAACC,EAAX,CACE1C,gBAAgB,CAAC+C,iBADnB,EAEE,KAAK/B,qBAFP;AAKAyB,IAAAA,UAAU,CAACO,IAAX,CAAgBnD,UAAU,CAACoD,KAA3B,EAAkCT,cAAlC;AACD;;AAEDU,EAAAA,oBAAoB,GAAG;AACrB,QAAM;AAAEV,MAAAA,cAAF;AAAkBN,MAAAA,WAAlB;AAA+BO,MAAAA;AAA/B,QAA8C,KAAKjC,KAAzD;AAEA0B,IAAAA,WAAW,CAACiB,GAAZ,CAAgB,QAAhB,EAA0B,KAAK7B,YAA/B;AACAY,IAAAA,WAAW,CAACiB,GAAZ,CAAgB,MAAhB,EAAwB,KAAK1B,gBAA7B;AACAS,IAAAA,WAAW,CAACiB,GAAZ,CAAgB,OAAhB,EAAyB,KAAKzB,UAA9B;AACAQ,IAAAA,WAAW,CAACiB,GAAZ,CAAgB,MAAhB,EAAwB,KAAK9B,UAA7B;AACAa,IAAAA,WAAW,CAACiB,GAAZ,CAAgB,KAAhB,EAAuB,KAAKlB,SAA5B;AACAC,IAAAA,WAAW,CAACiB,GAAZ,CAAgB,YAAhB,EAA8B,KAAKnB,gBAAnC;AACAS,IAAAA,UAAU,CAACU,GAAX,CAAepD,YAAY,CAAC4C,cAA5B,EAA4C,KAAKpB,mBAAjD;AACAkB,IAAAA,UAAU,CAACU,GAAX,CAAepD,YAAY,CAAC6C,cAA5B,EAA4C,KAAKpB,mBAAjD;AACAiB,IAAAA,UAAU,CAACU,GAAX,CAAelD,QAAQ,CAAC4C,KAAxB,EAA+B,KAAKjB,cAApC;AACAa,IAAAA,UAAU,CAACU,GAAX,CAAelD,QAAQ,CAAC6C,IAAxB,EAA8B,KAAKnB,aAAnC;AACAc,IAAAA,UAAU,CAACU,GAAX,CACEnD,gBAAgB,CAAC+C,iBADnB,EAEE,KAAK/B,qBAFP;AAKAyB,IAAAA,UAAU,CAACO,IAAX,CAAgBnD,UAAU,CAACuD,OAA3B,EAAoCZ,cAApC;AACD;;AAEDP,EAAAA,SAAS,CAACoB,GAAD,EAAM;AACb,QAAIA,GAAJ,EAAS;AACP,WAAKC,QAAL,CAAc;AACZlB,QAAAA,KAAK,EAAExC,WAAW,CAAC2D,eAAZ,CAA4BF,GAA5B;AADK,OAAd;AAGD,KALY,CAMb;AACA;;;AACA,SAAKG,WAAL;AAEA,QAAM;AAAEC,MAAAA;AAAF,QAAY,KAAKjD,KAAvB;AACAiD,IAAAA,KAAK,CAACJ,GAAD,CAAL;AACD;;AAEDrB,EAAAA,gBAAgB,GAAU;AACxB,QAAM;AAAE0B,MAAAA;AAAF,QAAmB,KAAKlD,KAA9B;AACAkD,IAAAA,YAAY,CAAC,YAAD,CAAZ;AACD;;AAED1C,EAAAA,qBAAqB,GAAU;AAC7B,QAAM;AAAE2C,MAAAA;AAAF,QAAwB,KAAKnD,KAAnC;AACAmD,IAAAA,iBAAiB,CAAC,YAAD,CAAjB;AACD;;AAEDxC,EAAAA,WAAW,GAAU;AACnB,QAAM;AAAEqB,MAAAA,cAAF;AAAkBC,MAAAA;AAAlB,QAAiC,KAAKjC,KAA5C;AACAiC,IAAAA,UAAU,CAACO,IAAX,CAAgBnD,UAAU,CAAC+D,KAA3B,EAAkCpB,cAAlC;AAEA,QAAM;AAAEqB,MAAAA;AAAF,QAAc,KAAKrD,KAAzB;AACAqD,IAAAA,OAAO,CAAC,YAAD,CAAP;AACD;;AAEDzC,EAAAA,UAAU,GAAU;AAClB,QAAM;AAAE0C,MAAAA;AAAF,QAAa,KAAKtD,KAAxB;AACAsD,IAAAA,MAAM,CAAC,YAAD,CAAN;AACD;;AAEDzC,EAAAA,UAAU,GAAU;AAClB,QAAM;AAAE0C,MAAAA;AAAF,QAAa,KAAKvD,KAAxB;AACAuD,IAAAA,MAAM,CAAC,YAAD,CAAN;AACD;;AAEDzC,EAAAA,YAAY,GAAU;AACpB,QAAM;AAAE0C,MAAAA;AAAF,QAAe,KAAKxD,KAA1B;AACAwD,IAAAA,QAAQ,CAAC,YAAD,CAAR;AACD;;AAEDzC,EAAAA,mBAAmB,GAAU;AAC3B,QAAM;AAAE0C,MAAAA;AAAF,QAAqB,KAAKzD,KAAhC;AACAyD,IAAAA,cAAc,CAAC,YAAD,CAAd;AACD;;AAEDzC,EAAAA,mBAAmB,GAAU;AAC3B,QAAM;AAAE0C,MAAAA;AAAF,QAAoB,KAAK1D,KAA/B;AACA0D,IAAAA,aAAa,CAAC,YAAD,CAAb;AACD;;AAEDzC,EAAAA,gBAAgB,GAAU;AACxB,QAAM;AAAE0C,MAAAA;AAAF,QAAmB,KAAK3D,KAA9B;AACA2D,IAAAA,YAAY,CAAC,YAAD,CAAZ;AACD;;AAEDzC,EAAAA,UAAU,GAAU;AAClB,QAAM;AAAE0C,MAAAA;AAAF,QAAa,KAAK5D,KAAxB;AACA4D,IAAAA,MAAM,CAAC,YAAD,CAAN;AACD;;AAEDzC,EAAAA,aAAa,GAAU;AACrB,QAAM;AAAE0C,MAAAA;AAAF,QAAgB,KAAK7D,KAA3B;AACA6D,IAAAA,SAAS,CAAC,YAAD,CAAT;AACD;;AAEDzC,EAAAA,cAAc,GAAU;AACtB,QAAM;AAAE0C,MAAAA;AAAF,QAAiB,KAAK9D,KAA5B;AACA8D,IAAAA,UAAU,CAAC,YAAD,CAAV;AACD;;AAEDzC,EAAAA,kBAAkB,GAAG;AACnB,SAAKyB,QAAL,CAAc;AAAEhB,MAAAA,gBAAgB,EAAE;AAApB,KAAd;AACD;;AAEDP,EAAAA,sBAAsB,GAAG;AACvB,SAAKuB,QAAL,CAAc;AAAEhB,MAAAA,gBAAgB,EAAE;AAApB,KAAd;AACD;;AAEDR,EAAAA,kBAAkB,CAACyC,QAAD,EAAW;AAC3B,QAAM;AAAErC,MAAAA;AAAF,QAAkB,KAAK1B,KAA7B;AACA,SAAK8C,QAAL,CAAc;AAAEhB,MAAAA,gBAAgB,EAAE,KAApB;AAA2BF,MAAAA,KAAK,EAAEmC;AAAlC,KAAd;AACA,QAAMC,IAAI,GAAG5E,WAAW,CAAC6E,oBAAZ,CAAiCvC,WAAjC,CAAb;AACA,QAAMwC,MAAM,GAAG9E,WAAW,CAAC+E,+BAAZ,CAA4CzC,WAA5C,CAAf;AACAtC,IAAAA,WAAW,CAACgF,eAAZ,CAA4BJ,IAA5B,EAAkCE,MAAlC,EAA0CH,QAA1C;AACD;;AAEDrD,EAAAA,eAAe,GAAG;AAChB,QAAM;AAAEgB,MAAAA,WAAF;AAAeO,MAAAA;AAAf,QAA8B,KAAKjC,KAAzC;AACA,QAAMgE,IAAI,GAAG5E,WAAW,CAAC6E,oBAAZ,CAAiCvC,WAAjC,CAAb;AACA,QAAMwC,MAAM,GAAG9E,WAAW,CAAC+E,+BAAZ,CAA4CzC,WAA5C,CAAf;;AACA,QAAIwC,MAAM,IAAI,IAAd,EAAoB;AAClBtE,MAAAA,GAAG,CAACyE,KAAJ,CAAU,+CAAV,EAA2D3C,WAA3D;AACA;AACD;;AACD,QAAM4C,WAAW,GAAGlF,WAAW,CAACmF,cAAZ,CAA2BP,IAA3B,EAAiCE,MAAjC,CAApB;;AACA,QAAII,WAAW,KAAK,IAApB,EAA0B;AACxBrC,MAAAA,UAAU,CAACO,IAAX,CAAgBnD,UAAU,CAACmF,MAA3B,EAAmC,IAAnC,EAAyCF,WAAzC;AACD;AACF;;AAEDhE,EAAAA,cAAc,GAAG;AACf,WAAO;AACLsB,MAAAA,KAAK,EAAE,YADF;AAEL6C,MAAAA,KAAK,EAAE,EAFF;AAGLC,MAAAA,KAAK,EAAE1F,cAAc,CAAC2F,MAAf,CAAsBC,IAHxB;AAILC,MAAAA,MAAM,EAAE,KAAKnE;AAJR,KAAP;AAMD;;AAEDH,EAAAA,eAAe,GAAG;AAChB,WAAO;AACLqB,MAAAA,KAAK,EAAE,QADF;AAEL6C,MAAAA,KAAK,EAAE,EAFF;AAGLC,MAAAA,KAAK,EAAE1F,cAAc,CAAC2F,MAAf,CAAsBG,MAHxB;AAILD,MAAAA,MAAM,EAAE,KAAKtD;AAJR,KAAP;AAMD;;AAaDwD,EAAAA,MAAM,GAAG;AACP,QAAM;AACJC,MAAAA,QADI;AAEJC,MAAAA,SAFI;AAGJC,MAAAA,gBAHI;AAIJxD,MAAAA,WAJI;AAKJtB,MAAAA,iBALI;AAMJ+E,MAAAA,YANI;AAOJC,MAAAA,QAPI;AAQJC,MAAAA,SARI;AASJnF,MAAAA,UATI;AAUJC,MAAAA;AAVI,QAWF,KAAKH,KAXT;AAYA,QAAM;AAAE6C,MAAAA,GAAG,EAAEyC;AAAP,QAAiB5D,WAAvB;AACA,QAAM;AAAEI,MAAAA,gBAAF;AAAoBF,MAAAA;AAApB,QAA8B,KAAKD,KAAzC;AAEA,wBACE;AACE,MAAA,SAAS,EAAE7C,UAAU,CAAC,wBAAD,EAA2BmG,SAA3B,CADvB;AAEE,MAAA,cAAc,EAAE,KAAKtE,WAFvB;AAGE,MAAA,aAAa,EAAE,KAAKC;AAHtB,OAKGoE,QALH,eAME,oBAAC,cAAD;AACE,MAAA,YAAY,EAAEG,YADhB;AAEE,MAAA,QAAQ,EAAEC,QAFZ;AAGE,MAAA,SAAS,EAAEC;AAHb,MANF,EAWGC,KAAK,iBACJ1G,QAAQ,CAAC2G,YAAT,eACE,uDACE,oBAAC,gBAAD;AACE,MAAA,WAAW,EAAE7D,WADf;AAEE,MAAA,iBAAiB,EAAE,KAAK8D,kBAAL,CACjBpF,iBADiB,EAEjBF,UAFiB,EAGjBC,WAHiB;AAFrB,MADF,EASGA,WAAW,iBACV,oBAAC,YAAD;AACE,MAAA,OAAO,EAAE2B,gBADX;AAEE,MAAA,KAAK,EAAEF,KAFT;AAGE,MAAA,QAAQ,EAAC,OAHX;AAIE,MAAA,QAAQ,EAAE,KAAKP,kBAJjB;AAKE,MAAA,QAAQ,EAAE,KAAKC;AALjB,MAVJ,EAkBG4D,gBAAgB,iBACf,oBAAC,OAAD;AACE,MAAA,WAAW,MADb;AAEE,MAAA,OAAO,EAAE;AACPO,QAAAA,SAAS,EAAE;AADJ,OAFX;AAKE,MAAA,eAAe,EAAC;AALlB,OAOGP,gBAAgB,EAPnB,CAnBJ,CADF,EA+BEI,KAAK,CAACI,OAAN,CAAc,CAAd,CA/BF,CA+BmB;AA/BnB,KAZJ,CADF;AAgDD;;AA/Q+B;;AAkRlC5F,KAAK,CAAC6F,SAAN,GAAkB;AAChB3D,EAAAA,cAAc,EAAEnD,SAAS,CAAC+G,UAAV,CAAqBlH,SAArB,EAAgCmH,UADhC;AAEhBb,EAAAA,QAAQ,EAAEnG,SAAS,CAACiH,IAAV,CAAeD,UAFT;AAGhBnE,EAAAA,WAAW,EAAEvC,WAAW,CAAC4G,SAAZ,CAAsBF,UAHnB;AAIhB5D,EAAAA,UAAU,EAAE9C,WAAW,CAAC6G,QAAZ,CAAqBH,UAJjB;AAKhBZ,EAAAA,SAAS,EAAEpG,SAAS,CAACoH,MALL;AAMhB5C,EAAAA,OAAO,EAAExE,SAAS,CAACqH,IANH;AAOhB5C,EAAAA,MAAM,EAAEzE,SAAS,CAACqH,IAPF;AAQhBjD,EAAAA,KAAK,EAAEpE,SAAS,CAACqH,IARD;AAShBhD,EAAAA,YAAY,EAAErE,SAAS,CAACqH,IATR;AAUhB/C,EAAAA,iBAAiB,EAAEtE,SAAS,CAACqH,IAVb;AAWhB3C,EAAAA,MAAM,EAAE1E,SAAS,CAACqH,IAXF;AAYhB1C,EAAAA,QAAQ,EAAE3E,SAAS,CAACqH,IAZJ;AAahBzC,EAAAA,cAAc,EAAE5E,SAAS,CAACqH,IAbV;AAchBxC,EAAAA,aAAa,EAAE7E,SAAS,CAACqH,IAdT;AAehBvC,EAAAA,YAAY,EAAE9E,SAAS,CAACqH,IAfR;AAgBhBtC,EAAAA,MAAM,EAAE/E,SAAS,CAACqH,IAhBF;AAiBhBrC,EAAAA,SAAS,EAAEhF,SAAS,CAACqH,IAjBL;AAkBhBpC,EAAAA,UAAU,EAAEjF,SAAS,CAACqH,IAlBN;AAmBhBhB,EAAAA,gBAAgB,EAAErG,SAAS,CAACqH,IAnBZ;AAoBhB9F,EAAAA,iBAAiB,EAAEvB,SAAS,CAACsH,SAAV,CAAoB,CAACtH,SAAS,CAACuH,KAAX,EAAkBvH,SAAS,CAACqH,IAA5B,CAApB,CApBH;AAqBhBf,EAAAA,YAAY,EAAEtG,SAAS,CAACoH,MArBR;AAsBhBZ,EAAAA,SAAS,EAAExG,SAAS,CAACwH,IAtBL;AAuBhBjB,EAAAA,QAAQ,EAAEvG,SAAS,CAACwH,IAvBJ;AAwBhBnG,EAAAA,UAAU,EAAErB,SAAS,CAACwH,IAxBN;AAyBhBlG,EAAAA,WAAW,EAAEtB,SAAS,CAACwH;AAzBP,CAAlB;AA4BAvG,KAAK,CAACwG,YAAN,GAAqB;AACnBrB,EAAAA,SAAS,EAAE,EADQ;AAEnBhC,EAAAA,KAAK,EAAE,MAAM,CAAE,CAFI;AAGnBC,EAAAA,YAAY,EAAE,MAAM,CAAE,CAHH;AAInBC,EAAAA,iBAAiB,EAAE,MAAM,CAAE,CAJR;AAKnBE,EAAAA,OAAO,EAAE,MAAM,CAAE,CALE;AAMnBC,EAAAA,MAAM,EAAE,MAAM,CAAE,CANG;AAOnBC,EAAAA,MAAM,EAAE,MAAM,CAAE,CAPG;AAQnBC,EAAAA,QAAQ,EAAE,MAAM,CAAE,CARC;AASnBC,EAAAA,cAAc,EAAE,MAAM,CAAE,CATL;AAUnBC,EAAAA,aAAa,EAAE,MAAM,CAAE,CAVJ;AAWnBC,EAAAA,YAAY,EAAE,MAAM,CAAE,CAXH;AAYnBC,EAAAA,MAAM,EAAE,MAAM,CAAE,CAZG;AAanBC,EAAAA,SAAS,EAAE,MAAM,CAAE,CAbA;AAcnBC,EAAAA,UAAU,EAAE,MAAM,CAAE,CAdD;AAenBoB,EAAAA,gBAAgB,EAAE,IAfC;AAgBnB9E,EAAAA,iBAAiB,EAAE,EAhBA;AAiBnB+E,EAAAA,YAAY,EAAE,IAjBK;AAkBnBE,EAAAA,SAAS,EAAE,KAlBQ;AAmBnBD,EAAAA,QAAQ,EAAE,IAnBS;AAoBnBlF,EAAAA,UAAU,EAAE,KApBO;AAqBnBC,EAAAA,WAAW,EAAE;AArBM,CAArB;AAwBA,eAAeL,KAAf","sourcesContent":["import React, { Component, PureComponent } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport { ContextActions, LoadingOverlay, Tooltip } from '@deephaven/components';\nimport { GLPropTypes, LayoutUtils, PanelEvent } from '@deephaven/dashboard';\nimport Log from '@deephaven/log';\nimport { ConsoleEvent, InputFilterEvent, TabEvent } from '../events';\nimport PanelContextMenu from './PanelContextMenu';\nimport RenameDialog from './RenameDialog';\n\nconst log = Log.module('Panel');\n\n/**\n * Generic panel component that emits mount/unmount/focus events.\n * Also wires up some triggers for common events:\n * Focus, Resize, Show, Session open/close, client disconnect/reconnect.\n */\nclass Panel extends PureComponent {\n constructor(props) {\n super(props);\n\n this.handleClearAllFilters = this.handleClearAllFilters.bind(this);\n this.handleCopyPanel = this.handleCopyPanel.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleHide = this.handleHide.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleBeforeShow = this.handleBeforeShow.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleTabBlur = this.handleTabBlur.bind(this);\n this.handleTabFocus = this.handleTabFocus.bind(this);\n this.handleRenameCancel = this.handleRenameCancel.bind(this);\n this.handleRenameSubmit = this.handleRenameSubmit.bind(this);\n this.handleShowRenameDialog = this.handleShowRenameDialog.bind(this);\n this.handleTabClicked = this.handleTabClicked.bind(this);\n this.handleTab = this.handleTab.bind(this);\n\n const { glContainer } = this.props;\n this.state = {\n title: LayoutUtils.getTitleFromContainer(glContainer),\n showRenameDialog: false,\n };\n }\n\n componentDidMount() {\n const { componentPanel, glContainer, glEventHub } = this.props;\n\n glContainer.on('resize', this.handleResize);\n glContainer.on('show', this.handleBeforeShow);\n glContainer.on('shown', this.handleShow);\n glContainer.on('hide', this.handleHide);\n glContainer.on('tab', this.handleTab);\n glContainer.on('tabClicked', this.handleTabClicked);\n glEventHub.on(ConsoleEvent.SESSION_CLOSED, this.handleSessionClosed);\n glEventHub.on(ConsoleEvent.SESSION_OPENED, this.handleSessionOpened);\n glEventHub.on(TabEvent.focus, this.handleTabFocus);\n glEventHub.on(TabEvent.blur, this.handleTabBlur);\n glEventHub.on(\n InputFilterEvent.CLEAR_ALL_FILTERS,\n this.handleClearAllFilters\n );\n\n glEventHub.emit(PanelEvent.MOUNT, componentPanel);\n }\n\n componentWillUnmount() {\n const { componentPanel, glContainer, glEventHub } = this.props;\n\n glContainer.off('resize', this.handleResize);\n glContainer.off('show', this.handleBeforeShow);\n glContainer.off('shown', this.handleShow);\n glContainer.off('hide', this.handleHide);\n glContainer.off('tab', this.handleTab);\n glContainer.off('tabClicked', this.handleTabClicked);\n glEventHub.off(ConsoleEvent.SESSION_CLOSED, this.handleSessionClosed);\n glEventHub.off(ConsoleEvent.SESSION_OPENED, this.handleSessionOpened);\n glEventHub.off(TabEvent.focus, this.handleTabFocus);\n glEventHub.off(TabEvent.blur, this.handleTabBlur);\n glEventHub.off(\n InputFilterEvent.CLEAR_ALL_FILTERS,\n this.handleClearAllFilters\n );\n\n glEventHub.emit(PanelEvent.UNMOUNT, componentPanel);\n }\n\n handleTab(tab) {\n if (tab) {\n this.setState({\n title: LayoutUtils.getTitleFromTab(tab),\n });\n }\n // render after move can happen before tab event, glTab could be null\n // when tab event is emitted, force a render update\n this.forceUpdate();\n\n const { onTab } = this.props;\n onTab(tab);\n }\n\n handleTabClicked(...args) {\n const { onTabClicked } = this.props;\n onTabClicked(...args);\n }\n\n handleClearAllFilters(...args) {\n const { onClearAllFilters } = this.props;\n onClearAllFilters(...args);\n }\n\n handleFocus(...args) {\n const { componentPanel, glEventHub } = this.props;\n glEventHub.emit(PanelEvent.FOCUS, componentPanel);\n\n const { onFocus } = this.props;\n onFocus(...args);\n }\n\n handleBlur(...args) {\n const { onBlur } = this.props;\n onBlur(...args);\n }\n\n handleHide(...args) {\n const { onHide } = this.props;\n onHide(...args);\n }\n\n handleResize(...args) {\n const { onResize } = this.props;\n onResize(...args);\n }\n\n handleSessionClosed(...args) {\n const { onSessionClose } = this.props;\n onSessionClose(...args);\n }\n\n handleSessionOpened(...args) {\n const { onSessionOpen } = this.props;\n onSessionOpen(...args);\n }\n\n handleBeforeShow(...args) {\n const { onBeforeShow } = this.props;\n onBeforeShow(...args);\n }\n\n handleShow(...args) {\n const { onShow } = this.props;\n onShow(...args);\n }\n\n handleTabBlur(...args) {\n const { onTabBlur } = this.props;\n onTabBlur(...args);\n }\n\n handleTabFocus(...args) {\n const { onTabFocus } = this.props;\n onTabFocus(...args);\n }\n\n handleRenameCancel() {\n this.setState({ showRenameDialog: false });\n }\n\n handleShowRenameDialog() {\n this.setState({ showRenameDialog: true });\n }\n\n handleRenameSubmit(newTitle) {\n const { glContainer } = this.props;\n this.setState({ showRenameDialog: false, title: newTitle });\n const root = LayoutUtils.getRootFromContainer(glContainer);\n const config = LayoutUtils.getComponentConfigFromContainer(glContainer);\n LayoutUtils.renameComponent(root, config, newTitle);\n }\n\n handleCopyPanel() {\n const { glContainer, glEventHub } = this.props;\n const root = LayoutUtils.getRootFromContainer(glContainer);\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 cloneConfig = LayoutUtils.cloneComponent(root, config);\n if (cloneConfig !== null) {\n glEventHub.emit(PanelEvent.CLONED, this, cloneConfig);\n }\n }\n\n getCloneAction() {\n return {\n title: 'Copy Panel',\n order: 10,\n group: ContextActions.groups.high,\n action: this.handleCopyPanel,\n };\n }\n\n getRenameAction() {\n return {\n title: 'Rename',\n order: 10,\n group: ContextActions.groups.medium,\n action: this.handleShowRenameDialog,\n };\n }\n\n getAdditionActions = memoize((actions, isClonable, isRenamable) => {\n const additionalActions = [];\n if (isClonable) {\n additionalActions.push(this.getCloneAction());\n }\n if (isRenamable) {\n additionalActions.push(this.getRenameAction());\n }\n return [...additionalActions, ...actions];\n });\n\n render() {\n const {\n children,\n className,\n renderTabTooltip,\n glContainer,\n additionalActions,\n errorMessage,\n isLoaded,\n isLoading,\n isClonable,\n isRenamable,\n } = this.props;\n const { tab: glTab } = glContainer;\n const { showRenameDialog, title } = this.state;\n\n return (\n <div\n className={classNames('h-100 w-100 iris-panel', className)}\n onFocusCapture={this.handleFocus}\n onBlurCapture={this.handleBlur}\n >\n {children}\n <LoadingOverlay\n errorMessage={errorMessage}\n isLoaded={isLoaded}\n isLoading={isLoading}\n />\n {glTab &&\n ReactDOM.createPortal(\n <>\n <PanelContextMenu\n glContainer={glContainer}\n additionalActions={this.getAdditionActions(\n additionalActions,\n isClonable,\n isRenamable\n )}\n />\n {isRenamable && (\n <RenameDialog\n isShown={showRenameDialog}\n value={title}\n itemType=\"Panel\"\n onCancel={this.handleRenameCancel}\n onSubmit={this.handleRenameSubmit}\n />\n )}\n {renderTabTooltip && (\n <Tooltip\n interactive\n options={{\n placement: 'bottom',\n }}\n popperClassName=\"panel-tab-popper\"\n >\n {renderTabTooltip()}\n </Tooltip>\n )}\n </>,\n glTab.element[0] // tab.element is jquery element, we want a dom element\n )}\n </div>\n );\n }\n}\n\nPanel.propTypes = {\n componentPanel: PropTypes.instanceOf(Component).isRequired,\n children: PropTypes.node.isRequired,\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n className: PropTypes.string,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n onTab: PropTypes.func,\n onTabClicked: PropTypes.func,\n onClearAllFilters: PropTypes.func,\n onHide: PropTypes.func,\n onResize: PropTypes.func,\n onSessionClose: PropTypes.func,\n onSessionOpen: PropTypes.func,\n onBeforeShow: PropTypes.func,\n onShow: PropTypes.func,\n onTabBlur: PropTypes.func,\n onTabFocus: PropTypes.func,\n renderTabTooltip: PropTypes.func,\n additionalActions: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\n errorMessage: PropTypes.string,\n isLoading: PropTypes.bool,\n isLoaded: PropTypes.bool,\n isClonable: PropTypes.bool,\n isRenamable: PropTypes.bool,\n};\n\nPanel.defaultProps = {\n className: '',\n onTab: () => {},\n onTabClicked: () => {},\n onClearAllFilters: () => {},\n onFocus: () => {},\n onBlur: () => {},\n onHide: () => {},\n onResize: () => {},\n onSessionClose: () => {},\n onSessionOpen: () => {},\n onBeforeShow: () => {},\n onShow: () => {},\n onTabBlur: () => {},\n onTabFocus: () => {},\n renderTabTooltip: null,\n additionalActions: [],\n errorMessage: null,\n isLoading: false,\n isLoaded: true,\n isClonable: false,\n isRenamable: false,\n};\n\nexport default Panel;\n"],"file":"Panel.js"}
1
+ {"version":3,"sources":["../../src/panels/Panel.tsx"],"names":["React","PureComponent","ReactDOM","classNames","memoize","ContextActions","LoadingOverlay","Tooltip","LayoutUtils","PanelEvent","assertNotNull","Log","ConsoleEvent","InputFilterEvent","TabEvent","PanelContextMenu","RenameDialog","log","module","Panel","constructor","props","actions","isClonable","isRenamable","additionalActions","push","getCloneAction","getRenameAction","handleClearAllFilters","bind","handleCopyPanel","handleFocus","handleBlur","handleHide","handleResize","handleSessionClosed","handleSessionOpened","handleBeforeShow","handleShow","handleTabBlur","handleTabFocus","handleRenameCancel","handleRenameSubmit","handleShowRenameDialog","handleTabClicked","handleTab","glContainer","state","title","getTitleFromContainer","showRenameDialog","componentDidMount","componentPanel","glEventHub","on","SESSION_CLOSED","SESSION_OPENED","focus","blur","CLEAR_ALL_FILTERS","emit","MOUNT","componentWillUnmount","off","UNMOUNT","tab","setState","getTitleFromTab","forceUpdate","onTab","onTabClicked","onClearAllFilters","event","FOCUS","onFocus","onBlur","onHide","onResize","session","onSessionClose","params","onSessionOpen","onBeforeShow","onShow","onTabBlur","onTabFocus","newTitle","root","getRootFromContainer","config","getComponentConfigFromContainer","renameComponent","error","cloneConfig","cloneComponent","CLONED","order","group","groups","high","action","medium","render","children","className","renderTabTooltip","errorMessage","isLoaded","isLoading","glTab","createPortal","getAdditionActions","placement","element","undefined"],"mappings":"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","sourcesContent":["import React, {\n Component,\n FocusEvent,\n FocusEventHandler,\n PureComponent,\n ReactElement,\n ReactNode,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport {\n ContextAction,\n ContextActions,\n LoadingOverlay,\n Tooltip,\n} from '@deephaven/components';\nimport { LayoutUtils, PanelEvent } from '@deephaven/dashboard';\nimport {\n Container,\n EventEmitter,\n ReactComponentConfig,\n Tab,\n} from '@deephaven/golden-layout';\nimport { assertNotNull } from '@deephaven/utils';\nimport Log from '@deephaven/log';\nimport { IdeSession } from '@deephaven/jsapi-shim';\nimport { ConsoleEvent, InputFilterEvent, TabEvent } from '../events';\nimport PanelContextMenu from './PanelContextMenu';\nimport RenameDialog from './RenameDialog';\n\nconst log = Log.module('Panel');\n\ninterface PanelProps {\n componentPanel: Component;\n children: ReactNode;\n glContainer: Container;\n glEventHub: EventEmitter;\n className: string;\n onFocus: FocusEventHandler<HTMLDivElement>;\n onBlur: FocusEventHandler<HTMLDivElement>;\n onTab: (tab: Tab) => void;\n onTabClicked: (...args: unknown[]) => void;\n onClearAllFilters: (...args: unknown[]) => void;\n onHide: (...args: unknown[]) => void;\n onResize: (...args: unknown[]) => void;\n onSessionClose: (session: IdeSession) => void;\n onSessionOpen: (\n session: IdeSession,\n { language, sessionId }: { language: string; sessionId: string }\n ) => void;\n onBeforeShow: (...args: unknown[]) => void;\n onShow: (...args: unknown[]) => void;\n onTabBlur: (...args: unknown[]) => void;\n onTabFocus: (...args: unknown[]) => void;\n renderTabTooltip: () => ReactNode;\n additionalActions: ContextAction[];\n errorMessage: string;\n isLoading: boolean;\n isLoaded: boolean;\n isClonable: boolean;\n isRenamable: boolean;\n}\n\ninterface PanelState {\n title?: string | null;\n showRenameDialog: boolean;\n}\n/**\n * Generic panel component that emits mount/unmount/focus events.\n * Also wires up some triggers for common events:\n * Focus, Resize, Show, Session open/close, client disconnect/reconnect.\n */\nclass Panel extends PureComponent<PanelProps, PanelState> {\n static defaultProps = {\n className: '',\n onTab: (): void => undefined,\n onTabClicked: (): void => undefined,\n onClearAllFilters: (): void => undefined,\n onFocus: (): void => undefined,\n onBlur: (): void => undefined,\n onHide: (): void => undefined,\n onResize: (): void => undefined,\n onSessionClose: (): void => undefined,\n onSessionOpen: (): void => undefined,\n onBeforeShow: (): void => undefined,\n onShow: (): void => undefined,\n onTabBlur: (): void => undefined,\n onTabFocus: (): void => undefined,\n renderTabTooltip: null,\n additionalActions: [],\n errorMessage: null,\n isLoading: false,\n isLoaded: true,\n isClonable: false,\n isRenamable: false,\n };\n\n constructor(props: PanelProps) {\n super(props);\n\n this.handleClearAllFilters = this.handleClearAllFilters.bind(this);\n this.handleCopyPanel = this.handleCopyPanel.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleHide = this.handleHide.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleBeforeShow = this.handleBeforeShow.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleTabBlur = this.handleTabBlur.bind(this);\n this.handleTabFocus = this.handleTabFocus.bind(this);\n this.handleRenameCancel = this.handleRenameCancel.bind(this);\n this.handleRenameSubmit = this.handleRenameSubmit.bind(this);\n this.handleShowRenameDialog = this.handleShowRenameDialog.bind(this);\n this.handleTabClicked = this.handleTabClicked.bind(this);\n this.handleTab = this.handleTab.bind(this);\n\n const { glContainer } = this.props;\n this.state = {\n title: LayoutUtils.getTitleFromContainer(glContainer),\n showRenameDialog: false,\n };\n }\n\n componentDidMount(): void {\n const { componentPanel, glContainer, glEventHub } = this.props;\n\n glContainer.on('resize', this.handleResize);\n glContainer.on('show', this.handleBeforeShow);\n glContainer.on('shown', this.handleShow);\n glContainer.on('hide', this.handleHide);\n glContainer.on('tab', this.handleTab);\n glContainer.on('tabClicked', this.handleTabClicked);\n glEventHub.on(ConsoleEvent.SESSION_CLOSED, this.handleSessionClosed);\n glEventHub.on(ConsoleEvent.SESSION_OPENED, this.handleSessionOpened);\n glEventHub.on(TabEvent.focus, this.handleTabFocus);\n glEventHub.on(TabEvent.blur, this.handleTabBlur);\n glEventHub.on(\n InputFilterEvent.CLEAR_ALL_FILTERS,\n this.handleClearAllFilters\n );\n\n glEventHub.emit(PanelEvent.MOUNT, componentPanel);\n }\n\n componentWillUnmount(): void {\n const { componentPanel, glContainer, glEventHub } = this.props;\n\n glContainer.off('resize', this.handleResize);\n glContainer.off('show', this.handleBeforeShow);\n glContainer.off('shown', this.handleShow);\n glContainer.off('hide', this.handleHide);\n glContainer.off('tab', this.handleTab);\n glContainer.off('tabClicked', this.handleTabClicked);\n glEventHub.off(ConsoleEvent.SESSION_CLOSED, this.handleSessionClosed);\n glEventHub.off(ConsoleEvent.SESSION_OPENED, this.handleSessionOpened);\n glEventHub.off(TabEvent.focus, this.handleTabFocus);\n glEventHub.off(TabEvent.blur, this.handleTabBlur);\n glEventHub.off(\n InputFilterEvent.CLEAR_ALL_FILTERS,\n this.handleClearAllFilters\n );\n\n glEventHub.emit(PanelEvent.UNMOUNT, componentPanel);\n }\n\n handleTab(tab: Tab): void {\n if (tab) {\n this.setState({\n title: LayoutUtils.getTitleFromTab(tab),\n });\n }\n // render after move can happen before tab event, glTab could be null\n // when tab event is emitted, force a render update\n this.forceUpdate();\n\n const { onTab } = this.props;\n onTab(tab);\n }\n\n handleTabClicked(...args: unknown[]): void {\n const { onTabClicked } = this.props;\n onTabClicked(...args);\n }\n\n handleClearAllFilters(...args: unknown[]): void {\n const { onClearAllFilters } = this.props;\n onClearAllFilters(...args);\n }\n\n handleFocus(event: FocusEvent<HTMLDivElement>): void {\n const { componentPanel, glEventHub } = this.props;\n glEventHub.emit(PanelEvent.FOCUS, componentPanel);\n\n const { onFocus } = this.props;\n onFocus(event);\n }\n\n handleBlur(event: FocusEvent<HTMLDivElement>): void {\n const { onBlur } = this.props;\n onBlur(event);\n }\n\n handleHide(...args: unknown[]): void {\n const { onHide } = this.props;\n onHide(...args);\n }\n\n handleResize(...args: unknown[]): void {\n const { onResize } = this.props;\n onResize(...args);\n }\n\n handleSessionClosed(session: IdeSession): void {\n const { onSessionClose } = this.props;\n onSessionClose(session);\n }\n\n handleSessionOpened(\n session: IdeSession,\n params: { language: string; sessionId: string }\n ): void {\n const { onSessionOpen } = this.props;\n onSessionOpen(session, params);\n }\n\n handleBeforeShow(...args: unknown[]): void {\n const { onBeforeShow } = this.props;\n onBeforeShow(...args);\n }\n\n handleShow(...args: unknown[]): void {\n const { onShow } = this.props;\n onShow(...args);\n }\n\n handleTabBlur(...args: unknown[]): void {\n const { onTabBlur } = this.props;\n onTabBlur(...args);\n }\n\n handleTabFocus(...args: unknown[]): void {\n const { onTabFocus } = this.props;\n onTabFocus(...args);\n }\n\n handleRenameCancel(): void {\n this.setState({ showRenameDialog: false });\n }\n\n handleShowRenameDialog(): void {\n this.setState({ showRenameDialog: true });\n }\n\n handleRenameSubmit(newTitle: string): void {\n const { glContainer } = this.props;\n this.setState({ showRenameDialog: false, title: newTitle });\n const root = LayoutUtils.getRootFromContainer(glContainer);\n const config = LayoutUtils.getComponentConfigFromContainer(glContainer);\n assertNotNull(config);\n LayoutUtils.renameComponent(root, config, newTitle);\n }\n\n handleCopyPanel(): void {\n const { glContainer, glEventHub } = this.props;\n const root = LayoutUtils.getRootFromContainer(glContainer);\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 cloneConfig = LayoutUtils.cloneComponent(\n root,\n config as ReactComponentConfig\n );\n if (cloneConfig !== null) {\n glEventHub.emit(PanelEvent.CLONED, this, cloneConfig);\n }\n }\n\n getCloneAction(): ContextAction {\n return {\n title: 'Copy Panel',\n order: 10,\n group: ContextActions.groups.high,\n action: this.handleCopyPanel,\n };\n }\n\n getRenameAction(): ContextAction {\n return {\n title: 'Rename',\n order: 10,\n group: ContextActions.groups.medium,\n action: this.handleShowRenameDialog,\n };\n }\n\n getAdditionActions = memoize((actions, isClonable, isRenamable) => {\n const additionalActions = [];\n if (isClonable) {\n additionalActions.push(this.getCloneAction());\n }\n if (isRenamable) {\n additionalActions.push(this.getRenameAction());\n }\n return [...additionalActions, ...actions];\n });\n\n render(): ReactElement {\n const {\n children,\n className,\n renderTabTooltip,\n glContainer,\n additionalActions,\n errorMessage,\n isLoaded,\n isLoading,\n isClonable,\n isRenamable,\n } = this.props;\n const { tab: glTab } = glContainer;\n const { showRenameDialog, title } = this.state;\n\n return (\n <div\n className={classNames('h-100 w-100 iris-panel', className)}\n onFocusCapture={this.handleFocus}\n onBlurCapture={this.handleBlur}\n >\n {children}\n <LoadingOverlay\n errorMessage={errorMessage}\n isLoaded={isLoaded}\n isLoading={isLoading}\n />\n {glTab &&\n ReactDOM.createPortal(\n <>\n <PanelContextMenu\n glContainer={glContainer}\n additionalActions={this.getAdditionActions(\n additionalActions,\n isClonable,\n isRenamable\n )}\n />\n {isRenamable && (\n <RenameDialog\n isShown={showRenameDialog}\n value={title}\n itemType=\"Panel\"\n onCancel={this.handleRenameCancel}\n onSubmit={this.handleRenameSubmit}\n />\n )}\n {renderTabTooltip && (\n <Tooltip\n interactive\n options={{\n placement: 'bottom',\n }}\n popperClassName=\"panel-tab-popper\"\n >\n {renderTabTooltip()}\n </Tooltip>\n )}\n </>,\n glTab.element[0] // tab.element is jquery element, we want a dom element\n )}\n </div>\n );\n }\n}\n\nexport default Panel;\n"],"file":"Panel.js"}
@@ -1,37 +1,22 @@
1
- export default PanelContextMenu;
2
- declare class PanelContextMenu extends React.PureComponent<any, any, any> {
3
- constructor(props: any);
1
+ import { PureComponent, ReactElement } from 'react';
2
+ import { ContextAction } from '@deephaven/components';
3
+ import { Container, Tab } from '@deephaven/golden-layout';
4
+ interface PanelContextMenuProps {
5
+ additionalActions: ContextAction[];
6
+ glContainer: Container;
7
+ }
8
+ declare class PanelContextMenu extends PureComponent<PanelContextMenuProps, Record<string, never>> {
9
+ static defaultProps: {
10
+ additionalActions: never[];
11
+ };
12
+ constructor(props: PanelContextMenuProps);
13
+ getAllTabs(): Tab[];
4
14
  handleCloseTab(): void;
5
- handleCloseTabsRight(): void;
6
15
  handleCloseTabsAll(): void;
7
- getAllTabs(): any[];
16
+ handleCloseTabsRight(): void;
8
17
  canCloseTabsRight(): boolean;
9
18
  canCloseAny(): boolean;
19
+ render(): ReactElement;
10
20
  }
11
- declare namespace PanelContextMenu {
12
- namespace propTypes {
13
- const additionalActions: PropTypes.Requireable<any[] | ((...args: any[]) => any)>;
14
- const glContainer: PropTypes.Validator<PropTypes.InferProps<{
15
- on: PropTypes.Requireable<(...args: any[]) => any>;
16
- off: PropTypes.Requireable<(...args: any[]) => any>;
17
- isHidden: PropTypes.Requireable<boolean>;
18
- tab: PropTypes.Requireable<PropTypes.InferProps<{
19
- header: PropTypes.Requireable<PropTypes.InferProps<{
20
- tabs: PropTypes.Requireable<(PropTypes.InferProps<{
21
- contentItem: PropTypes.Requireable<PropTypes.InferProps<{}>>;
22
- }> | null | undefined)[]>;
23
- }>>;
24
- }>>;
25
- title: PropTypes.Requireable<string>;
26
- setTitle: PropTypes.Requireable<(...args: any[]) => any>;
27
- close: PropTypes.Requireable<(...args: any[]) => any>;
28
- }>>;
29
- }
30
- namespace defaultProps {
31
- const additionalActions_1: never[];
32
- export { additionalActions_1 as additionalActions };
33
- }
34
- }
35
- import React from "react";
36
- import PropTypes from "prop-types";
21
+ export default PanelContextMenu;
37
22
  //# sourceMappingURL=PanelContextMenu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PanelContextMenu.d.ts","sourceRoot":"","sources":["../../src/panels/PanelContextMenu.jsx"],"names":[],"mappings":";AAKA;IACE,wBAMC;IAQD,uBAGC;IAUD,6BAeC;IAvBD,2BAMC;IAjBD,oBAIC;IAgCD,6BAkBC;IAED,uBAWC;CAkCF"}
1
+ {"version":3,"file":"PanelContextMenu.d.ts","sourceRoot":"","sources":["../../src/panels/PanelContextMenu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAkB,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAE1D,UAAU,qBAAqB;IAC7B,iBAAiB,EAAE,aAAa,EAAE,CAAC;IACnC,WAAW,EAAE,SAAS,CAAC;CACxB;AAOD,cAAM,gBAAiB,SAAQ,aAAa,CAC1C,qBAAqB,EACrB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CACtB;IACC,MAAM,CAAC,YAAY;;MAEjB;gBAEU,KAAK,EAAE,qBAAqB;IAQxC,UAAU,IAAI,GAAG,EAAE;IAMnB,cAAc,IAAI,IAAI;IAKtB,kBAAkB,IAAI,IAAI;IAU1B,oBAAoB,IAAI,IAAI;IAiB5B,iBAAiB,IAAI,OAAO;IAoB5B,WAAW,IAAI,OAAO;IAatB,MAAM,IAAI,YAAY;CAkCvB;AAED,eAAe,gBAAgB,CAAC"}
@@ -1,7 +1,7 @@
1
+ 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; }
2
+
1
3
  import React, { PureComponent } from 'react';
2
- import PropTypes from 'prop-types';
3
4
  import { ContextActions } from '@deephaven/components';
4
- import { GLPropTypes } from '@deephaven/dashboard';
5
5
 
6
6
  class PanelContextMenu extends PureComponent {
7
7
  constructor(props) {
@@ -33,9 +33,9 @@ class PanelContextMenu extends PureComponent {
33
33
  // false when attempting to close tabs that you can't
34
34
 
35
35
  tabs.forEach(tab => {
36
- var _tab$contentItem, _tab$contentItem$cont;
36
+ var _container;
37
37
 
38
- return tab === null || tab === void 0 ? void 0 : (_tab$contentItem = tab.contentItem) === null || _tab$contentItem === void 0 ? void 0 : (_tab$contentItem$cont = _tab$contentItem.container) === null || _tab$contentItem$cont === void 0 ? void 0 : _tab$contentItem$cont.close();
38
+ return (_container = (tab === null || tab === void 0 ? void 0 : tab.contentItem).container) === null || _container === void 0 ? void 0 : _container.close();
39
39
  });
40
40
  }
41
41
 
@@ -46,14 +46,14 @@ class PanelContextMenu extends PureComponent {
46
46
  var tabs = this.getAllTabs();
47
47
 
48
48
  for (var i = tabs.length - 1; i > 0; i -= 1) {
49
- var _tabs$i$contentItem, _tabs$i$contentItem$c, _glContainer$tab2, _glContainer$tab2$con, _glContainer$tab2$con2, _tabs$i, _tabs$i$contentItem2, _tabs$i$contentItem2$;
49
+ var _tabs$i$contentItem, _tabs$i$contentItem$c, _glContainer$tab2, _glContainer$tab2$con, _glContainer$tab2$con2, _container2, _tabs$i;
50
50
 
51
51
  if (((_tabs$i$contentItem = tabs[i].contentItem) === null || _tabs$i$contentItem === void 0 ? void 0 : (_tabs$i$contentItem$c = _tabs$i$contentItem.config) === null || _tabs$i$contentItem$c === void 0 ? void 0 : _tabs$i$contentItem$c.id) === ((_glContainer$tab2 = glContainer.tab) === null || _glContainer$tab2 === void 0 ? void 0 : (_glContainer$tab2$con = _glContainer$tab2.contentItem) === null || _glContainer$tab2$con === void 0 ? void 0 : (_glContainer$tab2$con2 = _glContainer$tab2$con.config) === null || _glContainer$tab2$con2 === void 0 ? void 0 : _glContainer$tab2$con2.id)) {
52
52
  break; // end when we get back to current id
53
53
  } // eslint-disable-next-line no-unused-expressions
54
54
 
55
55
 
56
- (_tabs$i = tabs[i]) === null || _tabs$i === void 0 ? void 0 : (_tabs$i$contentItem2 = _tabs$i.contentItem) === null || _tabs$i$contentItem2 === void 0 ? void 0 : (_tabs$i$contentItem2$ = _tabs$i$contentItem2.container) === null || _tabs$i$contentItem2$ === void 0 ? void 0 : _tabs$i$contentItem2$.close();
56
+ (_container2 = ((_tabs$i = tabs[i]) === null || _tabs$i === void 0 ? void 0 : _tabs$i.contentItem).container) === null || _container2 === void 0 ? void 0 : _container2.close();
57
57
  }
58
58
  }
59
59
 
@@ -65,9 +65,9 @@ class PanelContextMenu extends PureComponent {
65
65
  var disabled = true;
66
66
 
67
67
  for (var i = tabs.length - 1; i > 0; i -= 1) {
68
- var _tabs$i$contentItem3, _tabs$i$contentItem3$, _glContainer$tab3, _glContainer$tab3$con, _glContainer$tab3$con2, _tabs$i2, _tabs$i2$contentItem, _tabs$i2$contentItem$;
68
+ var _tabs$i$contentItem2, _tabs$i$contentItem2$, _glContainer$tab3, _glContainer$tab3$con, _glContainer$tab3$con2, _tabs$i2, _tabs$i2$contentItem, _tabs$i2$contentItem$;
69
69
 
70
- if (((_tabs$i$contentItem3 = tabs[i].contentItem) === null || _tabs$i$contentItem3 === void 0 ? void 0 : (_tabs$i$contentItem3$ = _tabs$i$contentItem3.config) === null || _tabs$i$contentItem3$ === void 0 ? void 0 : _tabs$i$contentItem3$.id) === ((_glContainer$tab3 = glContainer.tab) === null || _glContainer$tab3 === void 0 ? void 0 : (_glContainer$tab3$con = _glContainer$tab3.contentItem) === null || _glContainer$tab3$con === void 0 ? void 0 : (_glContainer$tab3$con2 = _glContainer$tab3$con.config) === null || _glContainer$tab3$con2 === void 0 ? void 0 : _glContainer$tab3$con2.id)) {
70
+ if (((_tabs$i$contentItem2 = tabs[i].contentItem) === null || _tabs$i$contentItem2 === void 0 ? void 0 : (_tabs$i$contentItem2$ = _tabs$i$contentItem2.config) === null || _tabs$i$contentItem2$ === void 0 ? void 0 : _tabs$i$contentItem2$.id) === ((_glContainer$tab3 = glContainer.tab) === null || _glContainer$tab3 === void 0 ? void 0 : (_glContainer$tab3$con = _glContainer$tab3.contentItem) === null || _glContainer$tab3$con === void 0 ? void 0 : (_glContainer$tab3$con2 = _glContainer$tab3$con.config) === null || _glContainer$tab3$con2 === void 0 ? void 0 : _glContainer$tab3$con2.id)) {
71
71
  break; // end when we get back to current id
72
72
  }
73
73
 
@@ -103,7 +103,7 @@ class PanelContextMenu extends PureComponent {
103
103
  additionalActions,
104
104
  glContainer
105
105
  } = this.props;
106
- var contextActions = [].concat(additionalActions);
106
+ var contextActions = [...additionalActions];
107
107
  contextActions.push({
108
108
  title: 'Close',
109
109
  order: 10,
@@ -133,12 +133,9 @@ class PanelContextMenu extends PureComponent {
133
133
 
134
134
  }
135
135
 
136
- PanelContextMenu.propTypes = {
137
- additionalActions: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),
138
- glContainer: GLPropTypes.Container.isRequired
139
- };
140
- PanelContextMenu.defaultProps = {
136
+ _defineProperty(PanelContextMenu, "defaultProps", {
141
137
  additionalActions: []
142
- };
138
+ });
139
+
143
140
  export default PanelContextMenu;
144
141
  //# sourceMappingURL=PanelContextMenu.js.map