@deephaven/dashboard-core-plugins 0.22.3-beta.15 → 0.22.3-beta.21

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 (174) hide show
  1. package/dist/ChartBuilderPlugin.d.ts +1 -1
  2. package/dist/ChartBuilderPlugin.d.ts.map +1 -1
  3. package/dist/ChartBuilderPlugin.js +6 -8
  4. package/dist/ChartBuilderPlugin.js.map +1 -1
  5. package/dist/ChartPlugin.d.ts +1 -1
  6. package/dist/ChartPlugin.d.ts.map +1 -1
  7. package/dist/ChartPlugin.js +4 -8
  8. package/dist/ChartPlugin.js.map +1 -1
  9. package/dist/ConsolePlugin.d.ts +1 -1
  10. package/dist/ConsolePlugin.d.ts.map +1 -1
  11. package/dist/ConsolePlugin.js +16 -62
  12. package/dist/ConsolePlugin.js.map +1 -1
  13. package/dist/FilterPlugin.d.ts +1 -1
  14. package/dist/FilterPlugin.d.ts.map +1 -1
  15. package/dist/FilterPlugin.js +6 -13
  16. package/dist/FilterPlugin.js.map +1 -1
  17. package/dist/GridPlugin.d.ts +1 -1
  18. package/dist/GridPlugin.d.ts.map +1 -1
  19. package/dist/GridPlugin.js +4 -8
  20. package/dist/GridPlugin.js.map +1 -1
  21. package/dist/LinkerPlugin.d.ts +1 -1
  22. package/dist/LinkerPlugin.d.ts.map +1 -1
  23. package/dist/LinkerPlugin.js +2 -2
  24. package/dist/LinkerPlugin.js.map +1 -1
  25. package/dist/MarkdownPlugin.d.ts +1 -1
  26. package/dist/MarkdownPlugin.d.ts.map +1 -1
  27. package/dist/MarkdownPlugin.js +4 -8
  28. package/dist/MarkdownPlugin.js.map +1 -1
  29. package/dist/PandasPlugin.d.ts +1 -1
  30. package/dist/PandasPlugin.d.ts.map +1 -1
  31. package/dist/PandasPlugin.js +4 -8
  32. package/dist/PandasPlugin.js.map +1 -1
  33. package/dist/controls/ControlType.js +0 -6
  34. package/dist/controls/ControlType.js.map +1 -1
  35. package/dist/controls/dropdown-filter/DropdownFilter.d.ts +2 -2
  36. package/dist/controls/dropdown-filter/DropdownFilter.d.ts.map +1 -1
  37. package/dist/controls/dropdown-filter/DropdownFilter.js +7 -51
  38. package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
  39. package/dist/controls/input-filter/InputFilter.d.ts +1 -1
  40. package/dist/controls/input-filter/InputFilter.d.ts.map +1 -1
  41. package/dist/controls/input-filter/InputFilter.js +1 -31
  42. package/dist/controls/input-filter/InputFilter.js.map +1 -1
  43. package/dist/controls/markdown/MarkdownContainer.js +0 -3
  44. package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
  45. package/dist/controls/markdown/MarkdownEditor.d.ts +0 -2
  46. package/dist/controls/markdown/MarkdownEditor.d.ts.map +1 -1
  47. package/dist/controls/markdown/MarkdownEditor.js +13 -20
  48. package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
  49. package/dist/controls/markdown/MarkdownStartPage.js +0 -11
  50. package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
  51. package/dist/controls/markdown/MarkdownUtils.js +0 -7
  52. package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
  53. package/dist/events/ChartEvent.js +0 -5
  54. package/dist/events/ChartEvent.js.map +1 -1
  55. package/dist/events/ConsoleEvent.js +0 -7
  56. package/dist/events/ConsoleEvent.js.map +1 -1
  57. package/dist/events/InputFilterEvent.js +0 -10
  58. package/dist/events/InputFilterEvent.js.map +1 -1
  59. package/dist/events/IrisGridEvent.js +0 -8
  60. package/dist/events/IrisGridEvent.js.map +1 -1
  61. package/dist/events/MarkdownEvent.js.map +1 -1
  62. package/dist/events/NotebookEvent.js +0 -10
  63. package/dist/events/NotebookEvent.js.map +1 -1
  64. package/dist/events/PQEvent.js +0 -5
  65. package/dist/events/PQEvent.js.map +1 -1
  66. package/dist/events/PandasEvent.js +0 -4
  67. package/dist/events/PandasEvent.js.map +1 -1
  68. package/dist/events/TabEvent.js +0 -8
  69. package/dist/events/TabEvent.js.map +1 -1
  70. package/dist/events/index.js.map +1 -1
  71. package/dist/index.js.map +1 -1
  72. package/dist/linker/Linker.d.ts +3 -0
  73. package/dist/linker/Linker.d.ts.map +1 -1
  74. package/dist/linker/Linker.js +70 -119
  75. package/dist/linker/Linker.js.map +1 -1
  76. package/dist/linker/LinkerLink.css +90 -25
  77. package/dist/linker/LinkerLink.css.map +1 -1
  78. package/dist/linker/LinkerLink.d.ts +20 -2
  79. package/dist/linker/LinkerLink.d.ts.map +1 -1
  80. package/dist/linker/LinkerLink.js +214 -23
  81. package/dist/linker/LinkerLink.js.map +1 -1
  82. package/dist/linker/LinkerOverlayContent.css +0 -4
  83. package/dist/linker/LinkerOverlayContent.css.map +1 -1
  84. package/dist/linker/LinkerOverlayContent.d.ts +11 -0
  85. package/dist/linker/LinkerOverlayContent.d.ts.map +1 -1
  86. package/dist/linker/LinkerOverlayContent.js +78 -33
  87. package/dist/linker/LinkerOverlayContent.js.map +1 -1
  88. package/dist/linker/LinkerUtils.d.ts +9 -2
  89. package/dist/linker/LinkerUtils.d.ts.map +1 -1
  90. package/dist/linker/LinkerUtils.js +9 -25
  91. package/dist/linker/LinkerUtils.js.map +1 -1
  92. package/dist/linker/ToolType.js.map +1 -1
  93. package/dist/panels/ChartColumnSelectorOverlay.d.ts +5 -5
  94. package/dist/panels/ChartColumnSelectorOverlay.d.ts.map +1 -1
  95. package/dist/panels/ChartColumnSelectorOverlay.js +4 -7
  96. package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
  97. package/dist/panels/ChartFilterOverlay.d.ts +4 -4
  98. package/dist/panels/ChartFilterOverlay.d.ts.map +1 -1
  99. package/dist/panels/ChartFilterOverlay.js +2 -7
  100. package/dist/panels/ChartFilterOverlay.js.map +1 -1
  101. package/dist/panels/ChartPanel.d.ts.map +1 -1
  102. package/dist/panels/ChartPanel.js +11 -150
  103. package/dist/panels/ChartPanel.js.map +1 -1
  104. package/dist/panels/CommandHistoryPanel.d.ts.map +1 -1
  105. package/dist/panels/CommandHistoryPanel.js +1 -26
  106. package/dist/panels/CommandHistoryPanel.js.map +1 -1
  107. package/dist/panels/ConsolePanel.d.ts.map +1 -1
  108. package/dist/panels/ConsolePanel.js +12 -57
  109. package/dist/panels/ConsolePanel.js.map +1 -1
  110. package/dist/panels/DropdownFilterPanel.d.ts +8 -8
  111. package/dist/panels/DropdownFilterPanel.d.ts.map +1 -1
  112. package/dist/panels/DropdownFilterPanel.js +21 -127
  113. package/dist/panels/DropdownFilterPanel.js.map +1 -1
  114. package/dist/panels/FileExplorerPanel.js +4 -33
  115. package/dist/panels/FileExplorerPanel.js.map +1 -1
  116. package/dist/panels/FilterSetManager.d.ts.map +1 -1
  117. package/dist/panels/FilterSetManager.js +13 -86
  118. package/dist/panels/FilterSetManager.js.map +1 -1
  119. package/dist/panels/FilterSetManagerPanel.js +10 -64
  120. package/dist/panels/FilterSetManagerPanel.js.map +1 -1
  121. package/dist/panels/InputFilterPanel.d.ts.map +1 -1
  122. package/dist/panels/InputFilterPanel.js +8 -38
  123. package/dist/panels/InputFilterPanel.js.map +1 -1
  124. package/dist/panels/IrisGridPanel.d.ts +9 -9
  125. package/dist/panels/IrisGridPanel.d.ts.map +1 -1
  126. package/dist/panels/IrisGridPanel.js +24 -133
  127. package/dist/panels/IrisGridPanel.js.map +1 -1
  128. package/dist/panels/IrisGridPanelTooltip.d.ts +5 -5
  129. package/dist/panels/IrisGridPanelTooltip.d.ts.map +1 -1
  130. package/dist/panels/IrisGridPanelTooltip.js +2 -5
  131. package/dist/panels/IrisGridPanelTooltip.js.map +1 -1
  132. package/dist/panels/LogPanel.js +4 -22
  133. package/dist/panels/LogPanel.js.map +1 -1
  134. package/dist/panels/MarkdownNotebook.js +3 -30
  135. package/dist/panels/MarkdownNotebook.js.map +1 -1
  136. package/dist/panels/MarkdownPanel.js +2 -30
  137. package/dist/panels/MarkdownPanel.js.map +1 -1
  138. package/dist/panels/MockFileStorage.js +1 -14
  139. package/dist/panels/MockFileStorage.js.map +1 -1
  140. package/dist/panels/MockFileStorageTable.js +11 -30
  141. package/dist/panels/MockFileStorageTable.js.map +1 -1
  142. package/dist/panels/NotebookPanel.js +24 -182
  143. package/dist/panels/NotebookPanel.js.map +1 -1
  144. package/dist/panels/PandasPanel.js +1 -20
  145. package/dist/panels/PandasPanel.js.map +1 -1
  146. package/dist/panels/Panel.d.ts +1 -1
  147. package/dist/panels/Panel.d.ts.map +1 -1
  148. package/dist/panels/Panel.js +2 -38
  149. package/dist/panels/Panel.js.map +1 -1
  150. package/dist/panels/PanelContextMenu.js +7 -29
  151. package/dist/panels/PanelContextMenu.js.map +1 -1
  152. package/dist/panels/RenameDialog.js +2 -17
  153. package/dist/panels/RenameDialog.js.map +1 -1
  154. package/dist/panels/WidgetPanel.js +2 -20
  155. package/dist/panels/WidgetPanel.js.map +1 -1
  156. package/dist/panels/WidgetPanelTooltip.d.ts +5 -5
  157. package/dist/panels/WidgetPanelTooltip.d.ts.map +1 -1
  158. package/dist/panels/WidgetPanelTooltip.js +2 -4
  159. package/dist/panels/WidgetPanelTooltip.js.map +1 -1
  160. package/dist/panels/index.js.map +1 -1
  161. package/dist/prop-types/CommonPropTypes.js +0 -3
  162. package/dist/prop-types/CommonPropTypes.js.map +1 -1
  163. package/dist/prop-types/UIPropTypes.js.map +1 -1
  164. package/dist/prop-types/index.js.map +1 -1
  165. package/dist/redux/actionTypes.js.map +1 -1
  166. package/dist/redux/actions.js +8 -9
  167. package/dist/redux/actions.js.map +1 -1
  168. package/dist/redux/index.js.map +1 -1
  169. package/dist/redux/reducers/connection.js.map +1 -1
  170. package/dist/redux/reducers/index.js.map +1 -1
  171. package/dist/redux/reducers/sessionWrapper.js.map +1 -1
  172. package/dist/redux/selectors.js +10 -15
  173. package/dist/redux/selectors.js.map +1 -1
  174. package/package.json +21 -20
@@ -1 +1 @@
1
- {"version":3,"file":"RenameDialog.js","names":["React","PureComponent","classNames","Button","Popper","RenameDialog","constructor","props","handleRenameDialogOpened","bind","handleRenameInputChange","handleRenameCancel","handleRenameSubmit","renameInputRef","createRef","value","state","valueWasValidated","componentDidUpdate","prevProps","isShown","prevIsShown","resetState","setState","current","focus","event","target","onCancel","stopPropagation","preventDefault","newTitle","trim","undefined","onSubmit","renderRenameDialog","isShared","isOwner","itemType","render","placement","modifiers","preventOverflow","boundariesElement"],"sources":["../../src/panels/RenameDialog.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n FormEvent,\n PureComponent,\n ReactElement,\n RefObject,\n} from 'react';\nimport classNames from 'classnames';\nimport { Button, Popper } from '@deephaven/components';\n\ninterface RenameDialogProps {\n isShared: boolean;\n isOwner: boolean;\n isShown: boolean;\n itemType: string;\n onSubmit: (title: string) => void;\n onCancel: () => void;\n value?: string | null;\n}\n\ninterface RenameDialogState {\n value?: string | null;\n valueWasValidated: boolean;\n}\n\nexport default class RenameDialog extends PureComponent<\n RenameDialogProps,\n RenameDialogState\n> {\n static defaultProps = {\n isShared: false,\n isOwner: true,\n itemType: 'Item',\n value: '',\n };\n\n constructor(props: RenameDialogProps) {\n super(props);\n\n this.handleRenameDialogOpened = this.handleRenameDialogOpened.bind(this);\n this.handleRenameInputChange = this.handleRenameInputChange.bind(this);\n this.handleRenameCancel = this.handleRenameCancel.bind(this);\n this.handleRenameSubmit = this.handleRenameSubmit.bind(this);\n\n this.renameInputRef = React.createRef();\n\n const { value } = props;\n\n this.state = {\n value,\n valueWasValidated: false,\n };\n }\n\n componentDidUpdate(prevProps: RenameDialogProps): void {\n const { isShown: prevIsShown } = prevProps;\n const { isShown } = this.props;\n // Reset the state on dialog shown and not on the `value` prop change\n // so the input keeps the internal value while the dialog is open.\n // Useful in case the `value` prop update is triggered externally\n // i.e. by someone else renaming the same shared dashboard\n if (isShown && !prevIsShown) {\n this.resetState();\n }\n }\n\n renameInputRef: RefObject<HTMLInputElement>;\n\n resetState(): void {\n const { value } = this.props;\n this.setState({ value, valueWasValidated: false });\n }\n\n handleRenameDialogOpened(): void {\n this.renameInputRef?.current?.focus();\n }\n\n handleRenameInputChange(event: ChangeEvent<HTMLInputElement>): void {\n this.setState({ value: event.target.value });\n }\n\n handleRenameCancel(): void {\n const { onCancel } = this.props;\n onCancel();\n }\n\n handleRenameSubmit(event: FormEvent<HTMLFormElement>): void {\n event.stopPropagation();\n event.preventDefault();\n const { value } = this.state;\n const newTitle = value?.trim();\n if (newTitle !== undefined && newTitle !== '') {\n const { onSubmit } = this.props;\n onSubmit(newTitle);\n } else {\n this.setState({ value: newTitle, valueWasValidated: true });\n }\n }\n\n renderRenameDialog(): ReactElement {\n const { isShared, isOwner, itemType } = this.props;\n const { value, valueWasValidated } = this.state;\n\n return (\n <form\n className={classNames('p-3', { 'was-validated': valueWasValidated })}\n onSubmit={this.handleRenameSubmit}\n noValidate\n role=\"presentation\"\n onMouseDown={event => {\n // block events in the NewTabScreen ItemList\n event.stopPropagation();\n }}\n onMouseUp={event => {\n event.stopPropagation();\n }}\n >\n <div className=\"form-group\">\n <label htmlFor={`rename-dialog-${itemType}-input`}>\n Rename {itemType}\n </label>\n <input\n type=\"text\"\n className=\"form-control\"\n id={`rename-dialog-${itemType}-input`}\n value={value ?? undefined}\n ref={this.renameInputRef}\n onChange={this.handleRenameInputChange}\n required\n />\n <div className=\"invalid-feedback\">\n {itemType} name cannot be empty\n </div>\n {(isShared || !isOwner) && (\n <div className=\"pt-2\">\n Renaming this {itemType} will rename for all users.\n </div>\n )}\n </div>\n\n <div className=\"text-right\">\n <Button\n kind=\"secondary\"\n className=\"mr-2\"\n onClick={this.handleRenameCancel}\n >\n Cancel\n </Button>\n <Button kind=\"primary\" type=\"submit\">\n Rename\n </Button>\n </div>\n </form>\n );\n }\n\n render(): ReactElement {\n const { isShown, onCancel } = this.props;\n return (\n <Popper\n isShown={isShown}\n onEntered={this.handleRenameDialogOpened}\n onExited={onCancel}\n options={{\n placement: 'bottom',\n modifiers: { preventOverflow: { boundariesElement: 'viewport' } },\n }}\n interactive\n closeOnBlur\n >\n {this.renderRenameDialog()}\n </Popper>\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"RenameDialog.js","names":["React","PureComponent","classNames","Button","Popper","RenameDialog","constructor","props","handleRenameDialogOpened","bind","handleRenameInputChange","handleRenameCancel","handleRenameSubmit","renameInputRef","createRef","value","state","valueWasValidated","componentDidUpdate","prevProps","isShown","prevIsShown","resetState","setState","current","focus","event","target","onCancel","stopPropagation","preventDefault","newTitle","trim","undefined","onSubmit","renderRenameDialog","isShared","isOwner","itemType","render","placement","modifiers","preventOverflow","boundariesElement"],"sources":["../../src/panels/RenameDialog.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n FormEvent,\n PureComponent,\n ReactElement,\n RefObject,\n} from 'react';\nimport classNames from 'classnames';\nimport { Button, Popper } from '@deephaven/components';\n\ninterface RenameDialogProps {\n isShared: boolean;\n isOwner: boolean;\n isShown: boolean;\n itemType: string;\n onSubmit: (title: string) => void;\n onCancel: () => void;\n value?: string | null;\n}\n\ninterface RenameDialogState {\n value?: string | null;\n valueWasValidated: boolean;\n}\n\nexport default class RenameDialog extends PureComponent<\n RenameDialogProps,\n RenameDialogState\n> {\n static defaultProps = {\n isShared: false,\n isOwner: true,\n itemType: 'Item',\n value: '',\n };\n\n constructor(props: RenameDialogProps) {\n super(props);\n\n this.handleRenameDialogOpened = this.handleRenameDialogOpened.bind(this);\n this.handleRenameInputChange = this.handleRenameInputChange.bind(this);\n this.handleRenameCancel = this.handleRenameCancel.bind(this);\n this.handleRenameSubmit = this.handleRenameSubmit.bind(this);\n\n this.renameInputRef = React.createRef();\n\n const { value } = props;\n\n this.state = {\n value,\n valueWasValidated: false,\n };\n }\n\n componentDidUpdate(prevProps: RenameDialogProps): void {\n const { isShown: prevIsShown } = prevProps;\n const { isShown } = this.props;\n // Reset the state on dialog shown and not on the `value` prop change\n // so the input keeps the internal value while the dialog is open.\n // Useful in case the `value` prop update is triggered externally\n // i.e. by someone else renaming the same shared dashboard\n if (isShown && !prevIsShown) {\n this.resetState();\n }\n }\n\n renameInputRef: RefObject<HTMLInputElement>;\n\n resetState(): void {\n const { value } = this.props;\n this.setState({ value, valueWasValidated: false });\n }\n\n handleRenameDialogOpened(): void {\n this.renameInputRef?.current?.focus();\n }\n\n handleRenameInputChange(event: ChangeEvent<HTMLInputElement>): void {\n this.setState({ value: event.target.value });\n }\n\n handleRenameCancel(): void {\n const { onCancel } = this.props;\n onCancel();\n }\n\n handleRenameSubmit(event: FormEvent<HTMLFormElement>): void {\n event.stopPropagation();\n event.preventDefault();\n const { value } = this.state;\n const newTitle = value?.trim();\n if (newTitle !== undefined && newTitle !== '') {\n const { onSubmit } = this.props;\n onSubmit(newTitle);\n } else {\n this.setState({ value: newTitle, valueWasValidated: true });\n }\n }\n\n renderRenameDialog(): ReactElement {\n const { isShared, isOwner, itemType } = this.props;\n const { value, valueWasValidated } = this.state;\n\n return (\n <form\n className={classNames('p-3', { 'was-validated': valueWasValidated })}\n onSubmit={this.handleRenameSubmit}\n noValidate\n role=\"presentation\"\n onMouseDown={event => {\n // block events in the NewTabScreen ItemList\n event.stopPropagation();\n }}\n onMouseUp={event => {\n event.stopPropagation();\n }}\n >\n <div className=\"form-group\">\n <label htmlFor={`rename-dialog-${itemType}-input`}>\n Rename {itemType}\n </label>\n <input\n type=\"text\"\n className=\"form-control\"\n id={`rename-dialog-${itemType}-input`}\n value={value ?? undefined}\n ref={this.renameInputRef}\n onChange={this.handleRenameInputChange}\n required\n />\n <div className=\"invalid-feedback\">\n {itemType} name cannot be empty\n </div>\n {(isShared || !isOwner) && (\n <div className=\"pt-2\">\n Renaming this {itemType} will rename for all users.\n </div>\n )}\n </div>\n\n <div className=\"text-right\">\n <Button\n kind=\"secondary\"\n className=\"mr-2\"\n onClick={this.handleRenameCancel}\n >\n Cancel\n </Button>\n <Button kind=\"primary\" type=\"submit\">\n Rename\n </Button>\n </div>\n </form>\n );\n }\n\n render(): ReactElement {\n const { isShown, onCancel } = this.props;\n return (\n <Popper\n isShown={isShown}\n onEntered={this.handleRenameDialogOpened}\n onExited={onCancel}\n options={{\n placement: 'bottom',\n modifiers: { preventOverflow: { boundariesElement: 'viewport' } },\n }}\n interactive\n closeOnBlur\n >\n {this.renderRenameDialog()}\n </Popper>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
2
  import React, { PureComponent } from 'react';
4
3
  import classNames from 'classnames';
5
4
  import memoize from 'memoize-one';
@@ -8,21 +7,18 @@ import { copyToClipboard } from '@deephaven/utils';
8
7
  import Panel from "./Panel.js";
9
8
  import WidgetPanelTooltip from "./WidgetPanelTooltip.js";
10
9
  import "./WidgetPanel.css";
11
-
12
10
  /**
13
11
  * Widget panel component that has a loading spinner and displays an error message when set
14
12
  */
15
13
  class WidgetPanel extends PureComponent {
16
14
  constructor(props) {
17
15
  super(props);
18
-
19
16
  _defineProperty(this, "getCachedRenderTabTooltip", memoize((showTabTooltip, glContainer, widgetType, widgetName, description) => showTabTooltip ? () => /*#__PURE__*/React.createElement(WidgetPanelTooltip, {
20
17
  glContainer: glContainer,
21
18
  widgetType: widgetType,
22
19
  widgetName: widgetName,
23
20
  description: description
24
21
  }) : null));
25
-
26
22
  this.handleSessionClosed = this.handleSessionClosed.bind(this);
27
23
  this.handleSessionOpened = this.handleSessionOpened.bind(this);
28
24
  this.handleCopyName = this.handleCopyName.bind(this);
@@ -34,14 +30,12 @@ class WidgetPanel extends PureComponent {
34
30
  isPanelInactive: false
35
31
  };
36
32
  }
37
-
38
33
  handleCopyName() {
39
34
  var {
40
35
  widgetName
41
36
  } = this.props;
42
37
  copyToClipboard(widgetName);
43
38
  }
44
-
45
39
  getErrorMessage() {
46
40
  var {
47
41
  errorMessage
@@ -52,19 +46,15 @@ class WidgetPanel extends PureComponent {
52
46
  isWidgetDisconnected,
53
47
  isWaitingForReconnect
54
48
  } = this.state;
55
-
56
49
  if (errorMessage) {
57
50
  return "".concat(errorMessage);
58
51
  }
59
-
60
52
  if (isClientDisconnected && isPanelDisconnected && isWaitingForReconnect) {
61
53
  return 'Disconnected from server.\nCheck your internet connection.';
62
54
  }
63
-
64
55
  if (isClientDisconnected && isPanelDisconnected) {
65
56
  return 'Disconnected from server.';
66
57
  }
67
-
68
58
  if (isPanelDisconnected) {
69
59
  var {
70
60
  widgetName,
@@ -72,36 +62,31 @@ class WidgetPanel extends PureComponent {
72
62
  } = this.props;
73
63
  return "Variable \"".concat(widgetName, "\" not set.\n").concat(widgetType, " does not exist yet.");
74
64
  }
75
-
76
65
  if (isWidgetDisconnected) {
77
66
  var {
78
67
  widgetName: _widgetName
79
68
  } = this.props;
80
69
  return "".concat(_widgetName, " is unavailable.");
81
70
  }
82
-
83
71
  return undefined;
84
72
  }
85
-
86
73
  handleSessionClosed() {
87
74
  var {
88
75
  onSessionClose
89
- } = this.props; // The session has closed and we won't be able to reconnect, as this widget isn't persisted
90
-
76
+ } = this.props;
77
+ // The session has closed and we won't be able to reconnect, as this widget isn't persisted
91
78
  this.setState({
92
79
  isPanelDisconnected: true,
93
80
  isWaitingForReconnect: false
94
81
  });
95
82
  onSessionClose(...arguments);
96
83
  }
97
-
98
84
  handleSessionOpened() {
99
85
  var {
100
86
  onSessionOpen
101
87
  } = this.props;
102
88
  onSessionOpen(...arguments);
103
89
  }
104
-
105
90
  render() {
106
91
  var {
107
92
  children,
@@ -172,9 +157,7 @@ class WidgetPanel extends PureComponent {
172
157
  className: "fill-parent-absolute"
173
158
  }));
174
159
  }
175
-
176
160
  }
177
-
178
161
  _defineProperty(WidgetPanel, "defaultProps", {
179
162
  className: '',
180
163
  errorMessage: null,
@@ -200,6 +183,5 @@ _defineProperty(WidgetPanel, "defaultProps", {
200
183
  onTabFocus: () => undefined,
201
184
  onTabClicked: () => undefined
202
185
  });
203
-
204
186
  export default WidgetPanel;
205
187
  //# sourceMappingURL=WidgetPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetPanel.js","names":["React","PureComponent","classNames","memoize","ContextActions","copyToClipboard","Panel","WidgetPanelTooltip","WidgetPanel","constructor","props","showTabTooltip","glContainer","widgetType","widgetName","description","handleSessionClosed","bind","handleSessionOpened","handleCopyName","state","isClientDisconnected","isPanelDisconnected","isWidgetDisconnected","isWaitingForReconnect","isPanelInactive","getErrorMessage","errorMessage","undefined","onSessionClose","setState","onSessionOpen","render","children","className","componentPanel","isLoaded","isLoading","glEventHub","isDisconnected","isClonable","isRenamable","renderTabTooltip","onClearAllFilters","onHide","onFocus","onBlur","onResize","onShow","onTabBlur","onTabFocus","onTabClicked","doRenderTabTooltip","getCachedRenderTabTooltip","additionalActions","title","group","groups","medium","order","action","disconnected","inactive"],"sources":["../../src/panels/WidgetPanel.tsx"],"sourcesContent":["import React, {\n Component,\n PureComponent,\n ReactElement,\n ReactNode,\n} from 'react';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport type { Container, EventEmitter } from '@deephaven/golden-layout';\nimport { ContextActions } from '@deephaven/components';\nimport { copyToClipboard } from '@deephaven/utils';\nimport Panel from './Panel';\nimport WidgetPanelTooltip from './WidgetPanelTooltip';\nimport './WidgetPanel.scss';\n\ninterface WidgetPanelProps {\n children: ReactNode;\n componentPanel: Component;\n\n glContainer: Container;\n glEventHub: EventEmitter;\n\n className: string;\n errorMessage: string;\n isClonable: boolean;\n isDisconnected: boolean;\n isLoading: boolean;\n isLoaded: boolean;\n isRenamable: boolean;\n showTabTooltip: boolean;\n widgetName: string;\n widgetType: string;\n renderTabTooltip: () => ReactNode;\n description: string;\n\n onFocus: () => void;\n onBlur: () => void;\n onHide: () => void;\n onClearAllFilters: () => void;\n onResize: () => void;\n onSessionClose: (...args: unknown[]) => void;\n onSessionOpen: (...args: unknown[]) => void;\n onShow: () => void;\n onTabBlur: () => void;\n onTabFocus: () => void;\n onTabClicked: () => void;\n}\n\ninterface WidgetPanelState {\n isClientDisconnected: boolean;\n isPanelDisconnected: boolean;\n isWidgetDisconnected: boolean;\n isWaitingForReconnect: boolean;\n isPanelInactive: boolean;\n}\n/**\n * Widget panel component that has a loading spinner and displays an error message when set\n */\nclass WidgetPanel extends PureComponent<WidgetPanelProps, WidgetPanelState> {\n static defaultProps = {\n className: '',\n errorMessage: null,\n isClonable: true,\n isDisconnected: false,\n isLoading: false,\n isLoaded: true,\n isRenamable: true,\n showTabTooltip: true,\n widgetName: 'Widget',\n widgetType: 'Widget',\n renderTabTooltip: null,\n description: '',\n\n onFocus: (): void => undefined,\n onBlur: (): void => undefined,\n onHide: (): void => undefined,\n onClearAllFilters: (): void => undefined,\n onResize: (): void => undefined,\n onSessionClose: (): void => undefined,\n onSessionOpen: (): void => undefined,\n onShow: (): void => undefined,\n onTabBlur: (): void => undefined,\n onTabFocus: (): void => undefined,\n onTabClicked: (): void => undefined,\n };\n\n constructor(props: WidgetPanelProps) {\n super(props);\n\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleCopyName = this.handleCopyName.bind(this);\n\n this.state = {\n isClientDisconnected: false,\n isPanelDisconnected: false,\n isWidgetDisconnected: false,\n isWaitingForReconnect: false,\n isPanelInactive: false,\n };\n }\n\n handleCopyName(): void {\n const { widgetName } = this.props;\n copyToClipboard(widgetName);\n }\n\n getErrorMessage(): string | undefined {\n const { errorMessage } = this.props;\n const {\n isClientDisconnected,\n isPanelDisconnected,\n isWidgetDisconnected,\n isWaitingForReconnect,\n } = this.state;\n if (errorMessage) {\n return `${errorMessage}`;\n }\n if (isClientDisconnected && isPanelDisconnected && isWaitingForReconnect) {\n return 'Disconnected from server.\\nCheck your internet connection.';\n }\n if (isClientDisconnected && isPanelDisconnected) {\n return 'Disconnected from server.';\n }\n if (isPanelDisconnected) {\n const { widgetName, widgetType } = this.props;\n return `Variable \"${widgetName}\" not set.\\n${widgetType} does not exist yet.`;\n }\n if (isWidgetDisconnected) {\n const { widgetName } = this.props;\n return `${widgetName} is unavailable.`;\n }\n return undefined;\n }\n\n getCachedRenderTabTooltip = memoize(\n (\n showTabTooltip: boolean,\n glContainer: Container,\n widgetType: string,\n widgetName: string,\n description: string\n ) =>\n showTabTooltip\n ? () => (\n <WidgetPanelTooltip\n glContainer={glContainer}\n widgetType={widgetType}\n widgetName={widgetName}\n description={description}\n />\n )\n : null\n );\n\n handleSessionClosed(...args: unknown[]): void {\n const { onSessionClose } = this.props;\n // The session has closed and we won't be able to reconnect, as this widget isn't persisted\n this.setState({\n isPanelDisconnected: true,\n isWaitingForReconnect: false,\n });\n onSessionClose(...args);\n }\n\n handleSessionOpened(...args: unknown[]): void {\n const { onSessionOpen } = this.props;\n onSessionOpen(...args);\n }\n\n render(): ReactElement {\n const {\n children,\n className,\n componentPanel,\n isLoaded,\n isLoading,\n glContainer,\n glEventHub,\n isDisconnected,\n isClonable,\n isRenamable,\n showTabTooltip,\n renderTabTooltip,\n widgetType,\n widgetName,\n description,\n\n onClearAllFilters,\n onHide,\n onFocus,\n onBlur,\n onResize,\n onShow,\n onTabBlur,\n onTabFocus,\n onTabClicked,\n } = this.props;\n\n const {\n isPanelDisconnected,\n isWidgetDisconnected,\n isPanelInactive,\n } = this.state;\n const errorMessage = this.getErrorMessage();\n const doRenderTabTooltip =\n renderTabTooltip ??\n this.getCachedRenderTabTooltip(\n showTabTooltip,\n glContainer,\n widgetType,\n widgetName,\n description\n );\n\n const additionalActions = [\n {\n title: `Copy ${widgetType} Name`,\n group: ContextActions.groups.medium,\n order: 20,\n action: this.handleCopyName,\n },\n ];\n\n return (\n <Panel\n className={classNames(className, {\n disconnected:\n isPanelDisconnected || isWidgetDisconnected || isDisconnected,\n inactive: isPanelInactive,\n })}\n componentPanel={componentPanel}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onClearAllFilters={onClearAllFilters}\n onHide={onHide}\n onFocus={onFocus}\n onBlur={onBlur}\n onResize={onResize}\n onShow={onShow}\n onSessionClose={this.handleSessionClosed}\n onSessionOpen={this.handleSessionOpened}\n onTabBlur={onTabBlur}\n onTabFocus={onTabFocus}\n onTabClicked={onTabClicked}\n renderTabTooltip={doRenderTabTooltip}\n errorMessage={errorMessage}\n isLoaded={isLoaded}\n isLoading={isLoading}\n isClonable={isClonable}\n isRenamable={isRenamable}\n additionalActions={additionalActions}\n >\n {children}\n {isPanelInactive && <div className=\"fill-parent-absolute\" />}\n </Panel>\n );\n }\n}\n\nexport default WidgetPanel;\n"],"mappings":"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"}
1
+ {"version":3,"file":"WidgetPanel.js","names":["React","PureComponent","classNames","memoize","ContextActions","copyToClipboard","Panel","WidgetPanelTooltip","WidgetPanel","constructor","props","showTabTooltip","glContainer","widgetType","widgetName","description","handleSessionClosed","bind","handleSessionOpened","handleCopyName","state","isClientDisconnected","isPanelDisconnected","isWidgetDisconnected","isWaitingForReconnect","isPanelInactive","getErrorMessage","errorMessage","undefined","onSessionClose","setState","onSessionOpen","render","children","className","componentPanel","isLoaded","isLoading","glEventHub","isDisconnected","isClonable","isRenamable","renderTabTooltip","onClearAllFilters","onHide","onFocus","onBlur","onResize","onShow","onTabBlur","onTabFocus","onTabClicked","doRenderTabTooltip","getCachedRenderTabTooltip","additionalActions","title","group","groups","medium","order","action","disconnected","inactive"],"sources":["../../src/panels/WidgetPanel.tsx"],"sourcesContent":["import React, {\n Component,\n PureComponent,\n ReactElement,\n ReactNode,\n} from 'react';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport type { Container, EventEmitter } from '@deephaven/golden-layout';\nimport { ContextActions } from '@deephaven/components';\nimport { copyToClipboard } from '@deephaven/utils';\nimport Panel from './Panel';\nimport WidgetPanelTooltip from './WidgetPanelTooltip';\nimport './WidgetPanel.scss';\n\ninterface WidgetPanelProps {\n children: ReactNode;\n componentPanel: Component;\n\n glContainer: Container;\n glEventHub: EventEmitter;\n\n className: string;\n errorMessage: string;\n isClonable: boolean;\n isDisconnected: boolean;\n isLoading: boolean;\n isLoaded: boolean;\n isRenamable: boolean;\n showTabTooltip: boolean;\n widgetName: string;\n widgetType: string;\n renderTabTooltip: () => ReactNode;\n description: string;\n\n onFocus: () => void;\n onBlur: () => void;\n onHide: () => void;\n onClearAllFilters: () => void;\n onResize: () => void;\n onSessionClose: (...args: unknown[]) => void;\n onSessionOpen: (...args: unknown[]) => void;\n onShow: () => void;\n onTabBlur: () => void;\n onTabFocus: () => void;\n onTabClicked: () => void;\n}\n\ninterface WidgetPanelState {\n isClientDisconnected: boolean;\n isPanelDisconnected: boolean;\n isWidgetDisconnected: boolean;\n isWaitingForReconnect: boolean;\n isPanelInactive: boolean;\n}\n/**\n * Widget panel component that has a loading spinner and displays an error message when set\n */\nclass WidgetPanel extends PureComponent<WidgetPanelProps, WidgetPanelState> {\n static defaultProps = {\n className: '',\n errorMessage: null,\n isClonable: true,\n isDisconnected: false,\n isLoading: false,\n isLoaded: true,\n isRenamable: true,\n showTabTooltip: true,\n widgetName: 'Widget',\n widgetType: 'Widget',\n renderTabTooltip: null,\n description: '',\n\n onFocus: (): void => undefined,\n onBlur: (): void => undefined,\n onHide: (): void => undefined,\n onClearAllFilters: (): void => undefined,\n onResize: (): void => undefined,\n onSessionClose: (): void => undefined,\n onSessionOpen: (): void => undefined,\n onShow: (): void => undefined,\n onTabBlur: (): void => undefined,\n onTabFocus: (): void => undefined,\n onTabClicked: (): void => undefined,\n };\n\n constructor(props: WidgetPanelProps) {\n super(props);\n\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleCopyName = this.handleCopyName.bind(this);\n\n this.state = {\n isClientDisconnected: false,\n isPanelDisconnected: false,\n isWidgetDisconnected: false,\n isWaitingForReconnect: false,\n isPanelInactive: false,\n };\n }\n\n handleCopyName(): void {\n const { widgetName } = this.props;\n copyToClipboard(widgetName);\n }\n\n getErrorMessage(): string | undefined {\n const { errorMessage } = this.props;\n const {\n isClientDisconnected,\n isPanelDisconnected,\n isWidgetDisconnected,\n isWaitingForReconnect,\n } = this.state;\n if (errorMessage) {\n return `${errorMessage}`;\n }\n if (isClientDisconnected && isPanelDisconnected && isWaitingForReconnect) {\n return 'Disconnected from server.\\nCheck your internet connection.';\n }\n if (isClientDisconnected && isPanelDisconnected) {\n return 'Disconnected from server.';\n }\n if (isPanelDisconnected) {\n const { widgetName, widgetType } = this.props;\n return `Variable \"${widgetName}\" not set.\\n${widgetType} does not exist yet.`;\n }\n if (isWidgetDisconnected) {\n const { widgetName } = this.props;\n return `${widgetName} is unavailable.`;\n }\n return undefined;\n }\n\n getCachedRenderTabTooltip = memoize(\n (\n showTabTooltip: boolean,\n glContainer: Container,\n widgetType: string,\n widgetName: string,\n description: string\n ) =>\n showTabTooltip\n ? () => (\n <WidgetPanelTooltip\n glContainer={glContainer}\n widgetType={widgetType}\n widgetName={widgetName}\n description={description}\n />\n )\n : null\n );\n\n handleSessionClosed(...args: unknown[]): void {\n const { onSessionClose } = this.props;\n // The session has closed and we won't be able to reconnect, as this widget isn't persisted\n this.setState({\n isPanelDisconnected: true,\n isWaitingForReconnect: false,\n });\n onSessionClose(...args);\n }\n\n handleSessionOpened(...args: unknown[]): void {\n const { onSessionOpen } = this.props;\n onSessionOpen(...args);\n }\n\n render(): ReactElement {\n const {\n children,\n className,\n componentPanel,\n isLoaded,\n isLoading,\n glContainer,\n glEventHub,\n isDisconnected,\n isClonable,\n isRenamable,\n showTabTooltip,\n renderTabTooltip,\n widgetType,\n widgetName,\n description,\n\n onClearAllFilters,\n onHide,\n onFocus,\n onBlur,\n onResize,\n onShow,\n onTabBlur,\n onTabFocus,\n onTabClicked,\n } = this.props;\n\n const {\n isPanelDisconnected,\n isWidgetDisconnected,\n isPanelInactive,\n } = this.state;\n const errorMessage = this.getErrorMessage();\n const doRenderTabTooltip =\n renderTabTooltip ??\n this.getCachedRenderTabTooltip(\n showTabTooltip,\n glContainer,\n widgetType,\n widgetName,\n description\n );\n\n const additionalActions = [\n {\n title: `Copy ${widgetType} Name`,\n group: ContextActions.groups.medium,\n order: 20,\n action: this.handleCopyName,\n },\n ];\n\n return (\n <Panel\n className={classNames(className, {\n disconnected:\n isPanelDisconnected || isWidgetDisconnected || isDisconnected,\n inactive: isPanelInactive,\n })}\n componentPanel={componentPanel}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onClearAllFilters={onClearAllFilters}\n onHide={onHide}\n onFocus={onFocus}\n onBlur={onBlur}\n onResize={onResize}\n onShow={onShow}\n onSessionClose={this.handleSessionClosed}\n onSessionOpen={this.handleSessionOpened}\n onTabBlur={onTabBlur}\n onTabFocus={onTabFocus}\n onTabClicked={onTabClicked}\n renderTabTooltip={doRenderTabTooltip}\n errorMessage={errorMessage}\n isLoaded={isLoaded}\n isLoading={isLoading}\n isClonable={isClonable}\n isRenamable={isRenamable}\n additionalActions={additionalActions}\n >\n {children}\n {isPanelInactive && <div className=\"fill-parent-absolute\" />}\n </Panel>\n );\n }\n}\n\nexport default WidgetPanel;\n"],"mappings":"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"}
@@ -10,9 +10,9 @@ interface WidgetPanelTooltipProps {
10
10
  description: string;
11
11
  children: ReactNode;
12
12
  }
13
- declare const WidgetPanelTooltip: {
14
- (props: WidgetPanelTooltipProps): ReactElement;
15
- propTypes: {
13
+ declare function WidgetPanelTooltip(props: WidgetPanelTooltipProps): ReactElement;
14
+ declare namespace WidgetPanelTooltip {
15
+ var propTypes: {
16
16
  glContainer: PropTypes.Validator<PropTypes.InferProps<{
17
17
  on: PropTypes.Requireable<(...args: any[]) => any>;
18
18
  off: PropTypes.Requireable<(...args: any[]) => any>;
@@ -33,12 +33,12 @@ declare const WidgetPanelTooltip: {
33
33
  description: PropTypes.Requireable<string>;
34
34
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
35
35
  };
36
- defaultProps: {
36
+ var defaultProps: {
37
37
  widgetType: string;
38
38
  widgetName: string;
39
39
  description: null;
40
40
  children: null;
41
41
  };
42
- };
42
+ }
43
43
  export default WidgetPanelTooltip;
44
44
  //# sourceMappingURL=WidgetPanelTooltip.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetPanelTooltip.d.ts","sourceRoot":"","sources":["../../src/panels/WidgetPanelTooltip.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,SAAS,MAAM,YAAY,CAAC;AAGnC,OAAO,2BAA2B,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,UAAU,uBAAuB;IAC/B,WAAW,EAAE,SAAS,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;CACrB;AACD,QAAA,MAAM,kBAAkB;YAAW,uBAAuB,GAAG,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCxE,CAAC;AAiBF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"WidgetPanelTooltip.d.ts","sourceRoot":"","sources":["../../src/panels/WidgetPanelTooltip.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,SAAS,MAAM,YAAY,CAAC;AAGnC,OAAO,2BAA2B,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,UAAU,uBAAuB;IAC/B,WAAW,EAAE,SAAS,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;CACrB;AACD,iBAAS,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,YAAY,CAiCxE;kBAjCQ,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkD3B,eAAe,kBAAkB,CAAC"}
@@ -3,8 +3,7 @@ import PropTypes from 'prop-types';
3
3
  import { CopyButton } from '@deephaven/components';
4
4
  import { GLPropTypes, LayoutUtils } from '@deephaven/dashboard';
5
5
  import "./WidgetPanelTooltip.css";
6
-
7
- var WidgetPanelTooltip = props => {
6
+ function WidgetPanelTooltip(props) {
8
7
  var {
9
8
  widgetType,
10
9
  widgetName,
@@ -36,8 +35,7 @@ var WidgetPanelTooltip = props => {
36
35
  }, /*#__PURE__*/React.createElement("span", {
37
36
  className: "tab-tooltip-description"
38
37
  }, description)), children);
39
- };
40
-
38
+ }
41
39
  WidgetPanelTooltip.propTypes = {
42
40
  glContainer: GLPropTypes.Container.isRequired,
43
41
  widgetType: PropTypes.string,
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetPanelTooltip.js","names":["React","PropTypes","CopyButton","GLPropTypes","LayoutUtils","WidgetPanelTooltip","props","widgetType","widgetName","glContainer","description","children","panelTitle","getTitleFromContainer","propTypes","Container","isRequired","string","node","defaultProps"],"sources":["../../src/panels/WidgetPanelTooltip.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport PropTypes from 'prop-types';\nimport { CopyButton } from '@deephaven/components';\nimport { GLPropTypes, LayoutUtils } from '@deephaven/dashboard';\nimport './WidgetPanelTooltip.scss';\nimport { ReactElement } from 'react-markdown';\nimport type { Container } from '@deephaven/golden-layout';\n\ninterface WidgetPanelTooltipProps {\n glContainer: Container;\n widgetType: string;\n widgetName: string;\n description: string;\n children: ReactNode;\n}\nconst WidgetPanelTooltip = (props: WidgetPanelTooltipProps): ReactElement => {\n const { widgetType, widgetName, glContainer, description, children } = props;\n const panelTitle = LayoutUtils.getTitleFromContainer(glContainer);\n\n return (\n <div className=\"tab-tooltip-container\">\n <div className=\"row flex-nowrap align-items-start\">\n <span className=\"tab-tooltip-title\">\n <b>{widgetType} Name </b>\n </span>\n <span className=\"tab-tooltip-name\">{widgetName}</span>\n <CopyButton\n className=\"tab-tooltip-copy\"\n tooltip=\"Copy name\"\n copy={widgetName}\n />\n </div>\n {widgetName !== panelTitle && (\n <div className=\"row\">\n <span className=\"tab-tooltip-title\">\n <b>Display Name</b>\n </span>\n <span className=\"tab-tooltip-name\">{panelTitle}</span>\n </div>\n )}\n {description && (\n <div className=\"row\">\n <span className=\"tab-tooltip-description\">{description}</span>\n </div>\n )}\n {children}\n </div>\n );\n};\n\nWidgetPanelTooltip.propTypes = {\n glContainer: GLPropTypes.Container.isRequired,\n widgetType: PropTypes.string,\n widgetName: PropTypes.string,\n description: PropTypes.string,\n children: PropTypes.node,\n};\n\nWidgetPanelTooltip.defaultProps = {\n widgetType: '',\n widgetName: '',\n description: null,\n children: null,\n};\n\nexport default WidgetPanelTooltip;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,UAAT,QAA2B,uBAA3B;AACA,SAASC,WAAT,EAAsBC,WAAtB,QAAyC,sBAAzC;;;AAYA,IAAMC,kBAAkB,GAAIC,KAAD,IAAkD;EAC3E,IAAM;IAAEC,UAAF;IAAcC,UAAd;IAA0BC,WAA1B;IAAuCC,WAAvC;IAAoDC;EAApD,IAAiEL,KAAvE;EACA,IAAMM,UAAU,GAAGR,WAAW,CAACS,qBAAZ,CAAkCJ,WAAlC,CAAnB;EAEA,oBACE;IAAK,SAAS,EAAC;EAAf,gBACE;IAAK,SAAS,EAAC;EAAf,gBACE;IAAM,SAAS,EAAC;EAAhB,gBACE,+BAAIF,UAAJ,WADF,CADF,eAIE;IAAM,SAAS,EAAC;EAAhB,GAAoCC,UAApC,CAJF,eAKE,oBAAC,UAAD;IACE,SAAS,EAAC,kBADZ;IAEE,OAAO,EAAC,WAFV;IAGE,IAAI,EAAEA;EAHR,EALF,CADF,EAYGA,UAAU,KAAKI,UAAf,iBACC;IAAK,SAAS,EAAC;EAAf,gBACE;IAAM,SAAS,EAAC;EAAhB,gBACE,8CADF,CADF,eAIE;IAAM,SAAS,EAAC;EAAhB,GAAoCA,UAApC,CAJF,CAbJ,EAoBGF,WAAW,iBACV;IAAK,SAAS,EAAC;EAAf,gBACE;IAAM,SAAS,EAAC;EAAhB,GAA2CA,WAA3C,CADF,CArBJ,EAyBGC,QAzBH,CADF;AA6BD,CAjCD;;AAmCAN,kBAAkB,CAACS,SAAnB,GAA+B;EAC7BL,WAAW,EAAEN,WAAW,CAACY,SAAZ,CAAsBC,UADN;EAE7BT,UAAU,EAAEN,SAAS,CAACgB,MAFO;EAG7BT,UAAU,EAAEP,SAAS,CAACgB,MAHO;EAI7BP,WAAW,EAAET,SAAS,CAACgB,MAJM;EAK7BN,QAAQ,EAAEV,SAAS,CAACiB;AALS,CAA/B;AAQAb,kBAAkB,CAACc,YAAnB,GAAkC;EAChCZ,UAAU,EAAE,EADoB;EAEhCC,UAAU,EAAE,EAFoB;EAGhCE,WAAW,EAAE,IAHmB;EAIhCC,QAAQ,EAAE;AAJsB,CAAlC;AAOA,eAAeN,kBAAf"}
1
+ {"version":3,"file":"WidgetPanelTooltip.js","names":["React","PropTypes","CopyButton","GLPropTypes","LayoutUtils","WidgetPanelTooltip","props","widgetType","widgetName","glContainer","description","children","panelTitle","getTitleFromContainer","propTypes","Container","isRequired","string","node","defaultProps"],"sources":["../../src/panels/WidgetPanelTooltip.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport PropTypes from 'prop-types';\nimport { CopyButton } from '@deephaven/components';\nimport { GLPropTypes, LayoutUtils } from '@deephaven/dashboard';\nimport './WidgetPanelTooltip.scss';\nimport { ReactElement } from 'react-markdown';\nimport type { Container } from '@deephaven/golden-layout';\n\ninterface WidgetPanelTooltipProps {\n glContainer: Container;\n widgetType: string;\n widgetName: string;\n description: string;\n children: ReactNode;\n}\nfunction WidgetPanelTooltip(props: WidgetPanelTooltipProps): ReactElement {\n const { widgetType, widgetName, glContainer, description, children } = props;\n const panelTitle = LayoutUtils.getTitleFromContainer(glContainer);\n\n return (\n <div className=\"tab-tooltip-container\">\n <div className=\"row flex-nowrap align-items-start\">\n <span className=\"tab-tooltip-title\">\n <b>{widgetType} Name </b>\n </span>\n <span className=\"tab-tooltip-name\">{widgetName}</span>\n <CopyButton\n className=\"tab-tooltip-copy\"\n tooltip=\"Copy name\"\n copy={widgetName}\n />\n </div>\n {widgetName !== panelTitle && (\n <div className=\"row\">\n <span className=\"tab-tooltip-title\">\n <b>Display Name</b>\n </span>\n <span className=\"tab-tooltip-name\">{panelTitle}</span>\n </div>\n )}\n {description && (\n <div className=\"row\">\n <span className=\"tab-tooltip-description\">{description}</span>\n </div>\n )}\n {children}\n </div>\n );\n}\n\nWidgetPanelTooltip.propTypes = {\n glContainer: GLPropTypes.Container.isRequired,\n widgetType: PropTypes.string,\n widgetName: PropTypes.string,\n description: PropTypes.string,\n children: PropTypes.node,\n};\n\nWidgetPanelTooltip.defaultProps = {\n widgetType: '',\n widgetName: '',\n description: null,\n children: null,\n};\n\nexport default WidgetPanelTooltip;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAqB,OAAO;AACxC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,UAAU,QAAQ,uBAAuB;AAClD,SAASC,WAAW,EAAEC,WAAW,QAAQ,sBAAsB;AAAC;AAYhE,SAASC,kBAAkB,CAACC,KAA8B,EAAgB;EACxE,IAAM;IAAEC,UAAU;IAAEC,UAAU;IAAEC,WAAW;IAAEC,WAAW;IAAEC;EAAS,CAAC,GAAGL,KAAK;EAC5E,IAAMM,UAAU,GAAGR,WAAW,CAACS,qBAAqB,CAACJ,WAAW,CAAC;EAEjE,oBACE;IAAK,SAAS,EAAC;EAAuB,gBACpC;IAAK,SAAS,EAAC;EAAmC,gBAChD;IAAM,SAAS,EAAC;EAAmB,gBACjC,+BAAIF,UAAU,WAAW,CACpB,eACP;IAAM,SAAS,EAAC;EAAkB,GAAEC,UAAU,CAAQ,eACtD,oBAAC,UAAU;IACT,SAAS,EAAC,kBAAkB;IAC5B,OAAO,EAAC,WAAW;IACnB,IAAI,EAAEA;EAAW,EACjB,CACE,EACLA,UAAU,KAAKI,UAAU,iBACxB;IAAK,SAAS,EAAC;EAAK,gBAClB;IAAM,SAAS,EAAC;EAAmB,gBACjC,8CAAmB,CACd,eACP;IAAM,SAAS,EAAC;EAAkB,GAAEA,UAAU,CAAQ,CAEzD,EACAF,WAAW,iBACV;IAAK,SAAS,EAAC;EAAK,gBAClB;IAAM,SAAS,EAAC;EAAyB,GAAEA,WAAW,CAAQ,CAEjE,EACAC,QAAQ,CACL;AAEV;AAEAN,kBAAkB,CAACS,SAAS,GAAG;EAC7BL,WAAW,EAAEN,WAAW,CAACY,SAAS,CAACC,UAAU;EAC7CT,UAAU,EAAEN,SAAS,CAACgB,MAAM;EAC5BT,UAAU,EAAEP,SAAS,CAACgB,MAAM;EAC5BP,WAAW,EAAET,SAAS,CAACgB,MAAM;EAC7BN,QAAQ,EAAEV,SAAS,CAACiB;AACtB,CAAC;AAEDb,kBAAkB,CAACc,YAAY,GAAG;EAChCZ,UAAU,EAAE,EAAE;EACdC,UAAU,EAAE,EAAE;EACdE,WAAW,EAAE,IAAI;EACjBC,QAAQ,EAAE;AACZ,CAAC;AAED,eAAeN,kBAAkB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","ChartPanel","CommandHistoryPanel","ConsolePanel","DropdownFilterPanel","FileExplorerPanel","FilterSetManager","FilterSetManagerPanel","InputFilterPanel","IrisGridPanel","LogPanel","MarkdownPanel","NotebookPanel","PandasPanel","Panel","WidgetPanel","WidgetPanelTooltip"],"sources":["../../src/panels/index.ts"],"sourcesContent":["export { default as ChartPanel } from './ChartPanel';\nexport * from './ChartPanel';\nexport { default as CommandHistoryPanel } from './CommandHistoryPanel';\nexport { default as ConsolePanel } from './ConsolePanel';\nexport { default as DropdownFilterPanel } from './DropdownFilterPanel';\nexport { default as FileExplorerPanel } from './FileExplorerPanel';\nexport { default as FilterSetManager } from './FilterSetManager';\nexport type { FilterSet } from './FilterSetManager';\nexport { default as FilterSetManagerPanel } from './FilterSetManagerPanel';\nexport { default as InputFilterPanel } from './InputFilterPanel';\nexport { default as IrisGridPanel } from './IrisGridPanel';\nexport * from './IrisGridPanel';\nexport { default as LogPanel } from './LogPanel';\nexport { default as MarkdownPanel } from './MarkdownPanel';\nexport { default as NotebookPanel } from './NotebookPanel';\nexport { default as PandasPanel } from './PandasPanel';\nexport * from './PandasPanel';\nexport { default as Panel } from './Panel';\nexport { default as WidgetPanel } from './WidgetPanel';\nexport { default as WidgetPanelTooltip } from './WidgetPanelTooltip';\n"],"mappings":"SAASA,OAAO,IAAIC,U;;SAEXD,OAAO,IAAIE,mB;SACXF,OAAO,IAAIG,Y;SACXH,OAAO,IAAII,mB;SACXJ,OAAO,IAAIK,iB;SACXL,OAAO,IAAIM,gB;SAEXN,OAAO,IAAIO,qB;SACXP,OAAO,IAAIQ,gB;SACXR,OAAO,IAAIS,a;;SAEXT,OAAO,IAAIU,Q;SACXV,OAAO,IAAIW,a;SACXX,OAAO,IAAIY,a;SACXZ,OAAO,IAAIa,W;;SAEXb,OAAO,IAAIc,K;SACXd,OAAO,IAAIe,W;SACXf,OAAO,IAAIgB,kB"}
1
+ {"version":3,"file":"index.js","names":["default","ChartPanel","CommandHistoryPanel","ConsolePanel","DropdownFilterPanel","FileExplorerPanel","FilterSetManager","FilterSetManagerPanel","InputFilterPanel","IrisGridPanel","LogPanel","MarkdownPanel","NotebookPanel","PandasPanel","Panel","WidgetPanel","WidgetPanelTooltip"],"sources":["../../src/panels/index.ts"],"sourcesContent":["export { default as ChartPanel } from './ChartPanel';\nexport * from './ChartPanel';\nexport { default as CommandHistoryPanel } from './CommandHistoryPanel';\nexport { default as ConsolePanel } from './ConsolePanel';\nexport { default as DropdownFilterPanel } from './DropdownFilterPanel';\nexport { default as FileExplorerPanel } from './FileExplorerPanel';\nexport { default as FilterSetManager } from './FilterSetManager';\nexport type { FilterSet } from './FilterSetManager';\nexport { default as FilterSetManagerPanel } from './FilterSetManagerPanel';\nexport { default as InputFilterPanel } from './InputFilterPanel';\nexport { default as IrisGridPanel } from './IrisGridPanel';\nexport * from './IrisGridPanel';\nexport { default as LogPanel } from './LogPanel';\nexport { default as MarkdownPanel } from './MarkdownPanel';\nexport { default as NotebookPanel } from './NotebookPanel';\nexport { default as PandasPanel } from './PandasPanel';\nexport * from './PandasPanel';\nexport { default as Panel } from './Panel';\nexport { default as WidgetPanel } from './WidgetPanel';\nexport { default as WidgetPanelTooltip } from './WidgetPanelTooltip';\n"],"mappings":"SAASA,OAAO,IAAIC,UAAU;AAAA;AAAA,SAErBD,OAAO,IAAIE,mBAAmB;AAAA,SAC9BF,OAAO,IAAIG,YAAY;AAAA,SACvBH,OAAO,IAAII,mBAAmB;AAAA,SAC9BJ,OAAO,IAAIK,iBAAiB;AAAA,SAC5BL,OAAO,IAAIM,gBAAgB;AAAA,SAE3BN,OAAO,IAAIO,qBAAqB;AAAA,SAChCP,OAAO,IAAIQ,gBAAgB;AAAA,SAC3BR,OAAO,IAAIS,aAAa;AAAA;AAAA,SAExBT,OAAO,IAAIU,QAAQ;AAAA,SACnBV,OAAO,IAAIW,aAAa;AAAA,SACxBX,OAAO,IAAIY,aAAa;AAAA,SACxBZ,OAAO,IAAIa,WAAW;AAAA;AAAA,SAEtBb,OAAO,IAAIc,KAAK;AAAA,SAChBd,OAAO,IAAIe,WAAW;AAAA,SACtBf,OAAO,IAAIgB,kBAAkB"}
@@ -1,9 +1,6 @@
1
1
  import PropTypes from 'prop-types';
2
-
3
2
  var nullableBoolean = (props, propName) => props[propName] === null ? null : PropTypes.bool;
4
-
5
3
  var nullableString = (props, propName) => props[propName] === null ? null : PropTypes.string;
6
-
7
4
  var CommonPropTypes = Object.freeze({
8
5
  nullableBoolean,
9
6
  nullableString
@@ -1 +1 @@
1
- {"version":3,"file":"CommonPropTypes.js","names":["PropTypes","nullableBoolean","props","propName","bool","nullableString","string","CommonPropTypes","Object","freeze"],"sources":["../../src/prop-types/CommonPropTypes.ts"],"sourcesContent":["import PropTypes from 'prop-types';\n\nconst nullableBoolean = (props: Record<string, unknown>, propName: string) =>\n props[propName] === null ? null : PropTypes.bool;\n\nconst nullableString = (props: Record<string, unknown>, propName: string) =>\n props[propName] === null ? null : PropTypes.string;\n\nconst CommonPropTypes = Object.freeze({ nullableBoolean, nullableString });\n\nexport default CommonPropTypes;\n"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,YAAtB;;AAEA,IAAMC,eAAe,GAAG,CAACC,KAAD,EAAiCC,QAAjC,KACtBD,KAAK,CAACC,QAAD,CAAL,KAAoB,IAApB,GAA2B,IAA3B,GAAkCH,SAAS,CAACI,IAD9C;;AAGA,IAAMC,cAAc,GAAG,CAACH,KAAD,EAAiCC,QAAjC,KACrBD,KAAK,CAACC,QAAD,CAAL,KAAoB,IAApB,GAA2B,IAA3B,GAAkCH,SAAS,CAACM,MAD9C;;AAGA,IAAMC,eAAe,GAAGC,MAAM,CAACC,MAAP,CAAc;EAAER,eAAF;EAAmBI;AAAnB,CAAd,CAAxB;AAEA,eAAeE,eAAf"}
1
+ {"version":3,"file":"CommonPropTypes.js","names":["PropTypes","nullableBoolean","props","propName","bool","nullableString","string","CommonPropTypes","Object","freeze"],"sources":["../../src/prop-types/CommonPropTypes.ts"],"sourcesContent":["import PropTypes from 'prop-types';\n\nconst nullableBoolean = (props: Record<string, unknown>, propName: string) =>\n props[propName] === null ? null : PropTypes.bool;\n\nconst nullableString = (props: Record<string, unknown>, propName: string) =>\n props[propName] === null ? null : PropTypes.string;\n\nconst CommonPropTypes = Object.freeze({ nullableBoolean, nullableString });\n\nexport default CommonPropTypes;\n"],"mappings":"AAAA,OAAOA,SAAS,MAAM,YAAY;AAElC,IAAMC,eAAe,GAAG,CAACC,KAA8B,EAAEC,QAAgB,KACvED,KAAK,CAACC,QAAQ,CAAC,KAAK,IAAI,GAAG,IAAI,GAAGH,SAAS,CAACI,IAAI;AAElD,IAAMC,cAAc,GAAG,CAACH,KAA8B,EAAEC,QAAgB,KACtED,KAAK,CAACC,QAAQ,CAAC,KAAK,IAAI,GAAG,IAAI,GAAGH,SAAS,CAACM,MAAM;AAEpD,IAAMC,eAAe,GAAGC,MAAM,CAACC,MAAM,CAAC;EAAER,eAAe;EAAEI;AAAe,CAAC,CAAC;AAE1E,eAAeE,eAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"UIPropTypes.js","names":["PropTypes","Panel","shape","state","panelState","LinkPoint","panelId","string","isRequired","columnName","columnType","LinkPointUntyped","Link","start","end","id","isReversed","bool","Links","arrayOf","User","name","operateAs","groups","permissions","isSuperUser","isQueryViewOnly","isNonInteractive","canUsePanels","canCreateDashboard","canCreateCodeStudio","canCreateQueryMonitor","canCopy","canDownloadCsv","UIPropTypes","Object","freeze"],"sources":["../../src/prop-types/UIPropTypes.ts"],"sourcesContent":["import PropTypes from 'prop-types';\n\nconst Panel = PropTypes.shape({\n state: PropTypes.shape({\n panelState: PropTypes.shape({}),\n }),\n});\n\nconst LinkPoint = PropTypes.shape({\n panelId: PropTypes.string.isRequired,\n columnName: PropTypes.string.isRequired,\n columnType: PropTypes.string.isRequired,\n});\n\nconst LinkPointUntyped = PropTypes.shape({\n panelId: PropTypes.string.isRequired,\n columnName: PropTypes.string.isRequired,\n});\n\nconst Link = PropTypes.shape({\n start: LinkPointUntyped,\n end: LinkPointUntyped,\n id: PropTypes.string,\n isReversed: PropTypes.bool,\n});\n\nconst Links = PropTypes.arrayOf(Link);\n\nconst User = PropTypes.shape({\n name: PropTypes.string.isRequired,\n operateAs: PropTypes.string.isRequired,\n groups: PropTypes.arrayOf(PropTypes.string).isRequired,\n permissions: PropTypes.shape({\n isSuperUser: PropTypes.bool.isRequired,\n isQueryViewOnly: PropTypes.bool.isRequired,\n isNonInteractive: PropTypes.bool.isRequired,\n canUsePanels: PropTypes.bool.isRequired,\n canCreateDashboard: PropTypes.bool.isRequired,\n canCreateCodeStudio: PropTypes.bool.isRequired,\n canCreateQueryMonitor: PropTypes.bool.isRequired,\n canCopy: PropTypes.bool.isRequired,\n canDownloadCsv: PropTypes.bool.isRequired,\n }).isRequired,\n});\n\nconst UIPropTypes = Object.freeze({\n LinkPoint,\n Link,\n Links,\n Panel,\n User,\n});\n\nexport default UIPropTypes;\n"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,YAAtB;AAEA,IAAMC,KAAK,GAAGD,SAAS,CAACE,KAAV,CAAgB;EAC5BC,KAAK,EAAEH,SAAS,CAACE,KAAV,CAAgB;IACrBE,UAAU,EAAEJ,SAAS,CAACE,KAAV,CAAgB,EAAhB;EADS,CAAhB;AADqB,CAAhB,CAAd;AAMA,IAAMG,SAAS,GAAGL,SAAS,CAACE,KAAV,CAAgB;EAChCI,OAAO,EAAEN,SAAS,CAACO,MAAV,CAAiBC,UADM;EAEhCC,UAAU,EAAET,SAAS,CAACO,MAAV,CAAiBC,UAFG;EAGhCE,UAAU,EAAEV,SAAS,CAACO,MAAV,CAAiBC;AAHG,CAAhB,CAAlB;AAMA,IAAMG,gBAAgB,GAAGX,SAAS,CAACE,KAAV,CAAgB;EACvCI,OAAO,EAAEN,SAAS,CAACO,MAAV,CAAiBC,UADa;EAEvCC,UAAU,EAAET,SAAS,CAACO,MAAV,CAAiBC;AAFU,CAAhB,CAAzB;AAKA,IAAMI,IAAI,GAAGZ,SAAS,CAACE,KAAV,CAAgB;EAC3BW,KAAK,EAAEF,gBADoB;EAE3BG,GAAG,EAAEH,gBAFsB;EAG3BI,EAAE,EAAEf,SAAS,CAACO,MAHa;EAI3BS,UAAU,EAAEhB,SAAS,CAACiB;AAJK,CAAhB,CAAb;AAOA,IAAMC,KAAK,GAAGlB,SAAS,CAACmB,OAAV,CAAkBP,IAAlB,CAAd;AAEA,IAAMQ,IAAI,GAAGpB,SAAS,CAACE,KAAV,CAAgB;EAC3BmB,IAAI,EAAErB,SAAS,CAACO,MAAV,CAAiBC,UADI;EAE3Bc,SAAS,EAAEtB,SAAS,CAACO,MAAV,CAAiBC,UAFD;EAG3Be,MAAM,EAAEvB,SAAS,CAACmB,OAAV,CAAkBnB,SAAS,CAACO,MAA5B,EAAoCC,UAHjB;EAI3BgB,WAAW,EAAExB,SAAS,CAACE,KAAV,CAAgB;IAC3BuB,WAAW,EAAEzB,SAAS,CAACiB,IAAV,CAAeT,UADD;IAE3BkB,eAAe,EAAE1B,SAAS,CAACiB,IAAV,CAAeT,UAFL;IAG3BmB,gBAAgB,EAAE3B,SAAS,CAACiB,IAAV,CAAeT,UAHN;IAI3BoB,YAAY,EAAE5B,SAAS,CAACiB,IAAV,CAAeT,UAJF;IAK3BqB,kBAAkB,EAAE7B,SAAS,CAACiB,IAAV,CAAeT,UALR;IAM3BsB,mBAAmB,EAAE9B,SAAS,CAACiB,IAAV,CAAeT,UANT;IAO3BuB,qBAAqB,EAAE/B,SAAS,CAACiB,IAAV,CAAeT,UAPX;IAQ3BwB,OAAO,EAAEhC,SAAS,CAACiB,IAAV,CAAeT,UARG;IAS3ByB,cAAc,EAAEjC,SAAS,CAACiB,IAAV,CAAeT;EATJ,CAAhB,EAUVA;AAdwB,CAAhB,CAAb;AAiBA,IAAM0B,WAAW,GAAGC,MAAM,CAACC,MAAP,CAAc;EAChC/B,SADgC;EAEhCO,IAFgC;EAGhCM,KAHgC;EAIhCjB,KAJgC;EAKhCmB;AALgC,CAAd,CAApB;AAQA,eAAec,WAAf"}
1
+ {"version":3,"file":"UIPropTypes.js","names":["PropTypes","Panel","shape","state","panelState","LinkPoint","panelId","string","isRequired","columnName","columnType","LinkPointUntyped","Link","start","end","id","isReversed","bool","Links","arrayOf","User","name","operateAs","groups","permissions","isSuperUser","isQueryViewOnly","isNonInteractive","canUsePanels","canCreateDashboard","canCreateCodeStudio","canCreateQueryMonitor","canCopy","canDownloadCsv","UIPropTypes","Object","freeze"],"sources":["../../src/prop-types/UIPropTypes.ts"],"sourcesContent":["import PropTypes from 'prop-types';\n\nconst Panel = PropTypes.shape({\n state: PropTypes.shape({\n panelState: PropTypes.shape({}),\n }),\n});\n\nconst LinkPoint = PropTypes.shape({\n panelId: PropTypes.string.isRequired,\n columnName: PropTypes.string.isRequired,\n columnType: PropTypes.string.isRequired,\n});\n\nconst LinkPointUntyped = PropTypes.shape({\n panelId: PropTypes.string.isRequired,\n columnName: PropTypes.string.isRequired,\n});\n\nconst Link = PropTypes.shape({\n start: LinkPointUntyped,\n end: LinkPointUntyped,\n id: PropTypes.string,\n isReversed: PropTypes.bool,\n});\n\nconst Links = PropTypes.arrayOf(Link);\n\nconst User = PropTypes.shape({\n name: PropTypes.string.isRequired,\n operateAs: PropTypes.string.isRequired,\n groups: PropTypes.arrayOf(PropTypes.string).isRequired,\n permissions: PropTypes.shape({\n isSuperUser: PropTypes.bool.isRequired,\n isQueryViewOnly: PropTypes.bool.isRequired,\n isNonInteractive: PropTypes.bool.isRequired,\n canUsePanels: PropTypes.bool.isRequired,\n canCreateDashboard: PropTypes.bool.isRequired,\n canCreateCodeStudio: PropTypes.bool.isRequired,\n canCreateQueryMonitor: PropTypes.bool.isRequired,\n canCopy: PropTypes.bool.isRequired,\n canDownloadCsv: PropTypes.bool.isRequired,\n }).isRequired,\n});\n\nconst UIPropTypes = Object.freeze({\n LinkPoint,\n Link,\n Links,\n Panel,\n User,\n});\n\nexport default UIPropTypes;\n"],"mappings":"AAAA,OAAOA,SAAS,MAAM,YAAY;AAElC,IAAMC,KAAK,GAAGD,SAAS,CAACE,KAAK,CAAC;EAC5BC,KAAK,EAAEH,SAAS,CAACE,KAAK,CAAC;IACrBE,UAAU,EAAEJ,SAAS,CAACE,KAAK,CAAC,CAAC,CAAC;EAChC,CAAC;AACH,CAAC,CAAC;AAEF,IAAMG,SAAS,GAAGL,SAAS,CAACE,KAAK,CAAC;EAChCI,OAAO,EAAEN,SAAS,CAACO,MAAM,CAACC,UAAU;EACpCC,UAAU,EAAET,SAAS,CAACO,MAAM,CAACC,UAAU;EACvCE,UAAU,EAAEV,SAAS,CAACO,MAAM,CAACC;AAC/B,CAAC,CAAC;AAEF,IAAMG,gBAAgB,GAAGX,SAAS,CAACE,KAAK,CAAC;EACvCI,OAAO,EAAEN,SAAS,CAACO,MAAM,CAACC,UAAU;EACpCC,UAAU,EAAET,SAAS,CAACO,MAAM,CAACC;AAC/B,CAAC,CAAC;AAEF,IAAMI,IAAI,GAAGZ,SAAS,CAACE,KAAK,CAAC;EAC3BW,KAAK,EAAEF,gBAAgB;EACvBG,GAAG,EAAEH,gBAAgB;EACrBI,EAAE,EAAEf,SAAS,CAACO,MAAM;EACpBS,UAAU,EAAEhB,SAAS,CAACiB;AACxB,CAAC,CAAC;AAEF,IAAMC,KAAK,GAAGlB,SAAS,CAACmB,OAAO,CAACP,IAAI,CAAC;AAErC,IAAMQ,IAAI,GAAGpB,SAAS,CAACE,KAAK,CAAC;EAC3BmB,IAAI,EAAErB,SAAS,CAACO,MAAM,CAACC,UAAU;EACjCc,SAAS,EAAEtB,SAAS,CAACO,MAAM,CAACC,UAAU;EACtCe,MAAM,EAAEvB,SAAS,CAACmB,OAAO,CAACnB,SAAS,CAACO,MAAM,CAAC,CAACC,UAAU;EACtDgB,WAAW,EAAExB,SAAS,CAACE,KAAK,CAAC;IAC3BuB,WAAW,EAAEzB,SAAS,CAACiB,IAAI,CAACT,UAAU;IACtCkB,eAAe,EAAE1B,SAAS,CAACiB,IAAI,CAACT,UAAU;IAC1CmB,gBAAgB,EAAE3B,SAAS,CAACiB,IAAI,CAACT,UAAU;IAC3CoB,YAAY,EAAE5B,SAAS,CAACiB,IAAI,CAACT,UAAU;IACvCqB,kBAAkB,EAAE7B,SAAS,CAACiB,IAAI,CAACT,UAAU;IAC7CsB,mBAAmB,EAAE9B,SAAS,CAACiB,IAAI,CAACT,UAAU;IAC9CuB,qBAAqB,EAAE/B,SAAS,CAACiB,IAAI,CAACT,UAAU;IAChDwB,OAAO,EAAEhC,SAAS,CAACiB,IAAI,CAACT,UAAU;IAClCyB,cAAc,EAAEjC,SAAS,CAACiB,IAAI,CAACT;EACjC,CAAC,CAAC,CAACA;AACL,CAAC,CAAC;AAEF,IAAM0B,WAAW,GAAGC,MAAM,CAACC,MAAM,CAAC;EAChC/B,SAAS;EACTO,IAAI;EACJM,KAAK;EACLjB,KAAK;EACLmB;AACF,CAAC,CAAC;AAEF,eAAec,WAAW"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","UIPropTypes","CommonPropTypes"],"sources":["../../src/prop-types/index.ts"],"sourcesContent":["export { default as UIPropTypes } from './UIPropTypes';\nexport { default as CommonPropTypes } from './CommonPropTypes';\n"],"mappings":"SAASA,OAAO,IAAIC,W;SACXD,OAAO,IAAIE,e"}
1
+ {"version":3,"file":"index.js","names":["default","UIPropTypes","CommonPropTypes"],"sources":["../../src/prop-types/index.ts"],"sourcesContent":["export { default as UIPropTypes } from './UIPropTypes';\nexport { default as CommonPropTypes } from './CommonPropTypes';\n"],"mappings":"SAASA,OAAO,IAAIC,WAAW;AAAA,SACtBD,OAAO,IAAIE,eAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"actionTypes.js","names":["SET_SESSION_WRAPPER","SET_CONNECTION"],"sources":["../../src/redux/actionTypes.ts"],"sourcesContent":["export const SET_SESSION_WRAPPER = 'SET_SESSION_WRAPPER';\n\nexport const SET_CONNECTION = 'SET_CONNECTION';\n"],"mappings":"AAAA,OAAO,IAAMA,mBAAmB,GAAG,qBAA5B;AAEP,OAAO,IAAMC,cAAc,GAAG,gBAAvB"}
1
+ {"version":3,"file":"actionTypes.js","names":["SET_SESSION_WRAPPER","SET_CONNECTION"],"sources":["../../src/redux/actionTypes.ts"],"sourcesContent":["export const SET_SESSION_WRAPPER = 'SET_SESSION_WRAPPER';\n\nexport const SET_CONNECTION = 'SET_CONNECTION';\n"],"mappings":"AAAA,OAAO,IAAMA,mBAAmB,GAAG,qBAAqB;AAExD,OAAO,IAAMC,cAAc,GAAG,gBAAgB"}
@@ -1,7 +1,6 @@
1
1
  import deepEqual from 'deep-equal';
2
2
  import { updateDashboardData } from '@deephaven/dashboard';
3
3
  import { getLinksForDashboard } from "./selectors.js";
4
-
5
4
  /**
6
5
  * Set the connection for the dashboard specified
7
6
  * @param id The ID of the dashboard to set the connection for
@@ -10,79 +9,79 @@ import { getLinksForDashboard } from "./selectors.js";
10
9
  export var setDashboardConnection = (id, connection) => dispatch => dispatch(updateDashboardData(id, {
11
10
  connection
12
11
  }));
12
+
13
13
  /**
14
14
  * Set the session wrapper for the dashboard specified
15
15
  * @param id The ID of the dashboard to set the session for
16
16
  * @param sessionWrapper The session wrapper object to set for the dashboard
17
17
  */
18
-
19
18
  export var setDashboardSessionWrapper = (id, sessionWrapper) => dispatch => dispatch(updateDashboardData(id, {
20
19
  sessionWrapper
21
20
  }));
21
+
22
22
  /**
23
23
  * Set the links for a given dashboard
24
24
  * @param id The ID of the dashboard to set the links for
25
25
  * @param links The links to set
26
26
  */
27
-
28
27
  export var setDashboardLinks = (id, links) => dispatch => dispatch(updateDashboardData(id, {
29
28
  links
30
29
  }));
30
+
31
31
  /**
32
32
  * Add links to the existing links in a dashboard. Filters out any duplicate links.
33
33
  * @param id The ID of the dashboard to add links to
34
34
  * @param newLinks The new links to add
35
35
  */
36
-
37
36
  export var addDashboardLinks = (id, newLinks) => (dispatch, getState) => {
38
37
  var links = getLinksForDashboard(getState(), id);
39
38
  var filtered = newLinks.filter(newLink => links.findIndex(link => deepEqual(link.start, newLink.start) && deepEqual(link.end, newLink.end)) < 0);
40
39
  return dispatch(setDashboardLinks(id, links.concat(filtered)));
41
40
  };
41
+
42
42
  /**
43
43
  * Delete links from a dashboard
44
44
  * @param id The ID of the dashboard to delete links from
45
45
  * @param linkIds The link IDs to delete
46
46
  */
47
-
48
47
  export var deleteDashboardLinks = (id, linkIds) => (dispatch, getState) => {
49
48
  var links = getLinksForDashboard(getState(), id);
50
49
  var newLinks = links.filter(link => !linkIds.includes(link.id));
51
50
  return dispatch(setDashboardLinks(id, newLinks));
52
51
  };
52
+
53
53
  /**
54
54
  * Set the isolated linker panel ID for a dashboard
55
55
  * @param id The ID of the dashboard to set the isolated linker panel ID in
56
56
  * @param isolatedLinkerPanelId The isolated panel ID, or undefined to unset
57
57
  */
58
-
59
58
  export var setDashboardIsolatedLinkerPanelId = (id, isolatedLinkerPanelId) => dispatch => dispatch(updateDashboardData(id, {
60
59
  isolatedLinkerPanelId
61
60
  }));
61
+
62
62
  /**
63
63
  * Set the column selection validator for a dashboard
64
64
  * @param id The ID of the dashboard to set the column selection validator on
65
65
  * @param columnSelectionValidator The column selection validator to set
66
66
  */
67
-
68
67
  export var setDashboardColumnSelectionValidator = (id, columnSelectionValidator) => dispatch => dispatch(updateDashboardData(id, {
69
68
  columnSelectionValidator
70
69
  }));
70
+
71
71
  /**
72
72
  * Set the console settings for a dashboard
73
73
  * @param id The ID of the dashboard to set the console settings on
74
74
  * @param consoleSettings The console settings to set for the dashboard
75
75
  */
76
-
77
76
  export var setDashboardConsoleSettings = (id, consoleSettings) => dispatch => dispatch(updateDashboardData(id, {
78
77
  consoleSettings
79
78
  }));
79
+
80
80
  /**
81
81
  * Set the filter sets for a specific dashboard
82
82
  * @param id The ID of the dashboard to set the filter sets for
83
83
  * @param filterSets The filter sets to set
84
84
  */
85
-
86
85
  export var setDashboardFilterSets = (id, filterSets) => dispatch => dispatch(updateDashboardData(id, {
87
86
  filterSets
88
87
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","names":["deepEqual","updateDashboardData","getLinksForDashboard","setDashboardConnection","id","connection","dispatch","setDashboardSessionWrapper","sessionWrapper","setDashboardLinks","links","addDashboardLinks","newLinks","getState","filtered","filter","newLink","findIndex","link","start","end","concat","deleteDashboardLinks","linkIds","includes","setDashboardIsolatedLinkerPanelId","isolatedLinkerPanelId","setDashboardColumnSelectionValidator","columnSelectionValidator","setDashboardConsoleSettings","consoleSettings","setDashboardFilterSets","filterSets"],"sources":["../../src/redux/actions.ts"],"sourcesContent":["import deepEqual from 'deep-equal';\nimport { updateDashboardData } from '@deephaven/dashboard';\nimport { ThunkAction } from 'redux-thunk';\nimport { RootState } from '@deephaven/redux';\nimport { Action } from 'redux';\nimport { IdeConnection, IdeSession } from '@deephaven/jsapi-shim';\nimport { getLinksForDashboard } from './selectors';\nimport { FilterSet } from '../panels';\nimport { Link } from '../linker/LinkerUtils';\nimport { ColumnSelectionValidator } from '../linker/ColumnSelectionValidator';\n\nexport interface SessionConfig {\n type: string;\n id: string;\n}\n\nexport interface SessionWrapper {\n session: IdeSession;\n connection: IdeConnection;\n config: SessionConfig;\n}\n\n/**\n * Set the connection for the dashboard specified\n * @param id The ID of the dashboard to set the connection for\n * @param connection The connection object to set for the dashboard\n */\nexport const setDashboardConnection = (\n id: string,\n connection: IdeConnection\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { connection }));\n\n/**\n * Set the session wrapper for the dashboard specified\n * @param id The ID of the dashboard to set the session for\n * @param sessionWrapper The session wrapper object to set for the dashboard\n */\nexport const setDashboardSessionWrapper = (\n id: string,\n sessionWrapper: SessionWrapper\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { sessionWrapper }));\n\n/**\n * Set the links for a given dashboard\n * @param id The ID of the dashboard to set the links for\n * @param links The links to set\n */\nexport const setDashboardLinks = (\n id: string,\n links: Link[]\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { links }));\n\n/**\n * Add links to the existing links in a dashboard. Filters out any duplicate links.\n * @param id The ID of the dashboard to add links to\n * @param newLinks The new links to add\n */\nexport const addDashboardLinks = (\n id: string,\n newLinks: Link[]\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => (\n dispatch,\n getState\n) => {\n const links = getLinksForDashboard(getState(), id);\n const filtered = newLinks.filter(\n newLink =>\n links.findIndex(\n link =>\n deepEqual(link.start, newLink.start) &&\n deepEqual(link.end, newLink.end)\n ) < 0\n );\n return dispatch(setDashboardLinks(id, links.concat(filtered)));\n};\n\n/**\n * Delete links from a dashboard\n * @param id The ID of the dashboard to delete links from\n * @param linkIds The link IDs to delete\n */\nexport const deleteDashboardLinks = (\n id: string,\n linkIds: string[]\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => (\n dispatch,\n getState\n) => {\n const links = getLinksForDashboard(getState(), id);\n const newLinks = links.filter(link => !linkIds.includes(link.id));\n return dispatch(setDashboardLinks(id, newLinks));\n};\n\n/**\n * Set the isolated linker panel ID for a dashboard\n * @param id The ID of the dashboard to set the isolated linker panel ID in\n * @param isolatedLinkerPanelId The isolated panel ID, or undefined to unset\n */\nexport const setDashboardIsolatedLinkerPanelId = (\n id: string,\n isolatedLinkerPanelId: string | string[] | undefined\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { isolatedLinkerPanelId }));\n\n/**\n * Set the column selection validator for a dashboard\n * @param id The ID of the dashboard to set the column selection validator on\n * @param columnSelectionValidator The column selection validator to set\n */\nexport const setDashboardColumnSelectionValidator = (\n id: string,\n columnSelectionValidator: ColumnSelectionValidator | undefined\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { columnSelectionValidator }));\n\n/**\n * Set the console settings for a dashboard\n * @param id The ID of the dashboard to set the console settings on\n * @param consoleSettings The console settings to set for the dashboard\n */\nexport const setDashboardConsoleSettings = (\n id: string,\n consoleSettings: Record<string, unknown>\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { consoleSettings }));\n\n/**\n * Set the filter sets for a specific dashboard\n * @param id The ID of the dashboard to set the filter sets for\n * @param filterSets The filter sets to set\n */\nexport const setDashboardFilterSets = (\n id: string,\n filterSets: FilterSet[]\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { filterSets }));\n"],"mappings":"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"}
1
+ {"version":3,"file":"actions.js","names":["deepEqual","updateDashboardData","getLinksForDashboard","setDashboardConnection","id","connection","dispatch","setDashboardSessionWrapper","sessionWrapper","setDashboardLinks","links","addDashboardLinks","newLinks","getState","filtered","filter","newLink","findIndex","link","start","end","concat","deleteDashboardLinks","linkIds","includes","setDashboardIsolatedLinkerPanelId","isolatedLinkerPanelId","setDashboardColumnSelectionValidator","columnSelectionValidator","setDashboardConsoleSettings","consoleSettings","setDashboardFilterSets","filterSets"],"sources":["../../src/redux/actions.ts"],"sourcesContent":["import deepEqual from 'deep-equal';\nimport { updateDashboardData } from '@deephaven/dashboard';\nimport { ThunkAction } from 'redux-thunk';\nimport { RootState } from '@deephaven/redux';\nimport { Action } from 'redux';\nimport { IdeConnection, IdeSession } from '@deephaven/jsapi-shim';\nimport { getLinksForDashboard } from './selectors';\nimport { FilterSet } from '../panels';\nimport { Link } from '../linker/LinkerUtils';\nimport { ColumnSelectionValidator } from '../linker/ColumnSelectionValidator';\n\nexport interface SessionConfig {\n type: string;\n id: string;\n}\n\nexport interface SessionWrapper {\n session: IdeSession;\n connection: IdeConnection;\n config: SessionConfig;\n}\n\n/**\n * Set the connection for the dashboard specified\n * @param id The ID of the dashboard to set the connection for\n * @param connection The connection object to set for the dashboard\n */\nexport const setDashboardConnection = (\n id: string,\n connection: IdeConnection\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { connection }));\n\n/**\n * Set the session wrapper for the dashboard specified\n * @param id The ID of the dashboard to set the session for\n * @param sessionWrapper The session wrapper object to set for the dashboard\n */\nexport const setDashboardSessionWrapper = (\n id: string,\n sessionWrapper: SessionWrapper\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { sessionWrapper }));\n\n/**\n * Set the links for a given dashboard\n * @param id The ID of the dashboard to set the links for\n * @param links The links to set\n */\nexport const setDashboardLinks = (\n id: string,\n links: Link[]\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { links }));\n\n/**\n * Add links to the existing links in a dashboard. Filters out any duplicate links.\n * @param id The ID of the dashboard to add links to\n * @param newLinks The new links to add\n */\nexport const addDashboardLinks = (\n id: string,\n newLinks: Link[]\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => (\n dispatch,\n getState\n) => {\n const links = getLinksForDashboard(getState(), id);\n const filtered = newLinks.filter(\n newLink =>\n links.findIndex(\n link =>\n deepEqual(link.start, newLink.start) &&\n deepEqual(link.end, newLink.end)\n ) < 0\n );\n return dispatch(setDashboardLinks(id, links.concat(filtered)));\n};\n\n/**\n * Delete links from a dashboard\n * @param id The ID of the dashboard to delete links from\n * @param linkIds The link IDs to delete\n */\nexport const deleteDashboardLinks = (\n id: string,\n linkIds: string[]\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => (\n dispatch,\n getState\n) => {\n const links = getLinksForDashboard(getState(), id);\n const newLinks = links.filter(link => !linkIds.includes(link.id));\n return dispatch(setDashboardLinks(id, newLinks));\n};\n\n/**\n * Set the isolated linker panel ID for a dashboard\n * @param id The ID of the dashboard to set the isolated linker panel ID in\n * @param isolatedLinkerPanelId The isolated panel ID, or undefined to unset\n */\nexport const setDashboardIsolatedLinkerPanelId = (\n id: string,\n isolatedLinkerPanelId: string | string[] | undefined\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { isolatedLinkerPanelId }));\n\n/**\n * Set the column selection validator for a dashboard\n * @param id The ID of the dashboard to set the column selection validator on\n * @param columnSelectionValidator The column selection validator to set\n */\nexport const setDashboardColumnSelectionValidator = (\n id: string,\n columnSelectionValidator: ColumnSelectionValidator | undefined\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { columnSelectionValidator }));\n\n/**\n * Set the console settings for a dashboard\n * @param id The ID of the dashboard to set the console settings on\n * @param consoleSettings The console settings to set for the dashboard\n */\nexport const setDashboardConsoleSettings = (\n id: string,\n consoleSettings: Record<string, unknown>\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { consoleSettings }));\n\n/**\n * Set the filter sets for a specific dashboard\n * @param id The ID of the dashboard to set the filter sets for\n * @param filterSets The filter sets to set\n */\nexport const setDashboardFilterSets = (\n id: string,\n filterSets: FilterSet[]\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { filterSets }));\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["reducerRegistry","reducers","Object","entries","map","name","reducer","register"],"sources":["../../src/redux/index.ts"],"sourcesContent":["import { reducerRegistry } from '@deephaven/redux';\nimport reducers from './reducers';\n\nObject.entries(reducers).map(([name, reducer]) =>\n reducerRegistry.register(name, reducer)\n);\n\nexport * from './actions';\nexport * from './actionTypes';\nexport * from './selectors';\n"],"mappings":"AAAA,SAASA,eAAT,QAAgC,kBAAhC;OACOC,Q;AAEPC,MAAM,CAACC,OAAP,CAAeF,QAAf,EAAyBG,GAAzB,CAA6B;EAAA,IAAC,CAACC,IAAD,EAAOC,OAAP,CAAD;EAAA,OAC3BN,eAAe,CAACO,QAAhB,CAAyBF,IAAzB,EAA+BC,OAA/B,CAD2B;AAAA,CAA7B"}
1
+ {"version":3,"file":"index.js","names":["reducerRegistry","reducers","Object","entries","map","name","reducer","register"],"sources":["../../src/redux/index.ts"],"sourcesContent":["import { reducerRegistry } from '@deephaven/redux';\nimport reducers from './reducers';\n\nObject.entries(reducers).map(([name, reducer]) =>\n reducerRegistry.register(name, reducer)\n);\n\nexport * from './actions';\nexport * from './actionTypes';\nexport * from './selectors';\n"],"mappings":"AAAA,SAASA,eAAe,QAAQ,kBAAkB;AAAC,OAC5CC,QAAQ;AAEfC,MAAM,CAACC,OAAO,CAACF,QAAQ,CAAC,CAACG,GAAG,CAAC;EAAA,IAAC,CAACC,IAAI,EAAEC,OAAO,CAAC;EAAA,OAC3CN,eAAe,CAACO,QAAQ,CAACF,IAAI,EAAEC,OAAO,CAAC;AAAA,EACxC;AAAC;AAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","names":["replaceReducer","SET_CONNECTION"],"sources":["../../../src/redux/reducers/connection.ts"],"sourcesContent":["/**\n * Set the active session being used to communicate with the server.\n */\nimport { replaceReducer } from '@deephaven/redux';\nimport { SET_CONNECTION } from '../actionTypes';\n\nexport default replaceReducer(SET_CONNECTION, null);\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,cAAT,QAA+B,kBAA/B;SACSC,c;AAET,eAAeD,cAAc,CAACC,cAAD,EAAiB,IAAjB,CAA7B"}
1
+ {"version":3,"file":"connection.js","names":["replaceReducer","SET_CONNECTION"],"sources":["../../../src/redux/reducers/connection.ts"],"sourcesContent":["/**\n * Set the active session being used to communicate with the server.\n */\nimport { replaceReducer } from '@deephaven/redux';\nimport { SET_CONNECTION } from '../actionTypes';\n\nexport default replaceReducer(SET_CONNECTION, null);\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,cAAc,QAAQ,kBAAkB;AAAC,SACzCC,cAAc;AAEvB,eAAeD,cAAc,CAACC,cAAc,EAAE,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["sessionWrapper"],"sources":["../../../src/redux/reducers/index.ts"],"sourcesContent":["import sessionWrapper from './sessionWrapper';\n\nexport default { sessionWrapper };\n"],"mappings":"OAAOA,c;AAEP,eAAe;EAAEA;AAAF,CAAf"}
1
+ {"version":3,"file":"index.js","names":["sessionWrapper"],"sources":["../../../src/redux/reducers/index.ts"],"sourcesContent":["import sessionWrapper from './sessionWrapper';\n\nexport default { sessionWrapper };\n"],"mappings":"OAAOA,cAAc;AAErB,eAAe;EAAEA;AAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sessionWrapper.js","names":["replaceReducer","SET_SESSION_WRAPPER"],"sources":["../../../src/redux/reducers/sessionWrapper.ts"],"sourcesContent":["/**\n * Set the active session being used to communicate with the server.\n */\nimport { replaceReducer } from '@deephaven/redux';\nimport { SET_SESSION_WRAPPER } from '../actionTypes';\n\nexport default replaceReducer(SET_SESSION_WRAPPER, null);\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,cAAT,QAA+B,kBAA/B;SACSC,mB;AAET,eAAeD,cAAc,CAACC,mBAAD,EAAsB,IAAtB,CAA7B"}
1
+ {"version":3,"file":"sessionWrapper.js","names":["replaceReducer","SET_SESSION_WRAPPER"],"sources":["../../../src/redux/reducers/sessionWrapper.ts"],"sourcesContent":["/**\n * Set the active session being used to communicate with the server.\n */\nimport { replaceReducer } from '@deephaven/redux';\nimport { SET_SESSION_WRAPPER } from '../actionTypes';\n\nexport default replaceReducer(SET_SESSION_WRAPPER, null);\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,cAAc,QAAQ,kBAAkB;AAAC,SACzCC,mBAAmB;AAE5B,eAAeD,cAAc,CAACC,mBAAmB,EAAE,IAAI,CAAC"}