@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
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
-
5
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6
-
7
- 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); }
8
-
9
- 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; }
10
-
11
- function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
12
-
13
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
-
15
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; }
16
2
 
17
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; }
18
4
 
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';
@@ -51,67 +17,61 @@ import { IrisGridUtils } from '@deephaven/iris-grid';
51
17
  import dh, { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';
52
18
  import { ThemeExport } from '@deephaven/components';
53
19
  import Log from '@deephaven/log';
54
- import { getActiveTool, setActiveTool as setActiveToolAction } from '@deephaven/redux';
20
+ import { getActiveTool, getSettings, setActiveTool as setActiveToolAction } from '@deephaven/redux';
55
21
  import { Pending, PromiseUtils, TextUtils } from '@deephaven/utils';
56
- import WidgetPanel from './WidgetPanel';
57
- import ToolType from '../linker/ToolType';
58
- import { UIPropTypes } from '../prop-types';
59
- import { InputFilterEvent, ChartEvent } from '../events';
60
- import { getColumnSelectionValidatorForDashboard, getInputFiltersForDashboard, getIsolatedLinkerPanelIdForDashboard, getLinksForDashboard, getTableMapForDashboard, setDashboardIsolatedLinkerPanelId as setDashboardIsolatedLinkerPanelIdAction } from '../redux';
61
- import ChartFilterOverlay from './ChartFilterOverlay';
62
- import ChartColumnSelectorOverlay from './ChartColumnSelectorOverlay';
22
+ import WidgetPanel from "./WidgetPanel.js";
23
+ import ToolType from "../linker/ToolType.js";
24
+ import { UIPropTypes } from "../prop-types/index.js";
25
+ import { InputFilterEvent, ChartEvent } from "../events/index.js";
26
+ import { getColumnSelectionValidatorForDashboard, getInputFiltersForDashboard, getIsolatedLinkerPanelIdForDashboard, getLinksForDashboard, getTableMapForDashboard, setDashboardIsolatedLinkerPanelId as setDashboardIsolatedLinkerPanelIdAction } from "../redux/index.js";
27
+ import ChartFilterOverlay from "./ChartFilterOverlay.js";
28
+ import ChartColumnSelectorOverlay from "./ChartColumnSelectorOverlay.js";
63
29
  import "./ChartPanel.css";
64
30
  var log = Log.module('ChartPanel');
65
31
  var UPDATE_MODEL_DEBOUNCE = 150;
66
- export var ChartPanel = /*#__PURE__*/function (_Component) {
67
- _inherits(ChartPanel, _Component);
68
-
69
- var _super = _createSuper(ChartPanel);
32
+ export class ChartPanel extends Component {
33
+ constructor(props) {
34
+ super(props);
70
35
 
71
- function ChartPanel(props) {
72
- var _this;
73
-
74
- _classCallCheck(this, ChartPanel);
75
-
76
- _this = _super.call(this, props);
77
-
78
- _defineProperty(_assertThisInitialized(_this), "getWaitingInputMap", memoize(function (isFilterRequired, columnMap, filterMap) {
36
+ _defineProperty(this, "getWaitingInputMap", memoize((isFilterRequired, columnMap, filterMap) => {
79
37
  if (!isFilterRequired) {
80
38
  return new Map();
81
39
  }
82
40
 
83
41
  var waitingInputMap = new Map(columnMap);
84
- filterMap.forEach(function (filter, name) {
85
- waitingInputMap["delete"](name);
42
+ filterMap.forEach((filter, name) => {
43
+ waitingInputMap.delete(name);
86
44
  });
87
45
  return waitingInputMap;
88
46
  }));
89
47
 
90
- _defineProperty(_assertThisInitialized(_this), "getWaitingFilterMap", memoize(function (isFilterRequired, columnMap, filterMap, linkedColumnMap, inputFilterMap) {
48
+ _defineProperty(this, "getWaitingFilterMap", memoize((isFilterRequired, columnMap, filterMap, linkedColumnMap, inputFilterMap) => {
91
49
  if (!isFilterRequired) {
92
50
  return new Map();
93
51
  }
94
52
 
95
53
  var waitingFilterMap = new Map(columnMap);
96
- filterMap.forEach(function (filter, name) {
97
- waitingFilterMap["delete"](name);
54
+ filterMap.forEach((filter, name) => {
55
+ waitingFilterMap.delete(name);
98
56
  });
99
- inputFilterMap.forEach(function (value, name) {
100
- waitingFilterMap["delete"](name);
57
+ inputFilterMap.forEach((value, name) => {
58
+ waitingFilterMap.delete(name);
101
59
  });
102
- linkedColumnMap.forEach(function (column, name) {
103
- waitingFilterMap["delete"](name);
60
+ linkedColumnMap.forEach((column, name) => {
61
+ waitingFilterMap.delete(name);
104
62
  });
105
63
  return waitingFilterMap;
106
64
  }));
107
65
 
108
- _defineProperty(_assertThisInitialized(_this), "getInputFilterColumnMap", memoize(function (columnMap, inputFilters) {
66
+ _defineProperty(this, "getInputFilterColumnMap", memoize((columnMap, inputFilters) => {
109
67
  var inputFilterMap = new Map();
110
68
 
111
69
  for (var i = 0; i < inputFilters.length; i += 1) {
112
70
  var inputFilter = inputFilters[i];
113
- var name = inputFilter.name,
114
- type = inputFilter.type;
71
+ var {
72
+ name,
73
+ type
74
+ } = inputFilter;
115
75
  var column = columnMap.get(name);
116
76
 
117
77
  if (column != null && column.type === type) {
@@ -122,9 +82,9 @@ export var ChartPanel = /*#__PURE__*/function (_Component) {
122
82
  return inputFilterMap;
123
83
  }));
124
84
 
125
- _defineProperty(_assertThisInitialized(_this), "getLinkedColumnMap", memoize(function (columnMap, links) {
85
+ _defineProperty(this, "getLinkedColumnMap", memoize((columnMap, links) => {
126
86
  var linkedColumnMap = new Map();
127
- var panelId = LayoutUtils.getIdFromPanel(_assertThisInitialized(_this));
87
+ var panelId = LayoutUtils.getIdFromPanel(this);
128
88
 
129
89
  for (var i = 0; i < links.length; i += 1) {
130
90
  var link = links[i];
@@ -144,54 +104,49 @@ export var ChartPanel = /*#__PURE__*/function (_Component) {
144
104
  return linkedColumnMap;
145
105
  }));
146
106
 
147
- _defineProperty(_assertThisInitialized(_this), "getSelectorColumns", memoize(function (columnMap, linkedColumnMap, columnSelectionValidator) {
148
- return Array.from(columnMap.values()).map(function (column) {
149
- return {
150
- name: column.name,
151
- type: column.type,
152
- isValid: columnSelectionValidator ? columnSelectionValidator(_assertThisInitialized(_this), column) : false,
153
- isActive: linkedColumnMap.has(column.name)
154
- };
155
- });
156
- }));
157
-
158
- _this.handleColumnSelected = _this.handleColumnSelected.bind(_assertThisInitialized(_this));
159
- _this.handleColumnMouseEnter = _this.handleColumnMouseEnter.bind(_assertThisInitialized(_this));
160
- _this.handleColumnMouseLeave = _this.handleColumnMouseLeave.bind(_assertThisInitialized(_this));
161
- _this.handleDisconnect = _this.handleDisconnect.bind(_assertThisInitialized(_this));
162
- _this.handleReconnect = _this.handleReconnect.bind(_assertThisInitialized(_this));
163
- _this.handleFilterAdd = _this.handleFilterAdd.bind(_assertThisInitialized(_this));
164
- _this.handleHide = _this.handleHide.bind(_assertThisInitialized(_this));
165
- _this.handleError = _this.handleError.bind(_assertThisInitialized(_this));
166
- _this.handleLoadError = _this.handleLoadError.bind(_assertThisInitialized(_this));
167
- _this.handleLoadSuccess = _this.handleLoadSuccess.bind(_assertThisInitialized(_this));
168
- _this.handleResize = _this.handleResize.bind(_assertThisInitialized(_this));
169
- _this.handleSettingsChanged = _this.handleSettingsChanged.bind(_assertThisInitialized(_this));
170
- _this.handleOpenLinker = _this.handleOpenLinker.bind(_assertThisInitialized(_this));
171
- _this.handleShow = _this.handleShow.bind(_assertThisInitialized(_this));
172
- _this.handleSourceColumnChange = _this.handleSourceColumnChange.bind(_assertThisInitialized(_this));
173
- _this.handleSourceFilterChange = _this.handleSourceFilterChange.bind(_assertThisInitialized(_this));
174
- _this.handleSourceSortChange = _this.handleSourceSortChange.bind(_assertThisInitialized(_this));
175
- _this.handleTabBlur = _this.handleTabBlur.bind(_assertThisInitialized(_this));
176
- _this.handleTabFocus = _this.handleTabFocus.bind(_assertThisInitialized(_this));
177
- _this.handleUpdate = _this.handleUpdate.bind(_assertThisInitialized(_this));
178
- _this.updateModelFromSource = debounce(_this.updateModelFromSource.bind(_assertThisInitialized(_this)), UPDATE_MODEL_DEBOUNCE);
179
- _this.handleClearAllFilters = _this.handleClearAllFilters.bind(_assertThisInitialized(_this));
180
- _this.panelContainer = /*#__PURE__*/React.createRef();
181
- _this.chart = /*#__PURE__*/React.createRef();
182
- _this.pending = new Pending();
183
- var metadata = props.metadata,
184
- panelState = props.panelState;
185
-
186
- var _ref = panelState !== null && panelState !== void 0 ? panelState : {},
187
- _ref$filterValueMap = _ref.filterValueMap,
188
- filterValueMap = _ref$filterValueMap === void 0 ? [] : _ref$filterValueMap,
189
- _ref$settings = _ref.settings,
190
- settings = _ref$settings === void 0 ? {} : _ref$settings;
191
-
107
+ _defineProperty(this, "getSelectorColumns", memoize((columnMap, linkedColumnMap, columnSelectionValidator) => Array.from(columnMap.values()).map(column => ({
108
+ name: column.name,
109
+ type: column.type,
110
+ isValid: columnSelectionValidator ? columnSelectionValidator(this, column) : false,
111
+ isActive: linkedColumnMap.has(column.name)
112
+ }))));
113
+
114
+ this.handleColumnSelected = this.handleColumnSelected.bind(this);
115
+ this.handleColumnMouseEnter = this.handleColumnMouseEnter.bind(this);
116
+ this.handleColumnMouseLeave = this.handleColumnMouseLeave.bind(this);
117
+ this.handleDisconnect = this.handleDisconnect.bind(this);
118
+ this.handleReconnect = this.handleReconnect.bind(this);
119
+ this.handleFilterAdd = this.handleFilterAdd.bind(this);
120
+ this.handleHide = this.handleHide.bind(this);
121
+ this.handleError = this.handleError.bind(this);
122
+ this.handleLoadError = this.handleLoadError.bind(this);
123
+ this.handleLoadSuccess = this.handleLoadSuccess.bind(this);
124
+ this.handleResize = this.handleResize.bind(this);
125
+ this.handleSettingsChanged = this.handleSettingsChanged.bind(this);
126
+ this.handleOpenLinker = this.handleOpenLinker.bind(this);
127
+ this.handleShow = this.handleShow.bind(this);
128
+ this.handleSourceColumnChange = this.handleSourceColumnChange.bind(this);
129
+ this.handleSourceFilterChange = this.handleSourceFilterChange.bind(this);
130
+ this.handleSourceSortChange = this.handleSourceSortChange.bind(this);
131
+ this.handleTabBlur = this.handleTabBlur.bind(this);
132
+ this.handleTabFocus = this.handleTabFocus.bind(this);
133
+ this.handleUpdate = this.handleUpdate.bind(this);
134
+ this.updateModelFromSource = debounce(this.updateModelFromSource.bind(this), UPDATE_MODEL_DEBOUNCE);
135
+ this.handleClearAllFilters = this.handleClearAllFilters.bind(this);
136
+ this.panelContainer = /*#__PURE__*/React.createRef();
137
+ this.chart = /*#__PURE__*/React.createRef();
138
+ this.pending = new Pending();
139
+ var {
140
+ metadata,
141
+ panelState
142
+ } = props;
143
+ var {
144
+ filterValueMap = [],
145
+ settings = {}
146
+ } = panelState !== null && panelState !== void 0 ? panelState : {};
192
147
  var queryName = metadata.query;
193
- _this.state = {
194
- settings: settings,
148
+ this.state = {
149
+ settings,
195
150
  error: null,
196
151
  isActive: false,
197
152
  isDisconnected: false,
@@ -206,845 +161,850 @@ export var ChartPanel = /*#__PURE__*/function (_Component) {
206
161
  filterValueMap: new Map(filterValueMap),
207
162
  model: null,
208
163
  columnMap: new Map(),
209
- queryName: queryName,
164
+ queryName,
210
165
  // eslint-disable-next-line react/no-unused-state
211
- panelState: panelState
166
+ panelState
212
167
  };
213
- return _this;
214
168
  }
215
169
 
216
- _createClass(ChartPanel, [{
217
- key: "componentDidMount",
218
- value: function componentDidMount() {
219
- if (!this.isHidden()) {
220
- this.setState({
221
- isActive: true
222
- });
223
- this.initModel();
224
- }
170
+ componentDidMount() {
171
+ if (!this.isHidden()) {
172
+ this.setState({
173
+ isActive: true
174
+ });
175
+ this.initModel();
225
176
  }
226
- }, {
227
- key: "componentDidUpdate",
228
- value: function componentDidUpdate(prevProps, prevState) {
229
- var _this$props = this.props,
230
- inputFilters = _this$props.inputFilters,
231
- source = _this$props.source;
232
- var _this$state = this.state,
233
- columnMap = _this$state.columnMap,
234
- model = _this$state.model,
235
- filterMap = _this$state.filterMap,
236
- filterValueMap = _this$state.filterValueMap,
237
- isLinked = _this$state.isLinked,
238
- settings = _this$state.settings;
239
-
240
- if (!model) {
241
- return;
242
- }
177
+ }
243
178
 
244
- if (columnMap !== prevState.columnMap) {
245
- this.pruneFilterMaps();
246
- }
179
+ componentDidUpdate(prevProps, prevState) {
180
+ var {
181
+ inputFilters,
182
+ source
183
+ } = this.props;
184
+ var {
185
+ columnMap,
186
+ model,
187
+ filterMap,
188
+ filterValueMap,
189
+ isLinked,
190
+ settings
191
+ } = this.state;
192
+
193
+ if (!model) {
194
+ return;
195
+ }
247
196
 
248
- if (inputFilters !== prevProps.inputFilters) {
249
- this.updateChangedInputFilters(inputFilters, prevProps.inputFilters);
250
- }
197
+ if (columnMap !== prevState.columnMap) {
198
+ this.pruneFilterMaps();
199
+ }
251
200
 
252
- if (filterMap !== prevState.filterMap) {
253
- this.updateFilters();
254
- } else if (filterValueMap !== prevState.filterValueMap) {
255
- this.updatePanelState();
256
- }
201
+ if (inputFilters !== prevProps.inputFilters) {
202
+ this.updateChangedInputFilters(inputFilters, prevProps.inputFilters);
203
+ }
257
204
 
258
- if (settings !== prevState.settings) {
259
- model.updateSettings(settings);
260
- this.updatePanelState();
261
- }
205
+ if (filterMap !== prevState.filterMap) {
206
+ this.updateFilters();
207
+ } else if (filterValueMap !== prevState.filterValueMap) {
208
+ this.updatePanelState();
209
+ }
262
210
 
263
- if (isLinked !== prevState.isLinked) {
264
- if (source) {
265
- if (isLinked) {
266
- this.startListeningToSource(source);
267
- this.updateModelFromSource();
268
- } else {
269
- this.stopListeningToSource(source);
270
- }
271
- }
272
- } else if (isLinked && source !== prevProps.source) {
273
- if (prevProps.source) {
274
- this.stopListeningToSource(prevProps.source);
275
- }
211
+ if (settings !== prevState.settings) {
212
+ model.updateSettings(settings);
213
+ this.updatePanelState();
214
+ }
276
215
 
277
- if (source) {
216
+ if (isLinked !== prevState.isLinked) {
217
+ if (source) {
218
+ if (isLinked) {
278
219
  this.startListeningToSource(source);
279
220
  this.updateModelFromSource();
221
+ } else {
222
+ this.stopListeningToSource(source);
280
223
  }
281
224
  }
282
- }
283
- }, {
284
- key: "componentWillUnmount",
285
- value: function componentWillUnmount() {
286
- this.pending.cancel();
287
- var source = this.props.source;
225
+ } else if (isLinked && source !== prevProps.source) {
226
+ if (prevProps.source) {
227
+ this.stopListeningToSource(prevProps.source);
228
+ }
288
229
 
289
230
  if (source) {
290
- this.stopListeningToSource(source);
231
+ this.startListeningToSource(source);
232
+ this.updateModelFromSource();
291
233
  }
292
234
  }
293
- }, {
294
- key: "initModel",
295
- value: function initModel() {
296
- this.setState({
297
- isLoading: true,
298
- isLoaded: false,
299
- error: null
300
- });
301
- var makeModel = this.props.makeModel;
302
- this.pending.add(makeModel(), function (resolved) {
303
- resolved.close();
304
- }).then(this.handleLoadSuccess, this.handleLoadError);
305
- }
306
- }, {
307
- key: "startListeningToSource",
308
- value: function startListeningToSource(table) {
309
- log.debug('startListeningToSource', table);
310
- table.addEventListener(dh.Table.EVENT_CUSTOMCOLUMNSCHANGED, this.handleSourceColumnChange);
311
- table.addEventListener(dh.Table.EVENT_FILTERCHANGED, this.handleSourceFilterChange);
312
- table.addEventListener(dh.Table.EVENT_SORTCHANGED, this.handleSourceSortChange);
235
+ }
236
+
237
+ componentWillUnmount() {
238
+ this.pending.cancel();
239
+ var {
240
+ source
241
+ } = this.props;
242
+
243
+ if (source) {
244
+ this.stopListeningToSource(source);
313
245
  }
314
- }, {
315
- key: "stopListeningToSource",
316
- value: function stopListeningToSource(table) {
317
- log.debug('stopListeningToSource', table);
318
- table.removeEventListener(dh.Table.EVENT_CUSTOMCOLUMNSCHANGED, this.handleSourceColumnChange);
319
- table.removeEventListener(dh.Table.EVENT_FILTERCHANGED, this.handleSourceFilterChange);
320
- table.removeEventListener(dh.Table.EVENT_SORTCHANGED, this.handleSourceSortChange);
246
+ }
247
+
248
+ initModel() {
249
+ this.setState({
250
+ isLoading: true,
251
+ isLoaded: false,
252
+ error: null
253
+ });
254
+ var {
255
+ makeModel
256
+ } = this.props;
257
+ this.pending.add(makeModel(), resolved => {
258
+ resolved.close();
259
+ }).then(this.handleLoadSuccess, this.handleLoadError);
260
+ }
261
+
262
+ startListeningToSource(table) {
263
+ log.debug('startListeningToSource', table);
264
+ table.addEventListener(dh.Table.EVENT_CUSTOMCOLUMNSCHANGED, this.handleSourceColumnChange);
265
+ table.addEventListener(dh.Table.EVENT_FILTERCHANGED, this.handleSourceFilterChange);
266
+ table.addEventListener(dh.Table.EVENT_SORTCHANGED, this.handleSourceSortChange);
267
+ }
268
+
269
+ stopListeningToSource(table) {
270
+ log.debug('stopListeningToSource', table);
271
+ table.removeEventListener(dh.Table.EVENT_CUSTOMCOLUMNSCHANGED, this.handleSourceColumnChange);
272
+ table.removeEventListener(dh.Table.EVENT_FILTERCHANGED, this.handleSourceFilterChange);
273
+ table.removeEventListener(dh.Table.EVENT_SORTCHANGED, this.handleSourceSortChange);
274
+ }
275
+
276
+ loadModelIfNecessary() {
277
+ var {
278
+ isActive,
279
+ isLoaded,
280
+ isLoading
281
+ } = this.state;
282
+
283
+ if (isActive && !isLoaded && !isLoading) {
284
+ this.initModel();
321
285
  }
322
- }, {
323
- key: "loadModelIfNecessary",
324
- value: function loadModelIfNecessary() {
325
- var _this$state2 = this.state,
326
- isActive = _this$state2.isActive,
327
- isLoaded = _this$state2.isLoaded,
328
- isLoading = _this$state2.isLoading;
329
-
330
- if (isActive && !isLoaded && !isLoading) {
331
- this.initModel();
332
- }
286
+ }
287
+
288
+ isHidden() {
289
+ var {
290
+ glContainer
291
+ } = this.props;
292
+ var {
293
+ isHidden
294
+ } = glContainer;
295
+ return isHidden;
296
+ }
297
+
298
+ handleColumnSelected(columnName) {
299
+ var {
300
+ glEventHub
301
+ } = this.props;
302
+ var {
303
+ columnMap
304
+ } = this.state;
305
+ glEventHub.emit(ChartEvent.COLUMN_SELECTED, this, columnMap.get(columnName));
306
+ }
307
+
308
+ handleColumnMouseEnter(_ref) {
309
+ var {
310
+ type,
311
+ name
312
+ } = _ref;
313
+ var {
314
+ columnSelectionValidator
315
+ } = this.props;
316
+ log.debug('handleColumnMouseEnter', columnSelectionValidator, type, name);
317
+
318
+ if (!columnSelectionValidator) {
319
+ return;
333
320
  }
334
- }, {
335
- key: "isHidden",
336
- value: function isHidden() {
337
- var glContainer = this.props.glContainer;
338
- var isHidden = glContainer.isHidden;
339
- return isHidden;
321
+
322
+ columnSelectionValidator(this, {
323
+ type,
324
+ name
325
+ });
326
+ }
327
+
328
+ handleColumnMouseLeave() {
329
+ var {
330
+ columnSelectionValidator
331
+ } = this.props;
332
+ log.debug('handleColumnMouseLeave', columnSelectionValidator);
333
+
334
+ if (!columnSelectionValidator) {
335
+ return;
340
336
  }
341
- }, {
342
- key: "handleColumnSelected",
343
- value: function handleColumnSelected(columnName) {
344
- var glEventHub = this.props.glEventHub;
345
- var columnMap = this.state.columnMap;
346
- glEventHub.emit(ChartEvent.COLUMN_SELECTED, this, columnMap.get(columnName));
337
+
338
+ columnSelectionValidator(this, null);
339
+ }
340
+
341
+ handleDisconnect() {
342
+ this.setState({
343
+ error: new Error('Figure disconnected'),
344
+ isDisconnected: true
345
+ });
346
+ }
347
+
348
+ handleFilterAdd(columns) {
349
+ for (var i = 0; i < columns.length; i += 1) {
350
+ this.openInputFilter(columns[i]);
347
351
  }
348
- }, {
349
- key: "handleColumnMouseEnter",
350
- value: function handleColumnMouseEnter(_ref2) {
351
- var type = _ref2.type,
352
- name = _ref2.name;
353
- var columnSelectionValidator = this.props.columnSelectionValidator;
354
- log.debug('handleColumnMouseEnter', columnSelectionValidator, type, name);
355
-
356
- if (!columnSelectionValidator) {
357
- return;
352
+ }
353
+
354
+ handleOpenLinker() {
355
+ var {
356
+ localDashboardId,
357
+ setActiveTool,
358
+ setDashboardIsolatedLinkerPanelId
359
+ } = this.props;
360
+ setDashboardIsolatedLinkerPanelId(localDashboardId, null);
361
+ setActiveTool(ToolType.LINKER);
362
+ }
363
+
364
+ handleReconnect() {
365
+ this.setState({
366
+ isDisconnected: false,
367
+ error: null
368
+ });
369
+ this.sendColumnChange();
370
+ this.updateColumnFilters();
371
+ }
372
+
373
+ handleLoadSuccess(model) {
374
+ log.debug('handleLoadSuccess');
375
+ var {
376
+ model: prevModel
377
+ } = this.state;
378
+ this.setState({
379
+ model,
380
+ isLoaded: true
381
+ }, () => {
382
+ var {
383
+ inputFilters,
384
+ source
385
+ } = this.props;
386
+ var {
387
+ filterMap,
388
+ isLinked
389
+ } = this.state;
390
+
391
+ if (model !== prevModel) {
392
+ this.sendColumnChange();
393
+ this.updateColumnFilters();
394
+ this.updateInputFilters(inputFilters, filterMap.size > 0 || model.isFilterRequired());
395
+
396
+ if (source && isLinked) {
397
+ this.startListeningToSource(source);
398
+ this.updateModelFromSource();
399
+ }
358
400
  }
401
+ });
402
+ }
359
403
 
360
- columnSelectionValidator(this, {
361
- type: type,
362
- name: name
363
- });
404
+ handleLoadError(error) {
405
+ if (PromiseUtils.isCanceled(error)) {
406
+ return;
364
407
  }
365
- }, {
366
- key: "handleColumnMouseLeave",
367
- value: function handleColumnMouseLeave() {
368
- var columnSelectionValidator = this.props.columnSelectionValidator;
369
- log.debug('handleColumnMouseLeave', columnSelectionValidator);
370
-
371
- if (!columnSelectionValidator) {
372
- return;
408
+
409
+ log.error('handleLoadError', error);
410
+ this.setState({
411
+ error,
412
+ isLoading: false
413
+ });
414
+ }
415
+
416
+ handleSourceColumnChange() {
417
+ this.updateModelFromSource();
418
+ }
419
+
420
+ handleSourceFilterChange() {
421
+ this.updateModelFromSource();
422
+ }
423
+
424
+ handleSourceSortChange() {
425
+ this.updateModelFromSource();
426
+ }
427
+
428
+ updateModelFromSource() {
429
+ var {
430
+ metadata,
431
+ source
432
+ } = this.props;
433
+ var {
434
+ isLinked,
435
+ model
436
+ } = this.state;
437
+ var {
438
+ settings
439
+ } = metadata;
440
+
441
+ if (!isLinked || !model || !source) {
442
+ log.debug2('updateModelFromSource ignoring', isLinked, model, source);
443
+ return;
444
+ } // By now the model has already been loaded, which is the only other cancelable thing in pending
445
+
446
+
447
+ this.pending.cancel();
448
+ this.pending.add(dh.plot.Figure.create(ChartUtils.makeFigureSettings(settings, source))).then(figure => {
449
+ model.setFigure(figure);
450
+ }).catch(this.handleLoadError);
451
+ this.updatePanelState();
452
+ }
453
+
454
+ updatePanelState() {
455
+ var {
456
+ sourcePanel
457
+ } = this.props;
458
+ var {
459
+ panelState,
460
+ filterValueMap,
461
+ settings
462
+ } = this.state;
463
+ var {
464
+ tableSettings
465
+ } = panelState !== null && panelState !== void 0 ? panelState : {};
466
+
467
+ if (sourcePanel) {
468
+ // Right now just update the panel state from the source
469
+ // If the source isn't available, just keep the state that's already saved
470
+ var {
471
+ inputFilters
472
+ } = sourcePanel.props;
473
+ var {
474
+ panelState: sourcePanelState
475
+ } = sourcePanel.state;
476
+
477
+ if (sourcePanelState) {
478
+ tableSettings = IrisGridUtils.extractTableSettings(sourcePanelState, inputFilters);
373
479
  }
480
+ } // eslint-disable-next-line react/no-unused-state
374
481
 
375
- columnSelectionValidator(this, null);
376
- }
377
- }, {
378
- key: "handleDisconnect",
379
- value: function handleDisconnect() {
380
- this.setState({
381
- error: new Error('Figure disconnected'),
382
- isDisconnected: true
383
- });
384
- }
385
- }, {
386
- key: "handleFilterAdd",
387
- value: function handleFilterAdd(columns) {
388
- for (var i = 0; i < columns.length; i += 1) {
389
- this.openInputFilter(columns[i]);
482
+
483
+ this.setState({
484
+ panelState: {
485
+ settings,
486
+ tableSettings,
487
+ filterValueMap: Array.from(filterValueMap)
390
488
  }
391
- }
392
- }, {
393
- key: "handleOpenLinker",
394
- value: function handleOpenLinker() {
395
- var _this$props2 = this.props,
396
- localDashboardId = _this$props2.localDashboardId,
397
- setActiveTool = _this$props2.setActiveTool,
398
- setDashboardIsolatedLinkerPanelId = _this$props2.setDashboardIsolatedLinkerPanelId;
399
- setDashboardIsolatedLinkerPanelId(localDashboardId, null);
400
- setActiveTool(ToolType.LINKER);
401
- }
402
- }, {
403
- key: "handleReconnect",
404
- value: function handleReconnect() {
405
- this.setState({
406
- isDisconnected: false,
407
- error: null
408
- });
409
- this.sendColumnChange();
410
- this.updateColumnFilters();
411
- }
412
- }, {
413
- key: "handleLoadSuccess",
414
- value: function handleLoadSuccess(model) {
415
- var _this2 = this;
489
+ });
490
+ }
416
491
 
417
- log.debug('handleLoadSuccess');
418
- var prevModel = this.state.model;
419
- this.setState({
420
- model: model,
421
- isLoaded: true
422
- }, function () {
423
- var _this2$props = _this2.props,
424
- inputFilters = _this2$props.inputFilters,
425
- source = _this2$props.source;
426
- var _this2$state = _this2.state,
427
- filterMap = _this2$state.filterMap,
428
- isLinked = _this2$state.isLinked;
492
+ handleError() {
493
+ // Don't want to set an error state, because the user can fix a chart error within the chart itself.
494
+ // We're not loading anymore either so stop showing the spinner so the user can actually click those buttons.
495
+ this.setState({
496
+ isLoading: false
497
+ });
498
+ }
429
499
 
430
- if (model !== prevModel) {
431
- _this2.sendColumnChange();
500
+ handleResize() {
501
+ this.updateChart();
502
+ }
432
503
 
433
- _this2.updateColumnFilters();
504
+ handleSettingsChanged(update) {
505
+ this.setState((_ref2) => {
506
+ var {
507
+ settings: prevSettings
508
+ } = _ref2;
434
509
 
435
- _this2.updateInputFilters(inputFilters, filterMap.size > 0 || model.isFilterRequired());
510
+ var settings = _objectSpread(_objectSpread({}, prevSettings), update);
436
511
 
437
- if (source && isLinked) {
438
- _this2.startListeningToSource(source);
512
+ log.debug('Updated settings', settings);
513
+ return {
514
+ settings
515
+ };
516
+ });
517
+ }
439
518
 
440
- _this2.updateModelFromSource();
441
- }
442
- }
443
- });
444
- }
445
- }, {
446
- key: "handleLoadError",
447
- value: function handleLoadError(error) {
448
- if (PromiseUtils.isCanceled(error)) {
449
- return;
519
+ handleHide() {
520
+ this.setActive(false);
521
+ }
522
+
523
+ handleShow() {
524
+ this.setActive(true);
525
+ }
526
+
527
+ handleTabBlur() {
528
+ this.setActive(false);
529
+ }
530
+
531
+ handleTabFocus() {
532
+ var isHidden = this.isHidden();
533
+ this.setActive(!isHidden);
534
+ }
535
+
536
+ handleUpdate() {
537
+ this.setState({
538
+ isLoading: false
539
+ });
540
+ }
541
+
542
+ handleClearAllFilters() {
543
+ // nuke link filter and input filter map
544
+ // input filters only clear themselves if they are not yet empty
545
+ this.setState({
546
+ filterValueMap: new Map(),
547
+ filterMap: new Map()
548
+ });
549
+ this.updatePanelState();
550
+ }
551
+ /**
552
+ * Create an input filter panel for the provided column
553
+ * @param {dh.Column} column The column to create the input filter for
554
+ */
555
+
556
+
557
+ openInputFilter(column) {
558
+ var {
559
+ glEventHub
560
+ } = this.props;
561
+ var {
562
+ name,
563
+ type
564
+ } = column;
565
+ glEventHub.emit(InputFilterEvent.OPEN_INPUT, {
566
+ title: "".concat(name, " Filter"),
567
+ panelState: {
568
+ name,
569
+ type,
570
+ isValueShown: true
571
+ },
572
+ createNewStack: true,
573
+ focusElement: 'input'
574
+ });
575
+ }
576
+
577
+ setActive(isActive) {
578
+ this.setState({
579
+ isActive
580
+ }, () => {
581
+ if (isActive) {
582
+ this.loadModelIfNecessary();
583
+ this.updateChart();
450
584
  }
585
+ });
586
+ }
451
587
 
452
- log.error('handleLoadError', error);
453
- this.setState({
454
- error: error,
455
- isLoading: false
456
- });
457
- }
458
- }, {
459
- key: "handleSourceColumnChange",
460
- value: function handleSourceColumnChange() {
461
- this.updateModelFromSource();
462
- }
463
- }, {
464
- key: "handleSourceFilterChange",
465
- value: function handleSourceFilterChange() {
466
- this.updateModelFromSource();
467
- }
468
- }, {
469
- key: "handleSourceSortChange",
470
- value: function handleSourceSortChange() {
471
- this.updateModelFromSource();
472
- }
473
- }, {
474
- key: "updateModelFromSource",
475
- value: function updateModelFromSource() {
476
- var _this$props3 = this.props,
477
- metadata = _this$props3.metadata,
478
- source = _this$props3.source;
479
- var _this$state3 = this.state,
480
- isLinked = _this$state3.isLinked,
481
- model = _this$state3.model;
482
- var settings = metadata.settings;
483
-
484
- if (!isLinked || !model || !source) {
485
- log.debug2('updateModelFromSource ignoring', isLinked, model, source);
486
- return;
487
- } // By now the model has already been loaded, which is the only other cancelable thing in pending
488
-
489
-
490
- this.pending.cancel();
491
- this.pending.add(dh.plot.Figure.create(ChartUtils.makeFigureSettings(settings, source))).then(function (figure) {
492
- model.setFigure(figure);
493
- })["catch"](this.handleLoadError);
494
- this.updatePanelState();
588
+ sendColumnChange() {
589
+ var {
590
+ model
591
+ } = this.state;
592
+
593
+ if (!model) {
594
+ return;
495
595
  }
496
- }, {
497
- key: "updatePanelState",
498
- value: function updatePanelState() {
499
- var sourcePanel = this.props.sourcePanel;
500
- var _this$state4 = this.state,
501
- panelState = _this$state4.panelState,
502
- filterValueMap = _this$state4.filterValueMap,
503
- settings = _this$state4.settings;
504
-
505
- var _ref3 = panelState !== null && panelState !== void 0 ? panelState : {},
506
- tableSettings = _ref3.tableSettings;
507
-
508
- if (sourcePanel) {
509
- // Right now just update the panel state from the source
510
- // If the source isn't available, just keep the state that's already saved
511
- var inputFilters = sourcePanel.props.inputFilters;
512
- var sourcePanelState = sourcePanel.state.panelState;
513
-
514
- if (sourcePanelState) {
515
- tableSettings = IrisGridUtils.extractTableSettings(sourcePanelState, inputFilters);
516
- }
517
- } // eslint-disable-next-line react/no-unused-state
518
596
 
597
+ var {
598
+ glEventHub
599
+ } = this.props;
600
+ glEventHub.emit(InputFilterEvent.COLUMNS_CHANGED, this, Array.from(model.getFilterColumnMap().values()));
601
+ }
519
602
 
520
- this.setState({
521
- panelState: {
522
- settings: settings,
523
- tableSettings: tableSettings,
524
- filterValueMap: Array.from(filterValueMap)
525
- }
526
- });
527
- }
528
- }, {
529
- key: "handleError",
530
- value: function handleError() {
531
- // Don't want to set an error state, because the user can fix a chart error within the chart itself.
532
- // We're not loading anymore either so stop showing the spinner so the user can actually click those buttons.
533
- this.setState({
534
- isLoading: false
535
- });
536
- }
537
- }, {
538
- key: "handleResize",
539
- value: function handleResize() {
540
- this.updateChart();
541
- }
542
- }, {
543
- key: "handleSettingsChanged",
544
- value: function handleSettingsChanged(update) {
545
- this.setState(function (_ref4) {
546
- var prevSettings = _ref4.settings;
547
-
548
- var settings = _objectSpread(_objectSpread({}, prevSettings), update);
549
-
550
- log.debug('Updated settings', settings);
551
- return {
552
- settings: settings
553
- };
554
- });
555
- }
556
- }, {
557
- key: "handleHide",
558
- value: function handleHide() {
559
- this.setActive(false);
560
- }
561
- }, {
562
- key: "handleShow",
563
- value: function handleShow() {
564
- this.setActive(true);
565
- }
566
- }, {
567
- key: "handleTabBlur",
568
- value: function handleTabBlur() {
569
- this.setActive(false);
570
- }
571
- }, {
572
- key: "handleTabFocus",
573
- value: function handleTabFocus() {
574
- var isHidden = this.isHidden();
575
- this.setActive(!isHidden);
576
- }
577
- }, {
578
- key: "handleUpdate",
579
- value: function handleUpdate() {
580
- this.setState({
581
- isLoading: false
582
- });
583
- }
584
- }, {
585
- key: "handleClearAllFilters",
586
- value: function handleClearAllFilters() {
587
- // nuke link filter and input filter map
588
- // input filters only clear themselves if they are not yet empty
589
- this.setState({
590
- filterValueMap: new Map(),
591
- filterMap: new Map()
592
- });
593
- this.updatePanelState();
594
- }
595
- /**
596
- * Create an input filter panel for the provided column
597
- * @param {dh.Column} column The column to create the input filter for
598
- */
599
-
600
- }, {
601
- key: "openInputFilter",
602
- value: function openInputFilter(column) {
603
- var glEventHub = this.props.glEventHub;
604
- var name = column.name,
605
- type = column.type;
606
- glEventHub.emit(InputFilterEvent.OPEN_INPUT, {
607
- title: "".concat(name, " Filter"),
608
- panelState: {
609
- name: name,
610
- type: type,
611
- isValueShown: true
612
- },
613
- createNewStack: true,
614
- focusElement: 'input'
615
- });
616
- }
617
- }, {
618
- key: "setActive",
619
- value: function setActive(isActive) {
620
- var _this3 = this;
603
+ getCoordinateForColumn(columnName) {
604
+ var _element$getBoundingC;
621
605
 
622
- this.setState({
623
- isActive: isActive
624
- }, function () {
625
- if (isActive) {
626
- _this3.loadModelIfNecessary();
606
+ var className = ChartColumnSelectorOverlay.makeButtonClassName(columnName);
627
607
 
628
- _this3.updateChart();
629
- }
630
- });
608
+ if (!this.panelContainer.current) {
609
+ return null;
631
610
  }
632
- }, {
633
- key: "sendColumnChange",
634
- value: function sendColumnChange() {
635
- var model = this.state.model;
636
611
 
637
- if (!model) {
638
- return;
639
- }
612
+ var element = this.panelContainer.current.querySelector(".".concat(className));
613
+ var rect = (_element$getBoundingC = element === null || element === void 0 ? void 0 : element.getBoundingClientRect()) !== null && _element$getBoundingC !== void 0 ? _element$getBoundingC : null;
640
614
 
641
- var glEventHub = this.props.glEventHub;
642
- glEventHub.emit(InputFilterEvent.COLUMNS_CHANGED, this, Array.from(model.getFilterColumnMap().values()));
615
+ if (rect == null || rect.width <= 0 || rect.height <= 0) {
616
+ return null;
643
617
  }
644
- }, {
645
- key: "getCoordinateForColumn",
646
- value: function getCoordinateForColumn(columnName) {
647
- var _element$getBoundingC;
648
618
 
649
- var className = ChartColumnSelectorOverlay.makeButtonClassName(columnName);
619
+ var x = rect.left + rect.width / 2;
620
+ var y = rect.bottom;
621
+ return [x, y];
622
+ }
623
+ /**
624
+ * Set chart filters based on the filter map
625
+ * @param {Map<string, Object>} filterMapParam Filter map
626
+ */
627
+
628
+
629
+ setFilterMap(filterMapParam) {
630
+ log.debug('setFilterMap', filterMapParam);
631
+ this.setState(state => {
632
+ var _updatedFilterMap;
633
+
634
+ var {
635
+ columnMap,
636
+ filterMap
637
+ } = state;
638
+ var updatedFilterMap = null;
639
+ var filterValueMap = new Map(state.filterValueMap);
640
+ filterMapParam.forEach((_ref3, columnName) => {
641
+ var {
642
+ columnType,
643
+ value
644
+ } = _ref3;
645
+ var column = columnMap.get(columnName);
646
+
647
+ if (column == null || column.type !== columnType) {
648
+ return;
649
+ }
650
650
 
651
- if (!this.panelContainer.current) {
652
- return null;
653
- }
651
+ filterValueMap.set(columnName, value);
654
652
 
655
- var element = this.panelContainer.current.querySelector(".".concat(className));
656
- var rect = (_element$getBoundingC = element === null || element === void 0 ? void 0 : element.getBoundingClientRect()) !== null && _element$getBoundingC !== void 0 ? _element$getBoundingC : null;
653
+ if (filterMap.get(columnName) !== value) {
654
+ if (updatedFilterMap === null) {
655
+ updatedFilterMap = new Map(filterMap);
656
+ }
657
+
658
+ updatedFilterMap.set(columnName, value);
659
+ }
660
+ }); // Don't update filterMap unless the filters actually changed.
661
+ // Otherwise the chart gets stuck on a spinner
662
+ // because it never gets an update event for unchanged filters.
663
+
664
+ return {
665
+ filterValueMap,
666
+ filterMap: (_updatedFilterMap = updatedFilterMap) !== null && _updatedFilterMap !== void 0 ? _updatedFilterMap : filterMap
667
+ };
668
+ });
669
+ }
657
670
 
658
- if (rect == null || rect.width <= 0 || rect.height <= 0) {
671
+ unsetFilterValue(columnName) {
672
+ this.setState(state => {
673
+ // We want to unset a value unless there's an input filter for it
674
+ // If there's an input filter, then we want to just set it to that value
675
+ // This way if the user has an input filter and a link, when they delete the link the input filter value takes effect
676
+ var {
677
+ inputFilters
678
+ } = this.props;
679
+ var {
680
+ columnMap
681
+ } = state;
682
+ var {
683
+ filterMap,
684
+ filterValueMap
685
+ } = state;
686
+
687
+ if (!filterValueMap.has(columnName)) {
659
688
  return null;
660
689
  }
661
690
 
662
- var x = rect.left + rect.width / 2;
663
- var y = rect.bottom;
664
- return [x, y];
665
- }
666
- /**
667
- * Set chart filters based on the filter map
668
- * @param {Map<string, Object>} filterMapParam Filter map
669
- */
670
-
671
- }, {
672
- key: "setFilterMap",
673
- value: function setFilterMap(filterMapParam) {
674
- log.debug('setFilterMap', filterMapParam);
675
- this.setState(function (state) {
676
- var _updatedFilterMap;
677
-
678
- var columnMap = state.columnMap,
679
- filterMap = state.filterMap;
680
- var updatedFilterMap = null;
681
- var filterValueMap = new Map(state.filterValueMap);
682
- filterMapParam.forEach(function (_ref5, columnName) {
683
- var columnType = _ref5.columnType,
684
- value = _ref5.value;
685
- var column = columnMap.get(columnName);
686
-
687
- if (column == null || column.type !== columnType) {
688
- return;
689
- }
691
+ filterValueMap = new Map(state.filterValueMap);
692
+ filterValueMap.delete(columnName);
693
+ var inputFilterMap = this.getInputFilterColumnMap(columnMap, inputFilters);
690
694
 
691
- filterValueMap.set(columnName, value);
695
+ if (inputFilterMap.has(columnName)) {
696
+ var filterValue = filterMap.get(columnName);
697
+ var inputFilterValue = inputFilterMap.get(columnName).value;
692
698
 
693
- if (filterMap.get(columnName) !== value) {
694
- if (updatedFilterMap === null) {
695
- updatedFilterMap = new Map(filterMap);
696
- }
699
+ if (inputFilterValue != null && filterValue !== inputFilterValue) {
700
+ filterMap = new Map(state.filterMap);
697
701
 
698
- updatedFilterMap.set(columnName, value);
702
+ if (inputFilterValue.length > 0) {
703
+ filterMap.set(columnName, inputFilterValue);
704
+ } else {
705
+ filterMap.delete(columnName);
699
706
  }
700
- }); // Don't update filterMap unless the filters actually changed.
701
- // Otherwise the chart gets stuck on a spinner
702
- // because it never gets an update event for unchanged filters.
703
-
704
- return {
705
- filterValueMap: filterValueMap,
706
- filterMap: (_updatedFilterMap = updatedFilterMap) !== null && _updatedFilterMap !== void 0 ? _updatedFilterMap : filterMap
707
- };
708
- });
709
- }
710
- }, {
711
- key: "unsetFilterValue",
712
- value: function unsetFilterValue(columnName) {
713
- var _this4 = this;
714
-
715
- this.setState(function (state) {
716
- // We want to unset a value unless there's an input filter for it
717
- // If there's an input filter, then we want to just set it to that value
718
- // This way if the user has an input filter and a link, when they delete the link the input filter value takes effect
719
- var inputFilters = _this4.props.inputFilters;
720
- var columnMap = state.columnMap;
721
- var filterMap = state.filterMap,
722
- filterValueMap = state.filterValueMap;
723
-
724
- if (!filterValueMap.has(columnName)) {
725
- return null;
726
707
  }
708
+ } else {
709
+ filterMap = new Map(state.filterMap);
710
+ filterMap.delete(columnName);
711
+ }
712
+
713
+ return {
714
+ filterMap,
715
+ filterValueMap
716
+ };
717
+ });
718
+ }
719
+
720
+ updateChangedInputFilters(inputFilters, prevInputFilters) {
721
+ var deletedInputFilters = prevInputFilters.filter(prevInputFilter => !inputFilters.find(inputFilter => inputFilter.name === prevInputFilter.name && inputFilter.type === prevInputFilter.type));
727
722
 
728
- filterValueMap = new Map(state.filterValueMap);
729
- filterValueMap["delete"](columnName);
723
+ if (deletedInputFilters.length > 0) {
724
+ this.deleteInputFilters(deletedInputFilters);
725
+ }
730
726
 
731
- var inputFilterMap = _this4.getInputFilterColumnMap(columnMap, inputFilters);
727
+ var changedInputFilters = inputFilters.filter(inputFilter => !prevInputFilters.includes(inputFilter));
732
728
 
733
- if (inputFilterMap.has(columnName)) {
734
- var filterValue = filterMap.get(columnName);
735
- var inputFilterValue = inputFilterMap.get(columnName).value;
729
+ if (changedInputFilters.length > 0) {
730
+ this.updateInputFilters(changedInputFilters);
731
+ }
732
+ }
736
733
 
737
- if (inputFilterValue != null && filterValue !== inputFilterValue) {
738
- filterMap = new Map(state.filterMap);
734
+ updateInputFilters(inputFilters) {
735
+ var forceUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
736
+ this.setState(state => {
737
+ var {
738
+ columnMap
739
+ } = state;
740
+ var filterValueMap = new Map(state.filterValueMap);
741
+ var filterMap = new Map(state.filterMap);
742
+ var update = forceUpdate ? {
743
+ filterMap,
744
+ filterValueMap
745
+ } : {};
739
746
 
740
- if (inputFilterValue.length > 0) {
741
- filterMap.set(columnName, inputFilterValue);
747
+ for (var i = 0; i < inputFilters.length; i += 1) {
748
+ var {
749
+ name,
750
+ type,
751
+ value
752
+ } = inputFilters[i];
753
+ var column = columnMap.get(name);
754
+
755
+ if (column != null && column.type === type) {
756
+ if (value != null && filterMap.get(name) !== value) {
757
+ if (value === '') {
758
+ filterMap.delete(name);
742
759
  } else {
743
- filterMap["delete"](columnName);
760
+ filterMap.set(name, value);
744
761
  }
745
- }
746
- } else {
747
- filterMap = new Map(state.filterMap);
748
- filterMap["delete"](columnName);
749
- }
750
762
 
751
- return {
752
- filterMap: filterMap,
753
- filterValueMap: filterValueMap
754
- };
755
- });
756
- }
757
- }, {
758
- key: "updateChangedInputFilters",
759
- value: function updateChangedInputFilters(inputFilters, prevInputFilters) {
760
- var deletedInputFilters = prevInputFilters.filter(function (prevInputFilter) {
761
- return !inputFilters.find(function (inputFilter) {
762
- return inputFilter.name === prevInputFilter.name && inputFilter.type === prevInputFilter.type;
763
- });
764
- });
763
+ update.filterMap = filterMap;
764
+ }
765
765
 
766
- if (deletedInputFilters.length > 0) {
767
- this.deleteInputFilters(deletedInputFilters);
766
+ if (filterValueMap.has(name)) {
767
+ // Need to unset whatever the linked value was - if they want that value again, they need to double click the link again
768
+ filterValueMap.delete(name);
769
+ update.filterValueMap = filterValueMap;
770
+ }
771
+ }
768
772
  }
769
773
 
770
- var changedInputFilters = inputFilters.filter(function (inputFilter) {
771
- return !prevInputFilters.includes(inputFilter);
772
- });
774
+ log.debug('updateInputFilters', update);
775
+ return update;
776
+ });
777
+ }
773
778
 
774
- if (changedInputFilters.length > 0) {
775
- this.updateInputFilters(changedInputFilters);
776
- }
777
- }
778
- }, {
779
- key: "updateInputFilters",
780
- value: function updateInputFilters(inputFilters) {
781
- var forceUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
782
- this.setState(function (state) {
783
- var columnMap = state.columnMap;
784
- var filterValueMap = new Map(state.filterValueMap);
785
- var filterMap = new Map(state.filterMap);
786
- var update = forceUpdate ? {
787
- filterMap: filterMap,
788
- filterValueMap: filterValueMap
789
- } : {};
790
-
791
- for (var i = 0; i < inputFilters.length; i += 1) {
792
- var _inputFilters$i = inputFilters[i],
793
- name = _inputFilters$i.name,
794
- type = _inputFilters$i.type,
795
- value = _inputFilters$i.value;
796
- var column = columnMap.get(name);
797
-
798
- if (column != null && column.type === type) {
799
- if (value != null && filterMap.get(name) !== value) {
800
- if (value === '') {
801
- filterMap["delete"](name);
802
- } else {
803
- filterMap.set(name, value);
804
- }
779
+ deleteInputFilters(inputFilters) {
780
+ var forceUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
781
+ this.setState(state => {
782
+ var {
783
+ columnMap,
784
+ filterValueMap
785
+ } = state;
786
+ var filterMap = new Map(state.filterMap);
787
+ var needsUpdate = forceUpdate;
805
788
 
806
- update.filterMap = filterMap;
807
- }
789
+ for (var i = 0; i < inputFilters.length; i += 1) {
790
+ var {
791
+ name,
792
+ type
793
+ } = inputFilters[i];
794
+ var column = columnMap.get(name);
795
+
796
+ if (column != null && column.type === type) {
797
+ if (filterMap.has(name)) {
798
+ var filterValue = filterMap.get(name);
808
799
 
809
800
  if (filterValueMap.has(name)) {
810
- // Need to unset whatever the linked value was - if they want that value again, they need to double click the link again
811
- filterValueMap["delete"](name);
812
- update.filterValueMap = filterValueMap;
813
- }
814
- }
815
- }
801
+ var linkValue = filterValueMap.get(name);
816
802
 
817
- log.debug('updateInputFilters', update);
818
- return update;
819
- });
820
- }
821
- }, {
822
- key: "deleteInputFilters",
823
- value: function deleteInputFilters(inputFilters) {
824
- var forceUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
825
- this.setState(function (state) {
826
- var columnMap = state.columnMap,
827
- filterValueMap = state.filterValueMap;
828
- var filterMap = new Map(state.filterMap);
829
- var needsUpdate = forceUpdate;
830
-
831
- for (var i = 0; i < inputFilters.length; i += 1) {
832
- var _inputFilters$i2 = inputFilters[i],
833
- name = _inputFilters$i2.name,
834
- type = _inputFilters$i2.type;
835
- var column = columnMap.get(name);
836
-
837
- if (column != null && column.type === type) {
838
- if (filterMap.has(name)) {
839
- var filterValue = filterMap.get(name);
840
-
841
- if (filterValueMap.has(name)) {
842
- var linkValue = filterValueMap.get(name);
843
-
844
- if (linkValue !== filterValue) {
845
- needsUpdate = true;
846
- filterMap.set(name, linkValue);
847
- }
848
- } else {
803
+ if (linkValue !== filterValue) {
849
804
  needsUpdate = true;
850
- filterMap["delete"](name);
805
+ filterMap.set(name, linkValue);
851
806
  }
807
+ } else {
808
+ needsUpdate = true;
809
+ filterMap.delete(name);
852
810
  }
853
811
  }
854
812
  }
813
+ }
855
814
 
856
- log.debug('deleteInputFilters', needsUpdate);
857
- return needsUpdate ? {
858
- filterMap: filterMap
859
- } : null;
860
- });
861
- }
862
- }, {
863
- key: "updateColumnFilters",
864
- value: function updateColumnFilters() {
865
- this.setState(function (_ref6) {
866
- var model = _ref6.model;
867
-
868
- if (!model) {
869
- return null;
870
- }
815
+ log.debug('deleteInputFilters', needsUpdate);
816
+ return needsUpdate ? {
817
+ filterMap
818
+ } : null;
819
+ });
820
+ }
871
821
 
872
- return {
873
- columnMap: model.getFilterColumnMap()
874
- };
875
- });
876
- }
877
- }, {
878
- key: "updateFilters",
879
- value: function updateFilters() {
880
- var _this$state5 = this.state,
881
- columnMap = _this$state5.columnMap,
882
- filterMap = _this$state5.filterMap,
883
- model = _this$state5.model;
884
- var waitingInputMap = this.getWaitingInputMap(model.isFilterRequired(), columnMap, filterMap);
885
- model.setFilter(filterMap);
886
-
887
- if (filterMap.size > 0 && waitingInputMap.size === 0) {
888
- var defaultTitle = model.getDefaultTitle();
889
- var filterTitle = TextUtils.join(Array.from(filterMap.entries()).map(function (_ref7) {
890
- var _ref8 = _slicedToArray(_ref7, 2),
891
- name = _ref8[0],
892
- value = _ref8[1];
893
-
894
- return "".concat(name, ": ").concat(value);
895
- }));
896
-
897
- if (defaultTitle) {
898
- model.setTitle("".concat(defaultTitle, "<br><span style=\"font-size: smaller\">").concat(filterTitle, "</span>"));
899
- } else {
900
- model.setTitle(filterTitle);
901
- }
822
+ updateColumnFilters() {
823
+ this.setState((_ref4) => {
824
+ var {
825
+ model
826
+ } = _ref4;
902
827
 
903
- log.debug2('updateFilters filters set', filterMap);
904
- this.setState({
905
- isLoading: true
906
- });
828
+ if (!model) {
829
+ return null;
830
+ }
831
+
832
+ return {
833
+ columnMap: model.getFilterColumnMap()
834
+ };
835
+ });
836
+ }
837
+
838
+ updateFilters() {
839
+ var {
840
+ columnMap,
841
+ filterMap,
842
+ model
843
+ } = this.state;
844
+ var waitingInputMap = this.getWaitingInputMap(model.isFilterRequired(), columnMap, filterMap);
845
+ model.setFilter(filterMap);
846
+
847
+ if (filterMap.size > 0 && waitingInputMap.size === 0) {
848
+ var defaultTitle = model.getDefaultTitle();
849
+ var filterTitle = TextUtils.join(Array.from(filterMap.entries()).map((_ref5) => {
850
+ var [name, value] = _ref5;
851
+ return "".concat(name, ": ").concat(value);
852
+ }));
853
+
854
+ if (defaultTitle) {
855
+ model.setTitle("".concat(defaultTitle, "<br><span style=\"font-size: smaller\">").concat(filterTitle, "</span>"));
907
856
  } else {
908
- log.debug2('updateFilters waiting on inputs', waitingInputMap);
909
- model.setTitle(model.getDefaultTitle());
910
- this.setState({
911
- isLoading: false
912
- });
857
+ model.setTitle(filterTitle);
913
858
  }
914
859
 
915
- this.updatePanelState();
916
- }
917
- /**
918
- * Removes any set filter values that are no longer part of the model
919
- */
920
-
921
- }, {
922
- key: "pruneFilterMaps",
923
- value: function pruneFilterMaps() {
924
- this.setState(function (state) {
925
- var columnMap = state.columnMap;
926
- var filterMap = new Map(state.filterMap);
927
- var filterValueMap = new Map(state.filterValueMap);
928
- var newState = {};
929
- state.filterValueMap.forEach(function (value, name) {
930
- if (!columnMap.has(name)) {
931
- filterValueMap["delete"](name);
932
- newState.filterValueMap = filterValueMap;
933
- }
934
- });
935
- state.filterMap.forEach(function (value, name) {
936
- if (!columnMap.has(name)) {
937
- filterMap["delete"](name);
938
- newState.filterMap = filterMap;
939
- }
940
- });
941
- return newState;
860
+ log.debug2('updateFilters filters set', filterMap);
861
+ this.setState({
862
+ isLoading: true
863
+ });
864
+ } else {
865
+ log.debug2('updateFilters waiting on inputs', waitingInputMap);
866
+ model.setTitle(model.getDefaultTitle());
867
+ this.setState({
868
+ isLoading: false
942
869
  });
943
870
  }
944
- }, {
945
- key: "updateChart",
946
- value: function updateChart() {
947
- if (this.chart.current) {
948
- this.chart.current.updateDimensions();
949
- }
950
- }
951
- }, {
952
- key: "render",
953
- value: function render() {
954
- var _this$props4 = this.props,
955
- columnSelectionValidator = _this$props4.columnSelectionValidator,
956
- glContainer = _this$props4.glContainer,
957
- glEventHub = _this$props4.glEventHub,
958
- inputFilters = _this$props4.inputFilters,
959
- isLinkerActive = _this$props4.isLinkerActive,
960
- links = _this$props4.links,
961
- metadata = _this$props4.metadata;
962
- var _this$state6 = this.state,
963
- columnMap = _this$state6.columnMap,
964
- filterMap = _this$state6.filterMap,
965
- error = _this$state6.error,
966
- model = _this$state6.model,
967
- queryName = _this$state6.queryName,
968
- isActive = _this$state6.isActive,
969
- isDisconnected = _this$state6.isDisconnected,
970
- isLoaded = _this$state6.isLoaded,
971
- isLoading = _this$state6.isLoading;
972
- var figureName = metadata.figure,
973
- querySerial = metadata.querySerial,
974
- tableName = metadata.table;
975
- var inputFilterMap = this.getInputFilterColumnMap(columnMap, inputFilters);
976
- var linkedColumnMap = this.getLinkedColumnMap(columnMap, links);
977
- var waitingInputMap = model != null ? this.getWaitingInputMap(model.isFilterRequired(), columnMap, filterMap) : new Map();
978
- var waitingFilterMap = model != null ? this.getWaitingFilterMap(model.isFilterRequired(), columnMap, filterMap, linkedColumnMap, inputFilterMap) : new Map();
979
- var errorMessage = error ? "Unable to open chart. ".concat(error) : null;
980
- var isWaitingForFilter = waitingInputMap.size > 0;
981
- var isSelectingColumn = columnMap.size > 0 && isLinkerActive;
982
- return /*#__PURE__*/React.createElement(WidgetPanel, {
983
- className: classNames('iris-chart-panel', {
984
- 'input-required': isWaitingForFilter
985
- }),
986
- componentPanel: this,
987
- glContainer: glContainer,
988
- glEventHub: glEventHub,
989
- onHide: this.handleHide,
990
- onClearAllFilters: this.handleClearAllFilters,
991
- onResize: this.handleResize,
992
- onShow: this.handleShow,
993
- onTabBlur: this.handleTabBlur,
994
- onTabFocus: this.handleTabFocus,
995
- errorMessage: errorMessage,
996
- isDisconnected: isDisconnected,
997
- isLoading: isLoading,
998
- isLoaded: isLoaded,
999
- queryName: queryName,
1000
- querySerial: querySerial,
1001
- widgetName: figureName || tableName,
1002
- widgetType: "Chart"
1003
- }, /*#__PURE__*/React.createElement("div", {
1004
- ref: this.panelContainer,
1005
- className: "chart-panel-container h-100 w-100"
1006
- }, /*#__PURE__*/React.createElement("div", {
1007
- className: "chart-container h-100 w-100"
1008
- }, isLoaded && /*#__PURE__*/React.createElement(Chart, {
1009
- isActive: isActive,
1010
- model: model,
1011
- ref: this.chart,
1012
- onDisconnect: this.handleDisconnect,
1013
- onReconnect: this.handleReconnect,
1014
- onUpdate: this.handleUpdate,
1015
- onError: this.handleError,
1016
- onSettingsChanged: this.handleSettingsChanged
1017
- })), /*#__PURE__*/React.createElement(CSSTransition, {
1018
- "in": isWaitingForFilter && !isSelectingColumn && !isLoading,
1019
- timeout: ThemeExport.transitionMs,
1020
- classNames: "fade",
1021
- mountOnEnter: true,
1022
- unmountOnExit: true
1023
- }, /*#__PURE__*/React.createElement(ChartFilterOverlay, {
1024
- inputFilterMap: inputFilterMap,
1025
- linkedColumnMap: linkedColumnMap,
1026
- onAdd: this.handleFilterAdd,
1027
- onOpenLinker: this.handleOpenLinker,
1028
- columnMap: columnMap,
1029
- waitingFilterMap: waitingFilterMap,
1030
- waitingInputMap: waitingInputMap
1031
- })), /*#__PURE__*/React.createElement(CSSTransition, {
1032
- "in": isSelectingColumn,
1033
- timeout: ThemeExport.transitionMs,
1034
- classNames: "fade",
1035
- mountOnEnter: true,
1036
- unmountOnExit: true
1037
- }, /*#__PURE__*/React.createElement(ChartColumnSelectorOverlay, {
1038
- columns: this.getSelectorColumns(columnMap, linkedColumnMap, columnSelectionValidator),
1039
- onColumnSelected: this.handleColumnSelected,
1040
- onMouseEnter: this.handleColumnMouseEnter,
1041
- onMouseLeave: this.handleColumnMouseLeave
1042
- }))));
871
+
872
+ this.updatePanelState();
873
+ }
874
+ /**
875
+ * Removes any set filter values that are no longer part of the model
876
+ */
877
+
878
+
879
+ pruneFilterMaps() {
880
+ this.setState(state => {
881
+ var {
882
+ columnMap
883
+ } = state;
884
+ var filterMap = new Map(state.filterMap);
885
+ var filterValueMap = new Map(state.filterValueMap);
886
+ var newState = {};
887
+ state.filterValueMap.forEach((value, name) => {
888
+ if (!columnMap.has(name)) {
889
+ filterValueMap.delete(name);
890
+ newState.filterValueMap = filterValueMap;
891
+ }
892
+ });
893
+ state.filterMap.forEach((value, name) => {
894
+ if (!columnMap.has(name)) {
895
+ filterMap.delete(name);
896
+ newState.filterMap = filterMap;
897
+ }
898
+ });
899
+ return newState;
900
+ });
901
+ }
902
+
903
+ updateChart() {
904
+ if (this.chart.current) {
905
+ this.chart.current.updateDimensions();
1043
906
  }
1044
- }]);
907
+ }
908
+
909
+ render() {
910
+ var {
911
+ columnSelectionValidator,
912
+ glContainer,
913
+ glEventHub,
914
+ inputFilters,
915
+ isLinkerActive,
916
+ links,
917
+ metadata,
918
+ settings
919
+ } = this.props;
920
+ var {
921
+ columnMap,
922
+ filterMap,
923
+ error,
924
+ model,
925
+ queryName,
926
+ isActive,
927
+ isDisconnected,
928
+ isLoaded,
929
+ isLoading
930
+ } = this.state;
931
+ var {
932
+ figure: figureName,
933
+ querySerial,
934
+ table: tableName
935
+ } = metadata;
936
+ var inputFilterMap = this.getInputFilterColumnMap(columnMap, inputFilters);
937
+ var linkedColumnMap = this.getLinkedColumnMap(columnMap, links);
938
+ var waitingInputMap = model != null ? this.getWaitingInputMap(model.isFilterRequired(), columnMap, filterMap) : new Map();
939
+ var waitingFilterMap = model != null ? this.getWaitingFilterMap(model.isFilterRequired(), columnMap, filterMap, linkedColumnMap, inputFilterMap) : new Map();
940
+ var errorMessage = error ? "Unable to open chart. ".concat(error) : null;
941
+ var isWaitingForFilter = waitingInputMap.size > 0;
942
+ var isSelectingColumn = columnMap.size > 0 && isLinkerActive;
943
+ return /*#__PURE__*/React.createElement(WidgetPanel, {
944
+ className: classNames('iris-chart-panel', {
945
+ 'input-required': isWaitingForFilter
946
+ }),
947
+ componentPanel: this,
948
+ glContainer: glContainer,
949
+ glEventHub: glEventHub,
950
+ onHide: this.handleHide,
951
+ onClearAllFilters: this.handleClearAllFilters,
952
+ onResize: this.handleResize,
953
+ onShow: this.handleShow,
954
+ onTabBlur: this.handleTabBlur,
955
+ onTabFocus: this.handleTabFocus,
956
+ errorMessage: errorMessage,
957
+ isDisconnected: isDisconnected,
958
+ isLoading: isLoading,
959
+ isLoaded: isLoaded,
960
+ queryName: queryName,
961
+ querySerial: querySerial,
962
+ widgetName: figureName || tableName,
963
+ widgetType: "Chart"
964
+ }, /*#__PURE__*/React.createElement("div", {
965
+ ref: this.panelContainer,
966
+ className: "chart-panel-container h-100 w-100"
967
+ }, /*#__PURE__*/React.createElement("div", {
968
+ className: "chart-container h-100 w-100"
969
+ }, isLoaded && /*#__PURE__*/React.createElement(Chart, {
970
+ isActive: isActive,
971
+ model: model,
972
+ settings: settings,
973
+ ref: this.chart,
974
+ onDisconnect: this.handleDisconnect,
975
+ onReconnect: this.handleReconnect,
976
+ onUpdate: this.handleUpdate,
977
+ onError: this.handleError,
978
+ onSettingsChanged: this.handleSettingsChanged
979
+ })), /*#__PURE__*/React.createElement(CSSTransition, {
980
+ in: isWaitingForFilter && !isSelectingColumn && !isLoading,
981
+ timeout: ThemeExport.transitionMs,
982
+ classNames: "fade",
983
+ mountOnEnter: true,
984
+ unmountOnExit: true
985
+ }, /*#__PURE__*/React.createElement(ChartFilterOverlay, {
986
+ inputFilterMap: inputFilterMap,
987
+ linkedColumnMap: linkedColumnMap,
988
+ onAdd: this.handleFilterAdd,
989
+ onOpenLinker: this.handleOpenLinker,
990
+ columnMap: columnMap,
991
+ waitingFilterMap: waitingFilterMap,
992
+ waitingInputMap: waitingInputMap
993
+ })), /*#__PURE__*/React.createElement(CSSTransition, {
994
+ in: isSelectingColumn,
995
+ timeout: ThemeExport.transitionMs,
996
+ classNames: "fade",
997
+ mountOnEnter: true,
998
+ unmountOnExit: true
999
+ }, /*#__PURE__*/React.createElement(ChartColumnSelectorOverlay, {
1000
+ columns: this.getSelectorColumns(columnMap, linkedColumnMap, columnSelectionValidator),
1001
+ onColumnSelected: this.handleColumnSelected,
1002
+ onMouseEnter: this.handleColumnMouseEnter,
1003
+ onMouseLeave: this.handleColumnMouseLeave
1004
+ }))));
1005
+ }
1045
1006
 
1046
- return ChartPanel;
1047
- }(Component);
1007
+ }
1048
1008
 
1049
1009
  _defineProperty(ChartPanel, "COMPONENT", 'ChartPanel');
1050
1010
 
@@ -1073,22 +1033,27 @@ ChartPanel.propTypes = {
1073
1033
  columnSelectionValidator: PropTypes.func,
1074
1034
  setActiveTool: PropTypes.func.isRequired,
1075
1035
  setDashboardIsolatedLinkerPanelId: PropTypes.func.isRequired,
1076
- panelState: PropTypes.shape({})
1036
+ panelState: PropTypes.shape({}),
1037
+ settings: PropTypes.shape({})
1077
1038
  };
1078
1039
  ChartPanel.defaultProps = {
1079
1040
  columnSelectionValidator: null,
1080
1041
  isLinkerActive: false,
1081
1042
  source: null,
1082
1043
  sourcePanel: null,
1083
- panelState: null
1044
+ panelState: null,
1045
+ settings: {}
1084
1046
  };
1085
1047
  ChartPanel.displayName = 'ChartPanel';
1086
1048
 
1087
- var mapStateToProps = function mapStateToProps(state, ownProps) {
1088
- var localDashboardId = ownProps.localDashboardId,
1089
- _ownProps$metadata = ownProps.metadata,
1090
- metadata = _ownProps$metadata === void 0 ? {} : _ownProps$metadata;
1091
- var sourcePanelId = metadata.sourcePanelId;
1049
+ var mapStateToProps = (state, ownProps) => {
1050
+ var {
1051
+ localDashboardId,
1052
+ metadata = {}
1053
+ } = ownProps;
1054
+ var {
1055
+ sourcePanelId
1056
+ } = metadata;
1092
1057
  var panelTableMap = getTableMapForDashboard(state, localDashboardId);
1093
1058
  var openedPanelMap = getOpenedPanelMapForDashboard(state, localDashboardId);
1094
1059
  var activeTool = getActiveTool(state);
@@ -1096,11 +1061,12 @@ var mapStateToProps = function mapStateToProps(state, ownProps) {
1096
1061
  var isLinkerActive = activeTool === ToolType.LINKER && isolatedLinkerPanelId === null;
1097
1062
  return {
1098
1063
  columnSelectionValidator: getColumnSelectionValidatorForDashboard(state, localDashboardId),
1099
- isLinkerActive: isLinkerActive,
1064
+ isLinkerActive,
1100
1065
  inputFilters: getInputFiltersForDashboard(state, localDashboardId),
1101
1066
  links: getLinksForDashboard(state, localDashboardId),
1102
1067
  source: panelTableMap.get(sourcePanelId),
1103
- sourcePanel: openedPanelMap.get(sourcePanelId)
1068
+ sourcePanel: openedPanelMap.get(sourcePanelId),
1069
+ settings: getSettings(state)
1104
1070
  };
1105
1071
  };
1106
1072