@deephaven/dashboard-core-plugins 0.42.1-beta.4 → 0.43.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.
Files changed (183) hide show
  1. package/dist/prop-types/UIPropTypes.d.ts +1 -6
  2. package/dist/prop-types/UIPropTypes.d.ts.map +1 -1
  3. package/package.json +22 -22
  4. package/dist/ChartBuilderPlugin.js +0 -54
  5. package/dist/ChartBuilderPlugin.js.map +0 -1
  6. package/dist/ChartPlugin.js +0 -66
  7. package/dist/ChartPlugin.js.map +0 -1
  8. package/dist/ConsolePlugin.js +0 -396
  9. package/dist/ConsolePlugin.js.map +0 -1
  10. package/dist/FilterPlugin.js +0 -205
  11. package/dist/FilterPlugin.js.map +0 -1
  12. package/dist/GridPlugin.js +0 -74
  13. package/dist/GridPlugin.js.map +0 -1
  14. package/dist/LinkerPlugin.js +0 -18
  15. package/dist/LinkerPlugin.js.map +0 -1
  16. package/dist/MarkdownPlugin.js +0 -87
  17. package/dist/MarkdownPlugin.js.map +0 -1
  18. package/dist/PandasPlugin.js +0 -66
  19. package/dist/PandasPlugin.js.map +0 -1
  20. package/dist/controls/ControlType.js +0 -10
  21. package/dist/controls/ControlType.js.map +0 -1
  22. package/dist/controls/dropdown-filter/DropdownFilter.css +0 -86
  23. package/dist/controls/dropdown-filter/DropdownFilter.css.map +0 -1
  24. package/dist/controls/dropdown-filter/DropdownFilter.js +0 -417
  25. package/dist/controls/dropdown-filter/DropdownFilter.js.map +0 -1
  26. package/dist/controls/input-filter/InputFilter.css +0 -75
  27. package/dist/controls/input-filter/InputFilter.css.map +0 -1
  28. package/dist/controls/input-filter/InputFilter.js +0 -291
  29. package/dist/controls/input-filter/InputFilter.js.map +0 -1
  30. package/dist/controls/markdown/MarkdownContainer.js +0 -30
  31. package/dist/controls/markdown/MarkdownContainer.js.map +0 -1
  32. package/dist/controls/markdown/MarkdownEditor.js +0 -52
  33. package/dist/controls/markdown/MarkdownEditor.js.map +0 -1
  34. package/dist/controls/markdown/MarkdownStartPage.js +0 -109
  35. package/dist/controls/markdown/MarkdownStartPage.js.map +0 -1
  36. package/dist/controls/markdown/MarkdownUtils.js +0 -23
  37. package/dist/controls/markdown/MarkdownUtils.js.map +0 -1
  38. package/dist/events/ChartEvent.js +0 -9
  39. package/dist/events/ChartEvent.js.map +0 -1
  40. package/dist/events/ConsoleEvent.js +0 -11
  41. package/dist/events/ConsoleEvent.js.map +0 -1
  42. package/dist/events/InputFilterEvent.js +0 -14
  43. package/dist/events/InputFilterEvent.js.map +0 -1
  44. package/dist/events/IrisGridEvent.js +0 -12
  45. package/dist/events/IrisGridEvent.js.map +0 -1
  46. package/dist/events/MarkdownEvent.js +0 -4
  47. package/dist/events/MarkdownEvent.js.map +0 -1
  48. package/dist/events/NotebookEvent.js +0 -15
  49. package/dist/events/NotebookEvent.js.map +0 -1
  50. package/dist/events/PQEvent.js +0 -9
  51. package/dist/events/PQEvent.js.map +0 -1
  52. package/dist/events/PandasEvent.js +0 -8
  53. package/dist/events/PandasEvent.js.map +0 -1
  54. package/dist/events/TabEvent.js +0 -12
  55. package/dist/events/TabEvent.js.map +0 -1
  56. package/dist/events/index.js +0 -9
  57. package/dist/events/index.js.map +0 -1
  58. package/dist/index.js +0 -17
  59. package/dist/index.js.map +0 -1
  60. package/dist/linker/ColumnSelectionValidator.js +0 -2
  61. package/dist/linker/ColumnSelectionValidator.js.map +0 -1
  62. package/dist/linker/Linker.js +0 -736
  63. package/dist/linker/Linker.js.map +0 -1
  64. package/dist/linker/LinkerLink.css +0 -142
  65. package/dist/linker/LinkerLink.css.map +0 -1
  66. package/dist/linker/LinkerLink.js +0 -314
  67. package/dist/linker/LinkerLink.js.map +0 -1
  68. package/dist/linker/LinkerOverlayContent.css +0 -63
  69. package/dist/linker/LinkerOverlayContent.css.map +0 -1
  70. package/dist/linker/LinkerOverlayContent.js +0 -343
  71. package/dist/linker/LinkerOverlayContent.js.map +0 -1
  72. package/dist/linker/LinkerUtils.js +0 -139
  73. package/dist/linker/LinkerUtils.js.map +0 -1
  74. package/dist/linker/ToolType.js +0 -5
  75. package/dist/linker/ToolType.js.map +0 -1
  76. package/dist/linker/index.js +0 -2
  77. package/dist/linker/index.js.map +0 -1
  78. package/dist/panels/ChartColumnSelectorOverlay.css +0 -11
  79. package/dist/panels/ChartColumnSelectorOverlay.css.map +0 -1
  80. package/dist/panels/ChartColumnSelectorOverlay.js +0 -38
  81. package/dist/panels/ChartColumnSelectorOverlay.js.map +0 -1
  82. package/dist/panels/ChartFilterOverlay.css +0 -22
  83. package/dist/panels/ChartFilterOverlay.css.map +0 -1
  84. package/dist/panels/ChartFilterOverlay.js +0 -90
  85. package/dist/panels/ChartFilterOverlay.js.map +0 -1
  86. package/dist/panels/ChartPanel.css +0 -38
  87. package/dist/panels/ChartPanel.css.map +0 -1
  88. package/dist/panels/ChartPanel.js +0 -971
  89. package/dist/panels/ChartPanel.js.map +0 -1
  90. package/dist/panels/ChartPanelUtils.js +0 -5
  91. package/dist/panels/ChartPanelUtils.js.map +0 -1
  92. package/dist/panels/CommandHistoryPanel.css +0 -19
  93. package/dist/panels/CommandHistoryPanel.css.map +0 -1
  94. package/dist/panels/CommandHistoryPanel.js +0 -195
  95. package/dist/panels/CommandHistoryPanel.js.map +0 -1
  96. package/dist/panels/ConsolePanel.css +0 -19
  97. package/dist/panels/ConsolePanel.css.map +0 -1
  98. package/dist/panels/ConsolePanel.js +0 -365
  99. package/dist/panels/ConsolePanel.js.map +0 -1
  100. package/dist/panels/DropdownFilterPanel.css +0 -6
  101. package/dist/panels/DropdownFilterPanel.css.map +0 -1
  102. package/dist/panels/DropdownFilterPanel.js +0 -685
  103. package/dist/panels/DropdownFilterPanel.js.map +0 -1
  104. package/dist/panels/FileExplorerPanel.css +0 -6
  105. package/dist/panels/FileExplorerPanel.css.map +0 -1
  106. package/dist/panels/FileExplorerPanel.js +0 -252
  107. package/dist/panels/FileExplorerPanel.js.map +0 -1
  108. package/dist/panels/FilterSetManager.css +0 -112
  109. package/dist/panels/FilterSetManager.css.map +0 -1
  110. package/dist/panels/FilterSetManager.js +0 -689
  111. package/dist/panels/FilterSetManager.js.map +0 -1
  112. package/dist/panels/FilterSetManagerPanel.css +0 -34
  113. package/dist/panels/FilterSetManagerPanel.css.map +0 -1
  114. package/dist/panels/FilterSetManagerPanel.js +0 -345
  115. package/dist/panels/FilterSetManagerPanel.js.map +0 -1
  116. package/dist/panels/InputFilterPanel.js +0 -232
  117. package/dist/panels/InputFilterPanel.js.map +0 -1
  118. package/dist/panels/IrisGridPanel.css +0 -24
  119. package/dist/panels/IrisGridPanel.css.map +0 -1
  120. package/dist/panels/IrisGridPanel.js +0 -1018
  121. package/dist/panels/IrisGridPanel.js.map +0 -1
  122. package/dist/panels/IrisGridPanelTooltip.js +0 -39
  123. package/dist/panels/IrisGridPanelTooltip.js.map +0 -1
  124. package/dist/panels/LogPanel.css +0 -15
  125. package/dist/panels/LogPanel.css.map +0 -1
  126. package/dist/panels/LogPanel.js +0 -110
  127. package/dist/panels/LogPanel.js.map +0 -1
  128. package/dist/panels/MarkdownNotebook.css +0 -107
  129. package/dist/panels/MarkdownNotebook.css.map +0 -1
  130. package/dist/panels/MarkdownNotebook.js +0 -232
  131. package/dist/panels/MarkdownNotebook.js.map +0 -1
  132. package/dist/panels/MarkdownPanel.css +0 -90
  133. package/dist/panels/MarkdownPanel.css.map +0 -1
  134. package/dist/panels/MarkdownPanel.js +0 -202
  135. package/dist/panels/MarkdownPanel.js.map +0 -1
  136. package/dist/panels/MockFileStorage.js +0 -70
  137. package/dist/panels/MockFileStorage.js.map +0 -1
  138. package/dist/panels/MockFileStorageTable.js +0 -80
  139. package/dist/panels/MockFileStorageTable.js.map +0 -1
  140. package/dist/panels/NotebookPanel.css +0 -44
  141. package/dist/panels/NotebookPanel.css.map +0 -1
  142. package/dist/panels/NotebookPanel.js +0 -1224
  143. package/dist/panels/NotebookPanel.js.map +0 -1
  144. package/dist/panels/PandasPanel.css +0 -15
  145. package/dist/panels/PandasPanel.css.map +0 -1
  146. package/dist/panels/PandasPanel.js +0 -86
  147. package/dist/panels/PandasPanel.js.map +0 -1
  148. package/dist/panels/Panel.js +0 -314
  149. package/dist/panels/Panel.js.map +0 -1
  150. package/dist/panels/PanelContextMenu.js +0 -126
  151. package/dist/panels/PanelContextMenu.js.map +0 -1
  152. package/dist/panels/RenameDialog.js +0 -156
  153. package/dist/panels/RenameDialog.js.map +0 -1
  154. package/dist/panels/WidgetPanel.css +0 -17
  155. package/dist/panels/WidgetPanel.css.map +0 -1
  156. package/dist/panels/WidgetPanel.js +0 -189
  157. package/dist/panels/WidgetPanel.js.map +0 -1
  158. package/dist/panels/WidgetPanelTooltip.css +0 -40
  159. package/dist/panels/WidgetPanelTooltip.css.map +0 -1
  160. package/dist/panels/WidgetPanelTooltip.js +0 -49
  161. package/dist/panels/WidgetPanelTooltip.js.map +0 -1
  162. package/dist/panels/index.js +0 -22
  163. package/dist/panels/index.js.map +0 -1
  164. package/dist/prop-types/CommonPropTypes.js +0 -9
  165. package/dist/prop-types/CommonPropTypes.js.map +0 -1
  166. package/dist/prop-types/UIPropTypes.js +0 -47
  167. package/dist/prop-types/UIPropTypes.js.map +0 -1
  168. package/dist/prop-types/index.js +0 -3
  169. package/dist/prop-types/index.js.map +0 -1
  170. package/dist/redux/actionTypes.js +0 -3
  171. package/dist/redux/actionTypes.js.map +0 -1
  172. package/dist/redux/actions.js +0 -88
  173. package/dist/redux/actions.js.map +0 -1
  174. package/dist/redux/index.js +0 -10
  175. package/dist/redux/index.js.map +0 -1
  176. package/dist/redux/reducers/connection.js +0 -7
  177. package/dist/redux/reducers/connection.js.map +0 -1
  178. package/dist/redux/reducers/index.js +0 -5
  179. package/dist/redux/reducers/index.js.map +0 -1
  180. package/dist/redux/reducers/sessionWrapper.js +0 -7
  181. package/dist/redux/reducers/sessionWrapper.js.map +0 -1
  182. package/dist/redux/selectors.js +0 -92
  183. package/dist/redux/selectors.js.map +0 -1
@@ -39,15 +39,10 @@ declare const UIPropTypes: Readonly<{
39
39
  operateAs: PropTypes.Validator<string>;
40
40
  groups: PropTypes.Validator<(string | null | undefined)[]>;
41
41
  permissions: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
42
- isSuperUser: PropTypes.Validator<boolean>;
43
- isQueryViewOnly: PropTypes.Validator<boolean>;
44
- isNonInteractive: PropTypes.Validator<boolean>;
45
42
  canUsePanels: PropTypes.Validator<boolean>;
46
- canCreateDashboard: PropTypes.Validator<boolean>;
47
- canCreateCodeStudio: PropTypes.Validator<boolean>;
48
- canCreateQueryMonitor: PropTypes.Validator<boolean>;
49
43
  canCopy: PropTypes.Validator<boolean>;
50
44
  canDownloadCsv: PropTypes.Validator<boolean>;
45
+ canLogout: PropTypes.Validator<boolean>;
51
46
  }>>>;
52
47
  }>>;
53
48
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"UIPropTypes.d.ts","sourceRoot":"","sources":["../../src/prop-types/UIPropTypes.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AA6CnC,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMf,CAAC;AAEH,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"UIPropTypes.d.ts","sourceRoot":"","sources":["../../src/prop-types/UIPropTypes.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AAwCnC,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMf,CAAC;AAEH,eAAe,WAAW,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/dashboard-core-plugins",
3
- "version": "0.42.1-beta.4+154ccfcc",
3
+ "version": "0.43.0",
4
4
  "description": "Deephaven Dashboard Core Plugins",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -22,24 +22,24 @@
22
22
  "build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
23
23
  },
24
24
  "dependencies": {
25
- "@deephaven/chart": "^0.42.1-beta.4+154ccfcc",
26
- "@deephaven/components": "^0.42.1-beta.4+154ccfcc",
27
- "@deephaven/console": "^0.42.1-beta.4+154ccfcc",
28
- "@deephaven/dashboard": "^0.42.1-beta.4+154ccfcc",
29
- "@deephaven/file-explorer": "^0.42.1-beta.4+154ccfcc",
30
- "@deephaven/filters": "^0.42.1-beta.4+154ccfcc",
31
- "@deephaven/golden-layout": "^0.42.1-beta.4+154ccfcc",
32
- "@deephaven/grid": "^0.42.1-beta.4+154ccfcc",
33
- "@deephaven/icons": "^0.42.1-beta.4+154ccfcc",
34
- "@deephaven/iris-grid": "^0.42.1-beta.4+154ccfcc",
35
- "@deephaven/jsapi-bootstrap": "^0.42.1-beta.4+154ccfcc",
36
- "@deephaven/jsapi-types": "^0.42.1-beta.4+154ccfcc",
37
- "@deephaven/jsapi-utils": "^0.42.1-beta.4+154ccfcc",
38
- "@deephaven/log": "^0.42.1-beta.4+154ccfcc",
39
- "@deephaven/react-hooks": "^0.42.1-beta.4+154ccfcc",
40
- "@deephaven/redux": "^0.42.1-beta.4+154ccfcc",
41
- "@deephaven/storage": "^0.42.1-beta.4+154ccfcc",
42
- "@deephaven/utils": "^0.42.1-beta.4+154ccfcc",
25
+ "@deephaven/chart": "^0.43.0",
26
+ "@deephaven/components": "^0.43.0",
27
+ "@deephaven/console": "^0.43.0",
28
+ "@deephaven/dashboard": "^0.43.0",
29
+ "@deephaven/file-explorer": "^0.43.0",
30
+ "@deephaven/filters": "^0.43.0",
31
+ "@deephaven/golden-layout": "^0.43.0",
32
+ "@deephaven/grid": "^0.43.0",
33
+ "@deephaven/icons": "^0.43.0",
34
+ "@deephaven/iris-grid": "^0.43.0",
35
+ "@deephaven/jsapi-bootstrap": "^0.43.0",
36
+ "@deephaven/jsapi-types": "^0.43.0",
37
+ "@deephaven/jsapi-utils": "^0.43.0",
38
+ "@deephaven/log": "^0.43.0",
39
+ "@deephaven/react-hooks": "^0.43.0",
40
+ "@deephaven/redux": "^0.43.0",
41
+ "@deephaven/storage": "^0.43.0",
42
+ "@deephaven/utils": "^0.43.0",
43
43
  "@fortawesome/react-fontawesome": "^0.2.0",
44
44
  "classnames": "^2.3.1",
45
45
  "deep-equal": "^2.0.5",
@@ -62,8 +62,8 @@
62
62
  "react-redux": "^7.2.4"
63
63
  },
64
64
  "devDependencies": {
65
- "@deephaven/jsapi-shim": "^0.42.1-beta.4+154ccfcc",
66
- "@deephaven/mocks": "^0.42.1-beta.4+154ccfcc"
65
+ "@deephaven/jsapi-shim": "^0.43.0",
66
+ "@deephaven/mocks": "^0.43.0"
67
67
  },
68
68
  "files": [
69
69
  "dist"
@@ -74,5 +74,5 @@
74
74
  "publishConfig": {
75
75
  "access": "public"
76
76
  },
77
- "gitHead": "154ccfccd5a6f9996d67f0fcc71d031985bfd6a5"
77
+ "gitHead": "b16776b5bdc15a02cd2897cd79d562ea38c60ed8"
78
78
  }
@@ -1,54 +0,0 @@
1
- import { useCallback } from 'react';
2
- import { ChartModelFactory, ChartUtils } from '@deephaven/chart';
3
- import { assertIsDashboardPluginProps, LayoutUtils, useListener } from '@deephaven/dashboard';
4
- import { useApi } from '@deephaven/jsapi-bootstrap';
5
- import shortid from 'shortid';
6
- import { IrisGridEvent } from "./events/index.js";
7
- import { ChartPanel } from "./panels/index.js";
8
- /**
9
- * Listens for IrisGridEvent.CREATE_CHART and creates a chart from the settings provided
10
- * Requires the GridPlugin and ChartPlugin plugins to be loaded as well
11
- */
12
- export function ChartBuilderPlugin(props) {
13
- assertIsDashboardPluginProps(props);
14
- var {
15
- id,
16
- layout
17
- } = props;
18
- var dh = useApi();
19
- var handleCreateChart = useCallback(_ref => {
20
- var {
21
- metadata,
22
- panelId = shortid.generate(),
23
- table
24
- } = _ref;
25
- var {
26
- settings
27
- } = metadata;
28
- var makeModel = () => ChartModelFactory.makeModelFromSettings(dh, settings, table);
29
- var title = ChartUtils.titleFromSettings(settings);
30
- var config = {
31
- type: 'react-component',
32
- component: ChartPanel.COMPONENT,
33
- props: {
34
- localDashboardId: id,
35
- id: panelId,
36
- metadata,
37
- makeModel
38
- },
39
- title,
40
- id: panelId
41
- };
42
- var {
43
- root
44
- } = layout;
45
- LayoutUtils.openComponent({
46
- root,
47
- config
48
- });
49
- }, [dh, id, layout]);
50
- useListener(layout.eventHub, IrisGridEvent.CREATE_CHART, handleCreateChart);
51
- return null;
52
- }
53
- export default ChartBuilderPlugin;
54
- //# sourceMappingURL=ChartBuilderPlugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChartBuilderPlugin.js","names":["useCallback","ChartModelFactory","ChartUtils","assertIsDashboardPluginProps","LayoutUtils","useListener","useApi","shortid","IrisGridEvent","ChartPanel","ChartBuilderPlugin","props","id","layout","dh","handleCreateChart","metadata","panelId","generate","table","settings","makeModel","makeModelFromSettings","title","titleFromSettings","config","type","component","COMPONENT","localDashboardId","root","openComponent","eventHub","CREATE_CHART"],"sources":["../src/ChartBuilderPlugin.tsx"],"sourcesContent":["import { useCallback } from 'react';\nimport {\n ChartModelFactory,\n ChartModelSettings,\n ChartUtils,\n} from '@deephaven/chart';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n LayoutUtils,\n useListener,\n} from '@deephaven/dashboard';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport type { Table } from '@deephaven/jsapi-types';\nimport shortid from 'shortid';\nimport { IrisGridEvent } from './events';\nimport { ChartPanel } from './panels';\n\nexport type ChartBuilderPluginProps = Partial<DashboardPluginComponentProps>;\n\n/**\n * Listens for IrisGridEvent.CREATE_CHART and creates a chart from the settings provided\n * Requires the GridPlugin and ChartPlugin plugins to be loaded as well\n */\nexport function ChartBuilderPlugin(\n props: ChartBuilderPluginProps\n): JSX.Element | null {\n assertIsDashboardPluginProps(props);\n const { id, layout } = props;\n const dh = useApi();\n const handleCreateChart = useCallback(\n ({\n metadata,\n panelId = shortid.generate(),\n table,\n }: {\n metadata: {\n settings: ChartModelSettings;\n sourcePanelId: string;\n table: string;\n };\n panelId?: string;\n table: Table;\n }) => {\n const { settings } = metadata;\n const makeModel = () =>\n ChartModelFactory.makeModelFromSettings(dh, settings, table);\n const title = ChartUtils.titleFromSettings(settings);\n\n const config = {\n type: 'react-component' as const,\n component: ChartPanel.COMPONENT,\n props: {\n localDashboardId: id,\n id: panelId,\n metadata,\n makeModel,\n },\n title,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config });\n },\n [dh, id, layout]\n );\n\n useListener(layout.eventHub, IrisGridEvent.CREATE_CHART, handleCreateChart);\n\n return null;\n}\n\nexport default ChartBuilderPlugin;\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SACEC,iBAAiB,EAEjBC,UAAU,QACL,kBAAkB;AACzB,SACEC,4BAA4B,EAE5BC,WAAW,EACXC,WAAW,QACN,sBAAsB;AAC7B,SAASC,MAAM,QAAQ,4BAA4B;AAEnD,OAAOC,OAAO,MAAM,SAAS;AAAC,SACrBC,aAAa;AAAA,SACbC,UAAU;AAInB;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkB,CAChCC,KAA8B,EACV;EACpBR,4BAA4B,CAACQ,KAAK,CAAC;EACnC,IAAM;IAAEC,EAAE;IAAEC;EAAO,CAAC,GAAGF,KAAK;EAC5B,IAAMG,EAAE,GAAGR,MAAM,EAAE;EACnB,IAAMS,iBAAiB,GAAGf,WAAW,CACnC,QAYM;IAAA,IAZL;MACCgB,QAAQ;MACRC,OAAO,GAAGV,OAAO,CAACW,QAAQ,EAAE;MAC5BC;IASF,CAAC;IACC,IAAM;MAAEC;IAAS,CAAC,GAAGJ,QAAQ;IAC7B,IAAMK,SAAS,GAAG,MAChBpB,iBAAiB,CAACqB,qBAAqB,CAACR,EAAE,EAAEM,QAAQ,EAAED,KAAK,CAAC;IAC9D,IAAMI,KAAK,GAAGrB,UAAU,CAACsB,iBAAiB,CAACJ,QAAQ,CAAC;IAEpD,IAAMK,MAAM,GAAG;MACbC,IAAI,EAAE,iBAA0B;MAChCC,SAAS,EAAElB,UAAU,CAACmB,SAAS;MAC/BjB,KAAK,EAAE;QACLkB,gBAAgB,EAAEjB,EAAE;QACpBA,EAAE,EAAEK,OAAO;QACXD,QAAQ;QACRK;MACF,CAAC;MACDE,KAAK;MACLX,EAAE,EAAEK;IACN,CAAC;IAED,IAAM;MAAEa;IAAK,CAAC,GAAGjB,MAAM;IACvBT,WAAW,CAAC2B,aAAa,CAAC;MAAED,IAAI;MAAEL;IAAO,CAAC,CAAC;EAC7C,CAAC,EACD,CAACX,EAAE,EAAEF,EAAE,EAAEC,MAAM,CAAC,CACjB;EAEDR,WAAW,CAACQ,MAAM,CAACmB,QAAQ,EAAExB,aAAa,CAACyB,YAAY,EAAElB,iBAAiB,CAAC;EAE3E,OAAO,IAAI;AACb;AAEA,eAAeL,kBAAkB"}
@@ -1,66 +0,0 @@
1
- import { useCallback, useEffect } from 'react';
2
- import { ChartModelFactory } from '@deephaven/chart';
3
- import { assertIsDashboardPluginProps, LayoutUtils, PanelEvent, useListener } from '@deephaven/dashboard';
4
- import { useApi } from '@deephaven/jsapi-bootstrap';
5
- import shortid from 'shortid';
6
- import { ChartPanel } from "./panels/index.js";
7
- export function ChartPlugin(props) {
8
- assertIsDashboardPluginProps(props);
9
- var {
10
- id,
11
- layout,
12
- registerComponent,
13
- hydrate
14
- } = props;
15
- var dh = useApi();
16
- var handlePanelOpen = useCallback(_ref => {
17
- var {
18
- dragEvent,
19
- fetch,
20
- panelId = shortid.generate(),
21
- widget
22
- } = _ref;
23
- var {
24
- name,
25
- type
26
- } = widget;
27
- if (type !== dh.VariableType.FIGURE) {
28
- return;
29
- }
30
- var metadata = {
31
- name,
32
- figure: name
33
- };
34
- var makeModel = () => fetch().then(figure => ChartModelFactory.makeModel(dh, undefined, figure));
35
- var config = {
36
- type: 'react-component',
37
- component: ChartPanel.COMPONENT,
38
- props: {
39
- localDashboardId: id,
40
- id: panelId,
41
- metadata,
42
- makeModel
43
- },
44
- title: name,
45
- id: panelId
46
- };
47
- var {
48
- root
49
- } = layout;
50
- LayoutUtils.openComponent({
51
- root,
52
- config,
53
- dragEvent
54
- });
55
- }, [dh, id, layout]);
56
- useEffect(function registerComponentsAndReturnCleanup() {
57
- var cleanups = [registerComponent(ChartPanel.COMPONENT, ChartPanel, hydrate)];
58
- return () => {
59
- cleanups.forEach(cleanup => cleanup());
60
- };
61
- }, [hydrate, registerComponent]);
62
- useListener(layout.eventHub, PanelEvent.OPEN, handlePanelOpen);
63
- return null;
64
- }
65
- export default ChartPlugin;
66
- //# sourceMappingURL=ChartPlugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChartPlugin.js","names":["useCallback","useEffect","ChartModelFactory","assertIsDashboardPluginProps","LayoutUtils","PanelEvent","useListener","useApi","shortid","ChartPanel","ChartPlugin","props","id","layout","registerComponent","hydrate","dh","handlePanelOpen","dragEvent","fetch","panelId","generate","widget","name","type","VariableType","FIGURE","metadata","figure","makeModel","then","undefined","config","component","COMPONENT","localDashboardId","title","root","openComponent","registerComponentsAndReturnCleanup","cleanups","forEach","cleanup","eventHub","OPEN"],"sources":["../src/ChartPlugin.tsx"],"sourcesContent":["import { DragEvent, useCallback, useEffect } from 'react';\nimport { ChartModelFactory } from '@deephaven/chart';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n LayoutUtils,\n PanelEvent,\n PanelHydrateFunction,\n useListener,\n} from '@deephaven/dashboard';\nimport type { Figure, VariableDefinition } from '@deephaven/jsapi-types';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport shortid from 'shortid';\nimport { ChartPanel, ChartPanelProps } from './panels';\n\nexport type ChartPluginProps = Partial<DashboardPluginComponentProps> & {\n hydrate: PanelHydrateFunction<ChartPanelProps>;\n};\n\nexport function ChartPlugin(props: ChartPluginProps): JSX.Element | null {\n assertIsDashboardPluginProps(props);\n const { id, layout, registerComponent, hydrate } = props;\n\n const dh = useApi();\n\n const handlePanelOpen = useCallback(\n ({\n dragEvent,\n fetch,\n panelId = shortid.generate(),\n widget,\n }: {\n dragEvent?: DragEvent;\n fetch: () => Promise<Figure>;\n panelId?: string;\n widget: VariableDefinition;\n }) => {\n const { name, type } = widget;\n if (type !== dh.VariableType.FIGURE) {\n return;\n }\n\n const metadata = { name, figure: name };\n const makeModel = () =>\n fetch().then((figure: Figure) =>\n ChartModelFactory.makeModel(dh, undefined, figure)\n );\n const config = {\n type: 'react-component' as const,\n component: ChartPanel.COMPONENT,\n props: {\n localDashboardId: id,\n id: panelId,\n metadata,\n makeModel,\n },\n title: name,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config, dragEvent });\n },\n [dh, id, layout]\n );\n\n useEffect(\n function registerComponentsAndReturnCleanup() {\n const cleanups = [\n registerComponent(\n ChartPanel.COMPONENT,\n ChartPanel,\n hydrate as PanelHydrateFunction\n ),\n ];\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n },\n [hydrate, registerComponent]\n );\n\n useListener(layout.eventHub, PanelEvent.OPEN, handlePanelOpen);\n\n return null;\n}\n\nexport default ChartPlugin;\n"],"mappings":"AAAA,SAAoBA,WAAW,EAAEC,SAAS,QAAQ,OAAO;AACzD,SAASC,iBAAiB,QAAQ,kBAAkB;AACpD,SACEC,4BAA4B,EAE5BC,WAAW,EACXC,UAAU,EAEVC,WAAW,QACN,sBAAsB;AAE7B,SAASC,MAAM,QAAQ,4BAA4B;AACnD,OAAOC,OAAO,MAAM,SAAS;AAAC,SACrBC,UAAU;AAMnB,OAAO,SAASC,WAAW,CAACC,KAAuB,EAAsB;EACvER,4BAA4B,CAACQ,KAAK,CAAC;EACnC,IAAM;IAAEC,EAAE;IAAEC,MAAM;IAAEC,iBAAiB;IAAEC;EAAQ,CAAC,GAAGJ,KAAK;EAExD,IAAMK,EAAE,GAAGT,MAAM,EAAE;EAEnB,IAAMU,eAAe,GAAGjB,WAAW,CACjC,QAUM;IAAA,IAVL;MACCkB,SAAS;MACTC,KAAK;MACLC,OAAO,GAAGZ,OAAO,CAACa,QAAQ,EAAE;MAC5BC;IAMF,CAAC;IACC,IAAM;MAAEC,IAAI;MAAEC;IAAK,CAAC,GAAGF,MAAM;IAC7B,IAAIE,IAAI,KAAKR,EAAE,CAACS,YAAY,CAACC,MAAM,EAAE;MACnC;IACF;IAEA,IAAMC,QAAQ,GAAG;MAAEJ,IAAI;MAAEK,MAAM,EAAEL;IAAK,CAAC;IACvC,IAAMM,SAAS,GAAG,MAChBV,KAAK,EAAE,CAACW,IAAI,CAAEF,MAAc,IAC1B1B,iBAAiB,CAAC2B,SAAS,CAACb,EAAE,EAAEe,SAAS,EAAEH,MAAM,CAAC,CACnD;IACH,IAAMI,MAAM,GAAG;MACbR,IAAI,EAAE,iBAA0B;MAChCS,SAAS,EAAExB,UAAU,CAACyB,SAAS;MAC/BvB,KAAK,EAAE;QACLwB,gBAAgB,EAAEvB,EAAE;QACpBA,EAAE,EAAEQ,OAAO;QACXO,QAAQ;QACRE;MACF,CAAC;MACDO,KAAK,EAAEb,IAAI;MACXX,EAAE,EAAEQ;IACN,CAAC;IAED,IAAM;MAAEiB;IAAK,CAAC,GAAGxB,MAAM;IACvBT,WAAW,CAACkC,aAAa,CAAC;MAAED,IAAI;MAAEL,MAAM;MAAEd;IAAU,CAAC,CAAC;EACxD,CAAC,EACD,CAACF,EAAE,EAAEJ,EAAE,EAAEC,MAAM,CAAC,CACjB;EAEDZ,SAAS,CACP,SAASsC,kCAAkC,GAAG;IAC5C,IAAMC,QAAQ,GAAG,CACf1B,iBAAiB,CACfL,UAAU,CAACyB,SAAS,EACpBzB,UAAU,EACVM,OAAO,CACR,CACF;IACD,OAAO,MAAM;MACXyB,QAAQ,CAACC,OAAO,CAACC,OAAO,IAAIA,OAAO,EAAE,CAAC;IACxC,CAAC;EACH,CAAC,EACD,CAAC3B,OAAO,EAAED,iBAAiB,CAAC,CAC7B;EAEDR,WAAW,CAACO,MAAM,CAAC8B,QAAQ,EAAEtC,UAAU,CAACuC,IAAI,EAAE3B,eAAe,CAAC;EAE9D,OAAO,IAAI;AACb;AAEA,eAAeP,WAAW"}
@@ -1,396 +0,0 @@
1
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
5
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
6
- import { assertIsDashboardPluginProps, DashboardUtils, LayoutUtils, useListener } from '@deephaven/dashboard';
7
- import { FileUtils } from '@deephaven/file-explorer';
8
- import { isComponent } from '@deephaven/golden-layout';
9
- import Log from '@deephaven/log';
10
- import { useCallback, useEffect, useRef, useState } from 'react';
11
- import { useDispatch } from 'react-redux';
12
- import shortid from 'shortid';
13
- import { ConsoleEvent, NotebookEvent } from "./events/index.js";
14
- import { ConsolePanel, CommandHistoryPanel, FileExplorerPanel, LogPanel, NotebookPanel } from "./panels/index.js";
15
- import { setDashboardConsoleSettings } from "./redux/index.js";
16
- var log = Log.module('ConsolePlugin');
17
- function isNotebookPanel(panel) {
18
- return panel.notebook !== undefined;
19
- }
20
- function assertIsConsolePluginProps(props) {
21
- assertIsDashboardPluginProps(props);
22
- }
23
- export function ConsolePlugin(props) {
24
- assertIsConsolePluginProps(props);
25
- var {
26
- id,
27
- hydrateConsole,
28
- layout,
29
- panelManager,
30
- registerComponent,
31
- notebooksUrl
32
- } = props;
33
- var notebookIndex = useRef(0);
34
- // Map from file ID to panel ID
35
- var [openFileMap, setOpenFileMap] = useState(new Map());
36
- var [previewFileMap, setPreviewFileMap] = useState(new Map());
37
- var dispatch = useDispatch();
38
- var getConsolePanel = useCallback(() => panelManager.getLastUsedPanelOfType(ConsolePanel), [panelManager]);
39
- var addOpenFileMapEntry = useCallback((key, value) => {
40
- setOpenFileMap(map => new Map(map.set(key, value)));
41
- }, [setOpenFileMap]);
42
- var deleteOpenFileMapEntry = useCallback(key => {
43
- setOpenFileMap(map => {
44
- map.delete(key);
45
- return new Map(map);
46
- });
47
- }, [setOpenFileMap]);
48
- var addPreviewFileMapEntry = useCallback((key, value) => {
49
- setPreviewFileMap(map => new Map(map.set(key, value)));
50
- }, [setPreviewFileMap]);
51
- var deletePreviewFileMapEntry = useCallback(key => {
52
- setPreviewFileMap(map => {
53
- map.delete(key);
54
- return new Map(map);
55
- });
56
- }, [setPreviewFileMap]);
57
- var handleSendCommand = useCallback(function (command) {
58
- var focus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
59
- var execute = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
60
- var trimmedCommand = command && command.trim();
61
- if (!trimmedCommand) {
62
- log.info('Ignoring empty code');
63
- } else {
64
- var consolePanel = getConsolePanel();
65
- if (!consolePanel || !(consolePanel instanceof ConsolePanel.WrappedComponent)) {
66
- log.error('Console panel not found');
67
- return;
68
- }
69
- log.debug('Send command: ', command, focus, execute);
70
- consolePanel.addCommand(command, focus, execute);
71
- }
72
- }, [getConsolePanel]);
73
- var handleSettingsChanged = useCallback(consoleSettings => {
74
- dispatch(setDashboardConsoleSettings(id, consoleSettings));
75
- }, [dispatch, id]);
76
- var getNotebookFileName = useCallback(_ref => {
77
- var {
78
- language
79
- } = _ref;
80
- var extension = language === 'python' ? 'py' : language;
81
- var title = null;
82
- if (extension == null) {
83
- log.debug('No extension for language', language);
84
- title = "Untitled-".concat(notebookIndex.current);
85
- } else {
86
- title = "Untitled-".concat(notebookIndex.current, ".").concat(extension);
87
- }
88
- notebookIndex.current += 1;
89
- return title;
90
- }, []);
91
- var getPanelIdForFileMetadata = useCallback(function (fileMetadata) {
92
- var createIfNecessary = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
93
- var {
94
- id: fileId
95
- } = fileMetadata;
96
- if (fileId != null && openFileMap.has(fileId)) {
97
- return openFileMap.get(fileId);
98
- }
99
- if (fileId != null && previewFileMap.has(fileId)) {
100
- return previewFileMap.get(fileId);
101
- }
102
- if (createIfNecessary) {
103
- return shortid.generate();
104
- }
105
- return undefined;
106
- }, [openFileMap, previewFileMap]);
107
- var renamePanel = useCallback((panelId, newTitle) => {
108
- LayoutUtils.renameComponent(layout.root, {
109
- id: panelId
110
- }, newTitle);
111
- }, [layout.root]);
112
- var renameFilePanel = useCallback((oldName, newName) => {
113
- log.debug('Rename file panel', oldName, newName);
114
- var panelId;
115
- if (openFileMap.has(oldName)) {
116
- panelId = openFileMap.get(oldName);
117
- deleteOpenFileMapEntry(oldName);
118
- if (panelId != null) {
119
- addOpenFileMapEntry(newName, panelId);
120
- }
121
- }
122
- if (previewFileMap.has(oldName)) {
123
- panelId = previewFileMap.get(oldName);
124
- deletePreviewFileMapEntry(oldName);
125
- if (panelId != null) {
126
- addPreviewFileMapEntry(newName, panelId);
127
- }
128
- }
129
- if (panelId === undefined) {
130
- log.debug2("File ".concat(oldName, " isn't open, no need to rename the tab"));
131
- return;
132
- }
133
- renamePanel(panelId, FileUtils.getBaseName(newName));
134
- }, [openFileMap, previewFileMap, renamePanel, addOpenFileMapEntry, addPreviewFileMapEntry, deleteOpenFileMapEntry, deletePreviewFileMapEntry]);
135
-
136
- /**
137
- * Show the panel for the given file metadata.
138
- * If the panel is not already open, then it just logs an error and does nothing.
139
- */
140
- var showFilePanel = useCallback(fileMetadata => {
141
- var panelId = getPanelIdForFileMetadata(fileMetadata, false);
142
- if (panelId == null) {
143
- log.error('Could not find panel id for file metadata', fileMetadata);
144
- return;
145
- }
146
- LayoutUtils.activateTab(layout.root, {
147
- id: panelId
148
- });
149
- }, [getPanelIdForFileMetadata, layout.root]);
150
- var registerFilePanel = useCallback((panelId, fileMetadata, isPreview) => {
151
- log.debug('registerFilePanel', panelId, fileMetadata, isPreview);
152
- if (fileMetadata == null || fileMetadata.id == null) {
153
- log.debug('Ignore empty file id', fileMetadata);
154
- return;
155
- }
156
- var {
157
- id: fileId
158
- } = fileMetadata;
159
- if (isPreview) {
160
- addPreviewFileMapEntry(fileId, panelId);
161
- return;
162
- }
163
- if (openFileMap.has(fileId)) {
164
- var existingPanelId = openFileMap.get(fileId);
165
- if (panelId === existingPanelId) {
166
- log.debug("Update tab title for file ".concat(fileId));
167
- var {
168
- itemName
169
- } = fileMetadata;
170
- renameFilePanel(fileId, itemName);
171
- } else {
172
- log.error("File ".concat(fileId, " already associated with a different tab ").concat(existingPanelId));
173
- }
174
- return;
175
- }
176
- addOpenFileMapEntry(fileId, panelId);
177
-
178
- // De-register preview tab
179
- if (previewFileMap.has(fileId)) {
180
- deletePreviewFileMapEntry(fileId);
181
- }
182
- }, [openFileMap, previewFileMap, renameFilePanel, addOpenFileMapEntry, addPreviewFileMapEntry, deletePreviewFileMapEntry]);
183
- var unregisterFilePanel = useCallback((fileMetadata, isPreview) => {
184
- log.debug('unregisterFileTab', fileMetadata, isPreview);
185
- if (fileMetadata == null || fileMetadata.id == null) {
186
- log.debug('Ignore empty file id', fileMetadata);
187
- return;
188
- }
189
- var {
190
- id: fileId
191
- } = fileMetadata;
192
- if (isPreview) {
193
- deletePreviewFileMapEntry(fileId);
194
- return;
195
- }
196
- deleteOpenFileMapEntry(fileId);
197
- }, [deleteOpenFileMapEntry, deletePreviewFileMapEntry]);
198
- var closeFilePanel = useCallback((fileMetadata, options) => {
199
- log.debug('closeFilePanel', fileMetadata);
200
- var {
201
- id: fileId
202
- } = fileMetadata;
203
- var panelId = null;
204
- var isPreview = false;
205
- if (openFileMap.has(fileId)) {
206
- panelId = openFileMap.get(fileId);
207
- } else if (previewFileMap.has(fileId)) {
208
- panelId = previewFileMap.get(fileId);
209
- isPreview = true;
210
- } else {
211
- log.debug("File ".concat(fileId, " isn't open, ignore close event"));
212
- return;
213
- }
214
- unregisterFilePanel(fileMetadata, isPreview);
215
- LayoutUtils.closeComponent(layout.root, {
216
- id: panelId
217
- }, options);
218
- }, [layout.root, openFileMap, previewFileMap, unregisterFilePanel]);
219
- var getNotebookTitle = useCallback(fileMetadata => {
220
- var {
221
- itemName
222
- } = fileMetadata;
223
- return FileUtils.getBaseName(itemName);
224
- }, []);
225
- var fileIsOpen = useCallback(fileMetadata => {
226
- var {
227
- id: fileId
228
- } = fileMetadata;
229
- log.debug('fileIsOpen', fileMetadata, fileId, openFileMap);
230
- return fileId != null && openFileMap.has(fileId);
231
- }, [openFileMap]);
232
- var fileIsOpenAsPreview = useCallback(fileMetadata => {
233
- var {
234
- id: fileId
235
- } = fileMetadata;
236
- log.debug('fileIsOpenAsPreview', fileMetadata, fileId, previewFileMap);
237
- return fileId != null && previewFileMap.has(fileId);
238
- }, [previewFileMap]);
239
-
240
- /*
241
- * Attempts to focus the panel with the provided panelId
242
- */
243
- var focusPanelById = useCallback(panelId => {
244
- if (panelId == null) {
245
- return;
246
- }
247
- var panel = panelManager.getOpenedPanelById(panelId);
248
- if (panel && isNotebookPanel(panel)) {
249
- panel.focus();
250
- }
251
- }, [panelManager]);
252
- var makeConfig = useCallback(_ref2 => {
253
- var {
254
- id: panelId,
255
- settings,
256
- fileMetadata,
257
- session,
258
- sessionLanguage,
259
- isPreview = false
260
- } = _ref2;
261
- var panelState = {
262
- settings,
263
- fileMetadata
264
- };
265
- var title = getNotebookTitle(fileMetadata);
266
- return {
267
- type: 'react-component',
268
- component: NotebookPanel.COMPONENT,
269
- isFocusOnShow: false,
270
- props: {
271
- localDashboardId: id,
272
- metadata: {
273
- id: panelId
274
- },
275
- session,
276
- sessionLanguage,
277
- panelState,
278
- isPreview,
279
- notebooksUrl
280
- },
281
- title,
282
- id: panelId
283
- };
284
- }, [getNotebookTitle, id, notebooksUrl]);
285
- var createNotebook = useCallback(function (session, sessionLanguage, settings) {
286
- var fileMetadata = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {
287
- id: null,
288
- itemName: getNotebookFileName(settings)
289
- };
290
- var panelId = getPanelIdForFileMetadata(fileMetadata);
291
- if (fileIsOpen(fileMetadata) && panelId != null) {
292
- log.debug('File is already open, focus panel');
293
- showFilePanel(fileMetadata);
294
- focusPanelById(panelId);
295
- return;
296
- }
297
- var stack = LayoutUtils.getStackForComponentTypes(layout.root, [NotebookPanel.COMPONENT]);
298
- var config = makeConfig({
299
- id: panelId,
300
- settings,
301
- fileMetadata,
302
- session,
303
- sessionLanguage
304
- });
305
- log.debug('createNotebook', config, openFileMap);
306
- LayoutUtils.openComponentInStack(stack, config);
307
- }, [fileIsOpen, focusPanelById, getNotebookFileName, getPanelIdForFileMetadata, layout.root, makeConfig, openFileMap, showFilePanel]);
308
- var selectNotebook = useCallback(function (session, sessionLanguage, settings, fileMetadata) {
309
- var shouldFocus = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
310
- log.debug('selectNotebook', fileMetadata, shouldFocus);
311
- var isFileOpen = fileIsOpen(fileMetadata);
312
- var isFileOpenAsPreview = fileIsOpenAsPreview(fileMetadata);
313
- var [previewId] = [...previewFileMap.values()];
314
- var isPreview = !shouldFocus;
315
- var panelId = isPreview && previewId ? previewId : getPanelIdForFileMetadata(fileMetadata);
316
- if (panelId == null || panelId === '') {
317
- throw new Error('Unable to retrieve or create panelId for metadata', fileMetadata);
318
- }
319
-
320
- // If the file is already open, show it
321
- if (isFileOpen || isFileOpenAsPreview) {
322
- showFilePanel(fileMetadata);
323
- } else {
324
- var stack = LayoutUtils.getStackForComponentTypes(layout.root, [NotebookPanel.COMPONENT]);
325
- var config = makeConfig({
326
- id: panelId,
327
- settings,
328
- fileMetadata,
329
- session,
330
- sessionLanguage,
331
- isPreview
332
- });
333
-
334
- // This will replace the existing preview by panelId if needed
335
- LayoutUtils.openComponentInStack(stack, config);
336
- }
337
-
338
- // If the file is open as a preview and focused, promote to non-preview
339
- if (isFileOpenAsPreview && shouldFocus) {
340
- var fileId = fileMetadata.id;
341
- var _stack = LayoutUtils.getStackForConfig(layout.root, {
342
- component: NotebookPanel.COMPONENT,
343
- id: panelId
344
- });
345
- var item = LayoutUtils.getContentItemInStack(_stack, {
346
- component: NotebookPanel.COMPONENT,
347
- id: panelId
348
- });
349
- if (item && isComponent(item)) {
350
- item.container.emit(NotebookEvent.PROMOTE_FROM_PREVIEW);
351
- deletePreviewFileMapEntry(fileId);
352
- addOpenFileMapEntry(fileId, panelId);
353
- }
354
- }
355
- if (shouldFocus) {
356
- // Focus the tab if we're supposed to
357
- focusPanelById(panelId);
358
- }
359
- }, [showFilePanel, fileIsOpen, fileIsOpenAsPreview, focusPanelById, getPanelIdForFileMetadata, layout.root, makeConfig, previewFileMap, deletePreviewFileMapEntry, addOpenFileMapEntry]);
360
-
361
- /** Attempts to send the text to a notebook matching the passed in settings */
362
- var sendToNotebook = useCallback(function (session, sessionLanguage) {
363
- var settings = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
364
- var createIfNecessary = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
365
- var notebookPanel = panelManager.getLastUsedPanelOfType(NotebookPanel);
366
- if (notebookPanel && isNotebookPanel(notebookPanel)) {
367
- if (settings != null && settings.value != null && notebookPanel.notebook != null) {
368
- notebookPanel.notebook.append(settings.value);
369
- }
370
- } else if (createIfNecessary) {
371
- createNotebook(session, sessionLanguage, settings);
372
- }
373
- }, [createNotebook, panelManager]);
374
- var hydrateNotebook = useCallback((panelProps, panelDashboardId) => DashboardUtils.hydrate(_objectSpread(_objectSpread({}, panelProps), {}, {
375
- notebooksUrl
376
- }), panelDashboardId), [notebooksUrl]);
377
- useEffect(function registerComponentsAndReturnCleanup() {
378
- var cleanups = [registerComponent(ConsolePanel.COMPONENT, ConsolePanel, hydrateConsole), registerComponent(CommandHistoryPanel.COMPONENT, CommandHistoryPanel), registerComponent(FileExplorerPanel.COMPONENT, FileExplorerPanel), registerComponent(LogPanel.COMPONENT, LogPanel), registerComponent(NotebookPanel.COMPONENT, NotebookPanel, hydrateNotebook)];
379
- return () => {
380
- cleanups.forEach(cleanup => cleanup());
381
- };
382
- }, [registerComponent, hydrateConsole, hydrateNotebook]);
383
- useListener(layout.eventHub, ConsoleEvent.SEND_COMMAND, handleSendCommand);
384
- useListener(layout.eventHub, ConsoleEvent.SETTINGS_CHANGED, handleSettingsChanged);
385
- useListener(layout.eventHub, NotebookEvent.CLOSE_FILE, closeFilePanel);
386
- useListener(layout.eventHub, NotebookEvent.CREATE_NOTEBOOK, createNotebook);
387
- useListener(layout.eventHub, NotebookEvent.SELECT_NOTEBOOK, selectNotebook);
388
- useListener(layout.eventHub, NotebookEvent.RENAME, renamePanel);
389
- useListener(layout.eventHub, NotebookEvent.RENAME_FILE, renameFilePanel);
390
- useListener(layout.eventHub, NotebookEvent.SEND_TO_NOTEBOOK, sendToNotebook);
391
- useListener(layout.eventHub, NotebookEvent.REGISTER_FILE, registerFilePanel);
392
- useListener(layout.eventHub, NotebookEvent.UNREGISTER_FILE, unregisterFilePanel);
393
- return null;
394
- }
395
- export default ConsolePlugin;
396
- //# sourceMappingURL=ConsolePlugin.js.map