@deephaven/dashboard-core-plugins 0.70.0 → 0.70.1-alpha-picker-table.34

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.
@@ -1 +1 @@
1
- {"version":3,"file":"Linker.d.ts","sourceRoot":"","sources":["../../src/linker/Linker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Linker.d.ts","sourceRoot":"","sources":["../../src/linker/Linker.tsx"],"names":[],"mappings":"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"}
@@ -7,8 +7,7 @@ import React, { Component } from 'react';
7
7
  import { connect } from 'react-redux';
8
8
  import shortid from 'shortid';
9
9
  import memoize from 'memoize-one';
10
- import { CSSTransition } from 'react-transition-group';
11
- import { ThemeExport } from '@deephaven/components';
10
+ import { FadeTransition } from '@deephaven/components';
12
11
  import { LayoutUtils, PanelEvent } from '@deephaven/dashboard';
13
12
  import { DateTimeColumnFormatter, DateUtils, TableUtils } from '@deephaven/jsapi-utils';
14
13
  import Log from '@deephaven/log';
@@ -710,10 +709,8 @@ export class Linker extends Component {
710
709
  var isLinkOverlayShown = this.isOverlayShown();
711
710
  var disabled = linkInProgress != null && linkInProgress.start != null;
712
711
  var linkerOverlayMessage = isolatedLinkerPanelId === undefined ? 'Click a column source, then click a column target to create a filter link. The filter comparison operator used by a selected link can be changed. Delete a filter link by clicking the delete button or with alt+click. Click done when finished.' : 'Create a link between the source column button and a table column by clicking on one, then the other. Delete a filter link by clicking the delete button or with alt+click. Click done when finished.';
713
- return !isDraggingPanel ? /*#__PURE__*/_jsx(CSSTransition, {
712
+ return !isDraggingPanel ? /*#__PURE__*/_jsx(FadeTransition, {
714
713
  in: isLinkOverlayShown,
715
- timeout: ThemeExport.transitionMs,
716
- classNames: "fade",
717
714
  mountOnEnter: true,
718
715
  unmountOnExit: true,
719
716
  onExited: this.handleExited,
@@ -1 +1 @@
1
- {"version":3,"file":"Linker.js","names":["React","Component","connect","shortid","memoize","CSSTransition","ThemeExport","LayoutUtils","PanelEvent","DateTimeColumnFormatter","DateUtils","TableUtils","Log","Type","FilterType","getActiveTool","getApi","getTimeZone","setActiveTool","setActiveToolAction","getIsolatedLinkerPanelIdForDashboard","getLinksForDashboard","setDashboardLinks","setDashboardLinksAction","addDashboardLinks","addDashboardLinksAction","deleteDashboardLinks","deleteDashboardLinksAction","setDashboardIsolatedLinkerPanelId","setDashboardIsolatedLinkerPanelIdAction","setDashboardColumnSelectionValidator","setDashboardColumnSelectionValidatorAction","ToolType","ChartEvent","IrisGridEvent","InputFilterEvent","LinkerOverlayContent","LinkerUtils","isLinkablePanel","isLinkableColumn","jsx","_jsx","log","module","mapState","state","ownProps","activeTool","dh","isolatedLinkerPanelId","localDashboardId","links","timeZone","connector","Linker","constructor","props","_defineProperty","linkInProgress","isolateForPanelId","combinedLinks","start","push","undefined","filter","link","_link$start","_link$end","panelId","end","handleCancel","bind","handleDone","handlePanelCloned","handleFilterColumnSelect","handleColumnsChanged","handlePanelClosed","handleLayoutStateChanged","handleAllLinksDeleted","handleLinkDeleted","handleLinksUpdated","handleChartColumnSelect","handleGridColumnSelect","handleUpdateValues","handleStateChange","handleExited","handleLinkSelected","handlePanelDragging","handlePanelDropped","isColumnSelectionValid","selectedIds","Set","isDraggingPanel","componentDidMount","layout","startListening","updateSelectionValidators","componentDidUpdate","prevProps","stopListening","DEFAULT","reset","componentDidCatch","error","info","componentWillUnmount","on","eventHub","COLUMN_SELECTED","DATA_SELECTED","STATE_CHANGED","CLONED","COLUMNS_CHANGED","CLOSE","CLOSED","DRAGGING","DROPPED","off","setState","panel","column","columnSelected","debug","isOverlayShown","getIdFromPanel","panelLinks","_link$start2","_link$end2","LINKER","length","columns","linksToDelete","_ref","findColumn","deleteLinks","debug2","isAlwaysEndPoint","arguments","overrideIsolatedLinkerPanelId","panelComponent","getComponentNameFromPanel","name","columnName","type","columnType","newLink","id","generate","isReversed","getLinkType","existingLinkPanelId","_ref2","panelLinkEnd","existingLinkEnd","existingLinkStart","_ref3","panelLinkStart","operator","eq","addLinks","unsetFilterValueForLink","panelManager","endPanel","getOpenedPanelById","unsetFilterValue","setPanelFilterMap","filterMap","setFilterMap","clearAll","forEach","map","_ref4","isolatedLinks","_link$start3","_link$end3","linkId","find","l","dataMap","panelFilterMap","Map","i","endPanelId","has","get","filterList","visibleIndex","startColumnIndex","isExpandable","isGrouped","value","text","concat","isDateType","dateFilterFormatter","showTimeZone","showTSeparator","defaultDateTimeFormatString","FULL_DATE_FORMAT","format","set","cloneConfig","cloneId","linksToAdd","cloneLinksForPanel","componentId","deleteLinksForPanelId","newLinks","forceUpdate","updateLinkInProgressType","_ref5","_objectSpread","tableColumn","description","render","isLinkOverlayShown","disabled","linkerOverlayMessage","in","timeout","transitionMs","classNames","mountOnEnter","unmountOnExit","onExited","children","getCachedLinks","messageText","onLinkSelected","onLinkDeleted","onAllLinksDeleted","onLinksUpdated","onDone","onCancel","ConnectedLinker"],"sources":["../../src/linker/Linker.tsx"],"sourcesContent":["import React, { Component, ErrorInfo } from 'react';\nimport { connect, ConnectedProps } from 'react-redux';\nimport shortid from 'shortid';\nimport memoize from 'memoize-one';\nimport { CSSTransition } from 'react-transition-group';\nimport { ThemeExport } from '@deephaven/components';\nimport {\n LayoutUtils,\n PanelComponent,\n PanelEvent,\n PanelManager,\n} from '@deephaven/dashboard';\nimport type GoldenLayout from '@deephaven/golden-layout';\nimport {\n DateTimeColumnFormatter,\n DateUtils,\n RowDataMap,\n TableUtils,\n} from '@deephaven/jsapi-utils';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { Type as FilterType } from '@deephaven/filters';\nimport {\n getActiveTool,\n getApi,\n getTimeZone,\n setActiveTool as setActiveToolAction,\n RootState,\n} from '@deephaven/redux';\nimport {\n getIsolatedLinkerPanelIdForDashboard,\n getLinksForDashboard,\n setDashboardLinks as setDashboardLinksAction,\n addDashboardLinks as addDashboardLinksAction,\n deleteDashboardLinks as deleteDashboardLinksAction,\n setDashboardIsolatedLinkerPanelId as setDashboardIsolatedLinkerPanelIdAction,\n setDashboardColumnSelectionValidator as setDashboardColumnSelectionValidatorAction,\n} from '../redux';\nimport ToolType from './ToolType';\nimport { ChartEvent, IrisGridEvent, InputFilterEvent } from '../events';\nimport LinkerOverlayContent from './LinkerOverlayContent';\nimport LinkerUtils, {\n isLinkablePanel,\n Link,\n LinkColumn,\n LinkFilterMap,\n LinkType,\n isLinkableColumn,\n} from './LinkerUtils';\n\nconst log = Log.module('Linker');\n\ninterface StateProps {\n activeTool: string;\n dh: typeof DhType;\n isolatedLinkerPanelId?: string;\n links: Link[];\n timeZone: string;\n}\n\ninterface OwnProps {\n layout: GoldenLayout;\n panelManager: PanelManager;\n localDashboardId: string;\n}\n\nconst mapState = (state: RootState, ownProps: OwnProps): StateProps => ({\n activeTool: getActiveTool(state),\n dh: getApi(state),\n isolatedLinkerPanelId: getIsolatedLinkerPanelIdForDashboard(\n state,\n ownProps.localDashboardId\n ),\n links: getLinksForDashboard(state, ownProps.localDashboardId),\n timeZone: getTimeZone(state),\n});\n\nconst connector = connect(mapState, {\n setActiveTool: setActiveToolAction,\n setDashboardLinks: setDashboardLinksAction,\n addDashboardLinks: addDashboardLinksAction,\n deleteDashboardLinks: deleteDashboardLinksAction,\n setDashboardIsolatedLinkerPanelId: setDashboardIsolatedLinkerPanelIdAction,\n setDashboardColumnSelectionValidator:\n setDashboardColumnSelectionValidatorAction,\n});\n\nexport type LinkerProps = OwnProps &\n StateProps &\n ConnectedProps<typeof connector>;\n\nexport type LinkerState = {\n linkInProgress?: Link;\n selectedIds: Set<string>;\n isDraggingPanel: boolean;\n};\n\nexport class Linker extends Component<LinkerProps, LinkerState> {\n constructor(props: LinkerProps) {\n super(props);\n\n this.handleCancel = this.handleCancel.bind(this);\n this.handleDone = this.handleDone.bind(this);\n this.handlePanelCloned = this.handlePanelCloned.bind(this);\n this.handleFilterColumnSelect = this.handleFilterColumnSelect.bind(this);\n this.handleColumnsChanged = this.handleColumnsChanged.bind(this);\n this.handlePanelClosed = this.handlePanelClosed.bind(this);\n this.handleLayoutStateChanged = this.handleLayoutStateChanged.bind(this);\n this.handleAllLinksDeleted = this.handleAllLinksDeleted.bind(this);\n this.handleLinkDeleted = this.handleLinkDeleted.bind(this);\n this.handleLinksUpdated = this.handleLinksUpdated.bind(this);\n this.handleChartColumnSelect = this.handleChartColumnSelect.bind(this);\n this.handleGridColumnSelect = this.handleGridColumnSelect.bind(this);\n this.handleUpdateValues = this.handleUpdateValues.bind(this);\n this.handleStateChange = this.handleStateChange.bind(this);\n this.handleExited = this.handleExited.bind(this);\n this.handleLinkSelected = this.handleLinkSelected.bind(this);\n this.handlePanelDragging = this.handlePanelDragging.bind(this);\n this.handlePanelDropped = this.handlePanelDropped.bind(this);\n this.isColumnSelectionValid = this.isColumnSelectionValid.bind(this);\n\n this.state = {\n linkInProgress: undefined,\n selectedIds: new Set<string>(),\n isDraggingPanel: false,\n };\n }\n\n componentDidMount(): void {\n const { layout } = this.props;\n this.startListening(layout);\n this.updateSelectionValidators();\n }\n\n componentDidUpdate(prevProps: LinkerProps): void {\n const { activeTool, layout } = this.props;\n if (layout !== prevProps.layout) {\n this.stopListening(prevProps.layout);\n this.startListening(layout);\n }\n if (activeTool !== prevProps.activeTool) {\n this.updateSelectionValidators();\n if (activeTool === ToolType.DEFAULT) {\n this.reset();\n }\n }\n }\n\n componentDidCatch(error: Error, info: ErrorInfo): void {\n log.error('componentDidCatch', error, info);\n }\n\n componentWillUnmount(): void {\n const { layout } = this.props;\n this.stopListening(layout);\n }\n\n startListening(layout: GoldenLayout): void {\n layout.on('stateChanged', this.handleLayoutStateChanged);\n\n const { eventHub } = layout;\n eventHub.on(IrisGridEvent.COLUMN_SELECTED, this.handleGridColumnSelect);\n eventHub.on(IrisGridEvent.DATA_SELECTED, this.handleUpdateValues);\n eventHub.on(IrisGridEvent.STATE_CHANGED, this.handleStateChange);\n eventHub.on(ChartEvent.COLUMN_SELECTED, this.handleChartColumnSelect);\n eventHub.on(PanelEvent.CLONED, this.handlePanelCloned);\n eventHub.on(\n InputFilterEvent.COLUMN_SELECTED,\n this.handleFilterColumnSelect\n );\n eventHub.on(InputFilterEvent.COLUMNS_CHANGED, this.handleColumnsChanged);\n eventHub.on(PanelEvent.CLOSE, this.handlePanelClosed);\n eventHub.on(PanelEvent.CLOSED, this.handlePanelClosed);\n eventHub.on(PanelEvent.DRAGGING, this.handlePanelDragging);\n eventHub.on(PanelEvent.DROPPED, this.handlePanelDropped);\n }\n\n stopListening(layout: GoldenLayout): void {\n layout.off('stateChanged', this.handleLayoutStateChanged);\n\n const { eventHub } = layout;\n eventHub.off(IrisGridEvent.COLUMN_SELECTED, this.handleGridColumnSelect);\n eventHub.off(IrisGridEvent.DATA_SELECTED, this.handleUpdateValues);\n eventHub.off(IrisGridEvent.STATE_CHANGED, this.handleStateChange);\n eventHub.off(ChartEvent.COLUMN_SELECTED, this.handleChartColumnSelect);\n eventHub.off(PanelEvent.CLONED, this.handlePanelCloned);\n eventHub.off(\n InputFilterEvent.COLUMN_SELECTED,\n this.handleFilterColumnSelect\n );\n eventHub.off(InputFilterEvent.COLUMNS_CHANGED, this.handleColumnsChanged);\n eventHub.off(PanelEvent.CLOSE, this.handlePanelClosed);\n eventHub.off(PanelEvent.CLOSED, this.handlePanelClosed);\n eventHub.off(PanelEvent.DRAGGING, this.handlePanelDragging);\n eventHub.off(PanelEvent.DROPPED, this.handlePanelDropped);\n }\n\n reset(): void {\n this.setState({\n linkInProgress: undefined,\n selectedIds: new Set<string>(),\n });\n }\n\n handleCancel(): void {\n const { linkInProgress } = this.state;\n if (linkInProgress == null) {\n const { setActiveTool } = this.props;\n setActiveTool(ToolType.DEFAULT);\n }\n this.setState({ linkInProgress: undefined });\n }\n\n handleDone(): void {\n const { setActiveTool } = this.props;\n setActiveTool(ToolType.DEFAULT);\n }\n\n handleChartColumnSelect(panel: PanelComponent, column: LinkColumn): void {\n this.columnSelected(panel, column, true);\n }\n\n handleFilterColumnSelect(panel: PanelComponent, column: LinkColumn): void {\n log.debug('handleFilterColumnSelect', this.isOverlayShown());\n const {\n links,\n localDashboardId,\n setActiveTool,\n setDashboardIsolatedLinkerPanelId,\n } = this.props;\n\n const panelId = LayoutUtils.getIdFromPanel(panel);\n const panelLinks = links.filter(\n link => link.start?.panelId === panelId || link.end?.panelId === panelId\n );\n\n if (!this.isOverlayShown() && panelId != null) {\n // Initial click on the filter source button with linker inactive\n // Show linker in isolated mode for panel\n setActiveTool(ToolType.LINKER);\n setDashboardIsolatedLinkerPanelId(localDashboardId, panelId);\n\n if (panelLinks.length === 0) {\n // Source not linked - start new link in isolated linker mode\n // Need to pass panelId for overrideIsolatedLinkerPanelId\n // as redux prop update at this point not yet propagated\n this.columnSelected(panel, column, true, panelId);\n }\n return;\n }\n\n // Filter source clicked with linker active\n this.columnSelected(panel, column, true);\n }\n\n handleColumnsChanged(panel: PanelComponent, columns: LinkColumn[]): void {\n log.debug('handleColumnsChanged', panel, columns);\n const { links } = this.props;\n const panelId = LayoutUtils.getIdFromPanel(panel);\n if (panelId == null) {\n log.error('Invalid panelId', panel);\n return;\n }\n // Delete links that start or end on non-existent column in the updated panel\n const linksToDelete = links.filter(\n ({ start, end }) =>\n (start.panelId === panelId &&\n LinkerUtils.findColumn(columns, start) == null) ||\n (end != null &&\n end.panelId === panelId &&\n LinkerUtils.findColumn(columns, end) == null)\n );\n this.deleteLinks(linksToDelete);\n }\n\n handleGridColumnSelect(panel: PanelComponent, column: LinkColumn): void {\n if (!isLinkableColumn(column)) {\n log.debug2('Column is not filterable');\n return;\n }\n this.columnSelected(panel, column);\n }\n\n /**\n * Track a column selection and build the link from it.\n * @param panel The panel component that is the source for the column selection\n * @param column The column that was selected\n * @param isAlwaysEndPoint True if the selection is always the end point, even if it's the first column selected. Defaults to false.\n * @param overrideIsolatedLinkerPanelId isolatedLinkerPanelId to use when method is called before prop changes propagate\n */\n columnSelected(\n panel: PanelComponent,\n column: LinkColumn,\n isAlwaysEndPoint = false,\n overrideIsolatedLinkerPanelId?: string | string[]\n ): void {\n if (overrideIsolatedLinkerPanelId === undefined && !this.isOverlayShown()) {\n return;\n }\n const { isolatedLinkerPanelId } = this.props;\n const { linkInProgress } = this.state;\n const panelId = LayoutUtils.getIdFromPanel(panel);\n if (panelId == null) {\n return;\n }\n const panelComponent = LayoutUtils.getComponentNameFromPanel(panel);\n const { name: columnName, type: columnType } = column;\n if (linkInProgress == null || linkInProgress.start == null) {\n const newLink: Link = {\n id: shortid.generate(),\n start: {\n panelId,\n panelComponent,\n columnName,\n columnType,\n },\n // Link starts with type Invalid as linking a source to itself is not allowed\n type: 'invalid',\n isReversed: isAlwaysEndPoint,\n };\n\n log.debug('starting link', newLink);\n\n this.setState({ linkInProgress: newLink });\n } else {\n const { links } = this.props;\n const { start, id, isReversed } = linkInProgress;\n const end = {\n panelId,\n panelComponent,\n columnName,\n columnType,\n };\n\n const type = LinkerUtils.getLinkType(\n isReversed !== undefined && isReversed ? end : start,\n isReversed !== undefined && isReversed ? start : end,\n overrideIsolatedLinkerPanelId ?? isolatedLinkerPanelId\n );\n\n switch (type) {\n case 'invalid':\n log.debug('Ignore invalid link connection', linkInProgress, end);\n return;\n case 'filterSource': {\n // filterSource links have a limit of 1 link per target\n // New link validation passed, delete existing links before adding the new one\n const existingLinkPanelId =\n isReversed !== undefined && isReversed\n ? start.panelId\n : end.panelId;\n // In cases with multiple targets per panel (i.e. chart filters)\n // links would have to be filtered by panelId and columnName and columnType\n const linksToDelete = links.filter(\n ({ end: panelLinkEnd }) =>\n panelLinkEnd?.panelId === existingLinkPanelId\n );\n this.deleteLinks(linksToDelete);\n break;\n }\n case 'chartLink': {\n const existingLinkEnd = isReversed === true ? start : end;\n const existingLinkStart = isReversed === true ? end : start;\n log.debug('creating chartlink', { existingLinkEnd, start, end });\n // Don't allow linking more than one column per source to each chart column\n const linksToDelete = links.filter(\n ({ end: panelLinkEnd, start: panelLinkStart }) =>\n panelLinkStart?.panelId === existingLinkStart.panelId &&\n panelLinkEnd?.panelId === existingLinkEnd.panelId &&\n panelLinkEnd?.columnName === existingLinkEnd.columnName &&\n panelLinkEnd?.columnType === existingLinkEnd.columnType\n );\n this.deleteLinks(linksToDelete);\n break;\n }\n case 'tableLink':\n // No-op\n break;\n }\n\n // Create a completed link from link in progress\n const newLink: Link = {\n start: isReversed !== undefined && isReversed ? end : start,\n end: isReversed !== undefined && isReversed ? start : end,\n id,\n type,\n operator: FilterType.eq,\n };\n log.info('creating link', newLink);\n\n this.setState(\n { linkInProgress: undefined, selectedIds: new Set<string>([id]) },\n () => {\n // Adding link after updating state\n // otherwise both new link and linkInProgress could be rendered at the same time\n // resulting in \"multiple children with same key\" error\n this.addLinks([newLink]);\n }\n );\n }\n }\n\n unsetFilterValueForLink(link: Link): void {\n const { panelManager } = this.props;\n if (link.end) {\n const { end } = link;\n const { panelId, columnName, columnType } = end;\n const endPanel = panelManager.getOpenedPanelById(panelId);\n if (!endPanel) {\n log.debug(\n 'endPanel no longer exists, ignoring unsetFilterValue',\n panelId\n );\n } else if (isLinkablePanel(endPanel)) {\n endPanel.unsetFilterValue(columnName, columnType);\n } else {\n log.debug('endPanel.unsetFilterValue not implemented', endPanel);\n }\n }\n }\n\n /**\n * Set filters for a given panel ID\n * @param panelId ID of panel to set filters on\n * @param filterMap Map of column name to column type, text, and value\n */\n setPanelFilterMap(panelId: string, filterMap: LinkFilterMap): void {\n log.debug('Set filter data for panel:', panelId, filterMap);\n const { panelManager } = this.props;\n const panel = panelManager.getOpenedPanelById(panelId);\n if (!panel) {\n log.debug('panel no longer exists, ignoring setFilterMap', panelId);\n } else if (isLinkablePanel(panel)) {\n panel.setFilterMap(filterMap);\n } else {\n log.debug('panel.setFilterMap not implemented', panelId, panel);\n }\n }\n\n addLinks(links: Link[]): void {\n const { addDashboardLinks, localDashboardId } = this.props;\n addDashboardLinks(localDashboardId, links);\n }\n\n deleteLinks(links: Link[], clearAll = false): void {\n const { localDashboardId } = this.props;\n links.forEach(link => this.unsetFilterValueForLink(link));\n if (clearAll) {\n const { setDashboardLinks } = this.props;\n setDashboardLinks(localDashboardId, []);\n } else if (links.length > 0) {\n const { deleteDashboardLinks } = this.props;\n deleteDashboardLinks(\n localDashboardId,\n links.map(({ id }) => id)\n );\n }\n }\n\n handleAllLinksDeleted(): void {\n const { links, isolatedLinkerPanelId } = this.props;\n if (isolatedLinkerPanelId === undefined) {\n this.deleteLinks(links, true);\n } else {\n const isolatedLinks = links.filter(\n link =>\n link?.start?.panelId === isolatedLinkerPanelId ||\n link?.end?.panelId === isolatedLinkerPanelId\n );\n this.deleteLinks(isolatedLinks);\n }\n this.reset();\n }\n\n handleLinkDeleted(linkId: string): void {\n const { links } = this.props;\n const link = links.find(l => l.id === linkId);\n if (link) {\n this.deleteLinks([link]);\n } else {\n log.error('Unable to find link to delete', linkId);\n }\n }\n\n handleUpdateValues(panel: PanelComponent, dataMap: RowDataMap): void {\n const panelId = LayoutUtils.getIdFromPanel(panel);\n const { dh, links, timeZone } = this.props;\n // Map of panel ID to filterMap\n const panelFilterMap = new Map();\n // Instead of setting filters one by one for each link,\n // combine them so they could be set in a single call per target panel\n for (let i = 0; i < links.length; i += 1) {\n const { start, end, operator } = links[i];\n if (start.panelId === panelId && end != null) {\n const { panelId: endPanelId, columnName, columnType } = end;\n // Map of column name to column type and filter value\n const filterMap = panelFilterMap.has(endPanelId)\n ? panelFilterMap.get(endPanelId)\n : new Map();\n const filterList =\n filterMap.has(columnName) === true\n ? filterMap.get(columnName).filterList\n : [];\n const {\n visibleIndex: startColumnIndex,\n isExpandable,\n isGrouped,\n } = dataMap[start.columnName];\n let { value } = dataMap[start.columnName];\n let text = `${value}`;\n if (value === null && isExpandable && isGrouped) {\n // Clear filter on empty rollup grouping columns\n value = undefined;\n }\n if (columnType != null && TableUtils.isDateType(columnType)) {\n const dateFilterFormatter = new DateTimeColumnFormatter(dh, {\n timeZone,\n showTimeZone: false,\n showTSeparator: true,\n defaultDateTimeFormatString: DateUtils.FULL_DATE_FORMAT,\n });\n // The values are Dates for dateType values, not string like everything else\n text = dateFilterFormatter.format(value as Date);\n }\n const filter = { operator, text, value, startColumnIndex };\n filterList.push(filter);\n filterMap.set(columnName, {\n columnType,\n filterList,\n });\n panelFilterMap.set(endPanelId, filterMap);\n }\n }\n\n // Apply combined filters to all target panels\n panelFilterMap.forEach((filterMap, endPanelId) => {\n this.setPanelFilterMap(endPanelId, filterMap);\n });\n }\n\n handlePanelCloned(panel: PanelComponent, cloneConfig: { id: string }): void {\n const { links } = this.props;\n const panelId = LayoutUtils.getIdFromPanel(panel);\n const cloneId = cloneConfig.id;\n if (panelId != null) {\n const linksToAdd = LinkerUtils.cloneLinksForPanel(\n links,\n panelId,\n cloneId\n );\n this.addLinks(linksToAdd);\n }\n }\n\n handlePanelDragging(componentId: string): void {\n const { links } = this.props;\n for (let i = 0; i < links.length; i += 1) {\n const link = links[i];\n const { start, end } = link;\n if (start.panelId === componentId || end?.panelId === componentId) {\n this.setState({ isDraggingPanel: true });\n return;\n }\n }\n }\n\n handlePanelDropped(): void {\n this.setState({ isDraggingPanel: false });\n }\n\n handlePanelClosed(panelId: string): void {\n // Delete links on PanelEvent.CLOSE and PanelEvent.CLOSED instead of UNMOUNT\n // because the panels can get unmounted on errors and we want to keep the links if that happens\n log.debug(`Panel ${panelId} closed, deleting links.`);\n this.deleteLinksForPanelId(panelId);\n }\n\n handleLinkSelected(linkId: string): void {\n this.setState({ selectedIds: new Set<string>([linkId]) });\n }\n\n handleLinksUpdated(newLinks: Link[]): void {\n const { localDashboardId, setDashboardLinks } = this.props;\n setDashboardLinks(localDashboardId, newLinks);\n }\n\n handleLayoutStateChanged(): void {\n this.forceUpdate();\n }\n\n handleStateChange(): void {\n this.forceUpdate();\n }\n\n handleExited(): void {\n // Has to be done after linker exit animation to avoid flashing non-isolated links\n const { localDashboardId, setDashboardIsolatedLinkerPanelId } = this.props;\n setDashboardIsolatedLinkerPanelId(localDashboardId, undefined);\n }\n\n /**\n * Delete all links for a provided panel ID. Needs to be done whenever a panel is closed or unmounted.\n * @param panelId The panel ID to delete links for\n */\n deleteLinksForPanelId(panelId: string): void {\n const { links } = this.props;\n for (let i = 0; i < links.length; i += 1) {\n const link = links[i];\n const { start, end, id } = link;\n if (start.panelId === panelId || end?.panelId === panelId) {\n this.handleLinkDeleted(id);\n }\n }\n }\n\n getCachedLinks = memoize(\n (\n links: Link[],\n linkInProgress: Link | undefined,\n isolateForPanelId: string | undefined\n ) => {\n const combinedLinks = [...links];\n\n if (linkInProgress != null && linkInProgress.start != null) {\n combinedLinks.push(linkInProgress);\n }\n\n if (isolateForPanelId !== undefined) {\n return combinedLinks.filter(\n link =>\n link?.start?.panelId === isolateForPanelId ||\n link?.end?.panelId === isolateForPanelId ||\n link?.end == null\n );\n }\n // Show all links in regular linker mode -- both isolated and not\n return combinedLinks;\n }\n );\n\n isOverlayShown(): boolean {\n const { activeTool } = this.props;\n return activeTool === ToolType.LINKER;\n }\n\n updateSelectionValidators(): void {\n const {\n activeTool,\n setDashboardColumnSelectionValidator,\n localDashboardId,\n } = this.props;\n switch (activeTool) {\n case ToolType.LINKER:\n setDashboardColumnSelectionValidator(\n localDashboardId,\n this.isColumnSelectionValid\n );\n break;\n default:\n setDashboardColumnSelectionValidator(localDashboardId, undefined);\n break;\n }\n }\n\n updateLinkInProgressType(type: LinkType = 'invalid'): void {\n this.setState(({ linkInProgress }) => {\n if (linkInProgress !== undefined) {\n return {\n linkInProgress: {\n ...linkInProgress,\n type,\n },\n };\n }\n return null;\n });\n }\n\n isColumnSelectionValid(\n panel: PanelComponent,\n tableColumn?: LinkColumn\n ): boolean {\n const { linkInProgress } = this.state;\n const { isolatedLinkerPanelId } = this.props;\n\n if (tableColumn == null) {\n if (linkInProgress?.start != null) {\n // Link started, end point is not a valid target\n this.updateLinkInProgressType();\n }\n return false;\n }\n\n // TODO: Use preview/original type property when core/#3358 is completed\n if (!isLinkableColumn(tableColumn)) {\n log.debug2('Column is not filterable', tableColumn.description);\n if (linkInProgress?.start != null) {\n this.updateLinkInProgressType('invalid');\n }\n return false;\n }\n\n // Link not started yet - no need to update type\n if (linkInProgress?.start == null) {\n return true;\n }\n\n const { isReversed, start } = linkInProgress;\n const panelId = LayoutUtils.getIdFromPanel(panel);\n if (panelId == null) {\n return false;\n }\n\n const end = {\n panelId,\n panelComponent: LayoutUtils.getComponentNameFromPanel(panel),\n columnName: tableColumn.name,\n columnType: tableColumn.type,\n };\n\n const type =\n isReversed !== undefined && isReversed\n ? LinkerUtils.getLinkType(end, start, isolatedLinkerPanelId)\n : LinkerUtils.getLinkType(start, end, isolatedLinkerPanelId);\n\n this.updateLinkInProgressType(type);\n\n return type !== 'invalid';\n }\n\n render(): JSX.Element | null {\n const { links, isolatedLinkerPanelId, panelManager } = this.props;\n const { linkInProgress, selectedIds, isDraggingPanel } = this.state;\n\n const isLinkOverlayShown = this.isOverlayShown();\n const disabled = linkInProgress != null && linkInProgress.start != null;\n const linkerOverlayMessage =\n isolatedLinkerPanelId === undefined\n ? 'Click a column source, then click a column target to create a filter link. The filter comparison operator used by a selected link can be changed. Delete a filter link by clicking the delete button or with alt+click. Click done when finished.'\n : 'Create a link between the source column button and a table column by clicking on one, then the other. Delete a filter link by clicking the delete button or with alt+click. Click done when finished.';\n\n return !isDraggingPanel ? (\n <CSSTransition\n in={isLinkOverlayShown}\n timeout={ThemeExport.transitionMs}\n classNames=\"fade\"\n mountOnEnter\n unmountOnExit\n onExited={this.handleExited}\n >\n <LinkerOverlayContent\n disabled={disabled}\n panelManager={panelManager}\n links={this.getCachedLinks(\n links,\n linkInProgress,\n isolatedLinkerPanelId\n )}\n selectedIds={selectedIds}\n messageText={linkerOverlayMessage}\n onLinkSelected={this.handleLinkSelected}\n onLinkDeleted={this.handleLinkDeleted}\n onAllLinksDeleted={this.handleAllLinksDeleted}\n onLinksUpdated={this.handleLinksUpdated}\n onDone={this.handleDone}\n onCancel={this.handleCancel}\n />\n </CSSTransition>\n ) : null;\n }\n}\n\nconst ConnectedLinker = connector(Linker);\n\nexport default ConnectedLinker;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Linker.js","names":["React","Component","connect","shortid","memoize","FadeTransition","LayoutUtils","PanelEvent","DateTimeColumnFormatter","DateUtils","TableUtils","Log","Type","FilterType","getActiveTool","getApi","getTimeZone","setActiveTool","setActiveToolAction","getIsolatedLinkerPanelIdForDashboard","getLinksForDashboard","setDashboardLinks","setDashboardLinksAction","addDashboardLinks","addDashboardLinksAction","deleteDashboardLinks","deleteDashboardLinksAction","setDashboardIsolatedLinkerPanelId","setDashboardIsolatedLinkerPanelIdAction","setDashboardColumnSelectionValidator","setDashboardColumnSelectionValidatorAction","ToolType","ChartEvent","IrisGridEvent","InputFilterEvent","LinkerOverlayContent","LinkerUtils","isLinkablePanel","isLinkableColumn","jsx","_jsx","log","module","mapState","state","ownProps","activeTool","dh","isolatedLinkerPanelId","localDashboardId","links","timeZone","connector","Linker","constructor","props","_defineProperty","linkInProgress","isolateForPanelId","combinedLinks","start","push","undefined","filter","link","_link$start","_link$end","panelId","end","handleCancel","bind","handleDone","handlePanelCloned","handleFilterColumnSelect","handleColumnsChanged","handlePanelClosed","handleLayoutStateChanged","handleAllLinksDeleted","handleLinkDeleted","handleLinksUpdated","handleChartColumnSelect","handleGridColumnSelect","handleUpdateValues","handleStateChange","handleExited","handleLinkSelected","handlePanelDragging","handlePanelDropped","isColumnSelectionValid","selectedIds","Set","isDraggingPanel","componentDidMount","layout","startListening","updateSelectionValidators","componentDidUpdate","prevProps","stopListening","DEFAULT","reset","componentDidCatch","error","info","componentWillUnmount","on","eventHub","COLUMN_SELECTED","DATA_SELECTED","STATE_CHANGED","CLONED","COLUMNS_CHANGED","CLOSE","CLOSED","DRAGGING","DROPPED","off","setState","panel","column","columnSelected","debug","isOverlayShown","getIdFromPanel","panelLinks","_link$start2","_link$end2","LINKER","length","columns","linksToDelete","_ref","findColumn","deleteLinks","debug2","isAlwaysEndPoint","arguments","overrideIsolatedLinkerPanelId","panelComponent","getComponentNameFromPanel","name","columnName","type","columnType","newLink","id","generate","isReversed","getLinkType","existingLinkPanelId","_ref2","panelLinkEnd","existingLinkEnd","existingLinkStart","_ref3","panelLinkStart","operator","eq","addLinks","unsetFilterValueForLink","panelManager","endPanel","getOpenedPanelById","unsetFilterValue","setPanelFilterMap","filterMap","setFilterMap","clearAll","forEach","map","_ref4","isolatedLinks","_link$start3","_link$end3","linkId","find","l","dataMap","panelFilterMap","Map","i","endPanelId","has","get","filterList","visibleIndex","startColumnIndex","isExpandable","isGrouped","value","text","concat","isDateType","dateFilterFormatter","showTimeZone","showTSeparator","defaultDateTimeFormatString","FULL_DATE_FORMAT","format","set","cloneConfig","cloneId","linksToAdd","cloneLinksForPanel","componentId","deleteLinksForPanelId","newLinks","forceUpdate","updateLinkInProgressType","_ref5","_objectSpread","tableColumn","description","render","isLinkOverlayShown","disabled","linkerOverlayMessage","in","mountOnEnter","unmountOnExit","onExited","children","getCachedLinks","messageText","onLinkSelected","onLinkDeleted","onAllLinksDeleted","onLinksUpdated","onDone","onCancel","ConnectedLinker"],"sources":["../../src/linker/Linker.tsx"],"sourcesContent":["import React, { Component, ErrorInfo } from 'react';\nimport { connect, ConnectedProps } from 'react-redux';\nimport shortid from 'shortid';\nimport memoize from 'memoize-one';\nimport { FadeTransition } from '@deephaven/components';\nimport {\n LayoutUtils,\n PanelComponent,\n PanelEvent,\n PanelManager,\n} from '@deephaven/dashboard';\nimport type GoldenLayout from '@deephaven/golden-layout';\nimport {\n DateTimeColumnFormatter,\n DateUtils,\n RowDataMap,\n TableUtils,\n} from '@deephaven/jsapi-utils';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\nimport { Type as FilterType } from '@deephaven/filters';\nimport {\n getActiveTool,\n getApi,\n getTimeZone,\n setActiveTool as setActiveToolAction,\n RootState,\n} from '@deephaven/redux';\nimport {\n getIsolatedLinkerPanelIdForDashboard,\n getLinksForDashboard,\n setDashboardLinks as setDashboardLinksAction,\n addDashboardLinks as addDashboardLinksAction,\n deleteDashboardLinks as deleteDashboardLinksAction,\n setDashboardIsolatedLinkerPanelId as setDashboardIsolatedLinkerPanelIdAction,\n setDashboardColumnSelectionValidator as setDashboardColumnSelectionValidatorAction,\n} from '../redux';\nimport ToolType from './ToolType';\nimport { ChartEvent, IrisGridEvent, InputFilterEvent } from '../events';\nimport LinkerOverlayContent from './LinkerOverlayContent';\nimport LinkerUtils, {\n isLinkablePanel,\n Link,\n LinkColumn,\n LinkFilterMap,\n LinkType,\n isLinkableColumn,\n} from './LinkerUtils';\n\nconst log = Log.module('Linker');\n\ninterface StateProps {\n activeTool: string;\n dh: typeof DhType;\n isolatedLinkerPanelId?: string;\n links: Link[];\n timeZone: string;\n}\n\ninterface OwnProps {\n layout: GoldenLayout;\n panelManager: PanelManager;\n localDashboardId: string;\n}\n\nconst mapState = (state: RootState, ownProps: OwnProps): StateProps => ({\n activeTool: getActiveTool(state),\n dh: getApi(state),\n isolatedLinkerPanelId: getIsolatedLinkerPanelIdForDashboard(\n state,\n ownProps.localDashboardId\n ),\n links: getLinksForDashboard(state, ownProps.localDashboardId),\n timeZone: getTimeZone(state),\n});\n\nconst connector = connect(mapState, {\n setActiveTool: setActiveToolAction,\n setDashboardLinks: setDashboardLinksAction,\n addDashboardLinks: addDashboardLinksAction,\n deleteDashboardLinks: deleteDashboardLinksAction,\n setDashboardIsolatedLinkerPanelId: setDashboardIsolatedLinkerPanelIdAction,\n setDashboardColumnSelectionValidator:\n setDashboardColumnSelectionValidatorAction,\n});\n\nexport type LinkerProps = OwnProps &\n StateProps &\n ConnectedProps<typeof connector>;\n\nexport type LinkerState = {\n linkInProgress?: Link;\n selectedIds: Set<string>;\n isDraggingPanel: boolean;\n};\n\nexport class Linker extends Component<LinkerProps, LinkerState> {\n constructor(props: LinkerProps) {\n super(props);\n\n this.handleCancel = this.handleCancel.bind(this);\n this.handleDone = this.handleDone.bind(this);\n this.handlePanelCloned = this.handlePanelCloned.bind(this);\n this.handleFilterColumnSelect = this.handleFilterColumnSelect.bind(this);\n this.handleColumnsChanged = this.handleColumnsChanged.bind(this);\n this.handlePanelClosed = this.handlePanelClosed.bind(this);\n this.handleLayoutStateChanged = this.handleLayoutStateChanged.bind(this);\n this.handleAllLinksDeleted = this.handleAllLinksDeleted.bind(this);\n this.handleLinkDeleted = this.handleLinkDeleted.bind(this);\n this.handleLinksUpdated = this.handleLinksUpdated.bind(this);\n this.handleChartColumnSelect = this.handleChartColumnSelect.bind(this);\n this.handleGridColumnSelect = this.handleGridColumnSelect.bind(this);\n this.handleUpdateValues = this.handleUpdateValues.bind(this);\n this.handleStateChange = this.handleStateChange.bind(this);\n this.handleExited = this.handleExited.bind(this);\n this.handleLinkSelected = this.handleLinkSelected.bind(this);\n this.handlePanelDragging = this.handlePanelDragging.bind(this);\n this.handlePanelDropped = this.handlePanelDropped.bind(this);\n this.isColumnSelectionValid = this.isColumnSelectionValid.bind(this);\n\n this.state = {\n linkInProgress: undefined,\n selectedIds: new Set<string>(),\n isDraggingPanel: false,\n };\n }\n\n componentDidMount(): void {\n const { layout } = this.props;\n this.startListening(layout);\n this.updateSelectionValidators();\n }\n\n componentDidUpdate(prevProps: LinkerProps): void {\n const { activeTool, layout } = this.props;\n if (layout !== prevProps.layout) {\n this.stopListening(prevProps.layout);\n this.startListening(layout);\n }\n if (activeTool !== prevProps.activeTool) {\n this.updateSelectionValidators();\n if (activeTool === ToolType.DEFAULT) {\n this.reset();\n }\n }\n }\n\n componentDidCatch(error: Error, info: ErrorInfo): void {\n log.error('componentDidCatch', error, info);\n }\n\n componentWillUnmount(): void {\n const { layout } = this.props;\n this.stopListening(layout);\n }\n\n startListening(layout: GoldenLayout): void {\n layout.on('stateChanged', this.handleLayoutStateChanged);\n\n const { eventHub } = layout;\n eventHub.on(IrisGridEvent.COLUMN_SELECTED, this.handleGridColumnSelect);\n eventHub.on(IrisGridEvent.DATA_SELECTED, this.handleUpdateValues);\n eventHub.on(IrisGridEvent.STATE_CHANGED, this.handleStateChange);\n eventHub.on(ChartEvent.COLUMN_SELECTED, this.handleChartColumnSelect);\n eventHub.on(PanelEvent.CLONED, this.handlePanelCloned);\n eventHub.on(\n InputFilterEvent.COLUMN_SELECTED,\n this.handleFilterColumnSelect\n );\n eventHub.on(InputFilterEvent.COLUMNS_CHANGED, this.handleColumnsChanged);\n eventHub.on(PanelEvent.CLOSE, this.handlePanelClosed);\n eventHub.on(PanelEvent.CLOSED, this.handlePanelClosed);\n eventHub.on(PanelEvent.DRAGGING, this.handlePanelDragging);\n eventHub.on(PanelEvent.DROPPED, this.handlePanelDropped);\n }\n\n stopListening(layout: GoldenLayout): void {\n layout.off('stateChanged', this.handleLayoutStateChanged);\n\n const { eventHub } = layout;\n eventHub.off(IrisGridEvent.COLUMN_SELECTED, this.handleGridColumnSelect);\n eventHub.off(IrisGridEvent.DATA_SELECTED, this.handleUpdateValues);\n eventHub.off(IrisGridEvent.STATE_CHANGED, this.handleStateChange);\n eventHub.off(ChartEvent.COLUMN_SELECTED, this.handleChartColumnSelect);\n eventHub.off(PanelEvent.CLONED, this.handlePanelCloned);\n eventHub.off(\n InputFilterEvent.COLUMN_SELECTED,\n this.handleFilterColumnSelect\n );\n eventHub.off(InputFilterEvent.COLUMNS_CHANGED, this.handleColumnsChanged);\n eventHub.off(PanelEvent.CLOSE, this.handlePanelClosed);\n eventHub.off(PanelEvent.CLOSED, this.handlePanelClosed);\n eventHub.off(PanelEvent.DRAGGING, this.handlePanelDragging);\n eventHub.off(PanelEvent.DROPPED, this.handlePanelDropped);\n }\n\n reset(): void {\n this.setState({\n linkInProgress: undefined,\n selectedIds: new Set<string>(),\n });\n }\n\n handleCancel(): void {\n const { linkInProgress } = this.state;\n if (linkInProgress == null) {\n const { setActiveTool } = this.props;\n setActiveTool(ToolType.DEFAULT);\n }\n this.setState({ linkInProgress: undefined });\n }\n\n handleDone(): void {\n const { setActiveTool } = this.props;\n setActiveTool(ToolType.DEFAULT);\n }\n\n handleChartColumnSelect(panel: PanelComponent, column: LinkColumn): void {\n this.columnSelected(panel, column, true);\n }\n\n handleFilterColumnSelect(panel: PanelComponent, column: LinkColumn): void {\n log.debug('handleFilterColumnSelect', this.isOverlayShown());\n const {\n links,\n localDashboardId,\n setActiveTool,\n setDashboardIsolatedLinkerPanelId,\n } = this.props;\n\n const panelId = LayoutUtils.getIdFromPanel(panel);\n const panelLinks = links.filter(\n link => link.start?.panelId === panelId || link.end?.panelId === panelId\n );\n\n if (!this.isOverlayShown() && panelId != null) {\n // Initial click on the filter source button with linker inactive\n // Show linker in isolated mode for panel\n setActiveTool(ToolType.LINKER);\n setDashboardIsolatedLinkerPanelId(localDashboardId, panelId);\n\n if (panelLinks.length === 0) {\n // Source not linked - start new link in isolated linker mode\n // Need to pass panelId for overrideIsolatedLinkerPanelId\n // as redux prop update at this point not yet propagated\n this.columnSelected(panel, column, true, panelId);\n }\n return;\n }\n\n // Filter source clicked with linker active\n this.columnSelected(panel, column, true);\n }\n\n handleColumnsChanged(panel: PanelComponent, columns: LinkColumn[]): void {\n log.debug('handleColumnsChanged', panel, columns);\n const { links } = this.props;\n const panelId = LayoutUtils.getIdFromPanel(panel);\n if (panelId == null) {\n log.error('Invalid panelId', panel);\n return;\n }\n // Delete links that start or end on non-existent column in the updated panel\n const linksToDelete = links.filter(\n ({ start, end }) =>\n (start.panelId === panelId &&\n LinkerUtils.findColumn(columns, start) == null) ||\n (end != null &&\n end.panelId === panelId &&\n LinkerUtils.findColumn(columns, end) == null)\n );\n this.deleteLinks(linksToDelete);\n }\n\n handleGridColumnSelect(panel: PanelComponent, column: LinkColumn): void {\n if (!isLinkableColumn(column)) {\n log.debug2('Column is not filterable');\n return;\n }\n this.columnSelected(panel, column);\n }\n\n /**\n * Track a column selection and build the link from it.\n * @param panel The panel component that is the source for the column selection\n * @param column The column that was selected\n * @param isAlwaysEndPoint True if the selection is always the end point, even if it's the first column selected. Defaults to false.\n * @param overrideIsolatedLinkerPanelId isolatedLinkerPanelId to use when method is called before prop changes propagate\n */\n columnSelected(\n panel: PanelComponent,\n column: LinkColumn,\n isAlwaysEndPoint = false,\n overrideIsolatedLinkerPanelId?: string | string[]\n ): void {\n if (overrideIsolatedLinkerPanelId === undefined && !this.isOverlayShown()) {\n return;\n }\n const { isolatedLinkerPanelId } = this.props;\n const { linkInProgress } = this.state;\n const panelId = LayoutUtils.getIdFromPanel(panel);\n if (panelId == null) {\n return;\n }\n const panelComponent = LayoutUtils.getComponentNameFromPanel(panel);\n const { name: columnName, type: columnType } = column;\n if (linkInProgress == null || linkInProgress.start == null) {\n const newLink: Link = {\n id: shortid.generate(),\n start: {\n panelId,\n panelComponent,\n columnName,\n columnType,\n },\n // Link starts with type Invalid as linking a source to itself is not allowed\n type: 'invalid',\n isReversed: isAlwaysEndPoint,\n };\n\n log.debug('starting link', newLink);\n\n this.setState({ linkInProgress: newLink });\n } else {\n const { links } = this.props;\n const { start, id, isReversed } = linkInProgress;\n const end = {\n panelId,\n panelComponent,\n columnName,\n columnType,\n };\n\n const type = LinkerUtils.getLinkType(\n isReversed !== undefined && isReversed ? end : start,\n isReversed !== undefined && isReversed ? start : end,\n overrideIsolatedLinkerPanelId ?? isolatedLinkerPanelId\n );\n\n switch (type) {\n case 'invalid':\n log.debug('Ignore invalid link connection', linkInProgress, end);\n return;\n case 'filterSource': {\n // filterSource links have a limit of 1 link per target\n // New link validation passed, delete existing links before adding the new one\n const existingLinkPanelId =\n isReversed !== undefined && isReversed\n ? start.panelId\n : end.panelId;\n // In cases with multiple targets per panel (i.e. chart filters)\n // links would have to be filtered by panelId and columnName and columnType\n const linksToDelete = links.filter(\n ({ end: panelLinkEnd }) =>\n panelLinkEnd?.panelId === existingLinkPanelId\n );\n this.deleteLinks(linksToDelete);\n break;\n }\n case 'chartLink': {\n const existingLinkEnd = isReversed === true ? start : end;\n const existingLinkStart = isReversed === true ? end : start;\n log.debug('creating chartlink', { existingLinkEnd, start, end });\n // Don't allow linking more than one column per source to each chart column\n const linksToDelete = links.filter(\n ({ end: panelLinkEnd, start: panelLinkStart }) =>\n panelLinkStart?.panelId === existingLinkStart.panelId &&\n panelLinkEnd?.panelId === existingLinkEnd.panelId &&\n panelLinkEnd?.columnName === existingLinkEnd.columnName &&\n panelLinkEnd?.columnType === existingLinkEnd.columnType\n );\n this.deleteLinks(linksToDelete);\n break;\n }\n case 'tableLink':\n // No-op\n break;\n }\n\n // Create a completed link from link in progress\n const newLink: Link = {\n start: isReversed !== undefined && isReversed ? end : start,\n end: isReversed !== undefined && isReversed ? start : end,\n id,\n type,\n operator: FilterType.eq,\n };\n log.info('creating link', newLink);\n\n this.setState(\n { linkInProgress: undefined, selectedIds: new Set<string>([id]) },\n () => {\n // Adding link after updating state\n // otherwise both new link and linkInProgress could be rendered at the same time\n // resulting in \"multiple children with same key\" error\n this.addLinks([newLink]);\n }\n );\n }\n }\n\n unsetFilterValueForLink(link: Link): void {\n const { panelManager } = this.props;\n if (link.end) {\n const { end } = link;\n const { panelId, columnName, columnType } = end;\n const endPanel = panelManager.getOpenedPanelById(panelId);\n if (!endPanel) {\n log.debug(\n 'endPanel no longer exists, ignoring unsetFilterValue',\n panelId\n );\n } else if (isLinkablePanel(endPanel)) {\n endPanel.unsetFilterValue(columnName, columnType);\n } else {\n log.debug('endPanel.unsetFilterValue not implemented', endPanel);\n }\n }\n }\n\n /**\n * Set filters for a given panel ID\n * @param panelId ID of panel to set filters on\n * @param filterMap Map of column name to column type, text, and value\n */\n setPanelFilterMap(panelId: string, filterMap: LinkFilterMap): void {\n log.debug('Set filter data for panel:', panelId, filterMap);\n const { panelManager } = this.props;\n const panel = panelManager.getOpenedPanelById(panelId);\n if (!panel) {\n log.debug('panel no longer exists, ignoring setFilterMap', panelId);\n } else if (isLinkablePanel(panel)) {\n panel.setFilterMap(filterMap);\n } else {\n log.debug('panel.setFilterMap not implemented', panelId, panel);\n }\n }\n\n addLinks(links: Link[]): void {\n const { addDashboardLinks, localDashboardId } = this.props;\n addDashboardLinks(localDashboardId, links);\n }\n\n deleteLinks(links: Link[], clearAll = false): void {\n const { localDashboardId } = this.props;\n links.forEach(link => this.unsetFilterValueForLink(link));\n if (clearAll) {\n const { setDashboardLinks } = this.props;\n setDashboardLinks(localDashboardId, []);\n } else if (links.length > 0) {\n const { deleteDashboardLinks } = this.props;\n deleteDashboardLinks(\n localDashboardId,\n links.map(({ id }) => id)\n );\n }\n }\n\n handleAllLinksDeleted(): void {\n const { links, isolatedLinkerPanelId } = this.props;\n if (isolatedLinkerPanelId === undefined) {\n this.deleteLinks(links, true);\n } else {\n const isolatedLinks = links.filter(\n link =>\n link?.start?.panelId === isolatedLinkerPanelId ||\n link?.end?.panelId === isolatedLinkerPanelId\n );\n this.deleteLinks(isolatedLinks);\n }\n this.reset();\n }\n\n handleLinkDeleted(linkId: string): void {\n const { links } = this.props;\n const link = links.find(l => l.id === linkId);\n if (link) {\n this.deleteLinks([link]);\n } else {\n log.error('Unable to find link to delete', linkId);\n }\n }\n\n handleUpdateValues(panel: PanelComponent, dataMap: RowDataMap): void {\n const panelId = LayoutUtils.getIdFromPanel(panel);\n const { dh, links, timeZone } = this.props;\n // Map of panel ID to filterMap\n const panelFilterMap = new Map();\n // Instead of setting filters one by one for each link,\n // combine them so they could be set in a single call per target panel\n for (let i = 0; i < links.length; i += 1) {\n const { start, end, operator } = links[i];\n if (start.panelId === panelId && end != null) {\n const { panelId: endPanelId, columnName, columnType } = end;\n // Map of column name to column type and filter value\n const filterMap = panelFilterMap.has(endPanelId)\n ? panelFilterMap.get(endPanelId)\n : new Map();\n const filterList =\n filterMap.has(columnName) === true\n ? filterMap.get(columnName).filterList\n : [];\n const {\n visibleIndex: startColumnIndex,\n isExpandable,\n isGrouped,\n } = dataMap[start.columnName];\n let { value } = dataMap[start.columnName];\n let text = `${value}`;\n if (value === null && isExpandable && isGrouped) {\n // Clear filter on empty rollup grouping columns\n value = undefined;\n }\n if (columnType != null && TableUtils.isDateType(columnType)) {\n const dateFilterFormatter = new DateTimeColumnFormatter(dh, {\n timeZone,\n showTimeZone: false,\n showTSeparator: true,\n defaultDateTimeFormatString: DateUtils.FULL_DATE_FORMAT,\n });\n // The values are Dates for dateType values, not string like everything else\n text = dateFilterFormatter.format(value as Date);\n }\n const filter = { operator, text, value, startColumnIndex };\n filterList.push(filter);\n filterMap.set(columnName, {\n columnType,\n filterList,\n });\n panelFilterMap.set(endPanelId, filterMap);\n }\n }\n\n // Apply combined filters to all target panels\n panelFilterMap.forEach((filterMap, endPanelId) => {\n this.setPanelFilterMap(endPanelId, filterMap);\n });\n }\n\n handlePanelCloned(panel: PanelComponent, cloneConfig: { id: string }): void {\n const { links } = this.props;\n const panelId = LayoutUtils.getIdFromPanel(panel);\n const cloneId = cloneConfig.id;\n if (panelId != null) {\n const linksToAdd = LinkerUtils.cloneLinksForPanel(\n links,\n panelId,\n cloneId\n );\n this.addLinks(linksToAdd);\n }\n }\n\n handlePanelDragging(componentId: string): void {\n const { links } = this.props;\n for (let i = 0; i < links.length; i += 1) {\n const link = links[i];\n const { start, end } = link;\n if (start.panelId === componentId || end?.panelId === componentId) {\n this.setState({ isDraggingPanel: true });\n return;\n }\n }\n }\n\n handlePanelDropped(): void {\n this.setState({ isDraggingPanel: false });\n }\n\n handlePanelClosed(panelId: string): void {\n // Delete links on PanelEvent.CLOSE and PanelEvent.CLOSED instead of UNMOUNT\n // because the panels can get unmounted on errors and we want to keep the links if that happens\n log.debug(`Panel ${panelId} closed, deleting links.`);\n this.deleteLinksForPanelId(panelId);\n }\n\n handleLinkSelected(linkId: string): void {\n this.setState({ selectedIds: new Set<string>([linkId]) });\n }\n\n handleLinksUpdated(newLinks: Link[]): void {\n const { localDashboardId, setDashboardLinks } = this.props;\n setDashboardLinks(localDashboardId, newLinks);\n }\n\n handleLayoutStateChanged(): void {\n this.forceUpdate();\n }\n\n handleStateChange(): void {\n this.forceUpdate();\n }\n\n handleExited(): void {\n // Has to be done after linker exit animation to avoid flashing non-isolated links\n const { localDashboardId, setDashboardIsolatedLinkerPanelId } = this.props;\n setDashboardIsolatedLinkerPanelId(localDashboardId, undefined);\n }\n\n /**\n * Delete all links for a provided panel ID. Needs to be done whenever a panel is closed or unmounted.\n * @param panelId The panel ID to delete links for\n */\n deleteLinksForPanelId(panelId: string): void {\n const { links } = this.props;\n for (let i = 0; i < links.length; i += 1) {\n const link = links[i];\n const { start, end, id } = link;\n if (start.panelId === panelId || end?.panelId === panelId) {\n this.handleLinkDeleted(id);\n }\n }\n }\n\n getCachedLinks = memoize(\n (\n links: Link[],\n linkInProgress: Link | undefined,\n isolateForPanelId: string | undefined\n ) => {\n const combinedLinks = [...links];\n\n if (linkInProgress != null && linkInProgress.start != null) {\n combinedLinks.push(linkInProgress);\n }\n\n if (isolateForPanelId !== undefined) {\n return combinedLinks.filter(\n link =>\n link?.start?.panelId === isolateForPanelId ||\n link?.end?.panelId === isolateForPanelId ||\n link?.end == null\n );\n }\n // Show all links in regular linker mode -- both isolated and not\n return combinedLinks;\n }\n );\n\n isOverlayShown(): boolean {\n const { activeTool } = this.props;\n return activeTool === ToolType.LINKER;\n }\n\n updateSelectionValidators(): void {\n const {\n activeTool,\n setDashboardColumnSelectionValidator,\n localDashboardId,\n } = this.props;\n switch (activeTool) {\n case ToolType.LINKER:\n setDashboardColumnSelectionValidator(\n localDashboardId,\n this.isColumnSelectionValid\n );\n break;\n default:\n setDashboardColumnSelectionValidator(localDashboardId, undefined);\n break;\n }\n }\n\n updateLinkInProgressType(type: LinkType = 'invalid'): void {\n this.setState(({ linkInProgress }) => {\n if (linkInProgress !== undefined) {\n return {\n linkInProgress: {\n ...linkInProgress,\n type,\n },\n };\n }\n return null;\n });\n }\n\n isColumnSelectionValid(\n panel: PanelComponent,\n tableColumn?: LinkColumn\n ): boolean {\n const { linkInProgress } = this.state;\n const { isolatedLinkerPanelId } = this.props;\n\n if (tableColumn == null) {\n if (linkInProgress?.start != null) {\n // Link started, end point is not a valid target\n this.updateLinkInProgressType();\n }\n return false;\n }\n\n // TODO: Use preview/original type property when core/#3358 is completed\n if (!isLinkableColumn(tableColumn)) {\n log.debug2('Column is not filterable', tableColumn.description);\n if (linkInProgress?.start != null) {\n this.updateLinkInProgressType('invalid');\n }\n return false;\n }\n\n // Link not started yet - no need to update type\n if (linkInProgress?.start == null) {\n return true;\n }\n\n const { isReversed, start } = linkInProgress;\n const panelId = LayoutUtils.getIdFromPanel(panel);\n if (panelId == null) {\n return false;\n }\n\n const end = {\n panelId,\n panelComponent: LayoutUtils.getComponentNameFromPanel(panel),\n columnName: tableColumn.name,\n columnType: tableColumn.type,\n };\n\n const type =\n isReversed !== undefined && isReversed\n ? LinkerUtils.getLinkType(end, start, isolatedLinkerPanelId)\n : LinkerUtils.getLinkType(start, end, isolatedLinkerPanelId);\n\n this.updateLinkInProgressType(type);\n\n return type !== 'invalid';\n }\n\n render(): JSX.Element | null {\n const { links, isolatedLinkerPanelId, panelManager } = this.props;\n const { linkInProgress, selectedIds, isDraggingPanel } = this.state;\n\n const isLinkOverlayShown = this.isOverlayShown();\n const disabled = linkInProgress != null && linkInProgress.start != null;\n const linkerOverlayMessage =\n isolatedLinkerPanelId === undefined\n ? 'Click a column source, then click a column target to create a filter link. The filter comparison operator used by a selected link can be changed. Delete a filter link by clicking the delete button or with alt+click. Click done when finished.'\n : 'Create a link between the source column button and a table column by clicking on one, then the other. Delete a filter link by clicking the delete button or with alt+click. Click done when finished.';\n\n return !isDraggingPanel ? (\n <FadeTransition\n in={isLinkOverlayShown}\n mountOnEnter\n unmountOnExit\n onExited={this.handleExited}\n >\n <LinkerOverlayContent\n disabled={disabled}\n panelManager={panelManager}\n links={this.getCachedLinks(\n links,\n linkInProgress,\n isolatedLinkerPanelId\n )}\n selectedIds={selectedIds}\n messageText={linkerOverlayMessage}\n onLinkSelected={this.handleLinkSelected}\n onLinkDeleted={this.handleLinkDeleted}\n onAllLinksDeleted={this.handleAllLinksDeleted}\n onLinksUpdated={this.handleLinksUpdated}\n onDone={this.handleDone}\n onCancel={this.handleCancel}\n />\n </FadeTransition>\n ) : null;\n }\n}\n\nconst ConnectedLinker = connector(Linker);\n\nexport default ConnectedLinker;\n"],"mappings":"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"}
@@ -180,7 +180,7 @@ export declare class ChartPanel extends Component<ChartPanelProps, ChartPanelSta
180
180
  pruneFilterMaps(): void;
181
181
  render(): ReactElement;
182
182
  }
183
- declare const ConnectedChartPanel: import("react-redux").ConnectedComponent<typeof ChartPanel, import("react-redux").Omit<Pick<OwnProps & StateProps & DispatchProps & React.RefAttributes<ChartPanel>, "glContainer" | "metadata" | "glEventHub" | "localDashboardId" | "inputFilters" | "links" | "makeModel" | "Plotly" | keyof DispatchProps | keyof React.RefAttributes<ChartPanel>> & Partial<Pick<OwnProps & StateProps & DispatchProps & React.RefAttributes<ChartPanel>, "source" | "columnSelectionValidator" | "settings" | "panelState" | "isLinkerActive" | "sourcePanel" | "containerRef">> & Partial<Pick<{
183
+ declare const ConnectedChartPanel: import("react-redux").ConnectedComponent<typeof ChartPanel, import("react-redux").Omit<Pick<OwnProps & StateProps & DispatchProps & React.RefAttributes<ChartPanel>, "glContainer" | "metadata" | "glEventHub" | "localDashboardId" | "inputFilters" | "links" | "makeModel" | "Plotly" | keyof DispatchProps | keyof React.RefAttributes<ChartPanel>> & Partial<Pick<OwnProps & StateProps & DispatchProps & React.RefAttributes<ChartPanel>, "source" | "panelState" | "columnSelectionValidator" | "settings" | "isLinkerActive" | "sourcePanel" | "containerRef">> & Partial<Pick<{
184
184
  columnSelectionValidator: null;
185
185
  isLinkerActive: boolean;
186
186
  source: null;
@@ -1 +1 @@
1
- {"version":3,"file":"ChartPanel.d.ts","sourceRoot":"","sources":["../../src/panels/ChartPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChartPanel.d.ts","sourceRoot":"","sources":["../../src/panels/ChartPanel.tsx"],"names":[],"mappings":"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"}
@@ -7,12 +7,11 @@ import React, { Component } from 'react';
7
7
  import classNames from 'classnames';
8
8
  import memoize from 'memoize-one';
9
9
  import { connect } from 'react-redux';
10
- import { CSSTransition } from 'react-transition-group';
11
10
  import debounce from 'lodash.debounce';
12
11
  import { Chart, ChartUtils, isFigureChartModel } from '@deephaven/chart';
13
12
  import { getOpenedPanelMapForDashboard, LayoutUtils } from '@deephaven/dashboard';
14
13
  import { IrisGridUtils } from '@deephaven/iris-grid';
15
- import { ThemeExport } from '@deephaven/components';
14
+ import { FadeTransition } from '@deephaven/components';
16
15
  import Log from '@deephaven/log';
17
16
  import { getActiveTool, getSettings, setActiveTool as setActiveToolAction } from '@deephaven/redux';
18
17
  import { assertNotNull, Pending, PromiseUtils, TextUtils } from '@deephaven/utils';
@@ -903,10 +902,8 @@ export class ChartPanel extends Component {
903
902
  Plotly: Plotly,
904
903
  containerRef: containerRef
905
904
  })
906
- }), /*#__PURE__*/_jsx(CSSTransition, {
905
+ }), /*#__PURE__*/_jsx(FadeTransition, {
907
906
  in: isWaitingForFilter && !isSelectingColumn && !isLoading,
908
- timeout: ThemeExport.transitionMs,
909
- classNames: "fade",
910
907
  mountOnEnter: true,
911
908
  unmountOnExit: true,
912
909
  children: /*#__PURE__*/_jsx(ChartFilterOverlay, {
@@ -918,10 +915,8 @@ export class ChartPanel extends Component {
918
915
  waitingFilterMap: waitingFilterMap,
919
916
  waitingInputMap: waitingInputMap
920
917
  })
921
- }), /*#__PURE__*/_jsx(CSSTransition, {
918
+ }), /*#__PURE__*/_jsx(FadeTransition, {
922
919
  in: isSelectingColumn,
923
- timeout: ThemeExport.transitionMs,
924
- classNames: "fade",
925
920
  mountOnEnter: true,
926
921
  unmountOnExit: true,
927
922
  children: /*#__PURE__*/_jsx(ChartColumnSelectorOverlay, {
@@ -1 +1 @@
1
- {"version":3,"file":"ChartPanel.js","names":["React","Component","classNames","memoize","connect","CSSTransition","debounce","Chart","ChartUtils","isFigureChartModel","getOpenedPanelMapForDashboard","LayoutUtils","IrisGridUtils","ThemeExport","Log","getActiveTool","getSettings","setActiveTool","setActiveToolAction","assertNotNull","Pending","PromiseUtils","TextUtils","WidgetPanel","ToolType","InputFilterEvent","ChartEvent","getColumnSelectionValidatorForDashboard","getInputFiltersForDashboard","getIsolatedLinkerPanelIdForDashboard","getLinksForDashboard","getTableMapForDashboard","setDashboardIsolatedLinkerPanelId","setDashboardIsolatedLinkerPanelIdAction","ChartFilterOverlay","ChartColumnSelectorOverlay","isChartPanelFigureMetadata","isChartPanelTableMetadata","jsx","_jsx","jsxs","_jsxs","log","module","UPDATE_MODEL_DEBOUNCE","hasInputFilter","panel","inputFilters","hasPanelState","panelState","ChartPanel","constructor","props","_defineProperty","isFilterRequired","columnMap","filterMap","Map","waitingInputMap","forEach","filter","name","delete","linkedColumnMap","inputFilterMap","waitingFilterMap","value","column","i","length","inputFilter","type","get","set","links","panelId","getIdFromPanel","link","columnName","start","has","end","columnSelectionValidator","Array","from","values","map","isValid","isActive","handleColumnSelected","bind","handleColumnMouseEnter","handleColumnMouseLeave","handleDisconnect","handleReconnect","handleFilterAdd","handleHide","handleError","handleLoadError","handleLoadSuccess","handleSettingsChanged","handleOpenLinker","handleShow","handleSourceColumnChange","handleSourceFilterChange","handleSourceSortChange","handleTabBlur","handleTabFocus","handleUpdate","updateModelFromSource","handleClearAllFilters","panelContainer","createRef","pending","metadata","filterValueMap","settings","state","error","undefined","isDisconnected","isLoading","isLoaded","isLinked","model","componentDidMount","isHidden","setState","initModel","componentDidUpdate","prevProps","prevState","source","makeModel","pruneFilterMaps","updateChangedInputFilters","updateFilters","updatePanelState","updateSettings","startListeningToSource","stopListeningToSource","componentWillUnmount","cancel","add","resolved","close","then","table","debug","dh","addEventListener","Table","EVENT_CUSTOMCOLUMNSCHANGED","EVENT_FILTERCHANGED","EVENT_SORTCHANGED","removeEventListener","loadModelIfNecessary","glContainer","glEventHub","emit","COLUMN_SELECTED","_ref","Error","columns","openInputFilter","localDashboardId","LINKER","sendColumnChange","updateColumnFilters","prevModel","updateInputFilters","size","isCanceled","debug2","plot","Figure","create","makeFigureSettings","figure","setFigure","catch","sourcePanel","tableSettings","sourcePanelState","extractTableSettings","update","_ref2","prevSettings","_objectSpread","setActive","_ref3","OPEN_INPUT","title","concat","isValueShown","createNewStack","focusElement","COLUMNS_CHANGED","getFilterColumnMap","getCoordinateForColumn","_element$getBoundingC","className","makeButtonClassName","current","element","querySelector","rect","getBoundingClientRect","width","height","x","left","y","bottom","setFilterMap","filterMapParam","_updatedFilterMap","updatedFilterMap","_ref4","columnType","filterList","unsetFilterValue","getInputFilterColumnMap","_inputFilterMap$get","filterValue","inputFilterValue","prevInputFilters","deletedInputFilters","prevInputFilter","find","deleteInputFilters","changedInputFilters","includes","forceUpdate","arguments","needsUpdate","linkValue","_ref5","getWaitingInputMap","setFilter","defaultTitle","getDefaultTitle","filterTitle","join","entries","_ref6","setTitle","newState","render","_name","isLinkerActive","Plotly","containerRef","getLinkedColumnMap","getWaitingFilterMap","errorMessage","isWaitingForFilter","isSelectingColumn","componentPanel","onHide","onClearAllFilters","onShow","onTabBlur","onTabFocus","widgetName","widgetType","children","ref","onDisconnect","onReconnect","onUpdate","onError","onSettingsChanged","in","timeout","transitionMs","mountOnEnter","unmountOnExit","onAdd","onOpenLinker","getSelectorColumns","onColumnSelected","onMouseEnter","onMouseLeave","mapStateToProps","ownProps","sourcePanelId","panelTableMap","openedPanelMap","activeTool","isolatedLinkerPanelId","ConnectedChartPanel","forwardRef"],"sources":["../../src/panels/ChartPanel.tsx"],"sourcesContent":["import React, { Component, ReactElement, RefObject } from 'react';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport { connect } from 'react-redux';\nimport { CSSTransition } from 'react-transition-group';\nimport debounce from 'lodash.debounce';\nimport {\n Chart,\n ChartModel,\n ChartModelSettings,\n ChartUtils,\n FilterMap,\n isFigureChartModel,\n} from '@deephaven/chart';\nimport type PlotlyType from 'plotly.js';\nimport {\n DashboardPanelProps,\n getOpenedPanelMapForDashboard,\n LayoutUtils,\n PanelComponent,\n PanelMetadata,\n PanelProps,\n} from '@deephaven/dashboard';\nimport {\n IrisGridUtils,\n InputFilter,\n ColumnName,\n TableSettings,\n} from '@deephaven/iris-grid';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { ThemeExport } from '@deephaven/components';\nimport Log from '@deephaven/log';\nimport {\n getActiveTool,\n getSettings,\n RootState,\n setActiveTool as setActiveToolAction,\n WorkspaceSettings,\n} from '@deephaven/redux';\nimport {\n assertNotNull,\n Pending,\n PromiseUtils,\n TextUtils,\n} from '@deephaven/utils';\nimport WidgetPanel from './WidgetPanel';\nimport ToolType from '../linker/ToolType';\nimport { InputFilterEvent, ChartEvent } from '../events';\nimport {\n getColumnSelectionValidatorForDashboard,\n getInputFiltersForDashboard,\n getIsolatedLinkerPanelIdForDashboard,\n getLinksForDashboard,\n getTableMapForDashboard,\n setDashboardIsolatedLinkerPanelId as setDashboardIsolatedLinkerPanelIdAction,\n} from '../redux';\nimport ChartFilterOverlay, { ColumnMap } from './ChartFilterOverlay';\nimport ChartColumnSelectorOverlay, {\n SelectorColumn,\n} from './ChartColumnSelectorOverlay';\nimport './ChartPanel.scss';\nimport { Link, LinkFilterMap } from '../linker/LinkerUtils';\nimport { PanelState as IrisGridPanelState } from './IrisGridPanel';\nimport {\n isChartPanelFigureMetadata,\n isChartPanelTableMetadata,\n} from './ChartPanelUtils';\nimport { ColumnSelectionValidator } from '../linker/ColumnSelectionValidator';\n\nconst log = Log.module('ChartPanel');\nconst UPDATE_MODEL_DEBOUNCE = 150;\n\nexport type InputFilterMap = Map<string, InputFilter>;\n\nexport type LinkedColumnMap = Map<string, { name: string; type: string }>;\n\n/** @deprecated Use `PanelMetadata` instead, providing a `name` instead of `figure` */\nexport interface ChartPanelFigureMetadata extends PanelMetadata {\n /**\n * @deprecated use `name` instead\n */\n figure?: string;\n}\n\nexport interface ChartPanelTableMetadata extends PanelMetadata {\n table: string;\n sourcePanelId: string;\n settings: {\n isLinked: boolean;\n title: string;\n xAxis: string;\n series: string[];\n type: keyof dh.plot.SeriesPlotStyle;\n };\n tableSettings: TableSettings;\n}\n\nexport type ChartPanelMetadata =\n | PanelMetadata\n | ChartPanelFigureMetadata\n | ChartPanelTableMetadata;\n\ntype Settings = Record<string, unknown>;\n\nexport interface GLChartPanelState {\n filterValueMap?: [string, unknown][];\n settings: Partial<ChartModelSettings>;\n tableSettings?: TableSettings;\n irisGridState?: {\n advancedFilters: unknown;\n quickFilters: unknown;\n sorts: unknown;\n };\n irisGridPanelState?: {\n partitionColumns: string[];\n partitions: unknown[];\n };\n table?: string;\n figure?: string;\n}\ninterface OwnProps extends DashboardPanelProps {\n metadata: ChartPanelMetadata;\n /** Function to build the ChartModel used by this ChartPanel. Can return a promise. */\n makeModel: () => Promise<ChartModel>;\n localDashboardId: string;\n Plotly?: typeof PlotlyType;\n /** The plot container div */\n containerRef?: RefObject<HTMLDivElement>;\n\n panelState?: GLChartPanelState;\n}\n\ninterface StateProps {\n inputFilters: InputFilter[];\n links: Link[];\n isLinkerActive: boolean;\n source?: dh.Table;\n sourcePanel?: PanelComponent;\n columnSelectionValidator?: ColumnSelectionValidator;\n settings: Partial<WorkspaceSettings>;\n}\n\ninterface DispatchProps {\n setActiveTool: (tool: string) => void;\n setDashboardIsolatedLinkerPanelId: (\n id: string,\n secondParam: undefined\n ) => void;\n}\n\ninterface ChartPanelState {\n settings: Partial<ChartModelSettings>;\n error?: unknown;\n isActive: boolean;\n isDisconnected: boolean;\n isLoading: boolean;\n isLoaded: boolean;\n isLinked: boolean;\n\n // Map of all non-empty filters applied to the chart.\n // Initialize the filter map to the previously stored values; input filters will be applied after load.\n filterMap: FilterMap;\n // Map of filter values set from links, stored in panelState.\n // Combined with inputFilters to get applied filters (filterMap).\n filterValueMap: FilterMap;\n model?: ChartModel;\n columnMap: ColumnMap;\n\n // eslint-disable-next-line react/no-unused-state\n panelState?: GLChartPanelState;\n}\n\ninterface LoadState {\n isLoading: boolean;\n}\n\nfunction hasInputFilter(\n panel: PanelProps\n): panel is PanelProps & { inputFilters: InputFilter[] } {\n return (\n (panel as PanelProps & { inputFilters: InputFilter[] }).inputFilters != null\n );\n}\n\nfunction hasPanelState(\n panel: unknown\n): panel is { panelState: IrisGridPanelState } {\n return (panel as { panelState: IrisGridPanelState }).panelState != null;\n}\n\nexport type ChartPanelProps = OwnProps &\n StateProps &\n DispatchProps &\n React.RefAttributes<ChartPanel>;\n\nexport class ChartPanel extends Component<ChartPanelProps, ChartPanelState> {\n static defaultProps = {\n columnSelectionValidator: null,\n isLinkerActive: false,\n source: null,\n sourcePanel: null,\n panelState: null,\n settings: {},\n containerRef: null,\n };\n\n static displayName = 'ChartPanel';\n\n static COMPONENT = 'ChartPanel';\n\n constructor(props: ChartPanelProps) {\n super(props);\n\n this.handleColumnSelected = this.handleColumnSelected.bind(this);\n this.handleColumnMouseEnter = this.handleColumnMouseEnter.bind(this);\n this.handleColumnMouseLeave = this.handleColumnMouseLeave.bind(this);\n this.handleDisconnect = this.handleDisconnect.bind(this);\n this.handleReconnect = this.handleReconnect.bind(this);\n this.handleFilterAdd = this.handleFilterAdd.bind(this);\n this.handleHide = this.handleHide.bind(this);\n this.handleError = this.handleError.bind(this);\n this.handleLoadError = this.handleLoadError.bind(this);\n this.handleLoadSuccess = this.handleLoadSuccess.bind(this);\n this.handleSettingsChanged = this.handleSettingsChanged.bind(this);\n this.handleOpenLinker = this.handleOpenLinker.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleSourceColumnChange = this.handleSourceColumnChange.bind(this);\n this.handleSourceFilterChange = this.handleSourceFilterChange.bind(this);\n this.handleSourceSortChange = this.handleSourceSortChange.bind(this);\n this.handleTabBlur = this.handleTabBlur.bind(this);\n this.handleTabFocus = this.handleTabFocus.bind(this);\n this.handleUpdate = this.handleUpdate.bind(this);\n this.updateModelFromSource = debounce(\n this.updateModelFromSource.bind(this),\n UPDATE_MODEL_DEBOUNCE\n );\n this.handleClearAllFilters = this.handleClearAllFilters.bind(this);\n\n this.panelContainer = React.createRef();\n this.pending = new Pending();\n\n const { metadata, panelState } = props;\n const { filterValueMap = [], settings = {} } = panelState ?? {};\n\n this.state = {\n settings,\n error: undefined,\n isActive: false,\n isDisconnected: false,\n isLoading: false,\n isLoaded: false,\n isLinked:\n metadata != null &&\n isChartPanelTableMetadata(metadata) &&\n metadata.settings.isLinked,\n\n // Map of all non-empty filters applied to the chart.\n // Initialize the filter map to the previously stored values; input filters will be applied after load.\n filterMap: new Map(filterValueMap),\n // Map of filter values set from links, stored in panelState.\n // Combined with inputFilters to get applied filters (filterMap).\n filterValueMap: new Map(filterValueMap),\n model: undefined,\n columnMap: new Map(),\n\n // eslint-disable-next-line react/no-unused-state\n panelState,\n };\n }\n\n componentDidMount(): void {\n if (!this.isHidden()) {\n this.setState({ isActive: true });\n this.initModel();\n }\n }\n\n componentDidUpdate(\n prevProps: ChartPanelProps,\n prevState: ChartPanelState\n ): void {\n const { inputFilters, source, makeModel } = this.props;\n const { columnMap, model, filterMap, filterValueMap, isLinked, settings } =\n this.state;\n\n if (!model) {\n return;\n }\n\n if (makeModel !== prevProps.makeModel) {\n this.initModel();\n }\n\n if (columnMap !== prevState.columnMap) {\n this.pruneFilterMaps();\n }\n\n if (inputFilters !== prevProps.inputFilters) {\n this.updateChangedInputFilters(inputFilters, prevProps.inputFilters);\n }\n\n if (filterMap !== prevState.filterMap) {\n this.updateFilters();\n } else if (filterValueMap !== prevState.filterValueMap) {\n this.updatePanelState();\n }\n\n if (settings !== prevState.settings && isFigureChartModel(model)) {\n model.updateSettings(settings);\n this.updatePanelState();\n }\n\n if (isLinked !== prevState.isLinked) {\n if (source) {\n if (isLinked) {\n this.startListeningToSource(source);\n this.updateModelFromSource();\n } else {\n this.stopListeningToSource(source);\n }\n }\n } else if (isLinked && source !== prevProps.source) {\n if (prevProps.source) {\n this.stopListeningToSource(prevProps.source);\n }\n if (source) {\n this.startListeningToSource(source);\n this.updateModelFromSource();\n }\n }\n }\n\n componentWillUnmount(): void {\n this.pending.cancel();\n\n const { model } = this.state;\n const { source } = this.props;\n if (model != null && source) {\n this.stopListeningToSource(source);\n }\n }\n\n panelContainer: RefObject<HTMLDivElement>;\n\n pending: Pending;\n\n initModel(): void {\n this.setState({ isLoading: true, isLoaded: false, error: undefined });\n\n const { makeModel } = this.props;\n\n this.pending\n .add(makeModel(), resolved => {\n resolved.close();\n })\n .then(this.handleLoadSuccess, this.handleLoadError);\n }\n\n getWaitingInputMap = memoize(\n (\n isFilterRequired: boolean,\n columnMap: ColumnMap,\n filterMap: FilterMap\n ): Map<string, { name: string; type: string }> => {\n if (!isFilterRequired) {\n return new Map();\n }\n const waitingInputMap = new Map(columnMap);\n filterMap.forEach((filter, name) => {\n waitingInputMap.delete(name);\n });\n return waitingInputMap;\n }\n );\n\n getWaitingFilterMap = memoize(\n (\n isFilterRequired: boolean,\n columnMap: ColumnMap,\n filterMap: FilterMap,\n linkedColumnMap: LinkedColumnMap,\n inputFilterMap: InputFilterMap\n ) => {\n if (!isFilterRequired) {\n return new Map();\n }\n\n const waitingFilterMap = new Map(columnMap);\n filterMap.forEach((filter, name) => {\n waitingFilterMap.delete(name);\n });\n inputFilterMap.forEach((value, name) => {\n waitingFilterMap.delete(name);\n });\n linkedColumnMap.forEach((column, name) => {\n waitingFilterMap.delete(name);\n });\n return waitingFilterMap;\n }\n );\n\n getInputFilterColumnMap = memoize(\n (columnMap: ColumnMap, inputFilters: InputFilter[]) => {\n const inputFilterMap = new Map<string, InputFilter>();\n for (let i = 0; i < inputFilters.length; i += 1) {\n const inputFilter = inputFilters[i];\n const { name, type } = inputFilter;\n const column = columnMap.get(name);\n if (column != null && column.type === type) {\n inputFilterMap.set(name, inputFilter);\n }\n }\n return inputFilterMap;\n }\n );\n\n getLinkedColumnMap = memoize((columnMap: ColumnMap, links: Link[]) => {\n const linkedColumnMap = new Map<string, { name: string; type: string }>();\n const panelId = LayoutUtils.getIdFromPanel(this);\n for (let i = 0; i < links.length; i += 1) {\n const link = links[i];\n let columnName = null;\n if (\n link.start != null &&\n link.start.panelId === panelId &&\n columnMap.has(link.start.columnName)\n ) {\n columnName = link.start.columnName;\n } else if (\n link.end &&\n link.end.panelId === panelId &&\n columnMap.has(link.end.columnName)\n ) {\n columnName = link.end.columnName;\n }\n\n if (columnName != null && columnMap.has(columnName)) {\n const column = columnMap.get(columnName);\n assertNotNull(column);\n linkedColumnMap.set(columnName, column);\n }\n }\n return linkedColumnMap;\n });\n\n getSelectorColumns = memoize(\n (\n columnMap: ColumnMap,\n linkedColumnMap: LinkedColumnMap,\n columnSelectionValidator?: ColumnSelectionValidator\n ) =>\n Array.from(columnMap.values()).map(column => ({\n name: column.name,\n type: column.type,\n isValid: columnSelectionValidator\n ? columnSelectionValidator(this, column)\n : false,\n isActive: linkedColumnMap.has(column.name),\n }))\n );\n\n startListeningToSource(table: dh.Table): void {\n log.debug('startListeningToSource', table);\n const { model } = this.state;\n assertNotNull(model);\n const { dh } = model;\n table.addEventListener(\n dh.Table.EVENT_CUSTOMCOLUMNSCHANGED,\n this.handleSourceColumnChange\n );\n table.addEventListener(\n dh.Table.EVENT_FILTERCHANGED,\n this.handleSourceFilterChange\n );\n table.addEventListener(\n dh.Table.EVENT_SORTCHANGED,\n this.handleSourceSortChange\n );\n }\n\n stopListeningToSource(table: dh.Table): void {\n log.debug('stopListeningToSource', table);\n const { model } = this.state;\n assertNotNull(model);\n const { dh } = model;\n table.removeEventListener(\n dh.Table.EVENT_CUSTOMCOLUMNSCHANGED,\n this.handleSourceColumnChange\n );\n table.removeEventListener(\n dh.Table.EVENT_FILTERCHANGED,\n this.handleSourceFilterChange\n );\n table.removeEventListener(\n dh.Table.EVENT_SORTCHANGED,\n this.handleSourceSortChange\n );\n }\n\n loadModelIfNecessary(): void {\n const { isActive, isLoaded, isLoading } = this.state;\n if (isActive && !isLoaded && !isLoading) {\n this.initModel();\n }\n }\n\n isHidden(): boolean {\n const { glContainer } = this.props;\n const { isHidden } = glContainer;\n return isHidden;\n }\n\n handleColumnSelected(columnName: string): void {\n const { glEventHub } = this.props;\n const { columnMap } = this.state;\n glEventHub.emit(\n ChartEvent.COLUMN_SELECTED,\n this,\n columnMap.get(columnName)\n );\n }\n\n handleColumnMouseEnter({ type, name }: SelectorColumn): void {\n const { columnSelectionValidator } = this.props;\n log.debug('handleColumnMouseEnter', columnSelectionValidator, type, name);\n if (!columnSelectionValidator) {\n return;\n }\n columnSelectionValidator(this, { type, name });\n }\n\n handleColumnMouseLeave(): void {\n const { columnSelectionValidator } = this.props;\n log.debug('handleColumnMouseLeave', columnSelectionValidator);\n if (!columnSelectionValidator) {\n return;\n }\n columnSelectionValidator(this, undefined);\n }\n\n handleDisconnect(): void {\n this.setState({\n error: new Error('Figure disconnected'),\n isDisconnected: true,\n });\n }\n\n handleFilterAdd(columns: InputFilter[]): void {\n for (let i = 0; i < columns.length; i += 1) {\n this.openInputFilter(columns[i]);\n }\n }\n\n handleOpenLinker(): void {\n const {\n localDashboardId,\n setActiveTool,\n setDashboardIsolatedLinkerPanelId,\n } = this.props;\n setDashboardIsolatedLinkerPanelId(localDashboardId, undefined);\n setActiveTool(ToolType.LINKER);\n }\n\n handleReconnect(): void {\n this.setState({ isDisconnected: false, error: undefined });\n this.sendColumnChange();\n this.updateColumnFilters();\n }\n\n handleLoadSuccess(model: ChartModel): void {\n log.debug('handleLoadSuccess');\n\n const { model: prevModel } = this.state;\n this.setState(\n {\n model,\n isLoaded: true,\n },\n () => {\n const { inputFilters, source } = this.props;\n const { filterMap, isLinked } = this.state;\n if (model !== prevModel) {\n this.sendColumnChange();\n this.updateColumnFilters();\n this.updateInputFilters(\n inputFilters,\n filterMap.size > 0 || model.isFilterRequired()\n );\n if (source && isLinked) {\n this.startListeningToSource(source);\n this.updateModelFromSource();\n }\n }\n }\n );\n }\n\n handleLoadError(error: unknown): void {\n if (PromiseUtils.isCanceled(error)) {\n return;\n }\n\n log.error('handleLoadError', error);\n this.setState({ error, isLoading: false });\n }\n\n handleSourceColumnChange(): void {\n this.updateModelFromSource();\n }\n\n handleSourceFilterChange(): void {\n this.updateModelFromSource();\n }\n\n handleSourceSortChange(): void {\n this.updateModelFromSource();\n }\n\n updateModelFromSource(): void {\n const { metadata, source } = this.props;\n const { isLinked, model } = this.state;\n if (!isLinked || !model || !source) {\n log.debug2('updateModelFromSource ignoring', isLinked, model, source);\n return;\n }\n const { dh } = model;\n // By now the model has already been loaded, which is the only other cancelable thing in pending\n this.pending.cancel();\n if (isChartPanelTableMetadata(metadata)) {\n const { settings } = metadata;\n this.pending\n .add(\n dh.plot.Figure.create(\n new ChartUtils(dh).makeFigureSettings(\n settings,\n source\n ) as unknown as dh.plot.FigureDescriptor\n )\n )\n .then(figure => {\n if (isFigureChartModel(model)) {\n model.setFigure(figure);\n }\n })\n .catch(this.handleLoadError);\n }\n\n this.updatePanelState();\n }\n\n updatePanelState(): void {\n const { sourcePanel } = this.props;\n const { panelState, filterValueMap, settings } = this.state;\n let { tableSettings } = panelState ?? {};\n if (sourcePanel) {\n // Right now just update the panel state from the source\n // If the source isn't available, just keep the state that's already saved\n if (\n hasInputFilter(sourcePanel.props) &&\n hasPanelState(sourcePanel.state)\n ) {\n const { inputFilters } = sourcePanel.props;\n const { panelState: sourcePanelState } = sourcePanel.state;\n if (sourcePanelState != null) {\n tableSettings = IrisGridUtils.extractTableSettings(\n sourcePanelState,\n inputFilters\n );\n }\n }\n }\n\n // eslint-disable-next-line react/no-unused-state\n this.setState({\n panelState: {\n settings,\n tableSettings,\n filterValueMap: Array.from(filterValueMap),\n },\n });\n }\n\n handleError(): void {\n // Don't want to set an error state, because the user can fix a chart error within the chart itself.\n // We're not loading anymore either so stop showing the spinner so the user can actually click those buttons.\n this.setState({ isLoading: false });\n }\n\n handleSettingsChanged(update: Partial<Settings>): void {\n this.setState(({ settings: prevSettings }) => {\n const settings = {\n ...prevSettings,\n ...update,\n };\n log.debug('Updated settings', settings);\n return { settings };\n });\n }\n\n handleHide(): void {\n this.setActive(false);\n }\n\n handleShow(): void {\n this.setActive(true);\n }\n\n handleTabBlur(): void {\n this.setActive(false);\n }\n\n handleTabFocus(): void {\n const isHidden = this.isHidden();\n this.setActive(!isHidden);\n }\n\n handleUpdate({ isLoading }: LoadState): void {\n this.setState({ isLoading });\n }\n\n handleClearAllFilters(): void {\n // nuke link filter and input filter map\n // input filters only clear themselves if they are not yet empty\n this.setState({\n filterValueMap: new Map(),\n filterMap: new Map(),\n });\n this.updatePanelState();\n }\n\n /**\n * Create an input filter panel for the provided column\n * @param column The column to create the input filter for\n */\n openInputFilter(column: InputFilter): void {\n const { glEventHub } = this.props;\n const { name, type } = column;\n glEventHub.emit(InputFilterEvent.OPEN_INPUT, {\n title: `${name} Filter`,\n panelState: {\n name,\n type,\n isValueShown: true,\n },\n createNewStack: true,\n focusElement: 'input',\n });\n }\n\n setActive(isActive: boolean): void {\n this.setState({ isActive }, () => {\n if (isActive) {\n this.loadModelIfNecessary();\n }\n });\n }\n\n sendColumnChange(): void {\n const { model } = this.state;\n if (!model) {\n return;\n }\n const { glEventHub } = this.props;\n glEventHub.emit(\n InputFilterEvent.COLUMNS_CHANGED,\n this,\n Array.from(model.getFilterColumnMap().values())\n );\n }\n\n getCoordinateForColumn(columnName: ColumnName): [number, number] | null {\n const className =\n ChartColumnSelectorOverlay.makeButtonClassName(columnName);\n\n if (!this.panelContainer.current) {\n return null;\n }\n\n const element = this.panelContainer.current.querySelector(`.${className}`);\n const rect = element?.getBoundingClientRect() ?? null;\n if (rect == null || rect.width <= 0 || rect.height <= 0) {\n return null;\n }\n const x = rect.left + rect.width / 2;\n const y = rect.bottom;\n return [x, y];\n }\n\n /**\n * Set chart filters based on the filter map\n * @param filterMapParam Filter map\n */\n setFilterMap(filterMapParam: LinkFilterMap): void {\n log.debug('setFilterMap', filterMapParam);\n this.setState(state => {\n const { columnMap, filterMap } = state;\n let updatedFilterMap: null | FilterMap = null;\n const filterValueMap = new Map(state.filterValueMap);\n filterMapParam.forEach(({ columnType, filterList }, columnName) => {\n const column = columnMap.get(columnName);\n if (column == null || column.type !== columnType) {\n return;\n }\n if (filterList.length < 1) {\n log.debug('Ignoring empty filterList for column', columnName);\n return;\n }\n const { value } = filterList[0];\n filterValueMap.set(columnName, value);\n if (filterMap.get(columnName) !== value) {\n if (updatedFilterMap === null) {\n updatedFilterMap = new Map(filterMap);\n }\n updatedFilterMap.set(columnName, value);\n }\n });\n\n // Don't update filterMap unless the filters actually changed.\n // Otherwise the chart gets stuck on a spinner\n // because it never gets an update event for unchanged filters.\n return { filterValueMap, filterMap: updatedFilterMap ?? filterMap };\n });\n }\n\n unsetFilterValue(columnName: ColumnName): void {\n this.setState(state => {\n // We want to unset a value unless there's an input filter for it\n // If there's an input filter, then we want to just set it to that value\n // This way if the user has an input filter and a link, when they delete the link the input filter value takes effect\n const { inputFilters } = this.props;\n const { columnMap } = state;\n let { filterMap, filterValueMap } = state;\n if (!filterValueMap.has(columnName)) {\n return null;\n }\n\n filterValueMap = new Map(state.filterValueMap);\n filterValueMap.delete(columnName);\n\n const inputFilterMap = this.getInputFilterColumnMap(\n columnMap,\n inputFilters\n );\n\n if (inputFilterMap.has(columnName)) {\n const filterValue = filterMap.get(columnName);\n const inputFilterValue = inputFilterMap.get(columnName)?.value;\n if (inputFilterValue != null && filterValue !== inputFilterValue) {\n filterMap = new Map(state.filterMap);\n if (inputFilterValue.length > 0) {\n filterMap.set(columnName, inputFilterValue);\n } else {\n filterMap.delete(columnName);\n }\n }\n } else {\n filterMap = new Map(state.filterMap);\n filterMap.delete(columnName);\n }\n return { filterMap, filterValueMap };\n });\n }\n\n updateChangedInputFilters(\n inputFilters: InputFilter[],\n prevInputFilters: InputFilter[]\n ): void {\n const deletedInputFilters = prevInputFilters.filter(\n prevInputFilter =>\n inputFilters.find(\n inputFilter =>\n inputFilter.name === prevInputFilter.name &&\n inputFilter.type === prevInputFilter.type\n ) === undefined\n );\n if (deletedInputFilters.length > 0) {\n this.deleteInputFilters(deletedInputFilters);\n }\n\n const changedInputFilters = inputFilters.filter(\n inputFilter => !prevInputFilters.includes(inputFilter)\n );\n if (changedInputFilters.length > 0) {\n this.updateInputFilters(changedInputFilters);\n }\n }\n\n updateInputFilters(inputFilters: InputFilter[], forceUpdate = false): void {\n this.setState(state => {\n const { columnMap } = state;\n const filterValueMap = new Map(state.filterValueMap);\n const filterMap = new Map(state.filterMap);\n const update = forceUpdate ? { filterMap, filterValueMap } : {};\n\n for (let i = 0; i < inputFilters.length; i += 1) {\n const { name, type, value } = inputFilters[i];\n const column = columnMap.get(name);\n if (column != null && column.type === type) {\n if (value != null && filterMap.get(name) !== value) {\n if (value === '') {\n filterMap.delete(name);\n } else {\n filterMap.set(name, value);\n }\n update.filterMap = filterMap;\n }\n\n if (filterValueMap.has(name)) {\n // Need to unset whatever the linked value was - if they want that value again, they need to double click the link again\n filterValueMap.delete(name);\n update.filterValueMap = filterValueMap;\n }\n }\n }\n\n log.debug('updateInputFilters', update);\n return update as unknown;\n });\n }\n\n deleteInputFilters(inputFilters: InputFilter[], forceUpdate = false): void {\n this.setState(state => {\n const { columnMap, filterValueMap } = state;\n const filterMap = new Map(state.filterMap);\n let needsUpdate = forceUpdate;\n\n for (let i = 0; i < inputFilters.length; i += 1) {\n const { name, type } = inputFilters[i];\n const column = columnMap.get(name);\n if (column != null && column.type === type) {\n if (filterMap.has(name)) {\n const filterValue = filterMap.get(name);\n if (filterValueMap.has(name)) {\n const linkValue = filterValueMap.get(name);\n if (linkValue !== filterValue && linkValue != null) {\n needsUpdate = true;\n filterMap.set(name, linkValue);\n }\n } else {\n needsUpdate = true;\n filterMap.delete(name);\n }\n }\n }\n }\n\n log.debug('deleteInputFilters', needsUpdate);\n return needsUpdate ? { filterMap } : null;\n });\n }\n\n updateColumnFilters(): void {\n this.setState(({ model }) => {\n if (!model) {\n return null;\n }\n\n return { columnMap: model.getFilterColumnMap() };\n });\n }\n\n updateFilters(): void {\n const { columnMap, filterMap, model } = this.state;\n assertNotNull(model);\n const waitingInputMap = this.getWaitingInputMap(\n model.isFilterRequired(),\n columnMap,\n filterMap\n );\n model.setFilter(filterMap);\n\n if (filterMap.size > 0 && waitingInputMap.size === 0) {\n const defaultTitle = model.getDefaultTitle();\n const filterTitle = TextUtils.join(\n Array.from(filterMap.entries()).map(\n ([name, value]) => `${name}: ${value}`\n )\n );\n if (defaultTitle) {\n model.setTitle(\n `${defaultTitle}<br><span style=\"font-size: smaller\">${filterTitle}</span>`\n );\n } else {\n model.setTitle(filterTitle);\n }\n\n log.debug2('updateFilters filters set', filterMap);\n this.setState({ isLoading: true });\n } else {\n log.debug2('updateFilters waiting on inputs', waitingInputMap);\n model.setTitle(model.getDefaultTitle());\n this.setState({ isLoading: false });\n }\n\n this.updatePanelState();\n }\n\n /**\n * Removes any set filter values that are no longer part of the model\n */\n pruneFilterMaps(): void {\n this.setState(state => {\n const { columnMap } = state;\n const filterMap = new Map(state.filterMap);\n const filterValueMap = new Map(state.filterValueMap);\n const newState: Pick<\n Partial<ChartPanelState>,\n 'filterMap' | 'filterValueMap'\n > = {};\n\n state.filterValueMap.forEach((value, name) => {\n if (!columnMap.has(name)) {\n filterValueMap.delete(name);\n newState.filterValueMap = filterValueMap;\n }\n });\n state.filterMap.forEach((value, name) => {\n if (!columnMap.has(name)) {\n filterMap.delete(name);\n newState.filterMap = filterMap;\n }\n });\n return newState as unknown;\n });\n }\n\n render(): ReactElement {\n const {\n columnSelectionValidator,\n glContainer,\n glEventHub,\n inputFilters,\n isLinkerActive,\n links,\n metadata,\n settings,\n Plotly,\n containerRef,\n } = this.props;\n const {\n columnMap,\n filterMap,\n error,\n model,\n isActive,\n isDisconnected,\n isLoaded,\n isLoading,\n } = this.state;\n let name;\n if (isChartPanelTableMetadata(metadata)) {\n name = metadata.table;\n } else if (isChartPanelFigureMetadata(metadata)) {\n name = metadata.figure;\n } else {\n name = metadata.name;\n }\n const inputFilterMap = this.getInputFilterColumnMap(\n columnMap,\n inputFilters\n );\n const linkedColumnMap = this.getLinkedColumnMap(columnMap, links);\n const waitingInputMap =\n model != null\n ? this.getWaitingInputMap(\n model.isFilterRequired(),\n columnMap,\n filterMap\n )\n : new Map();\n const waitingFilterMap =\n model != null\n ? this.getWaitingFilterMap(\n model.isFilterRequired(),\n columnMap,\n filterMap,\n linkedColumnMap,\n inputFilterMap\n )\n : new Map();\n const errorMessage =\n error != null ? `Unable to open chart. ${error}` : undefined;\n const isWaitingForFilter = waitingInputMap.size > 0;\n const isSelectingColumn = columnMap.size > 0 && isLinkerActive;\n return (\n <WidgetPanel\n className={classNames('iris-chart-panel', {\n 'input-required': isWaitingForFilter,\n })}\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onHide={this.handleHide}\n onClearAllFilters={this.handleClearAllFilters}\n onShow={this.handleShow}\n onTabBlur={this.handleTabBlur}\n onTabFocus={this.handleTabFocus}\n errorMessage={errorMessage}\n isDisconnected={isDisconnected}\n isLoading={isLoading}\n isLoaded={isLoaded}\n widgetName={name ?? undefined}\n widgetType=\"Chart\"\n >\n <div\n ref={this.panelContainer}\n className=\"chart-panel-container h-100 w-100\"\n >\n <div className=\"chart-container h-100 w-100\">\n {isLoaded && model && (\n <Chart\n isActive={isActive}\n model={model}\n settings={settings}\n onDisconnect={this.handleDisconnect}\n onReconnect={this.handleReconnect}\n onUpdate={this.handleUpdate}\n onError={this.handleError}\n onSettingsChanged={this.handleSettingsChanged}\n Plotly={Plotly}\n containerRef={containerRef}\n />\n )}\n </div>\n <CSSTransition\n in={isWaitingForFilter && !isSelectingColumn && !isLoading}\n timeout={ThemeExport.transitionMs}\n classNames=\"fade\"\n mountOnEnter\n unmountOnExit\n >\n <ChartFilterOverlay\n inputFilterMap={inputFilterMap}\n linkedColumnMap={linkedColumnMap}\n onAdd={this.handleFilterAdd}\n onOpenLinker={this.handleOpenLinker}\n columnMap={columnMap}\n waitingFilterMap={waitingFilterMap}\n waitingInputMap={waitingInputMap}\n />\n </CSSTransition>\n <CSSTransition\n in={isSelectingColumn}\n timeout={ThemeExport.transitionMs}\n classNames=\"fade\"\n mountOnEnter\n unmountOnExit\n >\n <ChartColumnSelectorOverlay\n columns={this.getSelectorColumns(\n columnMap,\n linkedColumnMap,\n columnSelectionValidator\n )}\n onColumnSelected={this.handleColumnSelected}\n onMouseEnter={this.handleColumnMouseEnter}\n onMouseLeave={this.handleColumnMouseLeave}\n />\n </CSSTransition>\n </div>\n </WidgetPanel>\n );\n }\n}\n\nconst mapStateToProps = (state: RootState, ownProps: OwnProps): StateProps => {\n const { localDashboardId, metadata } = ownProps;\n\n let sourcePanelId: string | undefined;\n if (metadata != null && isChartPanelTableMetadata(metadata)) {\n sourcePanelId = metadata.sourcePanelId;\n }\n const panelTableMap = getTableMapForDashboard(state, localDashboardId);\n const openedPanelMap = getOpenedPanelMapForDashboard(state, localDashboardId);\n const activeTool = getActiveTool(state);\n const isolatedLinkerPanelId = getIsolatedLinkerPanelIdForDashboard(\n state,\n localDashboardId\n );\n const isLinkerActive =\n activeTool === ToolType.LINKER && isolatedLinkerPanelId === undefined;\n return {\n columnSelectionValidator: getColumnSelectionValidatorForDashboard(\n state,\n localDashboardId\n ),\n isLinkerActive,\n inputFilters: getInputFiltersForDashboard(state, localDashboardId),\n links: getLinksForDashboard(state, localDashboardId),\n source:\n sourcePanelId != null ? panelTableMap.get(sourcePanelId) : undefined,\n sourcePanel:\n sourcePanelId != null ? openedPanelMap.get(sourcePanelId) : undefined,\n settings: getSettings(state),\n };\n};\n\nconst ConnectedChartPanel = connect(\n mapStateToProps,\n {\n setActiveTool: setActiveToolAction,\n setDashboardIsolatedLinkerPanelId: setDashboardIsolatedLinkerPanelIdAction,\n } satisfies DispatchProps,\n null,\n { forwardRef: true }\n)(ChartPanel);\n\nexport default ConnectedChartPanel;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ChartPanel.js","names":["React","Component","classNames","memoize","connect","debounce","Chart","ChartUtils","isFigureChartModel","getOpenedPanelMapForDashboard","LayoutUtils","IrisGridUtils","FadeTransition","Log","getActiveTool","getSettings","setActiveTool","setActiveToolAction","assertNotNull","Pending","PromiseUtils","TextUtils","WidgetPanel","ToolType","InputFilterEvent","ChartEvent","getColumnSelectionValidatorForDashboard","getInputFiltersForDashboard","getIsolatedLinkerPanelIdForDashboard","getLinksForDashboard","getTableMapForDashboard","setDashboardIsolatedLinkerPanelId","setDashboardIsolatedLinkerPanelIdAction","ChartFilterOverlay","ChartColumnSelectorOverlay","isChartPanelFigureMetadata","isChartPanelTableMetadata","jsx","_jsx","jsxs","_jsxs","log","module","UPDATE_MODEL_DEBOUNCE","hasInputFilter","panel","inputFilters","hasPanelState","panelState","ChartPanel","constructor","props","_defineProperty","isFilterRequired","columnMap","filterMap","Map","waitingInputMap","forEach","filter","name","delete","linkedColumnMap","inputFilterMap","waitingFilterMap","value","column","i","length","inputFilter","type","get","set","links","panelId","getIdFromPanel","link","columnName","start","has","end","columnSelectionValidator","Array","from","values","map","isValid","isActive","handleColumnSelected","bind","handleColumnMouseEnter","handleColumnMouseLeave","handleDisconnect","handleReconnect","handleFilterAdd","handleHide","handleError","handleLoadError","handleLoadSuccess","handleSettingsChanged","handleOpenLinker","handleShow","handleSourceColumnChange","handleSourceFilterChange","handleSourceSortChange","handleTabBlur","handleTabFocus","handleUpdate","updateModelFromSource","handleClearAllFilters","panelContainer","createRef","pending","metadata","filterValueMap","settings","state","error","undefined","isDisconnected","isLoading","isLoaded","isLinked","model","componentDidMount","isHidden","setState","initModel","componentDidUpdate","prevProps","prevState","source","makeModel","pruneFilterMaps","updateChangedInputFilters","updateFilters","updatePanelState","updateSettings","startListeningToSource","stopListeningToSource","componentWillUnmount","cancel","add","resolved","close","then","table","debug","dh","addEventListener","Table","EVENT_CUSTOMCOLUMNSCHANGED","EVENT_FILTERCHANGED","EVENT_SORTCHANGED","removeEventListener","loadModelIfNecessary","glContainer","glEventHub","emit","COLUMN_SELECTED","_ref","Error","columns","openInputFilter","localDashboardId","LINKER","sendColumnChange","updateColumnFilters","prevModel","updateInputFilters","size","isCanceled","debug2","plot","Figure","create","makeFigureSettings","figure","setFigure","catch","sourcePanel","tableSettings","sourcePanelState","extractTableSettings","update","_ref2","prevSettings","_objectSpread","setActive","_ref3","OPEN_INPUT","title","concat","isValueShown","createNewStack","focusElement","COLUMNS_CHANGED","getFilterColumnMap","getCoordinateForColumn","_element$getBoundingC","className","makeButtonClassName","current","element","querySelector","rect","getBoundingClientRect","width","height","x","left","y","bottom","setFilterMap","filterMapParam","_updatedFilterMap","updatedFilterMap","_ref4","columnType","filterList","unsetFilterValue","getInputFilterColumnMap","_inputFilterMap$get","filterValue","inputFilterValue","prevInputFilters","deletedInputFilters","prevInputFilter","find","deleteInputFilters","changedInputFilters","includes","forceUpdate","arguments","needsUpdate","linkValue","_ref5","getWaitingInputMap","setFilter","defaultTitle","getDefaultTitle","filterTitle","join","entries","_ref6","setTitle","newState","render","_name","isLinkerActive","Plotly","containerRef","getLinkedColumnMap","getWaitingFilterMap","errorMessage","isWaitingForFilter","isSelectingColumn","componentPanel","onHide","onClearAllFilters","onShow","onTabBlur","onTabFocus","widgetName","widgetType","children","ref","onDisconnect","onReconnect","onUpdate","onError","onSettingsChanged","in","mountOnEnter","unmountOnExit","onAdd","onOpenLinker","getSelectorColumns","onColumnSelected","onMouseEnter","onMouseLeave","mapStateToProps","ownProps","sourcePanelId","panelTableMap","openedPanelMap","activeTool","isolatedLinkerPanelId","ConnectedChartPanel","forwardRef"],"sources":["../../src/panels/ChartPanel.tsx"],"sourcesContent":["import React, { Component, ReactElement, RefObject } from 'react';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport { connect } from 'react-redux';\nimport debounce from 'lodash.debounce';\nimport {\n Chart,\n ChartModel,\n ChartModelSettings,\n ChartUtils,\n FilterMap,\n isFigureChartModel,\n} from '@deephaven/chart';\nimport type PlotlyType from 'plotly.js';\nimport {\n DashboardPanelProps,\n getOpenedPanelMapForDashboard,\n LayoutUtils,\n PanelComponent,\n PanelMetadata,\n PanelProps,\n} from '@deephaven/dashboard';\nimport {\n IrisGridUtils,\n InputFilter,\n ColumnName,\n TableSettings,\n} from '@deephaven/iris-grid';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { FadeTransition } from '@deephaven/components';\nimport Log from '@deephaven/log';\nimport {\n getActiveTool,\n getSettings,\n RootState,\n setActiveTool as setActiveToolAction,\n WorkspaceSettings,\n} from '@deephaven/redux';\nimport {\n assertNotNull,\n Pending,\n PromiseUtils,\n TextUtils,\n} from '@deephaven/utils';\nimport WidgetPanel from './WidgetPanel';\nimport ToolType from '../linker/ToolType';\nimport { InputFilterEvent, ChartEvent } from '../events';\nimport {\n getColumnSelectionValidatorForDashboard,\n getInputFiltersForDashboard,\n getIsolatedLinkerPanelIdForDashboard,\n getLinksForDashboard,\n getTableMapForDashboard,\n setDashboardIsolatedLinkerPanelId as setDashboardIsolatedLinkerPanelIdAction,\n} from '../redux';\nimport ChartFilterOverlay, { ColumnMap } from './ChartFilterOverlay';\nimport ChartColumnSelectorOverlay, {\n SelectorColumn,\n} from './ChartColumnSelectorOverlay';\nimport './ChartPanel.scss';\nimport { Link, LinkFilterMap } from '../linker/LinkerUtils';\nimport { PanelState as IrisGridPanelState } from './IrisGridPanel';\nimport {\n isChartPanelFigureMetadata,\n isChartPanelTableMetadata,\n} from './ChartPanelUtils';\nimport { ColumnSelectionValidator } from '../linker/ColumnSelectionValidator';\n\nconst log = Log.module('ChartPanel');\nconst UPDATE_MODEL_DEBOUNCE = 150;\n\nexport type InputFilterMap = Map<string, InputFilter>;\n\nexport type LinkedColumnMap = Map<string, { name: string; type: string }>;\n\n/** @deprecated Use `PanelMetadata` instead, providing a `name` instead of `figure` */\nexport interface ChartPanelFigureMetadata extends PanelMetadata {\n /**\n * @deprecated use `name` instead\n */\n figure?: string;\n}\n\nexport interface ChartPanelTableMetadata extends PanelMetadata {\n table: string;\n sourcePanelId: string;\n settings: {\n isLinked: boolean;\n title: string;\n xAxis: string;\n series: string[];\n type: keyof dh.plot.SeriesPlotStyle;\n };\n tableSettings: TableSettings;\n}\n\nexport type ChartPanelMetadata =\n | PanelMetadata\n | ChartPanelFigureMetadata\n | ChartPanelTableMetadata;\n\ntype Settings = Record<string, unknown>;\n\nexport interface GLChartPanelState {\n filterValueMap?: [string, unknown][];\n settings: Partial<ChartModelSettings>;\n tableSettings?: TableSettings;\n irisGridState?: {\n advancedFilters: unknown;\n quickFilters: unknown;\n sorts: unknown;\n };\n irisGridPanelState?: {\n partitionColumns: string[];\n partitions: unknown[];\n };\n table?: string;\n figure?: string;\n}\ninterface OwnProps extends DashboardPanelProps {\n metadata: ChartPanelMetadata;\n /** Function to build the ChartModel used by this ChartPanel. Can return a promise. */\n makeModel: () => Promise<ChartModel>;\n localDashboardId: string;\n Plotly?: typeof PlotlyType;\n /** The plot container div */\n containerRef?: RefObject<HTMLDivElement>;\n\n panelState?: GLChartPanelState;\n}\n\ninterface StateProps {\n inputFilters: InputFilter[];\n links: Link[];\n isLinkerActive: boolean;\n source?: dh.Table;\n sourcePanel?: PanelComponent;\n columnSelectionValidator?: ColumnSelectionValidator;\n settings: Partial<WorkspaceSettings>;\n}\n\ninterface DispatchProps {\n setActiveTool: (tool: string) => void;\n setDashboardIsolatedLinkerPanelId: (\n id: string,\n secondParam: undefined\n ) => void;\n}\n\ninterface ChartPanelState {\n settings: Partial<ChartModelSettings>;\n error?: unknown;\n isActive: boolean;\n isDisconnected: boolean;\n isLoading: boolean;\n isLoaded: boolean;\n isLinked: boolean;\n\n // Map of all non-empty filters applied to the chart.\n // Initialize the filter map to the previously stored values; input filters will be applied after load.\n filterMap: FilterMap;\n // Map of filter values set from links, stored in panelState.\n // Combined with inputFilters to get applied filters (filterMap).\n filterValueMap: FilterMap;\n model?: ChartModel;\n columnMap: ColumnMap;\n\n // eslint-disable-next-line react/no-unused-state\n panelState?: GLChartPanelState;\n}\n\ninterface LoadState {\n isLoading: boolean;\n}\n\nfunction hasInputFilter(\n panel: PanelProps\n): panel is PanelProps & { inputFilters: InputFilter[] } {\n return (\n (panel as PanelProps & { inputFilters: InputFilter[] }).inputFilters != null\n );\n}\n\nfunction hasPanelState(\n panel: unknown\n): panel is { panelState: IrisGridPanelState } {\n return (panel as { panelState: IrisGridPanelState }).panelState != null;\n}\n\nexport type ChartPanelProps = OwnProps &\n StateProps &\n DispatchProps &\n React.RefAttributes<ChartPanel>;\n\nexport class ChartPanel extends Component<ChartPanelProps, ChartPanelState> {\n static defaultProps = {\n columnSelectionValidator: null,\n isLinkerActive: false,\n source: null,\n sourcePanel: null,\n panelState: null,\n settings: {},\n containerRef: null,\n };\n\n static displayName = 'ChartPanel';\n\n static COMPONENT = 'ChartPanel';\n\n constructor(props: ChartPanelProps) {\n super(props);\n\n this.handleColumnSelected = this.handleColumnSelected.bind(this);\n this.handleColumnMouseEnter = this.handleColumnMouseEnter.bind(this);\n this.handleColumnMouseLeave = this.handleColumnMouseLeave.bind(this);\n this.handleDisconnect = this.handleDisconnect.bind(this);\n this.handleReconnect = this.handleReconnect.bind(this);\n this.handleFilterAdd = this.handleFilterAdd.bind(this);\n this.handleHide = this.handleHide.bind(this);\n this.handleError = this.handleError.bind(this);\n this.handleLoadError = this.handleLoadError.bind(this);\n this.handleLoadSuccess = this.handleLoadSuccess.bind(this);\n this.handleSettingsChanged = this.handleSettingsChanged.bind(this);\n this.handleOpenLinker = this.handleOpenLinker.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleSourceColumnChange = this.handleSourceColumnChange.bind(this);\n this.handleSourceFilterChange = this.handleSourceFilterChange.bind(this);\n this.handleSourceSortChange = this.handleSourceSortChange.bind(this);\n this.handleTabBlur = this.handleTabBlur.bind(this);\n this.handleTabFocus = this.handleTabFocus.bind(this);\n this.handleUpdate = this.handleUpdate.bind(this);\n this.updateModelFromSource = debounce(\n this.updateModelFromSource.bind(this),\n UPDATE_MODEL_DEBOUNCE\n );\n this.handleClearAllFilters = this.handleClearAllFilters.bind(this);\n\n this.panelContainer = React.createRef();\n this.pending = new Pending();\n\n const { metadata, panelState } = props;\n const { filterValueMap = [], settings = {} } = panelState ?? {};\n\n this.state = {\n settings,\n error: undefined,\n isActive: false,\n isDisconnected: false,\n isLoading: false,\n isLoaded: false,\n isLinked:\n metadata != null &&\n isChartPanelTableMetadata(metadata) &&\n metadata.settings.isLinked,\n\n // Map of all non-empty filters applied to the chart.\n // Initialize the filter map to the previously stored values; input filters will be applied after load.\n filterMap: new Map(filterValueMap),\n // Map of filter values set from links, stored in panelState.\n // Combined with inputFilters to get applied filters (filterMap).\n filterValueMap: new Map(filterValueMap),\n model: undefined,\n columnMap: new Map(),\n\n // eslint-disable-next-line react/no-unused-state\n panelState,\n };\n }\n\n componentDidMount(): void {\n if (!this.isHidden()) {\n this.setState({ isActive: true });\n this.initModel();\n }\n }\n\n componentDidUpdate(\n prevProps: ChartPanelProps,\n prevState: ChartPanelState\n ): void {\n const { inputFilters, source, makeModel } = this.props;\n const { columnMap, model, filterMap, filterValueMap, isLinked, settings } =\n this.state;\n\n if (!model) {\n return;\n }\n\n if (makeModel !== prevProps.makeModel) {\n this.initModel();\n }\n\n if (columnMap !== prevState.columnMap) {\n this.pruneFilterMaps();\n }\n\n if (inputFilters !== prevProps.inputFilters) {\n this.updateChangedInputFilters(inputFilters, prevProps.inputFilters);\n }\n\n if (filterMap !== prevState.filterMap) {\n this.updateFilters();\n } else if (filterValueMap !== prevState.filterValueMap) {\n this.updatePanelState();\n }\n\n if (settings !== prevState.settings && isFigureChartModel(model)) {\n model.updateSettings(settings);\n this.updatePanelState();\n }\n\n if (isLinked !== prevState.isLinked) {\n if (source) {\n if (isLinked) {\n this.startListeningToSource(source);\n this.updateModelFromSource();\n } else {\n this.stopListeningToSource(source);\n }\n }\n } else if (isLinked && source !== prevProps.source) {\n if (prevProps.source) {\n this.stopListeningToSource(prevProps.source);\n }\n if (source) {\n this.startListeningToSource(source);\n this.updateModelFromSource();\n }\n }\n }\n\n componentWillUnmount(): void {\n this.pending.cancel();\n\n const { model } = this.state;\n const { source } = this.props;\n if (model != null && source) {\n this.stopListeningToSource(source);\n }\n }\n\n panelContainer: RefObject<HTMLDivElement>;\n\n pending: Pending;\n\n initModel(): void {\n this.setState({ isLoading: true, isLoaded: false, error: undefined });\n\n const { makeModel } = this.props;\n\n this.pending\n .add(makeModel(), resolved => {\n resolved.close();\n })\n .then(this.handleLoadSuccess, this.handleLoadError);\n }\n\n getWaitingInputMap = memoize(\n (\n isFilterRequired: boolean,\n columnMap: ColumnMap,\n filterMap: FilterMap\n ): Map<string, { name: string; type: string }> => {\n if (!isFilterRequired) {\n return new Map();\n }\n const waitingInputMap = new Map(columnMap);\n filterMap.forEach((filter, name) => {\n waitingInputMap.delete(name);\n });\n return waitingInputMap;\n }\n );\n\n getWaitingFilterMap = memoize(\n (\n isFilterRequired: boolean,\n columnMap: ColumnMap,\n filterMap: FilterMap,\n linkedColumnMap: LinkedColumnMap,\n inputFilterMap: InputFilterMap\n ) => {\n if (!isFilterRequired) {\n return new Map();\n }\n\n const waitingFilterMap = new Map(columnMap);\n filterMap.forEach((filter, name) => {\n waitingFilterMap.delete(name);\n });\n inputFilterMap.forEach((value, name) => {\n waitingFilterMap.delete(name);\n });\n linkedColumnMap.forEach((column, name) => {\n waitingFilterMap.delete(name);\n });\n return waitingFilterMap;\n }\n );\n\n getInputFilterColumnMap = memoize(\n (columnMap: ColumnMap, inputFilters: InputFilter[]) => {\n const inputFilterMap = new Map<string, InputFilter>();\n for (let i = 0; i < inputFilters.length; i += 1) {\n const inputFilter = inputFilters[i];\n const { name, type } = inputFilter;\n const column = columnMap.get(name);\n if (column != null && column.type === type) {\n inputFilterMap.set(name, inputFilter);\n }\n }\n return inputFilterMap;\n }\n );\n\n getLinkedColumnMap = memoize((columnMap: ColumnMap, links: Link[]) => {\n const linkedColumnMap = new Map<string, { name: string; type: string }>();\n const panelId = LayoutUtils.getIdFromPanel(this);\n for (let i = 0; i < links.length; i += 1) {\n const link = links[i];\n let columnName = null;\n if (\n link.start != null &&\n link.start.panelId === panelId &&\n columnMap.has(link.start.columnName)\n ) {\n columnName = link.start.columnName;\n } else if (\n link.end &&\n link.end.panelId === panelId &&\n columnMap.has(link.end.columnName)\n ) {\n columnName = link.end.columnName;\n }\n\n if (columnName != null && columnMap.has(columnName)) {\n const column = columnMap.get(columnName);\n assertNotNull(column);\n linkedColumnMap.set(columnName, column);\n }\n }\n return linkedColumnMap;\n });\n\n getSelectorColumns = memoize(\n (\n columnMap: ColumnMap,\n linkedColumnMap: LinkedColumnMap,\n columnSelectionValidator?: ColumnSelectionValidator\n ) =>\n Array.from(columnMap.values()).map(column => ({\n name: column.name,\n type: column.type,\n isValid: columnSelectionValidator\n ? columnSelectionValidator(this, column)\n : false,\n isActive: linkedColumnMap.has(column.name),\n }))\n );\n\n startListeningToSource(table: dh.Table): void {\n log.debug('startListeningToSource', table);\n const { model } = this.state;\n assertNotNull(model);\n const { dh } = model;\n table.addEventListener(\n dh.Table.EVENT_CUSTOMCOLUMNSCHANGED,\n this.handleSourceColumnChange\n );\n table.addEventListener(\n dh.Table.EVENT_FILTERCHANGED,\n this.handleSourceFilterChange\n );\n table.addEventListener(\n dh.Table.EVENT_SORTCHANGED,\n this.handleSourceSortChange\n );\n }\n\n stopListeningToSource(table: dh.Table): void {\n log.debug('stopListeningToSource', table);\n const { model } = this.state;\n assertNotNull(model);\n const { dh } = model;\n table.removeEventListener(\n dh.Table.EVENT_CUSTOMCOLUMNSCHANGED,\n this.handleSourceColumnChange\n );\n table.removeEventListener(\n dh.Table.EVENT_FILTERCHANGED,\n this.handleSourceFilterChange\n );\n table.removeEventListener(\n dh.Table.EVENT_SORTCHANGED,\n this.handleSourceSortChange\n );\n }\n\n loadModelIfNecessary(): void {\n const { isActive, isLoaded, isLoading } = this.state;\n if (isActive && !isLoaded && !isLoading) {\n this.initModel();\n }\n }\n\n isHidden(): boolean {\n const { glContainer } = this.props;\n const { isHidden } = glContainer;\n return isHidden;\n }\n\n handleColumnSelected(columnName: string): void {\n const { glEventHub } = this.props;\n const { columnMap } = this.state;\n glEventHub.emit(\n ChartEvent.COLUMN_SELECTED,\n this,\n columnMap.get(columnName)\n );\n }\n\n handleColumnMouseEnter({ type, name }: SelectorColumn): void {\n const { columnSelectionValidator } = this.props;\n log.debug('handleColumnMouseEnter', columnSelectionValidator, type, name);\n if (!columnSelectionValidator) {\n return;\n }\n columnSelectionValidator(this, { type, name });\n }\n\n handleColumnMouseLeave(): void {\n const { columnSelectionValidator } = this.props;\n log.debug('handleColumnMouseLeave', columnSelectionValidator);\n if (!columnSelectionValidator) {\n return;\n }\n columnSelectionValidator(this, undefined);\n }\n\n handleDisconnect(): void {\n this.setState({\n error: new Error('Figure disconnected'),\n isDisconnected: true,\n });\n }\n\n handleFilterAdd(columns: InputFilter[]): void {\n for (let i = 0; i < columns.length; i += 1) {\n this.openInputFilter(columns[i]);\n }\n }\n\n handleOpenLinker(): void {\n const {\n localDashboardId,\n setActiveTool,\n setDashboardIsolatedLinkerPanelId,\n } = this.props;\n setDashboardIsolatedLinkerPanelId(localDashboardId, undefined);\n setActiveTool(ToolType.LINKER);\n }\n\n handleReconnect(): void {\n this.setState({ isDisconnected: false, error: undefined });\n this.sendColumnChange();\n this.updateColumnFilters();\n }\n\n handleLoadSuccess(model: ChartModel): void {\n log.debug('handleLoadSuccess');\n\n const { model: prevModel } = this.state;\n this.setState(\n {\n model,\n isLoaded: true,\n },\n () => {\n const { inputFilters, source } = this.props;\n const { filterMap, isLinked } = this.state;\n if (model !== prevModel) {\n this.sendColumnChange();\n this.updateColumnFilters();\n this.updateInputFilters(\n inputFilters,\n filterMap.size > 0 || model.isFilterRequired()\n );\n if (source && isLinked) {\n this.startListeningToSource(source);\n this.updateModelFromSource();\n }\n }\n }\n );\n }\n\n handleLoadError(error: unknown): void {\n if (PromiseUtils.isCanceled(error)) {\n return;\n }\n\n log.error('handleLoadError', error);\n this.setState({ error, isLoading: false });\n }\n\n handleSourceColumnChange(): void {\n this.updateModelFromSource();\n }\n\n handleSourceFilterChange(): void {\n this.updateModelFromSource();\n }\n\n handleSourceSortChange(): void {\n this.updateModelFromSource();\n }\n\n updateModelFromSource(): void {\n const { metadata, source } = this.props;\n const { isLinked, model } = this.state;\n if (!isLinked || !model || !source) {\n log.debug2('updateModelFromSource ignoring', isLinked, model, source);\n return;\n }\n const { dh } = model;\n // By now the model has already been loaded, which is the only other cancelable thing in pending\n this.pending.cancel();\n if (isChartPanelTableMetadata(metadata)) {\n const { settings } = metadata;\n this.pending\n .add(\n dh.plot.Figure.create(\n new ChartUtils(dh).makeFigureSettings(\n settings,\n source\n ) as unknown as dh.plot.FigureDescriptor\n )\n )\n .then(figure => {\n if (isFigureChartModel(model)) {\n model.setFigure(figure);\n }\n })\n .catch(this.handleLoadError);\n }\n\n this.updatePanelState();\n }\n\n updatePanelState(): void {\n const { sourcePanel } = this.props;\n const { panelState, filterValueMap, settings } = this.state;\n let { tableSettings } = panelState ?? {};\n if (sourcePanel) {\n // Right now just update the panel state from the source\n // If the source isn't available, just keep the state that's already saved\n if (\n hasInputFilter(sourcePanel.props) &&\n hasPanelState(sourcePanel.state)\n ) {\n const { inputFilters } = sourcePanel.props;\n const { panelState: sourcePanelState } = sourcePanel.state;\n if (sourcePanelState != null) {\n tableSettings = IrisGridUtils.extractTableSettings(\n sourcePanelState,\n inputFilters\n );\n }\n }\n }\n\n // eslint-disable-next-line react/no-unused-state\n this.setState({\n panelState: {\n settings,\n tableSettings,\n filterValueMap: Array.from(filterValueMap),\n },\n });\n }\n\n handleError(): void {\n // Don't want to set an error state, because the user can fix a chart error within the chart itself.\n // We're not loading anymore either so stop showing the spinner so the user can actually click those buttons.\n this.setState({ isLoading: false });\n }\n\n handleSettingsChanged(update: Partial<Settings>): void {\n this.setState(({ settings: prevSettings }) => {\n const settings = {\n ...prevSettings,\n ...update,\n };\n log.debug('Updated settings', settings);\n return { settings };\n });\n }\n\n handleHide(): void {\n this.setActive(false);\n }\n\n handleShow(): void {\n this.setActive(true);\n }\n\n handleTabBlur(): void {\n this.setActive(false);\n }\n\n handleTabFocus(): void {\n const isHidden = this.isHidden();\n this.setActive(!isHidden);\n }\n\n handleUpdate({ isLoading }: LoadState): void {\n this.setState({ isLoading });\n }\n\n handleClearAllFilters(): void {\n // nuke link filter and input filter map\n // input filters only clear themselves if they are not yet empty\n this.setState({\n filterValueMap: new Map(),\n filterMap: new Map(),\n });\n this.updatePanelState();\n }\n\n /**\n * Create an input filter panel for the provided column\n * @param column The column to create the input filter for\n */\n openInputFilter(column: InputFilter): void {\n const { glEventHub } = this.props;\n const { name, type } = column;\n glEventHub.emit(InputFilterEvent.OPEN_INPUT, {\n title: `${name} Filter`,\n panelState: {\n name,\n type,\n isValueShown: true,\n },\n createNewStack: true,\n focusElement: 'input',\n });\n }\n\n setActive(isActive: boolean): void {\n this.setState({ isActive }, () => {\n if (isActive) {\n this.loadModelIfNecessary();\n }\n });\n }\n\n sendColumnChange(): void {\n const { model } = this.state;\n if (!model) {\n return;\n }\n const { glEventHub } = this.props;\n glEventHub.emit(\n InputFilterEvent.COLUMNS_CHANGED,\n this,\n Array.from(model.getFilterColumnMap().values())\n );\n }\n\n getCoordinateForColumn(columnName: ColumnName): [number, number] | null {\n const className =\n ChartColumnSelectorOverlay.makeButtonClassName(columnName);\n\n if (!this.panelContainer.current) {\n return null;\n }\n\n const element = this.panelContainer.current.querySelector(`.${className}`);\n const rect = element?.getBoundingClientRect() ?? null;\n if (rect == null || rect.width <= 0 || rect.height <= 0) {\n return null;\n }\n const x = rect.left + rect.width / 2;\n const y = rect.bottom;\n return [x, y];\n }\n\n /**\n * Set chart filters based on the filter map\n * @param filterMapParam Filter map\n */\n setFilterMap(filterMapParam: LinkFilterMap): void {\n log.debug('setFilterMap', filterMapParam);\n this.setState(state => {\n const { columnMap, filterMap } = state;\n let updatedFilterMap: null | FilterMap = null;\n const filterValueMap = new Map(state.filterValueMap);\n filterMapParam.forEach(({ columnType, filterList }, columnName) => {\n const column = columnMap.get(columnName);\n if (column == null || column.type !== columnType) {\n return;\n }\n if (filterList.length < 1) {\n log.debug('Ignoring empty filterList for column', columnName);\n return;\n }\n const { value } = filterList[0];\n filterValueMap.set(columnName, value);\n if (filterMap.get(columnName) !== value) {\n if (updatedFilterMap === null) {\n updatedFilterMap = new Map(filterMap);\n }\n updatedFilterMap.set(columnName, value);\n }\n });\n\n // Don't update filterMap unless the filters actually changed.\n // Otherwise the chart gets stuck on a spinner\n // because it never gets an update event for unchanged filters.\n return { filterValueMap, filterMap: updatedFilterMap ?? filterMap };\n });\n }\n\n unsetFilterValue(columnName: ColumnName): void {\n this.setState(state => {\n // We want to unset a value unless there's an input filter for it\n // If there's an input filter, then we want to just set it to that value\n // This way if the user has an input filter and a link, when they delete the link the input filter value takes effect\n const { inputFilters } = this.props;\n const { columnMap } = state;\n let { filterMap, filterValueMap } = state;\n if (!filterValueMap.has(columnName)) {\n return null;\n }\n\n filterValueMap = new Map(state.filterValueMap);\n filterValueMap.delete(columnName);\n\n const inputFilterMap = this.getInputFilterColumnMap(\n columnMap,\n inputFilters\n );\n\n if (inputFilterMap.has(columnName)) {\n const filterValue = filterMap.get(columnName);\n const inputFilterValue = inputFilterMap.get(columnName)?.value;\n if (inputFilterValue != null && filterValue !== inputFilterValue) {\n filterMap = new Map(state.filterMap);\n if (inputFilterValue.length > 0) {\n filterMap.set(columnName, inputFilterValue);\n } else {\n filterMap.delete(columnName);\n }\n }\n } else {\n filterMap = new Map(state.filterMap);\n filterMap.delete(columnName);\n }\n return { filterMap, filterValueMap };\n });\n }\n\n updateChangedInputFilters(\n inputFilters: InputFilter[],\n prevInputFilters: InputFilter[]\n ): void {\n const deletedInputFilters = prevInputFilters.filter(\n prevInputFilter =>\n inputFilters.find(\n inputFilter =>\n inputFilter.name === prevInputFilter.name &&\n inputFilter.type === prevInputFilter.type\n ) === undefined\n );\n if (deletedInputFilters.length > 0) {\n this.deleteInputFilters(deletedInputFilters);\n }\n\n const changedInputFilters = inputFilters.filter(\n inputFilter => !prevInputFilters.includes(inputFilter)\n );\n if (changedInputFilters.length > 0) {\n this.updateInputFilters(changedInputFilters);\n }\n }\n\n updateInputFilters(inputFilters: InputFilter[], forceUpdate = false): void {\n this.setState(state => {\n const { columnMap } = state;\n const filterValueMap = new Map(state.filterValueMap);\n const filterMap = new Map(state.filterMap);\n const update = forceUpdate ? { filterMap, filterValueMap } : {};\n\n for (let i = 0; i < inputFilters.length; i += 1) {\n const { name, type, value } = inputFilters[i];\n const column = columnMap.get(name);\n if (column != null && column.type === type) {\n if (value != null && filterMap.get(name) !== value) {\n if (value === '') {\n filterMap.delete(name);\n } else {\n filterMap.set(name, value);\n }\n update.filterMap = filterMap;\n }\n\n if (filterValueMap.has(name)) {\n // Need to unset whatever the linked value was - if they want that value again, they need to double click the link again\n filterValueMap.delete(name);\n update.filterValueMap = filterValueMap;\n }\n }\n }\n\n log.debug('updateInputFilters', update);\n return update as unknown;\n });\n }\n\n deleteInputFilters(inputFilters: InputFilter[], forceUpdate = false): void {\n this.setState(state => {\n const { columnMap, filterValueMap } = state;\n const filterMap = new Map(state.filterMap);\n let needsUpdate = forceUpdate;\n\n for (let i = 0; i < inputFilters.length; i += 1) {\n const { name, type } = inputFilters[i];\n const column = columnMap.get(name);\n if (column != null && column.type === type) {\n if (filterMap.has(name)) {\n const filterValue = filterMap.get(name);\n if (filterValueMap.has(name)) {\n const linkValue = filterValueMap.get(name);\n if (linkValue !== filterValue && linkValue != null) {\n needsUpdate = true;\n filterMap.set(name, linkValue);\n }\n } else {\n needsUpdate = true;\n filterMap.delete(name);\n }\n }\n }\n }\n\n log.debug('deleteInputFilters', needsUpdate);\n return needsUpdate ? { filterMap } : null;\n });\n }\n\n updateColumnFilters(): void {\n this.setState(({ model }) => {\n if (!model) {\n return null;\n }\n\n return { columnMap: model.getFilterColumnMap() };\n });\n }\n\n updateFilters(): void {\n const { columnMap, filterMap, model } = this.state;\n assertNotNull(model);\n const waitingInputMap = this.getWaitingInputMap(\n model.isFilterRequired(),\n columnMap,\n filterMap\n );\n model.setFilter(filterMap);\n\n if (filterMap.size > 0 && waitingInputMap.size === 0) {\n const defaultTitle = model.getDefaultTitle();\n const filterTitle = TextUtils.join(\n Array.from(filterMap.entries()).map(\n ([name, value]) => `${name}: ${value}`\n )\n );\n if (defaultTitle) {\n model.setTitle(\n `${defaultTitle}<br><span style=\"font-size: smaller\">${filterTitle}</span>`\n );\n } else {\n model.setTitle(filterTitle);\n }\n\n log.debug2('updateFilters filters set', filterMap);\n this.setState({ isLoading: true });\n } else {\n log.debug2('updateFilters waiting on inputs', waitingInputMap);\n model.setTitle(model.getDefaultTitle());\n this.setState({ isLoading: false });\n }\n\n this.updatePanelState();\n }\n\n /**\n * Removes any set filter values that are no longer part of the model\n */\n pruneFilterMaps(): void {\n this.setState(state => {\n const { columnMap } = state;\n const filterMap = new Map(state.filterMap);\n const filterValueMap = new Map(state.filterValueMap);\n const newState: Pick<\n Partial<ChartPanelState>,\n 'filterMap' | 'filterValueMap'\n > = {};\n\n state.filterValueMap.forEach((value, name) => {\n if (!columnMap.has(name)) {\n filterValueMap.delete(name);\n newState.filterValueMap = filterValueMap;\n }\n });\n state.filterMap.forEach((value, name) => {\n if (!columnMap.has(name)) {\n filterMap.delete(name);\n newState.filterMap = filterMap;\n }\n });\n return newState as unknown;\n });\n }\n\n render(): ReactElement {\n const {\n columnSelectionValidator,\n glContainer,\n glEventHub,\n inputFilters,\n isLinkerActive,\n links,\n metadata,\n settings,\n Plotly,\n containerRef,\n } = this.props;\n const {\n columnMap,\n filterMap,\n error,\n model,\n isActive,\n isDisconnected,\n isLoaded,\n isLoading,\n } = this.state;\n let name;\n if (isChartPanelTableMetadata(metadata)) {\n name = metadata.table;\n } else if (isChartPanelFigureMetadata(metadata)) {\n name = metadata.figure;\n } else {\n name = metadata.name;\n }\n const inputFilterMap = this.getInputFilterColumnMap(\n columnMap,\n inputFilters\n );\n const linkedColumnMap = this.getLinkedColumnMap(columnMap, links);\n const waitingInputMap =\n model != null\n ? this.getWaitingInputMap(\n model.isFilterRequired(),\n columnMap,\n filterMap\n )\n : new Map();\n const waitingFilterMap =\n model != null\n ? this.getWaitingFilterMap(\n model.isFilterRequired(),\n columnMap,\n filterMap,\n linkedColumnMap,\n inputFilterMap\n )\n : new Map();\n const errorMessage =\n error != null ? `Unable to open chart. ${error}` : undefined;\n const isWaitingForFilter = waitingInputMap.size > 0;\n const isSelectingColumn = columnMap.size > 0 && isLinkerActive;\n return (\n <WidgetPanel\n className={classNames('iris-chart-panel', {\n 'input-required': isWaitingForFilter,\n })}\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onHide={this.handleHide}\n onClearAllFilters={this.handleClearAllFilters}\n onShow={this.handleShow}\n onTabBlur={this.handleTabBlur}\n onTabFocus={this.handleTabFocus}\n errorMessage={errorMessage}\n isDisconnected={isDisconnected}\n isLoading={isLoading}\n isLoaded={isLoaded}\n widgetName={name ?? undefined}\n widgetType=\"Chart\"\n >\n <div\n ref={this.panelContainer}\n className=\"chart-panel-container h-100 w-100\"\n >\n <div className=\"chart-container h-100 w-100\">\n {isLoaded && model && (\n <Chart\n isActive={isActive}\n model={model}\n settings={settings}\n onDisconnect={this.handleDisconnect}\n onReconnect={this.handleReconnect}\n onUpdate={this.handleUpdate}\n onError={this.handleError}\n onSettingsChanged={this.handleSettingsChanged}\n Plotly={Plotly}\n containerRef={containerRef}\n />\n )}\n </div>\n <FadeTransition\n in={isWaitingForFilter && !isSelectingColumn && !isLoading}\n mountOnEnter\n unmountOnExit\n >\n <ChartFilterOverlay\n inputFilterMap={inputFilterMap}\n linkedColumnMap={linkedColumnMap}\n onAdd={this.handleFilterAdd}\n onOpenLinker={this.handleOpenLinker}\n columnMap={columnMap}\n waitingFilterMap={waitingFilterMap}\n waitingInputMap={waitingInputMap}\n />\n </FadeTransition>\n <FadeTransition in={isSelectingColumn} mountOnEnter unmountOnExit>\n <ChartColumnSelectorOverlay\n columns={this.getSelectorColumns(\n columnMap,\n linkedColumnMap,\n columnSelectionValidator\n )}\n onColumnSelected={this.handleColumnSelected}\n onMouseEnter={this.handleColumnMouseEnter}\n onMouseLeave={this.handleColumnMouseLeave}\n />\n </FadeTransition>\n </div>\n </WidgetPanel>\n );\n }\n}\n\nconst mapStateToProps = (state: RootState, ownProps: OwnProps): StateProps => {\n const { localDashboardId, metadata } = ownProps;\n\n let sourcePanelId: string | undefined;\n if (metadata != null && isChartPanelTableMetadata(metadata)) {\n sourcePanelId = metadata.sourcePanelId;\n }\n const panelTableMap = getTableMapForDashboard(state, localDashboardId);\n const openedPanelMap = getOpenedPanelMapForDashboard(state, localDashboardId);\n const activeTool = getActiveTool(state);\n const isolatedLinkerPanelId = getIsolatedLinkerPanelIdForDashboard(\n state,\n localDashboardId\n );\n const isLinkerActive =\n activeTool === ToolType.LINKER && isolatedLinkerPanelId === undefined;\n return {\n columnSelectionValidator: getColumnSelectionValidatorForDashboard(\n state,\n localDashboardId\n ),\n isLinkerActive,\n inputFilters: getInputFiltersForDashboard(state, localDashboardId),\n links: getLinksForDashboard(state, localDashboardId),\n source:\n sourcePanelId != null ? panelTableMap.get(sourcePanelId) : undefined,\n sourcePanel:\n sourcePanelId != null ? openedPanelMap.get(sourcePanelId) : undefined,\n settings: getSettings(state),\n };\n};\n\nconst ConnectedChartPanel = connect(\n mapStateToProps,\n {\n setActiveTool: setActiveToolAction,\n setDashboardIsolatedLinkerPanelId: setDashboardIsolatedLinkerPanelIdAction,\n } satisfies DispatchProps,\n null,\n { forwardRef: true }\n)(ChartPanel);\n\nexport default ConnectedChartPanel;\n"],"mappings":"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"}
@@ -123,8 +123,10 @@ export declare class DropdownFilterPanel extends Component<DropdownFilterPanelPr
123
123
  }
124
124
  declare const ConnectedDropdownFilterPanel: import("react-redux").ConnectedComponent<typeof DropdownFilterPanel, import("react-redux").Omit<React.ClassAttributes<DropdownFilterPanel> & import("@deephaven/golden-layout").GLPanelProps & {
125
125
  metadata?: Partial<import("@deephaven/dashboard").WidgetDescriptor> | undefined;
126
- } & import("@deephaven/dashboard").LocalDashboardProps & StateProps & import("react-redux").DispatchProp<import("redux").AnyAction>, "columns" | "dispatch" | "columnSelectionValidator" | "settings" | "panelState" | "isLinkerActive" | "dashboardLinks" | "dh" | "disableLinking" | "panelTableMap"> & import("@deephaven/golden-layout").GLPanelProps & {
126
+ panelState?: unknown;
127
+ } & import("@deephaven/dashboard").LocalDashboardProps & StateProps & import("react-redux").DispatchProp<import("redux").AnyAction>, "panelState" | "columns" | "dispatch" | "columnSelectionValidator" | "settings" | "isLinkerActive" | "dashboardLinks" | "dh" | "disableLinking" | "panelTableMap"> & import("@deephaven/golden-layout").GLPanelProps & {
127
128
  metadata?: Partial<import("@deephaven/dashboard").WidgetDescriptor> | undefined;
129
+ panelState?: unknown;
128
130
  } & import("@deephaven/dashboard").LocalDashboardProps>;
129
131
  export default ConnectedDropdownFilterPanel;
130
132
  //# sourceMappingURL=DropdownFilterPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownFilterPanel.d.ts","sourceRoot":"","sources":["../../src/panels/DropdownFilterPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DropdownFilterPanel.d.ts","sourceRoot":"","sources":["../../src/panels/DropdownFilterPanel.tsx"],"names":[],"mappings":"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"}
@@ -52,8 +52,10 @@ export declare class FileExplorerPanel extends React.Component<FileExplorerPanel
52
52
  }
53
53
  declare const ConnectedFileExplorerPanel: import("react-redux").ConnectedComponent<typeof FileExplorerPanel, import("react-redux").Omit<React.ClassAttributes<FileExplorerPanel> & import("@deephaven/golden-layout").GLPanelProps & {
54
54
  metadata?: Partial<import("@deephaven/dashboard").WidgetDescriptor> | undefined;
55
+ panelState?: unknown;
55
56
  } & import("@deephaven/dashboard").LocalDashboardProps & StateProps & import("react-redux").DispatchProp<import("redux").AnyAction>, "language" | "dispatch" | "session" | "fileStorage"> & import("@deephaven/golden-layout").GLPanelProps & {
56
57
  metadata?: Partial<import("@deephaven/dashboard").WidgetDescriptor> | undefined;
58
+ panelState?: unknown;
57
59
  } & import("@deephaven/dashboard").LocalDashboardProps>;
58
60
  export default ConnectedFileExplorerPanel;
59
61
  //# sourceMappingURL=FileExplorerPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FileExplorerPanel.d.ts","sourceRoot":"","sources":["../../src/panels/FileExplorerPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAqB,EAEnB,WAAW,EACX,eAAe,EAIhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAW,cAAc,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAGjD,OAAO,0BAA0B,CAAC;AAKlC,KAAK,UAAU,GAAG;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;CACzB,CAAC;AAEF,KAAK,QAAQ,GAAG,mBAAmB,CAAC;AAkBpC,QAAA,MAAM,SAAS,4JAA6D,CAAC;AAE7E,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAC3C,UAAU,GACV,cAAc,CAAC,OAAO,SAAS,CAAC,CAAC;AAEnC,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAOF;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK,CAAC,SAAS,CACpD,sBAAsB,EACtB,sBAAsB,CACvB;IACC,MAAM,CAAC,SAAS,SAAuB;IAEvC,MAAM,CAAC,KAAK,SAAmB;IAE/B,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAItC;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,GAAG,OAAO;gBAU7C,KAAK,EAAE,sBAAsB;IA4BzC,iBAAiB,IAAI,IAAI;IAMzB,gBAAgB,IAAI,IAAI;IAgBxB,qBAAqB,IAAI,IAAI;IAI7B,2BAA2B,IAAI,IAAI;IAOnC,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOzC,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1D,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,IAAI;IAU5C,qBAAqB,CAAC,aAAa,EAAE,eAAe,EAAE,GAAG,IAAI;IAY7D,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI;IAwB1E,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAMpD,mBAAmB,CACjB,OAAO,EAAE,EAAE,CAAC,UAAU,EACtB,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GACjC,IAAI;IAOP,mBAAmB,IAAI,IAAI;IAO3B,UAAU,IAAI,IAAI;IAIlB,QAAQ,IAAI,OAAO;IAMnB,MAAM,IAAI,SAAS;CA0CpB;AAED,QAAA,MAAM,0BAA0B;;;;uDAA+B,CAAC;AAEhE,eAAe,0BAA0B,CAAC"}
1
+ {"version":3,"file":"FileExplorerPanel.d.ts","sourceRoot":"","sources":["../../src/panels/FileExplorerPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAqB,EAEnB,WAAW,EACX,eAAe,EAIhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAW,cAAc,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAGjD,OAAO,0BAA0B,CAAC;AAKlC,KAAK,UAAU,GAAG;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;CACzB,CAAC;AAEF,KAAK,QAAQ,GAAG,mBAAmB,CAAC;AAkBpC,QAAA,MAAM,SAAS,4JAA6D,CAAC;AAE7E,MAAM,MAAM,sBAAsB,GAAG,QAAQ,GAC3C,UAAU,GACV,cAAc,CAAC,OAAO,SAAS,CAAC,CAAC;AAEnC,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAOF;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK,CAAC,SAAS,CACpD,sBAAsB,EACtB,sBAAsB,CACvB;IACC,MAAM,CAAC,SAAS,SAAuB;IAEvC,MAAM,CAAC,KAAK,SAAmB;IAE/B,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAItC;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,GAAG,OAAO;gBAU7C,KAAK,EAAE,sBAAsB;IA4BzC,iBAAiB,IAAI,IAAI;IAMzB,gBAAgB,IAAI,IAAI;IAgBxB,qBAAqB,IAAI,IAAI;IAI7B,2BAA2B,IAAI,IAAI;IAOnC,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOzC,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAa1D,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,IAAI;IAU5C,qBAAqB,CAAC,aAAa,EAAE,eAAe,EAAE,GAAG,IAAI;IAY7D,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI;IAwB1E,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAMpD,mBAAmB,CACjB,OAAO,EAAE,EAAE,CAAC,UAAU,EACtB,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GACjC,IAAI;IAOP,mBAAmB,IAAI,IAAI;IAO3B,UAAU,IAAI,IAAI;IAIlB,QAAQ,IAAI,OAAO;IAMnB,MAAM,IAAI,SAAS;CA0CpB;AAED,QAAA,MAAM,0BAA0B;;;;;;uDAA+B,CAAC;AAEhE,eAAe,0BAA0B,CAAC"}
@@ -187,7 +187,7 @@ export declare class IrisGridPanel extends PureComponent<IrisGridPanelProps, Iri
187
187
  updateGrid(): void;
188
188
  render(): ReactElement;
189
189
  }
190
- declare const ConnectedIrisGridPanel: import("react-redux").ConnectedComponent<typeof IrisGridPanel, import("react-redux").Omit<Pick<React.ClassAttributes<IrisGridPanel> & OwnProps & StateProps, "glContainer" | "children" | "metadata" | "glEventHub" | "localDashboardId" | keyof StateProps | "panelState" | "makeModel" | "getDownloadWorker" | "loadPlugin" | "theme" | keyof React.ClassAttributes<IrisGridPanel>> & Partial<Pick<React.ClassAttributes<IrisGridPanel> & OwnProps & StateProps, "onStateChange" | "onPanelStateUpdate">> & Partial<Pick<{
190
+ declare const ConnectedIrisGridPanel: import("react-redux").ConnectedComponent<typeof IrisGridPanel, import("react-redux").Omit<Pick<React.ClassAttributes<IrisGridPanel> & OwnProps & StateProps, "glContainer" | "children" | "metadata" | "glEventHub" | "panelState" | "localDashboardId" | keyof StateProps | "makeModel" | "getDownloadWorker" | "loadPlugin" | "theme" | keyof React.ClassAttributes<IrisGridPanel>> & Partial<Pick<React.ClassAttributes<IrisGridPanel> & OwnProps & StateProps, "onStateChange" | "onPanelStateUpdate">> & Partial<Pick<{
191
191
  onStateChange: () => void;
192
192
  onPanelStateUpdate: () => void;
193
193
  }, never>>, "user" | "inputFilters" | "links" | "columnSelectionValidator" | "workspace" | "settings"> & OwnProps>;
@@ -26,7 +26,7 @@ declare class LogPanel extends PureComponent<LogPanelProps, LogPanelState> {
26
26
  updateDimensions(): void;
27
27
  render(): JSX.Element;
28
28
  }
29
- declare const ConnectedLogPanel: import("react-redux").ConnectedComponent<typeof LogPanel, import("react-redux").Omit<Pick<LogPanelProps, "glContainer" | "metadata" | "glEventHub" | "localDashboardId"> & Partial<Pick<LogPanelProps, "session">> & Partial<Pick<{
29
+ declare const ConnectedLogPanel: import("react-redux").ConnectedComponent<typeof LogPanel, import("react-redux").Omit<Pick<LogPanelProps, "glContainer" | "metadata" | "glEventHub" | "panelState" | "localDashboardId"> & Partial<Pick<LogPanelProps, "session">> & Partial<Pick<{
30
30
  session: null;
31
31
  }, never>>, "session"> & {
32
32
  localDashboardId: string;
@@ -206,7 +206,7 @@ declare class NotebookPanel extends Component<NotebookPanelProps, NotebookPanelS
206
206
  getDropdownOverflowActions(): DropdownAction[];
207
207
  render(): ReactElement;
208
208
  }
209
- declare const ConnectedNotebookPanel: import("react-redux").ConnectedComponent<typeof NotebookPanel, import("react-redux").Omit<Pick<NotebookPanelProps, "glContainer" | "metadata" | "glEventHub" | "localDashboardId" | "panelState" | "fileStorage" | "notebooksUrl" | "updateSettings"> & Partial<Pick<NotebookPanelProps, "defaultNotebookSettings" | "session" | "isDashboardActive" | "isPreview" | "sessionLanguage">> & Partial<Pick<{
209
+ declare const ConnectedNotebookPanel: import("react-redux").ConnectedComponent<typeof NotebookPanel, import("react-redux").Omit<Pick<NotebookPanelProps, "glContainer" | "metadata" | "glEventHub" | "panelState" | "localDashboardId" | "fileStorage" | "notebooksUrl" | "updateSettings"> & Partial<Pick<NotebookPanelProps, "defaultNotebookSettings" | "session" | "isDashboardActive" | "isPreview" | "sessionLanguage">> & Partial<Pick<{
210
210
  isDashboardActive: boolean;
211
211
  isPreview: boolean;
212
212
  session: null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/dashboard-core-plugins",
3
- "version": "0.70.0",
3
+ "version": "0.70.1-alpha-picker-table.34+43a0944a",
4
4
  "description": "Deephaven Dashboard Core Plugins",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -22,26 +22,26 @@
22
22
  "build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
23
23
  },
24
24
  "dependencies": {
25
- "@deephaven/chart": "^0.70.0",
26
- "@deephaven/components": "^0.70.0",
27
- "@deephaven/console": "^0.70.0",
28
- "@deephaven/dashboard": "^0.70.0",
29
- "@deephaven/file-explorer": "^0.70.0",
30
- "@deephaven/filters": "^0.70.0",
31
- "@deephaven/golden-layout": "^0.70.0",
32
- "@deephaven/grid": "^0.70.0",
33
- "@deephaven/icons": "^0.70.0",
34
- "@deephaven/iris-grid": "^0.70.0",
35
- "@deephaven/jsapi-bootstrap": "^0.70.0",
36
- "@deephaven/jsapi-components": "^0.70.0",
25
+ "@deephaven/chart": "^0.70.1-alpha-picker-table.34+43a0944a",
26
+ "@deephaven/components": "^0.70.1-alpha-picker-table.34+43a0944a",
27
+ "@deephaven/console": "^0.70.1-alpha-picker-table.34+43a0944a",
28
+ "@deephaven/dashboard": "^0.70.1-alpha-picker-table.34+43a0944a",
29
+ "@deephaven/file-explorer": "^0.70.1-alpha-picker-table.34+43a0944a",
30
+ "@deephaven/filters": "^0.70.1-alpha-picker-table.34+43a0944a",
31
+ "@deephaven/golden-layout": "^0.70.1-alpha-picker-table.34+43a0944a",
32
+ "@deephaven/grid": "^0.70.1-alpha-picker-table.34+43a0944a",
33
+ "@deephaven/icons": "^0.70.1-alpha-picker-table.34+43a0944a",
34
+ "@deephaven/iris-grid": "^0.70.1-alpha-picker-table.34+43a0944a",
35
+ "@deephaven/jsapi-bootstrap": "^0.70.1-alpha-picker-table.34+43a0944a",
36
+ "@deephaven/jsapi-components": "^0.70.1-alpha-picker-table.34+43a0944a",
37
37
  "@deephaven/jsapi-types": "1.0.0-dev0.33.1",
38
- "@deephaven/jsapi-utils": "^0.70.0",
39
- "@deephaven/log": "^0.70.0",
40
- "@deephaven/plugin": "^0.70.0",
41
- "@deephaven/react-hooks": "^0.70.0",
42
- "@deephaven/redux": "^0.70.0",
43
- "@deephaven/storage": "^0.70.0",
44
- "@deephaven/utils": "^0.70.0",
38
+ "@deephaven/jsapi-utils": "^0.70.1-alpha-picker-table.34+43a0944a",
39
+ "@deephaven/log": "^0.70.1-alpha-picker-table.34+43a0944a",
40
+ "@deephaven/plugin": "^0.70.1-alpha-picker-table.34+43a0944a",
41
+ "@deephaven/react-hooks": "^0.70.1-alpha-picker-table.34+43a0944a",
42
+ "@deephaven/redux": "^0.70.1-alpha-picker-table.34+43a0944a",
43
+ "@deephaven/storage": "^0.70.1-alpha-picker-table.34+43a0944a",
44
+ "@deephaven/utils": "^0.70.1-alpha-picker-table.34+43a0944a",
45
45
  "@fortawesome/react-fontawesome": "^0.2.0",
46
46
  "classnames": "^2.3.1",
47
47
  "deep-equal": "^2.0.5",
@@ -52,7 +52,6 @@
52
52
  "memoizee": "^0.4.15",
53
53
  "prop-types": "^15.7.2",
54
54
  "react-markdown": "^8.0.7",
55
- "react-transition-group": "^4.4.2",
56
55
  "redux": "^4.2.0",
57
56
  "redux-thunk": "^2.4.1",
58
57
  "rehype-mathjax": "^4.0.3",
@@ -66,8 +65,8 @@
66
65
  "react-redux": "^7.2.4"
67
66
  },
68
67
  "devDependencies": {
69
- "@deephaven/jsapi-shim": "^0.70.0",
70
- "@deephaven/mocks": "^0.70.0"
68
+ "@deephaven/jsapi-shim": "^0.70.1-alpha-picker-table.34+43a0944a",
69
+ "@deephaven/mocks": "^0.70.1-alpha-picker-table.34+43a0944a"
71
70
  },
72
71
  "files": [
73
72
  "dist",
@@ -79,5 +78,5 @@
79
78
  "publishConfig": {
80
79
  "access": "public"
81
80
  },
82
- "gitHead": "29353c229ac59589bf92880e6eb4c9f324fb1965"
81
+ "gitHead": "43a0944a20bedfc3ec9ae3678daf298276461964"
83
82
  }