@deephaven/dashboard-core-plugins 0.37.4-logout.17 → 0.37.4-logout.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/ChartBuilderPlugin.js.map +1 -1
  2. package/dist/ChartPlugin.js.map +1 -1
  3. package/dist/ConsolePlugin.js.map +1 -1
  4. package/dist/FilterPlugin.js.map +1 -1
  5. package/dist/GridPlugin.js.map +1 -1
  6. package/dist/LinkerPlugin.js.map +1 -1
  7. package/dist/MarkdownPlugin.js.map +1 -1
  8. package/dist/PandasPlugin.js.map +1 -1
  9. package/dist/controls/ControlType.js.map +1 -1
  10. package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
  11. package/dist/controls/input-filter/InputFilter.js.map +1 -1
  12. package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
  13. package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
  14. package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
  15. package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
  16. package/dist/events/ChartEvent.js +0 -2
  17. package/dist/events/ChartEvent.js.map +1 -1
  18. package/dist/events/ConsoleEvent.js.map +1 -1
  19. package/dist/events/InputFilterEvent.js +0 -8
  20. package/dist/events/InputFilterEvent.js.map +1 -1
  21. package/dist/events/IrisGridEvent.js +0 -2
  22. package/dist/events/IrisGridEvent.js.map +1 -1
  23. package/dist/events/NotebookEvent.js.map +1 -1
  24. package/dist/events/PQEvent.js.map +1 -1
  25. package/dist/events/PandasEvent.js +0 -2
  26. package/dist/events/PandasEvent.js.map +1 -1
  27. package/dist/events/TabEvent.js.map +1 -1
  28. package/dist/linker/Linker.js.map +1 -1
  29. package/dist/linker/LinkerLink.js.map +1 -1
  30. package/dist/linker/LinkerOverlayContent.js.map +1 -1
  31. package/dist/linker/LinkerUtils.js +1 -1
  32. package/dist/linker/LinkerUtils.js.map +1 -1
  33. package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
  34. package/dist/panels/ChartFilterOverlay.js.map +1 -1
  35. package/dist/panels/ChartPanel.js.map +1 -1
  36. package/dist/panels/ChartPanelUtils.js.map +1 -1
  37. package/dist/panels/CommandHistoryPanel.js.map +1 -1
  38. package/dist/panels/ConsolePanel.js.map +1 -1
  39. package/dist/panels/DropdownFilterPanel.js +2 -1
  40. package/dist/panels/DropdownFilterPanel.js.map +1 -1
  41. package/dist/panels/FileExplorerPanel.js.map +1 -1
  42. package/dist/panels/FilterSetManager.js.map +1 -1
  43. package/dist/panels/FilterSetManagerPanel.js.map +1 -1
  44. package/dist/panels/InputFilterPanel.js +3 -2
  45. package/dist/panels/InputFilterPanel.js.map +1 -1
  46. package/dist/panels/IrisGridPanel.js +0 -1
  47. package/dist/panels/IrisGridPanel.js.map +1 -1
  48. package/dist/panels/IrisGridPanelTooltip.js.map +1 -1
  49. package/dist/panels/LogPanel.js.map +1 -1
  50. package/dist/panels/MarkdownNotebook.js.map +1 -1
  51. package/dist/panels/MarkdownPanel.js.map +1 -1
  52. package/dist/panels/MockFileStorage.js.map +1 -1
  53. package/dist/panels/MockFileStorageTable.js.map +1 -1
  54. package/dist/panels/NotebookPanel.js.map +1 -1
  55. package/dist/panels/PandasPanel.js.map +1 -1
  56. package/dist/panels/Panel.js.map +1 -1
  57. package/dist/panels/PanelContextMenu.js.map +1 -1
  58. package/dist/panels/RenameDialog.js.map +1 -1
  59. package/dist/panels/WidgetPanel.js.map +1 -1
  60. package/dist/panels/WidgetPanelTooltip.js.map +1 -1
  61. package/dist/prop-types/CommonPropTypes.js.map +1 -1
  62. package/dist/redux/actions.js.map +1 -1
  63. package/dist/redux/index.js.map +1 -1
  64. package/dist/redux/selectors.js.map +1 -1
  65. package/package.json +21 -21
@@ -1 +1 @@
1
- {"version":3,"file":"RenameDialog.js","names":["React","PureComponent","classNames","Button","Popper","RenameDialog","constructor","props","_defineProperty","handleRenameDialogOpened","bind","handleRenameInputChange","handleRenameCancel","handleRenameSubmit","renameInputRef","createRef","value","state","valueWasValidated","componentDidUpdate","prevProps","isShown","prevIsShown","resetState","setState","_this$renameInputRef","_this$renameInputRef$","current","focus","event","target","onCancel","stopPropagation","preventDefault","newTitle","trim","undefined","onSubmit","renderRenameDialog","isShared","isOwner","itemType","createElement","className","noValidate","role","onMouseDown","onMouseUp","htmlFor","concat","type","id","ref","onChange","required","kind","onClick","render","onEntered","onExited","options","placement","interactive","closeOnBlur"],"sources":["../../src/panels/RenameDialog.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n FormEvent,\n PureComponent,\n ReactElement,\n RefObject,\n} from 'react';\nimport classNames from 'classnames';\nimport { Button, Popper } from '@deephaven/components';\n\ninterface RenameDialogProps {\n isShared: boolean;\n isOwner: boolean;\n isShown: boolean;\n itemType: string;\n onSubmit: (title: string) => void;\n onCancel: () => void;\n value?: string | null;\n}\n\ninterface RenameDialogState {\n value?: string | null;\n valueWasValidated: boolean;\n}\n\nexport default class RenameDialog extends PureComponent<\n RenameDialogProps,\n RenameDialogState\n> {\n static defaultProps = {\n isShared: false,\n isOwner: true,\n itemType: 'Item',\n value: '',\n };\n\n constructor(props: RenameDialogProps) {\n super(props);\n\n this.handleRenameDialogOpened = this.handleRenameDialogOpened.bind(this);\n this.handleRenameInputChange = this.handleRenameInputChange.bind(this);\n this.handleRenameCancel = this.handleRenameCancel.bind(this);\n this.handleRenameSubmit = this.handleRenameSubmit.bind(this);\n\n this.renameInputRef = React.createRef();\n\n const { value } = props;\n\n this.state = {\n value,\n valueWasValidated: false,\n };\n }\n\n componentDidUpdate(prevProps: RenameDialogProps): void {\n const { isShown: prevIsShown } = prevProps;\n const { isShown } = this.props;\n // Reset the state on dialog shown and not on the `value` prop change\n // so the input keeps the internal value while the dialog is open.\n // Useful in case the `value` prop update is triggered externally\n // i.e. by someone else renaming the same shared dashboard\n if (isShown && !prevIsShown) {\n this.resetState();\n }\n }\n\n renameInputRef: RefObject<HTMLInputElement>;\n\n resetState(): void {\n const { value } = this.props;\n this.setState({ value, valueWasValidated: false });\n }\n\n handleRenameDialogOpened(): void {\n this.renameInputRef?.current?.focus();\n }\n\n handleRenameInputChange(event: ChangeEvent<HTMLInputElement>): void {\n this.setState({ value: event.target.value });\n }\n\n handleRenameCancel(): void {\n const { onCancel } = this.props;\n onCancel();\n }\n\n handleRenameSubmit(event: FormEvent<HTMLFormElement>): void {\n event.stopPropagation();\n event.preventDefault();\n const { value } = this.state;\n const newTitle = value?.trim();\n if (newTitle !== undefined && newTitle !== '') {\n const { onSubmit } = this.props;\n onSubmit(newTitle);\n } else {\n this.setState({ value: newTitle, valueWasValidated: true });\n }\n }\n\n renderRenameDialog(): ReactElement {\n const { isShared, isOwner, itemType } = this.props;\n const { value, valueWasValidated } = this.state;\n\n return (\n <form\n className={classNames('p-3', { 'was-validated': valueWasValidated })}\n onSubmit={this.handleRenameSubmit}\n noValidate\n role=\"presentation\"\n onMouseDown={event => {\n // block events in the NewTabScreen ItemList\n event.stopPropagation();\n }}\n onMouseUp={event => {\n event.stopPropagation();\n }}\n >\n <div className=\"form-group\">\n <label htmlFor={`rename-dialog-${itemType}-input`}>\n Rename {itemType}\n </label>\n <input\n type=\"text\"\n className=\"form-control\"\n id={`rename-dialog-${itemType}-input`}\n value={value ?? undefined}\n ref={this.renameInputRef}\n onChange={this.handleRenameInputChange}\n required\n />\n <div className=\"invalid-feedback\">\n {itemType} name cannot be empty\n </div>\n {(isShared || !isOwner) && (\n <div className=\"pt-2\">\n Renaming this {itemType} will rename for all users.\n </div>\n )}\n </div>\n\n <div className=\"text-right\">\n <Button\n kind=\"secondary\"\n className=\"mr-2\"\n onClick={this.handleRenameCancel}\n >\n Cancel\n </Button>\n <Button kind=\"primary\" type=\"submit\">\n Rename\n </Button>\n </div>\n </form>\n );\n }\n\n render(): ReactElement {\n const { isShown, onCancel } = this.props;\n return (\n <Popper\n isShown={isShown}\n onEntered={this.handleRenameDialogOpened}\n onExited={onCancel}\n options={{\n placement: 'bottom',\n }}\n interactive\n closeOnBlur\n >\n {this.renderRenameDialog()}\n </Popper>\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"RenameDialog.js","names":["React","PureComponent","classNames","Button","Popper","RenameDialog","constructor","props","handleRenameDialogOpened","bind","handleRenameInputChange","handleRenameCancel","handleRenameSubmit","renameInputRef","createRef","value","state","valueWasValidated","componentDidUpdate","prevProps","isShown","prevIsShown","resetState","setState","current","focus","event","target","onCancel","stopPropagation","preventDefault","newTitle","trim","undefined","onSubmit","renderRenameDialog","isShared","isOwner","itemType","render","placement"],"sources":["../../src/panels/RenameDialog.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n FormEvent,\n PureComponent,\n ReactElement,\n RefObject,\n} from 'react';\nimport classNames from 'classnames';\nimport { Button, Popper } from '@deephaven/components';\n\ninterface RenameDialogProps {\n isShared: boolean;\n isOwner: boolean;\n isShown: boolean;\n itemType: string;\n onSubmit: (title: string) => void;\n onCancel: () => void;\n value?: string | null;\n}\n\ninterface RenameDialogState {\n value?: string | null;\n valueWasValidated: boolean;\n}\n\nexport default class RenameDialog extends PureComponent<\n RenameDialogProps,\n RenameDialogState\n> {\n static defaultProps = {\n isShared: false,\n isOwner: true,\n itemType: 'Item',\n value: '',\n };\n\n constructor(props: RenameDialogProps) {\n super(props);\n\n this.handleRenameDialogOpened = this.handleRenameDialogOpened.bind(this);\n this.handleRenameInputChange = this.handleRenameInputChange.bind(this);\n this.handleRenameCancel = this.handleRenameCancel.bind(this);\n this.handleRenameSubmit = this.handleRenameSubmit.bind(this);\n\n this.renameInputRef = React.createRef();\n\n const { value } = props;\n\n this.state = {\n value,\n valueWasValidated: false,\n };\n }\n\n componentDidUpdate(prevProps: RenameDialogProps): void {\n const { isShown: prevIsShown } = prevProps;\n const { isShown } = this.props;\n // Reset the state on dialog shown and not on the `value` prop change\n // so the input keeps the internal value while the dialog is open.\n // Useful in case the `value` prop update is triggered externally\n // i.e. by someone else renaming the same shared dashboard\n if (isShown && !prevIsShown) {\n this.resetState();\n }\n }\n\n renameInputRef: RefObject<HTMLInputElement>;\n\n resetState(): void {\n const { value } = this.props;\n this.setState({ value, valueWasValidated: false });\n }\n\n handleRenameDialogOpened(): void {\n this.renameInputRef?.current?.focus();\n }\n\n handleRenameInputChange(event: ChangeEvent<HTMLInputElement>): void {\n this.setState({ value: event.target.value });\n }\n\n handleRenameCancel(): void {\n const { onCancel } = this.props;\n onCancel();\n }\n\n handleRenameSubmit(event: FormEvent<HTMLFormElement>): void {\n event.stopPropagation();\n event.preventDefault();\n const { value } = this.state;\n const newTitle = value?.trim();\n if (newTitle !== undefined && newTitle !== '') {\n const { onSubmit } = this.props;\n onSubmit(newTitle);\n } else {\n this.setState({ value: newTitle, valueWasValidated: true });\n }\n }\n\n renderRenameDialog(): ReactElement {\n const { isShared, isOwner, itemType } = this.props;\n const { value, valueWasValidated } = this.state;\n\n return (\n <form\n className={classNames('p-3', { 'was-validated': valueWasValidated })}\n onSubmit={this.handleRenameSubmit}\n noValidate\n role=\"presentation\"\n onMouseDown={event => {\n // block events in the NewTabScreen ItemList\n event.stopPropagation();\n }}\n onMouseUp={event => {\n event.stopPropagation();\n }}\n >\n <div className=\"form-group\">\n <label htmlFor={`rename-dialog-${itemType}-input`}>\n Rename {itemType}\n </label>\n <input\n type=\"text\"\n className=\"form-control\"\n id={`rename-dialog-${itemType}-input`}\n value={value ?? undefined}\n ref={this.renameInputRef}\n onChange={this.handleRenameInputChange}\n required\n />\n <div className=\"invalid-feedback\">\n {itemType} name cannot be empty\n </div>\n {(isShared || !isOwner) && (\n <div className=\"pt-2\">\n Renaming this {itemType} will rename for all users.\n </div>\n )}\n </div>\n\n <div className=\"text-right\">\n <Button\n kind=\"secondary\"\n className=\"mr-2\"\n onClick={this.handleRenameCancel}\n >\n Cancel\n </Button>\n <Button kind=\"primary\" type=\"submit\">\n Rename\n </Button>\n </div>\n </form>\n );\n }\n\n render(): ReactElement {\n const { isShown, onCancel } = this.props;\n return (\n <Popper\n isShown={isShown}\n onEntered={this.handleRenameDialogOpened}\n onExited={onCancel}\n options={{\n placement: 'bottom',\n }}\n interactive\n closeOnBlur\n >\n {this.renderRenameDialog()}\n </Popper>\n );\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetPanel.js","names":["React","PureComponent","classNames","memoize","ContextActions","copyToClipboard","Panel","WidgetPanelTooltip","WidgetPanel","constructor","props","_defineProperty","showTabTooltip","glContainer","widgetType","widgetName","description","createElement","handleSessionClosed","bind","handleSessionOpened","handleCopyName","state","isClientDisconnected","isPanelDisconnected","isWidgetDisconnected","isWaitingForReconnect","isPanelInactive","getErrorMessage","errorMessage","concat","undefined","onSessionClose","setState","arguments","onSessionOpen","render","children","className","componentPanel","isLoaded","isLoading","glEventHub","isDisconnected","isClonable","isRenamable","renderTabTooltip","onClearAllFilters","onHide","onFocus","onBlur","onResize","onShow","onTabBlur","onTabFocus","onTabClicked","doRenderTabTooltip","getCachedRenderTabTooltip","additionalActions","title","group","groups","medium","order","action","disconnected","inactive"],"sources":["../../src/panels/WidgetPanel.tsx"],"sourcesContent":["import React, {\n Component,\n PureComponent,\n ReactElement,\n ReactNode,\n} from 'react';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport type { Container, EventEmitter } from '@deephaven/golden-layout';\nimport { ContextActions } from '@deephaven/components';\nimport { copyToClipboard } from '@deephaven/utils';\nimport Panel from './Panel';\nimport WidgetPanelTooltip from './WidgetPanelTooltip';\nimport './WidgetPanel.scss';\n\ninterface WidgetPanelProps {\n children: ReactNode;\n componentPanel: Component;\n\n glContainer: Container;\n glEventHub: EventEmitter;\n\n className: string;\n errorMessage: string;\n isClonable: boolean;\n isDisconnected: boolean;\n isLoading: boolean;\n isLoaded: boolean;\n isRenamable: boolean;\n showTabTooltip: boolean;\n widgetName: string;\n widgetType: string;\n renderTabTooltip: () => ReactNode;\n description: string;\n\n onFocus: () => void;\n onBlur: () => void;\n onHide: () => void;\n onClearAllFilters: () => void;\n onResize: () => void;\n onSessionClose: (...args: unknown[]) => void;\n onSessionOpen: (...args: unknown[]) => void;\n onShow: () => void;\n onTabBlur: () => void;\n onTabFocus: () => void;\n onTabClicked: () => void;\n}\n\ninterface WidgetPanelState {\n isClientDisconnected: boolean;\n isPanelDisconnected: boolean;\n isWidgetDisconnected: boolean;\n isWaitingForReconnect: boolean;\n isPanelInactive: boolean;\n}\n/**\n * Widget panel component that has a loading spinner and displays an error message when set\n */\nclass WidgetPanel extends PureComponent<WidgetPanelProps, WidgetPanelState> {\n static defaultProps = {\n className: '',\n errorMessage: null,\n isClonable: true,\n isDisconnected: false,\n isLoading: false,\n isLoaded: true,\n isRenamable: true,\n showTabTooltip: true,\n widgetName: 'Widget',\n widgetType: 'Widget',\n renderTabTooltip: null,\n description: '',\n\n onFocus: (): void => undefined,\n onBlur: (): void => undefined,\n onHide: (): void => undefined,\n onClearAllFilters: (): void => undefined,\n onResize: (): void => undefined,\n onSessionClose: (): void => undefined,\n onSessionOpen: (): void => undefined,\n onShow: (): void => undefined,\n onTabBlur: (): void => undefined,\n onTabFocus: (): void => undefined,\n onTabClicked: (): void => undefined,\n };\n\n constructor(props: WidgetPanelProps) {\n super(props);\n\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleCopyName = this.handleCopyName.bind(this);\n\n this.state = {\n isClientDisconnected: false,\n isPanelDisconnected: false,\n isWidgetDisconnected: false,\n isWaitingForReconnect: false,\n isPanelInactive: false,\n };\n }\n\n handleCopyName(): void {\n const { widgetName } = this.props;\n copyToClipboard(widgetName);\n }\n\n getErrorMessage(): string | undefined {\n const { errorMessage } = this.props;\n const {\n isClientDisconnected,\n isPanelDisconnected,\n isWidgetDisconnected,\n isWaitingForReconnect,\n } = this.state;\n if (errorMessage) {\n return `${errorMessage}`;\n }\n if (isClientDisconnected && isPanelDisconnected && isWaitingForReconnect) {\n return 'Disconnected from server.\\nCheck your internet connection.';\n }\n if (isClientDisconnected && isPanelDisconnected) {\n return 'Disconnected from server.';\n }\n if (isPanelDisconnected) {\n const { widgetName, widgetType } = this.props;\n return `Variable \"${widgetName}\" not set.\\n${widgetType} does not exist yet.`;\n }\n if (isWidgetDisconnected) {\n const { widgetName } = this.props;\n return `${widgetName} is unavailable.`;\n }\n return undefined;\n }\n\n getCachedRenderTabTooltip = memoize(\n (\n showTabTooltip: boolean,\n glContainer: Container,\n widgetType: string,\n widgetName: string,\n description: string\n ) =>\n showTabTooltip\n ? () => (\n <WidgetPanelTooltip\n glContainer={glContainer}\n widgetType={widgetType}\n widgetName={widgetName}\n description={description}\n />\n )\n : null\n );\n\n handleSessionClosed(...args: unknown[]): void {\n const { onSessionClose } = this.props;\n // The session has closed and we won't be able to reconnect, as this widget isn't persisted\n this.setState({\n isPanelDisconnected: true,\n isWaitingForReconnect: false,\n });\n onSessionClose(...args);\n }\n\n handleSessionOpened(...args: unknown[]): void {\n const { onSessionOpen } = this.props;\n onSessionOpen(...args);\n }\n\n render(): ReactElement {\n const {\n children,\n className,\n componentPanel,\n isLoaded,\n isLoading,\n glContainer,\n glEventHub,\n isDisconnected,\n isClonable,\n isRenamable,\n showTabTooltip,\n renderTabTooltip,\n widgetType,\n widgetName,\n description,\n\n onClearAllFilters,\n onHide,\n onFocus,\n onBlur,\n onResize,\n onShow,\n onTabBlur,\n onTabFocus,\n onTabClicked,\n } = this.props;\n\n const {\n isPanelDisconnected,\n isWidgetDisconnected,\n isPanelInactive,\n } = this.state;\n const errorMessage = this.getErrorMessage();\n const doRenderTabTooltip =\n renderTabTooltip ??\n this.getCachedRenderTabTooltip(\n showTabTooltip,\n glContainer,\n widgetType,\n widgetName,\n description\n );\n\n const additionalActions = [\n {\n title: `Copy ${widgetType} Name`,\n group: ContextActions.groups.medium,\n order: 20,\n action: this.handleCopyName,\n },\n ];\n\n return (\n <Panel\n className={classNames(className, {\n disconnected:\n isPanelDisconnected || isWidgetDisconnected || isDisconnected,\n inactive: isPanelInactive,\n })}\n componentPanel={componentPanel}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onClearAllFilters={onClearAllFilters}\n onHide={onHide}\n onFocus={onFocus}\n onBlur={onBlur}\n onResize={onResize}\n onShow={onShow}\n onSessionClose={this.handleSessionClosed}\n onSessionOpen={this.handleSessionOpened}\n onTabBlur={onTabBlur}\n onTabFocus={onTabFocus}\n onTabClicked={onTabClicked}\n renderTabTooltip={doRenderTabTooltip}\n errorMessage={errorMessage}\n isLoaded={isLoaded}\n isLoading={isLoading}\n isClonable={isClonable}\n isRenamable={isRenamable}\n additionalActions={additionalActions}\n >\n {children}\n {isPanelInactive && <div className=\"fill-parent-absolute\" />}\n </Panel>\n );\n }\n}\n\nexport default WidgetPanel;\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAEVC,aAAa,QAGR,OAAO;AACd,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,OAAO,MAAM,aAAa;AAEjC,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SAASC,eAAe,QAAQ,kBAAkB;AAAC,OAC5CC,KAAK;AAAA,OACLC,kBAAkB;AAAA;AA2CzB;AACA;AACA;AACA,MAAMC,WAAW,SAASP,aAAa,CAAqC;EA4B1EQ,WAAWA,CAACC,KAAuB,EAAE;IACnC,KAAK,CAACA,KAAK,CAAC;IAACC,eAAA,oCAgDaR,OAAO,CACjC,CACES,cAAuB,EACvBC,WAAsB,EACtBC,UAAkB,EAClBC,UAAkB,EAClBC,WAAmB,KAEnBJ,cAAc,GACV,mBACEZ,KAAA,CAAAiB,aAAA,CAACV,kBAAkB;MACjBM,WAAW,EAAEA,WAAY;MACzBC,UAAU,EAAEA,UAAW;MACvBC,UAAU,EAAEA,UAAW;MACvBC,WAAW,EAAEA;IAAY,CAC1B,CACF,GACD,IACR,CAAC;IAhEC,IAAI,CAACE,mBAAmB,GAAG,IAAI,CAACA,mBAAmB,CAACC,IAAI,CAAC,IAAI,CAAC;IAC9D,IAAI,CAACC,mBAAmB,GAAG,IAAI,CAACA,mBAAmB,CAACD,IAAI,CAAC,IAAI,CAAC;IAC9D,IAAI,CAACE,cAAc,GAAG,IAAI,CAACA,cAAc,CAACF,IAAI,CAAC,IAAI,CAAC;IAEpD,IAAI,CAACG,KAAK,GAAG;MACXC,oBAAoB,EAAE,KAAK;MAC3BC,mBAAmB,EAAE,KAAK;MAC1BC,oBAAoB,EAAE,KAAK;MAC3BC,qBAAqB,EAAE,KAAK;MAC5BC,eAAe,EAAE;IACnB,CAAC;EACH;EAEAN,cAAcA,CAAA,EAAS;IACrB,IAAM;MAAEN;IAAW,CAAC,GAAG,IAAI,CAACL,KAAK;IACjCL,eAAe,CAACU,UAAU,CAAC;EAC7B;EAEAa,eAAeA,CAAA,EAAuB;IACpC,IAAM;MAAEC;IAAa,CAAC,GAAG,IAAI,CAACnB,KAAK;IACnC,IAAM;MACJa,oBAAoB;MACpBC,mBAAmB;MACnBC,oBAAoB;MACpBC;IACF,CAAC,GAAG,IAAI,CAACJ,KAAK;IACd,IAAIO,YAAY,EAAE;MAChB,UAAAC,MAAA,CAAUD,YAAY;IACxB;IACA,IAAIN,oBAAoB,IAAIC,mBAAmB,IAAIE,qBAAqB,EAAE;MACxE,OAAO,4DAA4D;IACrE;IACA,IAAIH,oBAAoB,IAAIC,mBAAmB,EAAE;MAC/C,OAAO,2BAA2B;IACpC;IACA,IAAIA,mBAAmB,EAAE;MACvB,IAAM;QAAET,UAAU;QAAED;MAAW,CAAC,GAAG,IAAI,CAACJ,KAAK;MAC7C,qBAAAoB,MAAA,CAAoBf,UAAU,mBAAAe,MAAA,CAAehB,UAAU;IACzD;IACA,IAAIW,oBAAoB,EAAE;MACxB,IAAM;QAAEV,UAAU,EAAVA;MAAW,CAAC,GAAG,IAAI,CAACL,KAAK;MACjC,UAAAoB,MAAA,CAAUf,WAAU;IACtB;IACA,OAAOgB,SAAS;EAClB;EAsBAb,mBAAmBA,CAAA,EAA2B;IAC5C,IAAM;MAAEc;IAAe,CAAC,GAAG,IAAI,CAACtB,KAAK;IACrC;IACA,IAAI,CAACuB,QAAQ,CAAC;MACZT,mBAAmB,EAAE,IAAI;MACzBE,qBAAqB,EAAE;IACzB,CAAC,CAAC;IACFM,cAAc,CAAC,GAAAE,SAAO,CAAC;EACzB;EAEAd,mBAAmBA,CAAA,EAA2B;IAC5C,IAAM;MAAEe;IAAc,CAAC,GAAG,IAAI,CAACzB,KAAK;IACpCyB,aAAa,CAAC,GAAAD,SAAO,CAAC;EACxB;EAEAE,MAAMA,CAAA,EAAiB;IACrB,IAAM;MACJC,QAAQ;MACRC,SAAS;MACTC,cAAc;MACdC,QAAQ;MACRC,SAAS;MACT5B,WAAW;MACX6B,UAAU;MACVC,cAAc;MACdC,UAAU;MACVC,WAAW;MACXjC,cAAc;MACdkC,gBAAgB;MAChBhC,UAAU;MACVC,UAAU;MACVC,WAAW;MAEX+B,iBAAiB;MACjBC,MAAM;MACNC,OAAO;MACPC,MAAM;MACNC,QAAQ;MACRC,MAAM;MACNC,SAAS;MACTC,UAAU;MACVC;IACF,CAAC,GAAG,IAAI,CAAC7C,KAAK;IAEd,IAAM;MACJc,mBAAmB;MACnBC,oBAAoB;MACpBE;IACF,CAAC,GAAG,IAAI,CAACL,KAAK;IACd,IAAMO,YAAY,GAAG,IAAI,CAACD,eAAe,CAAC,CAAC;IAC3C,IAAM4B,kBAAkB,GACtBV,gBAAgB,aAAhBA,gBAAgB,cAAhBA,gBAAgB,GAChB,IAAI,CAACW,yBAAyB,CAC5B7C,cAAc,EACdC,WAAW,EACXC,UAAU,EACVC,UAAU,EACVC,WACF,CAAC;IAEH,IAAM0C,iBAAiB,GAAG,CACxB;MACEC,KAAK,UAAA7B,MAAA,CAAUhB,UAAU,UAAO;MAChC8C,KAAK,EAAExD,cAAc,CAACyD,MAAM,CAACC,MAAM;MACnCC,KAAK,EAAE,EAAE;MACTC,MAAM,EAAE,IAAI,CAAC3C;IACf,CAAC,CACF;IAED,oBACErB,KAAA,CAAAiB,aAAA,CAACX,KAAK;MACJgC,SAAS,EAAEpC,UAAU,CAACoC,SAAS,EAAE;QAC/B2B,YAAY,EACVzC,mBAAmB,IAAIC,oBAAoB,IAAIkB,cAAc;QAC/DuB,QAAQ,EAAEvC;MACZ,CAAC,CAAE;MACHY,cAAc,EAAEA,cAAe;MAC/B1B,WAAW,EAAEA,WAAY;MACzB6B,UAAU,EAAEA,UAAW;MACvBK,iBAAiB,EAAEA,iBAAkB;MACrCC,MAAM,EAAEA,MAAO;MACfC,OAAO,EAAEA,OAAQ;MACjBC,MAAM,EAAEA,MAAO;MACfC,QAAQ,EAAEA,QAAS;MACnBC,MAAM,EAAEA,MAAO;MACfpB,cAAc,EAAE,IAAI,CAACd,mBAAoB;MACzCiB,aAAa,EAAE,IAAI,CAACf,mBAAoB;MACxCiC,SAAS,EAAEA,SAAU;MACrBC,UAAU,EAAEA,UAAW;MACvBC,YAAY,EAAEA,YAAa;MAC3BT,gBAAgB,EAAEU,kBAAmB;MACrC3B,YAAY,EAAEA,YAAa;MAC3BW,QAAQ,EAAEA,QAAS;MACnBC,SAAS,EAAEA,SAAU;MACrBG,UAAU,EAAEA,UAAW;MACvBC,WAAW,EAAEA,WAAY;MACzBa,iBAAiB,EAAEA;IAAkB,GAEpCrB,QAAQ,EACRV,eAAe,iBAAI3B,KAAA,CAAAiB,aAAA;MAAKqB,SAAS,EAAC;IAAsB,CAAE,CACtD,CAAC;EAEZ;AACF;AAAC3B,eAAA,CAxMKH,WAAW,kBACO;EACpB8B,SAAS,EAAE,EAAE;EACbT,YAAY,EAAE,IAAI;EAClBe,UAAU,EAAE,IAAI;EAChBD,cAAc,EAAE,KAAK;EACrBF,SAAS,EAAE,KAAK;EAChBD,QAAQ,EAAE,IAAI;EACdK,WAAW,EAAE,IAAI;EACjBjC,cAAc,EAAE,IAAI;EACpBG,UAAU,EAAE,QAAQ;EACpBD,UAAU,EAAE,QAAQ;EACpBgC,gBAAgB,EAAE,IAAI;EACtB9B,WAAW,EAAE,EAAE;EAEfiC,OAAO,EAAEA,CAAA,KAAYlB,SAAS;EAC9BmB,MAAM,EAAEA,CAAA,KAAYnB,SAAS;EAC7BiB,MAAM,EAAEA,CAAA,KAAYjB,SAAS;EAC7BgB,iBAAiB,EAAEA,CAAA,KAAYhB,SAAS;EACxCoB,QAAQ,EAAEA,CAAA,KAAYpB,SAAS;EAC/BC,cAAc,EAAEA,CAAA,KAAYD,SAAS;EACrCI,aAAa,EAAEA,CAAA,KAAYJ,SAAS;EACpCqB,MAAM,EAAEA,CAAA,KAAYrB,SAAS;EAC7BsB,SAAS,EAAEA,CAAA,KAAYtB,SAAS;EAChCuB,UAAU,EAAEA,CAAA,KAAYvB,SAAS;EACjCwB,YAAY,EAAEA,CAAA,KAAYxB;AAC5B,CAAC;AAgLH,eAAevB,WAAW"}
1
+ {"version":3,"file":"WidgetPanel.js","names":["React","PureComponent","classNames","memoize","ContextActions","copyToClipboard","Panel","WidgetPanelTooltip","WidgetPanel","constructor","props","showTabTooltip","glContainer","widgetType","widgetName","description","handleSessionClosed","bind","handleSessionOpened","handleCopyName","state","isClientDisconnected","isPanelDisconnected","isWidgetDisconnected","isWaitingForReconnect","isPanelInactive","getErrorMessage","errorMessage","undefined","onSessionClose","setState","onSessionOpen","render","children","className","componentPanel","isLoaded","isLoading","glEventHub","isDisconnected","isClonable","isRenamable","renderTabTooltip","onClearAllFilters","onHide","onFocus","onBlur","onResize","onShow","onTabBlur","onTabFocus","onTabClicked","doRenderTabTooltip","getCachedRenderTabTooltip","additionalActions","title","group","groups","medium","order","action","disconnected","inactive"],"sources":["../../src/panels/WidgetPanel.tsx"],"sourcesContent":["import React, {\n Component,\n PureComponent,\n ReactElement,\n ReactNode,\n} from 'react';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport type { Container, EventEmitter } from '@deephaven/golden-layout';\nimport { ContextActions } from '@deephaven/components';\nimport { copyToClipboard } from '@deephaven/utils';\nimport Panel from './Panel';\nimport WidgetPanelTooltip from './WidgetPanelTooltip';\nimport './WidgetPanel.scss';\n\ninterface WidgetPanelProps {\n children: ReactNode;\n componentPanel: Component;\n\n glContainer: Container;\n glEventHub: EventEmitter;\n\n className: string;\n errorMessage: string;\n isClonable: boolean;\n isDisconnected: boolean;\n isLoading: boolean;\n isLoaded: boolean;\n isRenamable: boolean;\n showTabTooltip: boolean;\n widgetName: string;\n widgetType: string;\n renderTabTooltip: () => ReactNode;\n description: string;\n\n onFocus: () => void;\n onBlur: () => void;\n onHide: () => void;\n onClearAllFilters: () => void;\n onResize: () => void;\n onSessionClose: (...args: unknown[]) => void;\n onSessionOpen: (...args: unknown[]) => void;\n onShow: () => void;\n onTabBlur: () => void;\n onTabFocus: () => void;\n onTabClicked: () => void;\n}\n\ninterface WidgetPanelState {\n isClientDisconnected: boolean;\n isPanelDisconnected: boolean;\n isWidgetDisconnected: boolean;\n isWaitingForReconnect: boolean;\n isPanelInactive: boolean;\n}\n/**\n * Widget panel component that has a loading spinner and displays an error message when set\n */\nclass WidgetPanel extends PureComponent<WidgetPanelProps, WidgetPanelState> {\n static defaultProps = {\n className: '',\n errorMessage: null,\n isClonable: true,\n isDisconnected: false,\n isLoading: false,\n isLoaded: true,\n isRenamable: true,\n showTabTooltip: true,\n widgetName: 'Widget',\n widgetType: 'Widget',\n renderTabTooltip: null,\n description: '',\n\n onFocus: (): void => undefined,\n onBlur: (): void => undefined,\n onHide: (): void => undefined,\n onClearAllFilters: (): void => undefined,\n onResize: (): void => undefined,\n onSessionClose: (): void => undefined,\n onSessionOpen: (): void => undefined,\n onShow: (): void => undefined,\n onTabBlur: (): void => undefined,\n onTabFocus: (): void => undefined,\n onTabClicked: (): void => undefined,\n };\n\n constructor(props: WidgetPanelProps) {\n super(props);\n\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n this.handleSessionOpened = this.handleSessionOpened.bind(this);\n this.handleCopyName = this.handleCopyName.bind(this);\n\n this.state = {\n isClientDisconnected: false,\n isPanelDisconnected: false,\n isWidgetDisconnected: false,\n isWaitingForReconnect: false,\n isPanelInactive: false,\n };\n }\n\n handleCopyName(): void {\n const { widgetName } = this.props;\n copyToClipboard(widgetName);\n }\n\n getErrorMessage(): string | undefined {\n const { errorMessage } = this.props;\n const {\n isClientDisconnected,\n isPanelDisconnected,\n isWidgetDisconnected,\n isWaitingForReconnect,\n } = this.state;\n if (errorMessage) {\n return `${errorMessage}`;\n }\n if (isClientDisconnected && isPanelDisconnected && isWaitingForReconnect) {\n return 'Disconnected from server.\\nCheck your internet connection.';\n }\n if (isClientDisconnected && isPanelDisconnected) {\n return 'Disconnected from server.';\n }\n if (isPanelDisconnected) {\n const { widgetName, widgetType } = this.props;\n return `Variable \"${widgetName}\" not set.\\n${widgetType} does not exist yet.`;\n }\n if (isWidgetDisconnected) {\n const { widgetName } = this.props;\n return `${widgetName} is unavailable.`;\n }\n return undefined;\n }\n\n getCachedRenderTabTooltip = memoize(\n (\n showTabTooltip: boolean,\n glContainer: Container,\n widgetType: string,\n widgetName: string,\n description: string\n ) =>\n showTabTooltip\n ? () => (\n <WidgetPanelTooltip\n glContainer={glContainer}\n widgetType={widgetType}\n widgetName={widgetName}\n description={description}\n />\n )\n : null\n );\n\n handleSessionClosed(...args: unknown[]): void {\n const { onSessionClose } = this.props;\n // The session has closed and we won't be able to reconnect, as this widget isn't persisted\n this.setState({\n isPanelDisconnected: true,\n isWaitingForReconnect: false,\n });\n onSessionClose(...args);\n }\n\n handleSessionOpened(...args: unknown[]): void {\n const { onSessionOpen } = this.props;\n onSessionOpen(...args);\n }\n\n render(): ReactElement {\n const {\n children,\n className,\n componentPanel,\n isLoaded,\n isLoading,\n glContainer,\n glEventHub,\n isDisconnected,\n isClonable,\n isRenamable,\n showTabTooltip,\n renderTabTooltip,\n widgetType,\n widgetName,\n description,\n\n onClearAllFilters,\n onHide,\n onFocus,\n onBlur,\n onResize,\n onShow,\n onTabBlur,\n onTabFocus,\n onTabClicked,\n } = this.props;\n\n const {\n isPanelDisconnected,\n isWidgetDisconnected,\n isPanelInactive,\n } = this.state;\n const errorMessage = this.getErrorMessage();\n const doRenderTabTooltip =\n renderTabTooltip ??\n this.getCachedRenderTabTooltip(\n showTabTooltip,\n glContainer,\n widgetType,\n widgetName,\n description\n );\n\n const additionalActions = [\n {\n title: `Copy ${widgetType} Name`,\n group: ContextActions.groups.medium,\n order: 20,\n action: this.handleCopyName,\n },\n ];\n\n return (\n <Panel\n className={classNames(className, {\n disconnected:\n isPanelDisconnected || isWidgetDisconnected || isDisconnected,\n inactive: isPanelInactive,\n })}\n componentPanel={componentPanel}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onClearAllFilters={onClearAllFilters}\n onHide={onHide}\n onFocus={onFocus}\n onBlur={onBlur}\n onResize={onResize}\n onShow={onShow}\n onSessionClose={this.handleSessionClosed}\n onSessionOpen={this.handleSessionOpened}\n onTabBlur={onTabBlur}\n onTabFocus={onTabFocus}\n onTabClicked={onTabClicked}\n renderTabTooltip={doRenderTabTooltip}\n errorMessage={errorMessage}\n isLoaded={isLoaded}\n isLoading={isLoading}\n isClonable={isClonable}\n isRenamable={isRenamable}\n additionalActions={additionalActions}\n >\n {children}\n {isPanelInactive && <div className=\"fill-parent-absolute\" />}\n </Panel>\n );\n }\n}\n\nexport default WidgetPanel;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetPanelTooltip.js","names":["React","PropTypes","CopyButton","GLPropTypes","LayoutUtils","WidgetPanelTooltip","props","widgetType","widgetName","glContainer","description","children","panelTitle","getTitleFromContainer","createElement","className","tooltip","copy","propTypes","Container","isRequired","string","node","defaultProps"],"sources":["../../src/panels/WidgetPanelTooltip.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport PropTypes from 'prop-types';\nimport { CopyButton } from '@deephaven/components';\nimport { GLPropTypes, LayoutUtils } from '@deephaven/dashboard';\nimport './WidgetPanelTooltip.scss';\nimport { ReactElement } from 'react-markdown';\nimport type { Container } from '@deephaven/golden-layout';\n\ninterface WidgetPanelTooltipProps {\n glContainer: Container;\n widgetType: string;\n widgetName: string;\n description: string;\n children: ReactNode;\n}\nfunction WidgetPanelTooltip(props: WidgetPanelTooltipProps): ReactElement {\n const { widgetType, widgetName, glContainer, description, children } = props;\n const panelTitle = LayoutUtils.getTitleFromContainer(glContainer);\n\n return (\n <div className=\"tab-tooltip-container\">\n <div className=\"row flex-nowrap align-items-start\">\n <span className=\"tab-tooltip-title\">\n <b>{widgetType} Name </b>\n </span>\n <span className=\"tab-tooltip-name\">{widgetName}</span>\n <CopyButton\n className=\"tab-tooltip-copy\"\n tooltip=\"Copy name\"\n copy={widgetName}\n />\n </div>\n {widgetName !== panelTitle && (\n <div className=\"row\">\n <span className=\"tab-tooltip-title\">\n <b>Display Name</b>\n </span>\n <span className=\"tab-tooltip-name\">{panelTitle}</span>\n </div>\n )}\n {description && (\n <div className=\"row\">\n <span className=\"tab-tooltip-description\">{description}</span>\n </div>\n )}\n {children}\n </div>\n );\n}\n\nWidgetPanelTooltip.propTypes = {\n glContainer: GLPropTypes.Container.isRequired,\n widgetType: PropTypes.string,\n widgetName: PropTypes.string,\n description: PropTypes.string,\n children: PropTypes.node,\n};\n\nWidgetPanelTooltip.defaultProps = {\n widgetType: '',\n widgetName: '',\n description: null,\n children: null,\n};\n\nexport default WidgetPanelTooltip;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAqB,OAAO;AACxC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,UAAU,QAAQ,uBAAuB;AAClD,SAASC,WAAW,EAAEC,WAAW,QAAQ,sBAAsB;AAAC;AAYhE,SAASC,kBAAkBA,CAACC,KAA8B,EAAgB;EACxE,IAAM;IAAEC,UAAU;IAAEC,UAAU;IAAEC,WAAW;IAAEC,WAAW;IAAEC;EAAS,CAAC,GAAGL,KAAK;EAC5E,IAAMM,UAAU,GAAGR,WAAW,CAACS,qBAAqB,CAACJ,WAAW,CAAC;EAEjE,oBACET,KAAA,CAAAc,aAAA;IAAKC,SAAS,EAAC;EAAuB,gBACpCf,KAAA,CAAAc,aAAA;IAAKC,SAAS,EAAC;EAAmC,gBAChDf,KAAA,CAAAc,aAAA;IAAMC,SAAS,EAAC;EAAmB,gBACjCf,KAAA,CAAAc,aAAA,YAAIP,UAAU,EAAC,QAAS,CACpB,CAAC,eACPP,KAAA,CAAAc,aAAA;IAAMC,SAAS,EAAC;EAAkB,GAAEP,UAAiB,CAAC,eACtDR,KAAA,CAAAc,aAAA,CAACZ,UAAU;IACTa,SAAS,EAAC,kBAAkB;IAC5BC,OAAO,EAAC,WAAW;IACnBC,IAAI,EAAET;EAAW,CAClB,CACE,CAAC,EACLA,UAAU,KAAKI,UAAU,iBACxBZ,KAAA,CAAAc,aAAA;IAAKC,SAAS,EAAC;EAAK,gBAClBf,KAAA,CAAAc,aAAA;IAAMC,SAAS,EAAC;EAAmB,gBACjCf,KAAA,CAAAc,aAAA,YAAG,cAAe,CACd,CAAC,eACPd,KAAA,CAAAc,aAAA;IAAMC,SAAS,EAAC;EAAkB,GAAEH,UAAiB,CAClD,CACN,EACAF,WAAW,iBACVV,KAAA,CAAAc,aAAA;IAAKC,SAAS,EAAC;EAAK,gBAClBf,KAAA,CAAAc,aAAA;IAAMC,SAAS,EAAC;EAAyB,GAAEL,WAAkB,CAC1D,CACN,EACAC,QACE,CAAC;AAEV;AAEAN,kBAAkB,CAACa,SAAS,GAAG;EAC7BT,WAAW,EAAEN,WAAW,CAACgB,SAAS,CAACC,UAAU;EAC7Cb,UAAU,EAAEN,SAAS,CAACoB,MAAM;EAC5Bb,UAAU,EAAEP,SAAS,CAACoB,MAAM;EAC5BX,WAAW,EAAET,SAAS,CAACoB,MAAM;EAC7BV,QAAQ,EAAEV,SAAS,CAACqB;AACtB,CAAC;AAEDjB,kBAAkB,CAACkB,YAAY,GAAG;EAChChB,UAAU,EAAE,EAAE;EACdC,UAAU,EAAE,EAAE;EACdE,WAAW,EAAE,IAAI;EACjBC,QAAQ,EAAE;AACZ,CAAC;AAED,eAAeN,kBAAkB"}
1
+ {"version":3,"file":"WidgetPanelTooltip.js","names":["React","PropTypes","CopyButton","GLPropTypes","LayoutUtils","WidgetPanelTooltip","props","widgetType","widgetName","glContainer","description","children","panelTitle","getTitleFromContainer","propTypes","Container","isRequired","string","node","defaultProps"],"sources":["../../src/panels/WidgetPanelTooltip.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport PropTypes from 'prop-types';\nimport { CopyButton } from '@deephaven/components';\nimport { GLPropTypes, LayoutUtils } from '@deephaven/dashboard';\nimport './WidgetPanelTooltip.scss';\nimport { ReactElement } from 'react-markdown';\nimport type { Container } from '@deephaven/golden-layout';\n\ninterface WidgetPanelTooltipProps {\n glContainer: Container;\n widgetType: string;\n widgetName: string;\n description: string;\n children: ReactNode;\n}\nfunction WidgetPanelTooltip(props: WidgetPanelTooltipProps): ReactElement {\n const { widgetType, widgetName, glContainer, description, children } = props;\n const panelTitle = LayoutUtils.getTitleFromContainer(glContainer);\n\n return (\n <div className=\"tab-tooltip-container\">\n <div className=\"row flex-nowrap align-items-start\">\n <span className=\"tab-tooltip-title\">\n <b>{widgetType} Name </b>\n </span>\n <span className=\"tab-tooltip-name\">{widgetName}</span>\n <CopyButton\n className=\"tab-tooltip-copy\"\n tooltip=\"Copy name\"\n copy={widgetName}\n />\n </div>\n {widgetName !== panelTitle && (\n <div className=\"row\">\n <span className=\"tab-tooltip-title\">\n <b>Display Name</b>\n </span>\n <span className=\"tab-tooltip-name\">{panelTitle}</span>\n </div>\n )}\n {description && (\n <div className=\"row\">\n <span className=\"tab-tooltip-description\">{description}</span>\n </div>\n )}\n {children}\n </div>\n );\n}\n\nWidgetPanelTooltip.propTypes = {\n glContainer: GLPropTypes.Container.isRequired,\n widgetType: PropTypes.string,\n widgetName: PropTypes.string,\n description: PropTypes.string,\n children: PropTypes.node,\n};\n\nWidgetPanelTooltip.defaultProps = {\n widgetType: '',\n widgetName: '',\n description: null,\n children: null,\n};\n\nexport default WidgetPanelTooltip;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAqB,OAAO;AACxC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,UAAU,QAAQ,uBAAuB;AAClD,SAASC,WAAW,EAAEC,WAAW,QAAQ,sBAAsB;AAAC;AAYhE,SAASC,kBAAkB,CAACC,KAA8B,EAAgB;EACxE,IAAM;IAAEC,UAAU;IAAEC,UAAU;IAAEC,WAAW;IAAEC,WAAW;IAAEC;EAAS,CAAC,GAAGL,KAAK;EAC5E,IAAMM,UAAU,GAAGR,WAAW,CAACS,qBAAqB,CAACJ,WAAW,CAAC;EAEjE,oBACE;IAAK,SAAS,EAAC;EAAuB,gBACpC;IAAK,SAAS,EAAC;EAAmC,gBAChD;IAAM,SAAS,EAAC;EAAmB,gBACjC,+BAAIF,UAAU,EAAC,QAAM,CAAI,CACpB,eACP;IAAM,SAAS,EAAC;EAAkB,GAAEC,UAAU,CAAQ,eACtD,oBAAC,UAAU;IACT,SAAS,EAAC,kBAAkB;IAC5B,OAAO,EAAC,WAAW;IACnB,IAAI,EAAEA;EAAW,EACjB,CACE,EACLA,UAAU,KAAKI,UAAU,iBACxB;IAAK,SAAS,EAAC;EAAK,gBAClB;IAAM,SAAS,EAAC;EAAmB,gBACjC,+BAAG,cAAY,CAAI,CACd,eACP;IAAM,SAAS,EAAC;EAAkB,GAAEA,UAAU,CAAQ,CAEzD,EACAF,WAAW,iBACV;IAAK,SAAS,EAAC;EAAK,gBAClB;IAAM,SAAS,EAAC;EAAyB,GAAEA,WAAW,CAAQ,CAEjE,EACAC,QAAQ,CACL;AAEV;AAEAN,kBAAkB,CAACS,SAAS,GAAG;EAC7BL,WAAW,EAAEN,WAAW,CAACY,SAAS,CAACC,UAAU;EAC7CT,UAAU,EAAEN,SAAS,CAACgB,MAAM;EAC5BT,UAAU,EAAEP,SAAS,CAACgB,MAAM;EAC5BP,WAAW,EAAET,SAAS,CAACgB,MAAM;EAC7BN,QAAQ,EAAEV,SAAS,CAACiB;AACtB,CAAC;AAEDb,kBAAkB,CAACc,YAAY,GAAG;EAChCZ,UAAU,EAAE,EAAE;EACdC,UAAU,EAAE,EAAE;EACdE,WAAW,EAAE,IAAI;EACjBC,QAAQ,EAAE;AACZ,CAAC;AAED,eAAeN,kBAAkB"}
@@ -1 +1 @@
1
- {"version":3,"file":"CommonPropTypes.js","names":["PropTypes","nullableBoolean","props","propName","bool","nullableString","string","CommonPropTypes","Object","freeze"],"sources":["../../src/prop-types/CommonPropTypes.ts"],"sourcesContent":["import PropTypes from 'prop-types';\n\nconst nullableBoolean = (props: Record<string, unknown>, propName: string) =>\n props[propName] === null ? null : PropTypes.bool;\n\nconst nullableString = (props: Record<string, unknown>, propName: string) =>\n props[propName] === null ? null : PropTypes.string;\n\nconst CommonPropTypes = Object.freeze({ nullableBoolean, nullableString });\n\nexport default CommonPropTypes;\n"],"mappings":"AAAA,OAAOA,SAAS,MAAM,YAAY;AAElC,IAAMC,eAAe,GAAGA,CAACC,KAA8B,EAAEC,QAAgB,KACvED,KAAK,CAACC,QAAQ,CAAC,KAAK,IAAI,GAAG,IAAI,GAAGH,SAAS,CAACI,IAAI;AAElD,IAAMC,cAAc,GAAGA,CAACH,KAA8B,EAAEC,QAAgB,KACtED,KAAK,CAACC,QAAQ,CAAC,KAAK,IAAI,GAAG,IAAI,GAAGH,SAAS,CAACM,MAAM;AAEpD,IAAMC,eAAe,GAAGC,MAAM,CAACC,MAAM,CAAC;EAAER,eAAe;EAAEI;AAAe,CAAC,CAAC;AAE1E,eAAeE,eAAe"}
1
+ {"version":3,"file":"CommonPropTypes.js","names":["PropTypes","nullableBoolean","props","propName","bool","nullableString","string","CommonPropTypes","Object","freeze"],"sources":["../../src/prop-types/CommonPropTypes.ts"],"sourcesContent":["import PropTypes from 'prop-types';\n\nconst nullableBoolean = (props: Record<string, unknown>, propName: string) =>\n props[propName] === null ? null : PropTypes.bool;\n\nconst nullableString = (props: Record<string, unknown>, propName: string) =>\n props[propName] === null ? null : PropTypes.string;\n\nconst CommonPropTypes = Object.freeze({ nullableBoolean, nullableString });\n\nexport default CommonPropTypes;\n"],"mappings":"AAAA,OAAOA,SAAS,MAAM,YAAY;AAElC,IAAMC,eAAe,GAAG,CAACC,KAA8B,EAAEC,QAAgB,KACvED,KAAK,CAACC,QAAQ,CAAC,KAAK,IAAI,GAAG,IAAI,GAAGH,SAAS,CAACI,IAAI;AAElD,IAAMC,cAAc,GAAG,CAACH,KAA8B,EAAEC,QAAgB,KACtED,KAAK,CAACC,QAAQ,CAAC,KAAK,IAAI,GAAG,IAAI,GAAGH,SAAS,CAACM,MAAM;AAEpD,IAAMC,eAAe,GAAGC,MAAM,CAACC,MAAM,CAAC;EAAER,eAAe;EAAEI;AAAe,CAAC,CAAC;AAE1E,eAAeE,eAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","names":["deepEqual","updateDashboardData","getLinksForDashboard","setDashboardConnection","id","connection","dispatch","setDashboardSessionWrapper","sessionWrapper","setDashboardLinks","links","addDashboardLinks","newLinks","getState","filtered","filter","newLink","findIndex","link","start","end","concat","deleteDashboardLinks","linkIds","includes","setDashboardIsolatedLinkerPanelId","isolatedLinkerPanelId","setDashboardColumnSelectionValidator","columnSelectionValidator","setDashboardConsoleSettings","consoleSettings","setDashboardFilterSets","filterSets"],"sources":["../../src/redux/actions.ts"],"sourcesContent":["import deepEqual from 'deep-equal';\nimport { ThunkAction } from 'redux-thunk';\nimport { updateDashboardData } from '@deephaven/dashboard';\nimport { SessionWrapper } from '@deephaven/jsapi-utils';\nimport { RootState } from '@deephaven/redux';\nimport { Action } from 'redux';\nimport { IdeConnection } from '@deephaven/jsapi-shim';\nimport { getLinksForDashboard } from './selectors';\nimport { FilterSet } from '../panels';\nimport { Link } from '../linker/LinkerUtils';\nimport { 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 id: string,\n connection: IdeConnection\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { connection }));\n\n/**\n * Set the session wrapper for the dashboard specified\n * @param id The ID of the dashboard to set the session for\n * @param sessionWrapper The session wrapper object to set for the dashboard\n */\nexport const setDashboardSessionWrapper = (\n id: string,\n sessionWrapper: SessionWrapper\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { sessionWrapper }));\n\n/**\n * Set the links for a given dashboard\n * @param id The ID of the dashboard to set the links for\n * @param links The links to set\n */\nexport const setDashboardLinks = (\n id: string,\n links: Link[]\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { links }));\n\n/**\n * Add links to the existing links in a dashboard. Filters out any duplicate links.\n * @param id The ID of the dashboard to add links to\n * @param newLinks The new links to add\n */\nexport const addDashboardLinks = (\n id: string,\n newLinks: Link[]\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => (\n dispatch,\n getState\n) => {\n const links = getLinksForDashboard(getState(), id);\n const filtered = newLinks.filter(\n newLink =>\n links.findIndex(\n link =>\n deepEqual(link.start, newLink.start) &&\n deepEqual(link.end, newLink.end)\n ) < 0\n );\n return dispatch(setDashboardLinks(id, links.concat(filtered)));\n};\n\n/**\n * Delete links from a dashboard\n * @param id The ID of the dashboard to delete links from\n * @param linkIds The link IDs to delete\n */\nexport const deleteDashboardLinks = (\n id: string,\n linkIds: string[]\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => (\n dispatch,\n getState\n) => {\n const links = getLinksForDashboard(getState(), id);\n const newLinks = links.filter(link => !linkIds.includes(link.id));\n return dispatch(setDashboardLinks(id, newLinks));\n};\n\n/**\n * Set the isolated linker panel ID for a dashboard\n * @param id The ID of the dashboard to set the isolated linker panel ID in\n * @param isolatedLinkerPanelId The isolated panel ID, or undefined to unset\n */\nexport const setDashboardIsolatedLinkerPanelId = (\n id: string,\n isolatedLinkerPanelId: string | string[] | undefined\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { isolatedLinkerPanelId }));\n\n/**\n * Set the column selection validator for a dashboard\n * @param id The ID of the dashboard to set the column selection validator on\n * @param columnSelectionValidator The column selection validator to set\n */\nexport const setDashboardColumnSelectionValidator = (\n id: string,\n columnSelectionValidator: ColumnSelectionValidator | undefined\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { columnSelectionValidator }));\n\n/**\n * Set the console settings for a dashboard\n * @param id The ID of the dashboard to set the console settings on\n * @param consoleSettings The console settings to set for the dashboard\n */\nexport const setDashboardConsoleSettings = (\n id: string,\n consoleSettings: Record<string, unknown>\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { consoleSettings }));\n\n/**\n * Set the filter sets for a specific dashboard\n * @param id The ID of the dashboard to set the filter sets for\n * @param filterSets The filter sets to set\n */\nexport const setDashboardFilterSets = (\n id: string,\n filterSets: FilterSet[]\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { filterSets }));\n"],"mappings":"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"}
1
+ {"version":3,"file":"actions.js","names":["deepEqual","updateDashboardData","getLinksForDashboard","setDashboardConnection","id","connection","dispatch","setDashboardSessionWrapper","sessionWrapper","setDashboardLinks","links","addDashboardLinks","newLinks","getState","filtered","filter","newLink","findIndex","link","start","end","concat","deleteDashboardLinks","linkIds","includes","setDashboardIsolatedLinkerPanelId","isolatedLinkerPanelId","setDashboardColumnSelectionValidator","columnSelectionValidator","setDashboardConsoleSettings","consoleSettings","setDashboardFilterSets","filterSets"],"sources":["../../src/redux/actions.ts"],"sourcesContent":["import deepEqual from 'deep-equal';\nimport { ThunkAction } from 'redux-thunk';\nimport { updateDashboardData } from '@deephaven/dashboard';\nimport { SessionWrapper } from '@deephaven/jsapi-utils';\nimport { RootState } from '@deephaven/redux';\nimport { Action } from 'redux';\nimport { IdeConnection } from '@deephaven/jsapi-shim';\nimport { getLinksForDashboard } from './selectors';\nimport { FilterSet } from '../panels';\nimport { Link } from '../linker/LinkerUtils';\nimport { 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 id: string,\n connection: IdeConnection\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { connection }));\n\n/**\n * Set the session wrapper for the dashboard specified\n * @param id The ID of the dashboard to set the session for\n * @param sessionWrapper The session wrapper object to set for the dashboard\n */\nexport const setDashboardSessionWrapper = (\n id: string,\n sessionWrapper: SessionWrapper\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { sessionWrapper }));\n\n/**\n * Set the links for a given dashboard\n * @param id The ID of the dashboard to set the links for\n * @param links The links to set\n */\nexport const setDashboardLinks = (\n id: string,\n links: Link[]\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { links }));\n\n/**\n * Add links to the existing links in a dashboard. Filters out any duplicate links.\n * @param id The ID of the dashboard to add links to\n * @param newLinks The new links to add\n */\nexport const addDashboardLinks = (\n id: string,\n newLinks: Link[]\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => (\n dispatch,\n getState\n) => {\n const links = getLinksForDashboard(getState(), id);\n const filtered = newLinks.filter(\n newLink =>\n links.findIndex(\n link =>\n deepEqual(link.start, newLink.start) &&\n deepEqual(link.end, newLink.end)\n ) < 0\n );\n return dispatch(setDashboardLinks(id, links.concat(filtered)));\n};\n\n/**\n * Delete links from a dashboard\n * @param id The ID of the dashboard to delete links from\n * @param linkIds The link IDs to delete\n */\nexport const deleteDashboardLinks = (\n id: string,\n linkIds: string[]\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => (\n dispatch,\n getState\n) => {\n const links = getLinksForDashboard(getState(), id);\n const newLinks = links.filter(link => !linkIds.includes(link.id));\n return dispatch(setDashboardLinks(id, newLinks));\n};\n\n/**\n * Set the isolated linker panel ID for a dashboard\n * @param id The ID of the dashboard to set the isolated linker panel ID in\n * @param isolatedLinkerPanelId The isolated panel ID, or undefined to unset\n */\nexport const setDashboardIsolatedLinkerPanelId = (\n id: string,\n isolatedLinkerPanelId: string | string[] | undefined\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { isolatedLinkerPanelId }));\n\n/**\n * Set the column selection validator for a dashboard\n * @param id The ID of the dashboard to set the column selection validator on\n * @param columnSelectionValidator The column selection validator to set\n */\nexport const setDashboardColumnSelectionValidator = (\n id: string,\n columnSelectionValidator: ColumnSelectionValidator | undefined\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { columnSelectionValidator }));\n\n/**\n * Set the console settings for a dashboard\n * @param id The ID of the dashboard to set the console settings on\n * @param consoleSettings The console settings to set for the dashboard\n */\nexport const setDashboardConsoleSettings = (\n id: string,\n consoleSettings: Record<string, unknown>\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { consoleSettings }));\n\n/**\n * Set the filter sets for a specific dashboard\n * @param id The ID of the dashboard to set the filter sets for\n * @param filterSets The filter sets to set\n */\nexport const setDashboardFilterSets = (\n id: string,\n filterSets: FilterSet[]\n): ThunkAction<unknown, RootState, undefined, Action<unknown>> => dispatch =>\n dispatch(updateDashboardData(id, { filterSets }));\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["reducerRegistry","reducers","Object","entries","map","_ref","name","reducer","register"],"sources":["../../src/redux/index.ts"],"sourcesContent":["import { reducerRegistry } from '@deephaven/redux';\nimport reducers from './reducers';\n\nObject.entries(reducers).map(([name, reducer]) =>\n reducerRegistry.register(name, reducer)\n);\n\nexport * from './actions';\nexport * from './actionTypes';\nexport * from './selectors';\n"],"mappings":"AAAA,SAASA,eAAe,QAAQ,kBAAkB;AAAC,OAC5CC,QAAQ;AAEfC,MAAM,CAACC,OAAO,CAACF,QAAQ,CAAC,CAACG,GAAG,CAACC,IAAA;EAAA,IAAC,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAAF,IAAA;EAAA,OAC3CL,eAAe,CAACQ,QAAQ,CAACF,IAAI,EAAEC,OAAO,CAAC;AAAA,CACzC,CAAC;AAAC;AAAA;AAAA"}
1
+ {"version":3,"file":"index.js","names":["reducerRegistry","reducers","Object","entries","map","name","reducer","register"],"sources":["../../src/redux/index.ts"],"sourcesContent":["import { reducerRegistry } from '@deephaven/redux';\nimport reducers from './reducers';\n\nObject.entries(reducers).map(([name, reducer]) =>\n reducerRegistry.register(name, reducer)\n);\n\nexport * from './actions';\nexport * from './actionTypes';\nexport * from './selectors';\n"],"mappings":"AAAA,SAASA,eAAe,QAAQ,kBAAkB;AAAC,OAC5CC,QAAQ;AAEfC,MAAM,CAACC,OAAO,CAACF,QAAQ,CAAC,CAACG,GAAG,CAAC;EAAA,IAAC,CAACC,IAAI,EAAEC,OAAO,CAAC;EAAA,OAC3CN,eAAe,CAACO,QAAQ,CAACF,IAAI,EAAEC,OAAO,CAAC;AAAA,EACxC;AAAC;AAAA;AAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"selectors.js","names":["getDashboardData","EMPTY_MAP","Map","EMPTY_ARRAY","Object","freeze","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","consoleSettings","getDashboardConnection","connection","getDashboardSessionWrapper","sessionWrapper"],"sources":["../../src/redux/selectors.ts"],"sourcesContent":["import { getDashboardData } from '@deephaven/dashboard';\nimport { Column, IdeConnection, Table } from '@deephaven/jsapi-shim';\nimport { SessionWrapper } from '@deephaven/jsapi-utils';\nimport { RootState } from '@deephaven/redux';\nimport { FilterChangeEvent } from '../FilterPlugin';\nimport { Link } from '../linker/LinkerUtils';\nimport { FilterSet } from '../panels';\nimport { ColumnSelectionValidator } from '../linker/ColumnSelectionValidator';\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): Column[] =>\n (getDashboardData(store, dashboardId).columns ?? EMPTY_ARRAY) as 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, Table> =>\n (getDashboardData(store, dashboardId).tableMap ?? EMPTY_MAP) as Map<\n string,\n 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 as Record<\n string,\n unknown\n >;\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): IdeConnection =>\n getDashboardData(store, dashboardId).connection as IdeConnection;\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 =>\n getDashboardData(store, dashboardId).sessionWrapper as SessionWrapper;\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,sBAAsB;AASvD,IAAMC,SAAS,GAAG,IAAIC,GAAG,CAAC,CAAC;AAE3B,IAAMC,WAAW,GAAGC,MAAM,CAACC,MAAM,CAAC,EAAE,CAAC;;AAErC;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,sBAAsB,GAAGA,CACpCC,KAAgB,EAChBC,WAAmB;EAAA,IAAAC,qBAAA;EAAA,QAAAA,qBAAA,GAElBT,gBAAgB,CAACO,KAAK,EAAEC,WAAW,CAAC,CAACE,OAAO,cAAAD,qBAAA,cAAAA,qBAAA,GAAIN,WAAW;AAAA,CAAa;;AAE3E;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMQ,yBAAyB,GAAGA,CACvCJ,KAAgB,EAChBC,WAAmB;EAAA,IAAAI,qBAAA;EAAA,QAAAA,qBAAA,GAElBZ,gBAAgB,CAACO,KAAK,EAAEC,WAAW,CAAC,CAACK,UAAU,cAAAD,qBAAA,cAAAA,qBAAA,GAC9CT,WAAW;AAAA,CAAgB;;AAE/B;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMW,2BAA2B,GAAGA,CACzCP,KAAgB,EAChBC,WAAmB;EAAA,IAAAO,sBAAA;EAAA,QAAAA,sBAAA,GAElBf,gBAAgB,CAACO,KAAK,EAAEC,WAAW,CAAC,CAACQ,OAAO,cAAAD,sBAAA,cAAAA,sBAAA,GAC3CZ,WAAW;AAAA,CAAwB;;AAEvC;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMc,uBAAuB,GAAGA,CACrCV,KAAgB,EAChBC,WAAmB;EAAA,IAAAU,qBAAA;EAAA,QAAAA,qBAAA,GAElBlB,gBAAgB,CAACO,KAAK,EAAEC,WAAW,CAAC,CAACW,QAAQ,cAAAD,qBAAA,cAAAA,qBAAA,GAAIjB,SAAS;AAAA,CAG1D;;AAEH;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMmB,oCAAoC,GAAGA,CAClDb,KAAgB,EAChBC,WAAmB,KAEnBR,gBAAgB,CAACO,KAAK,EAAEC,WAAW,CAAC,CAACa,qBAExB;;AAEf;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,oBAAoB,GAAGA,CAClCf,KAAgB,EAChBC,WAAmB;EAAA,IAAAe,qBAAA;EAAA,QAAAA,qBAAA,GAElBvB,gBAAgB,CAACO,KAAK,EAAEC,WAAW,CAAC,CAACgB,KAAK,cAAAD,qBAAA,cAAAA,qBAAA,GAAIpB,WAAW;AAAA,CAAW;;AAEvE;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMsB,uCAAuC,GAAGA,CACrDlB,KAAgB,EAChBC,WAAmB,KAEnBR,gBAAgB,CAACO,KAAK,EAAEC,WAAW,CAAC,CAACkB,wBAExB;;AAEf;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,2BAA2B,GAAGA,CACzCpB,KAAgB,EAChBC,WAAmB,KAEnBR,gBAAgB,CAACO,KAAK,EAAEC,WAAW,CAAC,CAACoB,eAGpC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,sBAAsB,GAAGA,CACpCtB,KAAgB,EAChBC,WAAmB,KAEnBR,gBAAgB,CAACO,KAAK,EAAEC,WAAW,CAAC,CAACsB,UAA2B;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,0BAA0B,GAAGA,CACxCxB,KAAgB,EAChBC,WAAmB,KAEnBR,gBAAgB,CAACO,KAAK,EAAEC,WAAW,CAAC,CAACwB,cAAgC"}
1
+ {"version":3,"file":"selectors.js","names":["getDashboardData","EMPTY_MAP","Map","EMPTY_ARRAY","Object","freeze","getColumnsForDashboard","store","dashboardId","columns","getFilterSetsForDashboard","filterSets","getInputFiltersForDashboard","filters","getTableMapForDashboard","tableMap","getIsolatedLinkerPanelIdForDashboard","isolatedLinkerPanelId","getLinksForDashboard","links","getColumnSelectionValidatorForDashboard","columnSelectionValidator","getDashboardConsoleSettings","consoleSettings","getDashboardConnection","connection","getDashboardSessionWrapper","sessionWrapper"],"sources":["../../src/redux/selectors.ts"],"sourcesContent":["import { getDashboardData } from '@deephaven/dashboard';\nimport { Column, IdeConnection, Table } from '@deephaven/jsapi-shim';\nimport { SessionWrapper } from '@deephaven/jsapi-utils';\nimport { RootState } from '@deephaven/redux';\nimport { FilterChangeEvent } from '../FilterPlugin';\nimport { Link } from '../linker/LinkerUtils';\nimport { FilterSet } from '../panels';\nimport { ColumnSelectionValidator } from '../linker/ColumnSelectionValidator';\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): Column[] =>\n (getDashboardData(store, dashboardId).columns ?? EMPTY_ARRAY) as 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, Table> =>\n (getDashboardData(store, dashboardId).tableMap ?? EMPTY_MAP) as Map<\n string,\n 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 as Record<\n string,\n unknown\n >;\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): IdeConnection =>\n getDashboardData(store, dashboardId).connection as IdeConnection;\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 =>\n getDashboardData(store, dashboardId).sessionWrapper as SessionWrapper;\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,sBAAsB;AASvD,IAAMC,SAAS,GAAG,IAAIC,GAAG,EAAE;AAE3B,IAAMC,WAAW,GAAGC,MAAM,CAACC,MAAM,CAAC,EAAE,CAAC;;AAErC;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,sBAAsB,GAAG,CACpCC,KAAgB,EAChBC,WAAmB;EAAA;EAAA,gCAElBR,gBAAgB,CAACO,KAAK,EAAEC,WAAW,CAAC,CAACC,OAAO,yEAAIN,WAAW;AAAA,CAAa;;AAE3E;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMO,yBAAyB,GAAG,CACvCH,KAAgB,EAChBC,WAAmB;EAAA;EAAA,gCAElBR,gBAAgB,CAACO,KAAK,EAAEC,WAAW,CAAC,CAACG,UAAU,yEAC9CR,WAAW;AAAA,CAAgB;;AAE/B;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMS,2BAA2B,GAAG,CACzCL,KAAgB,EAChBC,WAAmB;EAAA;EAAA,iCAElBR,gBAAgB,CAACO,KAAK,EAAEC,WAAW,CAAC,CAACK,OAAO,2EAC3CV,WAAW;AAAA,CAAwB;;AAEvC;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMW,uBAAuB,GAAG,CACrCP,KAAgB,EAChBC,WAAmB;EAAA;EAAA,gCAElBR,gBAAgB,CAACO,KAAK,EAAEC,WAAW,CAAC,CAACO,QAAQ,yEAAId,SAAS;AAAA,CAG1D;;AAEH;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMe,oCAAoC,GAAG,CAClDT,KAAgB,EAChBC,WAAmB,KAEnBR,gBAAgB,CAACO,KAAK,EAAEC,WAAW,CAAC,CAACS,qBAExB;;AAEf;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,oBAAoB,GAAG,CAClCX,KAAgB,EAChBC,WAAmB;EAAA;EAAA,gCAElBR,gBAAgB,CAACO,KAAK,EAAEC,WAAW,CAAC,CAACW,KAAK,yEAAIhB,WAAW;AAAA,CAAW;;AAEvE;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMiB,uCAAuC,GAAG,CACrDb,KAAgB,EAChBC,WAAmB,KAEnBR,gBAAgB,CAACO,KAAK,EAAEC,WAAW,CAAC,CAACa,wBAExB;;AAEf;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,2BAA2B,GAAG,CACzCf,KAAgB,EAChBC,WAAmB,KAEnBR,gBAAgB,CAACO,KAAK,EAAEC,WAAW,CAAC,CAACe,eAGpC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,sBAAsB,GAAG,CACpCjB,KAAgB,EAChBC,WAAmB,KAEnBR,gBAAgB,CAACO,KAAK,EAAEC,WAAW,CAAC,CAACiB,UAA2B;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,0BAA0B,GAAG,CACxCnB,KAAgB,EAChBC,WAAmB,KAEnBR,gBAAgB,CAACO,KAAK,EAAEC,WAAW,CAAC,CAACmB,cAAgC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/dashboard-core-plugins",
3
- "version": "0.37.4-logout.17+a5bc3af7",
3
+ "version": "0.37.4-logout.21+ae439be8",
4
4
  "description": "Deephaven Dashboard Core Plugins",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -22,23 +22,23 @@
22
22
  "build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
23
23
  },
24
24
  "dependencies": {
25
- "@deephaven/chart": "^0.37.4-logout.17+a5bc3af7",
26
- "@deephaven/components": "^0.37.4-logout.17+a5bc3af7",
27
- "@deephaven/console": "^0.37.4-logout.17+a5bc3af7",
28
- "@deephaven/dashboard": "^0.37.4-logout.17+a5bc3af7",
29
- "@deephaven/file-explorer": "^0.37.4-logout.17+a5bc3af7",
30
- "@deephaven/filters": "^0.37.4-logout.17+a5bc3af7",
31
- "@deephaven/golden-layout": "^0.37.4-logout.17+a5bc3af7",
32
- "@deephaven/grid": "^0.37.4-logout.17+a5bc3af7",
33
- "@deephaven/icons": "^0.37.4-logout.17+a5bc3af7",
34
- "@deephaven/iris-grid": "^0.37.4-logout.17+a5bc3af7",
35
- "@deephaven/jsapi-shim": "^0.37.4-logout.17+a5bc3af7",
36
- "@deephaven/jsapi-utils": "^0.37.4-logout.17+a5bc3af7",
37
- "@deephaven/log": "^0.37.4-logout.17+a5bc3af7",
38
- "@deephaven/react-hooks": "^0.37.4-logout.17+a5bc3af7",
39
- "@deephaven/redux": "^0.37.4-logout.17+a5bc3af7",
40
- "@deephaven/storage": "^0.37.4-logout.17+a5bc3af7",
41
- "@deephaven/utils": "^0.37.4-logout.17+a5bc3af7",
25
+ "@deephaven/chart": "^0.37.4-logout.21+ae439be8",
26
+ "@deephaven/components": "^0.37.4-logout.21+ae439be8",
27
+ "@deephaven/console": "^0.37.4-logout.21+ae439be8",
28
+ "@deephaven/dashboard": "^0.37.4-logout.21+ae439be8",
29
+ "@deephaven/file-explorer": "^0.37.4-logout.21+ae439be8",
30
+ "@deephaven/filters": "^0.37.4-logout.21+ae439be8",
31
+ "@deephaven/golden-layout": "^0.37.4-logout.21+ae439be8",
32
+ "@deephaven/grid": "^0.37.4-logout.21+ae439be8",
33
+ "@deephaven/icons": "^0.37.4-logout.21+ae439be8",
34
+ "@deephaven/iris-grid": "^0.37.4-logout.21+ae439be8",
35
+ "@deephaven/jsapi-shim": "^0.37.4-logout.21+ae439be8",
36
+ "@deephaven/jsapi-utils": "^0.37.4-logout.21+ae439be8",
37
+ "@deephaven/log": "^0.37.4-logout.21+ae439be8",
38
+ "@deephaven/react-hooks": "^0.37.4-logout.21+ae439be8",
39
+ "@deephaven/redux": "^0.37.4-logout.21+ae439be8",
40
+ "@deephaven/storage": "^0.37.4-logout.21+ae439be8",
41
+ "@deephaven/utils": "^0.37.4-logout.21+ae439be8",
42
42
  "@fortawesome/react-fontawesome": "^0.2.0",
43
43
  "classnames": "^2.3.1",
44
44
  "deep-equal": "^2.0.5",
@@ -61,8 +61,8 @@
61
61
  "react-redux": "^7.2.4"
62
62
  },
63
63
  "devDependencies": {
64
- "@deephaven/mocks": "^0.37.4-logout.17+a5bc3af7",
65
- "@deephaven/tsconfig": "^0.37.4-logout.17+a5bc3af7"
64
+ "@deephaven/mocks": "^0.37.4-logout.21+ae439be8",
65
+ "@deephaven/tsconfig": "^0.37.4-logout.21+ae439be8"
66
66
  },
67
67
  "files": [
68
68
  "dist"
@@ -73,5 +73,5 @@
73
73
  "publishConfig": {
74
74
  "access": "public"
75
75
  },
76
- "gitHead": "a5bc3af798e649c843c13f585b76e8d5449c9fa7"
76
+ "gitHead": "ae439be89da6d61abc3e6f86ec734ddda74e67e3"
77
77
  }