@deephaven/dashboard-core-plugins 1.7.2-beta.1 → 1.7.2-react-18-alpha.3

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 (152) hide show
  1. package/dist/ChartBuilderPlugin.js.map +1 -1
  2. package/dist/ChartBuilderPluginConfig.js.map +1 -1
  3. package/dist/ChartPanelPlugin.js +1 -1
  4. package/dist/ChartPanelPlugin.js.map +1 -1
  5. package/dist/ChartPluginConfig.js.map +1 -1
  6. package/dist/ChartWidgetPlugin.js.map +1 -1
  7. package/dist/ConsolePlugin.d.ts.map +1 -1
  8. package/dist/ConsolePlugin.js +12 -2
  9. package/dist/ConsolePlugin.js.map +1 -1
  10. package/dist/FilterEvents.js.map +1 -1
  11. package/dist/FilterPlugin.js +2 -2
  12. package/dist/FilterPlugin.js.map +1 -1
  13. package/dist/FilterPluginConfig.js.map +1 -1
  14. package/dist/GridPanelPlugin.js.map +1 -1
  15. package/dist/GridPluginConfig.js.map +1 -1
  16. package/dist/GridWidgetPlugin.js.map +1 -1
  17. package/dist/LinkerPlugin.js.map +1 -1
  18. package/dist/LinkerPluginConfig.js.map +1 -1
  19. package/dist/MarkdownPlugin.js +1 -1
  20. package/dist/MarkdownPlugin.js.map +1 -1
  21. package/dist/MarkdownPluginConfig.js.map +1 -1
  22. package/dist/PandasPanelPlugin.js.map +1 -1
  23. package/dist/PandasPluginConfig.js.map +1 -1
  24. package/dist/PandasWidgetPlugin.js.map +1 -1
  25. package/dist/TablePluginWrapper.js.map +1 -1
  26. package/dist/WidgetLoaderPlugin.js.map +1 -1
  27. package/dist/WidgetLoaderPluginConfig.js.map +1 -1
  28. package/dist/controls/ControlType.js.map +1 -1
  29. package/dist/controls/dropdown-filter/DropdownFilter.d.ts +1 -1
  30. package/dist/controls/dropdown-filter/DropdownFilter.d.ts.map +1 -1
  31. package/dist/controls/dropdown-filter/DropdownFilter.js +4 -6
  32. package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
  33. package/dist/controls/input-filter/InputFilter.js +1 -2
  34. package/dist/controls/input-filter/InputFilter.js.map +1 -1
  35. package/dist/controls/markdown/MarkdownContainer.js +1 -2
  36. package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
  37. package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
  38. package/dist/controls/markdown/MarkdownStartPage.js +1 -2
  39. package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
  40. package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
  41. package/dist/events/ChartEvent.js +2 -0
  42. package/dist/events/ChartEvent.js.map +1 -1
  43. package/dist/events/ConsoleEvent.js.map +1 -1
  44. package/dist/events/InputFilterEvent.js +8 -0
  45. package/dist/events/InputFilterEvent.js.map +1 -1
  46. package/dist/events/IrisGridEvent.js +2 -0
  47. package/dist/events/IrisGridEvent.js.map +1 -1
  48. package/dist/events/MarkdownEvent.js.map +1 -1
  49. package/dist/events/NotebookEvent.js.map +1 -1
  50. package/dist/events/PQEvent.js.map +1 -1
  51. package/dist/events/PandasEvent.js +2 -0
  52. package/dist/events/PandasEvent.js.map +1 -1
  53. package/dist/events/TabEventMap.js.map +1 -1
  54. package/dist/events/index.js.map +1 -1
  55. package/dist/index.js.map +1 -1
  56. package/dist/linker/ColumnSelectionValidator.js.map +1 -1
  57. package/dist/linker/Linker.js +2 -2
  58. package/dist/linker/Linker.js.map +1 -1
  59. package/dist/linker/LinkerEvent.js.map +1 -1
  60. package/dist/linker/LinkerLink.js +1 -3
  61. package/dist/linker/LinkerLink.js.map +1 -1
  62. package/dist/linker/LinkerOverlayContent.js +1 -2
  63. package/dist/linker/LinkerOverlayContent.js.map +1 -1
  64. package/dist/linker/LinkerUtils.js.map +1 -1
  65. package/dist/linker/ToolType.js.map +1 -1
  66. package/dist/linker/index.js.map +1 -1
  67. package/dist/panels/ChartColumnSelectorOverlay.d.ts +0 -4
  68. package/dist/panels/ChartColumnSelectorOverlay.d.ts.map +1 -1
  69. package/dist/panels/ChartColumnSelectorOverlay.js +2 -7
  70. package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
  71. package/dist/panels/ChartFilterOverlay.d.ts +0 -12
  72. package/dist/panels/ChartFilterOverlay.d.ts.map +1 -1
  73. package/dist/panels/ChartFilterOverlay.js +1 -13
  74. package/dist/panels/ChartFilterOverlay.js.map +1 -1
  75. package/dist/panels/ChartPanel.d.ts +10 -10
  76. package/dist/panels/ChartPanel.d.ts.map +1 -1
  77. package/dist/panels/ChartPanel.js +2 -4
  78. package/dist/panels/ChartPanel.js.map +1 -1
  79. package/dist/panels/ChartPanelUtils.js.map +1 -1
  80. package/dist/panels/CommandHistoryPanel.js +2 -4
  81. package/dist/panels/CommandHistoryPanel.js.map +1 -1
  82. package/dist/panels/ConsolePanel.d.ts +2 -1
  83. package/dist/panels/ConsolePanel.d.ts.map +1 -1
  84. package/dist/panels/ConsolePanel.js +11 -11
  85. package/dist/panels/ConsolePanel.js.map +1 -1
  86. package/dist/panels/CorePanel.js +3 -3
  87. package/dist/panels/CorePanel.js.map +1 -1
  88. package/dist/panels/DropdownFilterPanel.d.ts +2 -8
  89. package/dist/panels/DropdownFilterPanel.d.ts.map +1 -1
  90. package/dist/panels/DropdownFilterPanel.js +6 -6
  91. package/dist/panels/DropdownFilterPanel.js.map +1 -1
  92. package/dist/panels/FileExplorerPanel.d.ts +1 -7
  93. package/dist/panels/FileExplorerPanel.d.ts.map +1 -1
  94. package/dist/panels/FileExplorerPanel.js +1 -2
  95. package/dist/panels/FileExplorerPanel.js.map +1 -1
  96. package/dist/panels/FilterSetManager.js +12 -13
  97. package/dist/panels/FilterSetManager.js.map +1 -1
  98. package/dist/panels/FilterSetManagerPanel.d.ts +3 -3
  99. package/dist/panels/FilterSetManagerPanel.js +4 -4
  100. package/dist/panels/FilterSetManagerPanel.js.map +1 -1
  101. package/dist/panels/InputFilterPanel.d.ts +3 -3
  102. package/dist/panels/InputFilterPanel.js +4 -5
  103. package/dist/panels/InputFilterPanel.js.map +1 -1
  104. package/dist/panels/IrisGridPanel.d.ts +5 -5
  105. package/dist/panels/IrisGridPanel.d.ts.map +1 -1
  106. package/dist/panels/IrisGridPanel.js +14 -13
  107. package/dist/panels/IrisGridPanel.js.map +1 -1
  108. package/dist/panels/IrisGridPanelTooltip.js +1 -2
  109. package/dist/panels/IrisGridPanelTooltip.js.map +1 -1
  110. package/dist/panels/IrisGridPanelTypes.js.map +1 -1
  111. package/dist/panels/LogPanel.d.ts +3 -3
  112. package/dist/panels/LogPanel.d.ts.map +1 -1
  113. package/dist/panels/LogPanel.js +1 -3
  114. package/dist/panels/LogPanel.js.map +1 -1
  115. package/dist/panels/MarkdownNotebook.js +3 -4
  116. package/dist/panels/MarkdownNotebook.js.map +1 -1
  117. package/dist/panels/MarkdownPanel.d.ts +3 -3
  118. package/dist/panels/MarkdownPanel.js.map +1 -1
  119. package/dist/panels/MockFileStorage.js.map +1 -1
  120. package/dist/panels/MockFileStorageTable.js +1 -1
  121. package/dist/panels/MockFileStorageTable.js.map +1 -1
  122. package/dist/panels/NotebookPanel.d.ts +7 -9
  123. package/dist/panels/NotebookPanel.d.ts.map +1 -1
  124. package/dist/panels/NotebookPanel.js +8 -10
  125. package/dist/panels/NotebookPanel.js.map +1 -1
  126. package/dist/panels/PandasPanel.js +5 -6
  127. package/dist/panels/PandasPanel.js.map +1 -1
  128. package/dist/panels/PandasReloadButton.js +2 -3
  129. package/dist/panels/PandasReloadButton.js.map +1 -1
  130. package/dist/panels/WidgetPanel.js +2 -3
  131. package/dist/panels/WidgetPanel.js.map +1 -1
  132. package/dist/panels/WidgetPanelTooltip.js +1 -3
  133. package/dist/panels/WidgetPanelTooltip.js.map +1 -1
  134. package/dist/panels/WidgetPanelTypes.js.map +1 -1
  135. package/dist/panels/index.js.map +1 -1
  136. package/dist/prop-types/CommonPropTypes.js.map +1 -1
  137. package/dist/prop-types/UIPropTypes.js.map +1 -1
  138. package/dist/prop-types/index.js.map +1 -1
  139. package/dist/redux/actions.js.map +1 -1
  140. package/dist/redux/index.js.map +1 -1
  141. package/dist/redux/selectors.js.map +1 -1
  142. package/dist/useChartLinker.js.map +1 -1
  143. package/dist/useConfigureRuff.js.map +1 -1
  144. package/dist/useDashboardColumnFilters.js.map +1 -1
  145. package/dist/useGridLinker.js.map +1 -1
  146. package/dist/useHydrateGrid.js.map +1 -1
  147. package/dist/useIrisGridModel.js +2 -2
  148. package/dist/useIrisGridModel.js.map +1 -1
  149. package/dist/useLoadTablePlugin.js.map +1 -1
  150. package/dist/useTablePlugin.js +1 -1
  151. package/dist/useTablePlugin.js.map +1 -1
  152. package/package.json +24 -24
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetPanel.js","names":["React","PureComponent","classNames","memoize","ContextActions","createXComponent","copyToClipboard","EMPTY_ARRAY","Panel","WidgetPanelTooltip","jsx","_jsx","jsxs","_jsxs","WidgetPanel","constructor","props","_this","this","_defineProperty","showTabTooltip","descriptor","undefined","_descriptor$displayTy","propsAdditionalActions","arguments","length","title","concat","displayType","type","group","groups","medium","order","action","handleCopyName","handleSessionClosed","bind","state","isClientDisconnected","isPanelDisconnected","isWidgetDisconnected","isWaitingForReconnect","isPanelInactive","name","getErrorMessage","errorMessage","session","onSessionClose","setState","render","children","className","componentPanel","isLoaded","isLoading","glContainer","glEventHub","isDisconnected","isClonable","isRenamable","renderTabTooltip","onClearAllFilters","onHide","onFocus","onBlur","onResize","onSessionOpen","onShow","onTabBlur","onTabFocus","onTabClicked","additionalActions","doRenderTabTooltip","getCachedRenderTabTooltip","getCachedActions","disconnected","inactive","XWidgetPanel"],"sources":["../../src/panels/WidgetPanel.tsx"],"sourcesContent":["import React, { PureComponent, type ReactElement } from 'react';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport {\n ContextActions,\n createXComponent,\n type ResolvableContextAction,\n} from '@deephaven/components';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { copyToClipboard, EMPTY_ARRAY } from '@deephaven/utils';\nimport Panel, { type CorePanelProps } from './CorePanel';\nimport WidgetPanelTooltip from './WidgetPanelTooltip';\nimport './WidgetPanel.scss';\nimport { type WidgetPanelDescriptor } from './WidgetPanelTypes';\n\nexport type WidgetPanelProps = CorePanelProps & {\n descriptor: WidgetPanelDescriptor;\n showTabTooltip?: boolean;\n isDisconnected?: boolean;\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 isClonable: true,\n isDisconnected: false,\n isLoading: false,\n isLoaded: true,\n isRenamable: true,\n showTabTooltip: true,\n };\n\n constructor(props: WidgetPanelProps) {\n super(props);\n\n this.handleSessionClosed = this.handleSessionClosed.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 { descriptor } = this.props;\n copyToClipboard(descriptor.name);\n }\n\n getErrorMessage(): string | undefined {\n const { descriptor, errorMessage } = this.props;\n const {\n isClientDisconnected,\n isPanelDisconnected,\n isWidgetDisconnected,\n isWaitingForReconnect,\n } = this.state;\n if (errorMessage != null && 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 { name, type } = descriptor;\n return `Variable \"${name}\" not set.\\n${type} does not exist yet.`;\n }\n if (isWidgetDisconnected) {\n return `${descriptor.name} is unavailable.`;\n }\n return undefined;\n }\n\n getCachedRenderTabTooltip = memoize(\n (showTabTooltip: boolean, descriptor: WidgetPanelDescriptor) =>\n showTabTooltip\n ? () => <WidgetPanelTooltip descriptor={descriptor} />\n : undefined\n );\n\n getCachedActions = memoize(\n (\n descriptor: WidgetPanelDescriptor,\n propsAdditionalActions: readonly ResolvableContextAction[] = EMPTY_ARRAY\n ) => [\n ...propsAdditionalActions,\n {\n title: `Copy ${descriptor.displayType ?? descriptor.type} Name`,\n group: ContextActions.groups.medium,\n order: 20,\n action: this.handleCopyName,\n },\n ]\n );\n\n handleSessionClosed(session: dh.IdeSession): 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?.(session);\n }\n\n render(): ReactElement {\n const {\n children,\n className,\n componentPanel,\n descriptor,\n isLoaded,\n isLoading,\n glContainer,\n glEventHub,\n isDisconnected,\n isClonable,\n isRenamable,\n showTabTooltip = false,\n renderTabTooltip,\n\n onClearAllFilters,\n onHide,\n onFocus,\n onBlur,\n onResize,\n onSessionOpen,\n onShow,\n onTabBlur,\n onTabFocus,\n onTabClicked,\n\n additionalActions: propsAdditionalActions,\n } = this.props;\n\n const { isPanelDisconnected, isWidgetDisconnected, isPanelInactive } =\n this.state;\n const errorMessage = this.getErrorMessage();\n const doRenderTabTooltip =\n renderTabTooltip ??\n this.getCachedRenderTabTooltip(showTabTooltip, descriptor);\n\n const additionalActions = this.getCachedActions(\n descriptor,\n propsAdditionalActions\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={onSessionOpen}\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\nconst XWidgetPanel = createXComponent<WidgetPanelProps>(WidgetPanel);\n\nexport default XWidgetPanel;\n"],"mappings":"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"}
1
+ {"version":3,"file":"WidgetPanel.js","names":["React","PureComponent","classNames","memoize","ContextActions","createXComponent","copyToClipboard","EMPTY_ARRAY","Panel","WidgetPanelTooltip","jsx","_jsx","jsxs","_jsxs","WidgetPanel","constructor","props","_this","this","_defineProperty","showTabTooltip","descriptor","undefined","_descriptor$displayTy","propsAdditionalActions","arguments","length","title","concat","displayType","type","group","groups","medium","order","action","handleCopyName","handleSessionClosed","bind","state","isClientDisconnected","isPanelDisconnected","isWidgetDisconnected","isWaitingForReconnect","isPanelInactive","name","getErrorMessage","errorMessage","session","onSessionClose","setState","render","children","className","componentPanel","isLoaded","isLoading","glContainer","glEventHub","isDisconnected","isClonable","isRenamable","renderTabTooltip","onClearAllFilters","onHide","onFocus","onBlur","onResize","onSessionOpen","onShow","onTabBlur","onTabFocus","onTabClicked","additionalActions","doRenderTabTooltip","getCachedRenderTabTooltip","getCachedActions","disconnected","inactive","XWidgetPanel"],"sources":["../../src/panels/WidgetPanel.tsx"],"sourcesContent":["import React, { PureComponent, type ReactElement } from 'react';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport {\n ContextActions,\n createXComponent,\n type ResolvableContextAction,\n} from '@deephaven/components';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { copyToClipboard, EMPTY_ARRAY } from '@deephaven/utils';\nimport Panel, { type CorePanelProps } from './CorePanel';\nimport WidgetPanelTooltip from './WidgetPanelTooltip';\nimport './WidgetPanel.scss';\nimport { type WidgetPanelDescriptor } from './WidgetPanelTypes';\n\nexport type WidgetPanelProps = CorePanelProps & {\n descriptor: WidgetPanelDescriptor;\n showTabTooltip?: boolean;\n isDisconnected?: boolean;\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 isClonable: true,\n isDisconnected: false,\n isLoading: false,\n isLoaded: true,\n isRenamable: true,\n showTabTooltip: true,\n };\n\n constructor(props: WidgetPanelProps) {\n super(props);\n\n this.handleSessionClosed = this.handleSessionClosed.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 { descriptor } = this.props;\n copyToClipboard(descriptor.name);\n }\n\n getErrorMessage(): string | undefined {\n const { descriptor, errorMessage } = this.props;\n const {\n isClientDisconnected,\n isPanelDisconnected,\n isWidgetDisconnected,\n isWaitingForReconnect,\n } = this.state;\n if (errorMessage != null && 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 { name, type } = descriptor;\n return `Variable \"${name}\" not set.\\n${type} does not exist yet.`;\n }\n if (isWidgetDisconnected) {\n return `${descriptor.name} is unavailable.`;\n }\n return undefined;\n }\n\n getCachedRenderTabTooltip = memoize(\n (showTabTooltip: boolean, descriptor: WidgetPanelDescriptor) =>\n showTabTooltip\n ? () => <WidgetPanelTooltip descriptor={descriptor} />\n : undefined\n );\n\n getCachedActions = memoize(\n (\n descriptor: WidgetPanelDescriptor,\n propsAdditionalActions: readonly ResolvableContextAction[] = EMPTY_ARRAY\n ) => [\n ...propsAdditionalActions,\n {\n title: `Copy ${descriptor.displayType ?? descriptor.type} Name`,\n group: ContextActions.groups.medium,\n order: 20,\n action: this.handleCopyName,\n },\n ]\n );\n\n handleSessionClosed(session: dh.IdeSession): 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?.(session);\n }\n\n render(): ReactElement {\n const {\n children,\n className,\n componentPanel,\n descriptor,\n isLoaded,\n isLoading,\n glContainer,\n glEventHub,\n isDisconnected,\n isClonable,\n isRenamable,\n showTabTooltip = false,\n renderTabTooltip,\n\n onClearAllFilters,\n onHide,\n onFocus,\n onBlur,\n onResize,\n onSessionOpen,\n onShow,\n onTabBlur,\n onTabFocus,\n onTabClicked,\n\n additionalActions: propsAdditionalActions,\n } = this.props;\n\n const { isPanelDisconnected, isWidgetDisconnected, isPanelInactive } =\n this.state;\n const errorMessage = this.getErrorMessage();\n const doRenderTabTooltip =\n renderTabTooltip ??\n this.getCachedRenderTabTooltip(showTabTooltip, descriptor);\n\n const additionalActions = this.getCachedActions(\n descriptor,\n propsAdditionalActions\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={onSessionOpen}\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\nconst XWidgetPanel = createXComponent<WidgetPanelProps>(WidgetPanel);\n\nexport default XWidgetPanel;\n"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,7 @@
1
1
  import React from 'react';
2
2
  import { CopyButton, createXComponent } from '@deephaven/components';
3
3
  import "./WidgetPanelTooltip.css";
4
- import { jsxs as _jsxs } from "react/jsx-runtime";
5
- import { jsx as _jsx } from "react/jsx-runtime";
6
- import { Fragment as _Fragment } from "react/jsx-runtime";
4
+ import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
7
5
  function WidgetPanelTooltip(props) {
8
6
  var {
9
7
  children,
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetPanelTooltip.js","names":["React","CopyButton","createXComponent","jsxs","_jsxs","jsx","_jsx","Fragment","_Fragment","WidgetPanelTooltip","props","children","descriptor","name","type","description","displayName","formattedType","replace","className","tooltip","copy","Boolean","XWidgetPanelTooltip"],"sources":["../../src/panels/WidgetPanelTooltip.tsx"],"sourcesContent":["import React, { type ReactElement } from 'react';\nimport { CopyButton, createXComponent } from '@deephaven/components';\nimport './WidgetPanelTooltip.scss';\nimport { type WidgetPanelTooltipProps } from './WidgetPanelTypes';\n\nfunction WidgetPanelTooltip(props: WidgetPanelTooltipProps): ReactElement {\n const { children, descriptor } = props;\n const { name, type, description, displayName } = descriptor;\n\n // Convert PascalCase to Title Case\n // ex. PartitionedTable -> Partitioned Table\n const formattedType = type.replace(/([a-z])([A-Z])/g, '$1 $2');\n\n return (\n <div className=\"tab-tooltip-grid-container\">\n <span className=\"tab-tooltip-title\">{formattedType} Name</span>\n <div className=\"tab-tooltip-name-wrapper\">\n <span className=\"tab-tooltip-name\">{name}</span>\n <CopyButton\n className=\"tab-tooltip-copy\"\n tooltip=\"Copy name\"\n copy={name}\n />\n </div>\n {name !== displayName && Boolean(displayName) && (\n <>\n <span className=\"tab-tooltip-title\">Display Name</span>\n <span className=\"tab-tooltip-name\">{displayName}</span>\n </>\n )}\n {Boolean(description) && (\n <div className=\"tab-tooltip-description\">{description}</div>\n )}\n {children}\n </div>\n );\n}\n\nconst XWidgetPanelTooltip = createXComponent(WidgetPanelTooltip);\n\nexport default XWidgetPanelTooltip;\n"],"mappings":"AAAA,OAAOA,KAAK,MAA6B,OAAO;AAChD,SAASC,UAAU,EAAEC,gBAAgB,QAAQ,uBAAuB;AAAC;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAIrE,SAASC,kBAAkBA,CAACC,KAA8B,EAAgB;EACxE,IAAM;IAAEC,QAAQ;IAAEC;EAAW,CAAC,GAAGF,KAAK;EACtC,IAAM;IAAEG,IAAI;IAAEC,IAAI;IAAEC,WAAW;IAAEC;EAAY,CAAC,GAAGJ,UAAU;;EAE3D;EACA;EACA,IAAMK,aAAa,GAAGH,IAAI,CAACI,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;EAE9D,oBACEd,KAAA;IAAKe,SAAS,EAAC,4BAA4B;IAAAR,QAAA,gBACzCP,KAAA;MAAMe,SAAS,EAAC,mBAAmB;MAAAR,QAAA,GAAEM,aAAa,EAAC,OAAK;IAAA,CAAM,CAAC,eAC/Db,KAAA;MAAKe,SAAS,EAAC,0BAA0B;MAAAR,QAAA,gBACvCL,IAAA;QAAMa,SAAS,EAAC,kBAAkB;QAAAR,QAAA,EAAEE;MAAI,CAAO,CAAC,eAChDP,IAAA,CAACL,UAAU;QACTkB,SAAS,EAAC,kBAAkB;QAC5BC,OAAO,EAAC,WAAW;QACnBC,IAAI,EAAER;MAAK,CACZ,CAAC;IAAA,CACC,CAAC,EACLA,IAAI,KAAKG,WAAW,IAAIM,OAAO,CAACN,WAAW,CAAC,iBAC3CZ,KAAA,CAAAI,SAAA;MAAAG,QAAA,gBACEL,IAAA;QAAMa,SAAS,EAAC,mBAAmB;QAAAR,QAAA,EAAC;MAAY,CAAM,CAAC,eACvDL,IAAA;QAAMa,SAAS,EAAC,kBAAkB;QAAAR,QAAA,EAAEK;MAAW,CAAO,CAAC;IAAA,CACvD,CACH,EACAM,OAAO,CAACP,WAAW,CAAC,iBACnBT,IAAA;MAAKa,SAAS,EAAC,yBAAyB;MAAAR,QAAA,EAAEI;IAAW,CAAM,CAC5D,EACAJ,QAAQ;EAAA,CACN,CAAC;AAEV;AAEA,IAAMY,mBAAmB,GAAGrB,gBAAgB,CAACO,kBAAkB,CAAC;AAEhE,eAAec,mBAAmB"}
1
+ {"version":3,"file":"WidgetPanelTooltip.js","names":["React","CopyButton","createXComponent","jsxs","_jsxs","jsx","_jsx","Fragment","_Fragment","WidgetPanelTooltip","props","children","descriptor","name","type","description","displayName","formattedType","replace","className","tooltip","copy","Boolean","XWidgetPanelTooltip"],"sources":["../../src/panels/WidgetPanelTooltip.tsx"],"sourcesContent":["import React, { type ReactElement } from 'react';\nimport { CopyButton, createXComponent } from '@deephaven/components';\nimport './WidgetPanelTooltip.scss';\nimport { type WidgetPanelTooltipProps } from './WidgetPanelTypes';\n\nfunction WidgetPanelTooltip(props: WidgetPanelTooltipProps): ReactElement {\n const { children, descriptor } = props;\n const { name, type, description, displayName } = descriptor;\n\n // Convert PascalCase to Title Case\n // ex. PartitionedTable -> Partitioned Table\n const formattedType = type.replace(/([a-z])([A-Z])/g, '$1 $2');\n\n return (\n <div className=\"tab-tooltip-grid-container\">\n <span className=\"tab-tooltip-title\">{formattedType} Name</span>\n <div className=\"tab-tooltip-name-wrapper\">\n <span className=\"tab-tooltip-name\">{name}</span>\n <CopyButton\n className=\"tab-tooltip-copy\"\n tooltip=\"Copy name\"\n copy={name}\n />\n </div>\n {name !== displayName && Boolean(displayName) && (\n <>\n <span className=\"tab-tooltip-title\">Display Name</span>\n <span className=\"tab-tooltip-name\">{displayName}</span>\n </>\n )}\n {Boolean(description) && (\n <div className=\"tab-tooltip-description\">{description}</div>\n )}\n {children}\n </div>\n );\n}\n\nconst XWidgetPanelTooltip = createXComponent(WidgetPanelTooltip);\n\nexport default XWidgetPanelTooltip;\n"],"mappings":"AAAA,OAAOA,KAAK,MAA6B,OAAO;AAChD,SAASC,UAAU,EAAEC,gBAAgB,QAAQ,uBAAuB;AAAC;AAAA,SAAAC,IAAA,IAAAC,KAAA,EAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA;AAIrE,SAASC,kBAAkBA,CAACC,KAA8B,EAAgB;EACxE,IAAM;IAAEC,QAAQ;IAAEC;EAAW,CAAC,GAAGF,KAAK;EACtC,IAAM;IAAEG,IAAI;IAAEC,IAAI;IAAEC,WAAW;IAAEC;EAAY,CAAC,GAAGJ,UAAU;;EAE3D;EACA;EACA,IAAMK,aAAa,GAAGH,IAAI,CAACI,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;EAE9D,oBACEd,KAAA;IAAKe,SAAS,EAAC,4BAA4B;IAAAR,QAAA,gBACzCP,KAAA;MAAMe,SAAS,EAAC,mBAAmB;MAAAR,QAAA,GAAEM,aAAa,EAAC,OAAK;IAAA,CAAM,CAAC,eAC/Db,KAAA;MAAKe,SAAS,EAAC,0BAA0B;MAAAR,QAAA,gBACvCL,IAAA;QAAMa,SAAS,EAAC,kBAAkB;QAAAR,QAAA,EAAEE;MAAI,CAAO,CAAC,eAChDP,IAAA,CAACL,UAAU;QACTkB,SAAS,EAAC,kBAAkB;QAC5BC,OAAO,EAAC,WAAW;QACnBC,IAAI,EAAER;MAAK,CACZ,CAAC;IAAA,CACC,CAAC,EACLA,IAAI,KAAKG,WAAW,IAAIM,OAAO,CAACN,WAAW,CAAC,iBAC3CZ,KAAA,CAAAI,SAAA;MAAAG,QAAA,gBACEL,IAAA;QAAMa,SAAS,EAAC,mBAAmB;QAAAR,QAAA,EAAC;MAAY,CAAM,CAAC,eACvDL,IAAA;QAAMa,SAAS,EAAC,kBAAkB;QAAAR,QAAA,EAAEK;MAAW,CAAO,CAAC;IAAA,CACvD,CACH,EACAM,OAAO,CAACP,WAAW,CAAC,iBACnBT,IAAA;MAAKa,SAAS,EAAC,yBAAyB;MAAAR,QAAA,EAAEI;IAAW,CAAM,CAC5D,EACAJ,QAAQ;EAAA,CACN,CAAC;AAEV;AAEA,IAAMY,mBAAmB,GAAGrB,gBAAgB,CAACO,kBAAkB,CAAC;AAEhE,eAAec,mBAAmB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetPanelTypes.js","names":[],"sources":["../../src/panels/WidgetPanelTypes.ts"],"sourcesContent":["import { type ReactNode } from 'react';\nimport { type Brand } from '@deephaven/utils';\n\nexport type WidgetPanelDescriptor = {\n /** Type of the widget. */\n type: string;\n\n /** Name of the widget. */\n name: string;\n\n /** Display name of the widget. May be different than the assigned name. */\n displayName?: string;\n\n /** Display type of the widget. May be different than the assigned type. */\n displayType?: string;\n\n /** Description of the widget. */\n description?: string;\n};\n\nexport type WidgetPanelTooltipProps = {\n /** A descriptor of the widget. */\n descriptor: WidgetPanelDescriptor;\n\n /** Children to render within this tooltip */\n children?: ReactNode;\n};\n\nexport type WidgetId = Brand<'WidgetId'>;\n"],"mappings":""}
1
+ {"version":3,"file":"WidgetPanelTypes.js","names":[],"sources":["../../src/panels/WidgetPanelTypes.ts"],"sourcesContent":["import { type ReactNode } from 'react';\nimport { type Brand } from '@deephaven/utils';\n\nexport type WidgetPanelDescriptor = {\n /** Type of the widget. */\n type: string;\n\n /** Name of the widget. */\n name: string;\n\n /** Display name of the widget. May be different than the assigned name. */\n displayName?: string;\n\n /** Display type of the widget. May be different than the assigned type. */\n displayType?: string;\n\n /** Description of the widget. */\n description?: string;\n};\n\nexport type WidgetPanelTooltipProps = {\n /** A descriptor of the widget. */\n descriptor: WidgetPanelDescriptor;\n\n /** Children to render within this tooltip */\n children?: ReactNode;\n};\n\nexport type WidgetId = Brand<'WidgetId'>;\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["CorePanelImport","default","ChartPanel","CommandHistoryPanel","ConsolePanel","DropdownFilterPanel","FileExplorerPanel","FilterSetManager","FilterSetManagerPanel","InputFilterPanel","IrisGridPanel","LogPanel","MarkdownPanel","NotebookPanel","PandasPanel","WidgetPanel","WidgetPanelTooltip","MockFileStorage","CorePanel","Panel"],"sources":["../../src/panels/index.ts"],"sourcesContent":["import CorePanelImport from './CorePanel';\n\nexport { default as ChartPanel } from './ChartPanel';\nexport * from './ChartPanel';\nexport * from './ChartPanelUtils';\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 * from './IrisGridPanelTypes';\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 * from './WidgetPanelTypes';\nexport { default as WidgetPanel, type WidgetPanelProps } from './WidgetPanel';\nexport { default as WidgetPanelTooltip } from './WidgetPanelTooltip';\nexport { default as MockFileStorage } from './MockFileStorage';\nexport const CorePanel = CorePanelImport;\n\n/**\n * @deprecated Use CorePanel instead.\n */\nexport const Panel = CorePanelImport;\n"],"mappings":"OAAOA,eAAe;AAAA,SAEbC,OAAO,IAAIC,UAAU;AAAA;AAAA;AAAA,SAGrBD,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;AAAA,SAGxBT,OAAO,IAAIU,QAAQ;AAAA,SACnBV,OAAO,IAAIW,aAAa;AAAA,SACxBX,OAAO,IAAIY,aAAa;AAAA,SACxBZ,OAAO,IAAIa,WAAW;AAAA;AAAA;AAAA,SAGtBb,OAAO,IAAIc,WAAW;AAAA,SACtBd,OAAO,IAAIe,kBAAkB;AAAA,SAC7Bf,OAAO,IAAIgB,eAAe;AACnC,OAAO,IAAMC,SAAS,GAAGlB,eAAe;;AAExC;AACA;AACA;AACA,OAAO,IAAMmB,KAAK,GAAGnB,eAAe"}
1
+ {"version":3,"file":"index.js","names":["CorePanelImport","default","ChartPanel","CommandHistoryPanel","ConsolePanel","DropdownFilterPanel","FileExplorerPanel","FilterSetManager","FilterSetManagerPanel","InputFilterPanel","IrisGridPanel","LogPanel","MarkdownPanel","NotebookPanel","PandasPanel","WidgetPanel","WidgetPanelTooltip","MockFileStorage","CorePanel","Panel"],"sources":["../../src/panels/index.ts"],"sourcesContent":["import CorePanelImport from './CorePanel';\n\nexport { default as ChartPanel } from './ChartPanel';\nexport * from './ChartPanel';\nexport * from './ChartPanelUtils';\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 * from './IrisGridPanelTypes';\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 * from './WidgetPanelTypes';\nexport { default as WidgetPanel, type WidgetPanelProps } from './WidgetPanel';\nexport { default as WidgetPanelTooltip } from './WidgetPanelTooltip';\nexport { default as MockFileStorage } from './MockFileStorage';\nexport const CorePanel = CorePanelImport;\n\n/**\n * @deprecated Use CorePanel instead.\n */\nexport const Panel = CorePanelImport;\n"],"mappings":"OAAOA,eAAe;AAAA,SAEbC,OAAO,IAAIC,UAAU;AAAA;AAAA;AAAA,SAGrBD,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;AAAA,SAGxBT,OAAO,IAAIU,QAAQ;AAAA,SACnBV,OAAO,IAAIW,aAAa;AAAA,SACxBX,OAAO,IAAIY,aAAa;AAAA,SACxBZ,OAAO,IAAIa,WAAW;AAAA;AAAA;AAAA,SAGtBb,OAAO,IAAIc,WAAW;AAAA,SACtBd,OAAO,IAAIe,kBAAkB;AAAA,SAC7Bf,OAAO,IAAIgB,eAAe;AACnC,OAAO,IAAMC,SAAS,GAAGlB,eAAe;;AAExC;AACA;AACA;AACA,OAAO,IAAMmB,KAAK,GAAGnB,eAAe","ignoreList":[]}
@@ -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 = (\n props: Record<string, unknown>,\n propName: string\n): PropTypes.Requireable<boolean> | null =>\n props[propName] === null ? null : PropTypes.bool;\n\nconst nullableString = (\n props: Record<string, unknown>,\n propName: string\n): PropTypes.Requireable<string> | null =>\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,GAAGA,CACtBC,KAA8B,EAC9BC,QAAgB,KAEhBD,KAAK,CAACC,QAAQ,CAAC,KAAK,IAAI,GAAG,IAAI,GAAGH,SAAS,CAACI,IAAI;AAElD,IAAMC,cAAc,GAAGA,CACrBH,KAA8B,EAC9BC,QAAgB,KAEhBD,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
+ {"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 = (\n props: Record<string, unknown>,\n propName: string\n): PropTypes.Requireable<boolean> | null =>\n props[propName] === null ? null : PropTypes.bool;\n\nconst nullableString = (\n props: Record<string, unknown>,\n propName: string\n): PropTypes.Requireable<string> | null =>\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,GAAGA,CACtBC,KAA8B,EAC9BC,QAAgB,KAEhBD,KAAK,CAACC,QAAQ,CAAC,KAAK,IAAI,GAAG,IAAI,GAAGH,SAAS,CAACI,IAAI;AAElD,IAAMC,cAAc,GAAGA,CACrBH,KAA8B,EAC9BC,QAAgB,KAEhBD,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","ignoreList":[]}
@@ -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","canUsePanels","canCopy","canDownloadCsv","canLogout","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 canUsePanels: PropTypes.bool.isRequired,\n canCopy: PropTypes.bool.isRequired,\n canDownloadCsv: PropTypes.bool.isRequired,\n canLogout: 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,YAAY,EAAEzB,SAAS,CAACiB,IAAI,CAACT,UAAU;IACvCkB,OAAO,EAAE1B,SAAS,CAACiB,IAAI,CAACT,UAAU;IAClCmB,cAAc,EAAE3B,SAAS,CAACiB,IAAI,CAACT,UAAU;IACzCoB,SAAS,EAAE5B,SAAS,CAACiB,IAAI,CAACT;EAC5B,CAAC,CAAC,CAACA;AACL,CAAC,CAAC;AAEF,IAAMqB,WAAW,GAAGC,MAAM,CAACC,MAAM,CAAC;EAChC1B,SAAS;EACTO,IAAI;EACJM,KAAK;EACLjB,KAAK;EACLmB;AACF,CAAC,CAAC;AAEF,eAAeS,WAAW"}
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","canUsePanels","canCopy","canDownloadCsv","canLogout","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 canUsePanels: PropTypes.bool.isRequired,\n canCopy: PropTypes.bool.isRequired,\n canDownloadCsv: PropTypes.bool.isRequired,\n canLogout: 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,YAAY,EAAEzB,SAAS,CAACiB,IAAI,CAACT,UAAU;IACvCkB,OAAO,EAAE1B,SAAS,CAACiB,IAAI,CAACT,UAAU;IAClCmB,cAAc,EAAE3B,SAAS,CAACiB,IAAI,CAACT,UAAU;IACzCoB,SAAS,EAAE5B,SAAS,CAACiB,IAAI,CAACT;EAC5B,CAAC,CAAC,CAACA;AACL,CAAC,CAAC;AAEF,IAAMqB,WAAW,GAAGC,MAAM,CAACC,MAAM,CAAC;EAChC1B,SAAS;EACTO,IAAI;EACJM,KAAK;EACLjB,KAAK;EACLmB;AACF,CAAC,CAAC;AAEF,eAAeS,WAAW","ignoreList":[]}
@@ -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,WAAW;AAAA,SACtBD,OAAO,IAAIE,eAAe"}
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","ignoreList":[]}
@@ -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 'fast-deep-equal';\nimport { type ThunkAction } from 'redux-thunk';\nimport { updateDashboardData } from '@deephaven/dashboard';\nimport { type SessionWrapper } from '@deephaven/jsapi-utils';\nimport { type RootState } from '@deephaven/redux';\nimport { type Action } from 'redux';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { getLinksForDashboard } from './selectors';\nimport { type FilterSet } from '../panels';\nimport { type Link } from '../linker/LinkerUtils';\nimport { type ColumnSelectionValidator } from '../linker/ColumnSelectionValidator';\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 (\n id: string,\n connection: dh.IdeConnection\n ): ThunkAction<unknown, RootState, undefined, Action<unknown>> =>\n 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 (\n id: string,\n sessionWrapper: SessionWrapper\n ): ThunkAction<unknown, RootState, undefined, Action<unknown>> =>\n 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 (\n id: string,\n links: Link[]\n ): ThunkAction<unknown, RootState, undefined, Action<unknown>> =>\n 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 (\n id: string,\n newLinks: Link[]\n ): ThunkAction<unknown, RootState, undefined, Action<unknown>> =>\n (dispatch, getState) => {\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 (\n id: string,\n linkIds: string[]\n ): ThunkAction<unknown, RootState, undefined, Action<unknown>> =>\n (dispatch, getState) => {\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 (\n id: string,\n isolatedLinkerPanelId: string | string[] | undefined\n ): ThunkAction<unknown, RootState, undefined, Action<unknown>> =>\n 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 (\n id: string,\n columnSelectionValidator: ColumnSelectionValidator | undefined\n ): ThunkAction<unknown, RootState, undefined, Action<unknown>> =>\n 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 (\n id: string,\n consoleSettings: Record<string, unknown>\n ): ThunkAction<unknown, RootState, undefined, Action<unknown>> =>\n 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 (\n id: string,\n filterSets: FilterSet[]\n ): ThunkAction<unknown, RootState, undefined, Action<unknown>> =>\n 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 'fast-deep-equal';\nimport { type ThunkAction } from 'redux-thunk';\nimport { updateDashboardData } from '@deephaven/dashboard';\nimport { type SessionWrapper } from '@deephaven/jsapi-utils';\nimport { type RootState } from '@deephaven/redux';\nimport { type Action } from 'redux';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { getLinksForDashboard } from './selectors';\nimport { type FilterSet } from '../panels';\nimport { type Link } from '../linker/LinkerUtils';\nimport { type ColumnSelectionValidator } from '../linker/ColumnSelectionValidator';\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 (\n id: string,\n connection: dh.IdeConnection\n ): ThunkAction<unknown, RootState, undefined, Action<unknown>> =>\n 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 (\n id: string,\n sessionWrapper: SessionWrapper\n ): ThunkAction<unknown, RootState, undefined, Action<unknown>> =>\n 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 (\n id: string,\n links: Link[]\n ): ThunkAction<unknown, RootState, undefined, Action<unknown>> =>\n 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 (\n id: string,\n newLinks: Link[]\n ): ThunkAction<unknown, RootState, undefined, Action<unknown>> =>\n (dispatch, getState) => {\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 (\n id: string,\n linkIds: string[]\n ): ThunkAction<unknown, RootState, undefined, Action<unknown>> =>\n (dispatch, getState) => {\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 (\n id: string,\n isolatedLinkerPanelId: string | string[] | undefined\n ): ThunkAction<unknown, RootState, undefined, Action<unknown>> =>\n 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 (\n id: string,\n columnSelectionValidator: ColumnSelectionValidator | undefined\n ): ThunkAction<unknown, RootState, undefined, Action<unknown>> =>\n 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 (\n id: string,\n consoleSettings: Record<string, unknown>\n ): ThunkAction<unknown, RootState, undefined, Action<unknown>> =>\n 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 (\n id: string,\n filterSets: FilterSet[]\n ): ThunkAction<unknown, RootState, undefined, Action<unknown>> =>\n dispatch =>\n dispatch(updateDashboardData(id, { filterSets }));\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/redux/index.ts"],"sourcesContent":["export * from './actions';\nexport * from './selectors';\n"],"mappings":""}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/redux/index.ts"],"sourcesContent":["export * from './actions';\nexport * from './selectors';\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"selectors.js","names":["getDashboardData","EMPTY_OBJECT","Object","freeze","EMPTY_MAP","Map","EMPTY_ARRAY","getColumnsForDashboard","store","dashboardId","_getDashboardData$col","columns","getFilterSetsForDashboard","_getDashboardData$fil","filterSets","getInputFiltersForDashboard","_getDashboardData$fil2","filters","getTableMapForDashboard","_getDashboardData$tab","tableMap","getIsolatedLinkerPanelIdForDashboard","isolatedLinkerPanelId","getLinksForDashboard","_getDashboardData$lin","links","getColumnSelectionValidatorForDashboard","columnSelectionValidator","getDashboardConsoleSettings","_getDashboardData$con","consoleSettings","getDashboardConnection","connection","getDashboardSessionWrapper","sessionWrapper"],"sources":["../../src/redux/selectors.ts"],"sourcesContent":["import { getDashboardData } from '@deephaven/dashboard';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { type SessionWrapper } from '@deephaven/jsapi-utils';\nimport { type RootState } from '@deephaven/redux';\nimport { type FilterChangeEvent } from '../FilterEvents';\nimport { type Link } from '../linker/LinkerUtils';\nimport { type FilterSet } from '../panels';\nimport { type ColumnSelectionValidator } from '../linker/ColumnSelectionValidator';\n\nconst EMPTY_OBJECT = Object.freeze({});\n\nconst EMPTY_MAP = new Map();\n\nconst EMPTY_ARRAY = Object.freeze([]);\n\n/**\n * @param store The redux store\n * @param dashboardId The dashboard ID to get data for\n * @returns All column objects found in all panels in this dashboard\n */\nexport const getColumnsForDashboard = (\n store: RootState,\n dashboardId: string\n): dh.Column[] =>\n (getDashboardData(store, dashboardId).columns ?? EMPTY_ARRAY) as dh.Column[];\n\n/**\n * Get the known filter sets for the dashboard.\n * @param store The redux store\n * @param dashboardId The dashboard ID to get data for\n * @returns The filter sets set on this dashboard\n */\nexport const getFilterSetsForDashboard = (\n store: RootState,\n dashboardId: string\n): FilterSet[] =>\n (getDashboardData(store, dashboardId).filterSets ??\n EMPTY_ARRAY) as FilterSet[];\n\n/**\n * @param store The redux store\n * @param dashboardId The dashboard ID to get data for\n * @returns The filters set on this dashboard\n */\nexport const getInputFiltersForDashboard = (\n store: RootState,\n dashboardId: string\n): FilterChangeEvent[] =>\n (getDashboardData(store, dashboardId).filters ??\n EMPTY_ARRAY) as FilterChangeEvent[];\n\n/**\n * @param store The redux store\n * @param dashboardId The dashboard ID to get data for\n * @returns Map from panel ID to the table used in that panel\n */\nexport const getTableMapForDashboard = (\n store: RootState,\n dashboardId: string\n): Map<string, dh.Table> =>\n (getDashboardData(store, dashboardId).tableMap ?? EMPTY_MAP) as Map<\n string,\n dh.Table\n >;\n\n/**\n * @param store The redux store\n * @param dashboardId The dashboard ID to get the data for\n * @returns The panel ID that is isolated, undefined if none is isolated\n */\nexport const getIsolatedLinkerPanelIdForDashboard = (\n store: RootState,\n dashboardId: string\n): string | undefined =>\n getDashboardData(store, dashboardId).isolatedLinkerPanelId as\n | string\n | undefined;\n\n/**\n * @param store The redux store\n * @param dashboardId The dashboard ID to get the data from\n * @returns The links for the dashboard\n */\nexport const getLinksForDashboard = (\n store: RootState,\n dashboardId: string\n): Link[] =>\n (getDashboardData(store, dashboardId).links ?? EMPTY_ARRAY) as Link[];\n\n/**\n * @param store The redux store\n * @param dashboardId The dashboard ID to get the column selection validators for\n * @returns Column selection validator active on a dashboard\n */\nexport const getColumnSelectionValidatorForDashboard = (\n store: RootState,\n dashboardId: string\n): ColumnSelectionValidator | undefined =>\n getDashboardData(store, dashboardId).columnSelectionValidator as\n | ColumnSelectionValidator\n | undefined;\n\n/**\n * @param store The redux store\n * @param dashboardId The dashboard ID to get the console settings for\n * @returns Console settings for this dashboard\n */\nexport const getDashboardConsoleSettings = (\n store: RootState,\n dashboardId: string\n): Record<string, unknown> =>\n (getDashboardData(store, dashboardId).consoleSettings ??\n EMPTY_OBJECT) as Record<string, unknown>;\n\n/**\n *\n * @param store The redux store\n * @param dashboardId The dashboard ID to get the IdeConnection for\n * @returns The connection for the dashboard\n */\nexport const getDashboardConnection = (\n store: RootState,\n dashboardId: string\n): dh.IdeConnection | undefined =>\n getDashboardData(store, dashboardId).connection as\n | dh.IdeConnection\n | undefined;\n\n/**\n *\n * @param store The redux store\n * @param dashboardId The dashboard ID to get the SessionWrapper for\n * @returns The session wrapper for the dashboard\n */\nexport const getDashboardSessionWrapper = (\n store: RootState,\n dashboardId: string\n): SessionWrapper | undefined =>\n getDashboardData(store, dashboardId).sessionWrapper as\n | SessionWrapper\n | undefined;\n"],"mappings":"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"}
1
+ {"version":3,"file":"selectors.js","names":["getDashboardData","EMPTY_OBJECT","Object","freeze","EMPTY_MAP","Map","EMPTY_ARRAY","getColumnsForDashboard","store","dashboardId","_getDashboardData$col","columns","getFilterSetsForDashboard","_getDashboardData$fil","filterSets","getInputFiltersForDashboard","_getDashboardData$fil2","filters","getTableMapForDashboard","_getDashboardData$tab","tableMap","getIsolatedLinkerPanelIdForDashboard","isolatedLinkerPanelId","getLinksForDashboard","_getDashboardData$lin","links","getColumnSelectionValidatorForDashboard","columnSelectionValidator","getDashboardConsoleSettings","_getDashboardData$con","consoleSettings","getDashboardConnection","connection","getDashboardSessionWrapper","sessionWrapper"],"sources":["../../src/redux/selectors.ts"],"sourcesContent":["import { getDashboardData } from '@deephaven/dashboard';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { type SessionWrapper } from '@deephaven/jsapi-utils';\nimport { type RootState } from '@deephaven/redux';\nimport { type FilterChangeEvent } from '../FilterEvents';\nimport { type Link } from '../linker/LinkerUtils';\nimport { type FilterSet } from '../panels';\nimport { type ColumnSelectionValidator } from '../linker/ColumnSelectionValidator';\n\nconst EMPTY_OBJECT = Object.freeze({});\n\nconst EMPTY_MAP = new Map();\n\nconst EMPTY_ARRAY = Object.freeze([]);\n\n/**\n * @param store The redux store\n * @param dashboardId The dashboard ID to get data for\n * @returns All column objects found in all panels in this dashboard\n */\nexport const getColumnsForDashboard = (\n store: RootState,\n dashboardId: string\n): dh.Column[] =>\n (getDashboardData(store, dashboardId).columns ?? EMPTY_ARRAY) as dh.Column[];\n\n/**\n * Get the known filter sets for the dashboard.\n * @param store The redux store\n * @param dashboardId The dashboard ID to get data for\n * @returns The filter sets set on this dashboard\n */\nexport const getFilterSetsForDashboard = (\n store: RootState,\n dashboardId: string\n): FilterSet[] =>\n (getDashboardData(store, dashboardId).filterSets ??\n EMPTY_ARRAY) as FilterSet[];\n\n/**\n * @param store The redux store\n * @param dashboardId The dashboard ID to get data for\n * @returns The filters set on this dashboard\n */\nexport const getInputFiltersForDashboard = (\n store: RootState,\n dashboardId: string\n): FilterChangeEvent[] =>\n (getDashboardData(store, dashboardId).filters ??\n EMPTY_ARRAY) as FilterChangeEvent[];\n\n/**\n * @param store The redux store\n * @param dashboardId The dashboard ID to get data for\n * @returns Map from panel ID to the table used in that panel\n */\nexport const getTableMapForDashboard = (\n store: RootState,\n dashboardId: string\n): Map<string, dh.Table> =>\n (getDashboardData(store, dashboardId).tableMap ?? EMPTY_MAP) as Map<\n string,\n dh.Table\n >;\n\n/**\n * @param store The redux store\n * @param dashboardId The dashboard ID to get the data for\n * @returns The panel ID that is isolated, undefined if none is isolated\n */\nexport const getIsolatedLinkerPanelIdForDashboard = (\n store: RootState,\n dashboardId: string\n): string | undefined =>\n getDashboardData(store, dashboardId).isolatedLinkerPanelId as\n | string\n | undefined;\n\n/**\n * @param store The redux store\n * @param dashboardId The dashboard ID to get the data from\n * @returns The links for the dashboard\n */\nexport const getLinksForDashboard = (\n store: RootState,\n dashboardId: string\n): Link[] =>\n (getDashboardData(store, dashboardId).links ?? EMPTY_ARRAY) as Link[];\n\n/**\n * @param store The redux store\n * @param dashboardId The dashboard ID to get the column selection validators for\n * @returns Column selection validator active on a dashboard\n */\nexport const getColumnSelectionValidatorForDashboard = (\n store: RootState,\n dashboardId: string\n): ColumnSelectionValidator | undefined =>\n getDashboardData(store, dashboardId).columnSelectionValidator as\n | ColumnSelectionValidator\n | undefined;\n\n/**\n * @param store The redux store\n * @param dashboardId The dashboard ID to get the console settings for\n * @returns Console settings for this dashboard\n */\nexport const getDashboardConsoleSettings = (\n store: RootState,\n dashboardId: string\n): Record<string, unknown> =>\n (getDashboardData(store, dashboardId).consoleSettings ??\n EMPTY_OBJECT) as Record<string, unknown>;\n\n/**\n *\n * @param store The redux store\n * @param dashboardId The dashboard ID to get the IdeConnection for\n * @returns The connection for the dashboard\n */\nexport const getDashboardConnection = (\n store: RootState,\n dashboardId: string\n): dh.IdeConnection | undefined =>\n getDashboardData(store, dashboardId).connection as\n | dh.IdeConnection\n | undefined;\n\n/**\n *\n * @param store The redux store\n * @param dashboardId The dashboard ID to get the SessionWrapper for\n * @returns The session wrapper for the dashboard\n */\nexport const getDashboardSessionWrapper = (\n store: RootState,\n dashboardId: string\n): SessionWrapper | undefined =>\n getDashboardData(store, dashboardId).sessionWrapper as\n | SessionWrapper\n | undefined;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useChartLinker.js","names":[],"sources":["../src/useChartLinker.ts"],"sourcesContent":[""],"mappings":""}
1
+ {"version":3,"file":"useChartLinker.js","names":[],"sources":["../src/useChartLinker.ts"],"sourcesContent":[""],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useConfigureRuff.js","names":["useEffect","MonacoProviders","useAppSelector","getNotebookSettings","useConfigureRuff","python","linter","isEnabled","ruffEnabled","config","ruffConfig","setRuffSettings","isRuffEnabled"],"sources":["../src/useConfigureRuff.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { MonacoProviders } from '@deephaven/console';\nimport { useAppSelector } from '@deephaven/dashboard';\nimport { getNotebookSettings } from '@deephaven/redux';\n\n/**\n * Hook to configure Ruff settings in Monaco.\n * The enabled status and settings are read from redux.\n * Any changes to the redux values will be applied to the Monaco providers.\n */\nexport function useConfigureRuff(): void {\n const { python: { linter = {} } = {} } = useAppSelector(getNotebookSettings);\n const { isEnabled: ruffEnabled = false, config: ruffConfig } = linter;\n useEffect(\n function setRuffSettings() {\n MonacoProviders.isRuffEnabled = ruffEnabled;\n MonacoProviders.setRuffSettings(ruffConfig); // Also inits Ruff if needed\n },\n [ruffEnabled, ruffConfig]\n );\n}\n\nexport default useConfigureRuff;\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,eAAe,QAAQ,oBAAoB;AACpD,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,mBAAmB,QAAQ,kBAAkB;;AAEtD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAA,EAAS;EACvC,IAAM;IAAEC,MAAM,EAAE;MAAEC,MAAM,GAAG,CAAC;IAAE,CAAC,GAAG,CAAC;EAAE,CAAC,GAAGJ,cAAc,CAACC,mBAAmB,CAAC;EAC5E,IAAM;IAAEI,SAAS,EAAEC,WAAW,GAAG,KAAK;IAAEC,MAAM,EAAEC;EAAW,CAAC,GAAGJ,MAAM;EACrEN,SAAS,CACP,SAASW,eAAeA,CAAA,EAAG;IACzBV,eAAe,CAACW,aAAa,GAAGJ,WAAW;IAC3CP,eAAe,CAACU,eAAe,CAACD,UAAU,CAAC,CAAC,CAAC;EAC/C,CAAC,EACD,CAACF,WAAW,EAAEE,UAAU,CAC1B,CAAC;AACH;AAEA,eAAeN,gBAAgB"}
1
+ {"version":3,"file":"useConfigureRuff.js","names":["useEffect","MonacoProviders","useAppSelector","getNotebookSettings","useConfigureRuff","python","linter","isEnabled","ruffEnabled","config","ruffConfig","setRuffSettings","isRuffEnabled"],"sources":["../src/useConfigureRuff.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { MonacoProviders } from '@deephaven/console';\nimport { useAppSelector } from '@deephaven/dashboard';\nimport { getNotebookSettings } from '@deephaven/redux';\n\n/**\n * Hook to configure Ruff settings in Monaco.\n * The enabled status and settings are read from redux.\n * Any changes to the redux values will be applied to the Monaco providers.\n */\nexport function useConfigureRuff(): void {\n const { python: { linter = {} } = {} } = useAppSelector(getNotebookSettings);\n const { isEnabled: ruffEnabled = false, config: ruffConfig } = linter;\n useEffect(\n function setRuffSettings() {\n MonacoProviders.isRuffEnabled = ruffEnabled;\n MonacoProviders.setRuffSettings(ruffConfig); // Also inits Ruff if needed\n },\n [ruffEnabled, ruffConfig]\n );\n}\n\nexport default useConfigureRuff;\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,eAAe,QAAQ,oBAAoB;AACpD,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,mBAAmB,QAAQ,kBAAkB;;AAEtD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAA,EAAS;EACvC,IAAM;IAAEC,MAAM,EAAE;MAAEC,MAAM,GAAG,CAAC;IAAE,CAAC,GAAG,CAAC;EAAE,CAAC,GAAGJ,cAAc,CAACC,mBAAmB,CAAC;EAC5E,IAAM;IAAEI,SAAS,EAAEC,WAAW,GAAG,KAAK;IAAEC,MAAM,EAAEC;EAAW,CAAC,GAAGJ,MAAM;EACrEN,SAAS,CACP,SAASW,eAAeA,CAAA,EAAG;IACzBV,eAAe,CAACW,aAAa,GAAGJ,WAAW;IAC3CP,eAAe,CAACU,eAAe,CAACD,UAAU,CAAC,CAAC,CAAC;EAC/C,CAAC,EACD,CAACF,WAAW,EAAEE,UAAU,CAC1B,CAAC;AACH;AAEA,eAAeN,gBAAgB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useDashboardColumnFilters.js","names":["useCallback","useEffect","useMemo","IrisGridUtils","useLayoutManager","useDashboardId","useAppSelector","useDhId","getInputFiltersForDashboard","emitFilterColumnsChanged","emitFilterTableChanged","useDashboardColumnFilters","columns","table","eventHub","dashboardId","panelId","columnsChanged","tableChanged","cleanupOnUnmount","getInputFilters","s","reduxInputFilters","inputFilters","getInputFiltersForColumns","filter","_ref","value","excludePanelIds","includes"],"sources":["../src/useDashboardColumnFilters.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo } from 'react';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { IrisGridUtils, type InputFilter } from '@deephaven/iris-grid';\nimport {\n useLayoutManager,\n useDashboardId,\n useAppSelector,\n useDhId,\n} from '@deephaven/dashboard';\nimport { type RootState } from '@deephaven/redux';\nimport { getInputFiltersForDashboard } from './redux';\nimport {\n type FilterColumnSourceId,\n emitFilterColumnsChanged,\n emitFilterTableChanged,\n} from './FilterEvents';\n\n/**\n * Subscribes to the dashboard column filters (a.k.a. InputFilter) for the current panel or widget, and\n * adds the columns provided to the filter options in the dashboard.\n * @param columns The columns this source has available for filtering.\n * These are used to populate filter options in the UI (InputFilter, DropdownFilter).\n * null can be used to indicate the source is not yet ready which is useful\n * to preserve\n * @param table The table for this source if applicable.\n * This is used to enable ChartBuilder from IrisGrid.\n * @returns The dashboard column filters (InputFilter[]) that apply to the columns provided.\n */\nexport function useDashboardColumnFilters(\n columns: readonly { name: string; type: string }[] | null,\n table?: dh.Table\n): InputFilter[] {\n const { eventHub } = useLayoutManager();\n const dashboardId = useDashboardId();\n const panelId = useDhId() as FilterColumnSourceId | null;\n\n useEffect(\n function columnsChanged() {\n if (panelId == null || columns == null) {\n return;\n }\n emitFilterColumnsChanged(eventHub, panelId, columns);\n },\n [eventHub, panelId, columns]\n );\n\n useEffect(\n function tableChanged() {\n if (table == null || panelId == null) {\n return;\n }\n emitFilterTableChanged(eventHub, panelId, table);\n },\n [eventHub, panelId, table]\n );\n\n // Cleanup separately because filtering the table or other operations can get a new columns array,\n // and we are using null to indicate unmount, not change\n useEffect(\n function cleanupOnUnmount() {\n if (panelId == null) {\n return;\n }\n return () => {\n emitFilterColumnsChanged(eventHub, panelId, null);\n emitFilterTableChanged(eventHub, panelId, null);\n };\n },\n [eventHub, panelId]\n );\n\n const getInputFilters = useCallback(\n (s: RootState) => getInputFiltersForDashboard(s, dashboardId),\n [dashboardId]\n );\n\n const reduxInputFilters = useAppSelector(getInputFilters);\n\n const inputFilters = useMemo(\n () =>\n IrisGridUtils.getInputFiltersForColumns(\n columns ?? [],\n // They may have picked a column, but not actually entered a value yet. In that case, don't need to update.\n reduxInputFilters.filter(\n ({ value, excludePanelIds }) =>\n value != null &&\n (excludePanelIds == null ||\n (panelId != null && !excludePanelIds.includes(panelId)))\n )\n ),\n [columns, panelId, reduxInputFilters]\n );\n\n return inputFilters;\n}\n\nexport default useDashboardColumnFilters;\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,OAAO,QAAQ,OAAO;AAEvD,SAASC,aAAa,QAA0B,sBAAsB;AACtE,SACEC,gBAAgB,EAChBC,cAAc,EACdC,cAAc,EACdC,OAAO,QACF,sBAAsB;AAAC,SAErBC,2BAA2B;AAAA,SAGlCC,wBAAwB,EACxBC,sBAAsB;AAGxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,yBAAyBA,CACvCC,OAAyD,EACzDC,KAAgB,EACD;EACf,IAAM;IAAEC;EAAS,CAAC,GAAGV,gBAAgB,CAAC,CAAC;EACvC,IAAMW,WAAW,GAAGV,cAAc,CAAC,CAAC;EACpC,IAAMW,OAAO,GAAGT,OAAO,CAAC,CAAgC;EAExDN,SAAS,CACP,SAASgB,cAAcA,CAAA,EAAG;IACxB,IAAID,OAAO,IAAI,IAAI,IAAIJ,OAAO,IAAI,IAAI,EAAE;MACtC;IACF;IACAH,wBAAwB,CAACK,QAAQ,EAAEE,OAAO,EAAEJ,OAAO,CAAC;EACtD,CAAC,EACD,CAACE,QAAQ,EAAEE,OAAO,EAAEJ,OAAO,CAC7B,CAAC;EAEDX,SAAS,CACP,SAASiB,YAAYA,CAAA,EAAG;IACtB,IAAIL,KAAK,IAAI,IAAI,IAAIG,OAAO,IAAI,IAAI,EAAE;MACpC;IACF;IACAN,sBAAsB,CAACI,QAAQ,EAAEE,OAAO,EAAEH,KAAK,CAAC;EAClD,CAAC,EACD,CAACC,QAAQ,EAAEE,OAAO,EAAEH,KAAK,CAC3B,CAAC;;EAED;EACA;EACAZ,SAAS,CACP,SAASkB,gBAAgBA,CAAA,EAAG;IAC1B,IAAIH,OAAO,IAAI,IAAI,EAAE;MACnB;IACF;IACA,OAAO,MAAM;MACXP,wBAAwB,CAACK,QAAQ,EAAEE,OAAO,EAAE,IAAI,CAAC;MACjDN,sBAAsB,CAACI,QAAQ,EAAEE,OAAO,EAAE,IAAI,CAAC;IACjD,CAAC;EACH,CAAC,EACD,CAACF,QAAQ,EAAEE,OAAO,CACpB,CAAC;EAED,IAAMI,eAAe,GAAGpB,WAAW,CAChCqB,CAAY,IAAKb,2BAA2B,CAACa,CAAC,EAAEN,WAAW,CAAC,EAC7D,CAACA,WAAW,CACd,CAAC;EAED,IAAMO,iBAAiB,GAAGhB,cAAc,CAACc,eAAe,CAAC;EAEzD,IAAMG,YAAY,GAAGrB,OAAO,CAC1B,MACEC,aAAa,CAACqB,yBAAyB,CACrCZ,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAI,EAAE;EACb;EACAU,iBAAiB,CAACG,MAAM,CACtBC,IAAA;IAAA,IAAC;MAAEC,KAAK;MAAEC;IAAgB,CAAC,GAAAF,IAAA;IAAA,OACzBC,KAAK,IAAI,IAAI,KACZC,eAAe,IAAI,IAAI,IACrBZ,OAAO,IAAI,IAAI,IAAI,CAACY,eAAe,CAACC,QAAQ,CAACb,OAAO,CAAE,CAAC;EAAA,CAC9D,CACF,CAAC,EACH,CAACJ,OAAO,EAAEI,OAAO,EAAEM,iBAAiB,CACtC,CAAC;EAED,OAAOC,YAAY;AACrB;AAEA,eAAeZ,yBAAyB"}
1
+ {"version":3,"file":"useDashboardColumnFilters.js","names":["useCallback","useEffect","useMemo","IrisGridUtils","useLayoutManager","useDashboardId","useAppSelector","useDhId","getInputFiltersForDashboard","emitFilterColumnsChanged","emitFilterTableChanged","useDashboardColumnFilters","columns","table","eventHub","dashboardId","panelId","columnsChanged","tableChanged","cleanupOnUnmount","getInputFilters","s","reduxInputFilters","inputFilters","getInputFiltersForColumns","filter","_ref","value","excludePanelIds","includes"],"sources":["../src/useDashboardColumnFilters.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo } from 'react';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { IrisGridUtils, type InputFilter } from '@deephaven/iris-grid';\nimport {\n useLayoutManager,\n useDashboardId,\n useAppSelector,\n useDhId,\n} from '@deephaven/dashboard';\nimport { type RootState } from '@deephaven/redux';\nimport { getInputFiltersForDashboard } from './redux';\nimport {\n type FilterColumnSourceId,\n emitFilterColumnsChanged,\n emitFilterTableChanged,\n} from './FilterEvents';\n\n/**\n * Subscribes to the dashboard column filters (a.k.a. InputFilter) for the current panel or widget, and\n * adds the columns provided to the filter options in the dashboard.\n * @param columns The columns this source has available for filtering.\n * These are used to populate filter options in the UI (InputFilter, DropdownFilter).\n * null can be used to indicate the source is not yet ready which is useful\n * to preserve\n * @param table The table for this source if applicable.\n * This is used to enable ChartBuilder from IrisGrid.\n * @returns The dashboard column filters (InputFilter[]) that apply to the columns provided.\n */\nexport function useDashboardColumnFilters(\n columns: readonly { name: string; type: string }[] | null,\n table?: dh.Table\n): InputFilter[] {\n const { eventHub } = useLayoutManager();\n const dashboardId = useDashboardId();\n const panelId = useDhId() as FilterColumnSourceId | null;\n\n useEffect(\n function columnsChanged() {\n if (panelId == null || columns == null) {\n return;\n }\n emitFilterColumnsChanged(eventHub, panelId, columns);\n },\n [eventHub, panelId, columns]\n );\n\n useEffect(\n function tableChanged() {\n if (table == null || panelId == null) {\n return;\n }\n emitFilterTableChanged(eventHub, panelId, table);\n },\n [eventHub, panelId, table]\n );\n\n // Cleanup separately because filtering the table or other operations can get a new columns array,\n // and we are using null to indicate unmount, not change\n useEffect(\n function cleanupOnUnmount() {\n if (panelId == null) {\n return;\n }\n return () => {\n emitFilterColumnsChanged(eventHub, panelId, null);\n emitFilterTableChanged(eventHub, panelId, null);\n };\n },\n [eventHub, panelId]\n );\n\n const getInputFilters = useCallback(\n (s: RootState) => getInputFiltersForDashboard(s, dashboardId),\n [dashboardId]\n );\n\n const reduxInputFilters = useAppSelector(getInputFilters);\n\n const inputFilters = useMemo(\n () =>\n IrisGridUtils.getInputFiltersForColumns(\n columns ?? [],\n // They may have picked a column, but not actually entered a value yet. In that case, don't need to update.\n reduxInputFilters.filter(\n ({ value, excludePanelIds }) =>\n value != null &&\n (excludePanelIds == null ||\n (panelId != null && !excludePanelIds.includes(panelId)))\n )\n ),\n [columns, panelId, reduxInputFilters]\n );\n\n return inputFilters;\n}\n\nexport default useDashboardColumnFilters;\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,OAAO,QAAQ,OAAO;AAEvD,SAASC,aAAa,QAA0B,sBAAsB;AACtE,SACEC,gBAAgB,EAChBC,cAAc,EACdC,cAAc,EACdC,OAAO,QACF,sBAAsB;AAAC,SAErBC,2BAA2B;AAAA,SAGlCC,wBAAwB,EACxBC,sBAAsB;AAGxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,yBAAyBA,CACvCC,OAAyD,EACzDC,KAAgB,EACD;EACf,IAAM;IAAEC;EAAS,CAAC,GAAGV,gBAAgB,CAAC,CAAC;EACvC,IAAMW,WAAW,GAAGV,cAAc,CAAC,CAAC;EACpC,IAAMW,OAAO,GAAGT,OAAO,CAAC,CAAgC;EAExDN,SAAS,CACP,SAASgB,cAAcA,CAAA,EAAG;IACxB,IAAID,OAAO,IAAI,IAAI,IAAIJ,OAAO,IAAI,IAAI,EAAE;MACtC;IACF;IACAH,wBAAwB,CAACK,QAAQ,EAAEE,OAAO,EAAEJ,OAAO,CAAC;EACtD,CAAC,EACD,CAACE,QAAQ,EAAEE,OAAO,EAAEJ,OAAO,CAC7B,CAAC;EAEDX,SAAS,CACP,SAASiB,YAAYA,CAAA,EAAG;IACtB,IAAIL,KAAK,IAAI,IAAI,IAAIG,OAAO,IAAI,IAAI,EAAE;MACpC;IACF;IACAN,sBAAsB,CAACI,QAAQ,EAAEE,OAAO,EAAEH,KAAK,CAAC;EAClD,CAAC,EACD,CAACC,QAAQ,EAAEE,OAAO,EAAEH,KAAK,CAC3B,CAAC;;EAED;EACA;EACAZ,SAAS,CACP,SAASkB,gBAAgBA,CAAA,EAAG;IAC1B,IAAIH,OAAO,IAAI,IAAI,EAAE;MACnB;IACF;IACA,OAAO,MAAM;MACXP,wBAAwB,CAACK,QAAQ,EAAEE,OAAO,EAAE,IAAI,CAAC;MACjDN,sBAAsB,CAACI,QAAQ,EAAEE,OAAO,EAAE,IAAI,CAAC;IACjD,CAAC;EACH,CAAC,EACD,CAACF,QAAQ,EAAEE,OAAO,CACpB,CAAC;EAED,IAAMI,eAAe,GAAGpB,WAAW,CAChCqB,CAAY,IAAKb,2BAA2B,CAACa,CAAC,EAAEN,WAAW,CAAC,EAC7D,CAACA,WAAW,CACd,CAAC;EAED,IAAMO,iBAAiB,GAAGhB,cAAc,CAACc,eAAe,CAAC;EAEzD,IAAMG,YAAY,GAAGrB,OAAO,CAC1B,MACEC,aAAa,CAACqB,yBAAyB,CACrCZ,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAI,EAAE;EACb;EACAU,iBAAiB,CAACG,MAAM,CACtBC,IAAA;IAAA,IAAC;MAAEC,KAAK;MAAEC;IAAgB,CAAC,GAAAF,IAAA;IAAA,OACzBC,KAAK,IAAI,IAAI,KACZC,eAAe,IAAI,IAAI,IACrBZ,OAAO,IAAI,IAAI,IAAI,CAACY,eAAe,CAACC,QAAQ,CAACb,OAAO,CAAE,CAAC;EAAA,CAC9D,CACF,CAAC,EACH,CAACJ,OAAO,EAAEI,OAAO,EAAEM,iBAAiB,CACtC,CAAC;EAED,OAAOC,YAAY;AACrB;AAEA,eAAeZ,yBAAyB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useGridLinker.js","names":["useCallback","useEffect","useMemo","clamp","useAppSelector","useDashboardId","useDhId","useLayoutManager","usePanelId","assertNotNull","emitLinkPointSelected","emitLinkSourceDataSelected","emitRegisterLinkTarget","getColumnSelectionValidatorForDashboard","getLinksForDashboard","useGridLinker","model","irisGrid","eventHub","dashboardId","dhId","panelId","getLinks","s","links","linkColumns","columnSet","Set","forEach","link","start","add","columnName","getColumnSelectionValidator","columnSelectionValidator","isColumnSelectionValid","column","type","isSelectingColumn","onDataSelected","row","dataMap","getCoordinates","_gridWrapper$getBound","_allColumnXs$get","_allColumnWidths$get","gridWrapper","rect","getBoundingClientRect","width","height","metrics","state","columnHeaderHeight","allColumnXs","allColumnWidths","right","columnHeaderMaxDepth","columnIndex","getColumnIndexByName","visibleIndex","getVisibleColumn","columnX","get","columnWidth","x","left","y","top","onColumnSelected","registerTarget","setFilterValues","setFilterMap","unsetFilterValue","alwaysFetchColumns"],"sources":["../src/useGridLinker.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo } from 'react';\nimport clamp from 'lodash.clamp';\nimport {\n useAppSelector,\n useDashboardId,\n useDhId,\n useLayoutManager,\n usePanelId,\n} from '@deephaven/dashboard';\nimport { type RootState } from '@deephaven/redux';\nimport {\n type IrisGridProps,\n type IrisGridModel,\n type IrisGridType,\n} from '@deephaven/iris-grid';\nimport { type ModelIndex } from '@deephaven/grid';\nimport { type RowDataMap } from '@deephaven/jsapi-utils';\nimport { type dh } from '@deephaven/jsapi-types';\nimport { assertNotNull } from '@deephaven/utils';\nimport {\n emitLinkPointSelected,\n emitLinkSourceDataSelected,\n emitRegisterLinkTarget,\n} from './linker/LinkerEvent';\nimport {\n getColumnSelectionValidatorForDashboard,\n getLinksForDashboard,\n} from './redux';\n\nexport function useGridLinker(\n model: IrisGridModel | null,\n irisGrid: IrisGridType | null\n): Pick<\n IrisGridProps,\n | 'alwaysFetchColumns'\n | 'columnSelectionValidator'\n | 'isSelectingColumn'\n | 'onColumnSelected'\n | 'onDataSelected'\n> {\n const { eventHub } = useLayoutManager();\n const dashboardId = useDashboardId();\n const dhId = useDhId();\n const panelId = usePanelId();\n\n const getLinks = useCallback(\n (s: RootState) => getLinksForDashboard(s, dashboardId),\n [dashboardId]\n );\n\n const links = useAppSelector(getLinks);\n const linkColumns = useMemo(() => {\n const columnSet = new Set<string>();\n links.forEach(link => {\n if (link.start.panelId === dhId) {\n columnSet.add(link.start.columnName);\n }\n });\n return [...columnSet];\n }, [links, dhId]);\n\n const getColumnSelectionValidator = useCallback(\n (s: RootState) => getColumnSelectionValidatorForDashboard(s, dashboardId),\n [dashboardId]\n );\n const columnSelectionValidator = useAppSelector(getColumnSelectionValidator);\n\n const isColumnSelectionValid = useCallback(\n (column: dh.Column | null) => {\n if (columnSelectionValidator && column && dhId != null) {\n return columnSelectionValidator(dhId, column, { type: 'tableLink' });\n }\n return false;\n },\n [columnSelectionValidator, dhId]\n );\n const isSelectingColumn = columnSelectionValidator != null;\n\n const onDataSelected = useCallback(\n (row: ModelIndex, dataMap: RowDataMap) => {\n if (dhId == null) {\n return;\n }\n emitLinkSourceDataSelected(eventHub, dhId, dataMap);\n },\n [eventHub, dhId]\n );\n\n const getCoordinates = useCallback(\n (columnName: string): [number, number] | null => {\n if (!model || !irisGrid) {\n return null;\n }\n\n const { gridWrapper } = irisGrid;\n const rect = gridWrapper?.getBoundingClientRect() ?? null;\n if (rect == null || rect.width <= 0 || rect.height <= 0) {\n return null;\n }\n const { metrics } = irisGrid.state;\n assertNotNull(metrics);\n const {\n columnHeaderHeight,\n allColumnXs,\n allColumnWidths,\n right,\n columnHeaderMaxDepth,\n } = metrics;\n const columnIndex = model.getColumnIndexByName(columnName);\n assertNotNull(columnIndex);\n const visibleIndex = irisGrid.getVisibleColumn(columnIndex);\n const columnX = allColumnXs.get(visibleIndex) ?? 0;\n const columnWidth = allColumnWidths.get(visibleIndex) ?? 0;\n\n const x = clamp(\n visibleIndex > right\n ? rect.right\n : rect.left + columnX + columnWidth * 0.5,\n rect.left,\n rect.right\n );\n const y = rect.top + columnHeaderHeight * columnHeaderMaxDepth;\n\n return [x, y];\n },\n [model, irisGrid]\n );\n\n const onColumnSelected = useCallback(\n (column: dh.Column) => {\n if (dhId == null) {\n return;\n }\n emitLinkPointSelected(eventHub, dhId, column, {\n type: 'tableLink',\n });\n },\n [eventHub, dhId]\n );\n\n useEffect(\n function registerTarget() {\n if (!irisGrid || panelId == null || dhId == null) {\n return;\n }\n emitRegisterLinkTarget(eventHub, dhId, {\n getCoordinates,\n setFilterValues: irisGrid.setFilterMap,\n unsetFilterValue: () => {\n // No-op\n },\n panelId,\n });\n return () => {\n emitRegisterLinkTarget(eventHub, dhId, null);\n };\n },\n [eventHub, dhId, getCoordinates, irisGrid, panelId]\n );\n\n return {\n alwaysFetchColumns: linkColumns,\n columnSelectionValidator: isColumnSelectionValid,\n isSelectingColumn,\n onColumnSelected,\n onDataSelected,\n };\n}\n\nexport default useGridLinker;\n"],"mappings":"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"}
1
+ {"version":3,"file":"useGridLinker.js","names":["useCallback","useEffect","useMemo","clamp","useAppSelector","useDashboardId","useDhId","useLayoutManager","usePanelId","assertNotNull","emitLinkPointSelected","emitLinkSourceDataSelected","emitRegisterLinkTarget","getColumnSelectionValidatorForDashboard","getLinksForDashboard","useGridLinker","model","irisGrid","eventHub","dashboardId","dhId","panelId","getLinks","s","links","linkColumns","columnSet","Set","forEach","link","start","add","columnName","getColumnSelectionValidator","columnSelectionValidator","isColumnSelectionValid","column","type","isSelectingColumn","onDataSelected","row","dataMap","getCoordinates","_gridWrapper$getBound","_allColumnXs$get","_allColumnWidths$get","gridWrapper","rect","getBoundingClientRect","width","height","metrics","state","columnHeaderHeight","allColumnXs","allColumnWidths","right","columnHeaderMaxDepth","columnIndex","getColumnIndexByName","visibleIndex","getVisibleColumn","columnX","get","columnWidth","x","left","y","top","onColumnSelected","registerTarget","setFilterValues","setFilterMap","unsetFilterValue","alwaysFetchColumns"],"sources":["../src/useGridLinker.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo } from 'react';\nimport clamp from 'lodash.clamp';\nimport {\n useAppSelector,\n useDashboardId,\n useDhId,\n useLayoutManager,\n usePanelId,\n} from '@deephaven/dashboard';\nimport { type RootState } from '@deephaven/redux';\nimport {\n type IrisGridProps,\n type IrisGridModel,\n type IrisGridType,\n} from '@deephaven/iris-grid';\nimport { type ModelIndex } from '@deephaven/grid';\nimport { type RowDataMap } from '@deephaven/jsapi-utils';\nimport { type dh } from '@deephaven/jsapi-types';\nimport { assertNotNull } from '@deephaven/utils';\nimport {\n emitLinkPointSelected,\n emitLinkSourceDataSelected,\n emitRegisterLinkTarget,\n} from './linker/LinkerEvent';\nimport {\n getColumnSelectionValidatorForDashboard,\n getLinksForDashboard,\n} from './redux';\n\nexport function useGridLinker(\n model: IrisGridModel | null,\n irisGrid: IrisGridType | null\n): Pick<\n IrisGridProps,\n | 'alwaysFetchColumns'\n | 'columnSelectionValidator'\n | 'isSelectingColumn'\n | 'onColumnSelected'\n | 'onDataSelected'\n> {\n const { eventHub } = useLayoutManager();\n const dashboardId = useDashboardId();\n const dhId = useDhId();\n const panelId = usePanelId();\n\n const getLinks = useCallback(\n (s: RootState) => getLinksForDashboard(s, dashboardId),\n [dashboardId]\n );\n\n const links = useAppSelector(getLinks);\n const linkColumns = useMemo(() => {\n const columnSet = new Set<string>();\n links.forEach(link => {\n if (link.start.panelId === dhId) {\n columnSet.add(link.start.columnName);\n }\n });\n return [...columnSet];\n }, [links, dhId]);\n\n const getColumnSelectionValidator = useCallback(\n (s: RootState) => getColumnSelectionValidatorForDashboard(s, dashboardId),\n [dashboardId]\n );\n const columnSelectionValidator = useAppSelector(getColumnSelectionValidator);\n\n const isColumnSelectionValid = useCallback(\n (column: dh.Column | null) => {\n if (columnSelectionValidator && column && dhId != null) {\n return columnSelectionValidator(dhId, column, { type: 'tableLink' });\n }\n return false;\n },\n [columnSelectionValidator, dhId]\n );\n const isSelectingColumn = columnSelectionValidator != null;\n\n const onDataSelected = useCallback(\n (row: ModelIndex, dataMap: RowDataMap) => {\n if (dhId == null) {\n return;\n }\n emitLinkSourceDataSelected(eventHub, dhId, dataMap);\n },\n [eventHub, dhId]\n );\n\n const getCoordinates = useCallback(\n (columnName: string): [number, number] | null => {\n if (!model || !irisGrid) {\n return null;\n }\n\n const { gridWrapper } = irisGrid;\n const rect = gridWrapper?.getBoundingClientRect() ?? null;\n if (rect == null || rect.width <= 0 || rect.height <= 0) {\n return null;\n }\n const { metrics } = irisGrid.state;\n assertNotNull(metrics);\n const {\n columnHeaderHeight,\n allColumnXs,\n allColumnWidths,\n right,\n columnHeaderMaxDepth,\n } = metrics;\n const columnIndex = model.getColumnIndexByName(columnName);\n assertNotNull(columnIndex);\n const visibleIndex = irisGrid.getVisibleColumn(columnIndex);\n const columnX = allColumnXs.get(visibleIndex) ?? 0;\n const columnWidth = allColumnWidths.get(visibleIndex) ?? 0;\n\n const x = clamp(\n visibleIndex > right\n ? rect.right\n : rect.left + columnX + columnWidth * 0.5,\n rect.left,\n rect.right\n );\n const y = rect.top + columnHeaderHeight * columnHeaderMaxDepth;\n\n return [x, y];\n },\n [model, irisGrid]\n );\n\n const onColumnSelected = useCallback(\n (column: dh.Column) => {\n if (dhId == null) {\n return;\n }\n emitLinkPointSelected(eventHub, dhId, column, {\n type: 'tableLink',\n });\n },\n [eventHub, dhId]\n );\n\n useEffect(\n function registerTarget() {\n if (!irisGrid || panelId == null || dhId == null) {\n return;\n }\n emitRegisterLinkTarget(eventHub, dhId, {\n getCoordinates,\n setFilterValues: irisGrid.setFilterMap,\n unsetFilterValue: () => {\n // No-op\n },\n panelId,\n });\n return () => {\n emitRegisterLinkTarget(eventHub, dhId, null);\n };\n },\n [eventHub, dhId, getCoordinates, irisGrid, panelId]\n );\n\n return {\n alwaysFetchColumns: linkColumns,\n columnSelectionValidator: isColumnSelectionValid,\n isSelectingColumn,\n onColumnSelected,\n onDataSelected,\n };\n}\n\nexport default useGridLinker;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useHydrateGrid.js","names":["useMemo","useApi","IrisGridModelFactory","useLoadTablePlugin","useHydrateGrid","fetchTable","id","metadata","api","loadPlugin","hydratedProps","localDashboardId","makeModel","_makeModel","_asyncToGenerator","table","apply","arguments"],"sources":["../src/useHydrateGrid.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { IrisGridModelFactory } from '@deephaven/iris-grid';\nimport { type IrisGridPanelProps } from './panels';\nimport { useLoadTablePlugin } from './useLoadTablePlugin';\n\n/**\n * Hydrate the props for a grid panel\n * @param fetchTable Function to fetch the Table object\n * @param id ID of the dashboard\n * @param metadata Optional serializable metadata for re-fetching the table later\n * @returns Props hydrated for a grid panel\n */\nexport function useHydrateGrid(\n fetchTable: () => Promise<dh.Table>,\n id: string,\n metadata: dh.ide.VariableDescriptor | undefined\n): { localDashboardId: string } & Pick<\n IrisGridPanelProps,\n 'loadPlugin' | 'makeModel'\n> {\n const api = useApi();\n const loadPlugin = useLoadTablePlugin();\n\n const hydratedProps = useMemo(\n () => ({\n loadPlugin,\n localDashboardId: id,\n makeModel: async () => {\n const table = await fetchTable();\n return IrisGridModelFactory.makeModel(api, table);\n },\n metadata,\n }),\n [api, fetchTable, id, loadPlugin, metadata]\n );\n\n return hydratedProps;\n}\n\nexport default useHydrateGrid;\n"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,MAAM,QAAQ,4BAA4B;AAEnD,SAASC,oBAAoB,QAAQ,sBAAsB;AAAC,SAEnDC,kBAAkB;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAC5BC,UAAmC,EACnCC,EAAU,EACVC,QAA+C,EAI/C;EACA,IAAMC,GAAG,GAAGP,MAAM,CAAC,CAAC;EACpB,IAAMQ,UAAU,GAAGN,kBAAkB,CAAC,CAAC;EAEvC,IAAMO,aAAa,GAAGV,OAAO,CAC3B,OAAO;IACLS,UAAU;IACVE,gBAAgB,EAAEL,EAAE;IACpBM,SAAS;MAAA,IAAAC,UAAA,GAAAC,iBAAA,CAAE,aAAY;QACrB,IAAMC,KAAK,SAASV,UAAU,CAAC,CAAC;QAChC,OAAOH,oBAAoB,CAACU,SAAS,CAACJ,GAAG,EAAEO,KAAK,CAAC;MACnD,CAAC;MAAA,SAAAH,UAAA;QAAA,OAAAC,UAAA,CAAAG,KAAA,OAAAC,SAAA;MAAA;MAAA,OAAAL,SAAA;IAAA;IACDL;EACF,CAAC,CAAC,EACF,CAACC,GAAG,EAAEH,UAAU,EAAEC,EAAE,EAAEG,UAAU,EAAEF,QAAQ,CAC5C,CAAC;EAED,OAAOG,aAAa;AACtB;AAEA,eAAeN,cAAc"}
1
+ {"version":3,"file":"useHydrateGrid.js","names":["useMemo","useApi","IrisGridModelFactory","useLoadTablePlugin","useHydrateGrid","fetchTable","id","metadata","api","loadPlugin","hydratedProps","localDashboardId","makeModel","_makeModel","_asyncToGenerator","table","apply","arguments"],"sources":["../src/useHydrateGrid.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { IrisGridModelFactory } from '@deephaven/iris-grid';\nimport { type IrisGridPanelProps } from './panels';\nimport { useLoadTablePlugin } from './useLoadTablePlugin';\n\n/**\n * Hydrate the props for a grid panel\n * @param fetchTable Function to fetch the Table object\n * @param id ID of the dashboard\n * @param metadata Optional serializable metadata for re-fetching the table later\n * @returns Props hydrated for a grid panel\n */\nexport function useHydrateGrid(\n fetchTable: () => Promise<dh.Table>,\n id: string,\n metadata: dh.ide.VariableDescriptor | undefined\n): { localDashboardId: string } & Pick<\n IrisGridPanelProps,\n 'loadPlugin' | 'makeModel'\n> {\n const api = useApi();\n const loadPlugin = useLoadTablePlugin();\n\n const hydratedProps = useMemo(\n () => ({\n loadPlugin,\n localDashboardId: id,\n makeModel: async () => {\n const table = await fetchTable();\n return IrisGridModelFactory.makeModel(api, table);\n },\n metadata,\n }),\n [api, fetchTable, id, loadPlugin, metadata]\n );\n\n return hydratedProps;\n}\n\nexport default useHydrateGrid;\n"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,MAAM,QAAQ,4BAA4B;AAEnD,SAASC,oBAAoB,QAAQ,sBAAsB;AAAC,SAEnDC,kBAAkB;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAC5BC,UAAmC,EACnCC,EAAU,EACVC,QAA+C,EAI/C;EACA,IAAMC,GAAG,GAAGP,MAAM,CAAC,CAAC;EACpB,IAAMQ,UAAU,GAAGN,kBAAkB,CAAC,CAAC;EAEvC,IAAMO,aAAa,GAAGV,OAAO,CAC3B,OAAO;IACLS,UAAU;IACVE,gBAAgB,EAAEL,EAAE;IACpBM,SAAS;MAAA,IAAAC,UAAA,GAAAC,iBAAA,CAAE,aAAY;QACrB,IAAMC,KAAK,SAASV,UAAU,CAAC,CAAC;QAChC,OAAOH,oBAAoB,CAACU,SAAS,CAACJ,GAAG,EAAEO,KAAK,CAAC;MACnD,CAAC;MAAA,SAHDH,SAASA,CAAA;QAAA,OAAAC,UAAA,CAAAG,KAAA,OAAAC,SAAA;MAAA;MAAA,OAATL,SAAS;IAAA,GAGR;IACDL;EACF,CAAC,CAAC,EACF,CAACC,GAAG,EAAEH,UAAU,EAAEC,EAAE,EAAEG,UAAU,EAAEF,QAAQ,CAC5C,CAAC;EAED,OAAOG,aAAa;AACtB;AAEA,eAAeN,cAAc","ignoreList":[]}
@@ -9,11 +9,11 @@ export function useIrisGridModel(fetch) {
9
9
  var [model, setModel] = useState();
10
10
  var [error, setError] = useState();
11
11
  var [isLoading, setIsLoading] = useState(true);
12
- var makeModel = useCallback( /*#__PURE__*/_asyncToGenerator(function* () {
12
+ var makeModel = useCallback(/*#__PURE__*/_asyncToGenerator(function* () {
13
13
  var table = yield fetch();
14
14
  return IrisGridModelFactory.makeModel(dh, table);
15
15
  }), [dh, fetch]);
16
- var reload = useCallback( /*#__PURE__*/_asyncToGenerator(function* () {
16
+ var reload = useCallback(/*#__PURE__*/_asyncToGenerator(function* () {
17
17
  setIsLoading(true);
18
18
  setError(undefined);
19
19
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"useIrisGridModel.js","names":["useApi","IrisGridModel","IrisGridModelFactory","useCallback","useEffect","useMemo","useState","useIrisGridModel","fetch","dh","model","setModel","error","setError","isLoading","setIsLoading","makeModel","_asyncToGenerator","table","reload","undefined","newModel","e","cancelled","init","_init","apply","arguments","startListeningModel","handleDisconnect","Error","addEventListener","EVENT","DISCONNECT","removeEventListener","result","status"],"sources":["../src/useIrisGridModel.ts"],"sourcesContent":["import { type dh } from '@deephaven/jsapi-types';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport { IrisGridModel, IrisGridModelFactory } from '@deephaven/iris-grid';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nexport type IrisGridModelFetch = () => Promise<dh.Table>;\n\nexport type IrisGridModelFetchErrorResult = {\n error: NonNullable<unknown>;\n status: 'error';\n};\n\nexport type IrisGridModelFetchLoadingResult = {\n status: 'loading';\n};\n\nexport type IrisGridModelFetchSuccessResult = {\n status: 'success';\n model: IrisGridModel;\n};\n\nexport type IrisGridModelFetchResult = (\n | IrisGridModelFetchErrorResult\n | IrisGridModelFetchLoadingResult\n | IrisGridModelFetchSuccessResult\n) & {\n reload: () => void;\n};\n\n/** Pass in a table `fetch` function, will load the model and handle any errors */\nexport function useIrisGridModel(\n fetch: IrisGridModelFetch\n): IrisGridModelFetchResult {\n const dh = useApi();\n const [model, setModel] = useState<IrisGridModel>();\n const [error, setError] = useState<unknown>();\n const [isLoading, setIsLoading] = useState(true);\n\n const makeModel = useCallback(async () => {\n const table = await fetch();\n return IrisGridModelFactory.makeModel(dh, table);\n }, [dh, fetch]);\n\n const reload = useCallback(async () => {\n setIsLoading(true);\n setError(undefined);\n try {\n const newModel = await makeModel();\n setModel(newModel);\n setIsLoading(false);\n } catch (e) {\n setError(e);\n setIsLoading(false);\n }\n }, [makeModel]);\n\n useEffect(() => {\n let cancelled = false;\n async function init() {\n setIsLoading(true);\n setError(undefined);\n try {\n const newModel = await makeModel();\n if (!cancelled) {\n setModel(newModel);\n setIsLoading(false);\n }\n } catch (e) {\n if (!cancelled) {\n setError(e);\n setIsLoading(false);\n }\n }\n }\n\n init();\n\n return () => {\n cancelled = true;\n };\n }, [makeModel]);\n\n useEffect(\n function startListeningModel() {\n if (!model) {\n return;\n }\n\n // If the table inside a widget is disconnected, then don't bother trying to listen to reconnect, just close it and show a message\n // Widget closes the table already when it is disconnected, so no need to close it again\n function handleDisconnect() {\n setError(new Error('Table disconnected'));\n setModel(undefined);\n setIsLoading(false);\n }\n\n model.addEventListener(IrisGridModel.EVENT.DISCONNECT, handleDisconnect);\n\n return () => {\n model.removeEventListener(\n IrisGridModel.EVENT.DISCONNECT,\n handleDisconnect\n );\n };\n },\n [model]\n );\n\n const result: IrisGridModelFetchResult = useMemo(() => {\n if (isLoading) {\n return { reload, status: 'loading' };\n }\n if (error != null) {\n return { error, reload, status: 'error' };\n }\n if (model != null) {\n return { model, reload, status: 'success' };\n }\n throw new Error('Invalid state');\n }, [error, isLoading, model, reload]);\n\n return result;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"useIrisGridModel.js","names":["useApi","IrisGridModel","IrisGridModelFactory","useCallback","useEffect","useMemo","useState","useIrisGridModel","fetch","dh","model","setModel","error","setError","isLoading","setIsLoading","makeModel","_asyncToGenerator","table","reload","undefined","newModel","e","cancelled","init","_init","apply","arguments","startListeningModel","handleDisconnect","Error","addEventListener","EVENT","DISCONNECT","removeEventListener","result","status"],"sources":["../src/useIrisGridModel.ts"],"sourcesContent":["import { type dh } from '@deephaven/jsapi-types';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport { IrisGridModel, IrisGridModelFactory } from '@deephaven/iris-grid';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\n\nexport type IrisGridModelFetch = () => Promise<dh.Table>;\n\nexport type IrisGridModelFetchErrorResult = {\n error: NonNullable<unknown>;\n status: 'error';\n};\n\nexport type IrisGridModelFetchLoadingResult = {\n status: 'loading';\n};\n\nexport type IrisGridModelFetchSuccessResult = {\n status: 'success';\n model: IrisGridModel;\n};\n\nexport type IrisGridModelFetchResult = (\n | IrisGridModelFetchErrorResult\n | IrisGridModelFetchLoadingResult\n | IrisGridModelFetchSuccessResult\n) & {\n reload: () => void;\n};\n\n/** Pass in a table `fetch` function, will load the model and handle any errors */\nexport function useIrisGridModel(\n fetch: IrisGridModelFetch\n): IrisGridModelFetchResult {\n const dh = useApi();\n const [model, setModel] = useState<IrisGridModel>();\n const [error, setError] = useState<unknown>();\n const [isLoading, setIsLoading] = useState(true);\n\n const makeModel = useCallback(async () => {\n const table = await fetch();\n return IrisGridModelFactory.makeModel(dh, table);\n }, [dh, fetch]);\n\n const reload = useCallback(async () => {\n setIsLoading(true);\n setError(undefined);\n try {\n const newModel = await makeModel();\n setModel(newModel);\n setIsLoading(false);\n } catch (e) {\n setError(e);\n setIsLoading(false);\n }\n }, [makeModel]);\n\n useEffect(() => {\n let cancelled = false;\n async function init() {\n setIsLoading(true);\n setError(undefined);\n try {\n const newModel = await makeModel();\n if (!cancelled) {\n setModel(newModel);\n setIsLoading(false);\n }\n } catch (e) {\n if (!cancelled) {\n setError(e);\n setIsLoading(false);\n }\n }\n }\n\n init();\n\n return () => {\n cancelled = true;\n };\n }, [makeModel]);\n\n useEffect(\n function startListeningModel() {\n if (!model) {\n return;\n }\n\n // If the table inside a widget is disconnected, then don't bother trying to listen to reconnect, just close it and show a message\n // Widget closes the table already when it is disconnected, so no need to close it again\n function handleDisconnect() {\n setError(new Error('Table disconnected'));\n setModel(undefined);\n setIsLoading(false);\n }\n\n model.addEventListener(IrisGridModel.EVENT.DISCONNECT, handleDisconnect);\n\n return () => {\n model.removeEventListener(\n IrisGridModel.EVENT.DISCONNECT,\n handleDisconnect\n );\n };\n },\n [model]\n );\n\n const result: IrisGridModelFetchResult = useMemo(() => {\n if (isLoading) {\n return { reload, status: 'loading' };\n }\n if (error != null) {\n return { error, reload, status: 'error' };\n }\n if (model != null) {\n return { model, reload, status: 'success' };\n }\n throw new Error('Invalid state');\n }, [error, isLoading, model, reload]);\n\n return result;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useLoadTablePlugin.js","names":["useCallback","isTablePlugin","isLegacyTablePlugin","usePlugins","Log","log","module","useLoadTablePlugin","plugins","plugin","name","pluginModule","get","component","TablePlugin","errorMessage","concat","error","Error"],"sources":["../src/useLoadTablePlugin.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport {\n type TablePluginComponent,\n isTablePlugin,\n isLegacyTablePlugin,\n usePlugins,\n} from '@deephaven/plugin';\nimport Log from '@deephaven/log';\n\nconst log = Log.module('@deephaven/app-utils/useTablePlugin');\n\n/**\n * Creates a table plugin loader function.\n * @returns A function to load a Table plugin element by name\n */\nexport function useLoadTablePlugin(): (name: string) => TablePluginComponent {\n const plugins = usePlugins();\n\n const plugin = useCallback(\n (name: string) => {\n // First check if we have any plugin modules loaded that match the TablePlugin.\n const pluginModule = plugins.get(name);\n if (pluginModule != null) {\n if (isTablePlugin(pluginModule)) {\n return pluginModule.component;\n }\n if (isLegacyTablePlugin(pluginModule)) {\n return pluginModule.TablePlugin;\n }\n }\n\n const errorMessage = `Unable to find table plugin ${name}.`;\n log.error(errorMessage);\n throw new Error(errorMessage);\n },\n [plugins]\n );\n\n return plugin;\n}\n\nexport default useLoadTablePlugin;\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAEEC,aAAa,EACbC,mBAAmB,EACnBC,UAAU,QACL,mBAAmB;AAC1B,OAAOC,GAAG,MAAM,gBAAgB;AAEhC,IAAMC,GAAG,GAAGD,GAAG,CAACE,MAAM,CAAC,qCAAqC,CAAC;;AAE7D;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAAA,EAA2C;EAC3E,IAAMC,OAAO,GAAGL,UAAU,CAAC,CAAC;EAE5B,IAAMM,MAAM,GAAGT,WAAW,CACvBU,IAAY,IAAK;IAChB;IACA,IAAMC,YAAY,GAAGH,OAAO,CAACI,GAAG,CAACF,IAAI,CAAC;IACtC,IAAIC,YAAY,IAAI,IAAI,EAAE;MACxB,IAAIV,aAAa,CAACU,YAAY,CAAC,EAAE;QAC/B,OAAOA,YAAY,CAACE,SAAS;MAC/B;MACA,IAAIX,mBAAmB,CAACS,YAAY,CAAC,EAAE;QACrC,OAAOA,YAAY,CAACG,WAAW;MACjC;IACF;IAEA,IAAMC,YAAY,kCAAAC,MAAA,CAAkCN,IAAI,MAAG;IAC3DL,GAAG,CAACY,KAAK,CAACF,YAAY,CAAC;IACvB,MAAM,IAAIG,KAAK,CAACH,YAAY,CAAC;EAC/B,CAAC,EACD,CAACP,OAAO,CACV,CAAC;EAED,OAAOC,MAAM;AACf;AAEA,eAAeF,kBAAkB"}
1
+ {"version":3,"file":"useLoadTablePlugin.js","names":["useCallback","isTablePlugin","isLegacyTablePlugin","usePlugins","Log","log","module","useLoadTablePlugin","plugins","plugin","name","pluginModule","get","component","TablePlugin","errorMessage","concat","error","Error"],"sources":["../src/useLoadTablePlugin.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport {\n type TablePluginComponent,\n isTablePlugin,\n isLegacyTablePlugin,\n usePlugins,\n} from '@deephaven/plugin';\nimport Log from '@deephaven/log';\n\nconst log = Log.module('@deephaven/app-utils/useTablePlugin');\n\n/**\n * Creates a table plugin loader function.\n * @returns A function to load a Table plugin element by name\n */\nexport function useLoadTablePlugin(): (name: string) => TablePluginComponent {\n const plugins = usePlugins();\n\n const plugin = useCallback(\n (name: string) => {\n // First check if we have any plugin modules loaded that match the TablePlugin.\n const pluginModule = plugins.get(name);\n if (pluginModule != null) {\n if (isTablePlugin(pluginModule)) {\n return pluginModule.component;\n }\n if (isLegacyTablePlugin(pluginModule)) {\n return pluginModule.TablePlugin;\n }\n }\n\n const errorMessage = `Unable to find table plugin ${name}.`;\n log.error(errorMessage);\n throw new Error(errorMessage);\n },\n [plugins]\n );\n\n return plugin;\n}\n\nexport default useLoadTablePlugin;\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAEEC,aAAa,EACbC,mBAAmB,EACnBC,UAAU,QACL,mBAAmB;AAC1B,OAAOC,GAAG,MAAM,gBAAgB;AAEhC,IAAMC,GAAG,GAAGD,GAAG,CAACE,MAAM,CAAC,qCAAqC,CAAC;;AAE7D;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAAA,EAA2C;EAC3E,IAAMC,OAAO,GAAGL,UAAU,CAAC,CAAC;EAE5B,IAAMM,MAAM,GAAGT,WAAW,CACvBU,IAAY,IAAK;IAChB;IACA,IAAMC,YAAY,GAAGH,OAAO,CAACI,GAAG,CAACF,IAAI,CAAC;IACtC,IAAIC,YAAY,IAAI,IAAI,EAAE;MACxB,IAAIV,aAAa,CAACU,YAAY,CAAC,EAAE;QAC/B,OAAOA,YAAY,CAACE,SAAS;MAC/B;MACA,IAAIX,mBAAmB,CAACS,YAAY,CAAC,EAAE;QACrC,OAAOA,YAAY,CAACG,WAAW;MACjC;IACF;IAEA,IAAMC,YAAY,kCAAAC,MAAA,CAAkCN,IAAI,MAAG;IAC3DL,GAAG,CAACY,KAAK,CAACF,YAAY,CAAC;IACvB,MAAM,IAAIG,KAAK,CAACH,YAAY,CAAC;EAC/B,CAAC,EACD,CAACP,OAAO,CACV,CAAC;EAED,OAAOC,MAAM;AACf;AAEA,eAAeF,kBAAkB","ignoreList":[]}
@@ -42,7 +42,7 @@ export function useTablePlugin(_ref) {
42
42
  }) : null, [model, selectedRanges, irisGridRef, pluginState, setPluginState]);
43
43
  var onContextMenu = useCallback(data => {
44
44
  var _pluginRef$current$ge, _pluginRef$current, _pluginRef$current$ge2;
45
- return (_pluginRef$current$ge = (_pluginRef$current = pluginRef.current) === null || _pluginRef$current === void 0 ? void 0 : (_pluginRef$current$ge2 = _pluginRef$current.getMenu) === null || _pluginRef$current$ge2 === void 0 ? void 0 : _pluginRef$current$ge2.call(_pluginRef$current, data)) !== null && _pluginRef$current$ge !== void 0 ? _pluginRef$current$ge : [];
45
+ return (_pluginRef$current$ge = (_pluginRef$current = pluginRef.current) === null || _pluginRef$current === void 0 || (_pluginRef$current$ge2 = _pluginRef$current.getMenu) === null || _pluginRef$current$ge2 === void 0 ? void 0 : _pluginRef$current$ge2.call(_pluginRef$current, data)) !== null && _pluginRef$current$ge !== void 0 ? _pluginRef$current$ge : [];
46
46
  }, []);
47
47
  return {
48
48
  Plugin,
@@ -1 +1 @@
1
- {"version":3,"file":"useTablePlugin.js","names":["useCallback","useMemo","useRef","useState","usePersistentState","isIrisGridTableModelTemplate","TablePluginWrapper","jsx","_jsx","useTablePlugin","_ref","model","irisGridRef","irisGridUtils","selectedRanges","pluginFilters","setPluginFilters","customFilters","getFiltersFromInputFilters","table","columns","formatter","timeZone","alwaysFetchColumns","setAlwaysFetchColumns","pluginRef","pluginState","setPluginState","undefined","version","type","Plugin","pluginName","ref","name","filter","fetchColumns","onStateChange","onContextMenu","data","_pluginRef$current$ge","_pluginRef$current","_pluginRef$current$ge2","current","getMenu","call"],"sources":["../src/useTablePlugin.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from 'react';\nimport { usePersistentState, type TablePluginElement } from '@deephaven/plugin';\nimport {\n type InputFilter,\n type IrisGridModel,\n type IrisGridProps,\n type IrisGridUtils,\n isIrisGridTableModelTemplate,\n type IrisGridType,\n type IrisGridContextMenuData,\n} from '@deephaven/iris-grid';\nimport { type GridRange } from '@deephaven/grid';\nimport { TablePluginWrapper } from './TablePluginWrapper';\n\ninterface UseTablePluginProps {\n /**\n * The IrisGrid model for this plugin.\n * Currently only IrisGridTableModelTemplate types are supported.\n * Other IrisGrid model types will be ignored for now.\n */\n model: IrisGridModel | undefined;\n /**\n * A reference to the IrisGrid component instance.\n */\n irisGridRef: React.MutableRefObject<IrisGridType | null>;\n /**\n * A IrisGridUtils instance.\n */\n irisGridUtils: IrisGridUtils | undefined;\n /**\n * The currently selected ranges in the grid.\n */\n selectedRanges: readonly GridRange[] | undefined;\n}\n\n/**\n * Hook to get a TablePlugin component and the IrisGrid props derived from the plugin.\n * The returned props should be passed to the IrisGrid component or merged with other sources\n * of the same props.\n * @param props The properties for the table plugin. The props object itself does not need to be memoized,\n * but the values inside it should be stable to avoid unnecessary re-renders.\n * @returns Object containing `Plugin` key which is the Plugin component.\n * The remaining object keys are IrisGrid props associated with the plugin.\n */\nexport function useTablePlugin({\n model,\n irisGridRef,\n irisGridUtils,\n selectedRanges,\n}: UseTablePluginProps): {\n Plugin: JSX.Element | null;\n} & Pick<\n IrisGridProps,\n 'customFilters' | 'alwaysFetchColumns' | 'onContextMenu'\n> {\n const [pluginFilters, setPluginFilters] = useState<InputFilter[]>([]);\n const customFilters = useMemo(\n () =>\n model != null &&\n irisGridUtils != null &&\n isIrisGridTableModelTemplate(model)\n ? irisGridUtils.getFiltersFromInputFilters(\n model.table.columns,\n pluginFilters,\n model.formatter.timeZone\n )\n : [],\n [model, irisGridUtils, pluginFilters]\n );\n const [alwaysFetchColumns, setAlwaysFetchColumns] = useState<string[]>([]);\n const pluginRef = useRef<TablePluginElement | null>(null);\n const [pluginState, setPluginState] = usePersistentState<unknown>(undefined, {\n version: 1,\n // pluginName will be undefined on first call when re-hydrating,\n // so use a constant type to avoid re-hydration issues with the persistent state type\n type: 'GridWidgetTablePluginState',\n });\n\n const Plugin = useMemo(\n () =>\n model != null &&\n isIrisGridTableModelTemplate(model) &&\n model.table.pluginName != null ? (\n <TablePluginWrapper\n ref={pluginRef}\n name={model.table.pluginName}\n model={model}\n filter={setPluginFilters}\n fetchColumns={setAlwaysFetchColumns}\n selectedRanges={selectedRanges}\n irisGridRef={irisGridRef}\n pluginState={pluginState}\n onStateChange={setPluginState}\n />\n ) : null,\n [model, selectedRanges, irisGridRef, pluginState, setPluginState]\n );\n\n const onContextMenu = useCallback(\n (data: IrisGridContextMenuData) => pluginRef.current?.getMenu?.(data) ?? [],\n []\n );\n\n return {\n Plugin,\n customFilters,\n alwaysFetchColumns,\n onContextMenu,\n };\n}\n\nexport default useTablePlugin;\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC9D,SAASC,kBAAkB,QAAiC,mBAAmB;AAC/E,SAKEC,4BAA4B,QAGvB,sBAAsB;AAAC,SAErBC,kBAAkB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAuB3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAAC,IAAA,EAU5B;EAAA,IAV6B;IAC7BC,KAAK;IACLC,WAAW;IACXC,aAAa;IACbC;EACmB,CAAC,GAAAJ,IAAA;EAMpB,IAAM,CAACK,aAAa,EAAEC,gBAAgB,CAAC,GAAGb,QAAQ,CAAgB,EAAE,CAAC;EACrE,IAAMc,aAAa,GAAGhB,OAAO,CAC3B,MACEU,KAAK,IAAI,IAAI,IACbE,aAAa,IAAI,IAAI,IACrBR,4BAA4B,CAACM,KAAK,CAAC,GAC/BE,aAAa,CAACK,0BAA0B,CACtCP,KAAK,CAACQ,KAAK,CAACC,OAAO,EACnBL,aAAa,EACbJ,KAAK,CAACU,SAAS,CAACC,QAClB,CAAC,GACD,EAAE,EACR,CAACX,KAAK,EAAEE,aAAa,EAAEE,aAAa,CACtC,CAAC;EACD,IAAM,CAACQ,kBAAkB,EAAEC,qBAAqB,CAAC,GAAGrB,QAAQ,CAAW,EAAE,CAAC;EAC1E,IAAMsB,SAAS,GAAGvB,MAAM,CAA4B,IAAI,CAAC;EACzD,IAAM,CAACwB,WAAW,EAAEC,cAAc,CAAC,GAAGvB,kBAAkB,CAAUwB,SAAS,EAAE;IAC3EC,OAAO,EAAE,CAAC;IACV;IACA;IACAC,IAAI,EAAE;EACR,CAAC,CAAC;EAEF,IAAMC,MAAM,GAAG9B,OAAO,CACpB,MACEU,KAAK,IAAI,IAAI,IACbN,4BAA4B,CAACM,KAAK,CAAC,IACnCA,KAAK,CAACQ,KAAK,CAACa,UAAU,IAAI,IAAI,gBAC5BxB,IAAA,CAACF,kBAAkB;IACjB2B,GAAG,EAAER,SAAU;IACfS,IAAI,EAAEvB,KAAK,CAACQ,KAAK,CAACa,UAAW;IAC7BrB,KAAK,EAAEA,KAAM;IACbwB,MAAM,EAAEnB,gBAAiB;IACzBoB,YAAY,EAAEZ,qBAAsB;IACpCV,cAAc,EAAEA,cAAe;IAC/BF,WAAW,EAAEA,WAAY;IACzBc,WAAW,EAAEA,WAAY;IACzBW,aAAa,EAAEV;EAAe,CAC/B,CAAC,GACA,IAAI,EACV,CAAChB,KAAK,EAAEG,cAAc,EAAEF,WAAW,EAAEc,WAAW,EAAEC,cAAc,CAClE,CAAC;EAED,IAAMW,aAAa,GAAGtC,WAAW,CAC9BuC,IAA6B;IAAA,IAAAC,qBAAA,EAAAC,kBAAA,EAAAC,sBAAA;IAAA,QAAAF,qBAAA,IAAAC,kBAAA,GAAKhB,SAAS,CAACkB,OAAO,cAAAF,kBAAA,wBAAAC,sBAAA,GAAjBD,kBAAA,CAAmBG,OAAO,cAAAF,sBAAA,uBAA1BA,sBAAA,CAAAG,IAAA,CAAAJ,kBAAA,EAA6BF,IAAI,CAAC,cAAAC,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EAAA,GAC3E,EACF,CAAC;EAED,OAAO;IACLT,MAAM;IACNd,aAAa;IACbM,kBAAkB;IAClBe;EACF,CAAC;AACH;AAEA,eAAe7B,cAAc"}
1
+ {"version":3,"file":"useTablePlugin.js","names":["useCallback","useMemo","useRef","useState","usePersistentState","isIrisGridTableModelTemplate","TablePluginWrapper","jsx","_jsx","useTablePlugin","_ref","model","irisGridRef","irisGridUtils","selectedRanges","pluginFilters","setPluginFilters","customFilters","getFiltersFromInputFilters","table","columns","formatter","timeZone","alwaysFetchColumns","setAlwaysFetchColumns","pluginRef","pluginState","setPluginState","undefined","version","type","Plugin","pluginName","ref","name","filter","fetchColumns","onStateChange","onContextMenu","data","_pluginRef$current$ge","_pluginRef$current","_pluginRef$current$ge2","current","getMenu","call"],"sources":["../src/useTablePlugin.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from 'react';\nimport { usePersistentState, type TablePluginElement } from '@deephaven/plugin';\nimport {\n type InputFilter,\n type IrisGridModel,\n type IrisGridProps,\n type IrisGridUtils,\n isIrisGridTableModelTemplate,\n type IrisGridType,\n type IrisGridContextMenuData,\n} from '@deephaven/iris-grid';\nimport { type GridRange } from '@deephaven/grid';\nimport { TablePluginWrapper } from './TablePluginWrapper';\n\ninterface UseTablePluginProps {\n /**\n * The IrisGrid model for this plugin.\n * Currently only IrisGridTableModelTemplate types are supported.\n * Other IrisGrid model types will be ignored for now.\n */\n model: IrisGridModel | undefined;\n /**\n * A reference to the IrisGrid component instance.\n */\n irisGridRef: React.MutableRefObject<IrisGridType | null>;\n /**\n * A IrisGridUtils instance.\n */\n irisGridUtils: IrisGridUtils | undefined;\n /**\n * The currently selected ranges in the grid.\n */\n selectedRanges: readonly GridRange[] | undefined;\n}\n\n/**\n * Hook to get a TablePlugin component and the IrisGrid props derived from the plugin.\n * The returned props should be passed to the IrisGrid component or merged with other sources\n * of the same props.\n * @param props The properties for the table plugin. The props object itself does not need to be memoized,\n * but the values inside it should be stable to avoid unnecessary re-renders.\n * @returns Object containing `Plugin` key which is the Plugin component.\n * The remaining object keys are IrisGrid props associated with the plugin.\n */\nexport function useTablePlugin({\n model,\n irisGridRef,\n irisGridUtils,\n selectedRanges,\n}: UseTablePluginProps): {\n Plugin: JSX.Element | null;\n} & Pick<\n IrisGridProps,\n 'customFilters' | 'alwaysFetchColumns' | 'onContextMenu'\n> {\n const [pluginFilters, setPluginFilters] = useState<InputFilter[]>([]);\n const customFilters = useMemo(\n () =>\n model != null &&\n irisGridUtils != null &&\n isIrisGridTableModelTemplate(model)\n ? irisGridUtils.getFiltersFromInputFilters(\n model.table.columns,\n pluginFilters,\n model.formatter.timeZone\n )\n : [],\n [model, irisGridUtils, pluginFilters]\n );\n const [alwaysFetchColumns, setAlwaysFetchColumns] = useState<string[]>([]);\n const pluginRef = useRef<TablePluginElement | null>(null);\n const [pluginState, setPluginState] = usePersistentState<unknown>(undefined, {\n version: 1,\n // pluginName will be undefined on first call when re-hydrating,\n // so use a constant type to avoid re-hydration issues with the persistent state type\n type: 'GridWidgetTablePluginState',\n });\n\n const Plugin = useMemo(\n () =>\n model != null &&\n isIrisGridTableModelTemplate(model) &&\n model.table.pluginName != null ? (\n <TablePluginWrapper\n ref={pluginRef}\n name={model.table.pluginName}\n model={model}\n filter={setPluginFilters}\n fetchColumns={setAlwaysFetchColumns}\n selectedRanges={selectedRanges}\n irisGridRef={irisGridRef}\n pluginState={pluginState}\n onStateChange={setPluginState}\n />\n ) : null,\n [model, selectedRanges, irisGridRef, pluginState, setPluginState]\n );\n\n const onContextMenu = useCallback(\n (data: IrisGridContextMenuData) => pluginRef.current?.getMenu?.(data) ?? [],\n []\n );\n\n return {\n Plugin,\n customFilters,\n alwaysFetchColumns,\n onContextMenu,\n };\n}\n\nexport default useTablePlugin;\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC9D,SAASC,kBAAkB,QAAiC,mBAAmB;AAC/E,SAKEC,4BAA4B,QAGvB,sBAAsB;AAAC,SAErBC,kBAAkB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAuB3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAAC,IAAA,EAU5B;EAAA,IAV6B;IAC7BC,KAAK;IACLC,WAAW;IACXC,aAAa;IACbC;EACmB,CAAC,GAAAJ,IAAA;EAMpB,IAAM,CAACK,aAAa,EAAEC,gBAAgB,CAAC,GAAGb,QAAQ,CAAgB,EAAE,CAAC;EACrE,IAAMc,aAAa,GAAGhB,OAAO,CAC3B,MACEU,KAAK,IAAI,IAAI,IACbE,aAAa,IAAI,IAAI,IACrBR,4BAA4B,CAACM,KAAK,CAAC,GAC/BE,aAAa,CAACK,0BAA0B,CACtCP,KAAK,CAACQ,KAAK,CAACC,OAAO,EACnBL,aAAa,EACbJ,KAAK,CAACU,SAAS,CAACC,QAClB,CAAC,GACD,EAAE,EACR,CAACX,KAAK,EAAEE,aAAa,EAAEE,aAAa,CACtC,CAAC;EACD,IAAM,CAACQ,kBAAkB,EAAEC,qBAAqB,CAAC,GAAGrB,QAAQ,CAAW,EAAE,CAAC;EAC1E,IAAMsB,SAAS,GAAGvB,MAAM,CAA4B,IAAI,CAAC;EACzD,IAAM,CAACwB,WAAW,EAAEC,cAAc,CAAC,GAAGvB,kBAAkB,CAAUwB,SAAS,EAAE;IAC3EC,OAAO,EAAE,CAAC;IACV;IACA;IACAC,IAAI,EAAE;EACR,CAAC,CAAC;EAEF,IAAMC,MAAM,GAAG9B,OAAO,CACpB,MACEU,KAAK,IAAI,IAAI,IACbN,4BAA4B,CAACM,KAAK,CAAC,IACnCA,KAAK,CAACQ,KAAK,CAACa,UAAU,IAAI,IAAI,gBAC5BxB,IAAA,CAACF,kBAAkB;IACjB2B,GAAG,EAAER,SAAU;IACfS,IAAI,EAAEvB,KAAK,CAACQ,KAAK,CAACa,UAAW;IAC7BrB,KAAK,EAAEA,KAAM;IACbwB,MAAM,EAAEnB,gBAAiB;IACzBoB,YAAY,EAAEZ,qBAAsB;IACpCV,cAAc,EAAEA,cAAe;IAC/BF,WAAW,EAAEA,WAAY;IACzBc,WAAW,EAAEA,WAAY;IACzBW,aAAa,EAAEV;EAAe,CAC/B,CAAC,GACA,IAAI,EACV,CAAChB,KAAK,EAAEG,cAAc,EAAEF,WAAW,EAAEc,WAAW,EAAEC,cAAc,CAClE,CAAC;EAED,IAAMW,aAAa,GAAGtC,WAAW,CAC9BuC,IAA6B;IAAA,IAAAC,qBAAA,EAAAC,kBAAA,EAAAC,sBAAA;IAAA,QAAAF,qBAAA,IAAAC,kBAAA,GAAKhB,SAAS,CAACkB,OAAO,cAAAF,kBAAA,gBAAAC,sBAAA,GAAjBD,kBAAA,CAAmBG,OAAO,cAAAF,sBAAA,uBAA1BA,sBAAA,CAAAG,IAAA,CAAAJ,kBAAA,EAA6BF,IAAI,CAAC,cAAAC,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EAAA,GAC3E,EACF,CAAC;EAED,OAAO;IACLT,MAAM;IACNd,aAAa;IACbM,kBAAkB;IAClBe;EACF,CAAC;AACH;AAEA,eAAe7B,cAAc","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/dashboard-core-plugins",
3
- "version": "1.7.2-beta.1+a19bc114",
3
+ "version": "1.7.2-react-18-alpha.3+b369a51e",
4
4
  "description": "Deephaven Dashboard Core Plugins",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -22,26 +22,26 @@
22
22
  "build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
23
23
  },
24
24
  "dependencies": {
25
- "@deephaven/chart": "^1.7.2-beta.1+a19bc114",
26
- "@deephaven/components": "^1.7.2-beta.1+a19bc114",
27
- "@deephaven/console": "^1.7.2-beta.1+a19bc114",
28
- "@deephaven/dashboard": "^1.7.2-beta.1+a19bc114",
29
- "@deephaven/file-explorer": "^1.7.2-beta.1+a19bc114",
30
- "@deephaven/filters": "^1.7.2-beta.1+a19bc114",
31
- "@deephaven/golden-layout": "^1.7.2-beta.1+a19bc114",
32
- "@deephaven/grid": "^1.7.2-beta.1+a19bc114",
33
- "@deephaven/icons": "^1.7.2-beta.1+a19bc114",
34
- "@deephaven/iris-grid": "^1.7.2-beta.1+a19bc114",
35
- "@deephaven/jsapi-bootstrap": "^1.7.2-beta.1+a19bc114",
36
- "@deephaven/jsapi-components": "^1.7.2-beta.1+a19bc114",
25
+ "@deephaven/chart": "^1.7.2-react-18-alpha.3+b369a51e",
26
+ "@deephaven/components": "^1.7.2-react-18-alpha.3+b369a51e",
27
+ "@deephaven/console": "^1.7.2-react-18-alpha.3+b369a51e",
28
+ "@deephaven/dashboard": "^1.7.2-react-18-alpha.3+b369a51e",
29
+ "@deephaven/file-explorer": "^1.7.2-react-18-alpha.3+b369a51e",
30
+ "@deephaven/filters": "^1.7.2-react-18-alpha.3+b369a51e",
31
+ "@deephaven/golden-layout": "^1.7.2-react-18-alpha.3+b369a51e",
32
+ "@deephaven/grid": "^1.7.2-react-18-alpha.3+b369a51e",
33
+ "@deephaven/icons": "^1.7.2-react-18-alpha.3+b369a51e",
34
+ "@deephaven/iris-grid": "^1.7.2-react-18-alpha.3+b369a51e",
35
+ "@deephaven/jsapi-bootstrap": "^1.7.2-react-18-alpha.3+b369a51e",
36
+ "@deephaven/jsapi-components": "^1.7.2-react-18-alpha.3+b369a51e",
37
37
  "@deephaven/jsapi-types": "^1.0.0-dev0.39.4",
38
- "@deephaven/jsapi-utils": "^1.7.2-beta.1+a19bc114",
39
- "@deephaven/log": "^1.7.2-beta.1+a19bc114",
40
- "@deephaven/plugin": "^1.7.2-beta.1+a19bc114",
41
- "@deephaven/react-hooks": "^1.7.2-beta.1+a19bc114",
42
- "@deephaven/redux": "^1.7.2-beta.1+a19bc114",
43
- "@deephaven/storage": "^1.7.2-beta.1+a19bc114",
44
- "@deephaven/utils": "^1.7.2-beta.1+a19bc114",
38
+ "@deephaven/jsapi-utils": "^1.7.2-react-18-alpha.3+b369a51e",
39
+ "@deephaven/log": "^1.7.2-react-18-alpha.3+b369a51e",
40
+ "@deephaven/plugin": "^1.7.2-react-18-alpha.3+b369a51e",
41
+ "@deephaven/react-hooks": "^1.7.2-react-18-alpha.3+b369a51e",
42
+ "@deephaven/redux": "^1.7.2-react-18-alpha.3+b369a51e",
43
+ "@deephaven/storage": "^1.7.2-react-18-alpha.3+b369a51e",
44
+ "@deephaven/utils": "^1.7.2-react-18-alpha.3+b369a51e",
45
45
  "@fortawesome/react-fontawesome": "^0.2.0",
46
46
  "classnames": "^2.3.1",
47
47
  "fast-deep-equal": "^3.1.3",
@@ -65,9 +65,9 @@
65
65
  "react-redux": "^7.2.4"
66
66
  },
67
67
  "devDependencies": {
68
- "@deephaven/jsapi-shim": "^1.7.2-beta.1+a19bc114",
69
- "@deephaven/mocks": "^1.7.2-beta.1+a19bc114",
70
- "@deephaven/test-utils": "^1.7.2-beta.1+a19bc114"
68
+ "@deephaven/jsapi-shim": "^1.7.2-react-18-alpha.3+b369a51e",
69
+ "@deephaven/mocks": "^1.7.2-react-18-alpha.3+b369a51e",
70
+ "@deephaven/test-utils": "^1.7.2-react-18-alpha.3+b369a51e"
71
71
  },
72
72
  "files": [
73
73
  "dist",
@@ -79,5 +79,5 @@
79
79
  "publishConfig": {
80
80
  "access": "public"
81
81
  },
82
- "gitHead": "a19bc11446da4328bc5c216064ec810b24ee0312"
82
+ "gitHead": "b369a51ee94d212641a14c6ce1f19fcc85168339"
83
83
  }