@deephaven/dashboard-core-plugins 0.5.2-matplotlib.3 → 0.6.1-demo.10

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 (354) hide show
  1. package/dist/{src/ChartPlugin.d.ts → ChartPlugin.d.ts} +0 -0
  2. package/dist/ChartPlugin.d.ts.map +1 -0
  3. package/dist/ChartPlugin.js +25 -22
  4. package/dist/ChartPlugin.js.map +1 -1
  5. package/dist/{src/ConsolePlugin.d.ts → ConsolePlugin.d.ts} +0 -0
  6. package/dist/ConsolePlugin.d.ts.map +1 -0
  7. package/dist/ConsolePlugin.js +141 -139
  8. package/dist/ConsolePlugin.js.map +1 -1
  9. package/dist/{src/FilterPlugin.d.ts → FilterPlugin.d.ts} +0 -0
  10. package/dist/FilterPlugin.d.ts.map +1 -0
  11. package/dist/FilterPlugin.js +114 -116
  12. package/dist/FilterPlugin.js.map +1 -1
  13. package/dist/{src/GridPlugin.d.ts → GridPlugin.d.ts} +0 -0
  14. package/dist/GridPlugin.d.ts.map +1 -0
  15. package/dist/GridPlugin.js +29 -26
  16. package/dist/GridPlugin.js.map +1 -1
  17. package/dist/{src/LinkerPlugin.d.ts → LinkerPlugin.d.ts} +0 -0
  18. package/dist/LinkerPlugin.d.ts.map +1 -0
  19. package/dist/LinkerPlugin.js +7 -5
  20. package/dist/LinkerPlugin.js.map +1 -1
  21. package/dist/{src/MarkdownPlugin.d.ts → MarkdownPlugin.d.ts} +0 -0
  22. package/dist/MarkdownPlugin.d.ts.map +1 -0
  23. package/dist/MarkdownPlugin.js +44 -45
  24. package/dist/MarkdownPlugin.js.map +1 -1
  25. package/dist/PandasPlugin.d.ts +8 -0
  26. package/dist/PandasPlugin.d.ts.map +1 -0
  27. package/dist/PandasPlugin.js +12 -12
  28. package/dist/PandasPlugin.js.map +1 -1
  29. package/dist/{src/controls → controls}/ControlType.d.ts +2 -0
  30. package/dist/controls/ControlType.d.ts.map +1 -0
  31. package/dist/controls/ControlType.js +5 -5
  32. package/dist/controls/ControlType.js.map +1 -1
  33. package/dist/{src/controls → controls}/dropdown-filter/DropdownFilter.d.ts +6 -0
  34. package/dist/controls/dropdown-filter/DropdownFilter.d.ts.map +1 -0
  35. package/dist/controls/dropdown-filter/DropdownFilter.js +356 -394
  36. package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
  37. package/dist/{src/controls → controls}/input-filter/InputFilter.d.ts +6 -0
  38. package/dist/controls/input-filter/InputFilter.d.ts.map +1 -0
  39. package/dist/controls/input-filter/InputFilter.js +256 -270
  40. package/dist/controls/input-filter/InputFilter.js.map +1 -1
  41. package/dist/{src/controls → controls}/markdown/MarkdownContainer.d.ts +0 -0
  42. package/dist/controls/markdown/MarkdownContainer.d.ts.map +1 -0
  43. package/dist/controls/markdown/MarkdownContainer.js +18 -56
  44. package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
  45. package/dist/{src/controls → controls}/markdown/MarkdownEditor.d.ts +0 -0
  46. package/dist/controls/markdown/MarkdownEditor.d.ts.map +1 -0
  47. package/dist/controls/markdown/MarkdownEditor.js +36 -75
  48. package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
  49. package/dist/{src/controls → controls}/markdown/MarkdownStartPage.d.ts +0 -0
  50. package/dist/controls/markdown/MarkdownStartPage.d.ts.map +1 -0
  51. package/dist/controls/markdown/MarkdownStartPage.js +93 -133
  52. package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
  53. package/dist/{src/controls → controls}/markdown/MarkdownUtils.d.ts +0 -0
  54. package/dist/controls/markdown/MarkdownUtils.d.ts.map +1 -0
  55. package/dist/controls/markdown/MarkdownUtils.js +17 -32
  56. package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
  57. package/dist/{src/events → events}/ChartEvent.d.ts +0 -0
  58. package/dist/events/ChartEvent.d.ts.map +1 -0
  59. package/dist/events/ChartEvent.js +1 -5
  60. package/dist/events/ChartEvent.js.map +1 -1
  61. package/dist/{src/events → events}/ConsoleEvent.d.ts +0 -0
  62. package/dist/events/ConsoleEvent.d.ts.map +1 -0
  63. package/dist/events/ConsoleEvent.js +1 -5
  64. package/dist/events/ConsoleEvent.js.map +1 -1
  65. package/dist/{src/events → events}/ControlEvent.d.ts +0 -0
  66. package/dist/events/ControlEvent.d.ts.map +1 -0
  67. package/dist/events/ControlEvent.js +1 -5
  68. package/dist/events/ControlEvent.js.map +1 -1
  69. package/dist/{src/events → events}/InputFilterEvent.d.ts +2 -0
  70. package/dist/events/InputFilterEvent.d.ts.map +1 -0
  71. package/dist/events/InputFilterEvent.js +3 -5
  72. package/dist/events/InputFilterEvent.js.map +1 -1
  73. package/dist/{src/events → events}/IrisGridEvent.d.ts +0 -0
  74. package/dist/events/IrisGridEvent.d.ts.map +1 -0
  75. package/dist/events/IrisGridEvent.js +1 -5
  76. package/dist/events/IrisGridEvent.js.map +1 -1
  77. package/dist/{src/events → events}/MarkdownEvent.d.ts +0 -0
  78. package/dist/events/MarkdownEvent.d.ts.map +1 -0
  79. package/dist/{src/events → events}/NotebookEvent.d.ts +0 -0
  80. package/dist/events/NotebookEvent.d.ts.map +1 -0
  81. package/dist/events/NotebookEvent.js +1 -5
  82. package/dist/events/NotebookEvent.js.map +1 -1
  83. package/dist/{src/events → events}/PQEvent.d.ts +0 -0
  84. package/dist/events/PQEvent.d.ts.map +1 -0
  85. package/dist/events/PQEvent.js +1 -5
  86. package/dist/events/PQEvent.js.map +1 -1
  87. package/dist/{src/events → events}/PandasEvent.d.ts +0 -0
  88. package/dist/events/PandasEvent.d.ts.map +1 -0
  89. package/dist/events/PandasEvent.js +1 -5
  90. package/dist/events/PandasEvent.js.map +1 -1
  91. package/dist/{src/events → events}/TabEvent.d.ts +0 -0
  92. package/dist/events/TabEvent.d.ts.map +1 -0
  93. package/dist/events/TabEvent.js +1 -5
  94. package/dist/events/TabEvent.js.map +1 -1
  95. package/dist/{dist/events → events}/index.d.ts +0 -1
  96. package/dist/{dist/events → events}/index.d.ts.map +1 -1
  97. package/dist/events/index.js +9 -10
  98. package/dist/events/index.js.map +1 -1
  99. package/dist/{src/index.d.ts → index.d.ts} +0 -1
  100. package/dist/index.d.ts.map +1 -0
  101. package/dist/index.js +10 -11
  102. package/dist/index.js.map +1 -1
  103. package/dist/{src/linker → linker}/Linker.d.ts +1 -1
  104. package/dist/linker/Linker.d.ts.map +1 -0
  105. package/dist/linker/Linker.js +594 -606
  106. package/dist/linker/Linker.js.map +1 -1
  107. package/dist/{src/linker → linker}/LinkerLink.d.ts +0 -0
  108. package/dist/linker/LinkerLink.d.ts.map +1 -0
  109. package/dist/linker/LinkerLink.js +92 -126
  110. package/dist/linker/LinkerLink.js.map +1 -1
  111. package/dist/{src/linker → linker}/LinkerOverlayContent.d.ts +0 -0
  112. package/dist/linker/LinkerOverlayContent.d.ts.map +1 -0
  113. package/dist/linker/LinkerOverlayContent.js +162 -220
  114. package/dist/linker/LinkerOverlayContent.js.map +1 -1
  115. package/dist/{src/linker → linker}/LinkerUtils.d.ts +0 -0
  116. package/dist/linker/LinkerUtils.d.ts.map +1 -0
  117. package/dist/linker/LinkerUtils.js +105 -114
  118. package/dist/linker/LinkerUtils.js.map +1 -1
  119. package/dist/{src/linker → linker}/ToolType.d.ts +0 -0
  120. package/dist/{src/linker → linker}/ToolType.d.ts.map +1 -1
  121. package/dist/{src/panels → panels}/ChartColumnSelectorOverlay.d.ts +0 -0
  122. package/dist/panels/ChartColumnSelectorOverlay.d.ts.map +1 -0
  123. package/dist/panels/ChartColumnSelectorOverlay.js +19 -25
  124. package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
  125. package/dist/{src/panels → panels}/ChartFilterOverlay.d.ts +0 -0
  126. package/dist/panels/ChartFilterOverlay.d.ts.map +1 -0
  127. package/dist/panels/ChartFilterOverlay.js +18 -24
  128. package/dist/panels/ChartFilterOverlay.js.map +1 -1
  129. package/dist/{src/panels → panels}/ChartPanel.d.ts +3 -0
  130. package/dist/panels/ChartPanel.d.ts.map +1 -0
  131. package/dist/panels/ChartPanel.js +839 -873
  132. package/dist/panels/ChartPanel.js.map +1 -1
  133. package/dist/{src/panels → panels}/CommandHistoryPanel.d.ts +0 -0
  134. package/dist/panels/CommandHistoryPanel.d.ts.map +1 -0
  135. package/dist/panels/CommandHistoryPanel.js +160 -186
  136. package/dist/panels/CommandHistoryPanel.js.map +1 -1
  137. package/dist/{src/panels → panels}/ConsolePanel.d.ts +1 -1
  138. package/dist/panels/ConsolePanel.d.ts.map +1 -0
  139. package/dist/panels/ConsolePanel.js +327 -374
  140. package/dist/panels/ConsolePanel.js.map +1 -1
  141. package/dist/{src/panels → panels}/DropdownFilterPanel.d.ts +6 -0
  142. package/dist/panels/DropdownFilterPanel.d.ts.map +1 -0
  143. package/dist/panels/DropdownFilterPanel.js +537 -566
  144. package/dist/panels/DropdownFilterPanel.js.map +1 -1
  145. package/dist/{src/panels → panels}/FileExplorerPanel.d.ts +6 -1
  146. package/dist/panels/FileExplorerPanel.d.ts.map +1 -0
  147. package/dist/panels/FileExplorerPanel.js +208 -210
  148. package/dist/panels/FileExplorerPanel.js.map +1 -1
  149. package/dist/panels/FilterSetManager.css +111 -0
  150. package/dist/panels/FilterSetManager.css.map +1 -0
  151. package/dist/panels/FilterSetManager.d.ts +66 -0
  152. package/dist/panels/FilterSetManager.d.ts.map +1 -0
  153. package/dist/panels/FilterSetManager.js +732 -0
  154. package/dist/panels/FilterSetManager.js.map +1 -0
  155. package/dist/panels/FilterSetManagerPanel.css +33 -0
  156. package/dist/panels/FilterSetManagerPanel.css.map +1 -0
  157. package/dist/panels/FilterSetManagerPanel.d.ts +69 -0
  158. package/dist/panels/FilterSetManagerPanel.d.ts.map +1 -0
  159. package/dist/panels/FilterSetManagerPanel.js +383 -0
  160. package/dist/panels/FilterSetManagerPanel.js.map +1 -0
  161. package/dist/{src/panels → panels}/InputFilterPanel.d.ts +7 -0
  162. package/dist/panels/InputFilterPanel.d.ts.map +1 -0
  163. package/dist/panels/InputFilterPanel.js +198 -206
  164. package/dist/panels/InputFilterPanel.js.map +1 -1
  165. package/dist/{src/panels → panels}/IrisGridPanel.d.ts +11 -3
  166. package/dist/panels/IrisGridPanel.d.ts.map +1 -0
  167. package/dist/panels/IrisGridPanel.js +779 -771
  168. package/dist/panels/IrisGridPanel.js.map +1 -1
  169. package/dist/{src/panels → panels}/LogPanel.d.ts +0 -0
  170. package/dist/panels/LogPanel.d.ts.map +1 -0
  171. package/dist/panels/LogPanel.js +80 -116
  172. package/dist/panels/LogPanel.js.map +1 -1
  173. package/dist/panels/MarkdownNotebookContainer.d.ts +21 -0
  174. package/dist/panels/MarkdownNotebookContainer.d.ts.map +1 -0
  175. package/dist/panels/MarkdownNotebookContainer.js +35 -0
  176. package/dist/panels/MarkdownNotebookContainer.js.map +1 -0
  177. package/dist/panels/MarkdownNotebookEditor.d.ts +46 -0
  178. package/dist/panels/MarkdownNotebookEditor.d.ts.map +1 -0
  179. package/dist/panels/MarkdownNotebookEditor.js +257 -0
  180. package/dist/panels/MarkdownNotebookEditor.js.map +1 -0
  181. package/dist/panels/MarkdownNotebookPanel.css +127 -0
  182. package/dist/panels/MarkdownNotebookPanel.css.map +1 -0
  183. package/dist/panels/MarkdownNotebookPanel.d.ts +91 -0
  184. package/dist/panels/MarkdownNotebookPanel.d.ts.map +1 -0
  185. package/dist/panels/MarkdownNotebookPanel.js +446 -0
  186. package/dist/panels/MarkdownNotebookPanel.js.map +1 -0
  187. package/dist/{src/panels → panels}/MarkdownPanel.d.ts +0 -0
  188. package/dist/panels/MarkdownPanel.d.ts.map +1 -0
  189. package/dist/panels/MarkdownPanel.js +165 -199
  190. package/dist/panels/MarkdownPanel.js.map +1 -1
  191. package/dist/{src/panels → panels}/NotebookPanel.d.ts +3 -1
  192. package/dist/panels/NotebookPanel.d.ts.map +1 -0
  193. package/dist/panels/NotebookPanel.js +870 -862
  194. package/dist/panels/NotebookPanel.js.map +1 -1
  195. package/dist/{src/panels → panels}/PandasPanel.d.ts +0 -0
  196. package/dist/panels/PandasPanel.d.ts.map +1 -0
  197. package/dist/panels/PandasPanel.js +56 -90
  198. package/dist/panels/PandasPanel.js.map +1 -1
  199. package/dist/{src/panels → panels}/Panel.d.ts +0 -0
  200. package/dist/panels/Panel.d.ts.map +1 -0
  201. package/dist/panels/Panel.js +282 -313
  202. package/dist/panels/Panel.js.map +1 -1
  203. package/dist/{src/panels → panels}/PanelContextMenu.d.ts +0 -0
  204. package/dist/panels/PanelContextMenu.d.ts.map +1 -0
  205. package/dist/panels/PanelContextMenu.js +107 -158
  206. package/dist/panels/PanelContextMenu.js.map +1 -1
  207. package/dist/{src/panels → panels}/RenameDialog.d.ts +0 -0
  208. package/dist/panels/RenameDialog.d.ts.map +1 -0
  209. package/dist/panels/RenameDialog.js +144 -172
  210. package/dist/panels/RenameDialog.js.map +1 -1
  211. package/dist/{src/panels → panels}/Shortcuts.d.ts +0 -0
  212. package/dist/panels/Shortcuts.d.ts.map +1 -0
  213. package/dist/panels/Shortcuts.js +1 -1
  214. package/dist/panels/Shortcuts.js.map +1 -1
  215. package/dist/{src/panels → panels}/WidgetPanel.d.ts +0 -0
  216. package/dist/panels/WidgetPanel.d.ts.map +1 -0
  217. package/dist/panels/WidgetPanel.js +133 -163
  218. package/dist/panels/WidgetPanel.js.map +1 -1
  219. package/dist/{src/panels → panels}/WidgetPanelTooltip.d.ts +0 -0
  220. package/dist/panels/WidgetPanelTooltip.d.ts.map +1 -0
  221. package/dist/panels/WidgetPanelTooltip.js +7 -5
  222. package/dist/panels/WidgetPanelTooltip.js.map +1 -1
  223. package/dist/{src/panels → panels}/index.d.ts +1 -1
  224. package/dist/{src/events → panels}/index.d.ts.map +1 -1
  225. package/dist/panels/index.js +16 -16
  226. package/dist/panels/index.js.map +1 -1
  227. package/dist/{src/prop-types → prop-types}/CommonPropTypes.d.ts +0 -0
  228. package/dist/prop-types/CommonPropTypes.d.ts.map +1 -0
  229. package/dist/prop-types/CommonPropTypes.js +4 -8
  230. package/dist/prop-types/CommonPropTypes.js.map +1 -1
  231. package/dist/{src/prop-types → prop-types}/UIPropTypes.d.ts +0 -0
  232. package/dist/prop-types/UIPropTypes.d.ts.map +1 -0
  233. package/dist/prop-types/UIPropTypes.js +6 -6
  234. package/dist/prop-types/UIPropTypes.js.map +1 -1
  235. package/dist/{src/prop-types → prop-types}/index.d.ts +0 -0
  236. package/dist/{src/panels → prop-types}/index.d.ts.map +1 -1
  237. package/dist/prop-types/index.js +2 -2
  238. package/dist/prop-types/index.js.map +1 -1
  239. package/dist/{src/redux → redux}/actionTypes.d.ts +0 -0
  240. package/dist/redux/actionTypes.d.ts.map +1 -0
  241. package/dist/{src/redux → redux}/actions.d.ts +1 -0
  242. package/dist/redux/actions.d.ts.map +1 -0
  243. package/dist/redux/actions.js +33 -54
  244. package/dist/redux/actions.js.map +1 -1
  245. package/dist/{src/redux → redux}/index.d.ts +0 -0
  246. package/dist/redux/index.d.ts.map +1 -0
  247. package/dist/redux/index.js +6 -21
  248. package/dist/redux/index.js.map +1 -1
  249. package/dist/{src/redux → redux}/reducers/index.d.ts +0 -0
  250. package/dist/{src/prop-types → redux/reducers}/index.d.ts.map +1 -1
  251. package/dist/redux/reducers/index.js +2 -2
  252. package/dist/redux/reducers/index.js.map +1 -1
  253. package/dist/{src/redux → redux}/reducers/sessionWrapper.d.ts +0 -0
  254. package/dist/redux/reducers/sessionWrapper.d.ts.map +1 -0
  255. package/dist/redux/reducers/sessionWrapper.js +1 -1
  256. package/dist/redux/reducers/sessionWrapper.js.map +1 -1
  257. package/dist/{src/redux → redux}/selectors.d.ts +1 -0
  258. package/dist/redux/selectors.d.ts.map +1 -0
  259. package/dist/redux/selectors.js +22 -18
  260. package/dist/redux/selectors.js.map +1 -1
  261. package/dist/tsconfig.tsbuildinfo +1 -1
  262. package/package.json +27 -54
  263. package/dist/MatPlotLibPlugin.js +0 -45
  264. package/dist/MatPlotLibPlugin.js.map +0 -1
  265. package/dist/dist/events/ChartEvent.d.ts +0 -3
  266. package/dist/dist/events/ChartEvent.d.ts.map +0 -1
  267. package/dist/dist/events/ConsoleEvent.d.ts +0 -3
  268. package/dist/dist/events/ConsoleEvent.d.ts.map +0 -1
  269. package/dist/dist/events/ControlEvent.d.ts +0 -3
  270. package/dist/dist/events/ControlEvent.d.ts.map +0 -1
  271. package/dist/dist/events/InputFilterEvent.d.ts +0 -3
  272. package/dist/dist/events/InputFilterEvent.d.ts.map +0 -1
  273. package/dist/dist/events/IrisGridEvent.d.ts +0 -3
  274. package/dist/dist/events/IrisGridEvent.d.ts.map +0 -1
  275. package/dist/dist/events/MarkdownEvent.d.ts +0 -5
  276. package/dist/dist/events/MarkdownEvent.d.ts.map +0 -1
  277. package/dist/dist/events/MatPlotLibEvent.d.ts +0 -3
  278. package/dist/dist/events/MatPlotLibEvent.d.ts.map +0 -1
  279. package/dist/dist/events/NotebookEvent.d.ts +0 -3
  280. package/dist/dist/events/NotebookEvent.d.ts.map +0 -1
  281. package/dist/dist/events/PandasEvent.d.ts +0 -3
  282. package/dist/dist/events/PandasEvent.d.ts.map +0 -1
  283. package/dist/dist/events/TabEvent.d.ts +0 -3
  284. package/dist/dist/events/TabEvent.d.ts.map +0 -1
  285. package/dist/events/MatPlotLibEvent.js +0 -12
  286. package/dist/events/MatPlotLibEvent.js.map +0 -1
  287. package/dist/panels/MatPlotLibPanel.css +0 -11
  288. package/dist/panels/MatPlotLibPanel.css.map +0 -1
  289. package/dist/panels/MatPlotLibPanel.js +0 -124
  290. package/dist/panels/MatPlotLibPanel.js.map +0 -1
  291. package/dist/src/ChartPlugin.d.ts.map +0 -1
  292. package/dist/src/ConsolePlugin.d.ts.map +0 -1
  293. package/dist/src/FilterPlugin.d.ts.map +0 -1
  294. package/dist/src/GridPlugin.d.ts.map +0 -1
  295. package/dist/src/LinkerPlugin.d.ts.map +0 -1
  296. package/dist/src/MarkdownPlugin.d.ts.map +0 -1
  297. package/dist/src/MatPlotLibPlugin.d.ts +0 -5
  298. package/dist/src/MatPlotLibPlugin.d.ts.map +0 -1
  299. package/dist/src/PandasPlugin.d.ts +0 -5
  300. package/dist/src/PandasPlugin.d.ts.map +0 -1
  301. package/dist/src/controls/ControlType.d.ts.map +0 -1
  302. package/dist/src/controls/dropdown-filter/DropdownFilter.d.ts.map +0 -1
  303. package/dist/src/controls/input-filter/InputFilter.d.ts.map +0 -1
  304. package/dist/src/controls/markdown/MarkdownContainer.d.ts.map +0 -1
  305. package/dist/src/controls/markdown/MarkdownEditor.d.ts.map +0 -1
  306. package/dist/src/controls/markdown/MarkdownStartPage.d.ts.map +0 -1
  307. package/dist/src/controls/markdown/MarkdownUtils.d.ts.map +0 -1
  308. package/dist/src/events/ChartEvent.d.ts.map +0 -1
  309. package/dist/src/events/ConsoleEvent.d.ts.map +0 -1
  310. package/dist/src/events/ControlEvent.d.ts.map +0 -1
  311. package/dist/src/events/InputFilterEvent.d.ts.map +0 -1
  312. package/dist/src/events/IrisGridEvent.d.ts.map +0 -1
  313. package/dist/src/events/MarkdownEvent.d.ts.map +0 -1
  314. package/dist/src/events/MatPlotLibEvent.d.ts +0 -5
  315. package/dist/src/events/MatPlotLibEvent.d.ts.map +0 -1
  316. package/dist/src/events/NotebookEvent.d.ts.map +0 -1
  317. package/dist/src/events/PQEvent.d.ts.map +0 -1
  318. package/dist/src/events/PandasEvent.d.ts.map +0 -1
  319. package/dist/src/events/TabEvent.d.ts.map +0 -1
  320. package/dist/src/events/index.d.ts +0 -11
  321. package/dist/src/index.d.ts.map +0 -1
  322. package/dist/src/linker/Linker.d.ts.map +0 -1
  323. package/dist/src/linker/LinkerLink.d.ts.map +0 -1
  324. package/dist/src/linker/LinkerOverlayContent.d.ts.map +0 -1
  325. package/dist/src/linker/LinkerUtils.d.ts.map +0 -1
  326. package/dist/src/panels/ChartColumnSelectorOverlay.d.ts.map +0 -1
  327. package/dist/src/panels/ChartFilterOverlay.d.ts.map +0 -1
  328. package/dist/src/panels/ChartPanel.d.ts.map +0 -1
  329. package/dist/src/panels/CommandHistoryPanel.d.ts.map +0 -1
  330. package/dist/src/panels/ConsolePanel.d.ts.map +0 -1
  331. package/dist/src/panels/DropdownFilterPanel.d.ts.map +0 -1
  332. package/dist/src/panels/FileExplorerPanel.d.ts.map +0 -1
  333. package/dist/src/panels/InputFilterPanel.d.ts.map +0 -1
  334. package/dist/src/panels/IrisGridPanel.d.ts.map +0 -1
  335. package/dist/src/panels/LogPanel.d.ts.map +0 -1
  336. package/dist/src/panels/MarkdownPanel.d.ts.map +0 -1
  337. package/dist/src/panels/MatPlotLibPanel.d.ts +0 -22
  338. package/dist/src/panels/MatPlotLibPanel.d.ts.map +0 -1
  339. package/dist/src/panels/NotebookPanel.d.ts.map +0 -1
  340. package/dist/src/panels/PandasPanel.d.ts.map +0 -1
  341. package/dist/src/panels/Panel.d.ts.map +0 -1
  342. package/dist/src/panels/PanelContextMenu.d.ts.map +0 -1
  343. package/dist/src/panels/RenameDialog.d.ts.map +0 -1
  344. package/dist/src/panels/Shortcuts.d.ts.map +0 -1
  345. package/dist/src/panels/WidgetPanel.d.ts.map +0 -1
  346. package/dist/src/panels/WidgetPanelTooltip.d.ts.map +0 -1
  347. package/dist/src/prop-types/CommonPropTypes.d.ts.map +0 -1
  348. package/dist/src/prop-types/UIPropTypes.d.ts.map +0 -1
  349. package/dist/src/redux/actionTypes.d.ts.map +0 -1
  350. package/dist/src/redux/actions.d.ts.map +0 -1
  351. package/dist/src/redux/index.d.ts.map +0 -1
  352. package/dist/src/redux/reducers/index.d.ts.map +0 -1
  353. package/dist/src/redux/reducers/sessionWrapper.d.ts.map +0 -1
  354. package/dist/src/redux/selectors.d.ts.map +0 -1
@@ -1,41 +1,7 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
2
-
3
1
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
4
2
 
5
3
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
6
4
 
7
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
8
-
9
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
-
11
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
12
-
13
- function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
14
-
15
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
16
-
17
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
18
-
19
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
20
-
21
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
22
-
23
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
24
-
25
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
26
-
27
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
28
-
29
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
30
-
31
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
32
-
33
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
34
-
35
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
36
-
37
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
38
-
39
5
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
40
6
 
41
7
  import React, { Component } from 'react';
@@ -49,21 +15,19 @@ import { DateUtils, TableUtils } from '@deephaven/iris-grid';
49
15
  import { DateTimeColumnFormatter } from '@deephaven/iris-grid/dist/formatters';
50
16
  import Log from '@deephaven/log';
51
17
  import { getActiveTool, getTimeZone, setActiveTool as setActiveToolAction } from '@deephaven/redux';
52
- import { getIsolatedLinkerPanelIdForDashboard, getLinksForDashboard, setDashboardLinks as setDashboardLinksAction, addDashboardLinks as addDashboardLinksAction, deleteDashboardLinks as deleteDashboardLinksAction, setDashboardIsolatedLinkerPanelId as setDashboardIsolatedLinkerPanelIdAction, setDashboardColumnSelectionValidator as setDashboardColumnSelectionValidatorAction } from '../redux';
53
- import ToolType from './ToolType';
54
- import { ChartEvent, IrisGridEvent, InputFilterEvent } from '../events';
55
- import LinkerOverlayContent from './LinkerOverlayContent';
56
- import LinkerUtils, { isLinkablePanel } from './LinkerUtils';
18
+ import { getIsolatedLinkerPanelIdForDashboard, getLinksForDashboard, setDashboardLinks as setDashboardLinksAction, addDashboardLinks as addDashboardLinksAction, deleteDashboardLinks as deleteDashboardLinksAction, setDashboardIsolatedLinkerPanelId as setDashboardIsolatedLinkerPanelIdAction, setDashboardColumnSelectionValidator as setDashboardColumnSelectionValidatorAction } from "../redux/index.js";
19
+ import ToolType from "./ToolType.js";
20
+ import { ChartEvent, IrisGridEvent, InputFilterEvent } from "../events/index.js";
21
+ import LinkerOverlayContent from "./LinkerOverlayContent.js";
22
+ import LinkerUtils, { isLinkablePanel } from "./LinkerUtils.js";
57
23
  var log = Log.module('Linker');
58
24
 
59
- var mapState = function mapState(state, ownProps) {
60
- return {
61
- activeTool: getActiveTool(state),
62
- isolatedLinkerPanelId: getIsolatedLinkerPanelIdForDashboard(state, ownProps.localDashboardId),
63
- links: getLinksForDashboard(state, ownProps.localDashboardId),
64
- timeZone: getTimeZone(state)
65
- };
66
- };
25
+ var mapState = (state, ownProps) => ({
26
+ activeTool: getActiveTool(state),
27
+ isolatedLinkerPanelId: getIsolatedLinkerPanelIdForDashboard(state, ownProps.localDashboardId),
28
+ links: getLinksForDashboard(state, ownProps.localDashboardId),
29
+ timeZone: getTimeZone(state)
30
+ });
67
31
 
68
32
  var connector = connect(mapState, {
69
33
  setActiveTool: setActiveToolAction,
@@ -73,27 +37,19 @@ var connector = connect(mapState, {
73
37
  setDashboardIsolatedLinkerPanelId: setDashboardIsolatedLinkerPanelIdAction,
74
38
  setDashboardColumnSelectionValidator: setDashboardColumnSelectionValidatorAction
75
39
  });
76
- export var Linker = /*#__PURE__*/function (_Component) {
77
- _inherits(Linker, _Component);
78
-
79
- var _super = _createSuper(Linker);
80
-
81
- function Linker(props) {
82
- var _this;
83
-
84
- _classCallCheck(this, Linker);
40
+ export class Linker extends Component {
41
+ constructor(props) {
42
+ super(props);
85
43
 
86
- _this = _super.call(this, props);
87
-
88
- _defineProperty(_assertThisInitialized(_this), "getCachedLinks", memoize(function (links, linkInProgress, isolateForPanelId) {
89
- var combinedLinks = _toConsumableArray(links);
44
+ _defineProperty(this, "getCachedLinks", memoize((links, linkInProgress, isolateForPanelId) => {
45
+ var combinedLinks = [...links];
90
46
 
91
47
  if (linkInProgress && linkInProgress.start) {
92
48
  combinedLinks.push(linkInProgress);
93
49
  }
94
50
 
95
- if (isolateForPanelId !== null) {
96
- return combinedLinks.filter(function (link) {
51
+ if (isolateForPanelId != null) {
52
+ return combinedLinks.filter(link => {
97
53
  var _link$start, _link$end;
98
54
 
99
55
  return (link === null || link === void 0 ? void 0 : (_link$start = link.start) === null || _link$start === void 0 ? void 0 : _link$start.panelId) === isolateForPanelId || (link === null || link === void 0 ? void 0 : (_link$end = link.end) === null || _link$end === void 0 ? void 0 : _link$end.panelId) === isolateForPanelId || (link === null || link === void 0 ? void 0 : link.end) == null;
@@ -104,602 +60,634 @@ export var Linker = /*#__PURE__*/function (_Component) {
104
60
  return combinedLinks;
105
61
  }));
106
62
 
107
- _this.handleCancel = _this.handleCancel.bind(_assertThisInitialized(_this));
108
- _this.handleDone = _this.handleDone.bind(_assertThisInitialized(_this));
109
- _this.handlePanelCloned = _this.handlePanelCloned.bind(_assertThisInitialized(_this));
110
- _this.handleFilterColumnSelect = _this.handleFilterColumnSelect.bind(_assertThisInitialized(_this));
111
- _this.handleColumnsChanged = _this.handleColumnsChanged.bind(_assertThisInitialized(_this));
112
- _this.handlePanelClosed = _this.handlePanelClosed.bind(_assertThisInitialized(_this));
113
- _this.handleLayoutStateChanged = _this.handleLayoutStateChanged.bind(_assertThisInitialized(_this));
114
- _this.handleAllLinksDeleted = _this.handleAllLinksDeleted.bind(_assertThisInitialized(_this));
115
- _this.handleLinkDeleted = _this.handleLinkDeleted.bind(_assertThisInitialized(_this));
116
- _this.handleChartColumnSelect = _this.handleChartColumnSelect.bind(_assertThisInitialized(_this));
117
- _this.handleGridColumnSelect = _this.handleGridColumnSelect.bind(_assertThisInitialized(_this));
118
- _this.handleUpdateValues = _this.handleUpdateValues.bind(_assertThisInitialized(_this));
119
- _this.handleStateChange = _this.handleStateChange.bind(_assertThisInitialized(_this));
120
- _this.handleExited = _this.handleExited.bind(_assertThisInitialized(_this));
121
- _this.isColumnSelectionValid = _this.isColumnSelectionValid.bind(_assertThisInitialized(_this));
122
- _this.state = {
63
+ this.handleCancel = this.handleCancel.bind(this);
64
+ this.handleDone = this.handleDone.bind(this);
65
+ this.handlePanelCloned = this.handlePanelCloned.bind(this);
66
+ this.handleFilterColumnSelect = this.handleFilterColumnSelect.bind(this);
67
+ this.handleColumnsChanged = this.handleColumnsChanged.bind(this);
68
+ this.handlePanelClosed = this.handlePanelClosed.bind(this);
69
+ this.handleLayoutStateChanged = this.handleLayoutStateChanged.bind(this);
70
+ this.handleAllLinksDeleted = this.handleAllLinksDeleted.bind(this);
71
+ this.handleLinkDeleted = this.handleLinkDeleted.bind(this);
72
+ this.handleChartColumnSelect = this.handleChartColumnSelect.bind(this);
73
+ this.handleGridColumnSelect = this.handleGridColumnSelect.bind(this);
74
+ this.handleUpdateValues = this.handleUpdateValues.bind(this);
75
+ this.handleStateChange = this.handleStateChange.bind(this);
76
+ this.handleExited = this.handleExited.bind(this);
77
+ this.isColumnSelectionValid = this.isColumnSelectionValid.bind(this);
78
+ this.state = {
123
79
  linkInProgress: undefined
124
80
  };
125
- return _this;
126
81
  }
127
82
 
128
- _createClass(Linker, [{
129
- key: "componentDidMount",
130
- value: function componentDidMount() {
131
- var layout = this.props.layout;
83
+ componentDidMount() {
84
+ var {
85
+ layout
86
+ } = this.props;
87
+ this.startListening(layout);
88
+ this.updateSelectionValidators();
89
+ }
90
+
91
+ componentDidUpdate(prevProps) {
92
+ var {
93
+ activeTool,
94
+ layout
95
+ } = this.props;
96
+
97
+ if (layout !== prevProps.layout) {
98
+ this.stopListening(prevProps.layout);
132
99
  this.startListening(layout);
133
- this.updateSelectionValidators();
134
100
  }
135
- }, {
136
- key: "componentDidUpdate",
137
- value: function componentDidUpdate(prevProps) {
138
- var _this$props = this.props,
139
- activeTool = _this$props.activeTool,
140
- layout = _this$props.layout;
141
-
142
- if (layout !== prevProps.layout) {
143
- this.stopListening(prevProps.layout);
144
- this.startListening(layout);
145
- }
146
101
 
147
- if (activeTool !== prevProps.activeTool) {
148
- this.updateSelectionValidators();
149
- }
150
- }
151
- }, {
152
- key: "componentDidCatch",
153
- value: function componentDidCatch(error, info) {
154
- log.error('componentDidCatch', error, info);
155
- }
156
- }, {
157
- key: "componentWillUnmount",
158
- value: function componentWillUnmount() {
159
- var layout = this.props.layout;
160
- this.stopListening(layout);
161
- }
162
- }, {
163
- key: "startListening",
164
- value: function startListening(layout) {
165
- layout.on('stateChanged', this.handleLayoutStateChanged);
166
- var eventHub = layout.eventHub;
167
- eventHub.on(IrisGridEvent.COLUMN_SELECTED, this.handleGridColumnSelect);
168
- eventHub.on(IrisGridEvent.DATA_SELECTED, this.handleUpdateValues);
169
- eventHub.on(IrisGridEvent.STATE_CHANGED, this.handleStateChange);
170
- eventHub.on(ChartEvent.COLUMN_SELECTED, this.handleChartColumnSelect);
171
- eventHub.on(PanelEvent.CLONED, this.handlePanelCloned);
172
- eventHub.on(InputFilterEvent.COLUMN_SELECTED, this.handleFilterColumnSelect);
173
- eventHub.on(InputFilterEvent.COLUMNS_CHANGED, this.handleColumnsChanged);
174
- eventHub.on(PanelEvent.CLOSED, this.handlePanelClosed);
175
- }
176
- }, {
177
- key: "stopListening",
178
- value: function stopListening(layout) {
179
- layout.off('stateChanged', this.handleLayoutStateChanged);
180
- var eventHub = layout.eventHub;
181
- eventHub.off(IrisGridEvent.COLUMN_SELECTED, this.handleGridColumnSelect);
182
- eventHub.off(IrisGridEvent.DATA_SELECTED, this.handleUpdateValues);
183
- eventHub.off(IrisGridEvent.STATE_CHANGED, this.handleStateChange);
184
- eventHub.off(ChartEvent.COLUMN_SELECTED, this.handleChartColumnSelect);
185
- eventHub.off(PanelEvent.CLONED, this.handlePanelCloned);
186
- eventHub.off(InputFilterEvent.COLUMN_SELECTED, this.handleFilterColumnSelect);
187
- eventHub.off(InputFilterEvent.COLUMNS_CHANGED, this.handleColumnsChanged);
188
- eventHub.off(PanelEvent.CLOSED, this.handlePanelClosed);
102
+ if (activeTool !== prevProps.activeTool) {
103
+ this.updateSelectionValidators();
189
104
  }
190
- }, {
191
- key: "handleCancel",
192
- value: function handleCancel() {
193
- var linkInProgress = this.state.linkInProgress;
194
-
195
- if (linkInProgress == null) {
196
- var setActiveTool = this.props.setActiveTool;
197
- setActiveTool(ToolType.DEFAULT);
198
- }
105
+ }
199
106
 
200
- this.setState({
201
- linkInProgress: undefined
202
- });
203
- }
204
- }, {
205
- key: "handleDone",
206
- value: function handleDone() {
207
- var setActiveTool = this.props.setActiveTool;
107
+ componentDidCatch(error, info) {
108
+ log.error('componentDidCatch', error, info);
109
+ }
110
+
111
+ componentWillUnmount() {
112
+ var {
113
+ layout
114
+ } = this.props;
115
+ this.stopListening(layout);
116
+ }
117
+
118
+ startListening(layout) {
119
+ layout.on('stateChanged', this.handleLayoutStateChanged);
120
+ var {
121
+ eventHub
122
+ } = layout;
123
+ eventHub.on(IrisGridEvent.COLUMN_SELECTED, this.handleGridColumnSelect);
124
+ eventHub.on(IrisGridEvent.DATA_SELECTED, this.handleUpdateValues);
125
+ eventHub.on(IrisGridEvent.STATE_CHANGED, this.handleStateChange);
126
+ eventHub.on(ChartEvent.COLUMN_SELECTED, this.handleChartColumnSelect);
127
+ eventHub.on(PanelEvent.CLONED, this.handlePanelCloned);
128
+ eventHub.on(InputFilterEvent.COLUMN_SELECTED, this.handleFilterColumnSelect);
129
+ eventHub.on(InputFilterEvent.COLUMNS_CHANGED, this.handleColumnsChanged);
130
+ eventHub.on(PanelEvent.CLOSED, this.handlePanelClosed);
131
+ }
132
+
133
+ stopListening(layout) {
134
+ layout.off('stateChanged', this.handleLayoutStateChanged);
135
+ var {
136
+ eventHub
137
+ } = layout;
138
+ eventHub.off(IrisGridEvent.COLUMN_SELECTED, this.handleGridColumnSelect);
139
+ eventHub.off(IrisGridEvent.DATA_SELECTED, this.handleUpdateValues);
140
+ eventHub.off(IrisGridEvent.STATE_CHANGED, this.handleStateChange);
141
+ eventHub.off(ChartEvent.COLUMN_SELECTED, this.handleChartColumnSelect);
142
+ eventHub.off(PanelEvent.CLONED, this.handlePanelCloned);
143
+ eventHub.off(InputFilterEvent.COLUMN_SELECTED, this.handleFilterColumnSelect);
144
+ eventHub.off(InputFilterEvent.COLUMNS_CHANGED, this.handleColumnsChanged);
145
+ eventHub.off(PanelEvent.CLOSED, this.handlePanelClosed);
146
+ }
147
+
148
+ handleCancel() {
149
+ var {
150
+ linkInProgress
151
+ } = this.state;
152
+
153
+ if (linkInProgress == null) {
154
+ var {
155
+ setActiveTool
156
+ } = this.props;
208
157
  setActiveTool(ToolType.DEFAULT);
209
- this.setState({
210
- linkInProgress: undefined
211
- });
212
158
  }
213
- }, {
214
- key: "handleChartColumnSelect",
215
- value: function handleChartColumnSelect(panel, column) {
216
- this.columnSelected(panel, column, true);
217
- }
218
- }, {
219
- key: "handleFilterColumnSelect",
220
- value: function handleFilterColumnSelect(panel, column) {
221
- log.debug('handleFilterColumnSelect', this.isOverlayShown());
222
- var _this$props2 = this.props,
223
- links = _this$props2.links,
224
- localDashboardId = _this$props2.localDashboardId,
225
- setActiveTool = _this$props2.setActiveTool,
226
- setDashboardIsolatedLinkerPanelId = _this$props2.setDashboardIsolatedLinkerPanelId;
227
- var panelId = LayoutUtils.getIdFromPanel(panel);
228
- var panelLinks = links.filter(function (link) {
229
- var _link$start2, _link$end2;
230
-
231
- return ((_link$start2 = link.start) === null || _link$start2 === void 0 ? void 0 : _link$start2.panelId) === panelId || ((_link$end2 = link.end) === null || _link$end2 === void 0 ? void 0 : _link$end2.panelId) === panelId;
232
- });
233
159
 
234
- if (!this.isOverlayShown() && panelId != null) {
235
- // Initial click on the filter source button with linker inactive
236
- // Show linker in isolated mode for panel
237
- setActiveTool(ToolType.LINKER);
238
- setDashboardIsolatedLinkerPanelId(localDashboardId, panelId);
239
-
240
- if (panelLinks.length === 0) {
241
- // Source not linked - start new link in isolated linker mode
242
- // Need to pass panelId for overrideIsolatedLinkerPanelId
243
- // as redux prop update at this point not yet propagated
244
- this.columnSelected(panel, column, true, panelId);
245
- }
160
+ this.setState({
161
+ linkInProgress: undefined
162
+ });
163
+ }
246
164
 
247
- return;
248
- } // Filter source clicked with linker active
165
+ handleDone() {
166
+ var {
167
+ setActiveTool
168
+ } = this.props;
169
+ setActiveTool(ToolType.DEFAULT);
170
+ this.setState({
171
+ linkInProgress: undefined
172
+ });
173
+ }
249
174
 
175
+ handleChartColumnSelect(panel, column) {
176
+ this.columnSelected(panel, column, true);
177
+ }
250
178
 
251
- this.columnSelected(panel, column, true);
252
- }
253
- }, {
254
- key: "handleColumnsChanged",
255
- value: function handleColumnsChanged(panel, columns) {
256
- log.debug('handleColumnsChanged', panel, columns);
257
- var links = this.props.links;
258
- var panelId = LayoutUtils.getIdFromPanel(panel);
259
-
260
- if (panelId == null) {
261
- log.error('Invalid panelId', panel);
262
- return;
263
- } // Delete links that start or end on non-existent column in the updated panel
264
-
265
-
266
- var linksToDelete = links.filter(function (_ref) {
267
- var start = _ref.start,
268
- end = _ref.end;
269
- return start.panelId === panelId && LinkerUtils.findColumn(columns, start) == null || end != null && end.panelId === panelId && LinkerUtils.findColumn(columns, end) == null;
270
- });
271
- this.deleteLinks(linksToDelete);
272
- }
273
- }, {
274
- key: "handleGridColumnSelect",
275
- value: function handleGridColumnSelect(panel, column) {
276
- this.columnSelected(panel, column);
277
- }
278
- /**
279
- * Track a column selection and build the link from it.
280
- * @param panel The panel component that is the source for the column selection
281
- * @param column The column that was selected
282
- * @param isAlwaysEndPoint True if the selection is always the end point, even if it's the first column selected. Defaults to false.
283
- * @param overrideIsolatedLinkerPanelId isolatedLinkerPanelId to use when method is called before prop changes propagate
284
- */
285
-
286
- }, {
287
- key: "columnSelected",
288
- value: function columnSelected(panel, column) {
289
- var _this2 = this;
290
-
291
- var isAlwaysEndPoint = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
292
- var overrideIsolatedLinkerPanelId = arguments.length > 3 ? arguments[3] : undefined;
293
-
294
- if (overrideIsolatedLinkerPanelId == null && !this.isOverlayShown()) {
295
- return;
179
+ handleFilterColumnSelect(panel, column) {
180
+ log.debug('handleFilterColumnSelect', this.isOverlayShown());
181
+ var {
182
+ links,
183
+ localDashboardId,
184
+ setActiveTool,
185
+ setDashboardIsolatedLinkerPanelId
186
+ } = this.props;
187
+ var panelId = LayoutUtils.getIdFromPanel(panel);
188
+ var panelLinks = links.filter(link => {
189
+ var _link$start2, _link$end2;
190
+
191
+ return ((_link$start2 = link.start) === null || _link$start2 === void 0 ? void 0 : _link$start2.panelId) === panelId || ((_link$end2 = link.end) === null || _link$end2 === void 0 ? void 0 : _link$end2.panelId) === panelId;
192
+ });
193
+
194
+ if (!this.isOverlayShown() && panelId != null) {
195
+ // Initial click on the filter source button with linker inactive
196
+ // Show linker in isolated mode for panel
197
+ setActiveTool(ToolType.LINKER);
198
+ setDashboardIsolatedLinkerPanelId(localDashboardId, panelId);
199
+
200
+ if (panelLinks.length === 0) {
201
+ // Source not linked - start new link in isolated linker mode
202
+ // Need to pass panelId for overrideIsolatedLinkerPanelId
203
+ // as redux prop update at this point not yet propagated
204
+ this.columnSelected(panel, column, true, panelId);
296
205
  }
297
206
 
298
- var isolatedLinkerPanelId = this.props.isolatedLinkerPanelId;
299
- var linkInProgress = this.state.linkInProgress;
300
- var panelId = LayoutUtils.getIdFromPanel(panel);
207
+ return;
208
+ } // Filter source clicked with linker active
301
209
 
302
- if (panelId == null) {
303
- return;
304
- }
305
210
 
306
- var panelComponent = LayoutUtils.getComponentNameFromPanel(panel);
307
- var columnName = column.name,
308
- columnType = column.type;
309
-
310
- if (linkInProgress == null || linkInProgress.start == null) {
311
- var newLink = {
312
- id: shortid.generate(),
313
- start: {
314
- panelId: panelId,
315
- panelComponent: panelComponent,
316
- columnName: columnName,
317
- columnType: columnType
318
- },
319
- // Link starts with type Invalid as linking a source to itself is not allowed
320
- type: 'invalid',
321
- isReversed: isAlwaysEndPoint
322
- };
323
- log.debug('starting link', newLink);
324
- this.setState({
325
- linkInProgress: newLink
326
- });
327
- } else {
328
- var start = linkInProgress.start,
329
- id = linkInProgress.id,
330
- isReversed = linkInProgress.isReversed;
331
- var end = {
332
- panelId: panelId,
333
- panelComponent: panelComponent,
334
- columnName: columnName,
335
- columnType: columnType
336
- };
337
- var type = LinkerUtils.getLinkType(isReversed ? end : start, isReversed ? start : end, overrideIsolatedLinkerPanelId !== null && overrideIsolatedLinkerPanelId !== void 0 ? overrideIsolatedLinkerPanelId : isolatedLinkerPanelId);
338
-
339
- switch (type) {
340
- case 'invalid':
341
- log.debug('Ignore invalid link connection', linkInProgress, end);
342
- return;
343
-
344
- case 'filterSource':
345
- {
346
- // filterSource links have a limit of 1 link per target
347
- // New link validation passed, delete existing links before adding the new one
348
- var _links = this.props.links;
349
- var existingLinkPanelId = isReversed ? start.panelId : end.panelId; // In cases with multiple targets per panel (i.e. chart filters)
350
- // links would have to be filtered by panelId and columnName and columnType
351
-
352
- var linksToDelete = _links.filter(function (_ref2) {
353
- var panelLinkEnd = _ref2.end;
354
- return (panelLinkEnd === null || panelLinkEnd === void 0 ? void 0 : panelLinkEnd.panelId) === existingLinkPanelId;
355
- });
356
-
357
- this.deleteLinks(linksToDelete);
358
- break;
359
- }
360
-
361
- case 'tableLink':
362
- // No-op
363
- break;
364
- } // Create a completed link from link in progress
365
-
366
-
367
- var _newLink = {
368
- start: isReversed ? end : start,
369
- end: isReversed ? start : end,
370
- id: id,
371
- type: type
372
- };
373
- log.info('creating link', _newLink);
374
- this.setState({
375
- linkInProgress: undefined
376
- }, function () {
377
- // Adding link after updating state
378
- // otherwise both new link and linkInProgress could be rendered at the same time
379
- // resulting in "multiple children with same key" error
380
- _this2.addLinks([_newLink]);
381
- });
382
- }
383
- }
384
- }, {
385
- key: "unsetFilterValueForLink",
386
- value: function unsetFilterValueForLink(link) {
387
- var panelManager = this.props.panelManager;
388
-
389
- if (link.end) {
390
- var end = link.end;
391
- var _panelId = end.panelId,
392
- columnName = end.columnName,
393
- columnType = end.columnType;
394
- var endPanel = panelManager.getOpenedPanelById(_panelId);
395
-
396
- if (!endPanel) {
397
- log.debug('endPanel no longer exists, ignoring unsetFilterValue', _panelId);
398
- } else if (isLinkablePanel(endPanel)) {
399
- endPanel.unsetFilterValue(columnName, columnType);
400
- } else {
401
- log.debug('endPanel.unsetFilterValue not implemented', endPanel);
402
- }
403
- }
404
- }
405
- /**
406
- * Set filters for a given panel ID
407
- * @param panelId ID of panel to set filters on
408
- * @param filterMap Map of column name to column type, text, and value
409
- */
410
-
411
- }, {
412
- key: "setPanelFilterMap",
413
- value: function setPanelFilterMap(panelId, filterMap) {
414
- log.debug('Set filter data for panel:', panelId, filterMap);
415
- var panelManager = this.props.panelManager;
416
- var panel = panelManager.getOpenedPanelById(panelId);
417
-
418
- if (!panel) {
419
- log.debug('panel no longer exists, ignoring setFilterMap', panelId);
420
- } else if (isLinkablePanel(panel)) {
421
- panel.setFilterMap(filterMap);
422
- } else {
423
- log.debug('panel.setFilterMap not implemented', panelId, panel);
424
- }
211
+ this.columnSelected(panel, column, true);
212
+ }
213
+
214
+ handleColumnsChanged(panel, columns) {
215
+ log.debug('handleColumnsChanged', panel, columns);
216
+ var {
217
+ links
218
+ } = this.props;
219
+ var panelId = LayoutUtils.getIdFromPanel(panel);
220
+
221
+ if (panelId == null) {
222
+ log.error('Invalid panelId', panel);
223
+ return;
224
+ } // Delete links that start or end on non-existent column in the updated panel
225
+
226
+
227
+ var linksToDelete = links.filter((_ref) => {
228
+ var {
229
+ start,
230
+ end
231
+ } = _ref;
232
+ return start.panelId === panelId && LinkerUtils.findColumn(columns, start) == null || end != null && end.panelId === panelId && LinkerUtils.findColumn(columns, end) == null;
233
+ });
234
+ this.deleteLinks(linksToDelete);
235
+ }
236
+
237
+ handleGridColumnSelect(panel, column) {
238
+ this.columnSelected(panel, column);
239
+ }
240
+ /**
241
+ * Track a column selection and build the link from it.
242
+ * @param panel The panel component that is the source for the column selection
243
+ * @param column The column that was selected
244
+ * @param isAlwaysEndPoint True if the selection is always the end point, even if it's the first column selected. Defaults to false.
245
+ * @param overrideIsolatedLinkerPanelId isolatedLinkerPanelId to use when method is called before prop changes propagate
246
+ */
247
+
248
+
249
+ columnSelected(panel, column) {
250
+ var isAlwaysEndPoint = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
251
+ var overrideIsolatedLinkerPanelId = arguments.length > 3 ? arguments[3] : undefined;
252
+
253
+ if (overrideIsolatedLinkerPanelId == null && !this.isOverlayShown()) {
254
+ return;
425
255
  }
426
- }, {
427
- key: "addLinks",
428
- value: function addLinks(links) {
429
- var _this$props3 = this.props,
430
- addDashboardLinks = _this$props3.addDashboardLinks,
431
- localDashboardId = _this$props3.localDashboardId;
432
- addDashboardLinks(localDashboardId, links);
256
+
257
+ var {
258
+ isolatedLinkerPanelId
259
+ } = this.props;
260
+ var {
261
+ linkInProgress
262
+ } = this.state;
263
+ var panelId = LayoutUtils.getIdFromPanel(panel);
264
+
265
+ if (panelId == null) {
266
+ return;
433
267
  }
434
- }, {
435
- key: "deleteLinks",
436
- value: function deleteLinks(links) {
437
- var _this3 = this;
438
-
439
- var clearAll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
440
- var localDashboardId = this.props.localDashboardId;
441
- links.forEach(function (link) {
442
- return _this3.unsetFilterValueForLink(link);
268
+
269
+ var panelComponent = LayoutUtils.getComponentNameFromPanel(panel);
270
+ var {
271
+ name: columnName,
272
+ type: columnType
273
+ } = column;
274
+
275
+ if (linkInProgress == null || linkInProgress.start == null) {
276
+ var newLink = {
277
+ id: shortid.generate(),
278
+ start: {
279
+ panelId,
280
+ panelComponent,
281
+ columnName,
282
+ columnType
283
+ },
284
+ // Link starts with type Invalid as linking a source to itself is not allowed
285
+ type: 'invalid',
286
+ isReversed: isAlwaysEndPoint
287
+ };
288
+ log.debug('starting link', newLink);
289
+ this.setState({
290
+ linkInProgress: newLink
443
291
  });
292
+ } else {
293
+ var {
294
+ start,
295
+ id,
296
+ isReversed
297
+ } = linkInProgress;
298
+ var end = {
299
+ panelId,
300
+ panelComponent,
301
+ columnName,
302
+ columnType
303
+ };
304
+ var type = LinkerUtils.getLinkType(isReversed ? end : start, isReversed ? start : end, overrideIsolatedLinkerPanelId !== null && overrideIsolatedLinkerPanelId !== void 0 ? overrideIsolatedLinkerPanelId : isolatedLinkerPanelId);
305
+
306
+ switch (type) {
307
+ case 'invalid':
308
+ log.debug('Ignore invalid link connection', linkInProgress, end);
309
+ return;
310
+
311
+ case 'filterSource':
312
+ {
313
+ // filterSource links have a limit of 1 link per target
314
+ // New link validation passed, delete existing links before adding the new one
315
+ var {
316
+ links: _links
317
+ } = this.props;
318
+ var existingLinkPanelId = isReversed ? start.panelId : end.panelId; // In cases with multiple targets per panel (i.e. chart filters)
319
+ // links would have to be filtered by panelId and columnName and columnType
320
+
321
+ var linksToDelete = _links.filter((_ref2) => {
322
+ var {
323
+ end: panelLinkEnd
324
+ } = _ref2;
325
+ return (panelLinkEnd === null || panelLinkEnd === void 0 ? void 0 : panelLinkEnd.panelId) === existingLinkPanelId;
326
+ });
444
327
 
445
- if (clearAll) {
446
- var setDashboardLinks = this.props.setDashboardLinks;
447
- setDashboardLinks(localDashboardId, []);
448
- } else if (links.length > 0) {
449
- var deleteDashboardLinks = this.props.deleteDashboardLinks;
450
- deleteDashboardLinks(localDashboardId, links.map(function (_ref3) {
451
- var id = _ref3.id;
452
- return id;
453
- }));
454
- }
455
- }
456
- }, {
457
- key: "handleAllLinksDeleted",
458
- value: function handleAllLinksDeleted() {
459
- var _this$props4 = this.props,
460
- links = _this$props4.links,
461
- isolatedLinkerPanelId = _this$props4.isolatedLinkerPanelId;
462
-
463
- if (isolatedLinkerPanelId == null) {
464
- this.deleteLinks(links, true);
465
- } else {
466
- var isolatedLinks = links.filter(function (link) {
467
- var _link$start3, _link$end3;
328
+ this.deleteLinks(linksToDelete);
329
+ break;
330
+ }
331
+
332
+ case 'tableLink':
333
+ // No-op
334
+ break;
335
+ } // Create a completed link from link in progress
468
336
 
469
- return (link === null || link === void 0 ? void 0 : (_link$start3 = link.start) === null || _link$start3 === void 0 ? void 0 : _link$start3.panelId) === isolatedLinkerPanelId || (link === null || link === void 0 ? void 0 : (_link$end3 = link.end) === null || _link$end3 === void 0 ? void 0 : _link$end3.panelId) === isolatedLinkerPanelId;
470
- });
471
- this.deleteLinks(isolatedLinks);
472
- }
473
337
 
338
+ var _newLink = {
339
+ start: isReversed ? end : start,
340
+ end: isReversed ? start : end,
341
+ id,
342
+ type
343
+ };
344
+ log.info('creating link', _newLink);
474
345
  this.setState({
475
346
  linkInProgress: undefined
347
+ }, () => {
348
+ // Adding link after updating state
349
+ // otherwise both new link and linkInProgress could be rendered at the same time
350
+ // resulting in "multiple children with same key" error
351
+ this.addLinks([_newLink]);
476
352
  });
477
353
  }
478
- }, {
479
- key: "handleLinkDeleted",
480
- value: function handleLinkDeleted(linkId) {
481
- var links = this.props.links;
482
- var link = links.find(function (l) {
483
- return l.id === linkId;
484
- });
354
+ }
485
355
 
486
- if (link) {
487
- this.deleteLinks([link]);
356
+ unsetFilterValueForLink(link) {
357
+ var {
358
+ panelManager
359
+ } = this.props;
360
+
361
+ if (link.end) {
362
+ var {
363
+ end
364
+ } = link;
365
+ var {
366
+ panelId: _panelId,
367
+ columnName,
368
+ columnType
369
+ } = end;
370
+ var endPanel = panelManager.getOpenedPanelById(_panelId);
371
+
372
+ if (!endPanel) {
373
+ log.debug('endPanel no longer exists, ignoring unsetFilterValue', _panelId);
374
+ } else if (isLinkablePanel(endPanel)) {
375
+ endPanel.unsetFilterValue(columnName, columnType);
488
376
  } else {
489
- log.error('Unable to find link to delete', linkId);
377
+ log.debug('endPanel.unsetFilterValue not implemented', endPanel);
490
378
  }
491
379
  }
492
- }, {
493
- key: "handleUpdateValues",
494
- value: function handleUpdateValues(panel, dataMap) {
495
- var _this4 = this;
496
-
497
- var panelId = LayoutUtils.getIdFromPanel(panel);
498
- var _this$props5 = this.props,
499
- links = _this$props5.links,
500
- timeZone = _this$props5.timeZone; // Map of panel ID to filterMap
501
-
502
- var panelFilterMap = new Map(); // Instead of setting filters one by one for each link,
503
- // combine them so they could be set in a single call per target panel
504
-
505
- for (var i = 0; i < links.length; i += 1) {
506
- var _links$i = links[i],
507
- start = _links$i.start,
508
- end = _links$i.end;
509
-
510
- if (start.panelId === panelId && end != null) {
511
- var endPanelId = end.panelId,
512
- columnName = end.columnName,
513
- columnType = end.columnType; // Map of column name to column type and filter value
514
-
515
- var filterMap = panelFilterMap.has(endPanelId) ? panelFilterMap.get(endPanelId) : new Map();
516
- var value = dataMap[start.columnName].value;
517
- var text = "".concat(value);
518
-
519
- if (TableUtils.isDateType(columnType)) {
520
- var dateFilterFormatter = new DateTimeColumnFormatter({
521
- timeZone: timeZone,
522
- showTimeZone: false,
523
- showTSeparator: true,
524
- defaultDateTimeFormatString: DateUtils.FULL_DATE_FORMAT
525
- });
526
- text = dateFilterFormatter.format(value);
527
- }
380
+ }
381
+ /**
382
+ * Set filters for a given panel ID
383
+ * @param panelId ID of panel to set filters on
384
+ * @param filterMap Map of column name to column type, text, and value
385
+ */
386
+
387
+
388
+ setPanelFilterMap(panelId, filterMap) {
389
+ log.debug('Set filter data for panel:', panelId, filterMap);
390
+ var {
391
+ panelManager
392
+ } = this.props;
393
+ var panel = panelManager.getOpenedPanelById(panelId);
394
+
395
+ if (!panel) {
396
+ log.debug('panel no longer exists, ignoring setFilterMap', panelId);
397
+ } else if (isLinkablePanel(panel)) {
398
+ panel.setFilterMap(filterMap);
399
+ } else {
400
+ log.debug('panel.setFilterMap not implemented', panelId, panel);
401
+ }
402
+ }
528
403
 
529
- filterMap.set(columnName, {
530
- columnType: columnType,
531
- text: text,
532
- value: value
533
- });
534
- panelFilterMap.set(endPanelId, filterMap);
535
- }
536
- } // Apply combined filters to all target panels
404
+ addLinks(links) {
405
+ var {
406
+ addDashboardLinks,
407
+ localDashboardId
408
+ } = this.props;
409
+ addDashboardLinks(localDashboardId, links);
410
+ }
537
411
 
412
+ deleteLinks(links) {
413
+ var clearAll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
414
+ var {
415
+ localDashboardId
416
+ } = this.props;
417
+ links.forEach(link => this.unsetFilterValueForLink(link));
418
+
419
+ if (clearAll) {
420
+ var {
421
+ setDashboardLinks
422
+ } = this.props;
423
+ setDashboardLinks(localDashboardId, []);
424
+ } else if (links.length > 0) {
425
+ var {
426
+ deleteDashboardLinks
427
+ } = this.props;
428
+ deleteDashboardLinks(localDashboardId, links.map((_ref3) => {
429
+ var {
430
+ id
431
+ } = _ref3;
432
+ return id;
433
+ }));
434
+ }
435
+ }
436
+
437
+ handleAllLinksDeleted() {
438
+ var {
439
+ links,
440
+ isolatedLinkerPanelId
441
+ } = this.props;
538
442
 
539
- panelFilterMap.forEach(function (filterMap, endPanelId) {
540
- _this4.setPanelFilterMap(endPanelId, filterMap);
443
+ if (isolatedLinkerPanelId == null) {
444
+ this.deleteLinks(links, true);
445
+ } else {
446
+ var isolatedLinks = links.filter(link => {
447
+ var _link$start3, _link$end3;
448
+
449
+ return (link === null || link === void 0 ? void 0 : (_link$start3 = link.start) === null || _link$start3 === void 0 ? void 0 : _link$start3.panelId) === isolatedLinkerPanelId || (link === null || link === void 0 ? void 0 : (_link$end3 = link.end) === null || _link$end3 === void 0 ? void 0 : _link$end3.panelId) === isolatedLinkerPanelId;
541
450
  });
451
+ this.deleteLinks(isolatedLinks);
542
452
  }
543
- }, {
544
- key: "handlePanelCloned",
545
- value: function handlePanelCloned(panel, cloneConfig) {
546
- var links = this.props.links;
547
- var panelId = LayoutUtils.getIdFromPanel(panel);
548
- var cloneId = cloneConfig.id;
549
-
550
- if (panelId != null) {
551
- var linksToAdd = LinkerUtils.cloneLinksForPanel(links, panelId, cloneId);
552
- this.addLinks(linksToAdd);
553
- }
554
- }
555
- }, {
556
- key: "handlePanelClosed",
557
- value: function handlePanelClosed(panelId) {
558
- // Delete links on PanelEvent.CLOSED instead of UNMOUNT
559
- // because the panels can get unmounted on errors and we want to keep the links if that happens
560
- log.debug("Panel ".concat(panelId, " closed, deleting links."));
561
- this.deleteLinksForPanelId(panelId);
562
- }
563
- }, {
564
- key: "handleLayoutStateChanged",
565
- value: function handleLayoutStateChanged() {
566
- this.forceUpdate();
567
- }
568
- }, {
569
- key: "handleStateChange",
570
- value: function handleStateChange() {
571
- this.forceUpdate();
572
- }
573
- }, {
574
- key: "handleExited",
575
- value: function handleExited() {
576
- // Has to be done after linker exit animation to avoid flashing non-isolated links
577
- var _this$props6 = this.props,
578
- localDashboardId = _this$props6.localDashboardId,
579
- setDashboardIsolatedLinkerPanelId = _this$props6.setDashboardIsolatedLinkerPanelId;
580
- setDashboardIsolatedLinkerPanelId(localDashboardId, undefined);
453
+
454
+ this.setState({
455
+ linkInProgress: undefined
456
+ });
457
+ }
458
+
459
+ handleLinkDeleted(linkId) {
460
+ var {
461
+ links
462
+ } = this.props;
463
+ var link = links.find(l => l.id === linkId);
464
+
465
+ if (link) {
466
+ this.deleteLinks([link]);
467
+ } else {
468
+ log.error('Unable to find link to delete', linkId);
581
469
  }
582
- /**
583
- * Delete all links for a provided panel ID. Needs to be done whenever a panel is closed or unmounted.
584
- * @param panelId The panel ID to delete links for
585
- */
586
-
587
- }, {
588
- key: "deleteLinksForPanelId",
589
- value: function deleteLinksForPanelId(panelId) {
590
- var links = this.props.links;
591
-
592
- for (var i = 0; i < links.length; i += 1) {
593
- var link = links[i];
594
- var start = link.start,
595
- end = link.end,
596
- id = link.id;
597
-
598
- if (start.panelId === panelId || (end === null || end === void 0 ? void 0 : end.panelId) === panelId) {
599
- this.handleLinkDeleted(id);
470
+ }
471
+
472
+ handleUpdateValues(panel, dataMap) {
473
+ var panelId = LayoutUtils.getIdFromPanel(panel);
474
+ var {
475
+ links,
476
+ timeZone
477
+ } = this.props; // Map of panel ID to filterMap
478
+
479
+ var panelFilterMap = new Map(); // Instead of setting filters one by one for each link,
480
+ // combine them so they could be set in a single call per target panel
481
+
482
+ for (var i = 0; i < links.length; i += 1) {
483
+ var {
484
+ start,
485
+ end
486
+ } = links[i];
487
+
488
+ if (start.panelId === panelId && end != null) {
489
+ var {
490
+ panelId: endPanelId,
491
+ columnName,
492
+ columnType
493
+ } = end; // Map of column name to column type and filter value
494
+
495
+ var filterMap = panelFilterMap.has(endPanelId) ? panelFilterMap.get(endPanelId) : new Map();
496
+ var {
497
+ value
498
+ } = dataMap[start.columnName];
499
+ var text = "".concat(value);
500
+
501
+ if (TableUtils.isDateType(columnType)) {
502
+ var dateFilterFormatter = new DateTimeColumnFormatter({
503
+ timeZone,
504
+ showTimeZone: false,
505
+ showTSeparator: true,
506
+ defaultDateTimeFormatString: DateUtils.FULL_DATE_FORMAT
507
+ });
508
+ text = dateFilterFormatter.format(value);
600
509
  }
510
+
511
+ filterMap.set(columnName, {
512
+ columnType,
513
+ text,
514
+ value
515
+ });
516
+ panelFilterMap.set(endPanelId, filterMap);
601
517
  }
518
+ } // Apply combined filters to all target panels
519
+
520
+
521
+ panelFilterMap.forEach((filterMap, endPanelId) => {
522
+ this.setPanelFilterMap(endPanelId, filterMap);
523
+ });
524
+ }
525
+
526
+ handlePanelCloned(panel, cloneConfig) {
527
+ var {
528
+ links
529
+ } = this.props;
530
+ var panelId = LayoutUtils.getIdFromPanel(panel);
531
+ var cloneId = cloneConfig.id;
532
+
533
+ if (panelId != null) {
534
+ var linksToAdd = LinkerUtils.cloneLinksForPanel(links, panelId, cloneId);
535
+ this.addLinks(linksToAdd);
602
536
  }
603
- }, {
604
- key: "isOverlayShown",
605
- value: function isOverlayShown() {
606
- var activeTool = this.props.activeTool;
607
- return activeTool === ToolType.LINKER;
608
- }
609
- }, {
610
- key: "updateSelectionValidators",
611
- value: function updateSelectionValidators() {
612
- var _this$props7 = this.props,
613
- activeTool = _this$props7.activeTool,
614
- setDashboardColumnSelectionValidator = _this$props7.setDashboardColumnSelectionValidator,
615
- localDashboardId = _this$props7.localDashboardId;
616
-
617
- switch (activeTool) {
618
- case ToolType.LINKER:
619
- setDashboardColumnSelectionValidator(localDashboardId, this.isColumnSelectionValid);
620
- break;
537
+ }
621
538
 
622
- default:
623
- setDashboardColumnSelectionValidator(localDashboardId, undefined);
624
- break;
539
+ handlePanelClosed(panelId) {
540
+ // Delete links on PanelEvent.CLOSED instead of UNMOUNT
541
+ // because the panels can get unmounted on errors and we want to keep the links if that happens
542
+ log.debug("Panel ".concat(panelId, " closed, deleting links."));
543
+ this.deleteLinksForPanelId(panelId);
544
+ }
545
+
546
+ handleLayoutStateChanged() {
547
+ this.forceUpdate();
548
+ }
549
+
550
+ handleStateChange() {
551
+ this.forceUpdate();
552
+ }
553
+
554
+ handleExited() {
555
+ // Has to be done after linker exit animation to avoid flashing non-isolated links
556
+ var {
557
+ localDashboardId,
558
+ setDashboardIsolatedLinkerPanelId
559
+ } = this.props;
560
+ setDashboardIsolatedLinkerPanelId(localDashboardId, undefined);
561
+ }
562
+ /**
563
+ * Delete all links for a provided panel ID. Needs to be done whenever a panel is closed or unmounted.
564
+ * @param panelId The panel ID to delete links for
565
+ */
566
+
567
+
568
+ deleteLinksForPanelId(panelId) {
569
+ var {
570
+ links
571
+ } = this.props;
572
+
573
+ for (var i = 0; i < links.length; i += 1) {
574
+ var link = links[i];
575
+ var {
576
+ start,
577
+ end,
578
+ id
579
+ } = link;
580
+
581
+ if (start.panelId === panelId || (end === null || end === void 0 ? void 0 : end.panelId) === panelId) {
582
+ this.handleLinkDeleted(id);
625
583
  }
626
584
  }
627
- }, {
628
- key: "updateLinkInProgressType",
629
- value: function updateLinkInProgressType(linkInProgress) {
630
- var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'invalid';
631
- this.setState({
632
- linkInProgress: _objectSpread(_objectSpread({}, linkInProgress), {}, {
633
- type: type
634
- })
635
- });
585
+ }
586
+
587
+ isOverlayShown() {
588
+ var {
589
+ activeTool
590
+ } = this.props;
591
+ return activeTool === ToolType.LINKER;
592
+ }
593
+
594
+ updateSelectionValidators() {
595
+ var {
596
+ activeTool,
597
+ setDashboardColumnSelectionValidator,
598
+ localDashboardId
599
+ } = this.props;
600
+
601
+ switch (activeTool) {
602
+ case ToolType.LINKER:
603
+ setDashboardColumnSelectionValidator(localDashboardId, this.isColumnSelectionValid);
604
+ break;
605
+
606
+ default:
607
+ setDashboardColumnSelectionValidator(localDashboardId, undefined);
608
+ break;
636
609
  }
637
- }, {
638
- key: "isColumnSelectionValid",
639
- value: function isColumnSelectionValid(panel, tableColumn) {
640
- var linkInProgress = this.state.linkInProgress;
641
- var isolatedLinkerPanelId = this.props.isolatedLinkerPanelId; // Link not started yet - no need to update type
642
-
643
- if ((linkInProgress === null || linkInProgress === void 0 ? void 0 : linkInProgress.start) == null) {
644
- return true;
645
- }
610
+ }
646
611
 
647
- if (tableColumn == null) {
648
- // Link started, end point is not a valid target
649
- this.updateLinkInProgressType(linkInProgress);
650
- return false;
651
- }
612
+ updateLinkInProgressType(linkInProgress) {
613
+ var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'invalid';
614
+ this.setState({
615
+ linkInProgress: _objectSpread(_objectSpread({}, linkInProgress), {}, {
616
+ type
617
+ })
618
+ });
619
+ }
652
620
 
653
- var isReversed = linkInProgress.isReversed,
654
- start = linkInProgress.start;
655
- var panelId = LayoutUtils.getIdFromPanel(panel);
621
+ isColumnSelectionValid(panel, tableColumn) {
622
+ var {
623
+ linkInProgress
624
+ } = this.state;
625
+ var {
626
+ isolatedLinkerPanelId
627
+ } = this.props; // Link not started yet - no need to update type
656
628
 
657
- if (panelId == null) {
658
- return false;
659
- }
629
+ if ((linkInProgress === null || linkInProgress === void 0 ? void 0 : linkInProgress.start) == null) {
630
+ return true;
631
+ }
660
632
 
661
- var end = {
662
- panelId: panelId,
663
- panelComponent: LayoutUtils.getComponentNameFromPanel(panel),
664
- columnName: tableColumn.name,
665
- columnType: tableColumn.type
666
- };
667
- var type = isReversed ? LinkerUtils.getLinkType(end, start, isolatedLinkerPanelId) : LinkerUtils.getLinkType(start, end, isolatedLinkerPanelId);
668
- this.updateLinkInProgressType(linkInProgress, type);
669
- return type !== 'invalid';
633
+ if (tableColumn == null) {
634
+ // Link started, end point is not a valid target
635
+ this.updateLinkInProgressType(linkInProgress);
636
+ return false;
670
637
  }
671
- }, {
672
- key: "render",
673
- value: function render() {
674
- var _this$props8 = this.props,
675
- links = _this$props8.links,
676
- isolatedLinkerPanelId = _this$props8.isolatedLinkerPanelId,
677
- panelManager = _this$props8.panelManager;
678
- var linkInProgress = this.state.linkInProgress;
679
- var isLinkOverlayShown = this.isOverlayShown();
680
- var disabled = linkInProgress != null && linkInProgress.start != null;
681
- var linkerOverlayMessage = isolatedLinkerPanelId === null ? 'Click a column source, then click a column target to create a filter link. Remove a filter link by clicking again to erase. Click done when finished.' : 'Create a link between the source column button and a table column by clicking on one, then the other. Remove the link by clicking it directly. Click done when finished.';
682
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CSSTransition, {
683
- "in": isLinkOverlayShown,
684
- timeout: ThemeExport.transitionMs,
685
- classNames: "fade",
686
- mountOnEnter: true,
687
- unmountOnExit: true,
688
- onExited: this.handleExited
689
- }, /*#__PURE__*/React.createElement(LinkerOverlayContent, {
690
- disabled: disabled,
691
- panelManager: panelManager,
692
- links: this.getCachedLinks(links, linkInProgress, isolatedLinkerPanelId),
693
- messageText: linkerOverlayMessage,
694
- onLinkDeleted: this.handleLinkDeleted,
695
- onAllLinksDeleted: this.handleAllLinksDeleted,
696
- onDone: this.handleDone,
697
- onCancel: this.handleCancel
698
- })));
638
+
639
+ var {
640
+ isReversed,
641
+ start
642
+ } = linkInProgress;
643
+ var panelId = LayoutUtils.getIdFromPanel(panel);
644
+
645
+ if (panelId == null) {
646
+ return false;
699
647
  }
700
- }]);
701
648
 
702
- return Linker;
703
- }(Component);
649
+ var end = {
650
+ panelId,
651
+ panelComponent: LayoutUtils.getComponentNameFromPanel(panel),
652
+ columnName: tableColumn.name,
653
+ columnType: tableColumn.type
654
+ };
655
+ var type = isReversed ? LinkerUtils.getLinkType(end, start, isolatedLinkerPanelId) : LinkerUtils.getLinkType(start, end, isolatedLinkerPanelId);
656
+ this.updateLinkInProgressType(linkInProgress, type);
657
+ return type !== 'invalid';
658
+ }
659
+
660
+ render() {
661
+ var {
662
+ links,
663
+ isolatedLinkerPanelId,
664
+ panelManager
665
+ } = this.props;
666
+ var {
667
+ linkInProgress
668
+ } = this.state;
669
+ var isLinkOverlayShown = this.isOverlayShown();
670
+ var disabled = linkInProgress != null && linkInProgress.start != null;
671
+ var linkerOverlayMessage = isolatedLinkerPanelId === null ? 'Click a column source, then click a column target to create a filter link. Remove a filter link by clicking again to erase. Click done when finished.' : 'Create a link between the source column button and a table column by clicking on one, then the other. Remove the link by clicking it directly. Click done when finished.';
672
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CSSTransition, {
673
+ in: isLinkOverlayShown,
674
+ timeout: ThemeExport.transitionMs,
675
+ classNames: "fade",
676
+ mountOnEnter: true,
677
+ unmountOnExit: true,
678
+ onExited: this.handleExited
679
+ }, /*#__PURE__*/React.createElement(LinkerOverlayContent, {
680
+ disabled: disabled,
681
+ panelManager: panelManager,
682
+ links: this.getCachedLinks(links, linkInProgress, isolatedLinkerPanelId),
683
+ messageText: linkerOverlayMessage,
684
+ onLinkDeleted: this.handleLinkDeleted,
685
+ onAllLinksDeleted: this.handleAllLinksDeleted,
686
+ onDone: this.handleDone,
687
+ onCancel: this.handleCancel
688
+ })));
689
+ }
690
+
691
+ }
704
692
  export default connector(Linker);
705
693
  //# sourceMappingURL=Linker.js.map