@deephaven/dashboard-core-plugins 0.15.5-vite.12 → 0.15.6-vite.19

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 (203) hide show
  1. package/dist/ChartBuilderPlugin.d.ts.map +1 -1
  2. package/dist/ChartBuilderPlugin.js +2 -1
  3. package/dist/ChartBuilderPlugin.js.map +1 -1
  4. package/dist/ChartPlugin.d.ts +2 -1
  5. package/dist/ChartPlugin.d.ts.map +1 -1
  6. package/dist/ChartPlugin.js.map +1 -1
  7. package/dist/FilterPlugin.js +1 -1
  8. package/dist/FilterPlugin.js.map +1 -1
  9. package/dist/GridPlugin.d.ts +2 -1
  10. package/dist/GridPlugin.d.ts.map +1 -1
  11. package/dist/GridPlugin.js.map +1 -1
  12. package/dist/PandasPlugin.d.ts +2 -1
  13. package/dist/PandasPlugin.d.ts.map +1 -1
  14. package/dist/PandasPlugin.js.map +1 -1
  15. package/dist/controls/ControlType.d.ts +1 -1
  16. package/dist/controls/ControlType.d.ts.map +1 -1
  17. package/dist/controls/ControlType.js.map +1 -1
  18. package/dist/controls/dropdown-filter/DropdownFilter.d.ts +73 -81
  19. package/dist/controls/dropdown-filter/DropdownFilter.d.ts.map +1 -1
  20. package/dist/controls/dropdown-filter/DropdownFilter.js +41 -58
  21. package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
  22. package/dist/controls/input-filter/InputFilter.d.ts +46 -46
  23. package/dist/controls/input-filter/InputFilter.d.ts.map +1 -1
  24. package/dist/controls/input-filter/InputFilter.js +32 -39
  25. package/dist/controls/input-filter/InputFilter.js.map +1 -1
  26. package/dist/controls/markdown/MarkdownContainer.d.ts +11 -16
  27. package/dist/controls/markdown/MarkdownContainer.d.ts.map +1 -1
  28. package/dist/controls/markdown/MarkdownContainer.js +5 -8
  29. package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
  30. package/dist/controls/markdown/MarkdownEditor.d.ts +17 -19
  31. package/dist/controls/markdown/MarkdownEditor.d.ts.map +1 -1
  32. package/dist/controls/markdown/MarkdownEditor.js +5 -8
  33. package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
  34. package/dist/controls/markdown/MarkdownStartPage.d.ts +24 -28
  35. package/dist/controls/markdown/MarkdownStartPage.d.ts.map +1 -1
  36. package/dist/controls/markdown/MarkdownStartPage.js +19 -23
  37. package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
  38. package/dist/controls/markdown/MarkdownUtils.d.ts +4 -4
  39. package/dist/controls/markdown/MarkdownUtils.d.ts.map +1 -1
  40. package/dist/controls/markdown/MarkdownUtils.js +2 -2
  41. package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
  42. package/dist/events/ChartEvent.d.ts +1 -1
  43. package/dist/events/ChartEvent.d.ts.map +1 -1
  44. package/dist/events/ChartEvent.js.map +1 -1
  45. package/dist/events/ConsoleEvent.d.ts +1 -1
  46. package/dist/events/ConsoleEvent.d.ts.map +1 -1
  47. package/dist/events/ConsoleEvent.js.map +1 -1
  48. package/dist/events/InputFilterEvent.d.ts +1 -1
  49. package/dist/events/InputFilterEvent.d.ts.map +1 -1
  50. package/dist/events/InputFilterEvent.js.map +1 -1
  51. package/dist/events/IrisGridEvent.d.ts +1 -1
  52. package/dist/events/IrisGridEvent.d.ts.map +1 -1
  53. package/dist/events/IrisGridEvent.js.map +1 -1
  54. package/dist/events/NotebookEvent.d.ts +1 -1
  55. package/dist/events/NotebookEvent.d.ts.map +1 -1
  56. package/dist/events/NotebookEvent.js.map +1 -1
  57. package/dist/events/PQEvent.d.ts +1 -1
  58. package/dist/events/PQEvent.d.ts.map +1 -1
  59. package/dist/events/PQEvent.js.map +1 -1
  60. package/dist/events/PandasEvent.d.ts +1 -1
  61. package/dist/events/PandasEvent.d.ts.map +1 -1
  62. package/dist/events/PandasEvent.js.map +1 -1
  63. package/dist/events/TabEvent.d.ts +1 -1
  64. package/dist/events/TabEvent.d.ts.map +1 -1
  65. package/dist/events/TabEvent.js.map +1 -1
  66. package/dist/events/index.d.ts +8 -8
  67. package/dist/events/index.d.ts.map +1 -1
  68. package/dist/events/index.js.map +1 -1
  69. package/dist/index.d.ts +1 -0
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +1 -0
  72. package/dist/index.js.map +1 -1
  73. package/dist/linker/ColumnSelectionValidator.d.ts +4 -0
  74. package/dist/linker/ColumnSelectionValidator.d.ts.map +1 -0
  75. package/dist/linker/ColumnSelectionValidator.js +2 -0
  76. package/dist/linker/ColumnSelectionValidator.js.map +1 -0
  77. package/dist/linker/Linker.d.ts +11 -11
  78. package/dist/linker/Linker.js +1 -1
  79. package/dist/linker/Linker.js.map +1 -1
  80. package/dist/linker/LinkerUtils.d.ts +3 -3
  81. package/dist/linker/LinkerUtils.d.ts.map +1 -1
  82. package/dist/linker/LinkerUtils.js.map +1 -1
  83. package/dist/linker/ToolType.d.ts +1 -1
  84. package/dist/linker/ToolType.d.ts.map +1 -1
  85. package/dist/linker/ToolType.js.map +1 -1
  86. package/dist/linker/index.d.ts +2 -0
  87. package/dist/linker/index.d.ts.map +1 -0
  88. package/dist/linker/index.js +2 -0
  89. package/dist/linker/index.js.map +1 -0
  90. package/dist/panels/ChartColumnSelectorOverlay.d.ts +22 -26
  91. package/dist/panels/ChartColumnSelectorOverlay.d.ts.map +1 -1
  92. package/dist/panels/ChartColumnSelectorOverlay.js +5 -14
  93. package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
  94. package/dist/panels/ChartFilterOverlay.d.ts +29 -21
  95. package/dist/panels/ChartFilterOverlay.d.ts.map +1 -1
  96. package/dist/panels/ChartFilterOverlay.js.map +1 -1
  97. package/dist/panels/ChartPanel.d.ts +187 -152
  98. package/dist/panels/ChartPanel.d.ts.map +1 -1
  99. package/dist/panels/ChartPanel.js +87 -84
  100. package/dist/panels/ChartPanel.js.map +1 -1
  101. package/dist/panels/CommandHistoryPanel.d.ts +41 -56
  102. package/dist/panels/CommandHistoryPanel.d.ts.map +1 -1
  103. package/dist/panels/CommandHistoryPanel.js +13 -35
  104. package/dist/panels/CommandHistoryPanel.js.map +1 -1
  105. package/dist/panels/ConsolePanel.d.ts +63 -73
  106. package/dist/panels/ConsolePanel.d.ts.map +1 -1
  107. package/dist/panels/ConsolePanel.js +67 -83
  108. package/dist/panels/ConsolePanel.js.map +1 -1
  109. package/dist/panels/DropdownFilterPanel.d.ts +110 -106
  110. package/dist/panels/DropdownFilterPanel.d.ts.map +1 -1
  111. package/dist/panels/DropdownFilterPanel.js +60 -62
  112. package/dist/panels/DropdownFilterPanel.js.map +1 -1
  113. package/dist/panels/FileExplorerPanel.d.ts +5 -7
  114. package/dist/panels/FileExplorerPanel.d.ts.map +1 -1
  115. package/dist/panels/FileExplorerPanel.js.map +1 -1
  116. package/dist/panels/FilterSetManager.d.ts +3 -1
  117. package/dist/panels/FilterSetManager.d.ts.map +1 -1
  118. package/dist/panels/FilterSetManager.js.map +1 -1
  119. package/dist/panels/FilterSetManagerPanel.d.ts +83 -62
  120. package/dist/panels/FilterSetManagerPanel.d.ts.map +1 -1
  121. package/dist/panels/FilterSetManagerPanel.js +58 -36
  122. package/dist/panels/FilterSetManagerPanel.js.map +1 -1
  123. package/dist/panels/InputFilterPanel.d.ts +50 -51
  124. package/dist/panels/InputFilterPanel.d.ts.map +1 -1
  125. package/dist/panels/InputFilterPanel.js +35 -34
  126. package/dist/panels/InputFilterPanel.js.map +1 -1
  127. package/dist/panels/IrisGridPanel.d.ts +191 -178
  128. package/dist/panels/IrisGridPanel.d.ts.map +1 -1
  129. package/dist/panels/IrisGridPanel.js +150 -179
  130. package/dist/panels/IrisGridPanel.js.map +1 -1
  131. package/dist/panels/LogPanel.d.ts +29 -45
  132. package/dist/panels/LogPanel.d.ts.map +1 -1
  133. package/dist/panels/LogPanel.js +9 -11
  134. package/dist/panels/LogPanel.js.map +1 -1
  135. package/dist/panels/MarkdownNotebook.d.ts +34 -34
  136. package/dist/panels/MarkdownNotebook.d.ts.map +1 -1
  137. package/dist/panels/MarkdownNotebook.js +21 -18
  138. package/dist/panels/MarkdownNotebook.js.map +1 -1
  139. package/dist/panels/MarkdownPanel.d.ts +41 -47
  140. package/dist/panels/MarkdownPanel.d.ts.map +1 -1
  141. package/dist/panels/MarkdownPanel.js +17 -19
  142. package/dist/panels/MarkdownPanel.js.map +1 -1
  143. package/dist/panels/NotebookPanel.d.ts +135 -115
  144. package/dist/panels/NotebookPanel.d.ts.map +1 -1
  145. package/dist/panels/NotebookPanel.js +93 -68
  146. package/dist/panels/NotebookPanel.js.map +1 -1
  147. package/dist/panels/PandasPanel.d.ts +20 -17
  148. package/dist/panels/PandasPanel.d.ts.map +1 -1
  149. package/dist/panels/PandasPanel.js +17 -13
  150. package/dist/panels/PandasPanel.js.map +1 -1
  151. package/dist/panels/Panel.d.ts +87 -123
  152. package/dist/panels/Panel.d.ts.map +1 -1
  153. package/dist/panels/Panel.js +29 -54
  154. package/dist/panels/Panel.js.map +1 -1
  155. package/dist/panels/PanelContextMenu.d.ts +16 -31
  156. package/dist/panels/PanelContextMenu.d.ts.map +1 -1
  157. package/dist/panels/PanelContextMenu.js +12 -15
  158. package/dist/panels/PanelContextMenu.js.map +1 -1
  159. package/dist/panels/RenameDialog.d.ts +26 -28
  160. package/dist/panels/RenameDialog.d.ts.map +1 -1
  161. package/dist/panels/RenameDialog.js +15 -19
  162. package/dist/panels/RenameDialog.js.map +1 -1
  163. package/dist/panels/WidgetPanel.d.ts +72 -106
  164. package/dist/panels/WidgetPanel.d.ts.map +1 -1
  165. package/dist/panels/WidgetPanel.js +17 -47
  166. package/dist/panels/WidgetPanel.js.map +1 -1
  167. package/dist/panels/WidgetPanelTooltip.d.ts +29 -22
  168. package/dist/panels/WidgetPanelTooltip.d.ts.map +1 -1
  169. package/dist/panels/WidgetPanelTooltip.js +1 -1
  170. package/dist/panels/WidgetPanelTooltip.js.map +1 -1
  171. package/dist/panels/index.d.ts +3 -0
  172. package/dist/panels/index.d.ts.map +1 -1
  173. package/dist/panels/index.js +3 -0
  174. package/dist/panels/index.js.map +1 -1
  175. package/dist/prop-types/CommonPropTypes.d.ts +4 -4
  176. package/dist/prop-types/CommonPropTypes.d.ts.map +1 -1
  177. package/dist/prop-types/CommonPropTypes.js +1 -1
  178. package/dist/prop-types/CommonPropTypes.js.map +1 -1
  179. package/dist/prop-types/UIPropTypes.d.ts +2 -7
  180. package/dist/prop-types/UIPropTypes.d.ts.map +1 -1
  181. package/dist/prop-types/UIPropTypes.js +0 -7
  182. package/dist/prop-types/UIPropTypes.js.map +1 -1
  183. package/dist/prop-types/index.d.ts +2 -2
  184. package/dist/prop-types/index.d.ts.map +1 -1
  185. package/dist/prop-types/index.js.map +1 -1
  186. package/dist/redux/actionTypes.d.ts +1 -1
  187. package/dist/redux/actionTypes.d.ts.map +1 -1
  188. package/dist/redux/actionTypes.js.map +1 -1
  189. package/dist/redux/actions.d.ts +63 -8
  190. package/dist/redux/actions.d.ts.map +1 -1
  191. package/dist/redux/actions.js +17 -17
  192. package/dist/redux/actions.js.map +1 -1
  193. package/dist/redux/reducers/index.d.ts +3 -4
  194. package/dist/redux/reducers/index.d.ts.map +1 -1
  195. package/dist/redux/reducers/index.js.map +1 -1
  196. package/dist/redux/reducers/sessionWrapper.d.ts +1 -1
  197. package/dist/redux/reducers/sessionWrapper.d.ts.map +1 -1
  198. package/dist/redux/reducers/sessionWrapper.js.map +1 -1
  199. package/dist/redux/selectors.d.ts +63 -9
  200. package/dist/redux/selectors.d.ts.map +1 -1
  201. package/dist/redux/selectors.js +27 -27
  202. package/dist/redux/selectors.js.map +1 -1
  203. package/package.json +20 -17
@@ -1 +1 @@
1
- {"version":3,"file":"ChartBuilderPlugin.d.ts","sourceRoot":"","sources":["../src/ChartBuilderPlugin.tsx"],"names":[],"mappings":";AAEA,OAAO,EAEL,6BAA6B,EAG9B,MAAM,sBAAsB,CAAC;AAM9B,oBAAY,uBAAuB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;AAE7E;;;GAGG;AACH,eAAO,MAAM,kBAAkB,UACtB,uBAAuB,KAC7B,WAmDF,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"ChartBuilderPlugin.d.ts","sourceRoot":"","sources":["../src/ChartBuilderPlugin.tsx"],"names":[],"mappings":";AAEA,OAAO,EAEL,6BAA6B,EAG9B,MAAM,sBAAsB,CAAC;AAM9B,oBAAY,uBAAuB,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;AAE7E;;;GAGG;AACH,eAAO,MAAM,kBAAkB,UACtB,uBAAuB,KAC7B,WAoDF,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -25,7 +25,8 @@ export var ChartBuilderPlugin = props => {
25
25
  settings
26
26
  } = metadata;
27
27
 
28
- var makeModel = () => ChartModelFactory.makeModelFromSettings(settings, table);
28
+ var makeModel = () => // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
+ ChartModelFactory.makeModelFromSettings(settings, table);
29
30
 
30
31
  var title = ChartUtils.titleFromSettings(settings);
31
32
  var config = {
@@ -1 +1 @@
1
- {"version":3,"file":"ChartBuilderPlugin.js","names":["React","useCallback","ChartModelFactory","ChartUtils","assertIsDashboardPluginProps","LayoutUtils","useListener","shortid","IrisGridEvent","ChartPanel","ChartBuilderPlugin","props","id","layout","handleCreateChart","metadata","panelId","generate","table","settings","makeModel","makeModelFromSettings","title","titleFromSettings","config","type","component","COMPONENT","localDashboardId","root","openComponent","eventHub","CREATE_CHART"],"sources":["../src/ChartBuilderPlugin.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { ChartModelFactory, ChartUtils } from '@deephaven/chart';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n LayoutUtils,\n useListener,\n} from '@deephaven/dashboard';\nimport { Table } from '@deephaven/jsapi-shim';\nimport shortid from 'shortid';\nimport { IrisGridEvent } from './events';\nimport { ChartPanel } from './panels';\n\nexport type ChartBuilderPluginProps = Partial<DashboardPluginComponentProps>;\n\n/**\n * Listens for IrisGridEvent.CREATE_CHART and creates a chart from the settings provided\n * Requires the GridPlugin and ChartPlugin plugins to be loaded as well\n */\nexport const ChartBuilderPlugin = (\n props: ChartBuilderPluginProps\n): JSX.Element => {\n assertIsDashboardPluginProps(props);\n const { id, layout } = props;\n const handleCreateChart = useCallback(\n ({\n metadata,\n panelId = shortid.generate(),\n table,\n }: {\n metadata: {\n settings: {\n type: string;\n series: string[];\n xAxis: string;\n isLinked: boolean;\n hiddenSeries?: string[];\n };\n sourcePanelId: string;\n table: string;\n tableSettings: Record<string, unknown>;\n };\n panelId?: string;\n table: Table;\n }) => {\n const { settings } = metadata;\n const makeModel = () =>\n ChartModelFactory.makeModelFromSettings(settings, table);\n const title = ChartUtils.titleFromSettings(settings);\n\n const config = {\n type: 'react-component',\n component: ChartPanel.COMPONENT,\n props: {\n localDashboardId: id,\n id: panelId,\n metadata,\n makeModel,\n },\n title,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config });\n },\n [id, layout]\n );\n\n useListener(layout.eventHub, IrisGridEvent.CREATE_CHART, handleCreateChart);\n\n return <></>;\n};\n\nexport default ChartBuilderPlugin;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,WAAhB,QAAmC,OAAnC;AACA,SAASC,iBAAT,EAA4BC,UAA5B,QAA8C,kBAA9C;AACA,SACEC,4BADF,EAGEC,WAHF,EAIEC,WAJF,QAKO,sBALP;AAOA,OAAOC,OAAP,MAAoB,SAApB;SACSC,a;SACAC,U;;AAIT;AACA;AACA;AACA;AACA,OAAO,IAAMC,kBAAkB,GAC7BC,KADgC,IAEhB;EAChBP,4BAA4B,CAACO,KAAD,CAA5B;EACA,IAAM;IAAEC,EAAF;IAAMC;EAAN,IAAiBF,KAAvB;EACA,IAAMG,iBAAiB,GAAGb,WAAW,CACnC,QAmBM;IAAA,IAnBL;MACCc,QADD;MAECC,OAAO,GAAGT,OAAO,CAACU,QAAR,EAFX;MAGCC;IAHD,CAmBK;IACJ,IAAM;MAAEC;IAAF,IAAeJ,QAArB;;IACA,IAAMK,SAAS,GAAG,MAChBlB,iBAAiB,CAACmB,qBAAlB,CAAwCF,QAAxC,EAAkDD,KAAlD,CADF;;IAEA,IAAMI,KAAK,GAAGnB,UAAU,CAACoB,iBAAX,CAA6BJ,QAA7B,CAAd;IAEA,IAAMK,MAAM,GAAG;MACbC,IAAI,EAAE,iBADO;MAEbC,SAAS,EAAEjB,UAAU,CAACkB,SAFT;MAGbhB,KAAK,EAAE;QACLiB,gBAAgB,EAAEhB,EADb;QAELA,EAAE,EAAEI,OAFC;QAGLD,QAHK;QAILK;MAJK,CAHM;MASbE,KATa;MAUbV,EAAE,EAAEI;IAVS,CAAf;IAaA,IAAM;MAAEa;IAAF,IAAWhB,MAAjB;IACAR,WAAW,CAACyB,aAAZ,CAA0B;MAAED,IAAF;MAAQL;IAAR,CAA1B;EACD,CAzCkC,EA0CnC,CAACZ,EAAD,EAAKC,MAAL,CA1CmC,CAArC;EA6CAP,WAAW,CAACO,MAAM,CAACkB,QAAR,EAAkBvB,aAAa,CAACwB,YAAhC,EAA8ClB,iBAA9C,CAAX;EAEA,oBAAO,yCAAP;AACD,CArDM;AAuDP,eAAeJ,kBAAf"}
1
+ {"version":3,"file":"ChartBuilderPlugin.js","names":["React","useCallback","ChartModelFactory","ChartUtils","assertIsDashboardPluginProps","LayoutUtils","useListener","shortid","IrisGridEvent","ChartPanel","ChartBuilderPlugin","props","id","layout","handleCreateChart","metadata","panelId","generate","table","settings","makeModel","makeModelFromSettings","title","titleFromSettings","config","type","component","COMPONENT","localDashboardId","root","openComponent","eventHub","CREATE_CHART"],"sources":["../src/ChartBuilderPlugin.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { ChartModelFactory, ChartUtils } from '@deephaven/chart';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n LayoutUtils,\n useListener,\n} from '@deephaven/dashboard';\nimport { SeriesPlotStyle, Table } from '@deephaven/jsapi-shim';\nimport shortid from 'shortid';\nimport { IrisGridEvent } from './events';\nimport { ChartPanel } from './panels';\n\nexport type ChartBuilderPluginProps = Partial<DashboardPluginComponentProps>;\n\n/**\n * Listens for IrisGridEvent.CREATE_CHART and creates a chart from the settings provided\n * Requires the GridPlugin and ChartPlugin plugins to be loaded as well\n */\nexport const ChartBuilderPlugin = (\n props: ChartBuilderPluginProps\n): JSX.Element => {\n assertIsDashboardPluginProps(props);\n const { id, layout } = props;\n const handleCreateChart = useCallback(\n ({\n metadata,\n panelId = shortid.generate(),\n table,\n }: {\n metadata: {\n settings: {\n type: keyof SeriesPlotStyle;\n series: string[];\n xAxis: string;\n isLinked: boolean;\n hiddenSeries?: string[];\n };\n sourcePanelId: string;\n table: string;\n tableSettings: Record<string, unknown>;\n };\n panelId?: string;\n table: Table;\n }) => {\n const { settings } = metadata;\n const makeModel = () =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ChartModelFactory.makeModelFromSettings(settings as any, table);\n const title = ChartUtils.titleFromSettings(settings);\n\n const config = {\n type: 'react-component',\n component: ChartPanel.COMPONENT,\n props: {\n localDashboardId: id,\n id: panelId,\n metadata,\n makeModel,\n },\n title,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config });\n },\n [id, layout]\n );\n\n useListener(layout.eventHub, IrisGridEvent.CREATE_CHART, handleCreateChart);\n\n return <></>;\n};\n\nexport default ChartBuilderPlugin;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,WAAhB,QAAmC,OAAnC;AACA,SAASC,iBAAT,EAA4BC,UAA5B,QAA8C,kBAA9C;AACA,SACEC,4BADF,EAGEC,WAHF,EAIEC,WAJF,QAKO,sBALP;AAOA,OAAOC,OAAP,MAAoB,SAApB;SACSC,a;SACAC,U;;AAIT;AACA;AACA;AACA;AACA,OAAO,IAAMC,kBAAkB,GAC7BC,KADgC,IAEhB;EAChBP,4BAA4B,CAACO,KAAD,CAA5B;EACA,IAAM;IAAEC,EAAF;IAAMC;EAAN,IAAiBF,KAAvB;EACA,IAAMG,iBAAiB,GAAGb,WAAW,CACnC,QAmBM;IAAA,IAnBL;MACCc,QADD;MAECC,OAAO,GAAGT,OAAO,CAACU,QAAR,EAFX;MAGCC;IAHD,CAmBK;IACJ,IAAM;MAAEC;IAAF,IAAeJ,QAArB;;IACA,IAAMK,SAAS,GAAG,MAChB;IACAlB,iBAAiB,CAACmB,qBAAlB,CAAwCF,QAAxC,EAAyDD,KAAzD,CAFF;;IAGA,IAAMI,KAAK,GAAGnB,UAAU,CAACoB,iBAAX,CAA6BJ,QAA7B,CAAd;IAEA,IAAMK,MAAM,GAAG;MACbC,IAAI,EAAE,iBADO;MAEbC,SAAS,EAAEjB,UAAU,CAACkB,SAFT;MAGbhB,KAAK,EAAE;QACLiB,gBAAgB,EAAEhB,EADb;QAELA,EAAE,EAAEI,OAFC;QAGLD,QAHK;QAILK;MAJK,CAHM;MASbE,KATa;MAUbV,EAAE,EAAEI;IAVS,CAAf;IAaA,IAAM;MAAEa;IAAF,IAAWhB,MAAjB;IACAR,WAAW,CAACyB,aAAZ,CAA0B;MAAED,IAAF;MAAQL;IAAR,CAA1B;EACD,CA1CkC,EA2CnC,CAACZ,EAAD,EAAKC,MAAL,CA3CmC,CAArC;EA8CAP,WAAW,CAACO,MAAM,CAACkB,QAAR,EAAkBvB,aAAa,CAACwB,YAAhC,EAA8ClB,iBAA9C,CAAX;EAEA,oBAAO,yCAAP;AACD,CAtDM;AAwDP,eAAeJ,kBAAf"}
@@ -1,7 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  import { DashboardPluginComponentProps, PanelHydrateFunction } from '@deephaven/dashboard';
3
+ import { ChartPanelProps } from './panels';
3
4
  export declare type ChartPluginProps = Partial<DashboardPluginComponentProps> & {
4
- hydrate: PanelHydrateFunction;
5
+ hydrate: PanelHydrateFunction<ChartPanelProps>;
5
6
  };
6
7
  export declare const ChartPlugin: (props: ChartPluginProps) => JSX.Element;
7
8
  export default ChartPlugin;
@@ -1 +1 @@
1
- {"version":3,"file":"ChartPlugin.d.ts","sourceRoot":"","sources":["../src/ChartPlugin.tsx"],"names":[],"mappings":";AAEA,OAAO,EAEL,6BAA6B,EAG7B,oBAAoB,EAErB,MAAM,sBAAsB,CAAC;AAK9B,oBAAY,gBAAgB,GAAG,OAAO,CAAC,6BAA6B,CAAC,GAAG;IACtE,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,WAAW,UAAW,gBAAgB,KAAG,WA2DrD,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"ChartPlugin.d.ts","sourceRoot":"","sources":["../src/ChartPlugin.tsx"],"names":[],"mappings":";AAEA,OAAO,EAEL,6BAA6B,EAG7B,oBAAoB,EAErB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAc,eAAe,EAAE,MAAM,UAAU,CAAC;AAEvD,oBAAY,gBAAgB,GAAG,OAAO,CAAC,6BAA6B,CAAC,GAAG;IACtE,OAAO,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC;CAChD,CAAC;AAEF,eAAO,MAAM,WAAW,UAAW,gBAAgB,KAAG,WA+DrD,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChartPlugin.js","names":["React","useCallback","useEffect","ChartModelFactory","assertIsDashboardPluginProps","LayoutUtils","PanelEvent","useListener","shortid","ChartPanel","ChartPlugin","props","id","layout","registerComponent","hydrate","handlePanelOpen","dragEvent","fetch","panelId","generate","widget","name","type","dh","VariableType","FIGURE","metadata","figure","makeModel","then","undefined","config","component","COMPONENT","localDashboardId","title","root","openComponent","registerComponentsAndReturnCleanup","cleanups","forEach","cleanup","eventHub","OPEN"],"sources":["../src/ChartPlugin.tsx"],"sourcesContent":["import React, { useCallback, useEffect, DragEvent } from 'react';\nimport { ChartModelFactory } from '@deephaven/chart';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n LayoutUtils,\n PanelEvent,\n PanelHydrateFunction,\n useListener,\n} from '@deephaven/dashboard';\nimport { Figure, VariableDefinition } from '@deephaven/jsapi-shim';\nimport shortid from 'shortid';\nimport { ChartPanel } from './panels';\n\nexport type ChartPluginProps = Partial<DashboardPluginComponentProps> & {\n hydrate: PanelHydrateFunction;\n};\n\nexport const ChartPlugin = (props: ChartPluginProps): JSX.Element => {\n assertIsDashboardPluginProps(props);\n const { id, layout, registerComponent, hydrate } = props;\n const handlePanelOpen = useCallback(\n ({\n dragEvent,\n fetch,\n panelId = shortid.generate(),\n widget,\n }: {\n dragEvent?: DragEvent;\n fetch: () => Promise<Figure>;\n panelId?: string;\n widget: VariableDefinition;\n }) => {\n const { name, type } = widget;\n if (type !== dh.VariableType.FIGURE) {\n return;\n }\n\n const metadata = { name, figure: name };\n const makeModel = () =>\n fetch().then((figure: Figure) =>\n ChartModelFactory.makeModel(undefined, figure)\n );\n const config = {\n type: 'react-component',\n component: ChartPanel.COMPONENT,\n props: {\n localDashboardId: id,\n id: panelId,\n metadata,\n makeModel,\n },\n title: name,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config, dragEvent });\n },\n [id, layout]\n );\n\n useEffect(\n function registerComponentsAndReturnCleanup() {\n const cleanups = [\n registerComponent(ChartPanel.COMPONENT, ChartPanel, hydrate),\n ];\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n },\n [hydrate, registerComponent]\n );\n\n useListener(layout.eventHub, PanelEvent.OPEN, handlePanelOpen);\n\n return <></>;\n};\n\nexport default ChartPlugin;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,WAAhB,EAA6BC,SAA7B,QAAyD,OAAzD;AACA,SAASC,iBAAT,QAAkC,kBAAlC;AACA,SACEC,4BADF,EAGEC,WAHF,EAIEC,UAJF,EAMEC,WANF,QAOO,sBAPP;AASA,OAAOC,OAAP,MAAoB,SAApB;SACSC,U;AAMT,OAAO,IAAMC,WAAW,GAAIC,KAAD,IAA0C;EACnEP,4BAA4B,CAACO,KAAD,CAA5B;EACA,IAAM;IAAEC,EAAF;IAAMC,MAAN;IAAcC,iBAAd;IAAiCC;EAAjC,IAA6CJ,KAAnD;EACA,IAAMK,eAAe,GAAGf,WAAW,CACjC,QAUM;IAAA,IAVL;MACCgB,SADD;MAECC,KAFD;MAGCC,OAAO,GAAGX,OAAO,CAACY,QAAR,EAHX;MAICC;IAJD,CAUK;IACJ,IAAM;MAAEC,IAAF;MAAQC;IAAR,IAAiBF,MAAvB;;IACA,IAAIE,IAAI,KAAKC,EAAE,CAACC,YAAH,CAAgBC,MAA7B,EAAqC;MACnC;IACD;;IAED,IAAMC,QAAQ,GAAG;MAAEL,IAAF;MAAQM,MAAM,EAAEN;IAAhB,CAAjB;;IACA,IAAMO,SAAS,GAAG,MAChBX,KAAK,GAAGY,IAAR,CAAcF,MAAD,IACXzB,iBAAiB,CAAC0B,SAAlB,CAA4BE,SAA5B,EAAuCH,MAAvC,CADF,CADF;;IAIA,IAAMI,MAAM,GAAG;MACbT,IAAI,EAAE,iBADO;MAEbU,SAAS,EAAExB,UAAU,CAACyB,SAFT;MAGbvB,KAAK,EAAE;QACLwB,gBAAgB,EAAEvB,EADb;QAELA,EAAE,EAAEO,OAFC;QAGLQ,QAHK;QAILE;MAJK,CAHM;MASbO,KAAK,EAAEd,IATM;MAUbV,EAAE,EAAEO;IAVS,CAAf;IAaA,IAAM;MAAEkB;IAAF,IAAWxB,MAAjB;IACAR,WAAW,CAACiC,aAAZ,CAA0B;MAAED,IAAF;MAAQL,MAAR;MAAgBf;IAAhB,CAA1B;EACD,CArCgC,EAsCjC,CAACL,EAAD,EAAKC,MAAL,CAtCiC,CAAnC;EAyCAX,SAAS,CACP,SAASqC,kCAAT,GAA8C;IAC5C,IAAMC,QAAQ,GAAG,CACf1B,iBAAiB,CAACL,UAAU,CAACyB,SAAZ,EAAuBzB,UAAvB,EAAmCM,OAAnC,CADF,CAAjB;IAGA,OAAO,MAAM;MACXyB,QAAQ,CAACC,OAAT,CAAiBC,OAAO,IAAIA,OAAO,EAAnC;IACD,CAFD;EAGD,CARM,EASP,CAAC3B,OAAD,EAAUD,iBAAV,CATO,CAAT;EAYAP,WAAW,CAACM,MAAM,CAAC8B,QAAR,EAAkBrC,UAAU,CAACsC,IAA7B,EAAmC5B,eAAnC,CAAX;EAEA,oBAAO,yCAAP;AACD,CA3DM;AA6DP,eAAeN,WAAf"}
1
+ {"version":3,"file":"ChartPlugin.js","names":["React","useCallback","useEffect","ChartModelFactory","assertIsDashboardPluginProps","LayoutUtils","PanelEvent","useListener","shortid","ChartPanel","ChartPlugin","props","id","layout","registerComponent","hydrate","handlePanelOpen","dragEvent","fetch","panelId","generate","widget","name","type","dh","VariableType","FIGURE","metadata","figure","makeModel","then","undefined","config","component","COMPONENT","localDashboardId","title","root","openComponent","registerComponentsAndReturnCleanup","cleanups","forEach","cleanup","eventHub","OPEN"],"sources":["../src/ChartPlugin.tsx"],"sourcesContent":["import React, { useCallback, useEffect, DragEvent } from 'react';\nimport { ChartModelFactory } from '@deephaven/chart';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n LayoutUtils,\n PanelEvent,\n PanelHydrateFunction,\n useListener,\n} from '@deephaven/dashboard';\nimport { Figure, VariableDefinition } from '@deephaven/jsapi-shim';\nimport shortid from 'shortid';\nimport { ChartPanel, ChartPanelProps } from './panels';\n\nexport type ChartPluginProps = Partial<DashboardPluginComponentProps> & {\n hydrate: PanelHydrateFunction<ChartPanelProps>;\n};\n\nexport const ChartPlugin = (props: ChartPluginProps): JSX.Element => {\n assertIsDashboardPluginProps(props);\n const { id, layout, registerComponent, hydrate } = props;\n const handlePanelOpen = useCallback(\n ({\n dragEvent,\n fetch,\n panelId = shortid.generate(),\n widget,\n }: {\n dragEvent?: DragEvent;\n fetch: () => Promise<Figure>;\n panelId?: string;\n widget: VariableDefinition;\n }) => {\n const { name, type } = widget;\n if (type !== dh.VariableType.FIGURE) {\n return;\n }\n\n const metadata = { name, figure: name };\n const makeModel = () =>\n fetch().then((figure: Figure) =>\n ChartModelFactory.makeModel(undefined, figure)\n );\n const config = {\n type: 'react-component',\n component: ChartPanel.COMPONENT,\n props: {\n localDashboardId: id,\n id: panelId,\n metadata,\n makeModel,\n },\n title: name,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config, dragEvent });\n },\n [id, layout]\n );\n\n useEffect(\n function registerComponentsAndReturnCleanup() {\n const cleanups = [\n registerComponent(\n ChartPanel.COMPONENT,\n ChartPanel,\n hydrate as PanelHydrateFunction\n ),\n ];\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n },\n [hydrate, registerComponent]\n );\n\n useListener(layout.eventHub, PanelEvent.OPEN, handlePanelOpen);\n\n return <></>;\n};\n\nexport default ChartPlugin;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,WAAhB,EAA6BC,SAA7B,QAAyD,OAAzD;AACA,SAASC,iBAAT,QAAkC,kBAAlC;AACA,SACEC,4BADF,EAGEC,WAHF,EAIEC,UAJF,EAMEC,WANF,QAOO,sBAPP;AASA,OAAOC,OAAP,MAAoB,SAApB;SACSC,U;AAMT,OAAO,IAAMC,WAAW,GAAIC,KAAD,IAA0C;EACnEP,4BAA4B,CAACO,KAAD,CAA5B;EACA,IAAM;IAAEC,EAAF;IAAMC,MAAN;IAAcC,iBAAd;IAAiCC;EAAjC,IAA6CJ,KAAnD;EACA,IAAMK,eAAe,GAAGf,WAAW,CACjC,QAUM;IAAA,IAVL;MACCgB,SADD;MAECC,KAFD;MAGCC,OAAO,GAAGX,OAAO,CAACY,QAAR,EAHX;MAICC;IAJD,CAUK;IACJ,IAAM;MAAEC,IAAF;MAAQC;IAAR,IAAiBF,MAAvB;;IACA,IAAIE,IAAI,KAAKC,EAAE,CAACC,YAAH,CAAgBC,MAA7B,EAAqC;MACnC;IACD;;IAED,IAAMC,QAAQ,GAAG;MAAEL,IAAF;MAAQM,MAAM,EAAEN;IAAhB,CAAjB;;IACA,IAAMO,SAAS,GAAG,MAChBX,KAAK,GAAGY,IAAR,CAAcF,MAAD,IACXzB,iBAAiB,CAAC0B,SAAlB,CAA4BE,SAA5B,EAAuCH,MAAvC,CADF,CADF;;IAIA,IAAMI,MAAM,GAAG;MACbT,IAAI,EAAE,iBADO;MAEbU,SAAS,EAAExB,UAAU,CAACyB,SAFT;MAGbvB,KAAK,EAAE;QACLwB,gBAAgB,EAAEvB,EADb;QAELA,EAAE,EAAEO,OAFC;QAGLQ,QAHK;QAILE;MAJK,CAHM;MASbO,KAAK,EAAEd,IATM;MAUbV,EAAE,EAAEO;IAVS,CAAf;IAaA,IAAM;MAAEkB;IAAF,IAAWxB,MAAjB;IACAR,WAAW,CAACiC,aAAZ,CAA0B;MAAED,IAAF;MAAQL,MAAR;MAAgBf;IAAhB,CAA1B;EACD,CArCgC,EAsCjC,CAACL,EAAD,EAAKC,MAAL,CAtCiC,CAAnC;EAyCAX,SAAS,CACP,SAASqC,kCAAT,GAA8C;IAC5C,IAAMC,QAAQ,GAAG,CACf1B,iBAAiB,CACfL,UAAU,CAACyB,SADI,EAEfzB,UAFe,EAGfM,OAHe,CADF,CAAjB;IAOA,OAAO,MAAM;MACXyB,QAAQ,CAACC,OAAT,CAAiBC,OAAO,IAAIA,OAAO,EAAnC;IACD,CAFD;EAGD,CAZM,EAaP,CAAC3B,OAAD,EAAUD,iBAAV,CAbO,CAAT;EAgBAP,WAAW,CAACM,MAAM,CAAC8B,QAAR,EAAkBrC,UAAU,CAACsC,IAA7B,EAAmC5B,eAAnC,CAAX;EAEA,oBAAO,yCAAP;AACD,CA/DM;AAiEP,eAAeN,WAAf"}
@@ -63,7 +63,7 @@ export var FilterPlugin = props => {
63
63
  /**
64
64
  * Handler for the COLUMNS_CHANGED event.
65
65
  * @param panel The component that's emitting the filter change
66
- * @param {Column|Array<Column>} columns The columns in this panel
66
+ * @param columns The columns in this panel
67
67
  */
68
68
 
69
69
  var handleColumnsChanged = useCallback((panel, columns) => {
@@ -1 +1 @@
1
- {"version":3,"file":"FilterPlugin.js","names":["React","useCallback","useEffect","useState","useDispatch","shortid","assertIsDashboardPluginProps","LayoutUtils","PanelEvent","updateDashboardData","useListener","Log","TextUtils","InputFilterEvent","DropdownFilterPanel","FilterSetManagerPanel","InputFilterPanel","log","module","flattenArray","accumulator","currentValue","concat","FilterPlugin","props","id","localDashboardId","layout","registerComponent","dispatch","panelColumns","Map","panelFilters","panelTables","sendUpdate","columns","Array","from","values","reduce","sort","a","b","aName","toLower","name","bName","aType","type","bType","array","column","length","push","filters","timestamp","tableMap","debug","handleColumnsChanged","panel","debug2","set","handleFiltersChanged","handleTableChanged","table","getIdFromPanel","handlePanelUnmount","delete","handleOpenDropdown","title","metadata","panelState","generate","focusElement","DEFAULT_FOCUS_SELECTOR","createNewStack","dragEvent","config","component","COMPONENT","root","openComponent","handleOpenInput","handleOpenFilterSetManager","registerComponentsAndReturnCleanup","cleanups","forEach","cleanup","eventHub","COLUMNS_CHANGED","FILTERS_CHANGED","TABLE_CHANGED","OPEN_DROPDOWN","OPEN_INPUT","OPEN_FILTER_SET_MANAGER","UNMOUNT"],"sources":["../src/FilterPlugin.tsx"],"sourcesContent":["import React, { Component, useCallback, useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport shortid from 'shortid';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n LayoutUtils,\n PanelEvent,\n updateDashboardData,\n useListener,\n} from '@deephaven/dashboard';\nimport Log from '@deephaven/log';\nimport { TextUtils } from '@deephaven/utils';\nimport { InputFilterEvent } from './events';\nimport {\n DropdownFilterPanel,\n FilterSetManagerPanel,\n InputFilterPanel,\n} from './panels';\n\nconst log = Log.module('FilterPlugin');\n\ntype Column = {\n name: string;\n type: string;\n};\n\nexport type FilterChangeEvent = Column & {\n value: string;\n timestamp: number;\n excludePanelIds?: string[];\n};\n\nexport type FilterPluginProps = Partial<DashboardPluginComponentProps>;\n\nfunction flattenArray<T>(accumulator: T[], currentValue: T | T[]): T[] {\n return accumulator.concat(currentValue);\n}\n\nexport const FilterPlugin = (props: FilterPluginProps): JSX.Element => {\n assertIsDashboardPluginProps(props);\n const { id: localDashboardId, layout, registerComponent } = props;\n const dispatch = useDispatch();\n const [panelColumns] = useState(() => new Map<Component, Column[]>());\n const [panelFilters] = useState(\n () => new Map<Component, FilterChangeEvent[]>()\n );\n const [panelTables] = useState(() => new Map());\n\n const sendUpdate = useCallback(() => {\n const columns = Array.from(panelColumns.values())\n .reduce(flattenArray, [] as Column[])\n .sort((a, b) => {\n const aName = TextUtils.toLower(a.name);\n const bName = TextUtils.toLower(b.name);\n if (aName !== bName) {\n return aName > bName ? 1 : -1;\n }\n\n const aType = TextUtils.toLower(a.type);\n const bType = TextUtils.toLower(b.type);\n if (aType !== bType) {\n return aType > bType ? 1 : -1;\n }\n\n return 0;\n })\n .reduce((array, column) => {\n if (\n array.length === 0 ||\n TextUtils.toLower(array[array.length - 1].name) !==\n TextUtils.toLower(column.name) ||\n TextUtils.toLower(array[array.length - 1].type) !==\n TextUtils.toLower(column.type)\n ) {\n array.push(column);\n }\n\n return array;\n }, [] as Column[]);\n\n const filters = Array.from(panelFilters.values())\n .reduce(flattenArray, [] as FilterChangeEvent[])\n .sort((a, b) => a.timestamp - b.timestamp);\n const tableMap = new Map(panelTables);\n\n log.debug('sendUpdate', { columns, filters, tableMap });\n dispatch(\n updateDashboardData(localDashboardId, { columns, filters, tableMap })\n );\n }, [dispatch, localDashboardId, panelColumns, panelFilters, panelTables]);\n\n /**\n * Handler for the COLUMNS_CHANGED event.\n * @param panel The component that's emitting the filter change\n * @param {Column|Array<Column>} columns The columns in this panel\n */\n const handleColumnsChanged = useCallback(\n (panel: Component, columns) => {\n log.debug2('handleColumnsChanged', panel, columns);\n panelColumns.set(panel, [].concat(columns) as Column[]);\n sendUpdate();\n },\n [panelColumns, sendUpdate]\n );\n\n /**\n * Handler for the FILTERS_CHANGED event.\n * @param {Component} panel The component that's emitting the filter change\n * @param {FilterChangeEvent|Array<FilterChangeEvent>} filters The input filters set by the panel\n */\n const handleFiltersChanged = useCallback(\n (panel, filters) => {\n log.debug2('handleFiltersChanged', panel, filters);\n panelFilters.set(panel, [].concat(filters) as FilterChangeEvent[]);\n sendUpdate();\n },\n [panelFilters, sendUpdate]\n );\n\n const handleTableChanged = useCallback(\n (panel, table) => {\n log.debug2('handleTableChanged', panel, table);\n panelTables.set(LayoutUtils.getIdFromPanel(panel), table);\n sendUpdate();\n },\n [panelTables, sendUpdate]\n );\n\n const handlePanelUnmount = useCallback(\n panel => {\n log.debug2('handlePanelUnmount', panel);\n panelColumns.delete(panel);\n panelFilters.delete(panel);\n panelTables.delete(LayoutUtils.getIdFromPanel(panel));\n sendUpdate();\n },\n [panelColumns, panelFilters, panelTables, sendUpdate]\n );\n\n const handleOpenDropdown = useCallback(\n ({\n title = 'DropdownFilter',\n metadata = {},\n panelState = null,\n id = shortid.generate(),\n focusElement = LayoutUtils.DEFAULT_FOCUS_SELECTOR,\n createNewStack = false,\n dragEvent = null,\n }) => {\n const config = {\n type: 'react-component',\n component: DropdownFilterPanel.COMPONENT,\n props: { id, metadata, panelState, localDashboardId },\n title,\n id,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({\n root,\n config,\n focusElement,\n createNewStack,\n dragEvent,\n });\n },\n [layout, localDashboardId]\n );\n\n const handleOpenInput = useCallback(\n ({\n title = 'InputFilter',\n metadata = {},\n panelState = null,\n id = shortid.generate(),\n focusElement = LayoutUtils.DEFAULT_FOCUS_SELECTOR,\n createNewStack = false,\n dragEvent = null,\n }) => {\n const config = {\n type: 'react-component',\n component: InputFilterPanel.COMPONENT,\n props: { id, metadata, panelState, localDashboardId },\n title,\n id,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({\n root,\n config,\n focusElement,\n createNewStack,\n dragEvent,\n });\n },\n [layout, localDashboardId]\n );\n\n const handleOpenFilterSetManager = useCallback(\n ({\n title = 'FilterSets',\n metadata = {},\n panelState = null,\n id = shortid.generate(),\n focusElement = LayoutUtils.DEFAULT_FOCUS_SELECTOR,\n createNewStack = false,\n dragEvent = null,\n }) => {\n const config = {\n type: 'react-component',\n component: FilterSetManagerPanel.COMPONENT,\n props: { id, metadata, panelState, localDashboardId },\n title,\n id,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({\n root,\n config,\n focusElement,\n createNewStack,\n dragEvent,\n });\n },\n [layout, localDashboardId]\n );\n\n useEffect(\n function registerComponentsAndReturnCleanup() {\n const cleanups = [\n registerComponent(DropdownFilterPanel.COMPONENT, DropdownFilterPanel),\n registerComponent(InputFilterPanel.COMPONENT, InputFilterPanel),\n registerComponent(\n FilterSetManagerPanel.COMPONENT,\n FilterSetManagerPanel\n ),\n ];\n\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n },\n [registerComponent]\n );\n\n useListener(\n layout.eventHub,\n InputFilterEvent.COLUMNS_CHANGED,\n handleColumnsChanged\n );\n useListener(\n layout.eventHub,\n InputFilterEvent.FILTERS_CHANGED,\n handleFiltersChanged\n );\n useListener(\n layout.eventHub,\n InputFilterEvent.TABLE_CHANGED,\n handleTableChanged\n );\n useListener(\n layout.eventHub,\n InputFilterEvent.OPEN_DROPDOWN,\n handleOpenDropdown\n );\n useListener(layout.eventHub, InputFilterEvent.OPEN_INPUT, handleOpenInput);\n useListener(\n layout.eventHub,\n InputFilterEvent.OPEN_FILTER_SET_MANAGER,\n handleOpenFilterSetManager\n );\n useListener(layout.eventHub, PanelEvent.UNMOUNT, handlePanelUnmount);\n\n return <></>;\n};\n\nexport default FilterPlugin;\n"],"mappings":"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"}
1
+ {"version":3,"file":"FilterPlugin.js","names":["React","useCallback","useEffect","useState","useDispatch","shortid","assertIsDashboardPluginProps","LayoutUtils","PanelEvent","updateDashboardData","useListener","Log","TextUtils","InputFilterEvent","DropdownFilterPanel","FilterSetManagerPanel","InputFilterPanel","log","module","flattenArray","accumulator","currentValue","concat","FilterPlugin","props","id","localDashboardId","layout","registerComponent","dispatch","panelColumns","Map","panelFilters","panelTables","sendUpdate","columns","Array","from","values","reduce","sort","a","b","aName","toLower","name","bName","aType","type","bType","array","column","length","push","filters","timestamp","tableMap","debug","handleColumnsChanged","panel","debug2","set","handleFiltersChanged","handleTableChanged","table","getIdFromPanel","handlePanelUnmount","delete","handleOpenDropdown","title","metadata","panelState","generate","focusElement","DEFAULT_FOCUS_SELECTOR","createNewStack","dragEvent","config","component","COMPONENT","root","openComponent","handleOpenInput","handleOpenFilterSetManager","registerComponentsAndReturnCleanup","cleanups","forEach","cleanup","eventHub","COLUMNS_CHANGED","FILTERS_CHANGED","TABLE_CHANGED","OPEN_DROPDOWN","OPEN_INPUT","OPEN_FILTER_SET_MANAGER","UNMOUNT"],"sources":["../src/FilterPlugin.tsx"],"sourcesContent":["import React, { Component, useCallback, useEffect, useState } from 'react';\nimport { useDispatch } from 'react-redux';\nimport shortid from 'shortid';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n LayoutUtils,\n PanelEvent,\n updateDashboardData,\n useListener,\n} from '@deephaven/dashboard';\nimport Log from '@deephaven/log';\nimport { TextUtils } from '@deephaven/utils';\nimport { InputFilterEvent } from './events';\nimport {\n DropdownFilterPanel,\n FilterSetManagerPanel,\n InputFilterPanel,\n} from './panels';\n\nconst log = Log.module('FilterPlugin');\n\ntype Column = {\n name: string;\n type: string;\n};\n\nexport type FilterChangeEvent = Column & {\n value: string;\n timestamp: number;\n excludePanelIds?: string[];\n};\n\nexport type FilterPluginProps = Partial<DashboardPluginComponentProps>;\n\nfunction flattenArray<T>(accumulator: T[], currentValue: T | T[]): T[] {\n return accumulator.concat(currentValue);\n}\n\nexport const FilterPlugin = (props: FilterPluginProps): JSX.Element => {\n assertIsDashboardPluginProps(props);\n const { id: localDashboardId, layout, registerComponent } = props;\n const dispatch = useDispatch();\n const [panelColumns] = useState(() => new Map<Component, Column[]>());\n const [panelFilters] = useState(\n () => new Map<Component, FilterChangeEvent[]>()\n );\n const [panelTables] = useState(() => new Map());\n\n const sendUpdate = useCallback(() => {\n const columns = Array.from(panelColumns.values())\n .reduce(flattenArray, [] as Column[])\n .sort((a, b) => {\n const aName = TextUtils.toLower(a.name);\n const bName = TextUtils.toLower(b.name);\n if (aName !== bName) {\n return aName > bName ? 1 : -1;\n }\n\n const aType = TextUtils.toLower(a.type);\n const bType = TextUtils.toLower(b.type);\n if (aType !== bType) {\n return aType > bType ? 1 : -1;\n }\n\n return 0;\n })\n .reduce((array, column) => {\n if (\n array.length === 0 ||\n TextUtils.toLower(array[array.length - 1].name) !==\n TextUtils.toLower(column.name) ||\n TextUtils.toLower(array[array.length - 1].type) !==\n TextUtils.toLower(column.type)\n ) {\n array.push(column);\n }\n\n return array;\n }, [] as Column[]);\n\n const filters = Array.from(panelFilters.values())\n .reduce(flattenArray, [] as FilterChangeEvent[])\n .sort((a, b) => a.timestamp - b.timestamp);\n const tableMap = new Map(panelTables);\n\n log.debug('sendUpdate', { columns, filters, tableMap });\n dispatch(\n updateDashboardData(localDashboardId, { columns, filters, tableMap })\n );\n }, [dispatch, localDashboardId, panelColumns, panelFilters, panelTables]);\n\n /**\n * Handler for the COLUMNS_CHANGED event.\n * @param panel The component that's emitting the filter change\n * @param columns The columns in this panel\n */\n const handleColumnsChanged = useCallback(\n (panel: Component, columns: Column | Column[]) => {\n log.debug2('handleColumnsChanged', panel, columns);\n panelColumns.set(panel, ([] as Column[]).concat(columns));\n sendUpdate();\n },\n [panelColumns, sendUpdate]\n );\n\n /**\n * Handler for the FILTERS_CHANGED event.\n * @param {Component} panel The component that's emitting the filter change\n * @param {FilterChangeEvent|Array<FilterChangeEvent>} filters The input filters set by the panel\n */\n const handleFiltersChanged = useCallback(\n (panel, filters) => {\n log.debug2('handleFiltersChanged', panel, filters);\n panelFilters.set(panel, [].concat(filters) as FilterChangeEvent[]);\n sendUpdate();\n },\n [panelFilters, sendUpdate]\n );\n\n const handleTableChanged = useCallback(\n (panel, table) => {\n log.debug2('handleTableChanged', panel, table);\n panelTables.set(LayoutUtils.getIdFromPanel(panel), table);\n sendUpdate();\n },\n [panelTables, sendUpdate]\n );\n\n const handlePanelUnmount = useCallback(\n panel => {\n log.debug2('handlePanelUnmount', panel);\n panelColumns.delete(panel);\n panelFilters.delete(panel);\n panelTables.delete(LayoutUtils.getIdFromPanel(panel));\n sendUpdate();\n },\n [panelColumns, panelFilters, panelTables, sendUpdate]\n );\n\n const handleOpenDropdown = useCallback(\n ({\n title = 'DropdownFilter',\n metadata = {},\n panelState = null,\n id = shortid.generate(),\n focusElement = LayoutUtils.DEFAULT_FOCUS_SELECTOR,\n createNewStack = false,\n dragEvent = null,\n }) => {\n const config = {\n type: 'react-component',\n component: DropdownFilterPanel.COMPONENT,\n props: { id, metadata, panelState, localDashboardId },\n title,\n id,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({\n root,\n config,\n focusElement,\n createNewStack,\n dragEvent,\n });\n },\n [layout, localDashboardId]\n );\n\n const handleOpenInput = useCallback(\n ({\n title = 'InputFilter',\n metadata = {},\n panelState = null,\n id = shortid.generate(),\n focusElement = LayoutUtils.DEFAULT_FOCUS_SELECTOR,\n createNewStack = false,\n dragEvent = null,\n }) => {\n const config = {\n type: 'react-component',\n component: InputFilterPanel.COMPONENT,\n props: { id, metadata, panelState, localDashboardId },\n title,\n id,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({\n root,\n config,\n focusElement,\n createNewStack,\n dragEvent,\n });\n },\n [layout, localDashboardId]\n );\n\n const handleOpenFilterSetManager = useCallback(\n ({\n title = 'FilterSets',\n metadata = {},\n panelState = null,\n id = shortid.generate(),\n focusElement = LayoutUtils.DEFAULT_FOCUS_SELECTOR,\n createNewStack = false,\n dragEvent = null,\n }) => {\n const config = {\n type: 'react-component',\n component: FilterSetManagerPanel.COMPONENT,\n props: { id, metadata, panelState, localDashboardId },\n title,\n id,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({\n root,\n config,\n focusElement,\n createNewStack,\n dragEvent,\n });\n },\n [layout, localDashboardId]\n );\n\n useEffect(\n function registerComponentsAndReturnCleanup() {\n const cleanups = [\n registerComponent(DropdownFilterPanel.COMPONENT, DropdownFilterPanel),\n registerComponent(InputFilterPanel.COMPONENT, InputFilterPanel),\n registerComponent(\n FilterSetManagerPanel.COMPONENT,\n FilterSetManagerPanel\n ),\n ];\n\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n },\n [registerComponent]\n );\n\n useListener(\n layout.eventHub,\n InputFilterEvent.COLUMNS_CHANGED,\n handleColumnsChanged\n );\n useListener(\n layout.eventHub,\n InputFilterEvent.FILTERS_CHANGED,\n handleFiltersChanged\n );\n useListener(\n layout.eventHub,\n InputFilterEvent.TABLE_CHANGED,\n handleTableChanged\n );\n useListener(\n layout.eventHub,\n InputFilterEvent.OPEN_DROPDOWN,\n handleOpenDropdown\n );\n useListener(layout.eventHub, InputFilterEvent.OPEN_INPUT, handleOpenInput);\n useListener(\n layout.eventHub,\n InputFilterEvent.OPEN_FILTER_SET_MANAGER,\n handleOpenFilterSetManager\n );\n useListener(layout.eventHub, PanelEvent.UNMOUNT, handlePanelUnmount);\n\n return <></>;\n};\n\nexport default FilterPlugin;\n"],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  import React from 'react';
2
2
  import { DashboardPluginComponentProps, PanelHydrateFunction } from '@deephaven/dashboard';
3
3
  import { IrisGridThemeType } from '@deephaven/iris-grid';
4
+ import { IrisGridPanelProps } from './panels';
4
5
  export declare const SUPPORTED_TYPES: string[];
5
6
  export declare type GridPluginProps = Partial<DashboardPluginComponentProps> & {
6
7
  getDownloadWorker?: () => Promise<ServiceWorker>;
7
8
  loadPlugin?: (name: string) => ReturnType<typeof React.forwardRef>;
8
- hydrate: PanelHydrateFunction;
9
+ hydrate: PanelHydrateFunction<IrisGridPanelProps>;
9
10
  theme?: Partial<IrisGridThemeType>;
10
11
  };
11
12
  export declare const GridPlugin: (props: GridPluginProps) => JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"GridPlugin.d.ts","sourceRoot":"","sources":["../src/GridPlugin.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AACjE,OAAO,EAEL,6BAA6B,EAG7B,oBAAoB,EAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAwB,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAK/E,eAAO,MAAM,eAAe,EAAE,MAAM,EAGnC,CAAC;AAEF,oBAAY,eAAe,GAAG,OAAO,CAAC,6BAA6B,CAAC,GAAG;IACrE,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IACjD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC;IACnE,OAAO,EAAE,oBAAoB,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,UAAU,UAAW,eAAe,KAAG,WAoEnD,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"GridPlugin.d.ts","sourceRoot":"","sources":["../src/GridPlugin.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4C,MAAM,OAAO,CAAC;AACjE,OAAO,EAEL,6BAA6B,EAG7B,oBAAoB,EAErB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAwB,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG/E,OAAO,EAAiB,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE7D,eAAO,MAAM,eAAe,EAAE,MAAM,EAGnC,CAAC;AAEF,oBAAY,eAAe,GAAG,OAAO,CAAC,6BAA6B,CAAC,GAAG;IACrE,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IACjD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC;IACnE,OAAO,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IAClD,KAAK,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,UAAU,UAAW,eAAe,KAAG,WAwEnD,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"GridPlugin.js","names":["React","useCallback","useEffect","assertIsDashboardPluginProps","LayoutUtils","PanelEvent","useListener","IrisGridModelFactory","shortid","IrisGridPanel","SUPPORTED_TYPES","dh","VariableType","TABLE","TREETABLE","GridPlugin","props","getDownloadWorker","loadPlugin","id","layout","registerComponent","hydrate","theme","handlePanelOpen","dragEvent","fetch","panelId","generate","widget","name","type","includes","metadata","table","makeModel","then","config","component","COMPONENT","localDashboardId","title","root","openComponent","registerComponentsAndReturnCleanup","cleanups","forEach","cleanup","eventHub","OPEN"],"sources":["../src/GridPlugin.tsx"],"sourcesContent":["import React, { DragEvent, useCallback, useEffect } from 'react';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n LayoutUtils,\n PanelEvent,\n PanelHydrateFunction,\n useListener,\n} from '@deephaven/dashboard';\nimport { IrisGridModelFactory, IrisGridThemeType } from '@deephaven/iris-grid';\nimport { Table, VariableDefinition } from '@deephaven/jsapi-shim';\nimport shortid from 'shortid';\nimport { IrisGridPanel } from './panels';\n\nexport const SUPPORTED_TYPES: string[] = [\n dh.VariableType.TABLE,\n dh.VariableType.TREETABLE,\n];\n\nexport type GridPluginProps = Partial<DashboardPluginComponentProps> & {\n getDownloadWorker?: () => Promise<ServiceWorker>;\n loadPlugin?: (name: string) => ReturnType<typeof React.forwardRef>;\n hydrate: PanelHydrateFunction;\n theme?: Partial<IrisGridThemeType>;\n};\n\nexport const GridPlugin = (props: GridPluginProps): JSX.Element => {\n assertIsDashboardPluginProps(props);\n const {\n getDownloadWorker,\n loadPlugin,\n id,\n layout,\n registerComponent,\n hydrate,\n theme,\n } = props;\n const handlePanelOpen = useCallback(\n ({\n dragEvent,\n fetch,\n panelId = shortid.generate(),\n widget,\n }: {\n dragEvent?: DragEvent;\n fetch: () => Promise<Table>;\n panelId?: string;\n widget: VariableDefinition;\n }) => {\n const { name, type } = widget;\n if (!SUPPORTED_TYPES.includes(type)) {\n return;\n }\n\n const metadata = { name, table: name };\n const makeModel = () =>\n fetch().then((table: Table) => IrisGridModelFactory.makeModel(table));\n const config = {\n type: 'react-component',\n component: IrisGridPanel.COMPONENT,\n props: {\n getDownloadWorker,\n loadPlugin,\n localDashboardId: id,\n id: panelId,\n metadata,\n makeModel,\n theme,\n },\n title: name,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config, dragEvent });\n },\n [getDownloadWorker, id, layout, loadPlugin, theme]\n );\n\n useEffect(\n function registerComponentsAndReturnCleanup() {\n const cleanups = [\n registerComponent(IrisGridPanel.COMPONENT, IrisGridPanel, hydrate),\n ];\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n },\n [hydrate, registerComponent]\n );\n\n useListener(layout.eventHub, PanelEvent.OPEN, handlePanelOpen);\n\n return <></>;\n};\n\nexport default GridPlugin;\n"],"mappings":"AAAA,OAAOA,KAAP,IAA2BC,WAA3B,EAAwCC,SAAxC,QAAyD,OAAzD;AACA,SACEC,4BADF,EAGEC,WAHF,EAIEC,UAJF,EAMEC,WANF,QAOO,sBAPP;AAQA,SAASC,oBAAT,QAAwD,sBAAxD;AAEA,OAAOC,OAAP,MAAoB,SAApB;SACSC,a;AAET,OAAO,IAAMC,eAAyB,GAAG,CACvCC,EAAE,CAACC,YAAH,CAAgBC,KADuB,EAEvCF,EAAE,CAACC,YAAH,CAAgBE,SAFuB,CAAlC;AAYP,OAAO,IAAMC,UAAU,GAAIC,KAAD,IAAyC;EACjEb,4BAA4B,CAACa,KAAD,CAA5B;EACA,IAAM;IACJC,iBADI;IAEJC,UAFI;IAGJC,EAHI;IAIJC,MAJI;IAKJC,iBALI;IAMJC,OANI;IAOJC;EAPI,IAQFP,KARJ;EASA,IAAMQ,eAAe,GAAGvB,WAAW,CACjC,QAUM;IAAA,IAVL;MACCwB,SADD;MAECC,KAFD;MAGCC,OAAO,GAAGnB,OAAO,CAACoB,QAAR,EAHX;MAICC;IAJD,CAUK;IACJ,IAAM;MAAEC,IAAF;MAAQC;IAAR,IAAiBF,MAAvB;;IACA,IAAI,CAACnB,eAAe,CAACsB,QAAhB,CAAyBD,IAAzB,CAAL,EAAqC;MACnC;IACD;;IAED,IAAME,QAAQ,GAAG;MAAEH,IAAF;MAAQI,KAAK,EAAEJ;IAAf,CAAjB;;IACA,IAAMK,SAAS,GAAG,MAChBT,KAAK,GAAGU,IAAR,CAAcF,KAAD,IAAkB3B,oBAAoB,CAAC4B,SAArB,CAA+BD,KAA/B,CAA/B,CADF;;IAEA,IAAMG,MAAM,GAAG;MACbN,IAAI,EAAE,iBADO;MAEbO,SAAS,EAAE7B,aAAa,CAAC8B,SAFZ;MAGbvB,KAAK,EAAE;QACLC,iBADK;QAELC,UAFK;QAGLsB,gBAAgB,EAAErB,EAHb;QAILA,EAAE,EAAEQ,OAJC;QAKLM,QALK;QAMLE,SANK;QAOLZ;MAPK,CAHM;MAYbkB,KAAK,EAAEX,IAZM;MAabX,EAAE,EAAEQ;IAbS,CAAf;IAgBA,IAAM;MAAEe;IAAF,IAAWtB,MAAjB;IACAhB,WAAW,CAACuC,aAAZ,CAA0B;MAAED,IAAF;MAAQL,MAAR;MAAgBZ;IAAhB,CAA1B;EACD,CAtCgC,EAuCjC,CAACR,iBAAD,EAAoBE,EAApB,EAAwBC,MAAxB,EAAgCF,UAAhC,EAA4CK,KAA5C,CAvCiC,CAAnC;EA0CArB,SAAS,CACP,SAAS0C,kCAAT,GAA8C;IAC5C,IAAMC,QAAQ,GAAG,CACfxB,iBAAiB,CAACZ,aAAa,CAAC8B,SAAf,EAA0B9B,aAA1B,EAAyCa,OAAzC,CADF,CAAjB;IAGA,OAAO,MAAM;MACXuB,QAAQ,CAACC,OAAT,CAAiBC,OAAO,IAAIA,OAAO,EAAnC;IACD,CAFD;EAGD,CARM,EASP,CAACzB,OAAD,EAAUD,iBAAV,CATO,CAAT;EAYAf,WAAW,CAACc,MAAM,CAAC4B,QAAR,EAAkB3C,UAAU,CAAC4C,IAA7B,EAAmCzB,eAAnC,CAAX;EAEA,oBAAO,yCAAP;AACD,CApEM;AAsEP,eAAeT,UAAf"}
1
+ {"version":3,"file":"GridPlugin.js","names":["React","useCallback","useEffect","assertIsDashboardPluginProps","LayoutUtils","PanelEvent","useListener","IrisGridModelFactory","shortid","IrisGridPanel","SUPPORTED_TYPES","dh","VariableType","TABLE","TREETABLE","GridPlugin","props","getDownloadWorker","loadPlugin","id","layout","registerComponent","hydrate","theme","handlePanelOpen","dragEvent","fetch","panelId","generate","widget","name","type","includes","metadata","table","makeModel","then","config","component","COMPONENT","localDashboardId","title","root","openComponent","registerComponentsAndReturnCleanup","cleanups","forEach","cleanup","eventHub","OPEN"],"sources":["../src/GridPlugin.tsx"],"sourcesContent":["import React, { DragEvent, useCallback, useEffect } from 'react';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n LayoutUtils,\n PanelEvent,\n PanelHydrateFunction,\n useListener,\n} from '@deephaven/dashboard';\nimport { IrisGridModelFactory, IrisGridThemeType } from '@deephaven/iris-grid';\nimport { Table, VariableDefinition } from '@deephaven/jsapi-shim';\nimport shortid from 'shortid';\nimport { IrisGridPanel, IrisGridPanelProps } from './panels';\n\nexport const SUPPORTED_TYPES: string[] = [\n dh.VariableType.TABLE,\n dh.VariableType.TREETABLE,\n];\n\nexport type GridPluginProps = Partial<DashboardPluginComponentProps> & {\n getDownloadWorker?: () => Promise<ServiceWorker>;\n loadPlugin?: (name: string) => ReturnType<typeof React.forwardRef>;\n hydrate: PanelHydrateFunction<IrisGridPanelProps>;\n theme?: Partial<IrisGridThemeType>;\n};\n\nexport const GridPlugin = (props: GridPluginProps): JSX.Element => {\n assertIsDashboardPluginProps(props);\n const {\n getDownloadWorker,\n loadPlugin,\n id,\n layout,\n registerComponent,\n hydrate,\n theme,\n } = props;\n const handlePanelOpen = useCallback(\n ({\n dragEvent,\n fetch,\n panelId = shortid.generate(),\n widget,\n }: {\n dragEvent?: DragEvent;\n fetch: () => Promise<Table>;\n panelId?: string;\n widget: VariableDefinition;\n }) => {\n const { name, type } = widget;\n if (!SUPPORTED_TYPES.includes(type)) {\n return;\n }\n\n const metadata = { name, table: name };\n const makeModel = () =>\n fetch().then((table: Table) => IrisGridModelFactory.makeModel(table));\n const config = {\n type: 'react-component',\n component: IrisGridPanel.COMPONENT,\n props: {\n getDownloadWorker,\n loadPlugin,\n localDashboardId: id,\n id: panelId,\n metadata,\n makeModel,\n theme,\n },\n title: name,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config, dragEvent });\n },\n [getDownloadWorker, id, layout, loadPlugin, theme]\n );\n\n useEffect(\n function registerComponentsAndReturnCleanup() {\n const cleanups = [\n registerComponent(\n IrisGridPanel.COMPONENT,\n IrisGridPanel,\n hydrate as PanelHydrateFunction\n ),\n ];\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n },\n [hydrate, registerComponent]\n );\n\n useListener(layout.eventHub, PanelEvent.OPEN, handlePanelOpen);\n\n return <></>;\n};\n\nexport default GridPlugin;\n"],"mappings":"AAAA,OAAOA,KAAP,IAA2BC,WAA3B,EAAwCC,SAAxC,QAAyD,OAAzD;AACA,SACEC,4BADF,EAGEC,WAHF,EAIEC,UAJF,EAMEC,WANF,QAOO,sBAPP;AAQA,SAASC,oBAAT,QAAwD,sBAAxD;AAEA,OAAOC,OAAP,MAAoB,SAApB;SACSC,a;AAET,OAAO,IAAMC,eAAyB,GAAG,CACvCC,EAAE,CAACC,YAAH,CAAgBC,KADuB,EAEvCF,EAAE,CAACC,YAAH,CAAgBE,SAFuB,CAAlC;AAYP,OAAO,IAAMC,UAAU,GAAIC,KAAD,IAAyC;EACjEb,4BAA4B,CAACa,KAAD,CAA5B;EACA,IAAM;IACJC,iBADI;IAEJC,UAFI;IAGJC,EAHI;IAIJC,MAJI;IAKJC,iBALI;IAMJC,OANI;IAOJC;EAPI,IAQFP,KARJ;EASA,IAAMQ,eAAe,GAAGvB,WAAW,CACjC,QAUM;IAAA,IAVL;MACCwB,SADD;MAECC,KAFD;MAGCC,OAAO,GAAGnB,OAAO,CAACoB,QAAR,EAHX;MAICC;IAJD,CAUK;IACJ,IAAM;MAAEC,IAAF;MAAQC;IAAR,IAAiBF,MAAvB;;IACA,IAAI,CAACnB,eAAe,CAACsB,QAAhB,CAAyBD,IAAzB,CAAL,EAAqC;MACnC;IACD;;IAED,IAAME,QAAQ,GAAG;MAAEH,IAAF;MAAQI,KAAK,EAAEJ;IAAf,CAAjB;;IACA,IAAMK,SAAS,GAAG,MAChBT,KAAK,GAAGU,IAAR,CAAcF,KAAD,IAAkB3B,oBAAoB,CAAC4B,SAArB,CAA+BD,KAA/B,CAA/B,CADF;;IAEA,IAAMG,MAAM,GAAG;MACbN,IAAI,EAAE,iBADO;MAEbO,SAAS,EAAE7B,aAAa,CAAC8B,SAFZ;MAGbvB,KAAK,EAAE;QACLC,iBADK;QAELC,UAFK;QAGLsB,gBAAgB,EAAErB,EAHb;QAILA,EAAE,EAAEQ,OAJC;QAKLM,QALK;QAMLE,SANK;QAOLZ;MAPK,CAHM;MAYbkB,KAAK,EAAEX,IAZM;MAabX,EAAE,EAAEQ;IAbS,CAAf;IAgBA,IAAM;MAAEe;IAAF,IAAWtB,MAAjB;IACAhB,WAAW,CAACuC,aAAZ,CAA0B;MAAED,IAAF;MAAQL,MAAR;MAAgBZ;IAAhB,CAA1B;EACD,CAtCgC,EAuCjC,CAACR,iBAAD,EAAoBE,EAApB,EAAwBC,MAAxB,EAAgCF,UAAhC,EAA4CK,KAA5C,CAvCiC,CAAnC;EA0CArB,SAAS,CACP,SAAS0C,kCAAT,GAA8C;IAC5C,IAAMC,QAAQ,GAAG,CACfxB,iBAAiB,CACfZ,aAAa,CAAC8B,SADC,EAEf9B,aAFe,EAGfa,OAHe,CADF,CAAjB;IAOA,OAAO,MAAM;MACXuB,QAAQ,CAACC,OAAT,CAAiBC,OAAO,IAAIA,OAAO,EAAnC;IACD,CAFD;EAGD,CAZM,EAaP,CAACzB,OAAD,EAAUD,iBAAV,CAbO,CAAT;EAgBAf,WAAW,CAACc,MAAM,CAAC4B,QAAR,EAAkB3C,UAAU,CAAC4C,IAA7B,EAAmCzB,eAAnC,CAAX;EAEA,oBAAO,yCAAP;AACD,CAxEM;AA0EP,eAAeT,UAAf"}
@@ -1,7 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  import { DashboardPluginComponentProps, PanelHydrateFunction } from '@deephaven/dashboard';
3
+ import { PandasPanelProps } from './panels';
3
4
  export declare type PandasPluginProps = Partial<DashboardPluginComponentProps> & {
4
- hydrate: PanelHydrateFunction;
5
+ hydrate: PanelHydrateFunction<PandasPanelProps>;
5
6
  };
6
7
  export declare const PandasPlugin: (props: PandasPluginProps) => JSX.Element;
7
8
  export default PandasPlugin;
@@ -1 +1 @@
1
- {"version":3,"file":"PandasPlugin.d.ts","sourceRoot":"","sources":["../src/PandasPlugin.tsx"],"names":[],"mappings":";AACA,OAAO,EAEL,6BAA6B,EAG7B,oBAAoB,EAErB,MAAM,sBAAsB,CAAC;AAM9B,oBAAY,iBAAiB,GAAG,OAAO,CAAC,6BAA6B,CAAC,GAAG;IACvE,OAAO,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,iBAAiB,KAAG,WAiDvD,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"PandasPlugin.d.ts","sourceRoot":"","sources":["../src/PandasPlugin.tsx"],"names":[],"mappings":";AACA,OAAO,EAEL,6BAA6B,EAG7B,oBAAoB,EAErB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAe,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEzD,oBAAY,iBAAiB,GAAG,OAAO,CAAC,6BAA6B,CAAC,GAAG;IACvE,OAAO,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;CACjD,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,iBAAiB,KAAG,WAiDvD,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PandasPlugin.js","names":["React","useCallback","useEffect","assertIsDashboardPluginProps","LayoutUtils","PanelEvent","useListener","IrisGridModelFactory","shortid","PandasPanel","PandasPlugin","props","hydrate","id","layout","registerComponent","handlePanelOpen","dragEvent","fetch","panelId","generate","widget","name","type","dh","VariableType","PANDAS","metadata","table","makeModel","then","config","component","COMPONENT","localDashboardId","title","root","openComponent","registerComponentsAndReturnCleanup","cleanups","forEach","cleanup","eventHub","OPEN"],"sources":["../src/PandasPlugin.tsx"],"sourcesContent":["import React, { useCallback, useEffect } from 'react';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n LayoutUtils,\n PanelEvent,\n PanelHydrateFunction,\n useListener,\n} from '@deephaven/dashboard';\nimport { IrisGridModelFactory } from '@deephaven/iris-grid';\nimport { Table } from '@deephaven/jsapi-shim';\nimport shortid from 'shortid';\nimport { PandasPanel } from './panels';\n\nexport type PandasPluginProps = Partial<DashboardPluginComponentProps> & {\n hydrate: PanelHydrateFunction;\n};\n\nexport const PandasPlugin = (props: PandasPluginProps): JSX.Element => {\n assertIsDashboardPluginProps(props);\n const { hydrate, id, layout, registerComponent } = props;\n\n const handlePanelOpen = useCallback(\n ({ dragEvent, fetch, panelId = shortid.generate(), widget }) => {\n const { name, type } = widget;\n if (type !== dh.VariableType.PANDAS) {\n return;\n }\n\n const metadata = { name, table: name };\n const makeModel = () =>\n fetch().then((table: Table) => IrisGridModelFactory.makeModel(table));\n const config = {\n type: 'react-component',\n component: PandasPanel.COMPONENT,\n props: {\n localDashboardId: id,\n id: panelId,\n metadata,\n makeModel,\n },\n title: name,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config, dragEvent });\n },\n [id, layout]\n );\n\n useEffect(\n function registerComponentsAndReturnCleanup() {\n const cleanups = [\n registerComponent(PandasPanel.COMPONENT, PandasPanel, hydrate),\n ];\n\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n },\n [hydrate, registerComponent]\n );\n\n useListener(layout.eventHub, PanelEvent.OPEN, handlePanelOpen);\n\n return <></>;\n};\n\nexport default PandasPlugin;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,WAAhB,EAA6BC,SAA7B,QAA8C,OAA9C;AACA,SACEC,4BADF,EAGEC,WAHF,EAIEC,UAJF,EAMEC,WANF,QAOO,sBAPP;AAQA,SAASC,oBAAT,QAAqC,sBAArC;AAEA,OAAOC,OAAP,MAAoB,SAApB;SACSC,W;AAMT,OAAO,IAAMC,YAAY,GAAIC,KAAD,IAA2C;EACrER,4BAA4B,CAACQ,KAAD,CAA5B;EACA,IAAM;IAAEC,OAAF;IAAWC,EAAX;IAAeC,MAAf;IAAuBC;EAAvB,IAA6CJ,KAAnD;EAEA,IAAMK,eAAe,GAAGf,WAAW,CACjC,QAAgE;IAAA,IAA/D;MAAEgB,SAAF;MAAaC,KAAb;MAAoBC,OAAO,GAAGX,OAAO,CAACY,QAAR,EAA9B;MAAkDC;IAAlD,CAA+D;IAC9D,IAAM;MAAEC,IAAF;MAAQC;IAAR,IAAiBF,MAAvB;;IACA,IAAIE,IAAI,KAAKC,EAAE,CAACC,YAAH,CAAgBC,MAA7B,EAAqC;MACnC;IACD;;IAED,IAAMC,QAAQ,GAAG;MAAEL,IAAF;MAAQM,KAAK,EAAEN;IAAf,CAAjB;;IACA,IAAMO,SAAS,GAAG,MAChBX,KAAK,GAAGY,IAAR,CAAcF,KAAD,IAAkBrB,oBAAoB,CAACsB,SAArB,CAA+BD,KAA/B,CAA/B,CADF;;IAEA,IAAMG,MAAM,GAAG;MACbR,IAAI,EAAE,iBADO;MAEbS,SAAS,EAAEvB,WAAW,CAACwB,SAFV;MAGbtB,KAAK,EAAE;QACLuB,gBAAgB,EAAErB,EADb;QAELA,EAAE,EAAEM,OAFC;QAGLQ,QAHK;QAILE;MAJK,CAHM;MASbM,KAAK,EAAEb,IATM;MAUbT,EAAE,EAAEM;IAVS,CAAf;IAaA,IAAM;MAAEiB;IAAF,IAAWtB,MAAjB;IACAV,WAAW,CAACiC,aAAZ,CAA0B;MAAED,IAAF;MAAQL,MAAR;MAAgBd;IAAhB,CAA1B;EACD,CAzBgC,EA0BjC,CAACJ,EAAD,EAAKC,MAAL,CA1BiC,CAAnC;EA6BAZ,SAAS,CACP,SAASoC,kCAAT,GAA8C;IAC5C,IAAMC,QAAQ,GAAG,CACfxB,iBAAiB,CAACN,WAAW,CAACwB,SAAb,EAAwBxB,WAAxB,EAAqCG,OAArC,CADF,CAAjB;IAIA,OAAO,MAAM;MACX2B,QAAQ,CAACC,OAAT,CAAiBC,OAAO,IAAIA,OAAO,EAAnC;IACD,CAFD;EAGD,CATM,EAUP,CAAC7B,OAAD,EAAUG,iBAAV,CAVO,CAAT;EAaAT,WAAW,CAACQ,MAAM,CAAC4B,QAAR,EAAkBrC,UAAU,CAACsC,IAA7B,EAAmC3B,eAAnC,CAAX;EAEA,oBAAO,yCAAP;AACD,CAjDM;AAmDP,eAAeN,YAAf"}
1
+ {"version":3,"file":"PandasPlugin.js","names":["React","useCallback","useEffect","assertIsDashboardPluginProps","LayoutUtils","PanelEvent","useListener","IrisGridModelFactory","shortid","PandasPanel","PandasPlugin","props","hydrate","id","layout","registerComponent","handlePanelOpen","dragEvent","fetch","panelId","generate","widget","name","type","dh","VariableType","PANDAS","metadata","table","makeModel","then","config","component","COMPONENT","localDashboardId","title","root","openComponent","registerComponentsAndReturnCleanup","cleanups","forEach","cleanup","eventHub","OPEN"],"sources":["../src/PandasPlugin.tsx"],"sourcesContent":["import React, { useCallback, useEffect } from 'react';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n LayoutUtils,\n PanelEvent,\n PanelHydrateFunction,\n useListener,\n} from '@deephaven/dashboard';\nimport { IrisGridModelFactory } from '@deephaven/iris-grid';\nimport { Table } from '@deephaven/jsapi-shim';\nimport shortid from 'shortid';\nimport { PandasPanel, PandasPanelProps } from './panels';\n\nexport type PandasPluginProps = Partial<DashboardPluginComponentProps> & {\n hydrate: PanelHydrateFunction<PandasPanelProps>;\n};\n\nexport const PandasPlugin = (props: PandasPluginProps): JSX.Element => {\n assertIsDashboardPluginProps(props);\n const { hydrate, id, layout, registerComponent } = props;\n\n const handlePanelOpen = useCallback(\n ({ dragEvent, fetch, panelId = shortid.generate(), widget }) => {\n const { name, type } = widget;\n if (type !== dh.VariableType.PANDAS) {\n return;\n }\n\n const metadata = { name, table: name };\n const makeModel = () =>\n fetch().then((table: Table) => IrisGridModelFactory.makeModel(table));\n const config = {\n type: 'react-component',\n component: PandasPanel.COMPONENT,\n props: {\n localDashboardId: id,\n id: panelId,\n metadata,\n makeModel,\n },\n title: name,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config, dragEvent });\n },\n [id, layout]\n );\n\n useEffect(\n function registerComponentsAndReturnCleanup() {\n const cleanups = [\n registerComponent(PandasPanel.COMPONENT, PandasPanel, hydrate),\n ];\n\n return () => {\n cleanups.forEach(cleanup => cleanup());\n };\n },\n [hydrate, registerComponent]\n );\n\n useListener(layout.eventHub, PanelEvent.OPEN, handlePanelOpen);\n\n return <></>;\n};\n\nexport default PandasPlugin;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,WAAhB,EAA6BC,SAA7B,QAA8C,OAA9C;AACA,SACEC,4BADF,EAGEC,WAHF,EAIEC,UAJF,EAMEC,WANF,QAOO,sBAPP;AAQA,SAASC,oBAAT,QAAqC,sBAArC;AAEA,OAAOC,OAAP,MAAoB,SAApB;SACSC,W;AAMT,OAAO,IAAMC,YAAY,GAAIC,KAAD,IAA2C;EACrER,4BAA4B,CAACQ,KAAD,CAA5B;EACA,IAAM;IAAEC,OAAF;IAAWC,EAAX;IAAeC,MAAf;IAAuBC;EAAvB,IAA6CJ,KAAnD;EAEA,IAAMK,eAAe,GAAGf,WAAW,CACjC,QAAgE;IAAA,IAA/D;MAAEgB,SAAF;MAAaC,KAAb;MAAoBC,OAAO,GAAGX,OAAO,CAACY,QAAR,EAA9B;MAAkDC;IAAlD,CAA+D;IAC9D,IAAM;MAAEC,IAAF;MAAQC;IAAR,IAAiBF,MAAvB;;IACA,IAAIE,IAAI,KAAKC,EAAE,CAACC,YAAH,CAAgBC,MAA7B,EAAqC;MACnC;IACD;;IAED,IAAMC,QAAQ,GAAG;MAAEL,IAAF;MAAQM,KAAK,EAAEN;IAAf,CAAjB;;IACA,IAAMO,SAAS,GAAG,MAChBX,KAAK,GAAGY,IAAR,CAAcF,KAAD,IAAkBrB,oBAAoB,CAACsB,SAArB,CAA+BD,KAA/B,CAA/B,CADF;;IAEA,IAAMG,MAAM,GAAG;MACbR,IAAI,EAAE,iBADO;MAEbS,SAAS,EAAEvB,WAAW,CAACwB,SAFV;MAGbtB,KAAK,EAAE;QACLuB,gBAAgB,EAAErB,EADb;QAELA,EAAE,EAAEM,OAFC;QAGLQ,QAHK;QAILE;MAJK,CAHM;MASbM,KAAK,EAAEb,IATM;MAUbT,EAAE,EAAEM;IAVS,CAAf;IAaA,IAAM;MAAEiB;IAAF,IAAWtB,MAAjB;IACAV,WAAW,CAACiC,aAAZ,CAA0B;MAAED,IAAF;MAAQL,MAAR;MAAgBd;IAAhB,CAA1B;EACD,CAzBgC,EA0BjC,CAACJ,EAAD,EAAKC,MAAL,CA1BiC,CAAnC;EA6BAZ,SAAS,CACP,SAASoC,kCAAT,GAA8C;IAC5C,IAAMC,QAAQ,GAAG,CACfxB,iBAAiB,CAACN,WAAW,CAACwB,SAAb,EAAwBxB,WAAxB,EAAqCG,OAArC,CADF,CAAjB;IAIA,OAAO,MAAM;MACX2B,QAAQ,CAACC,OAAT,CAAiBC,OAAO,IAAIA,OAAO,EAAnC;IACD,CAFD;EAGD,CATM,EAUP,CAAC7B,OAAD,EAAUG,iBAAV,CAVO,CAAT;EAaAT,WAAW,CAACQ,MAAM,CAAC4B,QAAR,EAAkBrC,UAAU,CAACsC,IAA7B,EAAmC3B,eAAnC,CAAX;EAEA,oBAAO,yCAAP;AACD,CAjDM;AAmDP,eAAeN,YAAf"}
@@ -1,8 +1,8 @@
1
- export default ControlType;
2
1
  declare class ControlType {
3
2
  static DROPDOWN_FILTER: string;
4
3
  static INPUT_FILTER: string;
5
4
  static MARKDOWN: string;
6
5
  static FILTER_SET_MANAGER: string;
7
6
  }
7
+ export default ControlType;
8
8
  //# sourceMappingURL=ControlType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ControlType.d.ts","sourceRoot":"","sources":["../../src/controls/ControlType.js"],"names":[],"mappings":";AAAA;IACE,+BAAuD;IAEvD,4BAAiD;IAEjD,wBAAyC;IAEzC,kCAA6D;CAC9D"}
1
+ {"version":3,"file":"ControlType.d.ts","sourceRoot":"","sources":["../../src/controls/ControlType.ts"],"names":[],"mappings":"AAAA,cAAM,WAAW;IACf,MAAM,CAAC,eAAe,SAAiC;IAEvD,MAAM,CAAC,YAAY,SAA8B;IAEjD,MAAM,CAAC,QAAQ,SAA0B;IAEzC,MAAM,CAAC,kBAAkB,SAAoC;CAC9D;AAED,eAAe,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ControlType.js","names":["ControlType"],"sources":["../../src/controls/ControlType.js"],"sourcesContent":["class ControlType {\n static DROPDOWN_FILTER = 'ControlType.DROPDOWN_FILTER';\n\n static INPUT_FILTER = 'ControlType.INPUT_FILTER';\n\n static MARKDOWN = 'ControlType.MARKDOWN';\n\n static FILTER_SET_MANAGER = 'ControlType.FILTER_SET_MANAGER';\n}\n\nexport default ControlType;\n"],"mappings":";;AAAA,MAAMA,WAAN,CAAkB;;gBAAZA,W,qBACqB,6B;;gBADrBA,W,kBAGkB,0B;;gBAHlBA,W,cAKc,sB;;gBALdA,W,wBAOwB,gC;;AAG9B,eAAeA,WAAf"}
1
+ {"version":3,"file":"ControlType.js","names":["ControlType"],"sources":["../../src/controls/ControlType.ts"],"sourcesContent":["class ControlType {\n static DROPDOWN_FILTER = 'ControlType.DROPDOWN_FILTER';\n\n static INPUT_FILTER = 'ControlType.INPUT_FILTER';\n\n static MARKDOWN = 'ControlType.MARKDOWN';\n\n static FILTER_SET_MANAGER = 'ControlType.FILTER_SET_MANAGER';\n}\n\nexport default ControlType;\n"],"mappings":";;AAAA,MAAMA,WAAN,CAAkB;;gBAAZA,W,qBACqB,6B;;gBADrBA,W,kBAGkB,0B;;gBAHlBA,W,cAKc,sB;;gBALdA,W,wBAOwB,gC;;AAG9B,eAAeA,WAAf"}
@@ -1,23 +1,73 @@
1
- export default DropdownFilter;
2
- declare class DropdownFilter extends React.Component<any, any, any> {
1
+ import { ChangeEvent, Component, KeyboardEvent, MouseEvent, ReactElement, RefObject } from 'react';
2
+ import { Column } from '@deephaven/jsapi-shim';
3
+ import memoizee from 'memoizee';
4
+ import './DropdownFilter.scss';
5
+ import { LinkPoint } from '../../linker/LinkerUtils';
6
+ export interface DropdownFilterColumn {
7
+ name: string;
8
+ type?: string;
9
+ }
10
+ interface DropdownFilterProps {
11
+ column: DropdownFilterColumn;
12
+ columns: DropdownFilterColumn[];
13
+ onSourceMouseEnter: () => void;
14
+ onSourceMouseLeave: () => void;
15
+ disableLinking: boolean;
16
+ isLinkerActive: boolean;
17
+ isLoaded: boolean;
18
+ isValueShown: boolean;
19
+ settingsError: string;
20
+ source: LinkPoint;
21
+ value: string;
22
+ values: (string | null)[];
23
+ onChange: (change: {
24
+ column: Partial<Column> | null;
25
+ isValueShown?: boolean;
26
+ value?: string;
27
+ }) => void;
28
+ onColumnSelected: () => void;
29
+ }
30
+ interface DropdownFilterState {
31
+ column: DropdownFilterColumn | null;
32
+ selectedColumn: DropdownFilterColumn | null;
33
+ disableCancel: boolean;
34
+ isValueShown: boolean;
35
+ value: string | null;
36
+ }
37
+ declare class DropdownFilter extends Component<DropdownFilterProps, DropdownFilterState> {
38
+ static defaultProps: {
39
+ column: null;
40
+ disableLinking: boolean;
41
+ isLinkerActive: boolean;
42
+ isLoaded: boolean;
43
+ isValueShown: boolean;
44
+ settingsError: null;
45
+ source: null;
46
+ value: string;
47
+ values: never[];
48
+ onColumnSelected: () => void;
49
+ onSourceMouseEnter: () => void;
50
+ onSourceMouseLeave: () => void;
51
+ };
3
52
  static PLACEHOLDER: string;
4
53
  static SOURCE_BUTTON_CLASS_NAME: string;
5
54
  static SOURCE_BUTTON_PLACEHOLDER: string;
6
- constructor(props: any);
7
- handleColumnChange(event: any): void;
55
+ constructor(props: DropdownFilterProps);
56
+ componentDidUpdate(prevProps: DropdownFilterProps, prevState: DropdownFilterState): void;
57
+ componentWillUnmount(): void;
58
+ dropdownRef: RefObject<HTMLSelectElement>;
59
+ getCompatibleColumns: (source: LinkPoint, columns: DropdownFilterColumn[]) => DropdownFilterColumn[];
60
+ getColumnOptions: (columns: DropdownFilterColumn[], selectedColumn: DropdownFilterColumn | null) => [JSX.Element[], number];
61
+ getSelectedOptionIndex: (values: (string | null)[], value: string | null) => number;
62
+ getValueOptions: (values: (string | null)[]) => JSX.Element[];
63
+ getItemLabel: ((columns: any, index: any) => any) & memoizee.Memoized<(columns: any, index: any) => any>;
64
+ handleColumnChange(event: ChangeEvent<HTMLSelectElement>): void;
65
+ handleDropdownKeyPress(event: KeyboardEvent<HTMLSelectElement>): void;
66
+ handleValueChange(event: ChangeEvent<HTMLSelectElement>): void;
8
67
  handleSettingsCancel(): void;
9
- handleSettingsClick(event: any): void;
10
68
  handleSettingsSave(): void;
11
- handleBackgroundClick(event: any): void;
12
- handleDropdownKeyPress(event: any): void;
13
- handleValueChange(event: any): void;
14
- sendUpdate(): void;
15
- dropdownRef: React.RefObject<any>;
16
- getCompatibleColumns: (this: any, source: any, columns: any) => any;
17
- getColumnOptions: (this: any, columns: any, selectedColumn: any) => (number | JSX.Element[])[];
18
- getSelectedOptionIndex: (this: any, values: any, value: any) => any;
19
- getValueOptions: (this: any, values: any) => any[];
20
- getItemLabel: ((columns: any, index: any) => any) & memoizee.Memoized<(columns: any, index: any) => any>;
69
+ handleSettingsClick(event: MouseEvent<HTMLButtonElement>): void;
70
+ handleBackgroundClick(event: MouseEvent<HTMLDivElement>): void;
21
71
  handleMouseEnter(): void;
22
72
  handleMouseLeave(): void;
23
73
  sourceUpdated(): void;
@@ -25,72 +75,14 @@ declare class DropdownFilter extends React.Component<any, any, any> {
25
75
  focusInput(): void;
26
76
  resetValue(): void;
27
77
  clearFilter(): void;
28
- setFilterState({ name, type, value, isValueShown }: {
29
- name: any;
30
- type: any;
31
- value: any;
32
- isValueShown: any;
78
+ setFilterState({ name, type, value, isValueShown, }: {
79
+ name: string;
80
+ type: string;
81
+ value: string;
82
+ isValueShown: boolean;
33
83
  }): void;
84
+ sendUpdate: import("lodash").DebouncedFunc<() => void>;
85
+ render(): ReactElement;
34
86
  }
35
- declare namespace DropdownFilter {
36
- namespace propTypes {
37
- const column: PropTypes.Requireable<PropTypes.InferProps<{
38
- name: PropTypes.Validator<string>;
39
- type: PropTypes.Validator<string>;
40
- description: PropTypes.Requireable<string>;
41
- constituentType: PropTypes.Requireable<string>;
42
- }>>;
43
- const columns: PropTypes.Validator<(PropTypes.InferProps<{
44
- name: PropTypes.Validator<string>;
45
- type: PropTypes.Validator<string>;
46
- description: PropTypes.Requireable<string>;
47
- constituentType: PropTypes.Requireable<string>;
48
- }> | null | undefined)[]>;
49
- const onSourceMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
50
- const onSourceMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
51
- const disableLinking: PropTypes.Requireable<boolean>;
52
- const isLinkerActive: PropTypes.Requireable<boolean>;
53
- const isLoaded: PropTypes.Requireable<boolean>;
54
- const isValueShown: PropTypes.Requireable<boolean>;
55
- const settingsError: PropTypes.Requireable<string>;
56
- const source: PropTypes.Requireable<PropTypes.InferProps<{
57
- panelId: PropTypes.Validator<string>;
58
- columnName: PropTypes.Validator<string>;
59
- columnType: PropTypes.Validator<string>;
60
- }>>;
61
- const value: PropTypes.Requireable<string>;
62
- const values: PropTypes.Requireable<(string | null | undefined)[]>;
63
- const onChange: PropTypes.Validator<(...args: any[]) => any>;
64
- const onColumnSelected: PropTypes.Requireable<(...args: any[]) => any>;
65
- }
66
- namespace defaultProps {
67
- const column_1: null;
68
- export { column_1 as column };
69
- const disableLinking_1: boolean;
70
- export { disableLinking_1 as disableLinking };
71
- const isLinkerActive_1: boolean;
72
- export { isLinkerActive_1 as isLinkerActive };
73
- const isLoaded_1: boolean;
74
- export { isLoaded_1 as isLoaded };
75
- const isValueShown_1: boolean;
76
- export { isValueShown_1 as isValueShown };
77
- const settingsError_1: null;
78
- export { settingsError_1 as settingsError };
79
- const source_1: null;
80
- export { source_1 as source };
81
- const value_1: string;
82
- export { value_1 as value };
83
- const values_1: never[];
84
- export { values_1 as values };
85
- export function onColumnSelected_1(): void;
86
- export { onColumnSelected_1 as onColumnSelected };
87
- export function onSourceMouseEnter_1(): void;
88
- export { onSourceMouseEnter_1 as onSourceMouseEnter };
89
- export function onSourceMouseLeave_1(): void;
90
- export { onSourceMouseLeave_1 as onSourceMouseLeave };
91
- }
92
- }
93
- import React from "react";
94
- import memoizee from "memoizee";
95
- import PropTypes from "prop-types";
87
+ export default DropdownFilter;
96
88
  //# sourceMappingURL=DropdownFilter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownFilter.d.ts","sourceRoot":"","sources":["../../../src/controls/dropdown-filter/DropdownFilter.jsx"],"names":[],"mappings":";AAqBA;IACE,2BAAyC;IAEzC,wCAAiE;IAEjE,yCAAqD;IAErD,wBAuBC;IAwGD,qCAcC;IAkCD,6BAKC;IAYD,sCAGC;IAbD,2BAQC;IAOD,wCAKC;IA3DD,yCAUC;IAED,oCAkBC;IA4ED,mBAIC;IAhPC,kCAAoC;IAkDtC,oEAME;IAEF,+FAuBG;IAEH,oEAA2E;IAE3E,mDAaG;IAEH,yGAYG;IA+EH,yBAGC;IAED,yBAGC;IAED,sBAQC;IAED,qBAGC;IAED,mBAIC;IAED,mBAEC;IAGD,oBAEC;IAED;;;;;aAGC;CA+JF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA8BmB,2CAAQ;;QACN,6CAAQ;;QACR,6CAAQ"}
1
+ {"version":3,"file":"DropdownFilter.d.ts","sourceRoot":"","sources":["../../../src/controls/dropdown-filter/DropdownFilter.tsx"],"names":[],"mappings":"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"}