@deephaven/dashboard-core-plugins 0.94.0 → 0.95.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/dist/ChartBuilderPlugin.d.ts +1 -1
  2. package/dist/ChartBuilderPlugin.d.ts.map +1 -1
  3. package/dist/ChartBuilderPlugin.js.map +1 -1
  4. package/dist/ChartBuilderPluginConfig.d.ts +1 -1
  5. package/dist/ChartBuilderPluginConfig.d.ts.map +1 -1
  6. package/dist/ChartBuilderPluginConfig.js.map +1 -1
  7. package/dist/ChartPanelPlugin.d.ts +1 -1
  8. package/dist/ChartPanelPlugin.d.ts.map +1 -1
  9. package/dist/ChartPanelPlugin.js.map +1 -1
  10. package/dist/ChartWidgetPlugin.js.map +1 -1
  11. package/dist/ConsolePlugin.d.ts +1 -1
  12. package/dist/ConsolePlugin.d.ts.map +1 -1
  13. package/dist/ConsolePlugin.js.map +1 -1
  14. package/dist/FilterPlugin.d.ts +1 -1
  15. package/dist/FilterPlugin.d.ts.map +1 -1
  16. package/dist/FilterPlugin.js.map +1 -1
  17. package/dist/FilterPluginConfig.d.ts +1 -1
  18. package/dist/FilterPluginConfig.d.ts.map +1 -1
  19. package/dist/FilterPluginConfig.js.map +1 -1
  20. package/dist/GridPanelPlugin.d.ts +1 -1
  21. package/dist/GridPanelPlugin.d.ts.map +1 -1
  22. package/dist/GridPanelPlugin.js.map +1 -1
  23. package/dist/GridPluginConfig.d.ts +1 -1
  24. package/dist/GridPluginConfig.d.ts.map +1 -1
  25. package/dist/GridPluginConfig.js.map +1 -1
  26. package/dist/GridWidgetPlugin.js.map +1 -1
  27. package/dist/LinkerPlugin.d.ts +1 -1
  28. package/dist/LinkerPlugin.d.ts.map +1 -1
  29. package/dist/LinkerPlugin.js.map +1 -1
  30. package/dist/LinkerPluginConfig.d.ts +1 -1
  31. package/dist/LinkerPluginConfig.d.ts.map +1 -1
  32. package/dist/LinkerPluginConfig.js.map +1 -1
  33. package/dist/MarkdownPlugin.d.ts +1 -1
  34. package/dist/MarkdownPlugin.d.ts.map +1 -1
  35. package/dist/MarkdownPlugin.js.map +1 -1
  36. package/dist/MarkdownPluginConfig.d.ts +1 -1
  37. package/dist/MarkdownPluginConfig.d.ts.map +1 -1
  38. package/dist/MarkdownPluginConfig.js.map +1 -1
  39. package/dist/PandasPanelPlugin.d.ts +1 -1
  40. package/dist/PandasPanelPlugin.d.ts.map +1 -1
  41. package/dist/PandasPanelPlugin.js.map +1 -1
  42. package/dist/PandasPluginConfig.d.ts +1 -1
  43. package/dist/PandasPluginConfig.d.ts.map +1 -1
  44. package/dist/PandasPluginConfig.js.map +1 -1
  45. package/dist/PandasWidgetPlugin.d.ts +1 -1
  46. package/dist/PandasWidgetPlugin.d.ts.map +1 -1
  47. package/dist/PandasWidgetPlugin.js.map +1 -1
  48. package/dist/WidgetLoaderPlugin.d.ts +1 -1
  49. package/dist/WidgetLoaderPlugin.d.ts.map +1 -1
  50. package/dist/WidgetLoaderPlugin.js.map +1 -1
  51. package/dist/WidgetLoaderPluginConfig.d.ts +1 -1
  52. package/dist/WidgetLoaderPluginConfig.d.ts.map +1 -1
  53. package/dist/WidgetLoaderPluginConfig.js.map +1 -1
  54. package/dist/controls/dropdown-filter/DropdownFilter.d.ts +2 -2
  55. package/dist/controls/dropdown-filter/DropdownFilter.d.ts.map +1 -1
  56. package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
  57. package/dist/controls/input-filter/InputFilter.d.ts +1 -1
  58. package/dist/controls/input-filter/InputFilter.d.ts.map +1 -1
  59. package/dist/controls/input-filter/InputFilter.js.map +1 -1
  60. package/dist/controls/markdown/MarkdownContainer.d.ts +1 -1
  61. package/dist/controls/markdown/MarkdownContainer.d.ts.map +1 -1
  62. package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
  63. package/dist/controls/markdown/MarkdownEditor.d.ts +1 -1
  64. package/dist/controls/markdown/MarkdownEditor.d.ts.map +1 -1
  65. package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
  66. package/dist/controls/markdown/MarkdownStartPage.d.ts +1 -1
  67. package/dist/controls/markdown/MarkdownStartPage.d.ts.map +1 -1
  68. package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
  69. package/dist/controls/markdown/MarkdownUtils.d.ts +1 -1
  70. package/dist/controls/markdown/MarkdownUtils.d.ts.map +1 -1
  71. package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
  72. package/dist/events/IrisGridEvent.d.ts +2 -2
  73. package/dist/events/IrisGridEvent.d.ts.map +1 -1
  74. package/dist/events/IrisGridEvent.js.map +1 -1
  75. package/dist/events/TabEventMap.d.ts +2 -2
  76. package/dist/events/TabEventMap.d.ts.map +1 -1
  77. package/dist/events/TabEventMap.js +1 -1
  78. package/dist/events/TabEventMap.js.map +1 -1
  79. package/dist/linker/ColumnSelectionValidator.d.ts +2 -2
  80. package/dist/linker/ColumnSelectionValidator.d.ts.map +1 -1
  81. package/dist/linker/ColumnSelectionValidator.js.map +1 -1
  82. package/dist/linker/Linker.d.ts +5 -5
  83. package/dist/linker/Linker.d.ts.map +1 -1
  84. package/dist/linker/Linker.js.map +1 -1
  85. package/dist/linker/LinkerLink.d.ts +4 -4
  86. package/dist/linker/LinkerLink.d.ts.map +1 -1
  87. package/dist/linker/LinkerLink.js.map +1 -1
  88. package/dist/linker/LinkerOverlayContent.d.ts +4 -4
  89. package/dist/linker/LinkerOverlayContent.d.ts.map +1 -1
  90. package/dist/linker/LinkerOverlayContent.js.map +1 -1
  91. package/dist/linker/LinkerUtils.d.ts +2 -2
  92. package/dist/linker/LinkerUtils.d.ts.map +1 -1
  93. package/dist/linker/LinkerUtils.js.map +1 -1
  94. package/dist/panels/ChartColumnSelectorOverlay.d.ts +1 -1
  95. package/dist/panels/ChartColumnSelectorOverlay.d.ts.map +1 -1
  96. package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
  97. package/dist/panels/ChartFilterOverlay.d.ts +2 -2
  98. package/dist/panels/ChartFilterOverlay.d.ts.map +1 -1
  99. package/dist/panels/ChartFilterOverlay.js.map +1 -1
  100. package/dist/panels/ChartPanel.d.ts +10 -10
  101. package/dist/panels/ChartPanel.d.ts.map +1 -1
  102. package/dist/panels/ChartPanel.js +2 -1
  103. package/dist/panels/ChartPanel.js.map +1 -1
  104. package/dist/panels/ChartPanelUtils.d.ts +1 -1
  105. package/dist/panels/ChartPanelUtils.d.ts.map +1 -1
  106. package/dist/panels/ChartPanelUtils.js.map +1 -1
  107. package/dist/panels/CommandHistoryPanel.d.ts +4 -4
  108. package/dist/panels/CommandHistoryPanel.d.ts.map +1 -1
  109. package/dist/panels/CommandHistoryPanel.js.map +1 -1
  110. package/dist/panels/ConsolePanel.d.ts +4 -4
  111. package/dist/panels/ConsolePanel.d.ts.map +1 -1
  112. package/dist/panels/ConsolePanel.js.map +1 -1
  113. package/dist/panels/DropdownFilterPanel.d.ts +7 -7
  114. package/dist/panels/DropdownFilterPanel.d.ts.map +1 -1
  115. package/dist/panels/DropdownFilterPanel.js.map +1 -1
  116. package/dist/panels/FileExplorerPanel.d.ts +4 -4
  117. package/dist/panels/FileExplorerPanel.d.ts.map +1 -1
  118. package/dist/panels/FileExplorerPanel.js.map +1 -1
  119. package/dist/panels/FilterSetManager.d.ts +1 -1
  120. package/dist/panels/FilterSetManager.d.ts.map +1 -1
  121. package/dist/panels/FilterSetManager.js.map +1 -1
  122. package/dist/panels/FilterSetManagerPanel.d.ts +6 -6
  123. package/dist/panels/FilterSetManagerPanel.d.ts.map +1 -1
  124. package/dist/panels/FilterSetManagerPanel.js.map +1 -1
  125. package/dist/panels/InputFilterPanel.d.ts +2 -2
  126. package/dist/panels/InputFilterPanel.d.ts.map +1 -1
  127. package/dist/panels/InputFilterPanel.js.map +1 -1
  128. package/dist/panels/IrisGridPanel.d.ts +10 -10
  129. package/dist/panels/IrisGridPanel.d.ts.map +1 -1
  130. package/dist/panels/IrisGridPanel.js +2 -1
  131. package/dist/panels/IrisGridPanel.js.map +1 -1
  132. package/dist/panels/IrisGridPanelTooltip.d.ts +3 -3
  133. package/dist/panels/IrisGridPanelTooltip.d.ts.map +1 -1
  134. package/dist/panels/IrisGridPanelTooltip.js.map +1 -1
  135. package/dist/panels/IrisGridPanelTypes.d.ts +1 -1
  136. package/dist/panels/IrisGridPanelTypes.d.ts.map +1 -1
  137. package/dist/panels/IrisGridPanelTypes.js.map +1 -1
  138. package/dist/panels/LogPanel.d.ts +1 -1
  139. package/dist/panels/LogPanel.d.ts.map +1 -1
  140. package/dist/panels/LogPanel.js.map +1 -1
  141. package/dist/panels/MarkdownNotebook.d.ts +3 -3
  142. package/dist/panels/MarkdownNotebook.d.ts.map +1 -1
  143. package/dist/panels/MarkdownNotebook.js.map +1 -1
  144. package/dist/panels/MarkdownPanel.d.ts +2 -2
  145. package/dist/panels/MarkdownPanel.d.ts.map +1 -1
  146. package/dist/panels/MarkdownPanel.js.map +1 -1
  147. package/dist/panels/MockFileStorage.d.ts +1 -1
  148. package/dist/panels/MockFileStorage.d.ts.map +1 -1
  149. package/dist/panels/MockFileStorage.js.map +1 -1
  150. package/dist/panels/MockFileStorageTable.d.ts +2 -2
  151. package/dist/panels/MockFileStorageTable.d.ts.map +1 -1
  152. package/dist/panels/MockFileStorageTable.js.map +1 -1
  153. package/dist/panels/NotebookPanel.d.ts +5 -5
  154. package/dist/panels/NotebookPanel.d.ts.map +1 -1
  155. package/dist/panels/NotebookPanel.js.map +1 -1
  156. package/dist/panels/PandasPanel.d.ts +1 -1
  157. package/dist/panels/PandasPanel.d.ts.map +1 -1
  158. package/dist/panels/PandasPanel.js.map +1 -1
  159. package/dist/panels/Panel.d.ts +4 -4
  160. package/dist/panels/Panel.d.ts.map +1 -1
  161. package/dist/panels/Panel.js.map +1 -1
  162. package/dist/panels/PanelContextMenu.d.ts +4 -4
  163. package/dist/panels/PanelContextMenu.d.ts.map +1 -1
  164. package/dist/panels/PanelContextMenu.js.map +1 -1
  165. package/dist/panels/RenameDialog.d.ts +1 -1
  166. package/dist/panels/RenameDialog.d.ts.map +1 -1
  167. package/dist/panels/RenameDialog.js.map +1 -1
  168. package/dist/panels/WidgetPanel.d.ts +2 -2
  169. package/dist/panels/WidgetPanel.d.ts.map +1 -1
  170. package/dist/panels/WidgetPanel.js.map +1 -1
  171. package/dist/panels/WidgetPanelTooltip.css +1 -1
  172. package/dist/panels/WidgetPanelTooltip.css.map +1 -1
  173. package/dist/panels/WidgetPanelTooltip.d.ts +1 -1
  174. package/dist/panels/WidgetPanelTooltip.d.ts.map +1 -1
  175. package/dist/panels/WidgetPanelTooltip.js.map +1 -1
  176. package/dist/panels/WidgetPanelTypes.d.ts +1 -1
  177. package/dist/panels/WidgetPanelTypes.d.ts.map +1 -1
  178. package/dist/panels/WidgetPanelTypes.js.map +1 -1
  179. package/dist/redux/actions.d.ts +7 -7
  180. package/dist/redux/actions.d.ts.map +1 -1
  181. package/dist/redux/actions.js.map +1 -1
  182. package/dist/redux/selectors.d.ts +6 -6
  183. package/dist/redux/selectors.d.ts.map +1 -1
  184. package/dist/redux/selectors.js.map +1 -1
  185. package/package.json +24 -24
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownStartPage.js","names":["React","PureComponent","Button","Modal","ModalBody","ModalFooter","ModalHeader","FontAwesomeIcon","vsTrash","Log","jsx","_jsx","jsxs","_jsxs","log","module","MarkdownStartPage","constructor","props","handleDeleteButtonClick","bind","handleDeleteModalClose","state","isDeleteModalShown","markdown","setState","toBeDeleted","undefined","handleDeleteMarkdown","debug","onDelete","render","closedMarkdowns","onOpen","onCreate","className","children","kind","onClick","map","title","type","icon","id","isOpen","toggle","_defineProperty"],"sources":["../../../src/controls/markdown/MarkdownStartPage.tsx"],"sourcesContent":["import React, {\n Key,\n MouseEventHandler,\n PureComponent,\n ReactElement,\n} from 'react';\nimport {\n Button,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n} from '@deephaven/components';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsTrash } from '@deephaven/icons';\n\nimport Log from '@deephaven/log';\nimport type { ReactComponentConfig } from '@deephaven/golden-layout';\n\nconst log = Log.module('MarkdownStartPage');\n\ninterface MarkdownStartPageProps {\n closedMarkdowns: ReactComponentConfig[];\n onOpen: (markdown: ReactComponentConfig) => void;\n onCreate: MouseEventHandler<HTMLButtonElement>;\n onDelete: (markdown: ReactComponentConfig) => void;\n}\n\ninterface MarkdownStartPageState {\n isDeleteModalShown: boolean;\n toBeDeleted?: ReactComponentConfig;\n}\n\nclass MarkdownStartPage extends PureComponent<\n MarkdownStartPageProps,\n MarkdownStartPageState\n> {\n static defaultProps = {\n closedMarkdowns: [],\n onOpen: (): void => undefined,\n onCreate: (): void => undefined,\n onDelete: (): void => undefined,\n };\n\n constructor(props: MarkdownStartPageProps) {\n super(props);\n this.handleDeleteButtonClick = this.handleDeleteButtonClick.bind(this);\n this.handleDeleteModalClose = this.handleDeleteModalClose.bind(this);\n this.state = {\n isDeleteModalShown: false,\n };\n }\n\n handleDeleteButtonClick(markdown: ReactComponentConfig): void {\n this.setState({ isDeleteModalShown: true, toBeDeleted: markdown });\n }\n\n handleDeleteModalClose(): void {\n this.setState({ isDeleteModalShown: false, toBeDeleted: undefined });\n }\n\n handleDeleteMarkdown(markdown?: ReactComponentConfig): void {\n log.debug('delete markdown: ', markdown);\n\n if (markdown !== undefined) {\n const { onDelete } = this.props;\n onDelete(markdown);\n }\n\n this.setState({ isDeleteModalShown: false, toBeDeleted: undefined });\n }\n\n render(): ReactElement {\n const { closedMarkdowns, onOpen, onCreate } = this.props;\n const { isDeleteModalShown, toBeDeleted } = this.state;\n\n return (\n <div className=\"markdown-panel-start-page h-100 w-100\">\n <div className=\"markdown-panel-start-page-container\">\n <div className=\"markdown-panel-start-list\">\n <h3 className=\"list-title\">Start</h3>\n <div className=\"list-item\">\n <Button kind=\"ghost\" className=\"title\" onClick={onCreate}>\n New Markdown Note\n </Button>\n </div>\n </div>\n <div className=\"markdown-panel-start-list\">\n <h3 className=\"list-title\">Recently Closed from Dashboard</h3>\n {closedMarkdowns.map(markdown => (\n <div className=\"list-item\" key={markdown.id as Key}>\n <Button\n kind=\"ghost\"\n className=\"title\"\n onClick={() => onOpen(markdown)}\n >\n {markdown.title}\n </Button>\n <button\n className=\"btn-link icon\"\n type=\"button\"\n onClick={() => {\n this.handleDeleteButtonClick(markdown);\n }}\n >\n <FontAwesomeIcon icon={vsTrash} />\n </button>\n </div>\n ))}\n <Modal\n isOpen={isDeleteModalShown}\n toggle={this.handleDeleteModalClose}\n className=\"modal-dialog-centered markdown-delete-modal\"\n >\n <ModalHeader>\n Are you sure you want to permanently delete this note?\n </ModalHeader>\n <ModalBody>You can&#39;t undo this action.</ModalBody>\n <ModalFooter>\n <Button kind=\"secondary\" onClick={this.handleDeleteModalClose}>\n Cancel\n </Button>\n <Button\n kind=\"danger\"\n onClick={() => {\n this.handleDeleteMarkdown(toBeDeleted);\n }}\n >\n Delete\n </Button>\n </ModalFooter>\n </Modal>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default MarkdownStartPage;\n"],"mappings":"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"}
1
+ {"version":3,"file":"MarkdownStartPage.js","names":["React","PureComponent","Button","Modal","ModalBody","ModalFooter","ModalHeader","FontAwesomeIcon","vsTrash","Log","jsx","_jsx","jsxs","_jsxs","log","module","MarkdownStartPage","constructor","props","handleDeleteButtonClick","bind","handleDeleteModalClose","state","isDeleteModalShown","markdown","setState","toBeDeleted","undefined","handleDeleteMarkdown","debug","onDelete","render","closedMarkdowns","onOpen","onCreate","className","children","kind","onClick","map","title","type","icon","id","isOpen","toggle","_defineProperty"],"sources":["../../../src/controls/markdown/MarkdownStartPage.tsx"],"sourcesContent":["import React, {\n type Key,\n type MouseEventHandler,\n PureComponent,\n type ReactElement,\n} from 'react';\nimport {\n Button,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n} from '@deephaven/components';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsTrash } from '@deephaven/icons';\n\nimport Log from '@deephaven/log';\nimport type { ReactComponentConfig } from '@deephaven/golden-layout';\n\nconst log = Log.module('MarkdownStartPage');\n\ninterface MarkdownStartPageProps {\n closedMarkdowns: ReactComponentConfig[];\n onOpen: (markdown: ReactComponentConfig) => void;\n onCreate: MouseEventHandler<HTMLButtonElement>;\n onDelete: (markdown: ReactComponentConfig) => void;\n}\n\ninterface MarkdownStartPageState {\n isDeleteModalShown: boolean;\n toBeDeleted?: ReactComponentConfig;\n}\n\nclass MarkdownStartPage extends PureComponent<\n MarkdownStartPageProps,\n MarkdownStartPageState\n> {\n static defaultProps = {\n closedMarkdowns: [],\n onOpen: (): void => undefined,\n onCreate: (): void => undefined,\n onDelete: (): void => undefined,\n };\n\n constructor(props: MarkdownStartPageProps) {\n super(props);\n this.handleDeleteButtonClick = this.handleDeleteButtonClick.bind(this);\n this.handleDeleteModalClose = this.handleDeleteModalClose.bind(this);\n this.state = {\n isDeleteModalShown: false,\n };\n }\n\n handleDeleteButtonClick(markdown: ReactComponentConfig): void {\n this.setState({ isDeleteModalShown: true, toBeDeleted: markdown });\n }\n\n handleDeleteModalClose(): void {\n this.setState({ isDeleteModalShown: false, toBeDeleted: undefined });\n }\n\n handleDeleteMarkdown(markdown?: ReactComponentConfig): void {\n log.debug('delete markdown: ', markdown);\n\n if (markdown !== undefined) {\n const { onDelete } = this.props;\n onDelete(markdown);\n }\n\n this.setState({ isDeleteModalShown: false, toBeDeleted: undefined });\n }\n\n render(): ReactElement {\n const { closedMarkdowns, onOpen, onCreate } = this.props;\n const { isDeleteModalShown, toBeDeleted } = this.state;\n\n return (\n <div className=\"markdown-panel-start-page h-100 w-100\">\n <div className=\"markdown-panel-start-page-container\">\n <div className=\"markdown-panel-start-list\">\n <h3 className=\"list-title\">Start</h3>\n <div className=\"list-item\">\n <Button kind=\"ghost\" className=\"title\" onClick={onCreate}>\n New Markdown Note\n </Button>\n </div>\n </div>\n <div className=\"markdown-panel-start-list\">\n <h3 className=\"list-title\">Recently Closed from Dashboard</h3>\n {closedMarkdowns.map(markdown => (\n <div className=\"list-item\" key={markdown.id as Key}>\n <Button\n kind=\"ghost\"\n className=\"title\"\n onClick={() => onOpen(markdown)}\n >\n {markdown.title}\n </Button>\n <button\n className=\"btn-link icon\"\n type=\"button\"\n onClick={() => {\n this.handleDeleteButtonClick(markdown);\n }}\n >\n <FontAwesomeIcon icon={vsTrash} />\n </button>\n </div>\n ))}\n <Modal\n isOpen={isDeleteModalShown}\n toggle={this.handleDeleteModalClose}\n className=\"modal-dialog-centered markdown-delete-modal\"\n >\n <ModalHeader>\n Are you sure you want to permanently delete this note?\n </ModalHeader>\n <ModalBody>You can&#39;t undo this action.</ModalBody>\n <ModalFooter>\n <Button kind=\"secondary\" onClick={this.handleDeleteModalClose}>\n Cancel\n </Button>\n <Button\n kind=\"danger\"\n onClick={() => {\n this.handleDeleteMarkdown(toBeDeleted);\n }}\n >\n Delete\n </Button>\n </ModalFooter>\n </Modal>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default MarkdownStartPage;\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ClosedPanels } from '@deephaven/dashboard';
1
+ import { type ClosedPanels } from '@deephaven/dashboard';
2
2
  declare class MarkdownUtils {
3
3
  static DEFAULT_TITLE: string;
4
4
  static DEFAULT_CONTENT: string;
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownUtils.d.ts","sourceRoot":"","sources":["../../../src/controls/markdown/MarkdownUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,cAAM,aAAa;IACjB,MAAM,CAAC,aAAa,SAAU;IAE9B,MAAM,CAAC,eAAe,SACyD;IAE/E;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM;IAWxD,MAAM,CAAC,kBAAkB,iBAA0B,YAAY,kDAS7D;CACH;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"MarkdownUtils.d.ts","sourceRoot":"","sources":["../../../src/controls/markdown/MarkdownUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,cAAM,aAAa;IACjB,MAAM,CAAC,aAAa,SAAU;IAE9B,MAAM,CAAC,eAAe,SACyD;IAE/E;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM;IAWxD,MAAM,CAAC,kBAAkB,iBAA0B,YAAY,kDAS7D;CACH;AAED,eAAe,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownUtils.js","names":["memoize","MarkdownUtils","getNewMarkdownTitle","usedTitles","title","concat","DEFAULT_TITLE","titleIndex","indexOf","_defineProperty","closedPanels","filter","panel","component","props","panelState","content","reverse"],"sources":["../../../src/controls/markdown/MarkdownUtils.ts"],"sourcesContent":["import { ClosedPanels } from '@deephaven/dashboard';\nimport memoize from 'memoize-one';\n\nclass MarkdownUtils {\n static DEFAULT_TITLE = 'Note';\n\n static DEFAULT_CONTENT =\n '# Markdown Note\\n\\nThis note can be edited using **markdown** for styling.';\n\n /**\n * Retrieves a new markdown title that does not conflict with the current titles\n * @param usedTitles Markdown titles that are already in use\n * @returns The new title\n */\n static getNewMarkdownTitle(usedTitles: string[]): string {\n let title = `${MarkdownUtils.DEFAULT_TITLE}`;\n let titleIndex = 0;\n while (usedTitles.indexOf(title) >= 0) {\n titleIndex += 1;\n title = `${MarkdownUtils.DEFAULT_TITLE}-${titleIndex}`;\n }\n\n return title;\n }\n\n static getClosedMarkdowns = memoize((closedPanels: ClosedPanels) =>\n closedPanels\n .filter(\n panel =>\n panel.component === 'MarkdownPanel' &&\n panel.props.panelState.content !== '' &&\n panel.props.panelState.content !== null\n )\n .reverse()\n );\n}\n\nexport default MarkdownUtils;\n"],"mappings":";;;AACA,OAAOA,OAAO,MAAM,aAAa;AAEjC,MAAMC,aAAa,CAAC;EAMlB;AACF;AACA;AACA;AACA;EACE,OAAOC,mBAAmBA,CAACC,UAAoB,EAAU;IACvD,IAAIC,KAAK,MAAAC,MAAA,CAAMJ,aAAa,CAACK,aAAa,CAAE;IAC5C,IAAIC,UAAU,GAAG,CAAC;IAClB,OAAOJ,UAAU,CAACK,OAAO,CAACJ,KAAK,CAAC,IAAI,CAAC,EAAE;MACrCG,UAAU,IAAI,CAAC;MACfH,KAAK,MAAAC,MAAA,CAAMJ,aAAa,CAACK,aAAa,OAAAD,MAAA,CAAIE,UAAU,CAAE;IACxD;IAEA,OAAOH,KAAK;EACd;AAYF;AAACK,eAAA,CAhCKR,aAAa,mBACM,MAAM;AAAAQ,eAAA,CADzBR,aAAa,qBAIf,4EAA4E;AAAAQ,eAAA,CAJ1ER,aAAa,wBAsBWD,OAAO,CAAEU,YAA0B,IAC7DA,YAAY,CACTC,MAAM,CACLC,KAAK,IACHA,KAAK,CAACC,SAAS,KAAK,eAAe,IACnCD,KAAK,CAACE,KAAK,CAACC,UAAU,CAACC,OAAO,KAAK,EAAE,IACrCJ,KAAK,CAACE,KAAK,CAACC,UAAU,CAACC,OAAO,KAAK,IACvC,CAAC,CACAC,OAAO,CAAC,CACb,CAAC;AAGH,eAAehB,aAAa"}
1
+ {"version":3,"file":"MarkdownUtils.js","names":["memoize","MarkdownUtils","getNewMarkdownTitle","usedTitles","title","concat","DEFAULT_TITLE","titleIndex","indexOf","_defineProperty","closedPanels","filter","panel","component","props","panelState","content","reverse"],"sources":["../../../src/controls/markdown/MarkdownUtils.ts"],"sourcesContent":["import { type ClosedPanels } from '@deephaven/dashboard';\nimport memoize from 'memoize-one';\n\nclass MarkdownUtils {\n static DEFAULT_TITLE = 'Note';\n\n static DEFAULT_CONTENT =\n '# Markdown Note\\n\\nThis note can be edited using **markdown** for styling.';\n\n /**\n * Retrieves a new markdown title that does not conflict with the current titles\n * @param usedTitles Markdown titles that are already in use\n * @returns The new title\n */\n static getNewMarkdownTitle(usedTitles: string[]): string {\n let title = `${MarkdownUtils.DEFAULT_TITLE}`;\n let titleIndex = 0;\n while (usedTitles.indexOf(title) >= 0) {\n titleIndex += 1;\n title = `${MarkdownUtils.DEFAULT_TITLE}-${titleIndex}`;\n }\n\n return title;\n }\n\n static getClosedMarkdowns = memoize((closedPanels: ClosedPanels) =>\n closedPanels\n .filter(\n panel =>\n panel.component === 'MarkdownPanel' &&\n panel.props.panelState.content !== '' &&\n panel.props.panelState.content !== null\n )\n .reverse()\n );\n}\n\nexport default MarkdownUtils;\n"],"mappings":";;;AACA,OAAOA,OAAO,MAAM,aAAa;AAEjC,MAAMC,aAAa,CAAC;EAMlB;AACF;AACA;AACA;AACA;EACE,OAAOC,mBAAmBA,CAACC,UAAoB,EAAU;IACvD,IAAIC,KAAK,MAAAC,MAAA,CAAMJ,aAAa,CAACK,aAAa,CAAE;IAC5C,IAAIC,UAAU,GAAG,CAAC;IAClB,OAAOJ,UAAU,CAACK,OAAO,CAACJ,KAAK,CAAC,IAAI,CAAC,EAAE;MACrCG,UAAU,IAAI,CAAC;MACfH,KAAK,MAAAC,MAAA,CAAMJ,aAAa,CAACK,aAAa,OAAAD,MAAA,CAAIE,UAAU,CAAE;IACxD;IAEA,OAAOH,KAAK;EACd;AAYF;AAACK,eAAA,CAhCKR,aAAa,mBACM,MAAM;AAAAQ,eAAA,CADzBR,aAAa,qBAIf,4EAA4E;AAAAQ,eAAA,CAJ1ER,aAAa,wBAsBWD,OAAO,CAAEU,YAA0B,IAC7DA,YAAY,CACTC,MAAM,CACLC,KAAK,IACHA,KAAK,CAACC,SAAS,KAAK,eAAe,IACnCD,KAAK,CAACE,KAAK,CAACC,UAAU,CAACC,OAAO,KAAK,EAAE,IACrCJ,KAAK,CAACE,KAAK,CAACC,UAAU,CAACC,OAAO,KAAK,IACvC,CAAC,CACAC,OAAO,CAAC,CACb,CAAC;AAGH,eAAehB,aAAa"}
@@ -1,5 +1,5 @@
1
- import { RowDataMap } from '@deephaven/jsapi-utils';
2
- import { IrisGridPanel } from '../panels/IrisGridPanel';
1
+ import { type RowDataMap } from '@deephaven/jsapi-utils';
2
+ import { type IrisGridPanel } from '../panels/IrisGridPanel';
3
3
  export type IrisGridDataSelectedEventCallback = (panel: IrisGridPanel, data: RowDataMap) => void;
4
4
  export declare class IrisGridEvent {
5
5
  /** @deprecated Use PanelEvent.OPEN instead */
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridEvent.d.ts","sourceRoot":"","sources":["../../src/events/IrisGridEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,MAAM,iCAAiC,GAAG,CAC9C,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,UAAU,KACb,IAAI,CAAC;AAEV,qBAAa,aAAa;IACxB,8CAA8C;IAC9C,MAAM,CAAC,SAAS,SAA6B;IAE7C,+CAA+C;IAC/C,MAAM,CAAC,UAAU,SAA8B;IAE/C,MAAM,CAAC,aAAa,SAAiC;IAErD,MAAM,CAAC,eAAe,SAAmC;IAEzD,MAAM,CAAC,aAAa,SAAiC;IAErD,MAAM,CAAC,YAAY,SAAgC;CACpD;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"IrisGridEvent.d.ts","sourceRoot":"","sources":["../../src/events/IrisGridEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,MAAM,iCAAiC,GAAG,CAC9C,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,UAAU,KACb,IAAI,CAAC;AAEV,qBAAa,aAAa;IACxB,8CAA8C;IAC9C,MAAM,CAAC,SAAS,SAA6B;IAE7C,+CAA+C;IAC/C,MAAM,CAAC,UAAU,SAA8B;IAE/C,MAAM,CAAC,aAAa,SAAiC;IAErD,MAAM,CAAC,eAAe,SAAmC;IAEzD,MAAM,CAAC,aAAa,SAAiC;IAErD,MAAM,CAAC,YAAY,SAAgC;CACpD;AAED,eAAe,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridEvent.js","names":["IrisGridEvent","_defineProperty"],"sources":["../../src/events/IrisGridEvent.ts"],"sourcesContent":["import { RowDataMap } from '@deephaven/jsapi-utils';\nimport { IrisGridPanel } from '../panels/IrisGridPanel';\n\nexport type IrisGridDataSelectedEventCallback = (\n panel: IrisGridPanel,\n data: RowDataMap\n) => void;\n\nexport class IrisGridEvent {\n /** @deprecated Use PanelEvent.OPEN instead */\n static OPEN_GRID = 'IrisGridEvent.OPEN_GRID';\n\n /** @deprecated Use PanelEvent.CLOSE instead */\n static CLOSE_GRID = 'IrisGridEvent.CLOSE_GRID';\n\n static DATA_SELECTED = 'IrisGridEvent.DATA_SELECTED';\n\n static COLUMN_SELECTED = 'IrisGridEvent.COLUMN_SELECTED';\n\n static STATE_CHANGED = 'IrisGridEvent.STATE_CHANGED';\n\n static CREATE_CHART = 'IrisGridevent.CREATE_CHART';\n}\n\nexport default IrisGridEvent;\n"],"mappings":";;;AAQA,OAAO,MAAMA,aAAa,CAAC;AAc1BC,eAAA,CAdYD,aAAa,eAEL,yBAAyB;AAAAC,eAAA,CAFjCD,aAAa,gBAKJ,0BAA0B;AAAAC,eAAA,CALnCD,aAAa,mBAOD,6BAA6B;AAAAC,eAAA,CAPzCD,aAAa,qBASC,+BAA+B;AAAAC,eAAA,CAT7CD,aAAa,mBAWD,6BAA6B;AAAAC,eAAA,CAXzCD,aAAa,kBAaF,4BAA4B;AAGpD,eAAeA,aAAa"}
1
+ {"version":3,"file":"IrisGridEvent.js","names":["IrisGridEvent","_defineProperty"],"sources":["../../src/events/IrisGridEvent.ts"],"sourcesContent":["import { type RowDataMap } from '@deephaven/jsapi-utils';\nimport { type IrisGridPanel } from '../panels/IrisGridPanel';\n\nexport type IrisGridDataSelectedEventCallback = (\n panel: IrisGridPanel,\n data: RowDataMap\n) => void;\n\nexport class IrisGridEvent {\n /** @deprecated Use PanelEvent.OPEN instead */\n static OPEN_GRID = 'IrisGridEvent.OPEN_GRID';\n\n /** @deprecated Use PanelEvent.CLOSE instead */\n static CLOSE_GRID = 'IrisGridEvent.CLOSE_GRID';\n\n static DATA_SELECTED = 'IrisGridEvent.DATA_SELECTED';\n\n static COLUMN_SELECTED = 'IrisGridEvent.COLUMN_SELECTED';\n\n static STATE_CHANGED = 'IrisGridEvent.STATE_CHANGED';\n\n static CREATE_CHART = 'IrisGridevent.CREATE_CHART';\n}\n\nexport default IrisGridEvent;\n"],"mappings":";;;AAQA,OAAO,MAAMA,aAAa,CAAC;AAc1BC,eAAA,CAdYD,aAAa,eAEL,yBAAyB;AAAAC,eAAA,CAFjCD,aAAa,gBAKJ,0BAA0B;AAAAC,eAAA,CALnCD,aAAa,mBAOD,6BAA6B;AAAAC,eAAA,CAPzCD,aAAa,qBASC,+BAA+B;AAAAC,eAAA,CAT7CD,aAAa,mBAWD,6BAA6B;AAAAC,eAAA,CAXzCD,aAAa,kBAaF,4BAA4B;AAGpD,eAAeA,aAAa"}
@@ -1,5 +1,5 @@
1
- import { ValueOf } from '@deephaven/utils';
2
- import TabEvent from './TabEvent';
1
+ import { type ValueOf } from '@deephaven/utils';
2
+ import type TabEvent from './TabEvent';
3
3
  export type TabEventType = ValueOf<typeof TabEvent>;
4
4
  export interface TabEventMap extends Record<TabEventType, (...args: never[]) => void> {
5
5
  [TabEvent.focus]: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"TabEventMap.d.ts","sourceRoot":"","sources":["../../src/events/TabEventMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEpD,MAAM,WAAW,WACf,SAAQ,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IACxD,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"TabEventMap.d.ts","sourceRoot":"","sources":["../../src/events/TabEventMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AAEvC,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEpD,MAAM,WAAW,WACf,SAAQ,MAAM,CAAC,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IACxD,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,eAAe,WAAW,CAAC"}
@@ -1,2 +1,2 @@
1
- import TabEvent from "./TabEvent.js";
1
+ export {};
2
2
  //# sourceMappingURL=TabEventMap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabEventMap.js","names":["TabEvent"],"sources":["../../src/events/TabEventMap.ts"],"sourcesContent":["import { ValueOf } from '@deephaven/utils';\nimport TabEvent from './TabEvent';\n\nexport type TabEventType = ValueOf<typeof TabEvent>;\n\nexport interface TabEventMap\n extends Record<TabEventType, (...args: never[]) => void> {\n [TabEvent.focus]: () => void;\n [TabEvent.blur]: () => void;\n}\n\nexport default TabEventMap;\n"],"mappings":"OACOA,QAAQ"}
1
+ {"version":3,"file":"TabEventMap.js","names":[],"sources":["../../src/events/TabEventMap.ts"],"sourcesContent":["import { type ValueOf } from '@deephaven/utils';\nimport type TabEvent from './TabEvent';\n\nexport type TabEventType = ValueOf<typeof TabEvent>;\n\nexport interface TabEventMap\n extends Record<TabEventType, (...args: never[]) => void> {\n [TabEvent.focus]: () => void;\n [TabEvent.blur]: () => void;\n}\n\nexport default TabEventMap;\n"],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { PanelComponent } from '@deephaven/dashboard';
2
- import { LinkColumn } from './LinkerUtils';
1
+ import { type PanelComponent } from '@deephaven/dashboard';
2
+ import { type LinkColumn } from './LinkerUtils';
3
3
  export type ColumnSelectionValidator = (panel: PanelComponent, tableColumn?: LinkColumn) => boolean;
4
4
  //# sourceMappingURL=ColumnSelectionValidator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnSelectionValidator.d.ts","sourceRoot":"","sources":["../../src/linker/ColumnSelectionValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,MAAM,wBAAwB,GAAG,CACrC,KAAK,EAAE,cAAc,EACrB,WAAW,CAAC,EAAE,UAAU,KACrB,OAAO,CAAC"}
1
+ {"version":3,"file":"ColumnSelectionValidator.d.ts","sourceRoot":"","sources":["../../src/linker/ColumnSelectionValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,MAAM,wBAAwB,GAAG,CACrC,KAAK,EAAE,cAAc,EACrB,WAAW,CAAC,EAAE,UAAU,KACrB,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnSelectionValidator.js","names":[],"sources":["../../src/linker/ColumnSelectionValidator.ts"],"sourcesContent":["import { PanelComponent } from '@deephaven/dashboard';\nimport { LinkColumn } from './LinkerUtils';\n\nexport type ColumnSelectionValidator = (\n panel: PanelComponent,\n tableColumn?: LinkColumn\n) => boolean;\n"],"mappings":""}
1
+ {"version":3,"file":"ColumnSelectionValidator.js","names":[],"sources":["../../src/linker/ColumnSelectionValidator.ts"],"sourcesContent":["import { type PanelComponent } from '@deephaven/dashboard';\nimport { type LinkColumn } from './LinkerUtils';\n\nexport type ColumnSelectionValidator = (\n panel: PanelComponent,\n tableColumn?: LinkColumn\n) => boolean;\n"],"mappings":""}
@@ -1,10 +1,10 @@
1
- import React, { Component, ErrorInfo } from 'react';
2
- import { ConnectedProps } from 'react-redux';
3
- import { PanelComponent, PanelManager } from '@deephaven/dashboard';
1
+ import React, { Component, type ErrorInfo } from 'react';
2
+ import { type ConnectedProps } from 'react-redux';
3
+ import { type PanelComponent, type PanelManager } from '@deephaven/dashboard';
4
4
  import type GoldenLayout from '@deephaven/golden-layout';
5
- import { RowDataMap } from '@deephaven/jsapi-utils';
5
+ import { type RowDataMap } from '@deephaven/jsapi-utils';
6
6
  import type { dh as DhType } from '@deephaven/jsapi-types';
7
- import { Link, LinkColumn, LinkFilterMap, LinkType } from './LinkerUtils';
7
+ import { type Link, type LinkColumn, type LinkFilterMap, type LinkType } from './LinkerUtils';
8
8
  interface StateProps {
9
9
  activeTool: string;
10
10
  dh: typeof DhType;
@@ -1 +1 @@
1
- {"version":3,"file":"Linker.d.ts","sourceRoot":"","sources":["../../src/linker/Linker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Linker.d.ts","sourceRoot":"","sources":["../../src/linker/Linker.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Linker.js","names":["React","Component","connect","nanoid","memoize","FadeTransition","LayoutUtils","PanelEvent","DateTimeColumnFormatter","DateUtils","TableUtils","Log","Type","FilterType","getActiveTool","getApi","getTimeZone","setActiveTool","setActiveToolAction","getIsolatedLinkerPanelIdForDashboard","getLinksForDashboard","setDashboardLinks","setDashboardLinksAction","addDashboardLinks","addDashboardLinksAction","deleteDashboardLinks","deleteDashboardLinksAction","setDashboardIsolatedLinkerPanelId","setDashboardIsolatedLinkerPanelIdAction","setDashboardColumnSelectionValidator","setDashboardColumnSelectionValidatorAction","ToolType","ChartEvent","IrisGridEvent","InputFilterEvent","LinkerOverlayContent","LinkerUtils","isLinkablePanel","isLinkableColumn","jsx","_jsx","log","module","mapState","state","ownProps","activeTool","dh","isolatedLinkerPanelId","localDashboardId","links","timeZone","connector","Linker","constructor","props","_defineProperty","linkInProgress","isolateForPanelId","combinedLinks","start","push","undefined","filter","link","_link$start","_link$end","panelId","end","handleCancel","bind","handleDone","handlePanelCloned","handleFilterColumnSelect","handleColumnsChanged","handlePanelClosed","handleLayoutStateChanged","handleAllLinksDeleted","handleLinkDeleted","handleLinksUpdated","handleChartColumnSelect","handleGridColumnSelect","handleUpdateValues","handleStateChange","handleExited","handleLinkSelected","handlePanelDragging","handlePanelDropped","isColumnSelectionValid","selectedIds","Set","isDraggingPanel","componentDidMount","layout","startListening","updateSelectionValidators","componentDidUpdate","prevProps","stopListening","DEFAULT","reset","componentDidCatch","error","info","componentWillUnmount","on","eventHub","COLUMN_SELECTED","DATA_SELECTED","STATE_CHANGED","CLONED","COLUMNS_CHANGED","CLOSE","CLOSED","DRAGGING","DROPPED","off","setState","panel","column","columnSelected","debug","isOverlayShown","getIdFromPanel","panelLinks","_link$start2","_link$end2","LINKER","length","columns","linksToDelete","_ref","findColumn","deleteLinks","debug2","isAlwaysEndPoint","arguments","overrideIsolatedLinkerPanelId","panelComponent","getComponentNameFromPanel","name","columnName","type","columnType","newLink","id","isReversed","getLinkType","existingLinkPanelId","_ref2","panelLinkEnd","existingLinkEnd","existingLinkStart","_ref3","panelLinkStart","operator","eq","addLinks","unsetFilterValueForLink","panelManager","endPanel","getOpenedPanelById","unsetFilterValue","setPanelFilterMap","filterMap","setFilterMap","clearAll","forEach","map","_ref4","isolatedLinks","_link$start3","_link$end3","linkId","find","l","dataMap","panelFilterMap","Map","i","endPanelId","has","get","filterList","visibleIndex","startColumnIndex","isExpandable","isGrouped","value","text","concat","isDateType","dateFilterFormatter","showTimeZone","showTSeparator","defaultDateTimeFormatString","FULL_DATE_FORMAT","format","set","cloneConfig","cloneId","linksToAdd","cloneLinksForPanel","componentId","deleteLinksForPanelId","newLinks","forceUpdate","updateLinkInProgressType","_ref5","_objectSpread","tableColumn","description","render","isLinkOverlayShown","disabled","linkerOverlayMessage","in","mountOnEnter","unmountOnExit","onExited","children","getCachedLinks","messageText","onLinkSelected","onLinkDeleted","onAllLinksDeleted","onLinksUpdated","onDone","onCancel","ConnectedLinker"],"sources":["../../src/linker/Linker.tsx"],"sourcesContent":["import React, { Component, ErrorInfo } from 'react';\nimport { connect, ConnectedProps } from 'react-redux';\nimport { nanoid } from 'nanoid';\nimport memoize from 'memoize-one';\nimport { FadeTransition } from '@deephaven/components';\nimport {\n LayoutUtils,\n PanelComponent,\n PanelEvent,\n PanelManager,\n} from '@deephaven/dashboard';\nimport type GoldenLayout from '@deephaven/golden-layout';\nimport {\n DateTimeColumnFormatter,\n DateUtils,\n RowDataMap,\n TableUtils,\n} from '@deephaven/jsapi-utils';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { Type as FilterType } from '@deephaven/filters';\nimport {\n getActiveTool,\n getApi,\n getTimeZone,\n setActiveTool as setActiveToolAction,\n RootState,\n} from '@deephaven/redux';\nimport {\n getIsolatedLinkerPanelIdForDashboard,\n getLinksForDashboard,\n setDashboardLinks as setDashboardLinksAction,\n addDashboardLinks as addDashboardLinksAction,\n deleteDashboardLinks as deleteDashboardLinksAction,\n setDashboardIsolatedLinkerPanelId as setDashboardIsolatedLinkerPanelIdAction,\n setDashboardColumnSelectionValidator as setDashboardColumnSelectionValidatorAction,\n} from '../redux';\nimport ToolType from './ToolType';\nimport { ChartEvent, IrisGridEvent, InputFilterEvent } from '../events';\nimport LinkerOverlayContent from './LinkerOverlayContent';\nimport LinkerUtils, {\n isLinkablePanel,\n Link,\n LinkColumn,\n LinkFilterMap,\n LinkType,\n isLinkableColumn,\n} from './LinkerUtils';\n\nconst log = Log.module('Linker');\n\ninterface StateProps {\n activeTool: string;\n dh: typeof DhType;\n isolatedLinkerPanelId?: string;\n links: Link[];\n timeZone: string;\n}\n\ninterface OwnProps {\n layout: GoldenLayout;\n panelManager: PanelManager;\n localDashboardId: string;\n}\n\nconst mapState = (state: RootState, ownProps: OwnProps): StateProps => ({\n activeTool: getActiveTool(state),\n dh: getApi(state),\n isolatedLinkerPanelId: getIsolatedLinkerPanelIdForDashboard(\n state,\n ownProps.localDashboardId\n ),\n links: getLinksForDashboard(state, ownProps.localDashboardId),\n timeZone: getTimeZone(state),\n});\n\nconst connector = connect(mapState, {\n setActiveTool: setActiveToolAction,\n setDashboardLinks: setDashboardLinksAction,\n addDashboardLinks: addDashboardLinksAction,\n deleteDashboardLinks: deleteDashboardLinksAction,\n setDashboardIsolatedLinkerPanelId: setDashboardIsolatedLinkerPanelIdAction,\n setDashboardColumnSelectionValidator:\n setDashboardColumnSelectionValidatorAction,\n});\n\nexport type LinkerProps = OwnProps &\n StateProps &\n ConnectedProps<typeof connector>;\n\nexport type LinkerState = {\n linkInProgress?: Link;\n selectedIds: Set<string>;\n isDraggingPanel: boolean;\n};\n\nexport class Linker extends Component<LinkerProps, LinkerState> {\n constructor(props: LinkerProps) {\n super(props);\n\n this.handleCancel = this.handleCancel.bind(this);\n this.handleDone = this.handleDone.bind(this);\n this.handlePanelCloned = this.handlePanelCloned.bind(this);\n this.handleFilterColumnSelect = this.handleFilterColumnSelect.bind(this);\n this.handleColumnsChanged = this.handleColumnsChanged.bind(this);\n this.handlePanelClosed = this.handlePanelClosed.bind(this);\n this.handleLayoutStateChanged = this.handleLayoutStateChanged.bind(this);\n this.handleAllLinksDeleted = this.handleAllLinksDeleted.bind(this);\n this.handleLinkDeleted = this.handleLinkDeleted.bind(this);\n this.handleLinksUpdated = this.handleLinksUpdated.bind(this);\n this.handleChartColumnSelect = this.handleChartColumnSelect.bind(this);\n this.handleGridColumnSelect = this.handleGridColumnSelect.bind(this);\n this.handleUpdateValues = this.handleUpdateValues.bind(this);\n this.handleStateChange = this.handleStateChange.bind(this);\n this.handleExited = this.handleExited.bind(this);\n this.handleLinkSelected = this.handleLinkSelected.bind(this);\n this.handlePanelDragging = this.handlePanelDragging.bind(this);\n this.handlePanelDropped = this.handlePanelDropped.bind(this);\n this.isColumnSelectionValid = this.isColumnSelectionValid.bind(this);\n\n this.state = {\n linkInProgress: undefined,\n selectedIds: new Set<string>(),\n isDraggingPanel: false,\n };\n }\n\n componentDidMount(): void {\n const { layout } = this.props;\n this.startListening(layout);\n this.updateSelectionValidators();\n }\n\n componentDidUpdate(prevProps: LinkerProps): void {\n const { activeTool, layout } = this.props;\n if (layout !== prevProps.layout) {\n this.stopListening(prevProps.layout);\n this.startListening(layout);\n }\n if (activeTool !== prevProps.activeTool) {\n this.updateSelectionValidators();\n if (activeTool === ToolType.DEFAULT) {\n this.reset();\n }\n }\n }\n\n componentDidCatch(error: Error, info: ErrorInfo): void {\n log.error('componentDidCatch', error, info);\n }\n\n componentWillUnmount(): void {\n const { layout } = this.props;\n this.stopListening(layout);\n }\n\n startListening(layout: GoldenLayout): void {\n layout.on('stateChanged', this.handleLayoutStateChanged);\n\n const { eventHub } = layout;\n eventHub.on(IrisGridEvent.COLUMN_SELECTED, this.handleGridColumnSelect);\n eventHub.on(IrisGridEvent.DATA_SELECTED, this.handleUpdateValues);\n eventHub.on(IrisGridEvent.STATE_CHANGED, this.handleStateChange);\n eventHub.on(ChartEvent.COLUMN_SELECTED, this.handleChartColumnSelect);\n eventHub.on(PanelEvent.CLONED, this.handlePanelCloned);\n eventHub.on(\n InputFilterEvent.COLUMN_SELECTED,\n this.handleFilterColumnSelect\n );\n eventHub.on(InputFilterEvent.COLUMNS_CHANGED, this.handleColumnsChanged);\n eventHub.on(PanelEvent.CLOSE, this.handlePanelClosed);\n eventHub.on(PanelEvent.CLOSED, this.handlePanelClosed);\n eventHub.on(PanelEvent.DRAGGING, this.handlePanelDragging);\n eventHub.on(PanelEvent.DROPPED, this.handlePanelDropped);\n }\n\n stopListening(layout: GoldenLayout): void {\n layout.off('stateChanged', this.handleLayoutStateChanged);\n\n const { eventHub } = layout;\n eventHub.off(IrisGridEvent.COLUMN_SELECTED, this.handleGridColumnSelect);\n eventHub.off(IrisGridEvent.DATA_SELECTED, this.handleUpdateValues);\n eventHub.off(IrisGridEvent.STATE_CHANGED, this.handleStateChange);\n eventHub.off(ChartEvent.COLUMN_SELECTED, this.handleChartColumnSelect);\n eventHub.off(PanelEvent.CLONED, this.handlePanelCloned);\n eventHub.off(\n InputFilterEvent.COLUMN_SELECTED,\n this.handleFilterColumnSelect\n );\n eventHub.off(InputFilterEvent.COLUMNS_CHANGED, this.handleColumnsChanged);\n eventHub.off(PanelEvent.CLOSE, this.handlePanelClosed);\n eventHub.off(PanelEvent.CLOSED, this.handlePanelClosed);\n eventHub.off(PanelEvent.DRAGGING, this.handlePanelDragging);\n eventHub.off(PanelEvent.DROPPED, this.handlePanelDropped);\n }\n\n reset(): void {\n this.setState({\n linkInProgress: undefined,\n selectedIds: new Set<string>(),\n });\n }\n\n handleCancel(): void {\n const { linkInProgress } = this.state;\n if (linkInProgress == null) {\n const { setActiveTool } = this.props;\n setActiveTool(ToolType.DEFAULT);\n }\n this.setState({ linkInProgress: undefined });\n }\n\n handleDone(): void {\n const { setActiveTool } = this.props;\n setActiveTool(ToolType.DEFAULT);\n }\n\n handleChartColumnSelect(panel: PanelComponent, column: LinkColumn): void {\n this.columnSelected(panel, column, true);\n }\n\n handleFilterColumnSelect(panel: PanelComponent, column: LinkColumn): void {\n log.debug('handleFilterColumnSelect', this.isOverlayShown());\n const {\n links,\n localDashboardId,\n setActiveTool,\n setDashboardIsolatedLinkerPanelId,\n } = this.props;\n\n const panelId = LayoutUtils.getIdFromPanel(panel);\n const panelLinks = links.filter(\n link => link.start?.panelId === panelId || link.end?.panelId === panelId\n );\n\n if (!this.isOverlayShown() && panelId != null) {\n // Initial click on the filter source button with linker inactive\n // Show linker in isolated mode for panel\n setActiveTool(ToolType.LINKER);\n setDashboardIsolatedLinkerPanelId(localDashboardId, panelId);\n\n if (panelLinks.length === 0) {\n // Source not linked - start new link in isolated linker mode\n // Need to pass panelId for overrideIsolatedLinkerPanelId\n // as redux prop update at this point not yet propagated\n this.columnSelected(panel, column, true, panelId);\n }\n return;\n }\n\n // Filter source clicked with linker active\n this.columnSelected(panel, column, true);\n }\n\n handleColumnsChanged(panel: PanelComponent, columns: LinkColumn[]): void {\n log.debug('handleColumnsChanged', panel, columns);\n const { links } = this.props;\n const panelId = LayoutUtils.getIdFromPanel(panel);\n if (panelId == null) {\n log.error('Invalid panelId', panel);\n return;\n }\n // Delete links that start or end on non-existent column in the updated panel\n const linksToDelete = links.filter(\n ({ start, end }) =>\n (start.panelId === panelId &&\n LinkerUtils.findColumn(columns, start) == null) ||\n (end != null &&\n end.panelId === panelId &&\n LinkerUtils.findColumn(columns, end) == null)\n );\n this.deleteLinks(linksToDelete);\n }\n\n handleGridColumnSelect(panel: PanelComponent, column: LinkColumn): void {\n if (!isLinkableColumn(column)) {\n log.debug2('Column is not filterable');\n return;\n }\n this.columnSelected(panel, column);\n }\n\n /**\n * Track a column selection and build the link from it.\n * @param panel The panel component that is the source for the column selection\n * @param column The column that was selected\n * @param isAlwaysEndPoint True if the selection is always the end point, even if it's the first column selected. Defaults to false.\n * @param overrideIsolatedLinkerPanelId isolatedLinkerPanelId to use when method is called before prop changes propagate\n */\n columnSelected(\n panel: PanelComponent,\n column: LinkColumn,\n isAlwaysEndPoint = false,\n overrideIsolatedLinkerPanelId?: string | string[]\n ): void {\n if (overrideIsolatedLinkerPanelId === undefined && !this.isOverlayShown()) {\n return;\n }\n const { isolatedLinkerPanelId } = this.props;\n const { linkInProgress } = this.state;\n const panelId = LayoutUtils.getIdFromPanel(panel);\n if (panelId == null) {\n return;\n }\n const panelComponent = LayoutUtils.getComponentNameFromPanel(panel);\n const { name: columnName, type: columnType } = column;\n if (linkInProgress == null || linkInProgress.start == null) {\n const newLink: Link = {\n id: nanoid(),\n start: {\n panelId,\n panelComponent,\n columnName,\n columnType,\n },\n // Link starts with type Invalid as linking a source to itself is not allowed\n type: 'invalid',\n isReversed: isAlwaysEndPoint,\n };\n\n log.debug('starting link', newLink);\n\n this.setState({ linkInProgress: newLink });\n } else {\n const { links } = this.props;\n const { start, id, isReversed } = linkInProgress;\n const end = {\n panelId,\n panelComponent,\n columnName,\n columnType,\n };\n\n const type = LinkerUtils.getLinkType(\n isReversed !== undefined && isReversed ? end : start,\n isReversed !== undefined && isReversed ? start : end,\n overrideIsolatedLinkerPanelId ?? isolatedLinkerPanelId\n );\n\n switch (type) {\n case 'invalid':\n log.debug('Ignore invalid link connection', linkInProgress, end);\n return;\n case 'filterSource': {\n // filterSource links have a limit of 1 link per target\n // New link validation passed, delete existing links before adding the new one\n const existingLinkPanelId =\n isReversed !== undefined && isReversed\n ? start.panelId\n : end.panelId;\n // In cases with multiple targets per panel (i.e. chart filters)\n // links would have to be filtered by panelId and columnName and columnType\n const linksToDelete = links.filter(\n ({ end: panelLinkEnd }) =>\n panelLinkEnd?.panelId === existingLinkPanelId\n );\n this.deleteLinks(linksToDelete);\n break;\n }\n case 'chartLink': {\n const existingLinkEnd = isReversed === true ? start : end;\n const existingLinkStart = isReversed === true ? end : start;\n log.debug('creating chartlink', { existingLinkEnd, start, end });\n // Don't allow linking more than one column per source to each chart column\n const linksToDelete = links.filter(\n ({ end: panelLinkEnd, start: panelLinkStart }) =>\n panelLinkStart?.panelId === existingLinkStart.panelId &&\n panelLinkEnd?.panelId === existingLinkEnd.panelId &&\n panelLinkEnd?.columnName === existingLinkEnd.columnName &&\n panelLinkEnd?.columnType === existingLinkEnd.columnType\n );\n this.deleteLinks(linksToDelete);\n break;\n }\n case 'tableLink':\n // No-op\n break;\n }\n\n // Create a completed link from link in progress\n const newLink: Link = {\n start: isReversed !== undefined && isReversed ? end : start,\n end: isReversed !== undefined && isReversed ? start : end,\n id,\n type,\n operator: FilterType.eq,\n };\n log.info('creating link', newLink);\n\n this.setState(\n { linkInProgress: undefined, selectedIds: new Set<string>([id]) },\n () => {\n // Adding link after updating state\n // otherwise both new link and linkInProgress could be rendered at the same time\n // resulting in \"multiple children with same key\" error\n this.addLinks([newLink]);\n }\n );\n }\n }\n\n unsetFilterValueForLink(link: Link): void {\n const { panelManager } = this.props;\n if (link.end) {\n const { end } = link;\n const { panelId, columnName, columnType } = end;\n const endPanel = panelManager.getOpenedPanelById(panelId);\n if (!endPanel) {\n log.debug(\n 'endPanel no longer exists, ignoring unsetFilterValue',\n panelId\n );\n } else if (isLinkablePanel(endPanel)) {\n endPanel.unsetFilterValue(columnName, columnType);\n } else {\n log.debug('endPanel.unsetFilterValue not implemented', endPanel);\n }\n }\n }\n\n /**\n * Set filters for a given panel ID\n * @param panelId ID of panel to set filters on\n * @param filterMap Map of column name to column type, text, and value\n */\n setPanelFilterMap(panelId: string, filterMap: LinkFilterMap): void {\n log.debug('Set filter data for panel:', panelId, filterMap);\n const { panelManager } = this.props;\n const panel = panelManager.getOpenedPanelById(panelId);\n if (!panel) {\n log.debug('panel no longer exists, ignoring setFilterMap', panelId);\n } else if (isLinkablePanel(panel)) {\n panel.setFilterMap(filterMap);\n } else {\n log.debug('panel.setFilterMap not implemented', panelId, panel);\n }\n }\n\n addLinks(links: Link[]): void {\n const { addDashboardLinks, localDashboardId } = this.props;\n addDashboardLinks(localDashboardId, links);\n }\n\n deleteLinks(links: Link[], clearAll = false): void {\n const { localDashboardId } = this.props;\n links.forEach(link => this.unsetFilterValueForLink(link));\n if (clearAll) {\n const { setDashboardLinks } = this.props;\n setDashboardLinks(localDashboardId, []);\n } else if (links.length > 0) {\n const { deleteDashboardLinks } = this.props;\n deleteDashboardLinks(\n localDashboardId,\n links.map(({ id }) => id)\n );\n }\n }\n\n handleAllLinksDeleted(): void {\n const { links, isolatedLinkerPanelId } = this.props;\n if (isolatedLinkerPanelId === undefined) {\n this.deleteLinks(links, true);\n } else {\n const isolatedLinks = links.filter(\n link =>\n link?.start?.panelId === isolatedLinkerPanelId ||\n link?.end?.panelId === isolatedLinkerPanelId\n );\n this.deleteLinks(isolatedLinks);\n }\n this.reset();\n }\n\n handleLinkDeleted(linkId: string): void {\n const { links } = this.props;\n const link = links.find(l => l.id === linkId);\n if (link) {\n this.deleteLinks([link]);\n } else {\n log.error('Unable to find link to delete', linkId);\n }\n }\n\n handleUpdateValues(panel: PanelComponent, dataMap: RowDataMap): void {\n const panelId = LayoutUtils.getIdFromPanel(panel);\n const { dh, links, timeZone } = this.props;\n // Map of panel ID to filterMap\n const panelFilterMap = new Map();\n // Instead of setting filters one by one for each link,\n // combine them so they could be set in a single call per target panel\n for (let i = 0; i < links.length; i += 1) {\n const { start, end, operator } = links[i];\n if (start.panelId === panelId && end != null) {\n const { panelId: endPanelId, columnName, columnType } = end;\n // Map of column name to column type and filter value\n const filterMap = panelFilterMap.has(endPanelId)\n ? panelFilterMap.get(endPanelId)\n : new Map();\n const filterList =\n filterMap.has(columnName) === true\n ? filterMap.get(columnName).filterList\n : [];\n const {\n visibleIndex: startColumnIndex,\n isExpandable,\n isGrouped,\n } = dataMap[start.columnName];\n let { value } = dataMap[start.columnName];\n let text = `${value}`;\n if (value === null && isExpandable && isGrouped) {\n // Clear filter on empty rollup grouping columns\n value = undefined;\n }\n if (columnType != null && TableUtils.isDateType(columnType)) {\n const dateFilterFormatter = new DateTimeColumnFormatter(dh, {\n timeZone,\n showTimeZone: false,\n showTSeparator: true,\n defaultDateTimeFormatString: DateUtils.FULL_DATE_FORMAT,\n });\n // The values are Dates for dateType values, not string like everything else\n text = dateFilterFormatter.format(value as Date);\n }\n const filter = { operator, text, value, startColumnIndex };\n filterList.push(filter);\n filterMap.set(columnName, {\n columnType,\n filterList,\n });\n panelFilterMap.set(endPanelId, filterMap);\n }\n }\n\n // Apply combined filters to all target panels\n panelFilterMap.forEach((filterMap, endPanelId) => {\n this.setPanelFilterMap(endPanelId, filterMap);\n });\n }\n\n handlePanelCloned(panel: PanelComponent, cloneConfig: { id: string }): void {\n const { links } = this.props;\n const panelId = LayoutUtils.getIdFromPanel(panel);\n const cloneId = cloneConfig.id;\n if (panelId != null) {\n const linksToAdd = LinkerUtils.cloneLinksForPanel(\n links,\n panelId,\n cloneId\n );\n this.addLinks(linksToAdd);\n }\n }\n\n handlePanelDragging(componentId: string): void {\n const { links } = this.props;\n for (let i = 0; i < links.length; i += 1) {\n const link = links[i];\n const { start, end } = link;\n if (start.panelId === componentId || end?.panelId === componentId) {\n this.setState({ isDraggingPanel: true });\n return;\n }\n }\n }\n\n handlePanelDropped(): void {\n this.setState({ isDraggingPanel: false });\n }\n\n handlePanelClosed(panelId: string): void {\n // Delete links on PanelEvent.CLOSE and PanelEvent.CLOSED instead of UNMOUNT\n // because the panels can get unmounted on errors and we want to keep the links if that happens\n log.debug(`Panel ${panelId} closed, deleting links.`);\n this.deleteLinksForPanelId(panelId);\n }\n\n handleLinkSelected(linkId: string): void {\n this.setState({ selectedIds: new Set<string>([linkId]) });\n }\n\n handleLinksUpdated(newLinks: Link[]): void {\n const { localDashboardId, setDashboardLinks } = this.props;\n setDashboardLinks(localDashboardId, newLinks);\n }\n\n handleLayoutStateChanged(): void {\n this.forceUpdate();\n }\n\n handleStateChange(): void {\n this.forceUpdate();\n }\n\n handleExited(): void {\n // Has to be done after linker exit animation to avoid flashing non-isolated links\n const { localDashboardId, setDashboardIsolatedLinkerPanelId } = this.props;\n setDashboardIsolatedLinkerPanelId(localDashboardId, undefined);\n }\n\n /**\n * Delete all links for a provided panel ID. Needs to be done whenever a panel is closed or unmounted.\n * @param panelId The panel ID to delete links for\n */\n deleteLinksForPanelId(panelId: string): void {\n const { links } = this.props;\n for (let i = 0; i < links.length; i += 1) {\n const link = links[i];\n const { start, end, id } = link;\n if (start.panelId === panelId || end?.panelId === panelId) {\n this.handleLinkDeleted(id);\n }\n }\n }\n\n getCachedLinks = memoize(\n (\n links: Link[],\n linkInProgress: Link | undefined,\n isolateForPanelId: string | undefined\n ) => {\n const combinedLinks = [...links];\n\n if (linkInProgress != null && linkInProgress.start != null) {\n combinedLinks.push(linkInProgress);\n }\n\n if (isolateForPanelId !== undefined) {\n return combinedLinks.filter(\n link =>\n link?.start?.panelId === isolateForPanelId ||\n link?.end?.panelId === isolateForPanelId ||\n link?.end == null\n );\n }\n // Show all links in regular linker mode -- both isolated and not\n return combinedLinks;\n }\n );\n\n isOverlayShown(): boolean {\n const { activeTool } = this.props;\n return activeTool === ToolType.LINKER;\n }\n\n updateSelectionValidators(): void {\n const {\n activeTool,\n setDashboardColumnSelectionValidator,\n localDashboardId,\n } = this.props;\n switch (activeTool) {\n case ToolType.LINKER:\n setDashboardColumnSelectionValidator(\n localDashboardId,\n this.isColumnSelectionValid\n );\n break;\n default:\n setDashboardColumnSelectionValidator(localDashboardId, undefined);\n break;\n }\n }\n\n updateLinkInProgressType(type: LinkType = 'invalid'): void {\n this.setState(({ linkInProgress }) => {\n if (linkInProgress !== undefined) {\n return {\n linkInProgress: {\n ...linkInProgress,\n type,\n },\n };\n }\n return null;\n });\n }\n\n isColumnSelectionValid(\n panel: PanelComponent,\n tableColumn?: LinkColumn\n ): boolean {\n const { linkInProgress } = this.state;\n const { isolatedLinkerPanelId } = this.props;\n\n if (tableColumn == null) {\n if (linkInProgress?.start != null) {\n // Link started, end point is not a valid target\n this.updateLinkInProgressType();\n }\n return false;\n }\n\n // TODO: Use preview/original type property when core/#3358 is completed\n if (!isLinkableColumn(tableColumn)) {\n log.debug2('Column is not filterable', tableColumn.description);\n if (linkInProgress?.start != null) {\n this.updateLinkInProgressType('invalid');\n }\n return false;\n }\n\n // Link not started yet - no need to update type\n if (linkInProgress?.start == null) {\n return true;\n }\n\n const { isReversed, start } = linkInProgress;\n const panelId = LayoutUtils.getIdFromPanel(panel);\n if (panelId == null) {\n return false;\n }\n\n const end = {\n panelId,\n panelComponent: LayoutUtils.getComponentNameFromPanel(panel),\n columnName: tableColumn.name,\n columnType: tableColumn.type,\n };\n\n const type =\n isReversed !== undefined && isReversed\n ? LinkerUtils.getLinkType(end, start, isolatedLinkerPanelId)\n : LinkerUtils.getLinkType(start, end, isolatedLinkerPanelId);\n\n this.updateLinkInProgressType(type);\n\n return type !== 'invalid';\n }\n\n render(): JSX.Element | null {\n const { links, isolatedLinkerPanelId, panelManager } = this.props;\n const { linkInProgress, selectedIds, isDraggingPanel } = this.state;\n\n const isLinkOverlayShown = this.isOverlayShown();\n const disabled = linkInProgress != null && linkInProgress.start != null;\n const linkerOverlayMessage =\n isolatedLinkerPanelId === undefined\n ? 'Click a column source, then click a column target to create a filter link. The filter comparison operator used by a selected link can be changed. Delete a filter link by clicking the delete button or with alt+click. Click done when finished.'\n : 'Create a link between the source column button and a table column by clicking on one, then the other. Delete a filter link by clicking the delete button or with alt+click. Click done when finished.';\n\n return !isDraggingPanel ? (\n <FadeTransition\n in={isLinkOverlayShown}\n mountOnEnter\n unmountOnExit\n onExited={this.handleExited}\n >\n <LinkerOverlayContent\n disabled={disabled}\n panelManager={panelManager}\n links={this.getCachedLinks(\n links,\n linkInProgress,\n isolatedLinkerPanelId\n )}\n selectedIds={selectedIds}\n messageText={linkerOverlayMessage}\n onLinkSelected={this.handleLinkSelected}\n onLinkDeleted={this.handleLinkDeleted}\n onAllLinksDeleted={this.handleAllLinksDeleted}\n onLinksUpdated={this.handleLinksUpdated}\n onDone={this.handleDone}\n onCancel={this.handleCancel}\n />\n </FadeTransition>\n ) : null;\n }\n}\n\nconst ConnectedLinker = connector(Linker);\n\nexport default ConnectedLinker;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Linker.js","names":["React","Component","connect","nanoid","memoize","FadeTransition","LayoutUtils","PanelEvent","DateTimeColumnFormatter","DateUtils","TableUtils","Log","Type","FilterType","getActiveTool","getApi","getTimeZone","setActiveTool","setActiveToolAction","getIsolatedLinkerPanelIdForDashboard","getLinksForDashboard","setDashboardLinks","setDashboardLinksAction","addDashboardLinks","addDashboardLinksAction","deleteDashboardLinks","deleteDashboardLinksAction","setDashboardIsolatedLinkerPanelId","setDashboardIsolatedLinkerPanelIdAction","setDashboardColumnSelectionValidator","setDashboardColumnSelectionValidatorAction","ToolType","ChartEvent","IrisGridEvent","InputFilterEvent","LinkerOverlayContent","LinkerUtils","isLinkablePanel","isLinkableColumn","jsx","_jsx","log","module","mapState","state","ownProps","activeTool","dh","isolatedLinkerPanelId","localDashboardId","links","timeZone","connector","Linker","constructor","props","_defineProperty","linkInProgress","isolateForPanelId","combinedLinks","start","push","undefined","filter","link","_link$start","_link$end","panelId","end","handleCancel","bind","handleDone","handlePanelCloned","handleFilterColumnSelect","handleColumnsChanged","handlePanelClosed","handleLayoutStateChanged","handleAllLinksDeleted","handleLinkDeleted","handleLinksUpdated","handleChartColumnSelect","handleGridColumnSelect","handleUpdateValues","handleStateChange","handleExited","handleLinkSelected","handlePanelDragging","handlePanelDropped","isColumnSelectionValid","selectedIds","Set","isDraggingPanel","componentDidMount","layout","startListening","updateSelectionValidators","componentDidUpdate","prevProps","stopListening","DEFAULT","reset","componentDidCatch","error","info","componentWillUnmount","on","eventHub","COLUMN_SELECTED","DATA_SELECTED","STATE_CHANGED","CLONED","COLUMNS_CHANGED","CLOSE","CLOSED","DRAGGING","DROPPED","off","setState","panel","column","columnSelected","debug","isOverlayShown","getIdFromPanel","panelLinks","_link$start2","_link$end2","LINKER","length","columns","linksToDelete","_ref","findColumn","deleteLinks","debug2","isAlwaysEndPoint","arguments","overrideIsolatedLinkerPanelId","panelComponent","getComponentNameFromPanel","name","columnName","type","columnType","newLink","id","isReversed","getLinkType","existingLinkPanelId","_ref2","panelLinkEnd","existingLinkEnd","existingLinkStart","_ref3","panelLinkStart","operator","eq","addLinks","unsetFilterValueForLink","panelManager","endPanel","getOpenedPanelById","unsetFilterValue","setPanelFilterMap","filterMap","setFilterMap","clearAll","forEach","map","_ref4","isolatedLinks","_link$start3","_link$end3","linkId","find","l","dataMap","panelFilterMap","Map","i","endPanelId","has","get","filterList","visibleIndex","startColumnIndex","isExpandable","isGrouped","value","text","concat","isDateType","dateFilterFormatter","showTimeZone","showTSeparator","defaultDateTimeFormatString","FULL_DATE_FORMAT","format","set","cloneConfig","cloneId","linksToAdd","cloneLinksForPanel","componentId","deleteLinksForPanelId","newLinks","forceUpdate","updateLinkInProgressType","_ref5","_objectSpread","tableColumn","description","render","isLinkOverlayShown","disabled","linkerOverlayMessage","in","mountOnEnter","unmountOnExit","onExited","children","getCachedLinks","messageText","onLinkSelected","onLinkDeleted","onAllLinksDeleted","onLinksUpdated","onDone","onCancel","ConnectedLinker"],"sources":["../../src/linker/Linker.tsx"],"sourcesContent":["import React, { Component, type ErrorInfo } from 'react';\nimport { connect, type ConnectedProps } from 'react-redux';\nimport { nanoid } from 'nanoid';\nimport memoize from 'memoize-one';\nimport { FadeTransition } from '@deephaven/components';\nimport {\n LayoutUtils,\n type PanelComponent,\n PanelEvent,\n type PanelManager,\n} from '@deephaven/dashboard';\nimport type GoldenLayout from '@deephaven/golden-layout';\nimport {\n DateTimeColumnFormatter,\n DateUtils,\n type RowDataMap,\n TableUtils,\n} from '@deephaven/jsapi-utils';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { Type as FilterType } from '@deephaven/filters';\nimport {\n getActiveTool,\n getApi,\n getTimeZone,\n setActiveTool as setActiveToolAction,\n type RootState,\n} from '@deephaven/redux';\nimport {\n getIsolatedLinkerPanelIdForDashboard,\n getLinksForDashboard,\n setDashboardLinks as setDashboardLinksAction,\n addDashboardLinks as addDashboardLinksAction,\n deleteDashboardLinks as deleteDashboardLinksAction,\n setDashboardIsolatedLinkerPanelId as setDashboardIsolatedLinkerPanelIdAction,\n setDashboardColumnSelectionValidator as setDashboardColumnSelectionValidatorAction,\n} from '../redux';\nimport ToolType from './ToolType';\nimport { ChartEvent, IrisGridEvent, InputFilterEvent } from '../events';\nimport LinkerOverlayContent from './LinkerOverlayContent';\nimport LinkerUtils, {\n isLinkablePanel,\n type Link,\n type LinkColumn,\n type LinkFilterMap,\n type LinkType,\n isLinkableColumn,\n} from './LinkerUtils';\n\nconst log = Log.module('Linker');\n\ninterface StateProps {\n activeTool: string;\n dh: typeof DhType;\n isolatedLinkerPanelId?: string;\n links: Link[];\n timeZone: string;\n}\n\ninterface OwnProps {\n layout: GoldenLayout;\n panelManager: PanelManager;\n localDashboardId: string;\n}\n\nconst mapState = (state: RootState, ownProps: OwnProps): StateProps => ({\n activeTool: getActiveTool(state),\n dh: getApi(state),\n isolatedLinkerPanelId: getIsolatedLinkerPanelIdForDashboard(\n state,\n ownProps.localDashboardId\n ),\n links: getLinksForDashboard(state, ownProps.localDashboardId),\n timeZone: getTimeZone(state),\n});\n\nconst connector = connect(mapState, {\n setActiveTool: setActiveToolAction,\n setDashboardLinks: setDashboardLinksAction,\n addDashboardLinks: addDashboardLinksAction,\n deleteDashboardLinks: deleteDashboardLinksAction,\n setDashboardIsolatedLinkerPanelId: setDashboardIsolatedLinkerPanelIdAction,\n setDashboardColumnSelectionValidator:\n setDashboardColumnSelectionValidatorAction,\n});\n\nexport type LinkerProps = OwnProps &\n StateProps &\n ConnectedProps<typeof connector>;\n\nexport type LinkerState = {\n linkInProgress?: Link;\n selectedIds: Set<string>;\n isDraggingPanel: boolean;\n};\n\nexport class Linker extends Component<LinkerProps, LinkerState> {\n constructor(props: LinkerProps) {\n super(props);\n\n this.handleCancel = this.handleCancel.bind(this);\n this.handleDone = this.handleDone.bind(this);\n this.handlePanelCloned = this.handlePanelCloned.bind(this);\n this.handleFilterColumnSelect = this.handleFilterColumnSelect.bind(this);\n this.handleColumnsChanged = this.handleColumnsChanged.bind(this);\n this.handlePanelClosed = this.handlePanelClosed.bind(this);\n this.handleLayoutStateChanged = this.handleLayoutStateChanged.bind(this);\n this.handleAllLinksDeleted = this.handleAllLinksDeleted.bind(this);\n this.handleLinkDeleted = this.handleLinkDeleted.bind(this);\n this.handleLinksUpdated = this.handleLinksUpdated.bind(this);\n this.handleChartColumnSelect = this.handleChartColumnSelect.bind(this);\n this.handleGridColumnSelect = this.handleGridColumnSelect.bind(this);\n this.handleUpdateValues = this.handleUpdateValues.bind(this);\n this.handleStateChange = this.handleStateChange.bind(this);\n this.handleExited = this.handleExited.bind(this);\n this.handleLinkSelected = this.handleLinkSelected.bind(this);\n this.handlePanelDragging = this.handlePanelDragging.bind(this);\n this.handlePanelDropped = this.handlePanelDropped.bind(this);\n this.isColumnSelectionValid = this.isColumnSelectionValid.bind(this);\n\n this.state = {\n linkInProgress: undefined,\n selectedIds: new Set<string>(),\n isDraggingPanel: false,\n };\n }\n\n componentDidMount(): void {\n const { layout } = this.props;\n this.startListening(layout);\n this.updateSelectionValidators();\n }\n\n componentDidUpdate(prevProps: LinkerProps): void {\n const { activeTool, layout } = this.props;\n if (layout !== prevProps.layout) {\n this.stopListening(prevProps.layout);\n this.startListening(layout);\n }\n if (activeTool !== prevProps.activeTool) {\n this.updateSelectionValidators();\n if (activeTool === ToolType.DEFAULT) {\n this.reset();\n }\n }\n }\n\n componentDidCatch(error: Error, info: ErrorInfo): void {\n log.error('componentDidCatch', error, info);\n }\n\n componentWillUnmount(): void {\n const { layout } = this.props;\n this.stopListening(layout);\n }\n\n startListening(layout: GoldenLayout): void {\n layout.on('stateChanged', this.handleLayoutStateChanged);\n\n const { eventHub } = layout;\n eventHub.on(IrisGridEvent.COLUMN_SELECTED, this.handleGridColumnSelect);\n eventHub.on(IrisGridEvent.DATA_SELECTED, this.handleUpdateValues);\n eventHub.on(IrisGridEvent.STATE_CHANGED, this.handleStateChange);\n eventHub.on(ChartEvent.COLUMN_SELECTED, this.handleChartColumnSelect);\n eventHub.on(PanelEvent.CLONED, this.handlePanelCloned);\n eventHub.on(\n InputFilterEvent.COLUMN_SELECTED,\n this.handleFilterColumnSelect\n );\n eventHub.on(InputFilterEvent.COLUMNS_CHANGED, this.handleColumnsChanged);\n eventHub.on(PanelEvent.CLOSE, this.handlePanelClosed);\n eventHub.on(PanelEvent.CLOSED, this.handlePanelClosed);\n eventHub.on(PanelEvent.DRAGGING, this.handlePanelDragging);\n eventHub.on(PanelEvent.DROPPED, this.handlePanelDropped);\n }\n\n stopListening(layout: GoldenLayout): void {\n layout.off('stateChanged', this.handleLayoutStateChanged);\n\n const { eventHub } = layout;\n eventHub.off(IrisGridEvent.COLUMN_SELECTED, this.handleGridColumnSelect);\n eventHub.off(IrisGridEvent.DATA_SELECTED, this.handleUpdateValues);\n eventHub.off(IrisGridEvent.STATE_CHANGED, this.handleStateChange);\n eventHub.off(ChartEvent.COLUMN_SELECTED, this.handleChartColumnSelect);\n eventHub.off(PanelEvent.CLONED, this.handlePanelCloned);\n eventHub.off(\n InputFilterEvent.COLUMN_SELECTED,\n this.handleFilterColumnSelect\n );\n eventHub.off(InputFilterEvent.COLUMNS_CHANGED, this.handleColumnsChanged);\n eventHub.off(PanelEvent.CLOSE, this.handlePanelClosed);\n eventHub.off(PanelEvent.CLOSED, this.handlePanelClosed);\n eventHub.off(PanelEvent.DRAGGING, this.handlePanelDragging);\n eventHub.off(PanelEvent.DROPPED, this.handlePanelDropped);\n }\n\n reset(): void {\n this.setState({\n linkInProgress: undefined,\n selectedIds: new Set<string>(),\n });\n }\n\n handleCancel(): void {\n const { linkInProgress } = this.state;\n if (linkInProgress == null) {\n const { setActiveTool } = this.props;\n setActiveTool(ToolType.DEFAULT);\n }\n this.setState({ linkInProgress: undefined });\n }\n\n handleDone(): void {\n const { setActiveTool } = this.props;\n setActiveTool(ToolType.DEFAULT);\n }\n\n handleChartColumnSelect(panel: PanelComponent, column: LinkColumn): void {\n this.columnSelected(panel, column, true);\n }\n\n handleFilterColumnSelect(panel: PanelComponent, column: LinkColumn): void {\n log.debug('handleFilterColumnSelect', this.isOverlayShown());\n const {\n links,\n localDashboardId,\n setActiveTool,\n setDashboardIsolatedLinkerPanelId,\n } = this.props;\n\n const panelId = LayoutUtils.getIdFromPanel(panel);\n const panelLinks = links.filter(\n link => link.start?.panelId === panelId || link.end?.panelId === panelId\n );\n\n if (!this.isOverlayShown() && panelId != null) {\n // Initial click on the filter source button with linker inactive\n // Show linker in isolated mode for panel\n setActiveTool(ToolType.LINKER);\n setDashboardIsolatedLinkerPanelId(localDashboardId, panelId);\n\n if (panelLinks.length === 0) {\n // Source not linked - start new link in isolated linker mode\n // Need to pass panelId for overrideIsolatedLinkerPanelId\n // as redux prop update at this point not yet propagated\n this.columnSelected(panel, column, true, panelId);\n }\n return;\n }\n\n // Filter source clicked with linker active\n this.columnSelected(panel, column, true);\n }\n\n handleColumnsChanged(panel: PanelComponent, columns: LinkColumn[]): void {\n log.debug('handleColumnsChanged', panel, columns);\n const { links } = this.props;\n const panelId = LayoutUtils.getIdFromPanel(panel);\n if (panelId == null) {\n log.error('Invalid panelId', panel);\n return;\n }\n // Delete links that start or end on non-existent column in the updated panel\n const linksToDelete = links.filter(\n ({ start, end }) =>\n (start.panelId === panelId &&\n LinkerUtils.findColumn(columns, start) == null) ||\n (end != null &&\n end.panelId === panelId &&\n LinkerUtils.findColumn(columns, end) == null)\n );\n this.deleteLinks(linksToDelete);\n }\n\n handleGridColumnSelect(panel: PanelComponent, column: LinkColumn): void {\n if (!isLinkableColumn(column)) {\n log.debug2('Column is not filterable');\n return;\n }\n this.columnSelected(panel, column);\n }\n\n /**\n * Track a column selection and build the link from it.\n * @param panel The panel component that is the source for the column selection\n * @param column The column that was selected\n * @param isAlwaysEndPoint True if the selection is always the end point, even if it's the first column selected. Defaults to false.\n * @param overrideIsolatedLinkerPanelId isolatedLinkerPanelId to use when method is called before prop changes propagate\n */\n columnSelected(\n panel: PanelComponent,\n column: LinkColumn,\n isAlwaysEndPoint = false,\n overrideIsolatedLinkerPanelId?: string | string[]\n ): void {\n if (overrideIsolatedLinkerPanelId === undefined && !this.isOverlayShown()) {\n return;\n }\n const { isolatedLinkerPanelId } = this.props;\n const { linkInProgress } = this.state;\n const panelId = LayoutUtils.getIdFromPanel(panel);\n if (panelId == null) {\n return;\n }\n const panelComponent = LayoutUtils.getComponentNameFromPanel(panel);\n const { name: columnName, type: columnType } = column;\n if (linkInProgress == null || linkInProgress.start == null) {\n const newLink: Link = {\n id: nanoid(),\n start: {\n panelId,\n panelComponent,\n columnName,\n columnType,\n },\n // Link starts with type Invalid as linking a source to itself is not allowed\n type: 'invalid',\n isReversed: isAlwaysEndPoint,\n };\n\n log.debug('starting link', newLink);\n\n this.setState({ linkInProgress: newLink });\n } else {\n const { links } = this.props;\n const { start, id, isReversed } = linkInProgress;\n const end = {\n panelId,\n panelComponent,\n columnName,\n columnType,\n };\n\n const type = LinkerUtils.getLinkType(\n isReversed !== undefined && isReversed ? end : start,\n isReversed !== undefined && isReversed ? start : end,\n overrideIsolatedLinkerPanelId ?? isolatedLinkerPanelId\n );\n\n switch (type) {\n case 'invalid':\n log.debug('Ignore invalid link connection', linkInProgress, end);\n return;\n case 'filterSource': {\n // filterSource links have a limit of 1 link per target\n // New link validation passed, delete existing links before adding the new one\n const existingLinkPanelId =\n isReversed !== undefined && isReversed\n ? start.panelId\n : end.panelId;\n // In cases with multiple targets per panel (i.e. chart filters)\n // links would have to be filtered by panelId and columnName and columnType\n const linksToDelete = links.filter(\n ({ end: panelLinkEnd }) =>\n panelLinkEnd?.panelId === existingLinkPanelId\n );\n this.deleteLinks(linksToDelete);\n break;\n }\n case 'chartLink': {\n const existingLinkEnd = isReversed === true ? start : end;\n const existingLinkStart = isReversed === true ? end : start;\n log.debug('creating chartlink', { existingLinkEnd, start, end });\n // Don't allow linking more than one column per source to each chart column\n const linksToDelete = links.filter(\n ({ end: panelLinkEnd, start: panelLinkStart }) =>\n panelLinkStart?.panelId === existingLinkStart.panelId &&\n panelLinkEnd?.panelId === existingLinkEnd.panelId &&\n panelLinkEnd?.columnName === existingLinkEnd.columnName &&\n panelLinkEnd?.columnType === existingLinkEnd.columnType\n );\n this.deleteLinks(linksToDelete);\n break;\n }\n case 'tableLink':\n // No-op\n break;\n }\n\n // Create a completed link from link in progress\n const newLink: Link = {\n start: isReversed !== undefined && isReversed ? end : start,\n end: isReversed !== undefined && isReversed ? start : end,\n id,\n type,\n operator: FilterType.eq,\n };\n log.info('creating link', newLink);\n\n this.setState(\n { linkInProgress: undefined, selectedIds: new Set<string>([id]) },\n () => {\n // Adding link after updating state\n // otherwise both new link and linkInProgress could be rendered at the same time\n // resulting in \"multiple children with same key\" error\n this.addLinks([newLink]);\n }\n );\n }\n }\n\n unsetFilterValueForLink(link: Link): void {\n const { panelManager } = this.props;\n if (link.end) {\n const { end } = link;\n const { panelId, columnName, columnType } = end;\n const endPanel = panelManager.getOpenedPanelById(panelId);\n if (!endPanel) {\n log.debug(\n 'endPanel no longer exists, ignoring unsetFilterValue',\n panelId\n );\n } else if (isLinkablePanel(endPanel)) {\n endPanel.unsetFilterValue(columnName, columnType);\n } else {\n log.debug('endPanel.unsetFilterValue not implemented', endPanel);\n }\n }\n }\n\n /**\n * Set filters for a given panel ID\n * @param panelId ID of panel to set filters on\n * @param filterMap Map of column name to column type, text, and value\n */\n setPanelFilterMap(panelId: string, filterMap: LinkFilterMap): void {\n log.debug('Set filter data for panel:', panelId, filterMap);\n const { panelManager } = this.props;\n const panel = panelManager.getOpenedPanelById(panelId);\n if (!panel) {\n log.debug('panel no longer exists, ignoring setFilterMap', panelId);\n } else if (isLinkablePanel(panel)) {\n panel.setFilterMap(filterMap);\n } else {\n log.debug('panel.setFilterMap not implemented', panelId, panel);\n }\n }\n\n addLinks(links: Link[]): void {\n const { addDashboardLinks, localDashboardId } = this.props;\n addDashboardLinks(localDashboardId, links);\n }\n\n deleteLinks(links: Link[], clearAll = false): void {\n const { localDashboardId } = this.props;\n links.forEach(link => this.unsetFilterValueForLink(link));\n if (clearAll) {\n const { setDashboardLinks } = this.props;\n setDashboardLinks(localDashboardId, []);\n } else if (links.length > 0) {\n const { deleteDashboardLinks } = this.props;\n deleteDashboardLinks(\n localDashboardId,\n links.map(({ id }) => id)\n );\n }\n }\n\n handleAllLinksDeleted(): void {\n const { links, isolatedLinkerPanelId } = this.props;\n if (isolatedLinkerPanelId === undefined) {\n this.deleteLinks(links, true);\n } else {\n const isolatedLinks = links.filter(\n link =>\n link?.start?.panelId === isolatedLinkerPanelId ||\n link?.end?.panelId === isolatedLinkerPanelId\n );\n this.deleteLinks(isolatedLinks);\n }\n this.reset();\n }\n\n handleLinkDeleted(linkId: string): void {\n const { links } = this.props;\n const link = links.find(l => l.id === linkId);\n if (link) {\n this.deleteLinks([link]);\n } else {\n log.error('Unable to find link to delete', linkId);\n }\n }\n\n handleUpdateValues(panel: PanelComponent, dataMap: RowDataMap): void {\n const panelId = LayoutUtils.getIdFromPanel(panel);\n const { dh, links, timeZone } = this.props;\n // Map of panel ID to filterMap\n const panelFilterMap = new Map();\n // Instead of setting filters one by one for each link,\n // combine them so they could be set in a single call per target panel\n for (let i = 0; i < links.length; i += 1) {\n const { start, end, operator } = links[i];\n if (start.panelId === panelId && end != null) {\n const { panelId: endPanelId, columnName, columnType } = end;\n // Map of column name to column type and filter value\n const filterMap = panelFilterMap.has(endPanelId)\n ? panelFilterMap.get(endPanelId)\n : new Map();\n const filterList =\n filterMap.has(columnName) === true\n ? filterMap.get(columnName).filterList\n : [];\n const {\n visibleIndex: startColumnIndex,\n isExpandable,\n isGrouped,\n } = dataMap[start.columnName];\n let { value } = dataMap[start.columnName];\n let text = `${value}`;\n if (value === null && isExpandable && isGrouped) {\n // Clear filter on empty rollup grouping columns\n value = undefined;\n }\n if (columnType != null && TableUtils.isDateType(columnType)) {\n const dateFilterFormatter = new DateTimeColumnFormatter(dh, {\n timeZone,\n showTimeZone: false,\n showTSeparator: true,\n defaultDateTimeFormatString: DateUtils.FULL_DATE_FORMAT,\n });\n // The values are Dates for dateType values, not string like everything else\n text = dateFilterFormatter.format(value as Date);\n }\n const filter = { operator, text, value, startColumnIndex };\n filterList.push(filter);\n filterMap.set(columnName, {\n columnType,\n filterList,\n });\n panelFilterMap.set(endPanelId, filterMap);\n }\n }\n\n // Apply combined filters to all target panels\n panelFilterMap.forEach((filterMap, endPanelId) => {\n this.setPanelFilterMap(endPanelId, filterMap);\n });\n }\n\n handlePanelCloned(panel: PanelComponent, cloneConfig: { id: string }): void {\n const { links } = this.props;\n const panelId = LayoutUtils.getIdFromPanel(panel);\n const cloneId = cloneConfig.id;\n if (panelId != null) {\n const linksToAdd = LinkerUtils.cloneLinksForPanel(\n links,\n panelId,\n cloneId\n );\n this.addLinks(linksToAdd);\n }\n }\n\n handlePanelDragging(componentId: string): void {\n const { links } = this.props;\n for (let i = 0; i < links.length; i += 1) {\n const link = links[i];\n const { start, end } = link;\n if (start.panelId === componentId || end?.panelId === componentId) {\n this.setState({ isDraggingPanel: true });\n return;\n }\n }\n }\n\n handlePanelDropped(): void {\n this.setState({ isDraggingPanel: false });\n }\n\n handlePanelClosed(panelId: string): void {\n // Delete links on PanelEvent.CLOSE and PanelEvent.CLOSED instead of UNMOUNT\n // because the panels can get unmounted on errors and we want to keep the links if that happens\n log.debug(`Panel ${panelId} closed, deleting links.`);\n this.deleteLinksForPanelId(panelId);\n }\n\n handleLinkSelected(linkId: string): void {\n this.setState({ selectedIds: new Set<string>([linkId]) });\n }\n\n handleLinksUpdated(newLinks: Link[]): void {\n const { localDashboardId, setDashboardLinks } = this.props;\n setDashboardLinks(localDashboardId, newLinks);\n }\n\n handleLayoutStateChanged(): void {\n this.forceUpdate();\n }\n\n handleStateChange(): void {\n this.forceUpdate();\n }\n\n handleExited(): void {\n // Has to be done after linker exit animation to avoid flashing non-isolated links\n const { localDashboardId, setDashboardIsolatedLinkerPanelId } = this.props;\n setDashboardIsolatedLinkerPanelId(localDashboardId, undefined);\n }\n\n /**\n * Delete all links for a provided panel ID. Needs to be done whenever a panel is closed or unmounted.\n * @param panelId The panel ID to delete links for\n */\n deleteLinksForPanelId(panelId: string): void {\n const { links } = this.props;\n for (let i = 0; i < links.length; i += 1) {\n const link = links[i];\n const { start, end, id } = link;\n if (start.panelId === panelId || end?.panelId === panelId) {\n this.handleLinkDeleted(id);\n }\n }\n }\n\n getCachedLinks = memoize(\n (\n links: Link[],\n linkInProgress: Link | undefined,\n isolateForPanelId: string | undefined\n ) => {\n const combinedLinks = [...links];\n\n if (linkInProgress != null && linkInProgress.start != null) {\n combinedLinks.push(linkInProgress);\n }\n\n if (isolateForPanelId !== undefined) {\n return combinedLinks.filter(\n link =>\n link?.start?.panelId === isolateForPanelId ||\n link?.end?.panelId === isolateForPanelId ||\n link?.end == null\n );\n }\n // Show all links in regular linker mode -- both isolated and not\n return combinedLinks;\n }\n );\n\n isOverlayShown(): boolean {\n const { activeTool } = this.props;\n return activeTool === ToolType.LINKER;\n }\n\n updateSelectionValidators(): void {\n const {\n activeTool,\n setDashboardColumnSelectionValidator,\n localDashboardId,\n } = this.props;\n switch (activeTool) {\n case ToolType.LINKER:\n setDashboardColumnSelectionValidator(\n localDashboardId,\n this.isColumnSelectionValid\n );\n break;\n default:\n setDashboardColumnSelectionValidator(localDashboardId, undefined);\n break;\n }\n }\n\n updateLinkInProgressType(type: LinkType = 'invalid'): void {\n this.setState(({ linkInProgress }) => {\n if (linkInProgress !== undefined) {\n return {\n linkInProgress: {\n ...linkInProgress,\n type,\n },\n };\n }\n return null;\n });\n }\n\n isColumnSelectionValid(\n panel: PanelComponent,\n tableColumn?: LinkColumn\n ): boolean {\n const { linkInProgress } = this.state;\n const { isolatedLinkerPanelId } = this.props;\n\n if (tableColumn == null) {\n if (linkInProgress?.start != null) {\n // Link started, end point is not a valid target\n this.updateLinkInProgressType();\n }\n return false;\n }\n\n // TODO: Use preview/original type property when core/#3358 is completed\n if (!isLinkableColumn(tableColumn)) {\n log.debug2('Column is not filterable', tableColumn.description);\n if (linkInProgress?.start != null) {\n this.updateLinkInProgressType('invalid');\n }\n return false;\n }\n\n // Link not started yet - no need to update type\n if (linkInProgress?.start == null) {\n return true;\n }\n\n const { isReversed, start } = linkInProgress;\n const panelId = LayoutUtils.getIdFromPanel(panel);\n if (panelId == null) {\n return false;\n }\n\n const end = {\n panelId,\n panelComponent: LayoutUtils.getComponentNameFromPanel(panel),\n columnName: tableColumn.name,\n columnType: tableColumn.type,\n };\n\n const type =\n isReversed !== undefined && isReversed\n ? LinkerUtils.getLinkType(end, start, isolatedLinkerPanelId)\n : LinkerUtils.getLinkType(start, end, isolatedLinkerPanelId);\n\n this.updateLinkInProgressType(type);\n\n return type !== 'invalid';\n }\n\n render(): JSX.Element | null {\n const { links, isolatedLinkerPanelId, panelManager } = this.props;\n const { linkInProgress, selectedIds, isDraggingPanel } = this.state;\n\n const isLinkOverlayShown = this.isOverlayShown();\n const disabled = linkInProgress != null && linkInProgress.start != null;\n const linkerOverlayMessage =\n isolatedLinkerPanelId === undefined\n ? 'Click a column source, then click a column target to create a filter link. The filter comparison operator used by a selected link can be changed. Delete a filter link by clicking the delete button or with alt+click. Click done when finished.'\n : 'Create a link between the source column button and a table column by clicking on one, then the other. Delete a filter link by clicking the delete button or with alt+click. Click done when finished.';\n\n return !isDraggingPanel ? (\n <FadeTransition\n in={isLinkOverlayShown}\n mountOnEnter\n unmountOnExit\n onExited={this.handleExited}\n >\n <LinkerOverlayContent\n disabled={disabled}\n panelManager={panelManager}\n links={this.getCachedLinks(\n links,\n linkInProgress,\n isolatedLinkerPanelId\n )}\n selectedIds={selectedIds}\n messageText={linkerOverlayMessage}\n onLinkSelected={this.handleLinkSelected}\n onLinkDeleted={this.handleLinkDeleted}\n onAllLinksDeleted={this.handleAllLinksDeleted}\n onLinksUpdated={this.handleLinksUpdated}\n onDone={this.handleDone}\n onCancel={this.handleCancel}\n />\n </FadeTransition>\n ) : null;\n }\n}\n\nconst ConnectedLinker = connector(Linker);\n\nexport default ConnectedLinker;\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { Component, MouseEvent } from 'react';
2
- import { DropdownAction } from '@deephaven/components';
3
- import { TypeValue as FilterTypeValue } from '@deephaven/filters';
1
+ import { Component, type MouseEvent } from 'react';
2
+ import { type DropdownAction } from '@deephaven/components';
3
+ import { type TypeValue as FilterTypeValue } from '@deephaven/filters';
4
4
  import './LinkerLink.scss';
5
- import { LinkType } from './LinkerUtils';
5
+ import { type LinkType } from './LinkerUtils';
6
6
  export type LinkerLinkProps = {
7
7
  x1: number;
8
8
  y1: number;
@@ -1 +1 @@
1
- {"version":3,"file":"LinkerLink.d.ts","sourceRoot":"","sources":["../../src/linker/LinkerLink.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAGrD,OAAO,EAAU,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAG7E,OAAO,EAEL,SAAS,IAAI,eAAe,EAI7B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAiBzC,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;CAChE,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,qBAAa,UAAW,SAAQ,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IACzE,MAAM,CAAC,YAAY;;;mBAGN,IAAI;oBAGH,IAAI;MAGhB;IAEF;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAM9D,MAAM,CAAC,qBAAqB,CAC1B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,eAAe,GAC1B,MAAM;gBA6BG,KAAK,EAAE,eAAe;IAclC,YAAY,WACD,MAAM,cAAc,MAAM,KAAG,cAAc,EAAE,CA+BtD;IAEF,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI;IAYpD,gBAAgB,IAAI,IAAI;IAMxB,gBAAgB,IAAI,IAAI;IAMxB,YAAY,IAAI,IAAI;IAKpB,kBAAkB,IAAI,cAAc,EAAE;IAQtC,MAAM,IAAI,GAAG,CAAC,OAAO;CAmLtB;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"LinkerLink.d.ts","sourceRoot":"","sources":["../../src/linker/LinkerLink.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,OAAO,CAAC;AAG1D,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAEL,KAAK,SAAS,IAAI,eAAe,EAIlC,MAAM,oBAAoB,CAAC;AAG5B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAC;AAiB9C,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;CAChE,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,qBAAa,UAAW,SAAQ,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IACzE,MAAM,CAAC,YAAY;;;mBAGN,IAAI;oBAGH,IAAI;MAGhB;IAEF;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAM9D,MAAM,CAAC,qBAAqB,CAC1B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,eAAe,GAC1B,MAAM;gBA6BG,KAAK,EAAE,eAAe;IAclC,YAAY,WACD,MAAM,cAAc,MAAM,KAAG,cAAc,EAAE,CA+BtD;IAEF,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI;IAYpD,gBAAgB,IAAI,IAAI;IAMxB,gBAAgB,IAAI,IAAI;IAMxB,YAAY,IAAI,IAAI;IAKpB,kBAAkB,IAAI,cAAc,EAAE;IAQtC,MAAM,IAAI,GAAG,CAAC,OAAO;CAmLtB;AAED,eAAe,UAAU,CAAC"}