@deephaven/dashboard-core-plugins 0.22.3-beta.11 → 0.22.3-beta.18

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":"DropdownFilterPanel.js","names":["React","Component","connect","debounce","deepEqual","memoize","LayoutUtils","dh","DateTimeColumnFormatter","Formatter","FormatterUtils","TableUtils","Log","getActiveTool","getSettings","Pending","PromiseUtils","DropdownFilter","InputFilterEvent","getColumnsForDashboard","getColumnSelectionValidatorForDashboard","getIsolatedLinkerPanelIdForDashboard","getLinksForDashboard","getTableMapForDashboard","ToolType","WidgetPanel","log","module","DROPDOWN_FILTER_DEBOUNCE","DropdownFilterPanel","constructor","props","rawValues","formatter","type","name","undefined","isDateType","map","value","DATETIME_FORMATTER","format","getFormattedString","dashboardLinks","panel","panelId","getIdFromPanel","debug","filter","link","end","links","source","length","start","error","panelTableMap","get","table","columns","find","columnName","columnType","handleChange","bind","handleClearAllFilters","handleDisconnect","handleReconnect","handleColumnSelected","handleSourceFilterChange","handleSourceSortChange","handleSourceSizeChange","handleSourceMouseEnter","handleSourceMouseLeave","handleValuesTableUpdate","dropdownFilterRef","createRef","panelContainer","pending","panelState","settings","columnFormats","getColumnFormats","isValueShown","timestamp","column","state","valuesTable","valuesColumn","sourceSize","values","wasFlipped","skipUpdate","isDisconnected","isLoading","isLoaded","componentDidMount","updateValuesTable","sourceTable","getSourceTable","startListeningToSource","sendUpdate","componentDidUpdate","prevProps","prevState","getSource","prevSource","prevSourceTable","updateFormatterSettings","close","stopListeningToSource","componentWillUnmount","cancel","cleanup","getCoordinateForColumn","current","element","querySelector","SOURCE_BUTTON_CLASS_NAME","rect","getBoundingClientRect","width","height","x","left","y","bottom","getSettingsErrorMessage","MAX_TABLE_SIZE","getPanelErrorMessage","panelLinks","getCachedPanelLinks","getCachedSource","getCachedSourceTable","getValuesColumn","getCachedSourceColumn","addEventListener","Table","EVENT_FILTERCHANGED","EVENT_SORTCHANGED","EVENT_SIZECHANGED","EVENT_DISCONNECT","EVENT_RECONNECT","removeEventListener","Date","now","setState","prevTimestamp","isFlip","Error","applySourceFilters","applySourceSorts","detail","glEventHub","emit","COLUMN_SELECTED","SOURCE_COLUMN","clearFilter","setPanelState","setFilterState","sourcePanelId","excludePanelIds","FILTERS_CHANGED","size","add","copy","resolved","then","updateViewportListener","catch","isCanceled","sort","sorts","applySort","setViewport","filters","applyFilter","EVENT_UPDATED","rows","row","columnSelectionValidator","render","disableLinking","glContainer","isLinkerActive","settingsErrorMessage","panelErrorMessage","formattedValues","getCachedValues","showTimeZone","showTSeparator","defaultDateTimeFormatString","Object","freeze","mapStateToProps","ownProps","localDashboardId","activeTool","isolatedLinkerPanelId","LINKER","forwardRef"],"sources":["../../src/panels/DropdownFilterPanel.tsx"],"sourcesContent":["import React, { Component, RefObject } from 'react';\nimport { connect } from 'react-redux';\nimport debounce from 'lodash.debounce';\nimport deepEqual from 'deep-equal';\nimport memoize from 'memoize-one';\nimport { LayoutUtils } from '@deephaven/dashboard';\nimport dh, { Column, Row, TableTemplate } from '@deephaven/jsapi-shim';\nimport {\n DateTimeColumnFormatter,\n Formatter,\n FormatterUtils,\n FormattingRule,\n TableUtils,\n} from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport { getActiveTool, getSettings, RootState } from '@deephaven/redux';\nimport { Pending, PromiseUtils } from '@deephaven/utils';\nimport type { Container, EventEmitter } from '@deephaven/golden-layout';\nimport DropdownFilter, {\n DropdownFilterColumn,\n} from '../controls/dropdown-filter/DropdownFilter';\nimport { InputFilterEvent } from '../events';\nimport {\n getColumnsForDashboard,\n getColumnSelectionValidatorForDashboard,\n getIsolatedLinkerPanelIdForDashboard,\n getLinksForDashboard,\n getTableMapForDashboard,\n} from '../redux';\nimport './DropdownFilterPanel.scss';\nimport ToolType from '../linker/ToolType';\nimport WidgetPanel from './WidgetPanel';\nimport { Link } from '../linker/LinkerUtils';\nimport { ColumnSelectionValidator } from '../linker/ColumnSelectionValidator';\n\nconst log = Log.module('DropdownFilterPanel');\n\nconst DROPDOWN_FILTER_DEBOUNCE = 250;\n\ninterface PanelState {\n name?: string;\n type?: string;\n value?: string;\n isValueShown?: boolean;\n timestamp?: number;\n}\n\ninterface DropdownFilterPanelProps {\n glContainer: Container;\n glEventHub: EventEmitter;\n panelState?: PanelState;\n isLinkerActive: boolean;\n columns: Column[];\n columnSelectionValidator?: ColumnSelectionValidator;\n disableLinking: boolean;\n settings: {\n formatter: FormattingRule[];\n };\n // eslint-disable-next-line react/no-unused-prop-types\n panelTableMap: Map<string | string[], TableTemplate>;\n // eslint-disable-next-line react/no-unused-prop-types\n dashboardLinks: Link[];\n}\n\ninterface DropdownFilterPanelState {\n column?: DropdownFilterColumn;\n formatter: Formatter;\n valuesTable?: TableTemplate;\n valuesColumn?: Column;\n sourceSize: number;\n value: string;\n timestamp?: number;\n values: unknown[];\n isValueShown: boolean;\n wasFlipped: boolean;\n skipUpdate: boolean;\n\n panelState?: PanelState; // Dehydrated panel state that can load this panel\n\n isDisconnected: boolean;\n isLoading: boolean;\n isLoaded: boolean;\n error: unknown | null;\n}\n\nclass DropdownFilterPanel extends Component<\n DropdownFilterPanelProps,\n DropdownFilterPanelState\n> {\n static displayName = 'DropdownFilterPanel';\n\n static COMPONENT = 'DropdownFilterPanel';\n\n static MAX_TABLE_SIZE = 256;\n\n // Filter dropdown needs to show and send full timestamp format with nanoseconds\n static DATETIME_FORMATTER = new DateTimeColumnFormatter({\n showTimeZone: false,\n showTSeparator: true,\n defaultDateTimeFormatString: `yyyy-MM-dd HH:mm:ss.SSSSSSSSS`,\n });\n\n static SOURCE_COLUMN = Object.freeze({\n name: 'FilterSource',\n type: null,\n });\n\n constructor(props: DropdownFilterPanelProps) {\n super(props);\n\n this.handleChange = debounce(\n this.handleChange.bind(this),\n DROPDOWN_FILTER_DEBOUNCE\n );\n this.handleClearAllFilters = this.handleClearAllFilters.bind(this);\n this.handleDisconnect = this.handleDisconnect.bind(this);\n this.handleReconnect = this.handleReconnect.bind(this);\n this.handleColumnSelected = this.handleColumnSelected.bind(this);\n this.handleSourceFilterChange = this.handleSourceFilterChange.bind(this);\n this.handleSourceSortChange = this.handleSourceSortChange.bind(this);\n this.handleSourceSizeChange = this.handleSourceSizeChange.bind(this);\n this.handleSourceMouseEnter = this.handleSourceMouseEnter.bind(this);\n this.handleSourceMouseLeave = this.handleSourceMouseLeave.bind(this);\n this.handleValuesTableUpdate = this.handleValuesTableUpdate.bind(this);\n\n this.dropdownFilterRef = React.createRef();\n this.panelContainer = React.createRef();\n this.pending = new Pending();\n\n const { panelState, settings } = props;\n this.columnFormats = FormatterUtils.getColumnFormats(settings);\n const { value = '', isValueShown = false, name, type, timestamp } =\n panelState ?? {};\n const column = name != null && type != null ? { name, type } : undefined;\n this.state = {\n column,\n formatter: new Formatter(this.columnFormats),\n valuesTable: undefined,\n valuesColumn: undefined,\n sourceSize: 0,\n value,\n timestamp,\n values: [],\n isValueShown,\n wasFlipped: false,\n skipUpdate: false,\n\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n\n isDisconnected: false,\n isLoading: false,\n isLoaded: false,\n error: null,\n };\n }\n\n componentDidMount() {\n this.updateValuesTable();\n const { column, value, timestamp } = this.state;\n const sourceTable = this.getSourceTable();\n if (sourceTable !== null) {\n this.startListeningToSource(sourceTable);\n }\n if (column != null) {\n const { name, type } = column;\n this.sendUpdate(name, type, value, timestamp);\n }\n }\n\n componentDidUpdate(\n prevProps: DropdownFilterPanelProps,\n prevState: DropdownFilterPanelState\n ) {\n const { valuesTable } = this.state;\n const { settings } = this.props;\n const source = this.getSource();\n const sourceTable = this.getSourceTable();\n const prevSource = this.getSource(prevProps);\n const prevSourceTable = this.getSourceTable(prevProps);\n\n if (settings !== prevProps.settings && settings !== undefined) {\n this.updateFormatterSettings(settings);\n }\n\n if (\n valuesTable !== prevState.valuesTable &&\n prevState.valuesTable != null\n ) {\n log.debug('Table in state modified, closing the old table.');\n prevState.valuesTable.close();\n }\n\n // Checking source change in addition to table change\n // in case a different column is selected in the same table\n if (sourceTable !== prevSourceTable || source !== prevSource) {\n this.updateValuesTable();\n }\n\n if (sourceTable !== prevSourceTable) {\n if (prevSourceTable !== null) {\n this.stopListeningToSource(prevSourceTable);\n }\n if (sourceTable !== null) {\n this.startListeningToSource(sourceTable);\n }\n }\n }\n\n componentWillUnmount(): void {\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable();\n this.pending.cancel();\n if (sourceTable !== null) {\n this.stopListeningToSource(sourceTable);\n }\n if (this.cleanup) {\n this.cleanup();\n }\n if (valuesTable != null) {\n valuesTable.close();\n }\n }\n\n dropdownFilterRef: RefObject<DropdownFilter>;\n\n panelContainer: RefObject<HTMLDivElement>;\n\n pending: Pending;\n\n cleanup?: () => void;\n\n columnFormats?: FormattingRule[];\n\n getCachedValues = memoize(\n (\n rawValues: unknown[],\n { type, name }: DropdownFilterColumn,\n formatter: Formatter\n ) => {\n if (type !== undefined && TableUtils.isDateType(type)) {\n return rawValues.map(value =>\n DropdownFilterPanel.DATETIME_FORMATTER.format(value as number)\n );\n }\n return rawValues.map(value =>\n // Skip formatting for nulls so they don't get converted to ''\n value != null && type != null\n ? formatter.getFormattedString(value, type, name)\n : null\n );\n }\n );\n\n getCoordinateForColumn(): [number, number] | null {\n if (this.panelContainer.current == null) {\n return null;\n }\n\n const element = this.panelContainer.current.querySelector(\n `.${DropdownFilter.SOURCE_BUTTON_CLASS_NAME}`\n );\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 getSettingsErrorMessage(): string | undefined {\n const { sourceSize } = this.state;\n if (sourceSize > DropdownFilterPanel.MAX_TABLE_SIZE) {\n return `Table too large, must have fewer than ${DropdownFilterPanel.MAX_TABLE_SIZE} options.`;\n }\n return undefined;\n }\n\n getPanelErrorMessage(): string | undefined {\n const { error } = this.state;\n return error != null ? `${error}` : undefined;\n }\n\n getCachedPanelLinks = memoize((dashboardLinks: Link[], panel) => {\n const panelId = LayoutUtils.getIdFromPanel(panel);\n log.debug('getCachedPanelLinks', dashboardLinks, panelId);\n return dashboardLinks.filter(link => link.end?.panelId === panelId);\n });\n\n getCachedSource = memoize(links => {\n log.debug('getCachedSource', links);\n let source = null;\n if (links.length > 0) {\n const [link] = links;\n source = link.start;\n if (links.length > 1) {\n log.error('Filter has more that one link', links);\n }\n }\n return source;\n });\n\n getCachedSourceTable = memoize((panelTableMap, source) => {\n log.debug('getCachedSourceTable', panelTableMap, source);\n if (source == null) {\n return null;\n }\n const { panelId } = source;\n return panelTableMap.get(panelId) ?? null;\n });\n\n getCachedSourceColumn = memoize((table: TableTemplate, source) => {\n log.debug('getCachedSourceColumn', table, source);\n if (table == null || source == null) {\n return null;\n }\n return (\n table.columns.find(\n ({ name, type }) =>\n name === source.columnName && type === source.columnType\n ) ?? null\n );\n });\n\n getSource(props = this.props) {\n const { dashboardLinks } = props;\n const panelLinks = this.getCachedPanelLinks(dashboardLinks, this);\n return this.getCachedSource(panelLinks);\n }\n\n getSourceTable(props = this.props) {\n const { panelTableMap } = props;\n const source = this.getSource(props);\n return this.getCachedSourceTable(panelTableMap, source);\n }\n\n getValuesColumn(valuesTable: TableTemplate): Column | null {\n const source = this.getSource();\n return this.getCachedSourceColumn(valuesTable, source);\n }\n\n startListeningToSource(sourceTable: TableTemplate): void {\n log.debug('startListeningToSource');\n sourceTable.addEventListener(\n dh.Table.EVENT_FILTERCHANGED,\n this.handleSourceFilterChange\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_SORTCHANGED,\n this.handleSourceSortChange\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_SIZECHANGED,\n this.handleSourceSizeChange\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_DISCONNECT,\n this.handleDisconnect\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_RECONNECT,\n this.handleReconnect\n );\n }\n\n stopListeningToSource(sourceTable: TableTemplate): void {\n log.debug('stopListeningToSource');\n sourceTable.removeEventListener(\n dh.Table.EVENT_FILTERCHANGED,\n this.handleSourceFilterChange\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_SORTCHANGED,\n this.handleSourceSortChange\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_SIZECHANGED,\n this.handleSourceSizeChange\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_DISCONNECT,\n this.handleDisconnect\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_RECONNECT,\n this.handleReconnect\n );\n }\n\n handleChange({\n column,\n isValueShown,\n value,\n }: {\n column: Partial<Column> | null;\n isValueShown?: boolean | undefined;\n value?: string | undefined;\n }) {\n const { name = undefined, type = undefined } = column ?? {};\n let sendUpdate = true;\n let timestamp: number | undefined = Date.now();\n this.setState(\n ({ panelState, timestamp: prevTimestamp, wasFlipped, skipUpdate }) => {\n // If the user had a value set, and they flip the card over and flip it back without changing any settings, ignore it\n const isFlip =\n panelState != null &&\n isValueShown !== panelState.isValueShown &&\n name === panelState.name &&\n type === panelState.type &&\n value === panelState.value;\n sendUpdate =\n (!skipUpdate && isValueShown && (!isFlip || !wasFlipped)) ?? false;\n\n if (!sendUpdate) {\n timestamp = prevTimestamp;\n }\n\n return {\n panelState: {\n isValueShown,\n name,\n type,\n value,\n timestamp: timestamp ?? undefined,\n },\n timestamp,\n wasFlipped: isFlip,\n skipUpdate: false,\n };\n },\n () => {\n if (sendUpdate) {\n this.sendUpdate(name ?? null, type, value, timestamp);\n }\n }\n );\n }\n\n handleDisconnect() {\n this.setState({\n error: new Error('Table disconnected'),\n isDisconnected: true,\n isLoading: false,\n });\n }\n\n handleReconnect() {\n this.setState({ isDisconnected: false, error: null });\n }\n\n handleSourceFilterChange() {\n this.applySourceFilters();\n }\n\n handleSourceSortChange() {\n this.applySourceSorts();\n }\n\n handleSourceSizeChange({ detail }: { detail: number }) {\n this.setState({ sourceSize: detail });\n }\n\n handleColumnSelected(): void {\n log.debug('handleColumnSelected');\n const { glEventHub } = this.props;\n glEventHub.emit(\n InputFilterEvent.COLUMN_SELECTED,\n this,\n DropdownFilterPanel.SOURCE_COLUMN\n );\n }\n\n handleClearAllFilters(): void {\n this.dropdownFilterRef?.current?.clearFilter();\n }\n\n /**\n * Set the filter value, card side, selected column\n * @param state Filter state to set\n * @param sendUpdate Emit filters changed event if true\n */\n setPanelState(\n state: {\n name: string;\n type: string;\n value: string;\n isValueShown: boolean;\n },\n sendUpdate = false\n ): void {\n if (this.getSource() == null) {\n log.debug('Ignore state update for unlinked filter', state);\n return;\n }\n // Set the skipUpdate flag so the next onChange handler call doesn't emit the FILTERS_CHANGED event\n this.setState({ skipUpdate: !sendUpdate });\n\n // Changing the inputFilter state via props doesn't quite work because of the delays on manual input changes\n // Setting the ref state directly triggers the onChange handler and updates the panelState\n this.dropdownFilterRef?.current?.setFilterState(state);\n }\n\n sendUpdate(\n name: string | null,\n type: string | undefined,\n value: string | undefined,\n timestamp?: number\n ): void {\n const { glEventHub } = this.props;\n const sourcePanelId = this.getSource()?.panelId;\n const excludePanelIds = sourcePanelId === null ? [] : [sourcePanelId];\n log.debug('sendUpdate', {\n name,\n type,\n value,\n timestamp,\n excludePanelIds,\n });\n\n glEventHub.emit(InputFilterEvent.FILTERS_CHANGED, this, {\n name,\n type,\n value: value != null ? value : '=null',\n timestamp,\n excludePanelIds,\n });\n }\n\n updateValuesTable(): void {\n const source = this.getSource();\n const sourceTable = this.getSourceTable();\n log.debug('updateValuesTable', source, sourceTable);\n\n this.setState({\n values: [],\n valuesTable: undefined,\n error: null,\n });\n\n if (source == null) {\n log.debug('Filter unlinked.');\n this.setState({\n isLoading: false,\n isLoaded: true,\n isValueShown: false,\n sourceSize: 0,\n });\n return;\n }\n\n this.setState({ isLoading: true });\n\n if (sourceTable == null) {\n return;\n }\n\n this.setState({ isLoaded: false, sourceSize: sourceTable.size });\n\n this.pending\n .add(sourceTable.copy(), resolved => resolved.close())\n .then(valuesTable => {\n // Loading/loaded will be set when values array is actually populated\n this.updateViewportListener(valuesTable);\n this.setState({ valuesTable });\n })\n .catch((error: unknown) => {\n if (PromiseUtils.isCanceled(error)) {\n return;\n }\n log.error(error);\n this.setState({ isLoading: false, error });\n });\n }\n\n applySourceSorts() {\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable();\n log.debug('applySourceSorts', sourceTable.sort);\n if (valuesTable == null) {\n log.debug('Table not initialized');\n return;\n }\n const sorts = [...sourceTable.sort];\n valuesTable.applySort(sorts);\n this.setViewport(valuesTable);\n }\n\n applySourceFilters(): void {\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable();\n log.debug('applySourceFilters', sourceTable.filter);\n if (valuesTable == null) {\n log.debug('Table not initialized');\n return;\n }\n const filters = [...sourceTable.filter];\n valuesTable.applyFilter(filters);\n this.setViewport(valuesTable);\n }\n\n updateViewportListener(valuesTable: TableTemplate): void {\n log.debug('updateViewportListener', valuesTable?.size);\n\n if (this.cleanup) {\n this.cleanup();\n }\n\n if (valuesTable == null) {\n this.cleanup = undefined;\n return;\n }\n\n this.cleanup = valuesTable.addEventListener(\n dh.Table.EVENT_UPDATED,\n this.handleValuesTableUpdate\n );\n\n this.setViewport(valuesTable);\n }\n\n setViewport(valuesTable: TableTemplate): void {\n const valuesColumn = this.getValuesColumn(valuesTable);\n if (!valuesColumn) {\n log.error('values column is null');\n return;\n }\n valuesTable.setViewport(0, DropdownFilterPanel.MAX_TABLE_SIZE - 1, [\n valuesColumn,\n ]);\n }\n\n updateFormatterSettings(settings: {\n formatter?: FormattingRule[] | undefined;\n }) {\n const columnFormats = FormatterUtils.getColumnFormats(settings);\n if (!deepEqual(this.columnFormats, columnFormats)) {\n this.columnFormats = columnFormats;\n this.setState({ formatter: new Formatter(columnFormats) });\n }\n }\n\n handleValuesTableUpdate({ detail }: { detail: { rows: Row[] } }) {\n const { rows } = detail;\n const { valuesTable } = this.state;\n if (!valuesTable) {\n log.error('valuesTable is null');\n return;\n }\n const valuesColumn = this.getValuesColumn(valuesTable);\n if (!valuesColumn) {\n log.error('Values column not found');\n return;\n }\n const values = rows.map(row => row.get(valuesColumn));\n this.setState({ values, isLoading: false, isLoaded: true, valuesColumn });\n }\n\n handleSourceMouseEnter() {\n const { columnSelectionValidator } = this.props;\n if (!columnSelectionValidator) {\n return;\n }\n columnSelectionValidator(this, DropdownFilterPanel.SOURCE_COLUMN);\n }\n\n handleSourceMouseLeave() {\n const { columnSelectionValidator } = this.props;\n if (!columnSelectionValidator) {\n return;\n }\n columnSelectionValidator(this, undefined);\n }\n\n render() {\n const {\n columns,\n disableLinking,\n glContainer,\n glEventHub,\n isLinkerActive,\n } = this.props;\n const {\n column,\n formatter,\n isDisconnected,\n isValueShown,\n value,\n values,\n valuesColumn,\n isLoading,\n isLoaded,\n } = this.state;\n\n const source = this.getSource();\n const settingsErrorMessage = this.getSettingsErrorMessage();\n const panelErrorMessage = this.getPanelErrorMessage();\n const formattedValues =\n isLoaded && valuesColumn != null\n ? this.getCachedValues(values, valuesColumn, formatter)\n : [];\n\n return (\n <WidgetPanel\n errorMessage={panelErrorMessage}\n isLoading={isLoading}\n isLoaded={isLoaded}\n isDisconnected={isDisconnected}\n className=\"iris-dropdown-filter-panel\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onClearAllFilters={this.handleClearAllFilters}\n widgetName=\"Dropdown Filter\"\n widgetType=\"DropdownFilter\"\n >\n <div\n ref={this.panelContainer}\n className=\"dropdown-filter-container h-100 w-100 container\"\n >\n <DropdownFilter\n ref={this.dropdownFilterRef}\n column={column}\n columns={columns}\n isValueShown={isValueShown}\n isLinkerActive={isLinkerActive}\n disableLinking={disableLinking}\n isLoaded={isLoaded}\n settingsError={settingsErrorMessage}\n source={source}\n value={value}\n values={formattedValues}\n onChange={this.handleChange}\n onColumnSelected={this.handleColumnSelected}\n onSourceMouseEnter={this.handleSourceMouseEnter}\n onSourceMouseLeave={this.handleSourceMouseLeave}\n />\n </div>\n </WidgetPanel>\n );\n }\n}\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: { localDashboardId: string; glContainer: Container }\n) => {\n const { localDashboardId } = ownProps;\n const panelId = LayoutUtils.getIdFromPanel({ props: ownProps });\n const panelTableMap = getTableMapForDashboard(state, localDashboardId);\n const dashboardLinks = getLinksForDashboard(state, localDashboardId);\n const activeTool = getActiveTool(state);\n const isolatedLinkerPanelId = getIsolatedLinkerPanelIdForDashboard(\n state,\n localDashboardId\n );\n const isLinkerActive =\n activeTool === ToolType.LINKER &&\n (isolatedLinkerPanelId === undefined || isolatedLinkerPanelId === panelId);\n // Disable linking if linker is in isolated mode for a different panel\n const disableLinking =\n activeTool === ToolType.LINKER &&\n isolatedLinkerPanelId !== undefined &&\n isolatedLinkerPanelId !== panelId;\n\n return {\n columns: getColumnsForDashboard(state, localDashboardId),\n columnSelectionValidator: getColumnSelectionValidatorForDashboard(\n state,\n localDashboardId\n ),\n isLinkerActive,\n disableLinking,\n settings: getSettings(state),\n panelTableMap,\n dashboardLinks,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { forwardRef: true })(\n DropdownFilterPanel\n);\n"],"mappings":"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"}
1
+ {"version":3,"file":"DropdownFilterPanel.js","names":["React","Component","connect","debounce","deepEqual","memoize","LayoutUtils","dh","DateTimeColumnFormatter","Formatter","FormatterUtils","TableUtils","Log","getActiveTool","getSettings","Pending","PromiseUtils","DropdownFilter","InputFilterEvent","getColumnsForDashboard","getColumnSelectionValidatorForDashboard","getIsolatedLinkerPanelIdForDashboard","getLinksForDashboard","getTableMapForDashboard","ToolType","WidgetPanel","log","module","DROPDOWN_FILTER_DEBOUNCE","DropdownFilterPanel","constructor","props","rawValues","formatter","type","name","undefined","isDateType","map","value","DATETIME_FORMATTER","format","getFormattedString","dashboardLinks","panel","panelId","getIdFromPanel","debug","filter","link","end","links","source","length","start","error","panelTableMap","get","table","columns","find","columnName","columnType","handleChange","bind","handleClearAllFilters","handleDisconnect","handleReconnect","handleColumnSelected","handleSourceFilterChange","handleSourceSortChange","handleSourceSizeChange","handleSourceMouseEnter","handleSourceMouseLeave","handleValuesTableUpdate","dropdownFilterRef","createRef","panelContainer","pending","panelState","settings","columnFormats","getColumnFormats","isValueShown","timestamp","column","state","valuesTable","valuesColumn","sourceSize","values","wasFlipped","skipUpdate","isDisconnected","isLoading","isLoaded","componentDidMount","updateValuesTable","sourceTable","getSourceTable","startListeningToSource","sendUpdate","componentDidUpdate","prevProps","prevState","getSource","prevSource","prevSourceTable","updateFormatterSettings","close","stopListeningToSource","componentWillUnmount","cancel","cleanup","getCoordinateForColumn","current","element","querySelector","SOURCE_BUTTON_CLASS_NAME","rect","getBoundingClientRect","width","height","x","left","y","bottom","getSettingsErrorMessage","MAX_TABLE_SIZE","getPanelErrorMessage","panelLinks","getCachedPanelLinks","getCachedSource","getCachedSourceTable","getValuesColumn","getCachedSourceColumn","addEventListener","Table","EVENT_FILTERCHANGED","EVENT_SORTCHANGED","EVENT_SIZECHANGED","EVENT_DISCONNECT","EVENT_RECONNECT","removeEventListener","Date","now","setState","prevTimestamp","isFlip","Error","applySourceFilters","applySourceSorts","detail","glEventHub","emit","COLUMN_SELECTED","SOURCE_COLUMN","clearFilter","setPanelState","setFilterState","sourcePanelId","excludePanelIds","FILTERS_CHANGED","size","add","copy","resolved","then","updateViewportListener","catch","isCanceled","sort","sorts","applySort","setViewport","filters","applyFilter","EVENT_UPDATED","rows","row","columnSelectionValidator","render","disableLinking","glContainer","isLinkerActive","settingsErrorMessage","panelErrorMessage","formattedValues","getCachedValues","showTimeZone","showTSeparator","defaultDateTimeFormatString","Object","freeze","mapStateToProps","ownProps","localDashboardId","activeTool","isolatedLinkerPanelId","LINKER","forwardRef"],"sources":["../../src/panels/DropdownFilterPanel.tsx"],"sourcesContent":["import React, { Component, RefObject } from 'react';\nimport { connect } from 'react-redux';\nimport debounce from 'lodash.debounce';\nimport deepEqual from 'deep-equal';\nimport memoize from 'memoize-one';\nimport { LayoutUtils } from '@deephaven/dashboard';\nimport dh from '@deephaven/jsapi-shim';\nimport type { Column, Row, Table, TableTemplate } from '@deephaven/jsapi-shim';\nimport {\n DateTimeColumnFormatter,\n Formatter,\n FormatterUtils,\n FormattingRule,\n TableUtils,\n} from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport { getActiveTool, getSettings, RootState } from '@deephaven/redux';\nimport { Pending, PromiseUtils } from '@deephaven/utils';\nimport type { Container, EventEmitter } from '@deephaven/golden-layout';\nimport DropdownFilter, {\n DropdownFilterColumn,\n} from '../controls/dropdown-filter/DropdownFilter';\nimport { InputFilterEvent } from '../events';\nimport {\n getColumnsForDashboard,\n getColumnSelectionValidatorForDashboard,\n getIsolatedLinkerPanelIdForDashboard,\n getLinksForDashboard,\n getTableMapForDashboard,\n} from '../redux';\nimport './DropdownFilterPanel.scss';\nimport ToolType from '../linker/ToolType';\nimport WidgetPanel from './WidgetPanel';\nimport type { Link, LinkPoint } from '../linker/LinkerUtils';\nimport { ColumnSelectionValidator } from '../linker/ColumnSelectionValidator';\n\nconst log = Log.module('DropdownFilterPanel');\n\nconst DROPDOWN_FILTER_DEBOUNCE = 250;\n\ninterface PanelState {\n name?: string;\n type?: string;\n value?: string;\n isValueShown?: boolean;\n timestamp?: number;\n}\n\ninterface DropdownFilterPanelProps {\n glContainer: Container;\n glEventHub: EventEmitter;\n panelState?: PanelState;\n isLinkerActive: boolean;\n columns: Column[];\n columnSelectionValidator?: ColumnSelectionValidator;\n disableLinking: boolean;\n settings: {\n formatter: FormattingRule[];\n };\n // eslint-disable-next-line react/no-unused-prop-types\n panelTableMap: Map<string | string[], TableTemplate>;\n // eslint-disable-next-line react/no-unused-prop-types\n dashboardLinks: Link[];\n}\n\ninterface DropdownFilterPanelState {\n column?: DropdownFilterColumn;\n formatter: Formatter;\n valuesTable?: TableTemplate;\n valuesColumn?: Column;\n sourceSize: number;\n value: string;\n timestamp?: number;\n values: unknown[];\n isValueShown: boolean;\n wasFlipped: boolean;\n skipUpdate: boolean;\n\n panelState?: PanelState; // Dehydrated panel state that can load this panel\n\n isDisconnected: boolean;\n isLoading: boolean;\n isLoaded: boolean;\n error: unknown | null;\n}\n\nclass DropdownFilterPanel extends Component<\n DropdownFilterPanelProps,\n DropdownFilterPanelState\n> {\n static displayName = 'DropdownFilterPanel';\n\n static COMPONENT = 'DropdownFilterPanel';\n\n static MAX_TABLE_SIZE = 256;\n\n // Filter dropdown needs to show and send full timestamp format with nanoseconds\n static DATETIME_FORMATTER = new DateTimeColumnFormatter({\n showTimeZone: false,\n showTSeparator: true,\n defaultDateTimeFormatString: `yyyy-MM-dd HH:mm:ss.SSSSSSSSS`,\n });\n\n static SOURCE_COLUMN = Object.freeze({\n name: 'FilterSource',\n type: null,\n });\n\n constructor(props: DropdownFilterPanelProps) {\n super(props);\n\n this.handleChange = debounce(\n this.handleChange.bind(this),\n DROPDOWN_FILTER_DEBOUNCE\n );\n this.handleClearAllFilters = this.handleClearAllFilters.bind(this);\n this.handleDisconnect = this.handleDisconnect.bind(this);\n this.handleReconnect = this.handleReconnect.bind(this);\n this.handleColumnSelected = this.handleColumnSelected.bind(this);\n this.handleSourceFilterChange = this.handleSourceFilterChange.bind(this);\n this.handleSourceSortChange = this.handleSourceSortChange.bind(this);\n this.handleSourceSizeChange = this.handleSourceSizeChange.bind(this);\n this.handleSourceMouseEnter = this.handleSourceMouseEnter.bind(this);\n this.handleSourceMouseLeave = this.handleSourceMouseLeave.bind(this);\n this.handleValuesTableUpdate = this.handleValuesTableUpdate.bind(this);\n\n this.dropdownFilterRef = React.createRef();\n this.panelContainer = React.createRef();\n this.pending = new Pending();\n\n const { panelState, settings } = props;\n this.columnFormats = FormatterUtils.getColumnFormats(settings);\n const { value = '', isValueShown = false, name, type, timestamp } =\n panelState ?? {};\n const column = name != null && type != null ? { name, type } : undefined;\n this.state = {\n column,\n formatter: new Formatter(this.columnFormats),\n valuesTable: undefined,\n valuesColumn: undefined,\n sourceSize: 0,\n value,\n timestamp,\n values: [],\n isValueShown,\n wasFlipped: false,\n skipUpdate: false,\n\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n\n isDisconnected: false,\n isLoading: false,\n isLoaded: false,\n error: null,\n };\n }\n\n componentDidMount() {\n this.updateValuesTable();\n const { column, value, timestamp } = this.state;\n const sourceTable = this.getSourceTable();\n if (sourceTable !== null) {\n this.startListeningToSource(sourceTable);\n }\n if (column != null) {\n const { name, type } = column;\n this.sendUpdate(name, type, value, timestamp);\n }\n }\n\n componentDidUpdate(\n prevProps: DropdownFilterPanelProps,\n prevState: DropdownFilterPanelState\n ) {\n const { valuesTable } = this.state;\n const { settings } = this.props;\n const source = this.getSource();\n const sourceTable = this.getSourceTable();\n const prevSource = this.getSource(prevProps);\n const prevSourceTable = this.getSourceTable(prevProps);\n\n if (settings !== prevProps.settings && settings !== undefined) {\n this.updateFormatterSettings(settings);\n }\n\n if (\n valuesTable !== prevState.valuesTable &&\n prevState.valuesTable != null\n ) {\n log.debug('Table in state modified, closing the old table.');\n prevState.valuesTable.close();\n }\n\n // Checking source change in addition to table change\n // in case a different column is selected in the same table\n if (sourceTable !== prevSourceTable || source !== prevSource) {\n this.updateValuesTable();\n }\n\n if (sourceTable !== prevSourceTable) {\n if (prevSourceTable !== null) {\n this.stopListeningToSource(prevSourceTable);\n }\n if (sourceTable !== null) {\n this.startListeningToSource(sourceTable);\n }\n }\n }\n\n componentWillUnmount(): void {\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable();\n this.pending.cancel();\n if (sourceTable !== null) {\n this.stopListeningToSource(sourceTable);\n }\n if (this.cleanup) {\n this.cleanup();\n }\n if (valuesTable != null) {\n valuesTable.close();\n }\n }\n\n dropdownFilterRef: RefObject<DropdownFilter>;\n\n panelContainer: RefObject<HTMLDivElement>;\n\n pending: Pending;\n\n cleanup?: () => void;\n\n columnFormats?: FormattingRule[];\n\n getCachedValues = memoize(\n (\n rawValues: unknown[],\n { type, name }: DropdownFilterColumn,\n formatter: Formatter\n ) => {\n if (type !== undefined && TableUtils.isDateType(type)) {\n return rawValues.map(value =>\n DropdownFilterPanel.DATETIME_FORMATTER.format(value as number)\n );\n }\n return rawValues.map(value =>\n // Skip formatting for nulls so they don't get converted to ''\n value != null && type != null\n ? formatter.getFormattedString(value, type, name)\n : null\n );\n }\n );\n\n getCoordinateForColumn(): [number, number] | null {\n if (this.panelContainer.current == null) {\n return null;\n }\n\n const element = this.panelContainer.current.querySelector(\n `.${DropdownFilter.SOURCE_BUTTON_CLASS_NAME}`\n );\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 getSettingsErrorMessage(): string | undefined {\n const { sourceSize } = this.state;\n if (sourceSize > DropdownFilterPanel.MAX_TABLE_SIZE) {\n return `Table too large, must have fewer than ${DropdownFilterPanel.MAX_TABLE_SIZE} options.`;\n }\n return undefined;\n }\n\n getPanelErrorMessage(): string | undefined {\n const { error } = this.state;\n return error != null ? `${error}` : undefined;\n }\n\n getCachedPanelLinks = memoize(\n (dashboardLinks: Link[], panel: DropdownFilterPanel) => {\n const panelId = LayoutUtils.getIdFromPanel(panel);\n log.debug('getCachedPanelLinks', dashboardLinks, panelId);\n return dashboardLinks.filter(link => link.end?.panelId === panelId);\n }\n );\n\n getCachedSource = memoize((links: Link[]) => {\n log.debug('getCachedSource', links);\n let source: LinkPoint | undefined;\n if (links.length > 0) {\n const [link] = links;\n source = link.start;\n if (links.length > 1) {\n log.error('Filter has more that one link', links);\n }\n }\n return source;\n });\n\n getCachedSourceTable = memoize(\n (\n panelTableMap: Map<string | string[], TableTemplate<Table>>,\n source: LinkPoint | undefined\n ) => {\n log.debug('getCachedSourceTable', panelTableMap, source);\n if (source == null) {\n return null;\n }\n const { panelId } = source;\n return panelTableMap.get(panelId) ?? null;\n }\n );\n\n getCachedSourceColumn = memoize(\n (table: TableTemplate, source: LinkPoint | undefined) => {\n log.debug('getCachedSourceColumn', table, source);\n if (table == null || source == null) {\n return null;\n }\n return (\n table.columns.find(\n ({ name, type }) =>\n name === source.columnName && type === source.columnType\n ) ?? null\n );\n }\n );\n\n getSource(props = this.props) {\n const { dashboardLinks } = props;\n const panelLinks = this.getCachedPanelLinks(dashboardLinks, this);\n return this.getCachedSource(panelLinks);\n }\n\n getSourceTable(props = this.props) {\n const { panelTableMap } = props;\n const source = this.getSource(props);\n return this.getCachedSourceTable(panelTableMap, source);\n }\n\n getValuesColumn(valuesTable: TableTemplate): Column | null {\n const source = this.getSource();\n return this.getCachedSourceColumn(valuesTable, source);\n }\n\n startListeningToSource(sourceTable: TableTemplate): void {\n log.debug('startListeningToSource');\n sourceTable.addEventListener(\n dh.Table.EVENT_FILTERCHANGED,\n this.handleSourceFilterChange\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_SORTCHANGED,\n this.handleSourceSortChange\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_SIZECHANGED,\n this.handleSourceSizeChange\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_DISCONNECT,\n this.handleDisconnect\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_RECONNECT,\n this.handleReconnect\n );\n }\n\n stopListeningToSource(sourceTable: TableTemplate): void {\n log.debug('stopListeningToSource');\n sourceTable.removeEventListener(\n dh.Table.EVENT_FILTERCHANGED,\n this.handleSourceFilterChange\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_SORTCHANGED,\n this.handleSourceSortChange\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_SIZECHANGED,\n this.handleSourceSizeChange\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_DISCONNECT,\n this.handleDisconnect\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_RECONNECT,\n this.handleReconnect\n );\n }\n\n handleChange({\n column,\n isValueShown,\n value,\n }: {\n column: Partial<Column> | null;\n isValueShown?: boolean | undefined;\n value?: string | undefined;\n }) {\n const { name = undefined, type = undefined } = column ?? {};\n let sendUpdate = true;\n let timestamp: number | undefined = Date.now();\n this.setState(\n ({ panelState, timestamp: prevTimestamp, wasFlipped, skipUpdate }) => {\n // If the user had a value set, and they flip the card over and flip it back without changing any settings, ignore it\n const isFlip =\n panelState != null &&\n isValueShown !== panelState.isValueShown &&\n name === panelState.name &&\n type === panelState.type &&\n value === panelState.value;\n sendUpdate =\n (!skipUpdate && isValueShown && (!isFlip || !wasFlipped)) ?? false;\n\n if (!sendUpdate) {\n timestamp = prevTimestamp;\n }\n\n return {\n panelState: {\n isValueShown,\n name,\n type,\n value,\n timestamp: timestamp ?? undefined,\n },\n timestamp,\n wasFlipped: isFlip,\n skipUpdate: false,\n };\n },\n () => {\n if (sendUpdate) {\n this.sendUpdate(name ?? null, type, value, timestamp);\n }\n }\n );\n }\n\n handleDisconnect() {\n this.setState({\n error: new Error('Table disconnected'),\n isDisconnected: true,\n isLoading: false,\n });\n }\n\n handleReconnect() {\n this.setState({ isDisconnected: false, error: null });\n }\n\n handleSourceFilterChange() {\n this.applySourceFilters();\n }\n\n handleSourceSortChange() {\n this.applySourceSorts();\n }\n\n handleSourceSizeChange({ detail }: { detail: number }) {\n this.setState({ sourceSize: detail });\n }\n\n handleColumnSelected(): void {\n log.debug('handleColumnSelected');\n const { glEventHub } = this.props;\n glEventHub.emit(\n InputFilterEvent.COLUMN_SELECTED,\n this,\n DropdownFilterPanel.SOURCE_COLUMN\n );\n }\n\n handleClearAllFilters(): void {\n this.dropdownFilterRef?.current?.clearFilter();\n }\n\n /**\n * Set the filter value, card side, selected column\n * @param state Filter state to set\n * @param sendUpdate Emit filters changed event if true\n */\n setPanelState(\n state: {\n name: string;\n type: string;\n value: string;\n isValueShown: boolean;\n },\n sendUpdate = false\n ): void {\n if (this.getSource() == null) {\n log.debug('Ignore state update for unlinked filter', state);\n return;\n }\n // Set the skipUpdate flag so the next onChange handler call doesn't emit the FILTERS_CHANGED event\n this.setState({ skipUpdate: !sendUpdate });\n\n // Changing the inputFilter state via props doesn't quite work because of the delays on manual input changes\n // Setting the ref state directly triggers the onChange handler and updates the panelState\n this.dropdownFilterRef?.current?.setFilterState(state);\n }\n\n sendUpdate(\n name: string | null,\n type: string | undefined,\n value: string | undefined,\n timestamp?: number\n ): void {\n const { glEventHub } = this.props;\n const sourcePanelId = this.getSource()?.panelId;\n const excludePanelIds = sourcePanelId === null ? [] : [sourcePanelId];\n log.debug('sendUpdate', {\n name,\n type,\n value,\n timestamp,\n excludePanelIds,\n });\n\n glEventHub.emit(InputFilterEvent.FILTERS_CHANGED, this, {\n name,\n type,\n value: value != null ? value : '=null',\n timestamp,\n excludePanelIds,\n });\n }\n\n updateValuesTable(): void {\n const source = this.getSource();\n const sourceTable = this.getSourceTable();\n log.debug('updateValuesTable', source, sourceTable);\n\n this.setState({\n values: [],\n valuesTable: undefined,\n error: null,\n });\n\n if (source == null) {\n log.debug('Filter unlinked.');\n this.setState({\n isLoading: false,\n isLoaded: true,\n isValueShown: false,\n sourceSize: 0,\n });\n return;\n }\n\n this.setState({ isLoading: true });\n\n if (sourceTable == null) {\n return;\n }\n\n this.setState({ isLoaded: false, sourceSize: sourceTable.size });\n\n this.pending\n .add(sourceTable.copy(), resolved => resolved.close())\n .then(valuesTable => {\n // Loading/loaded will be set when values array is actually populated\n this.updateViewportListener(valuesTable);\n this.setState({ valuesTable });\n })\n .catch((error: unknown) => {\n if (PromiseUtils.isCanceled(error)) {\n return;\n }\n log.error(error);\n this.setState({ isLoading: false, error });\n });\n }\n\n applySourceSorts() {\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable();\n log.debug('applySourceSorts', sourceTable?.sort);\n if (valuesTable == null || sourceTable == null) {\n log.debug('Table not initialized');\n return;\n }\n const sorts = [...sourceTable.sort];\n valuesTable.applySort(sorts);\n this.setViewport(valuesTable);\n }\n\n applySourceFilters(): void {\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable();\n log.debug('applySourceFilters', sourceTable?.filter);\n if (valuesTable == null || sourceTable == null) {\n log.debug('Table not initialized');\n return;\n }\n const filters = [...sourceTable.filter];\n valuesTable.applyFilter(filters);\n this.setViewport(valuesTable);\n }\n\n updateViewportListener(valuesTable: TableTemplate): void {\n log.debug('updateViewportListener', valuesTable?.size);\n\n if (this.cleanup) {\n this.cleanup();\n }\n\n if (valuesTable == null) {\n this.cleanup = undefined;\n return;\n }\n\n this.cleanup = valuesTable.addEventListener(\n dh.Table.EVENT_UPDATED,\n this.handleValuesTableUpdate\n );\n\n this.setViewport(valuesTable);\n }\n\n setViewport(valuesTable: TableTemplate): void {\n const valuesColumn = this.getValuesColumn(valuesTable);\n if (!valuesColumn) {\n log.error('values column is null');\n return;\n }\n valuesTable.setViewport(0, DropdownFilterPanel.MAX_TABLE_SIZE - 1, [\n valuesColumn,\n ]);\n }\n\n updateFormatterSettings(settings: {\n formatter?: FormattingRule[] | undefined;\n }) {\n const columnFormats = FormatterUtils.getColumnFormats(settings);\n if (!deepEqual(this.columnFormats, columnFormats)) {\n this.columnFormats = columnFormats;\n this.setState({ formatter: new Formatter(columnFormats) });\n }\n }\n\n handleValuesTableUpdate({ detail }: { detail: { rows: Row[] } }) {\n const { rows } = detail;\n const { valuesTable } = this.state;\n if (!valuesTable) {\n log.error('valuesTable is null');\n return;\n }\n const valuesColumn = this.getValuesColumn(valuesTable);\n if (!valuesColumn) {\n log.error('Values column not found');\n return;\n }\n const values = rows.map(row => row.get(valuesColumn));\n this.setState({ values, isLoading: false, isLoaded: true, valuesColumn });\n }\n\n handleSourceMouseEnter() {\n const { columnSelectionValidator } = this.props;\n if (!columnSelectionValidator) {\n return;\n }\n columnSelectionValidator(this, DropdownFilterPanel.SOURCE_COLUMN);\n }\n\n handleSourceMouseLeave() {\n const { columnSelectionValidator } = this.props;\n if (!columnSelectionValidator) {\n return;\n }\n columnSelectionValidator(this, undefined);\n }\n\n render() {\n const {\n columns,\n disableLinking,\n glContainer,\n glEventHub,\n isLinkerActive,\n } = this.props;\n const {\n column,\n formatter,\n isDisconnected,\n isValueShown,\n value,\n values,\n valuesColumn,\n isLoading,\n isLoaded,\n } = this.state;\n\n const source = this.getSource();\n const settingsErrorMessage = this.getSettingsErrorMessage();\n const panelErrorMessage = this.getPanelErrorMessage();\n const formattedValues =\n isLoaded && valuesColumn != null\n ? this.getCachedValues(values, valuesColumn, formatter)\n : [];\n\n return (\n <WidgetPanel\n errorMessage={panelErrorMessage}\n isLoading={isLoading}\n isLoaded={isLoaded}\n isDisconnected={isDisconnected}\n className=\"iris-dropdown-filter-panel\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onClearAllFilters={this.handleClearAllFilters}\n widgetName=\"Dropdown Filter\"\n widgetType=\"DropdownFilter\"\n >\n <div\n ref={this.panelContainer}\n className=\"dropdown-filter-container h-100 w-100 container\"\n >\n <DropdownFilter\n ref={this.dropdownFilterRef}\n column={column}\n columns={columns}\n isValueShown={isValueShown}\n isLinkerActive={isLinkerActive}\n disableLinking={disableLinking}\n isLoaded={isLoaded}\n settingsError={settingsErrorMessage}\n source={source}\n value={value}\n values={formattedValues}\n onChange={this.handleChange}\n onColumnSelected={this.handleColumnSelected}\n onSourceMouseEnter={this.handleSourceMouseEnter}\n onSourceMouseLeave={this.handleSourceMouseLeave}\n />\n </div>\n </WidgetPanel>\n );\n }\n}\n\nconst mapStateToProps = (\n state: RootState,\n ownProps: { localDashboardId: string; glContainer: Container }\n) => {\n const { localDashboardId } = ownProps;\n const panelId = LayoutUtils.getIdFromPanel({ props: ownProps });\n const panelTableMap = getTableMapForDashboard(state, localDashboardId);\n const dashboardLinks = getLinksForDashboard(state, localDashboardId);\n const activeTool = getActiveTool(state);\n const isolatedLinkerPanelId = getIsolatedLinkerPanelIdForDashboard(\n state,\n localDashboardId\n );\n const isLinkerActive =\n activeTool === ToolType.LINKER &&\n (isolatedLinkerPanelId === undefined || isolatedLinkerPanelId === panelId);\n // Disable linking if linker is in isolated mode for a different panel\n const disableLinking =\n activeTool === ToolType.LINKER &&\n isolatedLinkerPanelId !== undefined &&\n isolatedLinkerPanelId !== panelId;\n\n return {\n columns: getColumnsForDashboard(state, localDashboardId),\n columnSelectionValidator: getColumnSelectionValidatorForDashboard(\n state,\n localDashboardId\n ),\n isLinkerActive,\n disableLinking,\n settings: getSettings(state),\n panelTableMap,\n dashboardLinks,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { forwardRef: true })(\n DropdownFilterPanel\n);\n"],"mappings":"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"}
@@ -22,7 +22,7 @@ export interface PanelState {
22
22
  isStuckToBottom: boolean;
23
23
  isStuckToRight: boolean;
24
24
  movedColumns: {
25
- from: string | ModelIndex;
25
+ from: string | ModelIndex | [string, string] | [ModelIndex, ModelIndex];
26
26
  to: string | ModelIndex;
27
27
  }[];
28
28
  movedRows: MoveOperation[];
@@ -91,7 +91,7 @@ interface IrisGridPanelState {
91
91
  invertSearchColumns: boolean;
92
92
  Plugin?: Plugin;
93
93
  pluginFilters: FilterCondition[];
94
- pluginFetchColumns: unknown[];
94
+ pluginFetchColumns: string[];
95
95
  modelQueue: ModelQueue;
96
96
  pendingDataMap?: PendingDataMap<UIRow>;
97
97
  frozenColumns?: ColumnName[];
@@ -118,16 +118,16 @@ export declare class IrisGridPanel extends PureComponent<IrisGridPanelProps, Iri
118
118
  pluginState: unknown;
119
119
  getTableName(): string;
120
120
  getGridInputFilters: (columns: Column[], inputFilters: InputFilter[]) => InputFilter[];
121
- getAlwaysFetchColumns: (this: any, dashboardLinks: Link[], pluginFetchColumns: any) => string[];
122
- getPluginContent: (this: any, Plugin: any, model: IrisGridModel | undefined, user: any, workspace: any, pluginState: any) => JSX.Element | null;
121
+ getAlwaysFetchColumns: (dashboardLinks: Link[], pluginFetchColumns: string[]) => string[];
122
+ getPluginContent: (Plugin: any, model: IrisGridModel | undefined, user: User, workspace: Workspace, pluginState: unknown) => JSX.Element | null;
123
123
  getDehydratedIrisGridPanelState: (model: IrisGridModel, isSelectingPartition: boolean, partition: string | undefined, partitionColumn: Column | undefined, advancedSettings: Map<AdvancedSettingsType, boolean>) => {
124
124
  isSelectingPartition: boolean;
125
125
  partition: string | undefined;
126
- partitionColumn: string | null;
126
+ partitionColumn: string | undefined;
127
127
  advancedSettings: [AdvancedSettingsType, boolean][];
128
128
  };
129
- getDehydratedIrisGridState: (this: any, model: any, sorts: any, advancedFilters: any, customColumnFormatMap: any, isFilterBarShown: any, quickFilters: any, customColumns: any, reverseType: any, rollupConfig: any, showSearchBar: any, searchValue: any, selectDistinctColumns: any, selectedSearchColumns: any, invertSearchColumns: any, userColumnWidths: any, userRowHeights: any, aggregationSettings: any, pendingDataMap: any, frozenColumns: any, conditionalFormats: any) => DehydratedIrisGridState;
130
- getDehydratedGridState: (this: any, model: any, movedColumns: any, movedRows: any, isStuckToBottom: any, isStuckToRight: any) => {
129
+ getDehydratedIrisGridState: (model: IrisGridModel, sorts: Sort[], advancedFilters: AdvancedFilterMap, customColumnFormatMap: Map<ColumnName, FormattingRule>, isFilterBarShown: boolean, quickFilters: QuickFilterMap, customColumns: ColumnName[], reverseType: ReverseType, rollupConfig: UIRollupConfig | undefined, showSearchBar: boolean, searchValue: string, selectDistinctColumns: ColumnName[], selectedSearchColumns: ColumnName[], invertSearchColumns: boolean, userColumnWidths: ModelSizeMap, userRowHeights: ModelSizeMap, aggregationSettings: AggregationSettings, pendingDataMap: PendingDataMap<UIRow>, frozenColumns: ColumnName[], conditionalFormats: SidebarFormattingRule[]) => DehydratedIrisGridState;
130
+ getDehydratedGridState: (model: IrisGridModel, movedColumns: MoveOperation[], movedRows: MoveOperation[], isStuckToBottom: boolean, isStuckToRight: boolean) => {
131
131
  isStuckToBottom: boolean;
132
132
  isStuckToRight: boolean;
133
133
  movedColumns: {
@@ -136,13 +136,13 @@ export declare class IrisGridPanel extends PureComponent<IrisGridPanelProps, Iri
136
136
  }[];
137
137
  movedRows: MoveOperation[];
138
138
  };
139
- getCachedPanelState: (this: any, irisGridPanelState: any, irisGridState: any, gridState: any, pluginState: any) => PanelState;
139
+ getCachedPanelState: (irisGridPanelState: PanelState['irisGridPanelState'], irisGridState: PanelState['irisGridState'], gridState: PanelState['gridState'], pluginState: PanelState['pluginState']) => PanelState;
140
140
  initModel(): void;
141
141
  handleLoadSuccess(modelParam: IrisGridModel): void;
142
142
  initModelQueue(modelParam: IrisGridModel, modelQueue: ModelQueue): void;
143
143
  handleAdvancedSettingsChange(key: AdvancedSettingsType, value: boolean): void;
144
144
  handlePluginFilter(filters: InputFilter[]): void;
145
- handlePluginFetchColumns(pluginFetchColumns: unknown[]): void;
145
+ handlePluginFetchColumns(pluginFetchColumns: string[]): void;
146
146
  handleContextMenu(obj: {
147
147
  model: IrisGridModel;
148
148
  value: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridPanel.d.ts","sourceRoot":"","sources":["../../src/panels/IrisGridPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IrisGridPanel.d.ts","sourceRoot":"","sources":["../../src/panels/IrisGridPanel.tsx"],"names":[],"mappings":"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"}