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

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 (194) 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.js.map +1 -1
  5. package/dist/ConsolePlugin.js.map +1 -1
  6. package/dist/FilterPlugin.js +1 -1
  7. package/dist/FilterPlugin.js.map +1 -1
  8. package/dist/GridPlugin.js.map +1 -1
  9. package/dist/LinkerPlugin.js.map +1 -1
  10. package/dist/MarkdownPlugin.js.map +1 -1
  11. package/dist/PandasPlugin.js.map +1 -1
  12. package/dist/controls/ControlType.d.ts +1 -1
  13. package/dist/controls/ControlType.d.ts.map +1 -1
  14. package/dist/controls/ControlType.js.map +1 -1
  15. package/dist/controls/dropdown-filter/DropdownFilter.d.ts +73 -81
  16. package/dist/controls/dropdown-filter/DropdownFilter.d.ts.map +1 -1
  17. package/dist/controls/dropdown-filter/DropdownFilter.js +41 -58
  18. package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
  19. package/dist/controls/input-filter/InputFilter.d.ts +46 -46
  20. package/dist/controls/input-filter/InputFilter.d.ts.map +1 -1
  21. package/dist/controls/input-filter/InputFilter.js +32 -39
  22. package/dist/controls/input-filter/InputFilter.js.map +1 -1
  23. package/dist/controls/markdown/MarkdownContainer.d.ts +11 -16
  24. package/dist/controls/markdown/MarkdownContainer.d.ts.map +1 -1
  25. package/dist/controls/markdown/MarkdownContainer.js +5 -8
  26. package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
  27. package/dist/controls/markdown/MarkdownEditor.d.ts +17 -19
  28. package/dist/controls/markdown/MarkdownEditor.d.ts.map +1 -1
  29. package/dist/controls/markdown/MarkdownEditor.js +5 -8
  30. package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
  31. package/dist/controls/markdown/MarkdownStartPage.d.ts +24 -28
  32. package/dist/controls/markdown/MarkdownStartPage.d.ts.map +1 -1
  33. package/dist/controls/markdown/MarkdownStartPage.js +19 -23
  34. package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
  35. package/dist/controls/markdown/MarkdownUtils.d.ts +4 -4
  36. package/dist/controls/markdown/MarkdownUtils.d.ts.map +1 -1
  37. package/dist/controls/markdown/MarkdownUtils.js +2 -2
  38. package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
  39. package/dist/events/ChartEvent.d.ts +1 -1
  40. package/dist/events/ChartEvent.d.ts.map +1 -1
  41. package/dist/events/ChartEvent.js.map +1 -1
  42. package/dist/events/ConsoleEvent.d.ts +1 -1
  43. package/dist/events/ConsoleEvent.d.ts.map +1 -1
  44. package/dist/events/ConsoleEvent.js.map +1 -1
  45. package/dist/events/InputFilterEvent.d.ts +1 -1
  46. package/dist/events/InputFilterEvent.d.ts.map +1 -1
  47. package/dist/events/InputFilterEvent.js.map +1 -1
  48. package/dist/events/IrisGridEvent.d.ts +1 -1
  49. package/dist/events/IrisGridEvent.d.ts.map +1 -1
  50. package/dist/events/IrisGridEvent.js.map +1 -1
  51. package/dist/events/MarkdownEvent.js.map +1 -1
  52. package/dist/events/NotebookEvent.d.ts +1 -1
  53. package/dist/events/NotebookEvent.d.ts.map +1 -1
  54. package/dist/events/NotebookEvent.js.map +1 -1
  55. package/dist/events/PQEvent.d.ts +1 -1
  56. package/dist/events/PQEvent.d.ts.map +1 -1
  57. package/dist/events/PQEvent.js.map +1 -1
  58. package/dist/events/PandasEvent.d.ts +1 -1
  59. package/dist/events/PandasEvent.d.ts.map +1 -1
  60. package/dist/events/PandasEvent.js.map +1 -1
  61. package/dist/events/TabEvent.d.ts +1 -1
  62. package/dist/events/TabEvent.d.ts.map +1 -1
  63. package/dist/events/TabEvent.js.map +1 -1
  64. package/dist/events/index.d.ts +8 -8
  65. package/dist/events/index.d.ts.map +1 -1
  66. package/dist/events/index.js.map +1 -1
  67. package/dist/index.js.map +1 -1
  68. package/dist/linker/ColumnSelectionValidator.d.ts +4 -0
  69. package/dist/linker/ColumnSelectionValidator.d.ts.map +1 -0
  70. package/dist/linker/ColumnSelectionValidator.js +2 -0
  71. package/dist/linker/ColumnSelectionValidator.js.map +1 -0
  72. package/dist/linker/Linker.d.ts +11 -11
  73. package/dist/linker/Linker.js +1 -1
  74. package/dist/linker/Linker.js.map +1 -1
  75. package/dist/linker/LinkerLink.js.map +1 -1
  76. package/dist/linker/LinkerOverlayContent.js.map +1 -1
  77. package/dist/linker/LinkerUtils.d.ts +3 -3
  78. package/dist/linker/LinkerUtils.d.ts.map +1 -1
  79. package/dist/linker/LinkerUtils.js.map +1 -1
  80. package/dist/linker/ToolType.d.ts +1 -1
  81. package/dist/linker/ToolType.d.ts.map +1 -1
  82. package/dist/linker/ToolType.js.map +1 -1
  83. package/dist/panels/ChartColumnSelectorOverlay.d.ts +22 -26
  84. package/dist/panels/ChartColumnSelectorOverlay.d.ts.map +1 -1
  85. package/dist/panels/ChartColumnSelectorOverlay.js +5 -14
  86. package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
  87. package/dist/panels/ChartFilterOverlay.d.ts +27 -21
  88. package/dist/panels/ChartFilterOverlay.d.ts.map +1 -1
  89. package/dist/panels/ChartFilterOverlay.js.map +1 -1
  90. package/dist/panels/ChartPanel.d.ts +149 -152
  91. package/dist/panels/ChartPanel.d.ts.map +1 -1
  92. package/dist/panels/ChartPanel.js +65 -73
  93. package/dist/panels/ChartPanel.js.map +1 -1
  94. package/dist/panels/CommandHistoryPanel.d.ts +41 -56
  95. package/dist/panels/CommandHistoryPanel.d.ts.map +1 -1
  96. package/dist/panels/CommandHistoryPanel.js +13 -35
  97. package/dist/panels/CommandHistoryPanel.js.map +1 -1
  98. package/dist/panels/ConsolePanel.d.ts +63 -73
  99. package/dist/panels/ConsolePanel.d.ts.map +1 -1
  100. package/dist/panels/ConsolePanel.js +67 -83
  101. package/dist/panels/ConsolePanel.js.map +1 -1
  102. package/dist/panels/DropdownFilterPanel.d.ts +110 -106
  103. package/dist/panels/DropdownFilterPanel.d.ts.map +1 -1
  104. package/dist/panels/DropdownFilterPanel.js +60 -62
  105. package/dist/panels/DropdownFilterPanel.js.map +1 -1
  106. package/dist/panels/FileExplorerPanel.d.ts +5 -7
  107. package/dist/panels/FileExplorerPanel.d.ts.map +1 -1
  108. package/dist/panels/FileExplorerPanel.js.map +1 -1
  109. package/dist/panels/FilterSetManager.d.ts +3 -1
  110. package/dist/panels/FilterSetManager.d.ts.map +1 -1
  111. package/dist/panels/FilterSetManager.js.map +1 -1
  112. package/dist/panels/FilterSetManagerPanel.d.ts +83 -62
  113. package/dist/panels/FilterSetManagerPanel.d.ts.map +1 -1
  114. package/dist/panels/FilterSetManagerPanel.js +58 -36
  115. package/dist/panels/FilterSetManagerPanel.js.map +1 -1
  116. package/dist/panels/InputFilterPanel.d.ts +50 -51
  117. package/dist/panels/InputFilterPanel.d.ts.map +1 -1
  118. package/dist/panels/InputFilterPanel.js +35 -34
  119. package/dist/panels/InputFilterPanel.js.map +1 -1
  120. package/dist/panels/IrisGridPanel.d.ts +191 -178
  121. package/dist/panels/IrisGridPanel.d.ts.map +1 -1
  122. package/dist/panels/IrisGridPanel.js +150 -179
  123. package/dist/panels/IrisGridPanel.js.map +1 -1
  124. package/dist/panels/LogPanel.d.ts +29 -45
  125. package/dist/panels/LogPanel.d.ts.map +1 -1
  126. package/dist/panels/LogPanel.js +9 -11
  127. package/dist/panels/LogPanel.js.map +1 -1
  128. package/dist/panels/MarkdownNotebook.d.ts +34 -34
  129. package/dist/panels/MarkdownNotebook.d.ts.map +1 -1
  130. package/dist/panels/MarkdownNotebook.js +21 -18
  131. package/dist/panels/MarkdownNotebook.js.map +1 -1
  132. package/dist/panels/MarkdownPanel.d.ts +41 -47
  133. package/dist/panels/MarkdownPanel.d.ts.map +1 -1
  134. package/dist/panels/MarkdownPanel.js +17 -19
  135. package/dist/panels/MarkdownPanel.js.map +1 -1
  136. package/dist/panels/NotebookPanel.d.ts +137 -115
  137. package/dist/panels/NotebookPanel.d.ts.map +1 -1
  138. package/dist/panels/NotebookPanel.js +95 -68
  139. package/dist/panels/NotebookPanel.js.map +1 -1
  140. package/dist/panels/PandasPanel.d.ts +20 -17
  141. package/dist/panels/PandasPanel.d.ts.map +1 -1
  142. package/dist/panels/PandasPanel.js +18 -14
  143. package/dist/panels/PandasPanel.js.map +1 -1
  144. package/dist/panels/Panel.d.ts +87 -123
  145. package/dist/panels/Panel.d.ts.map +1 -1
  146. package/dist/panels/Panel.js +29 -54
  147. package/dist/panels/Panel.js.map +1 -1
  148. package/dist/panels/PanelContextMenu.d.ts +16 -31
  149. package/dist/panels/PanelContextMenu.d.ts.map +1 -1
  150. package/dist/panels/PanelContextMenu.js +12 -15
  151. package/dist/panels/PanelContextMenu.js.map +1 -1
  152. package/dist/panels/RenameDialog.d.ts +26 -28
  153. package/dist/panels/RenameDialog.d.ts.map +1 -1
  154. package/dist/panels/RenameDialog.js +15 -19
  155. package/dist/panels/RenameDialog.js.map +1 -1
  156. package/dist/panels/WidgetPanel.d.ts +72 -106
  157. package/dist/panels/WidgetPanel.d.ts.map +1 -1
  158. package/dist/panels/WidgetPanel.js +17 -47
  159. package/dist/panels/WidgetPanel.js.map +1 -1
  160. package/dist/panels/WidgetPanelTooltip.d.ts +29 -22
  161. package/dist/panels/WidgetPanelTooltip.d.ts.map +1 -1
  162. package/dist/panels/WidgetPanelTooltip.js +1 -1
  163. package/dist/panels/WidgetPanelTooltip.js.map +1 -1
  164. package/dist/panels/index.js.map +1 -1
  165. package/dist/prop-types/CommonPropTypes.d.ts +4 -4
  166. package/dist/prop-types/CommonPropTypes.d.ts.map +1 -1
  167. package/dist/prop-types/CommonPropTypes.js +1 -1
  168. package/dist/prop-types/CommonPropTypes.js.map +1 -1
  169. package/dist/prop-types/UIPropTypes.d.ts +2 -7
  170. package/dist/prop-types/UIPropTypes.d.ts.map +1 -1
  171. package/dist/prop-types/UIPropTypes.js +0 -7
  172. package/dist/prop-types/UIPropTypes.js.map +1 -1
  173. package/dist/prop-types/index.d.ts +2 -2
  174. package/dist/prop-types/index.d.ts.map +1 -1
  175. package/dist/prop-types/index.js.map +1 -1
  176. package/dist/redux/actionTypes.d.ts +1 -1
  177. package/dist/redux/actionTypes.d.ts.map +1 -1
  178. package/dist/redux/actionTypes.js.map +1 -1
  179. package/dist/redux/actions.d.ts +63 -8
  180. package/dist/redux/actions.d.ts.map +1 -1
  181. package/dist/redux/actions.js +17 -17
  182. package/dist/redux/actions.js.map +1 -1
  183. package/dist/redux/index.js.map +1 -1
  184. package/dist/redux/reducers/index.d.ts +3 -4
  185. package/dist/redux/reducers/index.d.ts.map +1 -1
  186. package/dist/redux/reducers/index.js.map +1 -1
  187. package/dist/redux/reducers/sessionWrapper.d.ts +1 -1
  188. package/dist/redux/reducers/sessionWrapper.d.ts.map +1 -1
  189. package/dist/redux/reducers/sessionWrapper.js.map +1 -1
  190. package/dist/redux/selectors.d.ts +63 -9
  191. package/dist/redux/selectors.d.ts.map +1 -1
  192. package/dist/redux/selectors.js +24 -24
  193. package/dist/redux/selectors.js.map +1 -1
  194. package/package.json +21 -17
@@ -1 +1 @@
1
- {"version":3,"file":"LinkerUtils.js","names":["shortid","LayoutUtils","TableUtils","Log","ChartPanel","IrisGridPanel","DropdownFilterPanel","isLinkableFromPanel","panel","p","getCoordinateForColumn","isLinkablePanel","setFilterMap","unsetFilterValue","log","module","LinkerUtils","getLinkType","start","end","isolatedLinkerPanelId","panelId","debug2","panelComponent","error","isCompatibleComponent","ALLOWED_LINKS","get","includes","columnType","startColumnType","endColumnType","isCompatibleType","getComponentName","findColumn","columns","columnName","find","name","type","cloneLinksForPanel","links","cloneId","clonedLinks","forEach","link","push","id","generate","Map"],"sources":["../../src/linker/LinkerUtils.tsx"],"sourcesContent":["import shortid from 'shortid';\nimport { LayoutUtils, PanelComponent } from '@deephaven/dashboard';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport { ChartPanel, IrisGridPanel, DropdownFilterPanel } from '../panels';\n\nexport type LinkType = 'invalid' | 'filterSource' | 'tableLink';\n\nexport type LinkPoint = {\n panelId: string | string[];\n panelComponent?: string | null;\n columnName: string;\n columnType: string;\n};\n\nexport type Link = {\n start: LinkPoint;\n end?: LinkPoint;\n id: string;\n isReversed?: boolean;\n type: LinkType;\n};\n\nexport type LinkColumn = {\n name: string;\n type: string;\n};\n\nexport type LinkFilterMapValue<T = unknown> = {\n columnType: string;\n text: string;\n value: T;\n};\n\nexport type LinkFilterMap<T = unknown> = Map<string, LinkFilterMapValue<T>>;\n\nexport type LinkDataMapValue = {\n type: string;\n text: string;\n value: string;\n};\n\nexport type LinkDataMap = Record<string, LinkDataMapValue>;\n\n// [x,y] screen coordinates used by the Linker\nexport type LinkerCoordinate = [number, number];\n\nexport type LinkableFromPanel = PanelComponent & {\n getCoordinateForColumn: (name: string) => LinkerCoordinate;\n};\n\nexport type LinkablePanel = LinkableFromPanel & {\n setFilterMap: (filterMap: LinkFilterMap) => void;\n unsetFilterValue: (name: string, type: string) => void;\n};\n\nexport function isLinkableFromPanel(\n panel: PanelComponent\n): panel is LinkableFromPanel {\n const p = panel as LinkableFromPanel;\n return typeof p.getCoordinateForColumn === 'function';\n}\n\nexport function isLinkablePanel(panel: PanelComponent): panel is LinkablePanel {\n const p = panel as LinkablePanel;\n return (\n isLinkableFromPanel(panel) &&\n typeof p.setFilterMap === 'function' &&\n typeof p.unsetFilterValue === 'function'\n );\n}\n\nconst log = Log.module('LinkerUtils');\n\n/**\n * Collection of utility functions for use with the Linker\n */\nclass LinkerUtils {\n static ALLOWED_LINKS = new Map([\n [\n LayoutUtils.getComponentName(IrisGridPanel),\n [\n LayoutUtils.getComponentName(IrisGridPanel),\n LayoutUtils.getComponentName(ChartPanel),\n LayoutUtils.getComponentName(DropdownFilterPanel),\n ],\n ],\n ]);\n\n /**\n * Retrieve the type of link given parameters.\n * @param start The link start\n * @param end The link end\n * @param isolatedLinkerPanelId Whether there's an isolated linker\n * @returns The type of link, or invalid if there's an error\n */\n static getLinkType(\n start?: LinkPoint,\n end?: LinkPoint,\n isolatedLinkerPanelId?: string | string[]\n ): LinkType {\n // Panel compatibility checks:\n // Link ends should point to different non-null panelIds\n // For isolated linker one of the panels should match isolated panel id\n if (\n start?.panelId == null ||\n end?.panelId == null ||\n start.panelId === end.panelId ||\n (isolatedLinkerPanelId != null &&\n isolatedLinkerPanelId !== start.panelId &&\n isolatedLinkerPanelId !== end.panelId)\n ) {\n log.debug2('Incompatible panel ids', start, end, isolatedLinkerPanelId);\n return 'invalid';\n }\n\n if (start.panelComponent == null || end.panelComponent == null) {\n log.error('PanelComponent should not be null', start, end);\n return 'invalid';\n }\n\n const isCompatibleComponent = LinkerUtils.ALLOWED_LINKS.get(\n start.panelComponent\n )?.includes(end.panelComponent);\n\n if (!isCompatibleComponent) {\n log.debug2('Incompatible panel components', start, end);\n return 'invalid';\n }\n\n // Check column type compatibility\n const { columnType: startColumnType } = start;\n const { columnType: endColumnType } = end;\n\n // Null columnType in ending link point allows linking to any type\n const isCompatibleType =\n endColumnType === null ||\n TableUtils.isCompatibleType(startColumnType, endColumnType);\n\n if (!isCompatibleType) {\n log.debug2('Incompatible type', startColumnType, endColumnType);\n return 'invalid';\n }\n\n // If all checks pass, link type is determined by the target panel component\n switch (end.panelComponent) {\n case LayoutUtils.getComponentName(ChartPanel):\n case LayoutUtils.getComponentName(IrisGridPanel):\n return 'tableLink';\n case LayoutUtils.getComponentName(DropdownFilterPanel):\n return 'filterSource';\n default:\n }\n\n log.debug2('Incompatible target panel component', end.panelComponent);\n return 'invalid';\n }\n\n /**\n * Find column matching the link point\n * @param columns Columns to search in\n * @param linkPoint Link point to find column for\n * @param linkPoint.columnName Column name to find\n * @param linkPoint.columnType Column type to find\n * @returns Column matching the link point, undefined if not found\n */\n static findColumn(\n columns: LinkColumn[],\n { columnName, columnType }: LinkPoint\n ): LinkColumn | undefined {\n return columns.find(\n ({ name, type }) => name === columnName && type === columnType\n );\n }\n\n /**\n * Clone links for a given panel id\n * @param links Original links array\n * @param panelId Original panel id\n * @param cloneId Cloned panel id\n * @returns Cloned links array or empty array if no new links added\n */\n static cloneLinksForPanel(\n links: Link[],\n panelId: string | string[],\n cloneId: string\n ): Link[] {\n const clonedLinks: Link[] = [];\n links.forEach(link => {\n if (link.start.panelId === panelId && link.type !== 'filterSource') {\n clonedLinks.push({\n ...link,\n id: shortid.generate(),\n start: { ...link.start, panelId: cloneId },\n });\n } else if (link.end?.panelId === panelId) {\n clonedLinks.push({\n ...link,\n id: shortid.generate(),\n end: { ...link.end, panelId: cloneId },\n });\n }\n });\n return clonedLinks;\n }\n}\n\nexport default LinkerUtils;\n"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/linker/LinkerUtils.tsx"],"names":["shortid","LayoutUtils","TableUtils","Log","ChartPanel","IrisGridPanel","DropdownFilterPanel","isLinkableFromPanel","panel","p","getCoordinateForColumn","isLinkablePanel","setFilterMap","unsetFilterValue","log","module","LinkerUtils","getLinkType","start","end","isolatedLinkerPanelId","panelId","debug2","panelComponent","error","isCompatibleComponent","ALLOWED_LINKS","get","includes","columnType","startColumnType","endColumnType","isCompatibleType","getComponentName","findColumn","columns","columnName","find","name","type","cloneLinksForPanel","links","cloneId","clonedLinks","forEach","link","push","id","generate","Map"],"mappings":"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","sourcesContent":["import shortid from 'shortid';\nimport { LayoutUtils, PanelComponent } from '@deephaven/dashboard';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport { ChartPanel, IrisGridPanel, DropdownFilterPanel } from '../panels';\n\nexport type LinkType = 'invalid' | 'filterSource' | 'tableLink';\n\nexport type LinkPoint = {\n panelId: string | string[];\n panelComponent?: string | null;\n columnName: string;\n columnType: string | null;\n};\n\nexport type Link = {\n start: LinkPoint;\n end?: LinkPoint;\n id: string;\n isReversed?: boolean;\n type: LinkType;\n};\n\nexport type LinkColumn = {\n name: string;\n type: string | null;\n};\n\nexport type LinkFilterMapValue<T = unknown> = {\n columnType: string;\n text: string;\n value: T;\n};\n\nexport type LinkFilterMap<T = unknown> = Map<string, LinkFilterMapValue<T>>;\n\nexport type LinkDataMapValue = {\n type: string;\n text: string;\n value: string;\n};\n\nexport type LinkDataMap = Record<string, LinkDataMapValue>;\n\n// [x,y] screen coordinates used by the Linker\nexport type LinkerCoordinate = [number, number];\n\nexport type LinkableFromPanel = PanelComponent & {\n getCoordinateForColumn: (name: string) => LinkerCoordinate;\n};\n\nexport type LinkablePanel = LinkableFromPanel & {\n setFilterMap: (filterMap: LinkFilterMap) => void;\n unsetFilterValue: (name: string, type: string | null) => void;\n};\n\nexport function isLinkableFromPanel(\n panel: PanelComponent\n): panel is LinkableFromPanel {\n const p = panel as LinkableFromPanel;\n return typeof p.getCoordinateForColumn === 'function';\n}\n\nexport function isLinkablePanel(panel: PanelComponent): panel is LinkablePanel {\n const p = panel as LinkablePanel;\n return (\n isLinkableFromPanel(panel) &&\n typeof p.setFilterMap === 'function' &&\n typeof p.unsetFilterValue === 'function'\n );\n}\n\nconst log = Log.module('LinkerUtils');\n\n/**\n * Collection of utility functions for use with the Linker\n */\nclass LinkerUtils {\n static ALLOWED_LINKS = new Map([\n [\n LayoutUtils.getComponentName(IrisGridPanel),\n [\n LayoutUtils.getComponentName(IrisGridPanel),\n LayoutUtils.getComponentName(ChartPanel),\n LayoutUtils.getComponentName(DropdownFilterPanel),\n ],\n ],\n ]);\n\n /**\n * Retrieve the type of link given parameters.\n * @param start The link start\n * @param end The link end\n * @param isolatedLinkerPanelId Whether there's an isolated linker\n * @returns The type of link, or invalid if there's an error\n */\n static getLinkType(\n start?: LinkPoint,\n end?: LinkPoint,\n isolatedLinkerPanelId?: string | string[]\n ): LinkType {\n // Panel compatibility checks:\n // Link ends should point to different non-null panelIds\n // For isolated linker one of the panels should match isolated panel id\n if (\n start?.panelId == null ||\n end?.panelId == null ||\n start.panelId === end.panelId ||\n (isolatedLinkerPanelId != null &&\n isolatedLinkerPanelId !== start.panelId &&\n isolatedLinkerPanelId !== end.panelId)\n ) {\n log.debug2('Incompatible panel ids', start, end, isolatedLinkerPanelId);\n return 'invalid';\n }\n\n if (start.panelComponent == null || end.panelComponent == null) {\n log.error('PanelComponent should not be null', start, end);\n return 'invalid';\n }\n\n const isCompatibleComponent = LinkerUtils.ALLOWED_LINKS.get(\n start.panelComponent\n )?.includes(end.panelComponent);\n\n if (!isCompatibleComponent) {\n log.debug2('Incompatible panel components', start, end);\n return 'invalid';\n }\n\n // Check column type compatibility\n const { columnType: startColumnType } = start;\n const { columnType: endColumnType } = end;\n\n // Null columnType in ending link point allows linking to any type\n const isCompatibleType =\n endColumnType === null ||\n TableUtils.isCompatibleType(startColumnType, endColumnType);\n\n if (!isCompatibleType) {\n log.debug2('Incompatible type', startColumnType, endColumnType);\n return 'invalid';\n }\n\n // If all checks pass, link type is determined by the target panel component\n switch (end.panelComponent) {\n case LayoutUtils.getComponentName(ChartPanel):\n case LayoutUtils.getComponentName(IrisGridPanel):\n return 'tableLink';\n case LayoutUtils.getComponentName(DropdownFilterPanel):\n return 'filterSource';\n default:\n }\n\n log.debug2('Incompatible target panel component', end.panelComponent);\n return 'invalid';\n }\n\n /**\n * Find column matching the link point\n * @param columns Columns to search in\n * @param linkPoint Link point to find column for\n * @param linkPoint.columnName Column name to find\n * @param linkPoint.columnType Column type to find\n * @returns Column matching the link point, undefined if not found\n */\n static findColumn(\n columns: LinkColumn[],\n { columnName, columnType }: LinkPoint\n ): LinkColumn | undefined {\n return columns.find(\n ({ name, type }) => name === columnName && type === columnType\n );\n }\n\n /**\n * Clone links for a given panel id\n * @param links Original links array\n * @param panelId Original panel id\n * @param cloneId Cloned panel id\n * @returns Cloned links array or empty array if no new links added\n */\n static cloneLinksForPanel(\n links: Link[],\n panelId: string | string[],\n cloneId: string\n ): Link[] {\n const clonedLinks: Link[] = [];\n links.forEach(link => {\n if (link.start.panelId === panelId && link.type !== 'filterSource') {\n clonedLinks.push({\n ...link,\n id: shortid.generate(),\n start: { ...link.start, panelId: cloneId },\n });\n } else if (link.end?.panelId === panelId) {\n clonedLinks.push({\n ...link,\n id: shortid.generate(),\n end: { ...link.end, panelId: cloneId },\n });\n }\n });\n return clonedLinks;\n }\n}\n\nexport default LinkerUtils;\n"],"file":"LinkerUtils.js"}
@@ -1,4 +1,4 @@
1
- declare var _default: Readonly<{
1
+ declare const _default: Readonly<{
2
2
  DEFAULT: string;
3
3
  LINKER: string;
4
4
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"ToolType.d.ts","sourceRoot":"","sources":["../../src/linker/ToolType.js"],"names":[],"mappings":""}
1
+ {"version":3,"file":"ToolType.d.ts","sourceRoot":"","sources":["../../src/linker/ToolType.ts"],"names":[],"mappings":";;;;AAAA,wBAGG"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolType.js","names":["Object","freeze","DEFAULT","LINKER"],"sources":["../../src/linker/ToolType.js"],"sourcesContent":["export default Object.freeze({\n DEFAULT: 'DEFAULT',\n LINKER: 'LINKER',\n});\n"],"mappings":"AAAA,eAAeA,MAAM,CAACC,MAAP,CAAc;EAC3BC,OAAO,EAAE,SADkB;EAE3BC,MAAM,EAAE;AAFmB,CAAd,CAAf"}
1
+ {"version":3,"sources":["../../src/linker/ToolType.ts"],"names":["Object","freeze","DEFAULT","LINKER"],"mappings":"AAAA,eAAeA,MAAM,CAACC,MAAP,CAAc;AAC3BC,EAAAA,OAAO,EAAE,SADkB;AAE3BC,EAAAA,MAAM,EAAE;AAFmB,CAAd,CAAf","sourcesContent":["export default Object.freeze({\n DEFAULT: 'DEFAULT',\n LINKER: 'LINKER',\n});\n"],"file":"ToolType.js"}
@@ -1,28 +1,24 @@
1
- export default ChartColumnSelectorOverlay;
2
- declare function ChartColumnSelectorOverlay({ columns, onColumnSelected, onMouseEnter, onMouseLeave, }: {
3
- columns: any;
4
- onColumnSelected: any;
5
- onMouseEnter: any;
6
- onMouseLeave: any;
7
- }): JSX.Element;
8
- declare namespace ChartColumnSelectorOverlay {
9
- function makeButtonClassName(columnName: any): string;
10
- namespace propTypes {
11
- const columns: PropTypes.Validator<(PropTypes.InferProps<{
12
- name: PropTypes.Validator<string>;
13
- isValid: PropTypes.Validator<boolean>;
14
- isActive: PropTypes.Validator<boolean>;
15
- }> | null | undefined)[]>;
16
- const onColumnSelected: PropTypes.Validator<(...args: any[]) => any>;
17
- const onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
18
- const onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
19
- }
20
- namespace defaultProps {
21
- export function onMouseEnter_1(): void;
22
- export { onMouseEnter_1 as onMouseEnter };
23
- export function onMouseLeave_1(): void;
24
- export { onMouseLeave_1 as onMouseLeave };
25
- }
1
+ import { MouseEventHandler, ReactElement } from 'react';
2
+ import './ChartColumnSelectorOverlay.scss';
3
+ export interface SelectorColumn {
4
+ name: string;
5
+ type: string;
6
+ isValid: boolean;
7
+ isActive: boolean;
8
+ }
9
+ interface ChartColumnSelectorOverlayProps {
10
+ columns: SelectorColumn[];
11
+ onColumnSelected: (name: string) => void;
12
+ onMouseEnter?: (column: SelectorColumn) => void;
13
+ onMouseLeave?: MouseEventHandler<HTMLButtonElement>;
26
14
  }
27
- import PropTypes from "prop-types";
15
+ declare const ChartColumnSelectorOverlay: {
16
+ ({ columns, onColumnSelected, onMouseEnter, onMouseLeave, }: ChartColumnSelectorOverlayProps): ReactElement;
17
+ makeButtonClassName(columnName: string): string;
18
+ defaultProps: {
19
+ onMouseEnter: () => void;
20
+ onMouseLeave: () => void;
21
+ };
22
+ };
23
+ export default ChartColumnSelectorOverlay;
28
24
  //# sourceMappingURL=ChartColumnSelectorOverlay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartColumnSelectorOverlay.d.ts","sourceRoot":"","sources":["../../src/panels/ChartColumnSelectorOverlay.jsx"],"names":[],"mappings":";AAMA;;;;;gBAkCC;;IAED,sDAC2C;;;;;;;;;;;;QAgB3B,uCAAQ;;QACR,uCAAQ"}
1
+ {"version":3,"file":"ChartColumnSelectorOverlay.d.ts","sourceRoot":"","sources":["../../src/panels/ChartColumnSelectorOverlay.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG/D,OAAO,mCAAmC,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,+BAA+B;IACvC,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAChD,YAAY,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;CACrD;AAED,QAAA,MAAM,0BAA0B;iEAK7B,+BAA+B,GAAG,YAAY;oCAiCa,MAAM;;4BAIhD,IAAI;4BACJ,IAAI;;CAPvB,CAAC;AAUF,eAAe,0BAA0B,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
- import PropTypes from 'prop-types';
3
2
  import classNames from 'classnames';
4
3
  import { SocketedButton } from '@deephaven/components';
5
4
  import "./ChartColumnSelectorOverlay.css";
@@ -23,7 +22,9 @@ var ChartColumnSelectorOverlay = _ref => {
23
22
  key: column.name,
24
23
  className: classNames('btn-chart-column-selector', ChartColumnSelectorOverlay.makeButtonClassName(column.name)),
25
24
  onClick: () => onColumnSelected(column.name),
26
- onMouseEnter: () => _onMouseEnter(column),
25
+ onMouseEnter: () => {
26
+ if (_onMouseEnter) _onMouseEnter(column);
27
+ },
27
28
  onMouseLeave: onMouseLeave,
28
29
  disabled: !column.isValid,
29
30
  isLinked: column.isActive
@@ -32,19 +33,9 @@ var ChartColumnSelectorOverlay = _ref => {
32
33
 
33
34
  ChartColumnSelectorOverlay.makeButtonClassName = columnName => "btn-chart-column-selector-".concat(columnName);
34
35
 
35
- ChartColumnSelectorOverlay.propTypes = {
36
- columns: PropTypes.arrayOf(PropTypes.shape({
37
- name: PropTypes.string.isRequired,
38
- isValid: PropTypes.bool.isRequired,
39
- isActive: PropTypes.bool.isRequired
40
- })).isRequired,
41
- onColumnSelected: PropTypes.func.isRequired,
42
- onMouseEnter: PropTypes.func,
43
- onMouseLeave: PropTypes.func
44
- };
45
36
  ChartColumnSelectorOverlay.defaultProps = {
46
- onMouseEnter: () => {},
47
- onMouseLeave: () => {}
37
+ onMouseEnter: () => undefined,
38
+ onMouseLeave: () => undefined
48
39
  };
49
40
  export default ChartColumnSelectorOverlay;
50
41
  //# sourceMappingURL=ChartColumnSelectorOverlay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartColumnSelectorOverlay.js","names":["React","PropTypes","classNames","SocketedButton","ChartColumnSelectorOverlay","columns","onColumnSelected","onMouseEnter","onMouseLeave","map","column","name","makeButtonClassName","isValid","isActive","columnName","propTypes","arrayOf","shape","string","isRequired","bool","func","defaultProps"],"sources":["../../src/panels/ChartColumnSelectorOverlay.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { SocketedButton } from '@deephaven/components';\nimport './ChartColumnSelectorOverlay.scss';\n\nconst ChartColumnSelectorOverlay = ({\n columns,\n onColumnSelected,\n onMouseEnter,\n onMouseLeave,\n}) => (\n <div className=\"chart-panel-overlay chart-column-selector-overlay\">\n <div className={classNames('chart-panel-overlay-content')}>\n <>\n <div className=\"info-message\">\n This plot requires a filter control to be added to the layout or a\n table link to be created on the following columns:\n </div>\n <div className=\"waiting-column-select-list\">\n {columns.map(column => (\n <SocketedButton\n key={column.name}\n className={classNames(\n 'btn-chart-column-selector',\n ChartColumnSelectorOverlay.makeButtonClassName(column.name)\n )}\n onClick={() => onColumnSelected(column.name)}\n onMouseEnter={() => onMouseEnter(column)}\n onMouseLeave={onMouseLeave}\n disabled={!column.isValid}\n isLinked={column.isActive}\n >\n {column.name}\n </SocketedButton>\n ))}\n </div>\n </>\n </div>\n </div>\n);\n\nChartColumnSelectorOverlay.makeButtonClassName = columnName =>\n `btn-chart-column-selector-${columnName}`;\n\nChartColumnSelectorOverlay.propTypes = {\n columns: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n isValid: PropTypes.bool.isRequired,\n isActive: PropTypes.bool.isRequired,\n })\n ).isRequired,\n onColumnSelected: PropTypes.func.isRequired,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n};\n\nChartColumnSelectorOverlay.defaultProps = {\n onMouseEnter: () => {},\n onMouseLeave: () => {},\n};\n\nexport default ChartColumnSelectorOverlay;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,cAAT,QAA+B,uBAA/B;;;AAGA,IAAMC,0BAA0B,GAAG;EAAA,IAAC;IAClCC,OADkC;IAElCC,gBAFkC;IAGlCC,YAAY,EAAZA,aAHkC;IAIlCC;EAJkC,CAAD;EAAA,oBAMjC;IAAK,SAAS,EAAC;EAAf,gBACE;IAAK,SAAS,EAAEN,UAAU,CAAC,6BAAD;EAA1B,gBACE,uDACE;IAAK,SAAS,EAAC;EAAf,2HADF,eAKE;IAAK,SAAS,EAAC;EAAf,GACGG,OAAO,CAACI,GAAR,CAAYC,MAAM,iBACjB,oBAAC,cAAD;IACE,GAAG,EAAEA,MAAM,CAACC,IADd;IAEE,SAAS,EAAET,UAAU,CACnB,2BADmB,EAEnBE,0BAA0B,CAACQ,mBAA3B,CAA+CF,MAAM,CAACC,IAAtD,CAFmB,CAFvB;IAME,OAAO,EAAE,MAAML,gBAAgB,CAACI,MAAM,CAACC,IAAR,CANjC;IAOE,YAAY,EAAE,MAAMJ,aAAY,CAACG,MAAD,CAPlC;IAQE,YAAY,EAAEF,YARhB;IASE,QAAQ,EAAE,CAACE,MAAM,CAACG,OATpB;IAUE,QAAQ,EAAEH,MAAM,CAACI;EAVnB,GAYGJ,MAAM,CAACC,IAZV,CADD,CADH,CALF,CADF,CADF,CANiC;AAAA,CAAnC;;AAoCAP,0BAA0B,CAACQ,mBAA3B,GAAiDG,UAAU,wCAC5BA,UAD4B,CAA3D;;AAGAX,0BAA0B,CAACY,SAA3B,GAAuC;EACrCX,OAAO,EAAEJ,SAAS,CAACgB,OAAV,CACPhB,SAAS,CAACiB,KAAV,CAAgB;IACdP,IAAI,EAAEV,SAAS,CAACkB,MAAV,CAAiBC,UADT;IAEdP,OAAO,EAAEZ,SAAS,CAACoB,IAAV,CAAeD,UAFV;IAGdN,QAAQ,EAAEb,SAAS,CAACoB,IAAV,CAAeD;EAHX,CAAhB,CADO,EAMPA,UAPmC;EAQrCd,gBAAgB,EAAEL,SAAS,CAACqB,IAAV,CAAeF,UARI;EASrCb,YAAY,EAAEN,SAAS,CAACqB,IATa;EAUrCd,YAAY,EAAEP,SAAS,CAACqB;AAVa,CAAvC;AAaAlB,0BAA0B,CAACmB,YAA3B,GAA0C;EACxChB,YAAY,EAAE,MAAM,CAAE,CADkB;EAExCC,YAAY,EAAE,MAAM,CAAE;AAFkB,CAA1C;AAKA,eAAeJ,0BAAf"}
1
+ {"version":3,"sources":["../../src/panels/ChartColumnSelectorOverlay.tsx"],"names":["React","classNames","SocketedButton","ChartColumnSelectorOverlay","columns","onColumnSelected","onMouseEnter","onMouseLeave","map","column","name","makeButtonClassName","isValid","isActive","columnName","defaultProps","undefined"],"mappings":"AAAA,OAAOA,KAAP,MAAuD,OAAvD;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,cAAT,QAA+B,uBAA/B;;;AAiBA,IAAMC,0BAA0B,GAAG;AAAA,MAAC;AAClCC,IAAAA,OADkC;AAElCC,IAAAA,gBAFkC;AAGlCC,IAAAA,YAAY,EAAZA,aAHkC;AAIlCC,IAAAA;AAJkC,GAAD;AAAA,sBAMjC;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAEN,UAAU,CAAC,6BAAD;AAA1B,kBACE,uDACE;AAAK,IAAA,SAAS,EAAC;AAAf,6HADF,eAKE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGG,OAAO,CAACI,GAAR,CAAYC,MAAM,iBACjB,oBAAC,cAAD;AACE,IAAA,GAAG,EAAEA,MAAM,CAACC,IADd;AAEE,IAAA,SAAS,EAAET,UAAU,CACnB,2BADmB,EAEnBE,0BAA0B,CAACQ,mBAA3B,CAA+CF,MAAM,CAACC,IAAtD,CAFmB,CAFvB;AAME,IAAA,OAAO,EAAE,MAAML,gBAAgB,CAACI,MAAM,CAACC,IAAR,CANjC;AAOE,IAAA,YAAY,EAAE,MAAM;AAClB,UAAIJ,aAAJ,EAAkBA,aAAY,CAACG,MAAD,CAAZ;AACnB,KATH;AAUE,IAAA,YAAY,EAAEF,YAVhB;AAWE,IAAA,QAAQ,EAAE,CAACE,MAAM,CAACG,OAXpB;AAYE,IAAA,QAAQ,EAAEH,MAAM,CAACI;AAZnB,KAcGJ,MAAM,CAACC,IAdV,CADD,CADH,CALF,CADF,CADF,CANiC;AAAA,CAAnC;;AAsCAP,0BAA0B,CAACQ,mBAA3B,GAAkDG,UAAD,wCAClBA,UADkB,CAAjD;;AAGAX,0BAA0B,CAACY,YAA3B,GAA0C;AACxCT,EAAAA,YAAY,EAAE,MAAYU,SADc;AAExCT,EAAAA,YAAY,EAAE,MAAYS;AAFc,CAA1C;AAKA,eAAeb,0BAAf","sourcesContent":["import React, { MouseEventHandler, ReactElement } from 'react';\nimport classNames from 'classnames';\nimport { SocketedButton } from '@deephaven/components';\nimport './ChartColumnSelectorOverlay.scss';\n\nexport interface SelectorColumn {\n name: string;\n type: string;\n isValid: boolean;\n isActive: boolean;\n}\n\ninterface ChartColumnSelectorOverlayProps {\n columns: SelectorColumn[];\n onColumnSelected: (name: string) => void;\n onMouseEnter?: (column: SelectorColumn) => void;\n onMouseLeave?: MouseEventHandler<HTMLButtonElement>;\n}\n\nconst ChartColumnSelectorOverlay = ({\n columns,\n onColumnSelected,\n onMouseEnter,\n onMouseLeave,\n}: ChartColumnSelectorOverlayProps): ReactElement => (\n <div className=\"chart-panel-overlay chart-column-selector-overlay\">\n <div className={classNames('chart-panel-overlay-content')}>\n <>\n <div className=\"info-message\">\n This plot requires a filter control to be added to the layout or a\n table link to be created on the following columns:\n </div>\n <div className=\"waiting-column-select-list\">\n {columns.map(column => (\n <SocketedButton\n key={column.name}\n className={classNames(\n 'btn-chart-column-selector',\n ChartColumnSelectorOverlay.makeButtonClassName(column.name)\n )}\n onClick={() => onColumnSelected(column.name)}\n onMouseEnter={() => {\n if (onMouseEnter) onMouseEnter(column);\n }}\n onMouseLeave={onMouseLeave}\n disabled={!column.isValid}\n isLinked={column.isActive}\n >\n {column.name}\n </SocketedButton>\n ))}\n </div>\n </>\n </div>\n </div>\n);\n\nChartColumnSelectorOverlay.makeButtonClassName = (columnName: string) =>\n `btn-chart-column-selector-${columnName}`;\n\nChartColumnSelectorOverlay.defaultProps = {\n onMouseEnter: (): void => undefined,\n onMouseLeave: (): void => undefined,\n};\n\nexport default ChartColumnSelectorOverlay;\n"],"file":"ChartColumnSelectorOverlay.js"}
@@ -1,23 +1,29 @@
1
- export default ChartFilterOverlay;
2
- declare function ChartFilterOverlay({ columnMap, inputFilterMap, linkedColumnMap, onAdd, onOpenLinker, waitingFilterMap, waitingInputMap, }: {
3
- columnMap: any;
4
- inputFilterMap: any;
5
- linkedColumnMap: any;
6
- onAdd: any;
7
- onOpenLinker: any;
8
- waitingFilterMap: any;
9
- waitingInputMap: any;
10
- }): JSX.Element;
11
- declare namespace ChartFilterOverlay {
12
- namespace propTypes {
13
- const columnMap: PropTypes.Validator<Map<unknown, unknown>>;
14
- const inputFilterMap: PropTypes.Validator<Map<unknown, unknown>>;
15
- const linkedColumnMap: PropTypes.Validator<Map<unknown, unknown>>;
16
- const onAdd: PropTypes.Validator<(...args: any[]) => any>;
17
- const onOpenLinker: PropTypes.Validator<(...args: any[]) => any>;
18
- const waitingFilterMap: PropTypes.Validator<Map<unknown, unknown>>;
19
- const waitingInputMap: PropTypes.Validator<Map<unknown, unknown>>;
20
- }
1
+ import { ReactElement } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { ColumnName, InputFilter } from '@deephaven/iris-grid';
4
+ import { Column } from '@deephaven/jsapi-shim';
5
+ import './ChartFilterOverlay.scss';
6
+ export declare type ColumnMap = Map<ColumnName, Column>;
7
+ interface ChartFilterOverlayProps {
8
+ columnMap: ColumnMap;
9
+ inputFilterMap: Map<ColumnName, InputFilter>;
10
+ linkedColumnMap: Map<string, unknown>;
11
+ onAdd: (columns: InputFilter[]) => void;
12
+ onOpenLinker: () => void;
13
+ waitingFilterMap: Map<string, InputFilter>;
14
+ waitingInputMap: Map<ColumnName, unknown>;
21
15
  }
22
- import PropTypes from "prop-types";
16
+ declare const ChartFilterOverlay: {
17
+ ({ columnMap, inputFilterMap, linkedColumnMap, onAdd, onOpenLinker, waitingFilterMap, waitingInputMap, }: ChartFilterOverlayProps): ReactElement;
18
+ propTypes: {
19
+ columnMap: PropTypes.Validator<Map<unknown, unknown>>;
20
+ inputFilterMap: PropTypes.Validator<Map<unknown, unknown>>;
21
+ linkedColumnMap: PropTypes.Validator<Map<unknown, unknown>>;
22
+ onAdd: PropTypes.Validator<(...args: any[]) => any>;
23
+ onOpenLinker: PropTypes.Validator<(...args: any[]) => any>;
24
+ waitingFilterMap: PropTypes.Validator<Map<unknown, unknown>>;
25
+ waitingInputMap: PropTypes.Validator<Map<unknown, unknown>>;
26
+ };
27
+ };
28
+ export default ChartFilterOverlay;
23
29
  //# sourceMappingURL=ChartFilterOverlay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartFilterOverlay.d.ts","sourceRoot":"","sources":["../../src/panels/ChartFilterOverlay.jsx"],"names":[],"mappings":";AASA;;;;;;;;gBAuGC"}
1
+ {"version":3,"file":"ChartFilterOverlay.d.ts","sourceRoot":"","sources":["../../src/panels/ChartFilterOverlay.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAc,YAAY,EAAwB,MAAM,OAAO,CAAC;AAC9E,OAAO,SAAS,MAAM,YAAY,CAAC;AAMnC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,2BAA2B,CAAC;AAEnC,oBAAY,SAAS,GAAG,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAEhD,UAAU,uBAAuB;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,cAAc,EAAE,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC7C,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,KAAK,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IACxC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3C,eAAe,EAAE,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,QAAA,MAAM,kBAAkB;8GAQrB,uBAAuB,GAAG,YAAY;;;;;;;;;;CA+FxC,CAAC;AAYF,eAAe,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChartFilterOverlay.js","names":["React","useCallback","useMemo","PropTypes","classNames","FontAwesomeIcon","ButtonOld","vsPass","vsWarning","TextUtils","ChartFilterOverlay","columnMap","inputFilterMap","linkedColumnMap","onAdd","onOpenLinker","waitingFilterMap","waitingInputMap","inputMessage","waitingColumns","Array","from","keys","needsInputFilterValue","find","columnName","get","needsLinkValue","columnsText","join","map","item","columns","values","handleAddClick","event","stopPropagation","preventDefault","handleOpenLinker","isWaitingFilters","size","isWaitingInput","column","isColumnWaiting","has","name","icon","propTypes","instanceOf","Map","isRequired","func"],"sources":["../../src/panels/ChartFilterOverlay.jsx"],"sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { ButtonOld } from '@deephaven/components';\nimport { vsPass, vsWarning } from '@deephaven/icons';\nimport { TextUtils } from '@deephaven/utils';\nimport './ChartFilterOverlay.scss';\n\nconst ChartFilterOverlay = ({\n columnMap,\n inputFilterMap,\n linkedColumnMap,\n onAdd,\n onOpenLinker,\n waitingFilterMap,\n waitingInputMap,\n}) => {\n const inputMessage = useMemo(() => {\n const waitingColumns = Array.from(waitingInputMap.keys());\n const needsInputFilterValue = waitingColumns.find(\n columnName => inputFilterMap.get(columnName) != null\n );\n const needsLinkValue = waitingColumns.find(\n columnName => linkedColumnMap.get(columnName) != null\n );\n const columnsText = TextUtils.join(waitingColumns.map(item => `\"${item}\"`));\n if (needsInputFilterValue && needsLinkValue) {\n return `Use a filter control or linked table to set a value for ${columnsText}`;\n }\n if (needsInputFilterValue) {\n return `Set a filter control value for ${columnsText}`;\n }\n return `Double click a row in a linked table to set a value for ${columnsText}`;\n }, [inputFilterMap, linkedColumnMap, waitingInputMap]);\n\n const columns = useMemo(() => Array.from(columnMap.values()), [columnMap]);\n\n const handleAddClick = useCallback(\n event => {\n event.stopPropagation();\n event.preventDefault();\n\n onAdd(Array.from(waitingFilterMap.values()));\n },\n [onAdd, waitingFilterMap]\n );\n\n const handleOpenLinker = useCallback(\n event => {\n event.stopPropagation();\n event.preventDefault();\n\n onOpenLinker();\n },\n [onOpenLinker]\n );\n\n const isWaitingFilters = waitingFilterMap.size > 0;\n const isWaitingInput = !isWaitingFilters && waitingInputMap.size > 0;\n\n return (\n <div className=\"chart-panel-overlay chart-filter-overlay\">\n <div\n className={classNames(\n 'chart-panel-overlay-content chart-filter-overlay-content',\n { 'chart-filter-waiting-filter': isWaitingFilters },\n { 'chart-filter-waiting-input': isWaitingInput }\n )}\n >\n {isWaitingFilters && (\n <>\n <div className=\"info-message\">\n This plot requires a filter control to be added to the layout or a\n table link to be created on the following columns:\n </div>\n <div className=\"waiting-filter-list\">\n {columns.map(column => {\n const isColumnWaiting = waitingFilterMap.has(column.name);\n const icon = isColumnWaiting ? vsWarning : vsPass;\n return (\n <div\n key={column.name}\n className={classNames('waiting-filter-item', {\n 'is-invalid': isColumnWaiting,\n })}\n >\n <FontAwesomeIcon icon={icon} />\n {column.name}\n </div>\n );\n })}\n </div>\n <div>\n <ButtonOld onClick={handleAddClick} className=\"btn-primary\">\n Add Input Filters\n </ButtonOld>\n <ButtonOld onClick={handleOpenLinker} className=\"btn-primary\">\n Open Linker Tool\n </ButtonOld>\n </div>\n </>\n )}\n {isWaitingInput && (\n <>\n <div className=\"info-message\">Waiting for User Input</div>\n <div className=\"\">{inputMessage}</div>\n </>\n )}\n </div>\n </div>\n );\n};\n\nChartFilterOverlay.propTypes = {\n columnMap: PropTypes.instanceOf(Map).isRequired,\n inputFilterMap: PropTypes.instanceOf(Map).isRequired,\n linkedColumnMap: PropTypes.instanceOf(Map).isRequired,\n onAdd: PropTypes.func.isRequired,\n onOpenLinker: PropTypes.func.isRequired,\n waitingFilterMap: PropTypes.instanceOf(Map).isRequired,\n waitingInputMap: PropTypes.instanceOf(Map).isRequired,\n};\n\nexport default ChartFilterOverlay;\n"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/panels/ChartFilterOverlay.tsx"],"names":["React","useCallback","useMemo","PropTypes","classNames","FontAwesomeIcon","ButtonOld","vsPass","vsWarning","TextUtils","ChartFilterOverlay","columnMap","inputFilterMap","linkedColumnMap","onAdd","onOpenLinker","waitingFilterMap","waitingInputMap","inputMessage","waitingColumns","Array","from","keys","needsInputFilterValue","find","columnName","get","needsLinkValue","columnsText","join","map","item","columns","values","handleAddClick","event","stopPropagation","preventDefault","handleOpenLinker","isWaitingFilters","size","isWaitingInput","column","isColumnWaiting","has","name","icon","propTypes","instanceOf","Map","isRequired","func"],"mappings":"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","sourcesContent":["import React, { MouseEvent, ReactElement, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { ButtonOld } from '@deephaven/components';\nimport { vsPass, vsWarning } from '@deephaven/icons';\nimport { TextUtils } from '@deephaven/utils';\nimport { ColumnName, InputFilter } from '@deephaven/iris-grid';\nimport { Column } from '@deephaven/jsapi-shim';\nimport './ChartFilterOverlay.scss';\n\nexport type ColumnMap = Map<ColumnName, Column>;\n\ninterface ChartFilterOverlayProps {\n columnMap: ColumnMap;\n inputFilterMap: Map<ColumnName, InputFilter>;\n linkedColumnMap: Map<string, unknown>;\n onAdd: (columns: InputFilter[]) => void;\n onOpenLinker: () => void;\n waitingFilterMap: Map<string, InputFilter>;\n waitingInputMap: Map<ColumnName, unknown>;\n}\n\nconst ChartFilterOverlay = ({\n columnMap,\n inputFilterMap,\n linkedColumnMap,\n onAdd,\n onOpenLinker,\n waitingFilterMap,\n waitingInputMap,\n}: ChartFilterOverlayProps): ReactElement => {\n const inputMessage = useMemo(() => {\n const waitingColumns = Array.from(waitingInputMap.keys());\n const needsInputFilterValue = waitingColumns.find(\n (columnName: ColumnName) => inputFilterMap.get(columnName) != null\n );\n const needsLinkValue = waitingColumns.find(\n columnName => linkedColumnMap.get(columnName) != null\n );\n const columnsText = TextUtils.join(waitingColumns.map(item => `\"${item}\"`));\n if (needsInputFilterValue && needsLinkValue) {\n return `Use a filter control or linked table to set a value for ${columnsText}`;\n }\n if (needsInputFilterValue) {\n return `Set a filter control value for ${columnsText}`;\n }\n return `Double click a row in a linked table to set a value for ${columnsText}`;\n }, [inputFilterMap, linkedColumnMap, waitingInputMap]);\n\n const columns = useMemo(() => Array.from(columnMap.values()), [columnMap]);\n\n const handleAddClick = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n event.preventDefault();\n\n onAdd(Array.from(waitingFilterMap.values()));\n },\n [onAdd, waitingFilterMap]\n );\n\n const handleOpenLinker = useCallback(\n event => {\n event.stopPropagation();\n event.preventDefault();\n\n onOpenLinker();\n },\n [onOpenLinker]\n );\n\n const isWaitingFilters = waitingFilterMap.size > 0;\n const isWaitingInput = !isWaitingFilters && waitingInputMap.size > 0;\n\n return (\n <div className=\"chart-panel-overlay chart-filter-overlay\">\n <div\n className={classNames(\n 'chart-panel-overlay-content chart-filter-overlay-content',\n { 'chart-filter-waiting-filter': isWaitingFilters },\n { 'chart-filter-waiting-input': isWaitingInput }\n )}\n >\n {isWaitingFilters && (\n <>\n <div className=\"info-message\">\n This plot requires a filter control to be added to the layout or a\n table link to be created on the following columns:\n </div>\n <div className=\"waiting-filter-list\">\n {columns.map(column => {\n const isColumnWaiting = waitingFilterMap.has(column.name);\n const icon = isColumnWaiting ? vsWarning : vsPass;\n return (\n <div\n key={column.name}\n className={classNames('waiting-filter-item', {\n 'is-invalid': isColumnWaiting,\n })}\n >\n <FontAwesomeIcon icon={icon} />\n {column.name}\n </div>\n );\n })}\n </div>\n <div>\n <ButtonOld onClick={handleAddClick} className=\"btn-primary\">\n Add Input Filters\n </ButtonOld>\n <ButtonOld onClick={handleOpenLinker} className=\"btn-primary\">\n Open Linker Tool\n </ButtonOld>\n </div>\n </>\n )}\n {isWaitingInput && (\n <>\n <div className=\"info-message\">Waiting for User Input</div>\n <div className=\"\">{inputMessage}</div>\n </>\n )}\n </div>\n </div>\n );\n};\n\nChartFilterOverlay.propTypes = {\n columnMap: PropTypes.instanceOf(Map).isRequired,\n inputFilterMap: PropTypes.instanceOf(Map).isRequired,\n linkedColumnMap: PropTypes.instanceOf(Map).isRequired,\n onAdd: PropTypes.func.isRequired,\n onOpenLinker: PropTypes.func.isRequired,\n waitingFilterMap: PropTypes.instanceOf(Map).isRequired,\n waitingInputMap: PropTypes.instanceOf(Map).isRequired,\n};\n\nexport default ChartFilterOverlay;\n"],"file":"ChartFilterOverlay.js"}
@@ -1,67 +1,156 @@
1
- export class ChartPanel extends React.Component<any, any, any> {
1
+ import { Component, ReactElement, RefObject } from 'react';
2
+ import { Chart, ChartModel } from '@deephaven/chart';
3
+ import { PanelComponent } from '@deephaven/dashboard';
4
+ import { InputFilter, ColumnName } from '@deephaven/iris-grid';
5
+ import { Column, SeriesPlotStyle, TableTemplate } from '@deephaven/jsapi-shim';
6
+ import { WorkspaceSettings } from '@deephaven/redux';
7
+ import { Pending } from '@deephaven/utils';
8
+ import GoldenLayout from '@deephaven/golden-layout';
9
+ import { ColumnMap } from './ChartFilterOverlay';
10
+ import { SelectorColumn } from './ChartColumnSelectorOverlay';
11
+ import './ChartPanel.scss';
12
+ import { Link } from '../linker/LinkerUtils';
13
+ import { ColumnSelectionValidator } from '../linker/ColumnSelectionValidator';
14
+ export declare type InputFilterMap = Map<string, InputFilter>;
15
+ export declare type FilterMap = Map<string, string>;
16
+ export declare type LinkedColumnMap = Map<string, Column>;
17
+ export interface ChartPanelMetaData {
18
+ figure: string;
19
+ table: string;
20
+ query: string;
21
+ querySerial: string;
22
+ sourcePanelId: string;
23
+ settings: {
24
+ isLinked: boolean;
25
+ title: string;
26
+ xAxis: string;
27
+ series: string[];
28
+ type: SeriesPlotStyle;
29
+ };
30
+ }
31
+ declare type Settings = Record<string, unknown>;
32
+ interface PanelState {
33
+ filterValueMap: [string, string][];
34
+ settings: Partial<WorkspaceSettings>;
35
+ tableSettings: unknown;
36
+ irisGridState?: {
37
+ advancedFilters: unknown;
38
+ quickFilters: unknown;
39
+ sorts: unknown;
40
+ };
41
+ irisGridPanelState?: {
42
+ partitionColumn: string;
43
+ partition: unknown;
44
+ };
45
+ }
46
+ interface ChartPanelProps {
47
+ glContainer: GoldenLayout.Container;
48
+ glEventHub: GoldenLayout.EventEmitter;
49
+ metadata: ChartPanelMetaData;
50
+ /** Function to build the ChartModel used by this ChartPanel. Can return a promise. */
51
+ makeModel: () => ChartModel;
52
+ inputFilters: InputFilter[];
53
+ links: Link[];
54
+ localDashboardId: string;
55
+ isLinkerActive: boolean;
56
+ source?: TableTemplate;
57
+ sourcePanel?: PanelComponent;
58
+ columnSelectionValidator?: ColumnSelectionValidator;
59
+ setActiveTool: (tool: string) => void;
60
+ setDashboardIsolatedLinkerPanelId: (id: string, secondParam: undefined) => void;
61
+ panelState: PanelState;
62
+ settings: Partial<WorkspaceSettings>;
63
+ }
64
+ interface ChartPanelState {
65
+ settings: Partial<WorkspaceSettings>;
66
+ error?: unknown;
67
+ isActive: boolean;
68
+ isDisconnected: boolean;
69
+ isLoading: boolean;
70
+ isLoaded: boolean;
71
+ isLinked: boolean;
72
+ filterMap: Map<string, string>;
73
+ filterValueMap: Map<string, string>;
74
+ model?: ChartModel;
75
+ columnMap: ColumnMap;
76
+ panelState: PanelState;
77
+ }
78
+ export declare class ChartPanel extends Component<ChartPanelProps, ChartPanelState> {
79
+ static defaultProps: {
80
+ columnSelectionValidator: null;
81
+ isLinkerActive: boolean;
82
+ source: null;
83
+ sourcePanel: null;
84
+ panelState: null;
85
+ settings: {};
86
+ };
87
+ static displayName: string;
2
88
  static COMPONENT: string;
3
- constructor(props: any);
4
- handleColumnSelected(columnName: any): void;
5
- handleColumnMouseEnter({ type, name }: {
6
- type: any;
7
- name: any;
8
- }): void;
89
+ constructor(props: ChartPanelProps);
90
+ componentDidMount(): void;
91
+ componentDidUpdate(prevProps: ChartPanelProps, prevState: ChartPanelState): void;
92
+ componentWillUnmount(): void;
93
+ panelContainer: RefObject<HTMLDivElement>;
94
+ chart: RefObject<Chart>;
95
+ pending: Pending;
96
+ initModel(): void;
97
+ getWaitingInputMap: (isFilterRequired: boolean, columnMap: ColumnMap, filterMap: FilterMap) => Map<string, Column>;
98
+ getWaitingFilterMap: (isFilterRequired: boolean, columnMap: ColumnMap, filterMap: FilterMap, linkedColumnMap: LinkedColumnMap, inputFilterMap: InputFilterMap) => Map<any, any>;
99
+ getInputFilterColumnMap: (columnMap: ColumnMap, inputFilters: InputFilter[]) => Map<string, InputFilter>;
100
+ getLinkedColumnMap: (columnMap: ColumnMap, links: Link[]) => Map<string, Column>;
101
+ getSelectorColumns: (columnMap: ColumnMap, linkedColumnMap: LinkedColumnMap, columnSelectionValidator?: ColumnSelectionValidator | undefined) => {
102
+ name: string;
103
+ type: string;
104
+ isValid: boolean;
105
+ isActive: boolean;
106
+ }[];
107
+ startListeningToSource(table: TableTemplate): void;
108
+ stopListeningToSource(table: TableTemplate): void;
109
+ loadModelIfNecessary(): void;
110
+ isHidden(): boolean;
111
+ handleColumnSelected(columnName: string): void;
112
+ handleColumnMouseEnter({ type, name }: SelectorColumn): void;
9
113
  handleColumnMouseLeave(): void;
10
114
  handleDisconnect(): void;
11
- handleReconnect(): void;
12
- handleFilterAdd(columns: any): void;
13
- handleHide(): void;
14
- handleError(): void;
15
- handleLoadError(error: any): void;
16
- handleLoadSuccess(model: any): void;
17
- handleResize(): void;
18
- handleSettingsChanged(update: any): void;
115
+ handleFilterAdd(columns: InputFilter[]): void;
19
116
  handleOpenLinker(): void;
20
- handleShow(): void;
117
+ handleReconnect(): void;
118
+ handleLoadSuccess(model: ChartModel): void;
119
+ handleLoadError(error: unknown): void;
21
120
  handleSourceColumnChange(): void;
22
121
  handleSourceFilterChange(): void;
23
122
  handleSourceSortChange(): void;
123
+ updateModelFromSource(): void;
124
+ updatePanelState(): void;
125
+ handleError(): void;
126
+ handleResize(): void;
127
+ handleSettingsChanged(update: Partial<Settings>): void;
128
+ handleHide(): void;
129
+ handleShow(): void;
24
130
  handleTabBlur(): void;
25
131
  handleTabFocus(): void;
26
132
  handleUpdate(): void;
27
- updateModelFromSource(): void;
28
133
  handleClearAllFilters(): void;
29
- panelContainer: React.RefObject<any>;
30
- chart: React.RefObject<any>;
31
- pending: Pending;
32
- initModel(): void;
33
- getWaitingInputMap: (this: any, isFilterRequired: any, columnMap: any, filterMap: any) => Map<any, any>;
34
- getWaitingFilterMap: (this: any, isFilterRequired: any, columnMap: any, filterMap: any, linkedColumnMap: any, inputFilterMap: any) => Map<any, any>;
35
- getInputFilterColumnMap: (this: any, columnMap: any, inputFilters: any) => Map<any, any>;
36
- getLinkedColumnMap: (this: any, columnMap: any, links: any) => Map<any, any>;
37
- getSelectorColumns: (this: any, columnMap: any, linkedColumnMap: any, columnSelectionValidator: any) => {
38
- name: any;
39
- type: any;
40
- isValid: any;
41
- isActive: any;
42
- }[];
43
- startListeningToSource(table: any): void;
44
- stopListeningToSource(table: any): void;
45
- loadModelIfNecessary(): void;
46
- isHidden(): any;
47
- updatePanelState(): void;
48
134
  /**
49
135
  * Create an input filter panel for the provided column
50
- * @param {dh.Column} column The column to create the input filter for
136
+ * @param column The column to create the input filter for
51
137
  */
52
- openInputFilter(column: dh.Column): void;
53
- setActive(isActive: any): void;
138
+ openInputFilter(column: InputFilter): void;
139
+ setActive(isActive: boolean): void;
54
140
  sendColumnChange(): void;
55
- getCoordinateForColumn(columnName: any): any[] | null;
141
+ getCoordinateForColumn(columnName: ColumnName): [number, number] | null;
56
142
  /**
57
143
  * Set chart filters based on the filter map
58
- * @param {Map<string, Object>} filterMapParam Filter map
144
+ * @param filterMapParam Filter map
59
145
  */
60
- setFilterMap(filterMapParam: Map<string, Object>): void;
61
- unsetFilterValue(columnName: any): void;
62
- updateChangedInputFilters(inputFilters: any, prevInputFilters: any): void;
63
- updateInputFilters(inputFilters: any, forceUpdate?: boolean): void;
64
- deleteInputFilters(inputFilters: any, forceUpdate?: boolean): void;
146
+ setFilterMap(filterMapParam: Map<string, {
147
+ columnType: string;
148
+ value: string;
149
+ }>): void;
150
+ unsetFilterValue(columnName: ColumnName): void;
151
+ updateChangedInputFilters(inputFilters: InputFilter[], prevInputFilters: InputFilter[]): void;
152
+ updateInputFilters(inputFilters: InputFilter[], forceUpdate?: boolean): void;
153
+ deleteInputFilters(inputFilters: InputFilter[], forceUpdate?: boolean): void;
65
154
  updateColumnFilters(): void;
66
155
  updateFilters(): void;
67
156
  /**
@@ -69,112 +158,20 @@ export class ChartPanel extends React.Component<any, any, any> {
69
158
  */
70
159
  pruneFilterMaps(): void;
71
160
  updateChart(): void;
161
+ render(): ReactElement;
72
162
  }
73
- export namespace ChartPanel {
74
- namespace propTypes {
75
- const glContainer: PropTypes.Validator<PropTypes.InferProps<{
76
- on: PropTypes.Requireable<(...args: any[]) => any>;
77
- off: PropTypes.Requireable<(...args: any[]) => any>;
78
- isHidden: PropTypes.Requireable<boolean>;
79
- tab: PropTypes.Requireable<PropTypes.InferProps<{
80
- header: PropTypes.Requireable<PropTypes.InferProps<{
81
- tabs: PropTypes.Requireable<(PropTypes.InferProps<{
82
- contentItem: PropTypes.Requireable<PropTypes.InferProps<{}>>;
83
- }> | null | undefined)[]>;
84
- }>>;
85
- }>>;
86
- title: PropTypes.Requireable<string>;
87
- setTitle: PropTypes.Requireable<(...args: any[]) => any>;
88
- close: PropTypes.Requireable<(...args: any[]) => any>;
89
- }>>;
90
- const glEventHub: PropTypes.Validator<PropTypes.InferProps<{
91
- on: PropTypes.Requireable<(...args: any[]) => any>;
92
- off: PropTypes.Requireable<(...args: any[]) => any>;
93
- emit: PropTypes.Requireable<(...args: any[]) => any>;
94
- }>>;
95
- const metadata: PropTypes.Validator<PropTypes.InferProps<{
96
- figure: PropTypes.Requireable<string>;
97
- table: PropTypes.Requireable<string>;
98
- query: PropTypes.Requireable<string>;
99
- querySerial: PropTypes.Requireable<string>;
100
- sourcePanelId: PropTypes.Requireable<string>;
101
- settings: PropTypes.Requireable<PropTypes.InferProps<{
102
- isLinked: PropTypes.Requireable<boolean>;
103
- }>>;
104
- }>>;
105
- const makeModel: PropTypes.Validator<(...args: any[]) => any>;
106
- const inputFilters: PropTypes.Validator<(PropTypes.InferProps<{
107
- name: PropTypes.Validator<string>;
108
- type: PropTypes.Validator<string>;
109
- value: any;
110
- }> | null | undefined)[]>;
111
- const links: PropTypes.Validator<(PropTypes.InferProps<{
112
- start: PropTypes.Requireable<PropTypes.InferProps<{
113
- panelId: PropTypes.Validator<string>;
114
- columnName: PropTypes.Validator<string>;
115
- }>>;
116
- end: PropTypes.Requireable<PropTypes.InferProps<{
117
- panelId: PropTypes.Validator<string>;
118
- columnName: PropTypes.Validator<string>;
119
- }>>;
120
- id: PropTypes.Requireable<string>;
121
- isReversed: PropTypes.Requireable<boolean>;
122
- }> | null | undefined)[]>;
123
- const localDashboardId: PropTypes.Validator<string>;
124
- const isLinkerActive: PropTypes.Requireable<boolean>;
125
- const source: PropTypes.Requireable<PropTypes.InferProps<{
126
- columns: PropTypes.Validator<(PropTypes.InferProps<{
127
- name: PropTypes.Validator<string>;
128
- type: PropTypes.Validator<string>;
129
- description: PropTypes.Requireable<string>;
130
- constituentType: PropTypes.Requireable<string>;
131
- }> | null | undefined)[]>;
132
- customColumns: PropTypes.Validator<(string | null | undefined)[]>;
133
- filter: PropTypes.Requireable<(PropTypes.InferProps<{
134
- not: PropTypes.Validator<(...args: any[]) => any>;
135
- and: PropTypes.Validator<(...args: any[]) => any>;
136
- or: PropTypes.Validator<(...args: any[]) => any>;
137
- }> | null | undefined)[]>;
138
- addEventListener: PropTypes.Validator<(...args: any[]) => any>;
139
- removeEventListener: PropTypes.Validator<(...args: any[]) => any>;
140
- size: PropTypes.Validator<number>;
141
- sort: PropTypes.Requireable<any[]>;
142
- copy: PropTypes.Validator<(...args: any[]) => any>;
143
- applyFilter: PropTypes.Validator<(...args: any[]) => any>;
144
- applySort: PropTypes.Validator<(...args: any[]) => any>;
145
- applyCustomColumns: PropTypes.Validator<(...args: any[]) => any>;
146
- description: PropTypes.Requireable<string>;
147
- }>>;
148
- const sourcePanel: PropTypes.Requireable<PropTypes.InferProps<{
149
- state: PropTypes.Requireable<PropTypes.InferProps<{
150
- panelState: PropTypes.Requireable<PropTypes.InferProps<{}>>;
151
- }>>;
152
- }>>;
153
- const columnSelectionValidator: PropTypes.Requireable<(...args: any[]) => any>;
154
- const setActiveTool: PropTypes.Validator<(...args: any[]) => any>;
155
- const setDashboardIsolatedLinkerPanelId: PropTypes.Validator<(...args: any[]) => any>;
156
- const panelState: PropTypes.Requireable<PropTypes.InferProps<{}>>;
157
- const settings: PropTypes.Requireable<PropTypes.InferProps<{}>>;
158
- }
159
- namespace defaultProps {
160
- const columnSelectionValidator_1: null;
161
- export { columnSelectionValidator_1 as columnSelectionValidator };
162
- const isLinkerActive_1: boolean;
163
- export { isLinkerActive_1 as isLinkerActive };
164
- const source_1: null;
165
- export { source_1 as source };
166
- const sourcePanel_1: null;
167
- export { sourcePanel_1 as sourcePanel };
168
- const panelState_1: null;
169
- export { panelState_1 as panelState };
170
- const settings_1: {};
171
- export { settings_1 as settings };
172
- }
173
- const displayName: string;
174
- }
175
- declare var _default: import("react-redux").ConnectedComponent<typeof ChartPanel, any>;
163
+ declare const _default: import("react-redux").ConnectedComponent<typeof ChartPanel, import("react-redux").Omit<Pick<ChartPanelProps, "glContainer" | "metadata" | "glEventHub" | "localDashboardId" | "inputFilters" | "links" | "makeModel" | "setActiveTool" | "setDashboardIsolatedLinkerPanelId"> & Partial<Pick<ChartPanelProps, "source" | "panelState" | "columnSelectionValidator" | "isLinkerActive" | "settings" | "sourcePanel">> & Partial<Pick<{
164
+ columnSelectionValidator: null;
165
+ isLinkerActive: boolean;
166
+ source: null;
167
+ sourcePanel: null;
168
+ panelState: null;
169
+ settings: {};
170
+ }, never>>, "source" | "columnSelectionValidator" | "isLinkerActive" | "settings" | "inputFilters" | "links" | "setActiveTool" | "setDashboardIsolatedLinkerPanelId" | "sourcePanel"> & {
171
+ localDashboardId: string;
172
+ metadata: {
173
+ sourcePanelId: string;
174
+ };
175
+ }>;
176
176
  export default _default;
177
- import React from "react";
178
- import { Pending } from "@deephaven/utils";
179
- import PropTypes from "prop-types";
180
177
  //# sourceMappingURL=ChartPanel.d.ts.map