@deephaven/dashboard-core-plugins 1.18.2 → 1.19.1-console-types-fixes.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,50 @@
1
+ import { type dh } from '@deephaven/jsapi-types';
2
+ /**
3
+ * Represents a Core (Community) console session. Mirrors the
4
+ * `CommonConsoleSession` interface used in Enterprise (without the
5
+ * Enterprise-only `QueryInfo` field).
6
+ */
7
+ export interface CoreConsoleSession {
8
+ language: string;
9
+ session: dh.IdeSession;
10
+ sessionId: string;
11
+ /** Function closing the console session and client connection */
12
+ close: () => void;
13
+ }
14
+ /**
15
+ * Listen for session opened events
16
+ * @param eventEmitter The event emitter to listen on
17
+ * @param session The session that was opened
18
+ */
19
+ export declare const listenForSessionOpened: import("@deephaven/golden-layout").EventListenFunction<[session: CoreConsoleSession]>;
20
+ /**
21
+ * Emit a session opened event
22
+ * @param eventEmitter The event emitter to emit the event on
23
+ * @param session The session that was opened
24
+ */
25
+ export declare const emitSessionOpened: import("@deephaven/golden-layout").EventEmitFunction<[session: CoreConsoleSession]>;
26
+ /**
27
+ * Use a session opened event listener
28
+ * @param eventEmitter The event emitter to listen on
29
+ * @param session The session that was opened
30
+ */
31
+ export declare const useSessionOpenedListener: import("@deephaven/golden-layout").EventListenerHook<[session: CoreConsoleSession]>;
32
+ /**
33
+ * Listen for session closed events
34
+ * @param eventEmitter The event emitter to listen on
35
+ * @param session The session that was closed
36
+ */
37
+ export declare const listenForSessionClosed: import("@deephaven/golden-layout").EventListenFunction<[session: dh.IdeSession]>;
38
+ /**
39
+ * Emit a session closed event
40
+ * @param eventEmitter The event emitter to emit the event on
41
+ * @param session The session that was closed
42
+ */
43
+ export declare const emitSessionClosed: import("@deephaven/golden-layout").EventEmitFunction<[session: dh.IdeSession]>;
44
+ /**
45
+ * Use a session closed event listener
46
+ * @param eventEmitter The event emitter to listen on
47
+ * @param session The session that was closed
48
+ */
49
+ export declare const useSessionClosedListener: import("@deephaven/golden-layout").EventListenerHook<[session: dh.IdeSession]>;
50
+ //# sourceMappingURL=ConsoleEvents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsoleEvents.d.ts","sourceRoot":"","sources":["../src/ConsoleEvents.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAGjD;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAMD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,uFAA0B,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,qFAAwB,CAAC;AAEvD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,qFAA+B,CAAC;AAMrE;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,kFAA0B,CAAC;AAE9D;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,gFAAwB,CAAC;AAEvD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,gFAA+B,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { makeEventFunctions } from '@deephaven/golden-layout';
2
+ import { ConsoleEvent } from "./events/index.js";
3
+ /**
4
+ * Represents a Core (Community) console session. Mirrors the
5
+ * `CommonConsoleSession` interface used in Enterprise (without the
6
+ * Enterprise-only `QueryInfo` field).
7
+ */
8
+ var sessionOpenedFns = makeEventFunctions(ConsoleEvent.SESSION_OPENED);
9
+
10
+ /**
11
+ * Listen for session opened events
12
+ * @param eventEmitter The event emitter to listen on
13
+ * @param session The session that was opened
14
+ */
15
+ export var listenForSessionOpened = sessionOpenedFns.listen;
16
+
17
+ /**
18
+ * Emit a session opened event
19
+ * @param eventEmitter The event emitter to emit the event on
20
+ * @param session The session that was opened
21
+ */
22
+ export var emitSessionOpened = sessionOpenedFns.emit;
23
+
24
+ /**
25
+ * Use a session opened event listener
26
+ * @param eventEmitter The event emitter to listen on
27
+ * @param session The session that was opened
28
+ */
29
+ export var useSessionOpenedListener = sessionOpenedFns.useListener;
30
+ var sessionClosedFns = makeEventFunctions(ConsoleEvent.SESSION_CLOSED);
31
+
32
+ /**
33
+ * Listen for session closed events
34
+ * @param eventEmitter The event emitter to listen on
35
+ * @param session The session that was closed
36
+ */
37
+ export var listenForSessionClosed = sessionClosedFns.listen;
38
+
39
+ /**
40
+ * Emit a session closed event
41
+ * @param eventEmitter The event emitter to emit the event on
42
+ * @param session The session that was closed
43
+ */
44
+ export var emitSessionClosed = sessionClosedFns.emit;
45
+
46
+ /**
47
+ * Use a session closed event listener
48
+ * @param eventEmitter The event emitter to listen on
49
+ * @param session The session that was closed
50
+ */
51
+ export var useSessionClosedListener = sessionClosedFns.useListener;
52
+ //# sourceMappingURL=ConsoleEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsoleEvents.js","names":["makeEventFunctions","ConsoleEvent","sessionOpenedFns","SESSION_OPENED","listenForSessionOpened","listen","emitSessionOpened","emit","useSessionOpenedListener","useListener","sessionClosedFns","SESSION_CLOSED","listenForSessionClosed","emitSessionClosed","useSessionClosedListener"],"sources":["../src/ConsoleEvents.ts"],"sourcesContent":["import { makeEventFunctions } from '@deephaven/golden-layout';\nimport { type dh } from '@deephaven/jsapi-types';\nimport { ConsoleEvent } from './events';\n\n/**\n * Represents a Core (Community) console session. Mirrors the\n * `CommonConsoleSession` interface used in Enterprise (without the\n * Enterprise-only `QueryInfo` field).\n */\nexport interface CoreConsoleSession {\n language: string;\n session: dh.IdeSession;\n sessionId: string;\n /** Function closing the console session and client connection */\n close: () => void;\n}\n\nconst sessionOpenedFns = makeEventFunctions<[session: CoreConsoleSession]>(\n ConsoleEvent.SESSION_OPENED\n);\n\n/**\n * Listen for session opened events\n * @param eventEmitter The event emitter to listen on\n * @param session The session that was opened\n */\nexport const listenForSessionOpened = sessionOpenedFns.listen;\n\n/**\n * Emit a session opened event\n * @param eventEmitter The event emitter to emit the event on\n * @param session The session that was opened\n */\nexport const emitSessionOpened = sessionOpenedFns.emit;\n\n/**\n * Use a session opened event listener\n * @param eventEmitter The event emitter to listen on\n * @param session The session that was opened\n */\nexport const useSessionOpenedListener = sessionOpenedFns.useListener;\n\nconst sessionClosedFns = makeEventFunctions<[session: dh.IdeSession]>(\n ConsoleEvent.SESSION_CLOSED\n);\n\n/**\n * Listen for session closed events\n * @param eventEmitter The event emitter to listen on\n * @param session The session that was closed\n */\nexport const listenForSessionClosed = sessionClosedFns.listen;\n\n/**\n * Emit a session closed event\n * @param eventEmitter The event emitter to emit the event on\n * @param session The session that was closed\n */\nexport const emitSessionClosed = sessionClosedFns.emit;\n\n/**\n * Use a session closed event listener\n * @param eventEmitter The event emitter to listen on\n * @param session The session that was closed\n */\nexport const useSessionClosedListener = sessionClosedFns.useListener;\n"],"mappings":"AAAA,SAASA,kBAAkB,QAAQ,0BAA0B;AAAC,SAErDC,YAAY;AAErB;AACA;AACA;AACA;AACA;AASA,IAAMC,gBAAgB,GAAGF,kBAAkB,CACzCC,YAAY,CAACE,cACf,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,sBAAsB,GAAGF,gBAAgB,CAACG,MAAM;;AAE7D;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,iBAAiB,GAAGJ,gBAAgB,CAACK,IAAI;;AAEtD;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,wBAAwB,GAAGN,gBAAgB,CAACO,WAAW;AAEpE,IAAMC,gBAAgB,GAAGV,kBAAkB,CACzCC,YAAY,CAACU,cACf,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,sBAAsB,GAAGF,gBAAgB,CAACL,MAAM;;AAE7D;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMQ,iBAAiB,GAAGH,gBAAgB,CAACH,IAAI;;AAEtD;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMO,wBAAwB,GAAGJ,gBAAgB,CAACD,WAAW","ignoreList":[]}
@@ -8,6 +8,10 @@ export declare function WrapWidgetPlugin(plugin: WidgetPlugin): React.ForwardRef
8
8
  * Does not open panels for widgets that are not supported by any plugins.
9
9
  * Does not open panels for widgets that are a component of a larger widget or UI element.
10
10
  *
11
+ * Supports plugin chaining via middleware plugins. When multiple plugins
12
+ * support the same widget type, middleware plugins are chained around
13
+ * the base plugin in registration order.
14
+ *
11
15
  * @param props Dashboard plugin props
12
16
  * @returns React element
13
17
  */
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetLoaderPlugin.d.ts","sourceRoot":"","sources":["../src/WidgetLoaderPlugin.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,6BAA6B,EAIlC,KAAK,UAAU,EAGhB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAM3B,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,GACnB,KAAK,CAAC,yBAAyB,CAAC,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CA2C5E;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,CAAC,6BAA6B,CAAC,GAC5C,GAAG,CAAC,OAAO,GAAG,IAAI,CAqFpB;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"WidgetLoaderPlugin.d.ts","sourceRoot":"","sources":["../src/WidgetLoaderPlugin.tsx"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,6BAA6B,EAIlC,KAAK,UAAU,EAGhB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAML,KAAK,YAAY,EAElB,MAAM,mBAAmB,CAAC;AAgB3B,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,GACnB,KAAK,CAAC,yBAAyB,CAAC,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CA2C5E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,CAAC,6BAA6B,CAAC,GAC5C,GAAG,CAAC,OAAO,GAAG,IAAI,CAgNpB;AAED,eAAe,kBAAkB,CAAC"}
@@ -7,10 +7,15 @@ import { useMemo, useCallback, useEffect, forwardRef } from 'react';
7
7
  import { nanoid } from 'nanoid';
8
8
  import { assertIsDashboardPluginProps, LayoutUtils, canHaveRef, usePanelOpenListener } from '@deephaven/dashboard';
9
9
  import Log from '@deephaven/log';
10
- import { isWidgetPlugin, usePlugins } from '@deephaven/plugin';
10
+ import { isWidgetPlugin, isWidgetMiddlewarePlugin, createChainedComponent, createChainedPanelComponent, usePlugins } from '@deephaven/plugin';
11
11
  import { WidgetPanel } from "./panels/index.js";
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
13
  var log = Log.module('WidgetLoaderPlugin');
14
+
15
+ /**
16
+ * Information about a widget type including its base plugin and any middleware.
17
+ */
18
+
14
19
  export function WrapWidgetPlugin(plugin) {
15
20
  var _plugin$component$dis;
16
21
  function Wrapper(props, ref) {
@@ -51,28 +56,76 @@ export function WrapWidgetPlugin(plugin) {
51
56
  * Does not open panels for widgets that are not supported by any plugins.
52
57
  * Does not open panels for widgets that are a component of a larger widget or UI element.
53
58
  *
59
+ * Supports plugin chaining via middleware plugins. When multiple plugins
60
+ * support the same widget type, middleware plugins are chained around
61
+ * the base plugin in registration order.
62
+ *
54
63
  * @param props Dashboard plugin props
55
64
  * @returns React element
56
65
  */
57
66
  export function WidgetLoaderPlugin(props) {
58
67
  var plugins = usePlugins();
68
+
69
+ /**
70
+ * Build a map of widget types to their plugin chain info.
71
+ * For each type, we have a base plugin and a list of middleware to apply.
72
+ */
59
73
  var supportedTypes = useMemo(() => {
60
74
  var typeMap = new Map();
61
75
  plugins.forEach(plugin => {
62
- if (!isWidgetPlugin(plugin)) {
76
+ var isMiddleware = isWidgetMiddlewarePlugin(plugin);
77
+ if (!isWidgetPlugin(plugin) && !isMiddleware) {
63
78
  return;
64
79
  }
65
80
  [plugin.supportedTypes].flat().forEach(supportedType => {
66
- if (supportedType != null && supportedType !== '') {
67
- if (typeMap.has(supportedType)) {
68
- var _typeMap$get;
69
- log.warn("Multiple WidgetPlugins handling type ".concat(supportedType, ". Replacing ").concat((_typeMap$get = typeMap.get(supportedType)) === null || _typeMap$get === void 0 ? void 0 : _typeMap$get.name, " with ").concat(plugin.name, " to handle ").concat(supportedType));
81
+ if (supportedType == null || supportedType === '') {
82
+ return;
83
+ }
84
+ var existing = typeMap.get(supportedType);
85
+ if (isMiddleware) {
86
+ // Add middleware to existing chain or create pending chain
87
+ if (existing != null) {
88
+ existing.middleware.push(plugin);
89
+ log.debug("Adding middleware ".concat(plugin.name, " to chain for type ").concat(supportedType));
90
+ } else {
91
+ // No base plugin yet, create entry with just middleware
92
+ // The base plugin will be set when a non-middleware plugin is registered
93
+ typeMap.set(supportedType, {
94
+ basePlugin: null,
95
+ middleware: [plugin]
96
+ });
97
+ log.debug("Creating pending middleware chain for type ".concat(supportedType, " with ").concat(plugin.name));
98
+ }
99
+ } else {
100
+ // Non-middleware plugin: becomes the base plugin
101
+ if (existing != null) {
102
+ if (existing.basePlugin != null) {
103
+ // Already have a base plugin, warn about replacement
104
+ log.warn("Multiple WidgetPlugins handling type ".concat(supportedType, ". ") + "Replacing ".concat(existing.basePlugin.name, " with ").concat(plugin.name, " as base plugin"));
105
+ }
106
+ // Keep existing middleware, update the base plugin
107
+ existing.basePlugin = plugin;
108
+ } else {
109
+ typeMap.set(supportedType, {
110
+ basePlugin: plugin,
111
+ middleware: []
112
+ });
70
113
  }
71
- typeMap.set(supportedType, plugin);
114
+ log.debug("Set base plugin ".concat(plugin.name, " for type ").concat(supportedType));
72
115
  }
73
116
  });
74
117
  });
75
- return typeMap;
118
+
119
+ // Filter out entries that only have middleware (no base plugin)
120
+ var validEntries = new Map();
121
+ typeMap.forEach((info, type) => {
122
+ if (info.basePlugin != null) {
123
+ validEntries.set(type, info);
124
+ } else {
125
+ log.warn("No base plugin found for type ".concat(type, ", middleware will not be applied"));
126
+ }
127
+ });
128
+ return validEntries;
76
129
  }, [plugins]);
77
130
  assertIsDashboardPluginProps(props);
78
131
  var {
@@ -91,8 +144,8 @@ export function WidgetLoaderPlugin(props) {
91
144
  var {
92
145
  type
93
146
  } = widget;
94
- var plugin = type != null ? supportedTypes.get(type) : null;
95
- if (plugin == null) {
147
+ var typeInfo = type != null ? supportedTypes.get(type) : null;
148
+ if (typeInfo == null) {
96
149
  return;
97
150
  }
98
151
  var name = (_widget$name = widget.name) !== null && _widget$name !== void 0 ? _widget$name : type;
@@ -103,7 +156,7 @@ export function WidgetLoaderPlugin(props) {
103
156
  };
104
157
  var config = {
105
158
  type: 'react-component',
106
- component: plugin.name,
159
+ component: typeInfo.basePlugin.name,
107
160
  props: panelProps,
108
161
  title: name,
109
162
  id: panelId
@@ -118,14 +171,62 @@ export function WidgetLoaderPlugin(props) {
118
171
  });
119
172
  }, [id, layout, supportedTypes]);
120
173
  useEffect(() => {
121
- var deregisterFns = [...new Set(supportedTypes.values())].map(plugin => {
174
+ // Get unique base plugins (a plugin may handle multiple types)
175
+ // supportedTypes is already filtered to entries with non-null basePlugin
176
+
177
+ var uniquePluginInfos = new Map();
178
+ supportedTypes.forEach((info, _type) => {
179
+ // Use the base plugin name as the key to get unique plugins
180
+ if (!uniquePluginInfos.has(info.basePlugin.name)) {
181
+ // Clone to avoid mutating the useMemo result
182
+ uniquePluginInfos.set(info.basePlugin.name, {
183
+ basePlugin: info.basePlugin,
184
+ middleware: [...info.middleware]
185
+ });
186
+ } else {
187
+ // Merge middleware from multiple type registrations for the same base plugin
188
+ var existingInfo = uniquePluginInfos.get(info.basePlugin.name);
189
+ if (existingInfo != null) {
190
+ info.middleware.forEach(m => {
191
+ if (!existingInfo.middleware.includes(m)) {
192
+ existingInfo.middleware.push(m);
193
+ }
194
+ });
195
+ }
196
+ }
197
+ });
198
+ log.debug('Registering widget components', [...uniquePluginInfos.entries()].map(_ref2 => {
199
+ var [name, info] = _ref2;
200
+ return {
201
+ plugin: name,
202
+ middleware: info.middleware.map(m => m.name),
203
+ hasPanel: info.basePlugin.panelComponent != null
204
+ };
205
+ }));
206
+ var deregisterFns = [...uniquePluginInfos.values()].map(_ref3 => {
207
+ var {
208
+ basePlugin,
209
+ middleware
210
+ } = _ref3;
122
211
  var {
123
212
  panelComponent
124
- } = plugin;
213
+ } = basePlugin;
125
214
  if (panelComponent == null) {
126
- return registerComponent(plugin.name, WrapWidgetPlugin(plugin));
215
+ // No panel component - chain the widget components and wrap in default panel
216
+ log.debug("Chaining widget components for ".concat(basePlugin.name, " (no panel component, using default wrapper)"));
217
+ var chainedComponent = createChainedComponent(basePlugin.component, middleware);
218
+ var wrappedPlugin = _objectSpread(_objectSpread({}, basePlugin), {}, {
219
+ component: chainedComponent
220
+ });
221
+ return registerComponent(basePlugin.name, WrapWidgetPlugin(wrappedPlugin));
127
222
  }
128
- return registerComponent(plugin.name, panelComponent);
223
+
224
+ // Has panel component - chain middleware around the panel.
225
+ // Only middleware that defines panelComponent is applied here.
226
+ // Middleware with only component is skipped in this path.
227
+ log.debug("Chaining panel components for ".concat(basePlugin.name, " (has custom panel component)"));
228
+ var chainedPanelComponent = createChainedPanelComponent(panelComponent, middleware);
229
+ return registerComponent(basePlugin.name, chainedPanelComponent);
129
230
  });
130
231
  return () => {
131
232
  deregisterFns.forEach(deregister => deregister());
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetLoaderPlugin.js","names":["useMemo","useCallback","useEffect","forwardRef","nanoid","assertIsDashboardPluginProps","LayoutUtils","canHaveRef","usePanelOpenListener","Log","isWidgetPlugin","usePlugins","WidgetPanel","jsx","_jsx","log","module","WrapWidgetPlugin","plugin","_plugin$component$dis","Wrapper","props","ref","_metadata$type","_metadata$name","C","component","metadata","panelDescriptor","_objectSpread","type","name","hasRef","className","concat","descriptor","children","displayName","WidgetLoaderPlugin","plugins","supportedTypes","typeMap","Map","forEach","flat","supportedType","has","_typeMap$get","warn","get","set","id","layout","registerComponent","handlePanelOpen","_ref","_widget$name","dragEvent","panelId","fetch","widget","panelProps","localDashboardId","config","title","root","openComponent","deregisterFns","Set","values","map","panelComponent","deregister","eventHub"],"sources":["../src/WidgetLoaderPlugin.tsx"],"sourcesContent":["import { useMemo, useCallback, useEffect, forwardRef } from 'react';\nimport type { ReactComponentConfig } from '@deephaven/golden-layout';\nimport { nanoid } from 'nanoid';\nimport {\n assertIsDashboardPluginProps,\n type DashboardPluginComponentProps,\n type DehydratedDashboardPanelProps,\n type PanelOpenEventDetail,\n LayoutUtils,\n type PanelProps,\n canHaveRef,\n usePanelOpenListener,\n} from '@deephaven/dashboard';\nimport Log from '@deephaven/log';\nimport {\n isWidgetPlugin,\n usePlugins,\n type WidgetPlugin,\n} from '@deephaven/plugin';\nimport { WidgetPanel } from './panels';\nimport { type WidgetPanelDescriptor } from './panels/WidgetPanelTypes';\n\nconst log = Log.module('WidgetLoaderPlugin');\n\nexport function WrapWidgetPlugin(\n plugin: WidgetPlugin\n): React.ForwardRefExoticComponent<PanelProps & React.RefAttributes<unknown>> {\n function Wrapper(props: PanelProps, ref: React.ForwardedRef<unknown>) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const C = plugin.component as any;\n const { metadata } = props;\n\n const panelDescriptor: WidgetPanelDescriptor = {\n ...metadata,\n type: metadata?.type ?? plugin.type,\n name: metadata?.name ?? 'Widget',\n };\n\n const hasRef = canHaveRef(C);\n const className = `widget-loader-${panelDescriptor.type}`;\n\n return (\n <WidgetPanel\n descriptor={panelDescriptor}\n className={className}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n >\n {hasRef ? (\n <C\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n ref={ref}\n />\n ) : (\n <C\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n />\n )}\n </WidgetPanel>\n );\n }\n\n Wrapper.displayName = `WidgetLoaderPlugin(${\n plugin.component.displayName ?? plugin.name\n })`;\n\n return forwardRef(Wrapper);\n}\n\n/**\n * Widget to automatically open any supported WidgetPlugin types as panels\n * if the widget is emitted from the server as the result of executed code.\n *\n * Does not open panels for widgets that are not supported by any plugins.\n * Does not open panels for widgets that are a component of a larger widget or UI element.\n *\n * @param props Dashboard plugin props\n * @returns React element\n */\nexport function WidgetLoaderPlugin(\n props: Partial<DashboardPluginComponentProps>\n): JSX.Element | null {\n const plugins = usePlugins();\n const supportedTypes = useMemo(() => {\n const typeMap = new Map<string, WidgetPlugin>();\n plugins.forEach(plugin => {\n if (!isWidgetPlugin(plugin)) {\n return;\n }\n\n [plugin.supportedTypes].flat().forEach(supportedType => {\n if (supportedType != null && supportedType !== '') {\n if (typeMap.has(supportedType)) {\n log.warn(\n `Multiple WidgetPlugins handling type ${supportedType}. Replacing ${typeMap.get(\n supportedType\n )?.name} with ${plugin.name} to handle ${supportedType}`\n );\n }\n typeMap.set(supportedType, plugin);\n }\n });\n });\n\n return typeMap;\n }, [plugins]);\n\n assertIsDashboardPluginProps(props);\n const { id, layout, registerComponent } = props;\n\n const handlePanelOpen = useCallback(\n ({\n dragEvent,\n panelId = nanoid(),\n fetch,\n widget,\n }: PanelOpenEventDetail) => {\n const { type } = widget;\n const plugin = type != null ? supportedTypes.get(type) : null;\n if (plugin == null) {\n return;\n }\n const name = widget.name ?? type;\n\n const panelProps: DehydratedDashboardPanelProps & {\n fetch?: () => Promise<unknown>;\n } = {\n localDashboardId: id,\n metadata: widget,\n fetch,\n };\n\n const config: ReactComponentConfig = {\n type: 'react-component',\n component: plugin.name,\n props: panelProps,\n title: name,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config, dragEvent });\n },\n [id, layout, supportedTypes]\n );\n\n useEffect(() => {\n const deregisterFns = [...new Set(supportedTypes.values())].map(plugin => {\n const { panelComponent } = plugin;\n if (panelComponent == null) {\n return registerComponent(plugin.name, WrapWidgetPlugin(plugin));\n }\n return registerComponent(plugin.name, panelComponent);\n });\n\n return () => {\n deregisterFns.forEach(deregister => deregister());\n };\n }, [registerComponent, supportedTypes]);\n\n /**\n * Listen for panel open events so we know when to open a panel\n */\n usePanelOpenListener(layout.eventHub, handlePanelOpen);\n\n return null;\n}\n\nexport default WidgetLoaderPlugin;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"WidgetLoaderPlugin.js","names":["useMemo","useCallback","useEffect","forwardRef","nanoid","assertIsDashboardPluginProps","LayoutUtils","canHaveRef","usePanelOpenListener","Log","isWidgetPlugin","isWidgetMiddlewarePlugin","createChainedComponent","createChainedPanelComponent","usePlugins","WidgetPanel","jsx","_jsx","log","module","WrapWidgetPlugin","plugin","_plugin$component$dis","Wrapper","props","ref","_metadata$type","_metadata$name","C","component","metadata","panelDescriptor","_objectSpread","type","name","hasRef","className","concat","descriptor","children","displayName","WidgetLoaderPlugin","plugins","supportedTypes","typeMap","Map","forEach","isMiddleware","flat","supportedType","existing","get","middleware","push","debug","set","basePlugin","warn","validEntries","info","id","layout","registerComponent","handlePanelOpen","_ref","_widget$name","dragEvent","panelId","fetch","widget","typeInfo","panelProps","localDashboardId","config","title","root","openComponent","uniquePluginInfos","_type","has","existingInfo","m","includes","entries","map","_ref2","hasPanel","panelComponent","deregisterFns","values","_ref3","chainedComponent","wrappedPlugin","chainedPanelComponent","deregister","eventHub"],"sources":["../src/WidgetLoaderPlugin.tsx"],"sourcesContent":["import { useMemo, useCallback, useEffect, forwardRef } from 'react';\nimport type { ReactComponentConfig } from '@deephaven/golden-layout';\nimport { nanoid } from 'nanoid';\nimport {\n assertIsDashboardPluginProps,\n type DashboardPluginComponentProps,\n type DehydratedDashboardPanelProps,\n type PanelOpenEventDetail,\n LayoutUtils,\n type PanelProps,\n canHaveRef,\n usePanelOpenListener,\n} from '@deephaven/dashboard';\nimport Log from '@deephaven/log';\nimport {\n isWidgetPlugin,\n isWidgetMiddlewarePlugin,\n createChainedComponent,\n createChainedPanelComponent,\n usePlugins,\n type WidgetPlugin,\n type WidgetMiddlewarePlugin,\n} from '@deephaven/plugin';\nimport { WidgetPanel } from './panels';\nimport { type WidgetPanelDescriptor } from './panels/WidgetPanelTypes';\n\nconst log = Log.module('WidgetLoaderPlugin');\n\n/**\n * Information about a widget type including its base plugin and any middleware.\n */\ninterface WidgetTypeInfo {\n /** The base plugin that handles this widget type, or null if only middleware registered so far */\n basePlugin: WidgetPlugin | null;\n /** Middleware plugins to apply, in order from outermost to innermost */\n middleware: WidgetMiddlewarePlugin[];\n}\n\nexport function WrapWidgetPlugin(\n plugin: WidgetPlugin\n): React.ForwardRefExoticComponent<PanelProps & React.RefAttributes<unknown>> {\n function Wrapper(props: PanelProps, ref: React.ForwardedRef<unknown>) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const C = plugin.component as any;\n const { metadata } = props;\n\n const panelDescriptor: WidgetPanelDescriptor = {\n ...metadata,\n type: metadata?.type ?? plugin.type,\n name: metadata?.name ?? 'Widget',\n };\n\n const hasRef = canHaveRef(C);\n const className = `widget-loader-${panelDescriptor.type}`;\n\n return (\n <WidgetPanel\n descriptor={panelDescriptor}\n className={className}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n >\n {hasRef ? (\n <C\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n ref={ref}\n />\n ) : (\n <C\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n />\n )}\n </WidgetPanel>\n );\n }\n\n Wrapper.displayName = `WidgetLoaderPlugin(${\n plugin.component.displayName ?? plugin.name\n })`;\n\n return forwardRef(Wrapper);\n}\n\n/**\n * Widget to automatically open any supported WidgetPlugin types as panels\n * if the widget is emitted from the server as the result of executed code.\n *\n * Does not open panels for widgets that are not supported by any plugins.\n * Does not open panels for widgets that are a component of a larger widget or UI element.\n *\n * Supports plugin chaining via middleware plugins. When multiple plugins\n * support the same widget type, middleware plugins are chained around\n * the base plugin in registration order.\n *\n * @param props Dashboard plugin props\n * @returns React element\n */\nexport function WidgetLoaderPlugin(\n props: Partial<DashboardPluginComponentProps>\n): JSX.Element | null {\n const plugins = usePlugins();\n\n /**\n * Build a map of widget types to their plugin chain info.\n * For each type, we have a base plugin and a list of middleware to apply.\n */\n const supportedTypes = useMemo(() => {\n const typeMap = new Map<string, WidgetTypeInfo>();\n\n plugins.forEach(plugin => {\n const isMiddleware = isWidgetMiddlewarePlugin(plugin);\n if (!isWidgetPlugin(plugin) && !isMiddleware) {\n return;\n }\n\n [plugin.supportedTypes].flat().forEach(supportedType => {\n if (supportedType == null || supportedType === '') {\n return;\n }\n\n const existing = typeMap.get(supportedType);\n\n if (isMiddleware) {\n // Add middleware to existing chain or create pending chain\n if (existing != null) {\n existing.middleware.push(plugin);\n log.debug(\n `Adding middleware ${plugin.name} to chain for type ${supportedType}`\n );\n } else {\n // No base plugin yet, create entry with just middleware\n // The base plugin will be set when a non-middleware plugin is registered\n typeMap.set(supportedType, {\n basePlugin: null,\n middleware: [plugin],\n });\n log.debug(\n `Creating pending middleware chain for type ${supportedType} with ${plugin.name}`\n );\n }\n } else {\n // Non-middleware plugin: becomes the base plugin\n if (existing != null) {\n if (existing.basePlugin != null) {\n // Already have a base plugin, warn about replacement\n log.warn(\n `Multiple WidgetPlugins handling type ${supportedType}. ` +\n `Replacing ${existing.basePlugin.name} with ${plugin.name} as base plugin`\n );\n }\n // Keep existing middleware, update the base plugin\n existing.basePlugin = plugin;\n } else {\n typeMap.set(supportedType, {\n basePlugin: plugin,\n middleware: [],\n });\n }\n log.debug(`Set base plugin ${plugin.name} for type ${supportedType}`);\n }\n });\n });\n\n // Filter out entries that only have middleware (no base plugin)\n const validEntries = new Map<\n string,\n WidgetTypeInfo & { basePlugin: WidgetPlugin }\n >();\n typeMap.forEach((info, type) => {\n if (info.basePlugin != null) {\n validEntries.set(\n type,\n info as WidgetTypeInfo & { basePlugin: WidgetPlugin }\n );\n } else {\n log.warn(\n `No base plugin found for type ${type}, middleware will not be applied`\n );\n }\n });\n\n return validEntries;\n }, [plugins]);\n\n assertIsDashboardPluginProps(props);\n const { id, layout, registerComponent } = props;\n\n const handlePanelOpen = useCallback(\n ({\n dragEvent,\n panelId = nanoid(),\n fetch,\n widget,\n }: PanelOpenEventDetail) => {\n const { type } = widget;\n const typeInfo = type != null ? supportedTypes.get(type) : null;\n if (typeInfo == null) {\n return;\n }\n const name = widget.name ?? type;\n\n const panelProps: DehydratedDashboardPanelProps & {\n fetch?: () => Promise<unknown>;\n } = {\n localDashboardId: id,\n metadata: widget,\n fetch,\n };\n\n const config: ReactComponentConfig = {\n type: 'react-component',\n component: typeInfo.basePlugin.name,\n props: panelProps,\n title: name,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config, dragEvent });\n },\n [id, layout, supportedTypes]\n );\n\n useEffect(() => {\n // Get unique base plugins (a plugin may handle multiple types)\n // supportedTypes is already filtered to entries with non-null basePlugin\n type ValidWidgetTypeInfo = WidgetTypeInfo & { basePlugin: WidgetPlugin };\n const uniquePluginInfos = new Map<string, ValidWidgetTypeInfo>();\n supportedTypes.forEach((info, _type) => {\n // Use the base plugin name as the key to get unique plugins\n if (!uniquePluginInfos.has(info.basePlugin.name)) {\n // Clone to avoid mutating the useMemo result\n uniquePluginInfos.set(info.basePlugin.name, {\n basePlugin: info.basePlugin,\n middleware: [...info.middleware],\n });\n } else {\n // Merge middleware from multiple type registrations for the same base plugin\n const existingInfo = uniquePluginInfos.get(info.basePlugin.name);\n if (existingInfo != null) {\n info.middleware.forEach(m => {\n if (!existingInfo.middleware.includes(m)) {\n existingInfo.middleware.push(m);\n }\n });\n }\n }\n });\n\n log.debug(\n 'Registering widget components',\n [...uniquePluginInfos.entries()].map(([name, info]) => ({\n plugin: name,\n middleware: info.middleware.map(m => m.name),\n hasPanel: info.basePlugin.panelComponent != null,\n }))\n );\n\n const deregisterFns = [...uniquePluginInfos.values()].map(\n ({ basePlugin, middleware }) => {\n const { panelComponent } = basePlugin;\n\n if (panelComponent == null) {\n // No panel component - chain the widget components and wrap in default panel\n log.debug(\n `Chaining widget components for ${basePlugin.name} (no panel component, using default wrapper)`\n );\n const chainedComponent = createChainedComponent(\n basePlugin.component,\n middleware\n );\n const wrappedPlugin: WidgetPlugin = {\n ...basePlugin,\n component: chainedComponent,\n };\n return registerComponent(\n basePlugin.name,\n WrapWidgetPlugin(wrappedPlugin)\n );\n }\n\n // Has panel component - chain middleware around the panel.\n // Only middleware that defines panelComponent is applied here.\n // Middleware with only component is skipped in this path.\n log.debug(\n `Chaining panel components for ${basePlugin.name} (has custom panel component)`\n );\n const chainedPanelComponent = createChainedPanelComponent(\n panelComponent,\n middleware\n );\n\n return registerComponent(basePlugin.name, chainedPanelComponent);\n }\n );\n\n return () => {\n deregisterFns.forEach(deregister => deregister());\n };\n }, [registerComponent, supportedTypes]);\n\n /**\n * Listen for panel open events so we know when to open a panel\n */\n usePanelOpenListener(layout.eventHub, handlePanelOpen);\n\n return null;\n}\n\nexport default WidgetLoaderPlugin;\n"],"mappings":"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","ignoreList":[]}
package/dist/index.d.ts CHANGED
@@ -27,6 +27,7 @@ export * from './useDashboardColumnFilters';
27
27
  export * from './useGridLinker';
28
28
  export * from './useLoadTablePlugin';
29
29
  export * from './useTablePlugin';
30
+ export * from './ConsoleEvents';
30
31
  export * from './events';
31
32
  export * from './panels';
32
33
  export * from './redux';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
package/dist/index.js CHANGED
@@ -26,6 +26,7 @@ export * from "./useDashboardColumnFilters.js";
26
26
  export * from "./useGridLinker.js";
27
27
  export * from "./useLoadTablePlugin.js";
28
28
  export * from "./useTablePlugin.js";
29
+ export * from "./ConsoleEvents.js";
29
30
  export * from "./events/index.js";
30
31
  export * from "./panels/index.js";
31
32
  export * from "./redux/index.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","ChartPanelPlugin","ChartWidgetPlugin","ChartPluginConfig","ChartBuilderPlugin","ChartBuilderPluginConfig","ConsolePlugin","FilterPlugin","FilterPluginConfig","GridPanelPlugin","GridWidgetPlugin","GridPluginConfig","LinkerPlugin","LinkerPluginConfig","MarkdownPlugin","MarkdownPluginConfig","PandasPanelPlugin","PandasWidgetPlugin","PandasPluginConfig","WidgetLoaderPlugin","WidgetLoaderPluginConfig","ControlType","LinkerUtils","ToolType"],"sources":["../src/index.ts"],"sourcesContent":["export { default as ChartPanelPlugin } from './ChartPanelPlugin';\nexport { default as ChartWidgetPlugin } from './ChartWidgetPlugin';\nexport { default as ChartPluginConfig } from './ChartPluginConfig';\nexport { default as ChartBuilderPlugin } from './ChartBuilderPlugin';\nexport { default as ChartBuilderPluginConfig } from './ChartBuilderPluginConfig';\nexport { default as ConsolePlugin } from './ConsolePlugin';\nexport { default as FilterPlugin } from './FilterPlugin';\nexport { default as FilterPluginConfig } from './FilterPluginConfig';\nexport { default as GridPanelPlugin } from './GridPanelPlugin';\nexport { default as GridWidgetPlugin } from './GridWidgetPlugin';\nexport { default as GridPluginConfig } from './GridPluginConfig';\nexport { default as LinkerPlugin } from './LinkerPlugin';\nexport { default as LinkerPluginConfig } from './LinkerPluginConfig';\nexport { default as MarkdownPlugin } from './MarkdownPlugin';\nexport { default as MarkdownPluginConfig } from './MarkdownPluginConfig';\nexport { default as PandasPanelPlugin } from './PandasPanelPlugin';\nexport { default as PandasWidgetPlugin } from './PandasWidgetPlugin';\nexport { default as PandasPluginConfig } from './PandasPluginConfig';\nexport { default as WidgetLoaderPlugin } from './WidgetLoaderPlugin';\nexport { default as WidgetLoaderPluginConfig } from './WidgetLoaderPluginConfig';\nexport { default as ControlType } from './controls/ControlType';\nexport { default as LinkerUtils } from './linker/LinkerUtils';\nexport type { Link } from './linker/LinkerUtils';\nexport { default as ToolType } from './linker/ToolType';\nexport * from './useConfigureRuff';\nexport * from './useDashboardColumnFilters';\nexport * from './useGridLinker';\nexport * from './useLoadTablePlugin';\nexport * from './useTablePlugin';\n\nexport * from './events';\nexport * from './panels';\nexport * from './redux';\nexport * from './prop-types';\nexport * from './linker';\n"],"mappings":"SAASA,OAAO,IAAIC,gBAAgB;AAAA,SAC3BD,OAAO,IAAIE,iBAAiB;AAAA,SAC5BF,OAAO,IAAIG,iBAAiB;AAAA,SAC5BH,OAAO,IAAII,kBAAkB;AAAA,SAC7BJ,OAAO,IAAIK,wBAAwB;AAAA,SACnCL,OAAO,IAAIM,aAAa;AAAA,SACxBN,OAAO,IAAIO,YAAY;AAAA,SACvBP,OAAO,IAAIQ,kBAAkB;AAAA,SAC7BR,OAAO,IAAIS,eAAe;AAAA,SAC1BT,OAAO,IAAIU,gBAAgB;AAAA,SAC3BV,OAAO,IAAIW,gBAAgB;AAAA,SAC3BX,OAAO,IAAIY,YAAY;AAAA,SACvBZ,OAAO,IAAIa,kBAAkB;AAAA,SAC7Bb,OAAO,IAAIc,cAAc;AAAA,SACzBd,OAAO,IAAIe,oBAAoB;AAAA,SAC/Bf,OAAO,IAAIgB,iBAAiB;AAAA,SAC5BhB,OAAO,IAAIiB,kBAAkB;AAAA,SAC7BjB,OAAO,IAAIkB,kBAAkB;AAAA,SAC7BlB,OAAO,IAAImB,kBAAkB;AAAA,SAC7BnB,OAAO,IAAIoB,wBAAwB;AAAA,SACnCpB,OAAO,IAAIqB,WAAW;AAAA,SACtBrB,OAAO,IAAIsB,WAAW;AAAA,SAEtBtB,OAAO,IAAIuB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["default","ChartPanelPlugin","ChartWidgetPlugin","ChartPluginConfig","ChartBuilderPlugin","ChartBuilderPluginConfig","ConsolePlugin","FilterPlugin","FilterPluginConfig","GridPanelPlugin","GridWidgetPlugin","GridPluginConfig","LinkerPlugin","LinkerPluginConfig","MarkdownPlugin","MarkdownPluginConfig","PandasPanelPlugin","PandasWidgetPlugin","PandasPluginConfig","WidgetLoaderPlugin","WidgetLoaderPluginConfig","ControlType","LinkerUtils","ToolType"],"sources":["../src/index.ts"],"sourcesContent":["export { default as ChartPanelPlugin } from './ChartPanelPlugin';\nexport { default as ChartWidgetPlugin } from './ChartWidgetPlugin';\nexport { default as ChartPluginConfig } from './ChartPluginConfig';\nexport { default as ChartBuilderPlugin } from './ChartBuilderPlugin';\nexport { default as ChartBuilderPluginConfig } from './ChartBuilderPluginConfig';\nexport { default as ConsolePlugin } from './ConsolePlugin';\nexport { default as FilterPlugin } from './FilterPlugin';\nexport { default as FilterPluginConfig } from './FilterPluginConfig';\nexport { default as GridPanelPlugin } from './GridPanelPlugin';\nexport { default as GridWidgetPlugin } from './GridWidgetPlugin';\nexport { default as GridPluginConfig } from './GridPluginConfig';\nexport { default as LinkerPlugin } from './LinkerPlugin';\nexport { default as LinkerPluginConfig } from './LinkerPluginConfig';\nexport { default as MarkdownPlugin } from './MarkdownPlugin';\nexport { default as MarkdownPluginConfig } from './MarkdownPluginConfig';\nexport { default as PandasPanelPlugin } from './PandasPanelPlugin';\nexport { default as PandasWidgetPlugin } from './PandasWidgetPlugin';\nexport { default as PandasPluginConfig } from './PandasPluginConfig';\nexport { default as WidgetLoaderPlugin } from './WidgetLoaderPlugin';\nexport { default as WidgetLoaderPluginConfig } from './WidgetLoaderPluginConfig';\nexport { default as ControlType } from './controls/ControlType';\nexport { default as LinkerUtils } from './linker/LinkerUtils';\nexport type { Link } from './linker/LinkerUtils';\nexport { default as ToolType } from './linker/ToolType';\nexport * from './useConfigureRuff';\nexport * from './useDashboardColumnFilters';\nexport * from './useGridLinker';\nexport * from './useLoadTablePlugin';\nexport * from './useTablePlugin';\n\nexport * from './ConsoleEvents';\nexport * from './events';\nexport * from './panels';\nexport * from './redux';\nexport * from './prop-types';\nexport * from './linker';\n"],"mappings":"SAASA,OAAO,IAAIC,gBAAgB;AAAA,SAC3BD,OAAO,IAAIE,iBAAiB;AAAA,SAC5BF,OAAO,IAAIG,iBAAiB;AAAA,SAC5BH,OAAO,IAAII,kBAAkB;AAAA,SAC7BJ,OAAO,IAAIK,wBAAwB;AAAA,SACnCL,OAAO,IAAIM,aAAa;AAAA,SACxBN,OAAO,IAAIO,YAAY;AAAA,SACvBP,OAAO,IAAIQ,kBAAkB;AAAA,SAC7BR,OAAO,IAAIS,eAAe;AAAA,SAC1BT,OAAO,IAAIU,gBAAgB;AAAA,SAC3BV,OAAO,IAAIW,gBAAgB;AAAA,SAC3BX,OAAO,IAAIY,YAAY;AAAA,SACvBZ,OAAO,IAAIa,kBAAkB;AAAA,SAC7Bb,OAAO,IAAIc,cAAc;AAAA,SACzBd,OAAO,IAAIe,oBAAoB;AAAA,SAC/Bf,OAAO,IAAIgB,iBAAiB;AAAA,SAC5BhB,OAAO,IAAIiB,kBAAkB;AAAA,SAC7BjB,OAAO,IAAIkB,kBAAkB;AAAA,SAC7BlB,OAAO,IAAImB,kBAAkB;AAAA,SAC7BnB,OAAO,IAAIoB,wBAAwB;AAAA,SACnCpB,OAAO,IAAIqB,WAAW;AAAA,SACtBrB,OAAO,IAAIsB,WAAW;AAAA,SAEtBtB,OAAO,IAAIuB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","ignoreList":[]}
@@ -4,6 +4,7 @@ import { CommandHistory, type CommandHistoryStorage, type CommandHistorySettings
4
4
  import { type DashboardPanelProps } from '@deephaven/dashboard';
5
5
  import { Pending } from '@deephaven/utils';
6
6
  import type { dh } from '@deephaven/jsapi-types';
7
+ import { type CoreConsoleSession } from '../ConsoleEvents';
7
8
  import './CommandHistoryPanel.scss';
8
9
  interface CommandHistoryPanelProps extends DashboardPanelProps {
9
10
  panelState?: Record<string, never>;
@@ -31,17 +32,14 @@ declare class CommandHistoryPanel extends Component<CommandHistoryPanelProps, Co
31
32
  pending: Pending;
32
33
  handleFocusHistory(): void;
33
34
  handleShow(): void;
34
- handleSessionOpened(session: dh.IdeSession, { language, sessionId }: {
35
- language: string;
36
- sessionId: string;
37
- }): void;
35
+ handleSessionOpened({ session, language, sessionId, }: CoreConsoleSession): void;
38
36
  handleSessionClosed(): void;
39
37
  handleSendToNotebook(settings: CommandHistorySettings, forceNewNotebook?: boolean): void;
40
38
  handleSendToConsole(command: string, focus?: boolean, execute?: boolean): void;
41
39
  loadTable(): void;
42
40
  render(): JSX.Element;
43
41
  }
44
- declare const ConnectedCommandHistoryPanel: import("react-redux").ConnectedComponent<typeof CommandHistoryPanel, import("react-redux").Omit<React.ClassAttributes<CommandHistoryPanel> & CommandHistoryPanelProps, "language" | "sessionId" | "session" | "commandHistoryStorage"> & {
42
+ declare const ConnectedCommandHistoryPanel: import("react-redux").ConnectedComponent<typeof CommandHistoryPanel, import("react-redux").Omit<React.ClassAttributes<CommandHistoryPanel> & CommandHistoryPanelProps, "language" | "session" | "sessionId" | "commandHistoryStorage"> & {
45
43
  localDashboardId: string;
46
44
  }>;
47
45
  export default ConnectedCommandHistoryPanel;
@@ -1 +1 @@
1
- {"version":3,"file":"CommandHistoryPanel.d.ts","sourceRoot":"","sources":["../../src/panels/CommandHistoryPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EAAE,KAAK,aAAa,EAAkB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAE1B,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAGhE,OAAO,EAAiB,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,4BAA4B,CAAC;AAMpC,UAAU,wBAAyB,SAAQ,mBAAmB;IAE5D,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,qBAAqB,CAAC;CAC9C;AAED,UAAU,wBAAwB;IAChC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC7B;AAED,cAAM,mBAAoB,SAAQ,SAAS,CACzC,wBAAwB,EACxB,wBAAwB,CACzB;IACC,MAAM,CAAC,SAAS,SAAyB;IAEzC,MAAM,CAAC,KAAK,SAAqB;IAEjC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;gBAI5B,KAAK,EAAE,wBAAwB;IA8B3C,iBAAiB,IAAI,IAAI;IAQzB,oBAAoB,IAAI,IAAI;IAO5B,SAAS,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IAErC,OAAO,EAAE,OAAO,CAAC;IAEjB,kBAAkB,IAAI,IAAI;IAM1B,UAAU,IAAI,IAAI;IAKlB,mBAAmB,CACjB,OAAO,EAAE,EAAE,CAAC,UAAU,EACtB,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAC/D,IAAI;IAaP,mBAAmB,IAAI,IAAI;IAS3B,oBAAoB,CAClB,QAAQ,EAAE,sBAAsB,EAChC,gBAAgB,UAAQ,GACvB,IAAI;IAkBP,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,UAAO,EAAE,OAAO,UAAQ,GAAG,IAAI;IAMzE,SAAS,IAAI,IAAI;IAgBjB,MAAM,IAAI,GAAG,CAAC,OAAO;CAkCtB;AA2BD,QAAA,MAAM,4BAA4B;sBAvBF,MAAM;EAyBf,CAAC;AAExB,eAAe,4BAA4B,CAAC"}
1
+ {"version":3,"file":"CommandHistoryPanel.d.ts","sourceRoot":"","sources":["../../src/panels/CommandHistoryPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzD,OAAO,EAAE,KAAK,aAAa,EAAkB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAE1B,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAGhE,OAAO,EAAiB,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,4BAA4B,CAAC;AAMpC,UAAU,wBAAyB,SAAQ,mBAAmB;IAE5D,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,qBAAqB,CAAC;CAC9C;AAED,UAAU,wBAAwB;IAChC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC7B;AAED,cAAM,mBAAoB,SAAQ,SAAS,CACzC,wBAAwB,EACxB,wBAAwB,CACzB;IACC,MAAM,CAAC,SAAS,SAAyB;IAEzC,MAAM,CAAC,KAAK,SAAqB;IAEjC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;gBAI5B,KAAK,EAAE,wBAAwB;IA8B3C,iBAAiB,IAAI,IAAI;IAQzB,oBAAoB,IAAI,IAAI;IAO5B,SAAS,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IAErC,OAAO,EAAE,OAAO,CAAC;IAEjB,kBAAkB,IAAI,IAAI;IAM1B,UAAU,IAAI,IAAI;IAKlB,mBAAmB,CAAC,EAClB,OAAO,EACP,QAAQ,EACR,SAAS,GACV,EAAE,kBAAkB,GAAG,IAAI;IAa5B,mBAAmB,IAAI,IAAI;IAS3B,oBAAoB,CAClB,QAAQ,EAAE,sBAAsB,EAChC,gBAAgB,UAAQ,GACvB,IAAI;IAkBP,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,UAAO,EAAE,OAAO,UAAQ,GAAG,IAAI;IAMzE,SAAS,IAAI,IAAI;IAgBjB,MAAM,IAAI,GAAG,CAAC,OAAO;CAkCtB;AA2BD,QAAA,MAAM,4BAA4B;sBAvBF,MAAM;EAyBf,CAAC;AAExB,eAAe,4BAA4B,CAAC"}
@@ -74,8 +74,9 @@ class CommandHistoryPanel extends Component {
74
74
  // virtual list requires a forced reset to scroll position when picked up and dropped in same place
75
75
  (_this$container$curre = this.container.current) === null || _this$container$curre === void 0 || _this$container$curre.restoreScrollPosition();
76
76
  }
77
- handleSessionOpened(session, _ref) {
77
+ handleSessionOpened(_ref) {
78
78
  var {
79
+ session,
79
80
  language,
80
81
  sessionId
81
82
  } = _ref;
@@ -1 +1 @@
1
- {"version":3,"file":"CommandHistoryPanel.js","names":["React","Component","connect","ContextActions","CommandHistory","SHORTCUTS","Log","getCommandHistoryStorage","assertNotNull","Pending","ConsoleEvent","NotebookEvent","Panel","getDashboardSessionWrapper","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","log","module","CommandHistoryPanel","handleError","error","constructor","props","_defineProperty","handleFocusHistory","bind","handleSessionOpened","handleSessionClosed","handleShow","handleSendToConsole","handleSendToNotebook","container","createRef","pending","session","sessionId","language","state","panelState","contextActions","action","shortcut","COMMAND_HISTORY","FOCUS_HISTORY","componentDidMount","glEventHub","on","loadTable","componentWillUnmount","off","cancel","current","focus","_this$container$curre","restoreScrollPosition","_ref","setState","undefined","table","settings","forceNewNotebook","arguments","length","debug","emit","CREATE_NOTEBOOK","SEND_TO_NOTEBOOK","command","execute","SEND_COMMAND","commandHistoryStorage","add","getTable","Date","now","resolved","close","then","catch","render","glContainer","className","componentPanel","onSessionOpen","onSessionClose","onShow","children","ref","sendToNotebook","sendToConsole","actions","mapStateToProps","ownProps","sessionWrapper","localDashboardId","config","sessionConfig","type","id","ConnectedCommandHistoryPanel","forwardRef"],"sources":["../../src/panels/CommandHistoryPanel.tsx"],"sourcesContent":["import React, { Component, type RefObject } from 'react';\nimport { connect } from 'react-redux';\nimport { type ContextAction, ContextActions } from '@deephaven/components';\nimport {\n CommandHistory,\n type CommandHistoryStorage,\n SHORTCUTS,\n type CommandHistorySettings,\n type CommandHistoryTable,\n} from '@deephaven/console';\nimport { type DashboardPanelProps } from '@deephaven/dashboard';\nimport Log from '@deephaven/log';\nimport { getCommandHistoryStorage, type RootState } from '@deephaven/redux';\nimport { assertNotNull, Pending } from '@deephaven/utils';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { ConsoleEvent, NotebookEvent } from '../events';\nimport './CommandHistoryPanel.scss';\nimport Panel from './CorePanel';\nimport { getDashboardSessionWrapper } from '../redux';\n\nconst log = Log.module('CommandHistoryPanel');\n\ninterface CommandHistoryPanelProps extends DashboardPanelProps {\n // eslint-disable-next-line react/no-unused-prop-types\n panelState?: Record<string, never>;\n session?: dh.IdeSession;\n sessionId?: string;\n language?: string;\n commandHistoryStorage: CommandHistoryStorage;\n}\n\ninterface CommandHistoryPanelState {\n panelState: Record<string, never>;\n session?: dh.IdeSession;\n sessionId?: string;\n language?: string;\n contextActions: ContextAction[];\n table?: CommandHistoryTable;\n}\n\nclass CommandHistoryPanel extends Component<\n CommandHistoryPanelProps,\n CommandHistoryPanelState\n> {\n static COMPONENT = 'CommandHistoryPanel';\n\n static TITLE = 'Command History';\n\n static handleError(error: unknown): void {\n log.error(error);\n }\n\n constructor(props: CommandHistoryPanelProps) {\n super(props);\n\n this.handleFocusHistory = this.handleFocusHistory.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleSendToConsole = this.handleSendToConsole.bind(this);\n this.handleSendToNotebook = this.handleSendToNotebook.bind(this);\n\n this.container = React.createRef();\n this.pending = new Pending();\n\n const { session, sessionId, language } = props;\n\n this.state = {\n // eslint-disable-next-line react/no-unused-state\n panelState: {},\n session,\n sessionId,\n language,\n contextActions: [\n {\n action: this.handleFocusHistory,\n shortcut: SHORTCUTS.COMMAND_HISTORY.FOCUS_HISTORY,\n },\n ],\n };\n }\n\n componentDidMount(): void {\n const { glEventHub, session } = this.props;\n glEventHub.on(ConsoleEvent.FOCUS_HISTORY, this.handleFocusHistory);\n if (session != null) {\n this.loadTable();\n }\n }\n\n componentWillUnmount(): void {\n const { glEventHub } = this.props;\n glEventHub.off(ConsoleEvent.FOCUS_HISTORY, this.handleFocusHistory);\n\n this.pending.cancel();\n }\n\n container: RefObject<CommandHistory>;\n\n pending: Pending;\n\n handleFocusHistory(): void {\n if (this.container.current) {\n this.container.current.focus();\n }\n }\n\n handleShow(): void {\n // virtual list requires a forced reset to scroll position when picked up and dropped in same place\n this.container.current?.restoreScrollPosition();\n }\n\n handleSessionOpened(\n session: dh.IdeSession,\n { language, sessionId }: { language: string; sessionId: string }\n ): void {\n this.setState(\n {\n session,\n sessionId,\n language,\n },\n () => {\n this.loadTable();\n }\n );\n }\n\n handleSessionClosed(): void {\n this.pending.cancel();\n this.setState({\n session: undefined,\n language: undefined,\n table: undefined,\n });\n }\n\n handleSendToNotebook(\n settings: CommandHistorySettings,\n forceNewNotebook = false\n ): void {\n const { session, language } = this.state;\n log.debug('handleSendToNotebook', session, settings);\n if (!session) {\n log.error('Session is not connected.');\n return;\n }\n const { glEventHub } = this.props;\n glEventHub.emit(\n forceNewNotebook\n ? NotebookEvent.CREATE_NOTEBOOK\n : NotebookEvent.SEND_TO_NOTEBOOK,\n session,\n language,\n settings\n );\n }\n\n handleSendToConsole(command: string, focus = true, execute = false): void {\n log.debug('handleSendToConsole', command);\n const { glEventHub } = this.props;\n glEventHub.emit(ConsoleEvent.SEND_COMMAND, command, focus, execute);\n }\n\n loadTable(): void {\n const { commandHistoryStorage } = this.props;\n const { language, sessionId } = this.state;\n assertNotNull(language);\n assertNotNull(sessionId);\n this.pending\n .add(\n commandHistoryStorage.getTable(language, sessionId, Date.now()),\n resolved => resolved.close()\n )\n .then(table => {\n this.setState({ table });\n })\n .catch(CommandHistoryPanel.handleError);\n }\n\n render(): JSX.Element {\n const { glContainer, glEventHub, commandHistoryStorage } = this.props;\n const { language, contextActions, table } = this.state;\n return (\n <Panel\n className=\"command-history-pane\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onSessionOpen={this.handleSessionOpened}\n onSessionClose={this.handleSessionClosed}\n onShow={this.handleShow}\n >\n {!table && (\n <div className=\"command-history-disconnected-message\">\n Waiting for console connection\n </div>\n )}\n {table && language != null && (\n <>\n <CommandHistory\n ref={this.container}\n language={language}\n sendToNotebook={this.handleSendToNotebook}\n sendToConsole={this.handleSendToConsole}\n table={table}\n commandHistoryStorage={commandHistoryStorage}\n />\n <ContextActions actions={contextActions} />\n </>\n )}\n </Panel>\n );\n }\n}\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: { localDashboardId: string }\n): Pick<\n CommandHistoryPanelProps,\n 'commandHistoryStorage' | 'language' | 'session' | 'sessionId'\n> => {\n const commandHistoryStorage = getCommandHistoryStorage(\n state\n ) as CommandHistoryStorage;\n const sessionWrapper = getDashboardSessionWrapper(\n state,\n ownProps.localDashboardId\n );\n const { session, config: sessionConfig } = sessionWrapper ?? {};\n const { type: language, id: sessionId } = sessionConfig ?? {};\n\n return {\n commandHistoryStorage,\n language,\n session,\n sessionId,\n };\n};\n\nconst ConnectedCommandHistoryPanel = connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(CommandHistoryPanel);\n\nexport default ConnectedCommandHistoryPanel;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CommandHistoryPanel.js","names":["React","Component","connect","ContextActions","CommandHistory","SHORTCUTS","Log","getCommandHistoryStorage","assertNotNull","Pending","ConsoleEvent","NotebookEvent","Panel","getDashboardSessionWrapper","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","log","module","CommandHistoryPanel","handleError","error","constructor","props","_defineProperty","handleFocusHistory","bind","handleSessionOpened","handleSessionClosed","handleShow","handleSendToConsole","handleSendToNotebook","container","createRef","pending","session","sessionId","language","state","panelState","contextActions","action","shortcut","COMMAND_HISTORY","FOCUS_HISTORY","componentDidMount","glEventHub","on","loadTable","componentWillUnmount","off","cancel","current","focus","_this$container$curre","restoreScrollPosition","_ref","setState","undefined","table","settings","forceNewNotebook","arguments","length","debug","emit","CREATE_NOTEBOOK","SEND_TO_NOTEBOOK","command","execute","SEND_COMMAND","commandHistoryStorage","add","getTable","Date","now","resolved","close","then","catch","render","glContainer","className","componentPanel","onSessionOpen","onSessionClose","onShow","children","ref","sendToNotebook","sendToConsole","actions","mapStateToProps","ownProps","sessionWrapper","localDashboardId","config","sessionConfig","type","id","ConnectedCommandHistoryPanel","forwardRef"],"sources":["../../src/panels/CommandHistoryPanel.tsx"],"sourcesContent":["import React, { Component, type RefObject } from 'react';\nimport { connect } from 'react-redux';\nimport { type ContextAction, ContextActions } from '@deephaven/components';\nimport {\n CommandHistory,\n type CommandHistoryStorage,\n SHORTCUTS,\n type CommandHistorySettings,\n type CommandHistoryTable,\n} from '@deephaven/console';\nimport { type DashboardPanelProps } from '@deephaven/dashboard';\nimport Log from '@deephaven/log';\nimport { getCommandHistoryStorage, type RootState } from '@deephaven/redux';\nimport { assertNotNull, Pending } from '@deephaven/utils';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { ConsoleEvent, NotebookEvent } from '../events';\nimport { type CoreConsoleSession } from '../ConsoleEvents';\nimport './CommandHistoryPanel.scss';\nimport Panel from './CorePanel';\nimport { getDashboardSessionWrapper } from '../redux';\n\nconst log = Log.module('CommandHistoryPanel');\n\ninterface CommandHistoryPanelProps extends DashboardPanelProps {\n // eslint-disable-next-line react/no-unused-prop-types\n panelState?: Record<string, never>;\n session?: dh.IdeSession;\n sessionId?: string;\n language?: string;\n commandHistoryStorage: CommandHistoryStorage;\n}\n\ninterface CommandHistoryPanelState {\n panelState: Record<string, never>;\n session?: dh.IdeSession;\n sessionId?: string;\n language?: string;\n contextActions: ContextAction[];\n table?: CommandHistoryTable;\n}\n\nclass CommandHistoryPanel extends Component<\n CommandHistoryPanelProps,\n CommandHistoryPanelState\n> {\n static COMPONENT = 'CommandHistoryPanel';\n\n static TITLE = 'Command History';\n\n static handleError(error: unknown): void {\n log.error(error);\n }\n\n constructor(props: CommandHistoryPanelProps) {\n super(props);\n\n this.handleFocusHistory = this.handleFocusHistory.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleSendToConsole = this.handleSendToConsole.bind(this);\n this.handleSendToNotebook = this.handleSendToNotebook.bind(this);\n\n this.container = React.createRef();\n this.pending = new Pending();\n\n const { session, sessionId, language } = props;\n\n this.state = {\n // eslint-disable-next-line react/no-unused-state\n panelState: {},\n session,\n sessionId,\n language,\n contextActions: [\n {\n action: this.handleFocusHistory,\n shortcut: SHORTCUTS.COMMAND_HISTORY.FOCUS_HISTORY,\n },\n ],\n };\n }\n\n componentDidMount(): void {\n const { glEventHub, session } = this.props;\n glEventHub.on(ConsoleEvent.FOCUS_HISTORY, this.handleFocusHistory);\n if (session != null) {\n this.loadTable();\n }\n }\n\n componentWillUnmount(): void {\n const { glEventHub } = this.props;\n glEventHub.off(ConsoleEvent.FOCUS_HISTORY, this.handleFocusHistory);\n\n this.pending.cancel();\n }\n\n container: RefObject<CommandHistory>;\n\n pending: Pending;\n\n handleFocusHistory(): void {\n if (this.container.current) {\n this.container.current.focus();\n }\n }\n\n handleShow(): void {\n // virtual list requires a forced reset to scroll position when picked up and dropped in same place\n this.container.current?.restoreScrollPosition();\n }\n\n handleSessionOpened({\n session,\n language,\n sessionId,\n }: CoreConsoleSession): void {\n this.setState(\n {\n session,\n sessionId,\n language,\n },\n () => {\n this.loadTable();\n }\n );\n }\n\n handleSessionClosed(): void {\n this.pending.cancel();\n this.setState({\n session: undefined,\n language: undefined,\n table: undefined,\n });\n }\n\n handleSendToNotebook(\n settings: CommandHistorySettings,\n forceNewNotebook = false\n ): void {\n const { session, language } = this.state;\n log.debug('handleSendToNotebook', session, settings);\n if (!session) {\n log.error('Session is not connected.');\n return;\n }\n const { glEventHub } = this.props;\n glEventHub.emit(\n forceNewNotebook\n ? NotebookEvent.CREATE_NOTEBOOK\n : NotebookEvent.SEND_TO_NOTEBOOK,\n session,\n language,\n settings\n );\n }\n\n handleSendToConsole(command: string, focus = true, execute = false): void {\n log.debug('handleSendToConsole', command);\n const { glEventHub } = this.props;\n glEventHub.emit(ConsoleEvent.SEND_COMMAND, command, focus, execute);\n }\n\n loadTable(): void {\n const { commandHistoryStorage } = this.props;\n const { language, sessionId } = this.state;\n assertNotNull(language);\n assertNotNull(sessionId);\n this.pending\n .add(\n commandHistoryStorage.getTable(language, sessionId, Date.now()),\n resolved => resolved.close()\n )\n .then(table => {\n this.setState({ table });\n })\n .catch(CommandHistoryPanel.handleError);\n }\n\n render(): JSX.Element {\n const { glContainer, glEventHub, commandHistoryStorage } = this.props;\n const { language, contextActions, table } = this.state;\n return (\n <Panel\n className=\"command-history-pane\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onSessionOpen={this.handleSessionOpened}\n onSessionClose={this.handleSessionClosed}\n onShow={this.handleShow}\n >\n {!table && (\n <div className=\"command-history-disconnected-message\">\n Waiting for console connection\n </div>\n )}\n {table && language != null && (\n <>\n <CommandHistory\n ref={this.container}\n language={language}\n sendToNotebook={this.handleSendToNotebook}\n sendToConsole={this.handleSendToConsole}\n table={table}\n commandHistoryStorage={commandHistoryStorage}\n />\n <ContextActions actions={contextActions} />\n </>\n )}\n </Panel>\n );\n }\n}\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: { localDashboardId: string }\n): Pick<\n CommandHistoryPanelProps,\n 'commandHistoryStorage' | 'language' | 'session' | 'sessionId'\n> => {\n const commandHistoryStorage = getCommandHistoryStorage(\n state\n ) as CommandHistoryStorage;\n const sessionWrapper = getDashboardSessionWrapper(\n state,\n ownProps.localDashboardId\n );\n const { session, config: sessionConfig } = sessionWrapper ?? {};\n const { type: language, id: sessionId } = sessionConfig ?? {};\n\n return {\n commandHistoryStorage,\n language,\n session,\n sessionId,\n };\n};\n\nconst ConnectedCommandHistoryPanel = connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(CommandHistoryPanel);\n\nexport default ConnectedCommandHistoryPanel;\n"],"mappings":"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","ignoreList":[]}
@@ -1,12 +1,10 @@
1
1
  import { type BasePanelProps } from '@deephaven/dashboard';
2
2
  import type { dh } from '@deephaven/jsapi-types';
3
+ import { type CoreConsoleSession } from '../ConsoleEvents';
3
4
  export type CorePanelProps = BasePanelProps & {
4
5
  onClearAllFilters?: (...args: unknown[]) => void;
5
6
  onSessionClose?: (session: dh.IdeSession) => void;
6
- onSessionOpen?: (session: dh.IdeSession, { language, sessionId }: {
7
- language: string;
8
- sessionId: string;
9
- }) => void;
7
+ onSessionOpen?: (session: CoreConsoleSession) => void;
10
8
  };
11
9
  declare const XCorePanel: import("@deephaven/components").XComponentType<CorePanelProps>;
12
10
  export default XCorePanel;
@@ -1 +1 @@
1
- {"version":3,"file":"CorePanel.d.ts","sourceRoot":"","sources":["../../src/panels/CorePanel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAa,MAAM,sBAAsB,CAAC;AACtE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAGjD,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C,iBAAiB,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACjD,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC;IAClD,aAAa,CAAC,EAAE,CACd,OAAO,EAAE,EAAE,CAAC,UAAU,EACtB,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAC7D,IAAI,CAAC;CACX,CAAC;AA8DF,QAAA,MAAM,UAAU,gEAA8B,CAAC;AAE/C,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"CorePanel.d.ts","sourceRoot":"","sources":["../../src/panels/CorePanel.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAa,MAAM,sBAAsB,CAAC;AACtE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EACL,KAAK,kBAAkB,EAGxB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C,iBAAiB,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACjD,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC;IAClD,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACvD,CAAC;AAqEF,QAAA,MAAM,UAAU,gEAA8B,CAAC;AAE/C,eAAe,UAAU,CAAC"}