@deephaven/dashboard-core-plugins 0.106.1 → 0.106.2-beta.1

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":"DropdownFilter.d.ts","sourceRoot":"","sources":["../../../src/controls/dropdown-filter/DropdownFilter.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DropdownFilter.d.ts","sourceRoot":"","sources":["../../../src/controls/dropdown-filter/DropdownFilter.tsx"],"names":[],"mappings":"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"}
@@ -69,6 +69,8 @@ export class DropdownFilter extends Component {
69
69
  return "".concat(name, " (").concat(shortType, ")");
70
70
  }
71
71
  return name;
72
+ }, {
73
+ max: 1000
72
74
  }));
73
75
  _defineProperty(this, "sendUpdate", debounce(() => {
74
76
  var {
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownFilter.js","names":["React","Component","FontAwesomeIcon","Button","CardFlip","Select","SocketedButton","vsGear","TableUtils","memoizee","memoize","debounce","nanoid","Log","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","log","module","UPDATE_DEBOUNCE","DropdownFilter","constructor","props","_defineProperty","source","columns","filter","_ref","type","undefined","isCompatibleType","columnType","selectedColumn","selectedIndex","options","push","value","children","forEach","columnItem","index","getItemLabel","concat","name","values","indexOf","PLACEHOLDER","map","val","length","shortType","substring","lastIndexOf","onChange","column","isValueShown","state","handleColumnChange","bind","handleSettingsCancel","handleSettingsClick","handleSettingsSave","handleBackgroundClick","handleDropdownKeyPress","handleValueChange","dropdownRef","createRef","id","disableCancel","componentDidUpdate","prevProps","prevState","isLoaded","sourceUpdated","includes","resetValue","focusInput","sendUpdate","componentWillUnmount","flush","eventTargetValue","debug2","parseInt","setState","allColumns","getCompatibleColumns","event","key","preventDefault","stopPropagation","valueIndex","_ref2","_ref3","showSettings","target","current","_this$dropdownRef$cur","focus","clearFilter","setFilterState","_ref4","_ref5","oldValue","oldIsValueShown","render","_source$columnName","disableLinking","isLinkerActive","onColumnSelected","onSourceMouseEnter","onSourceMouseLeave","settingsError","columnSelectionDisabled","isLinked","sourceButtonLabel","columnName","SOURCE_BUTTON_PLACEHOLDER","filterTitle","columnOptions","getColumnOptions","valueOptions","getValueOptions","selectedOption","getSelectedOptionIndex","disableSave","isFlipped","sourceColumnId","filterColumnId","className","htmlFor","onClick","onMouseEnter","onMouseLeave","SOURCE_BUTTON_CLASS_NAME","disabled","String","kind","tooltip","ref","onKeyDown","title","icon","transform"],"sources":["../../../src/controls/dropdown-filter/DropdownFilter.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n// background click is just a convenience method, not an actual a11y issue\n\nimport React, {\n Component,\n type KeyboardEvent,\n type MouseEvent,\n type ReactElement,\n type RefObject,\n} from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n Button,\n CardFlip,\n Select,\n SocketedButton,\n} from '@deephaven/components';\nimport { vsGear } from '@deephaven/icons';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport memoizee from 'memoizee';\nimport memoize from 'memoize-one';\nimport debounce from 'lodash.debounce';\nimport { nanoid } from 'nanoid';\nimport Log from '@deephaven/log';\nimport './DropdownFilter.scss';\nimport { type LinkPoint } from '../../linker/LinkerUtils';\n\nconst log = Log.module('DropdownFilter');\nconst UPDATE_DEBOUNCE = 150;\n\nexport interface DropdownFilterColumn {\n name: string;\n type: string;\n}\n\nexport interface DropdownFilterProps {\n column: DropdownFilterColumn;\n columns: readonly DropdownFilterColumn[];\n onSourceMouseEnter: () => void;\n onSourceMouseLeave: () => void;\n disableLinking: boolean;\n isLinkerActive: boolean;\n isLoaded: boolean;\n isValueShown: boolean;\n settingsError: string;\n source: LinkPoint;\n value: string | null;\n values: readonly (string | null)[];\n onChange: (change: {\n column: Partial<dh.Column> | null;\n isValueShown?: boolean;\n value?: string;\n }) => void;\n onColumnSelected: () => void;\n}\n\ninterface DropdownFilterState {\n column: DropdownFilterColumn | null;\n selectedColumn: DropdownFilterColumn | null;\n disableCancel: boolean;\n isValueShown: boolean;\n value: string | null;\n id: string;\n}\n\nexport class DropdownFilter extends Component<\n DropdownFilterProps,\n DropdownFilterState\n> {\n static defaultProps = {\n column: null,\n disableLinking: false,\n isLinkerActive: false,\n isLoaded: false,\n isValueShown: false,\n\n settingsError: null,\n source: null,\n value: '',\n values: [],\n onColumnSelected: (): void => undefined,\n onSourceMouseEnter: (): void => undefined,\n onSourceMouseLeave: (): void => undefined,\n };\n\n static PLACEHOLDER = 'Select a value...';\n\n static SOURCE_BUTTON_CLASS_NAME = 'btn-dropdown-filter-selector';\n\n static SOURCE_BUTTON_PLACEHOLDER = 'Select a column';\n\n constructor(props: DropdownFilterProps) {\n super(props);\n\n this.handleColumnChange = this.handleColumnChange.bind(this);\n this.handleSettingsCancel = this.handleSettingsCancel.bind(this);\n this.handleSettingsClick = this.handleSettingsClick.bind(this);\n this.handleSettingsSave = this.handleSettingsSave.bind(this);\n this.handleBackgroundClick = this.handleBackgroundClick.bind(this);\n this.handleDropdownKeyPress = this.handleDropdownKeyPress.bind(this);\n this.handleValueChange = this.handleValueChange.bind(this);\n\n this.dropdownRef = React.createRef();\n\n const { column, isValueShown, value } = props;\n this.state = {\n column,\n id: nanoid(),\n selectedColumn: column,\n disableCancel: !isValueShown,\n isValueShown,\n value,\n };\n }\n\n componentDidUpdate(\n prevProps: DropdownFilterProps,\n prevState: DropdownFilterState\n ): void {\n const { source, values, isLoaded } = this.props;\n const { column, value, isValueShown } = this.state;\n\n if (isLoaded) {\n if (source !== prevProps.source) {\n this.sourceUpdated();\n }\n\n if (\n values !== prevProps.values &&\n value !== '' &&\n !values.includes(value)\n ) {\n // Value list loaded, but doesn't contain the current value\n this.resetValue();\n }\n\n if (isValueShown !== prevState.isValueShown) {\n if (isValueShown) {\n this.focusInput();\n }\n }\n\n if (\n column !== prevState.column ||\n value !== prevState.value ||\n isValueShown !== prevState.isValueShown\n ) {\n this.sendUpdate();\n }\n }\n }\n\n componentWillUnmount(): void {\n this.sendUpdate.flush();\n }\n\n dropdownRef: RefObject<HTMLSelectElement>;\n\n getCompatibleColumns = memoize(\n (source: LinkPoint, columns: readonly DropdownFilterColumn[]) =>\n source != null\n ? columns.filter(\n ({ type }) =>\n type !== undefined &&\n TableUtils.isCompatibleType(type, source.columnType)\n )\n : []\n );\n\n getColumnOptions = memoize(\n (\n columns: DropdownFilterColumn[],\n selectedColumn: DropdownFilterColumn | null\n ): [JSX.Element[], number] => {\n let selectedIndex = -1;\n const options = [];\n options.push(\n <option key=\"placeholder\" value=\"-1\">\n Select a column\n </option>\n );\n columns.forEach((columnItem, index) => {\n options.push(\n <option key={`${columnItem.name}/${columnItem.type}`} value={index}>\n {this.getItemLabel(columns, index)}\n </option>\n );\n if (\n selectedColumn !== null &&\n columnItem.name === selectedColumn.name &&\n columnItem.type === selectedColumn.type\n ) {\n selectedIndex = index;\n }\n });\n return [options, selectedIndex];\n }\n );\n\n getSelectedOptionIndex = memoize(\n (values: readonly (string | null)[], value: string | null) =>\n values.indexOf(value)\n );\n\n getValueOptions = memoize((values: readonly (string | null)[]) => [\n <option value=\"-1\" key=\"-1\">\n {DropdownFilter.PLACEHOLDER}\n </option>,\n ...values.map((val, index) => (\n <option\n value={index}\n // eslint-disable-next-line react/no-array-index-key\n key={`${index}/${val}`}\n >\n {val ?? '(null)'}\n </option>\n )),\n ]);\n\n getItemLabel = memoizee(\n (columns: readonly DropdownFilterColumn[], index: number) => {\n const { name, type } = columns[index];\n\n if (\n (index > 0 && columns[index - 1].name === name) ||\n (index < columns.length - 1 && columns[index + 1].name === name)\n ) {\n const shortType = type.substring(type.lastIndexOf('.') + 1);\n return `${name} (${shortType})`;\n }\n\n return name;\n }\n );\n\n handleColumnChange(eventTargetValue: string): void {\n const value = eventTargetValue;\n log.debug2('handleColumnChange', value);\n if (value != null && parseInt(value, 10) < 0) {\n this.setState({\n selectedColumn: null,\n });\n return;\n }\n const { columns: allColumns, source } = this.props;\n const columns = this.getCompatibleColumns(source, allColumns);\n this.setState({\n selectedColumn: columns[parseInt(value, 10)],\n });\n }\n\n handleDropdownKeyPress(event: KeyboardEvent<HTMLSelectElement>): void {\n if (event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n\n log.debug2('handleDropdownKeyPress');\n\n this.sendUpdate();\n this.sendUpdate.flush();\n }\n }\n\n handleValueChange(eventTargetValue: string): void {\n const valueIndex = eventTargetValue;\n const index = parseInt(valueIndex, 10);\n // Default empty string value for 'clear filter'\n let value: string | null = '';\n const { values } = this.props;\n if (index >= 0 && index < values.length) {\n value = values[index];\n } else {\n log.debug2('Selected default item');\n }\n\n log.debug2('handleValueChange', value);\n\n this.setState({ value });\n }\n\n handleSettingsCancel(): void {\n this.setState(({ column }) => ({\n selectedColumn: column,\n isValueShown: true,\n }));\n }\n\n handleSettingsSave(): void {\n this.setState(({ column, selectedColumn, value }) => ({\n column: selectedColumn,\n // Reset value if column changed\n value: column === selectedColumn ? value : '',\n isValueShown: true,\n disableCancel: false,\n }));\n }\n\n handleSettingsClick(event: MouseEvent<HTMLButtonElement>): void {\n event.stopPropagation();\n this.showSettings();\n }\n\n handleBackgroundClick(event: MouseEvent<HTMLDivElement>): void {\n // allow clicking anywhere in the background to select and focus the input\n if (event.target !== this.dropdownRef.current) {\n this.focusInput();\n }\n }\n\n sourceUpdated(): void {\n this.setState({\n column: null,\n selectedColumn: null,\n isValueShown: false,\n disableCancel: true,\n value: '',\n });\n }\n\n showSettings(): void {\n const { column } = this.state;\n this.setState({ selectedColumn: column, isValueShown: false });\n }\n\n focusInput(): void {\n this.dropdownRef.current?.focus();\n }\n\n resetValue(): void {\n this.setState({ value: '' });\n }\n\n // Called by the parent component via ref\n clearFilter(): void {\n this.resetValue();\n }\n\n // Called by the parent component via ref\n setFilterState({\n name,\n type,\n value,\n isValueShown,\n }: {\n name?: string;\n type?: string;\n value?: string;\n isValueShown?: boolean;\n }): void {\n const column = name != null && type != null ? { name, type } : null;\n this.setState(({ value: oldValue, isValueShown: oldIsValueShown }) => ({\n column,\n value: value ?? oldValue,\n isValueShown: isValueShown ?? oldIsValueShown,\n }));\n }\n\n sendUpdate = debounce(() => {\n const { onChange } = this.props;\n const { column, value, isValueShown } = this.state;\n onChange({ column, isValueShown, value: value ?? undefined });\n }, UPDATE_DEBOUNCE);\n\n render(): ReactElement {\n const {\n columns: allColumns,\n disableLinking,\n isLinkerActive,\n isLoaded,\n source,\n onColumnSelected,\n onSourceMouseEnter,\n onSourceMouseLeave,\n values,\n settingsError,\n } = this.props;\n const { column, disableCancel, id, isValueShown, selectedColumn, value } =\n this.state;\n const columnSelectionDisabled = source === null;\n const columns = this.getCompatibleColumns(source, allColumns);\n const isLinked = source != null;\n const sourceButtonLabel =\n source?.columnName ?? DropdownFilter.SOURCE_BUTTON_PLACEHOLDER;\n const filterTitle = column != null ? `${column.name} Filter` : null;\n const [columnOptions, selectedIndex] = this.getColumnOptions(\n columns,\n selectedColumn\n );\n const valueOptions = this.getValueOptions(values);\n const selectedOption = this.getSelectedOptionIndex(values, value);\n const disableSave = !isLinked || selectedColumn == null;\n\n const isFlipped = isValueShown && !isLinkerActive;\n\n const sourceColumnId = `source-column-btn-${id}`;\n const filterColumnId = `filter-column-select-${id}`;\n\n return (\n <CardFlip\n className=\"dropdown-filter fill-parent-absolute\"\n isFlipped={isFlipped}\n >\n <div className=\"dropdown-filter-settings-card\">\n <div className=\"dropdown-filter-card-content\">\n <div className=\"dropdown-filter-settings-grid\">\n <label htmlFor={sourceColumnId}>Source Column</label>\n <SocketedButton\n id={sourceColumnId}\n isLinked={isLinked}\n onClick={onColumnSelected}\n onMouseEnter={onSourceMouseEnter}\n onMouseLeave={onSourceMouseLeave}\n className={DropdownFilter.SOURCE_BUTTON_CLASS_NAME}\n disabled={disableLinking}\n >\n {sourceButtonLabel}\n </SocketedButton>\n\n <div className=\"text-muted small\">\n Select a source column for the list by linking to a table.\n </div>\n\n <label htmlFor={filterColumnId}>Filter Column</label>\n <Select\n id={filterColumnId}\n value={String(selectedIndex)}\n className=\"custom-select\"\n onChange={this.handleColumnChange}\n disabled={columnSelectionDisabled}\n >\n {columnOptions}\n </Select>\n <div className=\"text-muted small\">\n Dropdown filter control will apply its filter to all columns\n matching this name in this dashboard.\n </div>\n </div>\n {settingsError && (\n <div className=\"error-message text-center\">{settingsError}</div>\n )}\n {isLinked && (\n <div className=\"dropdown-filter-settings-buttons\">\n <Button\n kind=\"secondary\"\n type=\"button\"\n onClick={this.handleSettingsCancel}\n disabled={disableCancel || isValueShown || isLinkerActive}\n tooltip={\n isLinkerActive\n ? 'Cancel disabled while linker open'\n : undefined\n }\n >\n Cancel\n </Button>\n <Button\n kind=\"primary\"\n type=\"button\"\n className=\"ml-2\"\n onClick={this.handleSettingsSave}\n disabled={disableSave || isValueShown || isLinkerActive}\n tooltip={\n isLinkerActive\n ? 'Save disabled while linker open'\n : undefined\n }\n >\n Save\n </Button>\n </div>\n )}\n </div>\n </div>\n\n <div\n className=\"dropdown-filter-value-card\"\n onClick={this.handleBackgroundClick}\n data-testid=\"dropdown-filter-value-background\"\n >\n {isLoaded && (\n <>\n <div className=\"dropdown-filter-column\">\n <div className=\"dropdown-filter-column-title\">\n {filterTitle}\n </div>\n </div>\n <div className=\"dropdown-filter-card-content\">\n <div className=\"dropdown-filter-value-input d-flex flex-column justify-content-center\">\n <Select\n className=\"custom-select\"\n value={String(selectedOption)}\n ref={this.dropdownRef}\n onChange={this.handleValueChange}\n onKeyDown={this.handleDropdownKeyPress}\n title=\"Select Value\"\n >\n {valueOptions}\n </Select>\n </div>\n {settingsError && (\n <div className=\"error-message mt-3 text-center\">\n {settingsError}\n </div>\n )}\n </div>\n <div className=\"dropdown-filter-menu\">\n <Button\n kind=\"ghost\"\n className=\"m-2 px-2\"\n onClick={this.handleSettingsClick}\n icon={<FontAwesomeIcon icon={vsGear} transform=\"grow-4\" />}\n tooltip=\"Dropdown Filter Settings\"\n />\n </div>\n </>\n )}\n </div>\n </CardFlip>\n );\n }\n}\n\nexport default DropdownFilter;\n"],"mappings":"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"}
1
+ {"version":3,"file":"DropdownFilter.js","names":["React","Component","FontAwesomeIcon","Button","CardFlip","Select","SocketedButton","vsGear","TableUtils","memoizee","memoize","debounce","nanoid","Log","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","log","module","UPDATE_DEBOUNCE","DropdownFilter","constructor","props","_defineProperty","source","columns","filter","_ref","type","undefined","isCompatibleType","columnType","selectedColumn","selectedIndex","options","push","value","children","forEach","columnItem","index","getItemLabel","concat","name","values","indexOf","PLACEHOLDER","map","val","length","shortType","substring","lastIndexOf","max","onChange","column","isValueShown","state","handleColumnChange","bind","handleSettingsCancel","handleSettingsClick","handleSettingsSave","handleBackgroundClick","handleDropdownKeyPress","handleValueChange","dropdownRef","createRef","id","disableCancel","componentDidUpdate","prevProps","prevState","isLoaded","sourceUpdated","includes","resetValue","focusInput","sendUpdate","componentWillUnmount","flush","eventTargetValue","debug2","parseInt","setState","allColumns","getCompatibleColumns","event","key","preventDefault","stopPropagation","valueIndex","_ref2","_ref3","showSettings","target","current","_this$dropdownRef$cur","focus","clearFilter","setFilterState","_ref4","_ref5","oldValue","oldIsValueShown","render","_source$columnName","disableLinking","isLinkerActive","onColumnSelected","onSourceMouseEnter","onSourceMouseLeave","settingsError","columnSelectionDisabled","isLinked","sourceButtonLabel","columnName","SOURCE_BUTTON_PLACEHOLDER","filterTitle","columnOptions","getColumnOptions","valueOptions","getValueOptions","selectedOption","getSelectedOptionIndex","disableSave","isFlipped","sourceColumnId","filterColumnId","className","htmlFor","onClick","onMouseEnter","onMouseLeave","SOURCE_BUTTON_CLASS_NAME","disabled","String","kind","tooltip","ref","onKeyDown","title","icon","transform"],"sources":["../../../src/controls/dropdown-filter/DropdownFilter.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n// background click is just a convenience method, not an actual a11y issue\n\nimport React, {\n Component,\n type KeyboardEvent,\n type MouseEvent,\n type ReactElement,\n type RefObject,\n} from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n Button,\n CardFlip,\n Select,\n SocketedButton,\n} from '@deephaven/components';\nimport { vsGear } from '@deephaven/icons';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport memoizee from 'memoizee';\nimport memoize from 'memoize-one';\nimport debounce from 'lodash.debounce';\nimport { nanoid } from 'nanoid';\nimport Log from '@deephaven/log';\nimport './DropdownFilter.scss';\nimport { type LinkPoint } from '../../linker/LinkerUtils';\n\nconst log = Log.module('DropdownFilter');\nconst UPDATE_DEBOUNCE = 150;\n\nexport interface DropdownFilterColumn {\n name: string;\n type: string;\n}\n\nexport interface DropdownFilterProps {\n column: DropdownFilterColumn;\n columns: readonly DropdownFilterColumn[];\n onSourceMouseEnter: () => void;\n onSourceMouseLeave: () => void;\n disableLinking: boolean;\n isLinkerActive: boolean;\n isLoaded: boolean;\n isValueShown: boolean;\n settingsError: string;\n source: LinkPoint;\n value: string | null;\n values: readonly (string | null)[];\n onChange: (change: {\n column: Partial<dh.Column> | null;\n isValueShown?: boolean;\n value?: string;\n }) => void;\n onColumnSelected: () => void;\n}\n\ninterface DropdownFilterState {\n column: DropdownFilterColumn | null;\n selectedColumn: DropdownFilterColumn | null;\n disableCancel: boolean;\n isValueShown: boolean;\n value: string | null;\n id: string;\n}\n\nexport class DropdownFilter extends Component<\n DropdownFilterProps,\n DropdownFilterState\n> {\n static defaultProps = {\n column: null,\n disableLinking: false,\n isLinkerActive: false,\n isLoaded: false,\n isValueShown: false,\n\n settingsError: null,\n source: null,\n value: '',\n values: [],\n onColumnSelected: (): void => undefined,\n onSourceMouseEnter: (): void => undefined,\n onSourceMouseLeave: (): void => undefined,\n };\n\n static PLACEHOLDER = 'Select a value...';\n\n static SOURCE_BUTTON_CLASS_NAME = 'btn-dropdown-filter-selector';\n\n static SOURCE_BUTTON_PLACEHOLDER = 'Select a column';\n\n constructor(props: DropdownFilterProps) {\n super(props);\n\n this.handleColumnChange = this.handleColumnChange.bind(this);\n this.handleSettingsCancel = this.handleSettingsCancel.bind(this);\n this.handleSettingsClick = this.handleSettingsClick.bind(this);\n this.handleSettingsSave = this.handleSettingsSave.bind(this);\n this.handleBackgroundClick = this.handleBackgroundClick.bind(this);\n this.handleDropdownKeyPress = this.handleDropdownKeyPress.bind(this);\n this.handleValueChange = this.handleValueChange.bind(this);\n\n this.dropdownRef = React.createRef();\n\n const { column, isValueShown, value } = props;\n this.state = {\n column,\n id: nanoid(),\n selectedColumn: column,\n disableCancel: !isValueShown,\n isValueShown,\n value,\n };\n }\n\n componentDidUpdate(\n prevProps: DropdownFilterProps,\n prevState: DropdownFilterState\n ): void {\n const { source, values, isLoaded } = this.props;\n const { column, value, isValueShown } = this.state;\n\n if (isLoaded) {\n if (source !== prevProps.source) {\n this.sourceUpdated();\n }\n\n if (\n values !== prevProps.values &&\n value !== '' &&\n !values.includes(value)\n ) {\n // Value list loaded, but doesn't contain the current value\n this.resetValue();\n }\n\n if (isValueShown !== prevState.isValueShown) {\n if (isValueShown) {\n this.focusInput();\n }\n }\n\n if (\n column !== prevState.column ||\n value !== prevState.value ||\n isValueShown !== prevState.isValueShown\n ) {\n this.sendUpdate();\n }\n }\n }\n\n componentWillUnmount(): void {\n this.sendUpdate.flush();\n }\n\n dropdownRef: RefObject<HTMLSelectElement>;\n\n getCompatibleColumns = memoize(\n (source: LinkPoint, columns: readonly DropdownFilterColumn[]) =>\n source != null\n ? columns.filter(\n ({ type }) =>\n type !== undefined &&\n TableUtils.isCompatibleType(type, source.columnType)\n )\n : []\n );\n\n getColumnOptions = memoize(\n (\n columns: DropdownFilterColumn[],\n selectedColumn: DropdownFilterColumn | null\n ): [JSX.Element[], number] => {\n let selectedIndex = -1;\n const options = [];\n options.push(\n <option key=\"placeholder\" value=\"-1\">\n Select a column\n </option>\n );\n columns.forEach((columnItem, index) => {\n options.push(\n <option key={`${columnItem.name}/${columnItem.type}`} value={index}>\n {this.getItemLabel(columns, index)}\n </option>\n );\n if (\n selectedColumn !== null &&\n columnItem.name === selectedColumn.name &&\n columnItem.type === selectedColumn.type\n ) {\n selectedIndex = index;\n }\n });\n return [options, selectedIndex];\n }\n );\n\n getSelectedOptionIndex = memoize(\n (values: readonly (string | null)[], value: string | null) =>\n values.indexOf(value)\n );\n\n getValueOptions = memoize((values: readonly (string | null)[]) => [\n <option value=\"-1\" key=\"-1\">\n {DropdownFilter.PLACEHOLDER}\n </option>,\n ...values.map((val, index) => (\n <option\n value={index}\n // eslint-disable-next-line react/no-array-index-key\n key={`${index}/${val}`}\n >\n {val ?? '(null)'}\n </option>\n )),\n ]);\n\n getItemLabel = memoizee(\n (columns: readonly DropdownFilterColumn[], index: number) => {\n const { name, type } = columns[index];\n\n if (\n (index > 0 && columns[index - 1].name === name) ||\n (index < columns.length - 1 && columns[index + 1].name === name)\n ) {\n const shortType = type.substring(type.lastIndexOf('.') + 1);\n return `${name} (${shortType})`;\n }\n\n return name;\n },\n { max: 1000 }\n );\n\n handleColumnChange(eventTargetValue: string): void {\n const value = eventTargetValue;\n log.debug2('handleColumnChange', value);\n if (value != null && parseInt(value, 10) < 0) {\n this.setState({\n selectedColumn: null,\n });\n return;\n }\n const { columns: allColumns, source } = this.props;\n const columns = this.getCompatibleColumns(source, allColumns);\n this.setState({\n selectedColumn: columns[parseInt(value, 10)],\n });\n }\n\n handleDropdownKeyPress(event: KeyboardEvent<HTMLSelectElement>): void {\n if (event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n\n log.debug2('handleDropdownKeyPress');\n\n this.sendUpdate();\n this.sendUpdate.flush();\n }\n }\n\n handleValueChange(eventTargetValue: string): void {\n const valueIndex = eventTargetValue;\n const index = parseInt(valueIndex, 10);\n // Default empty string value for 'clear filter'\n let value: string | null = '';\n const { values } = this.props;\n if (index >= 0 && index < values.length) {\n value = values[index];\n } else {\n log.debug2('Selected default item');\n }\n\n log.debug2('handleValueChange', value);\n\n this.setState({ value });\n }\n\n handleSettingsCancel(): void {\n this.setState(({ column }) => ({\n selectedColumn: column,\n isValueShown: true,\n }));\n }\n\n handleSettingsSave(): void {\n this.setState(({ column, selectedColumn, value }) => ({\n column: selectedColumn,\n // Reset value if column changed\n value: column === selectedColumn ? value : '',\n isValueShown: true,\n disableCancel: false,\n }));\n }\n\n handleSettingsClick(event: MouseEvent<HTMLButtonElement>): void {\n event.stopPropagation();\n this.showSettings();\n }\n\n handleBackgroundClick(event: MouseEvent<HTMLDivElement>): void {\n // allow clicking anywhere in the background to select and focus the input\n if (event.target !== this.dropdownRef.current) {\n this.focusInput();\n }\n }\n\n sourceUpdated(): void {\n this.setState({\n column: null,\n selectedColumn: null,\n isValueShown: false,\n disableCancel: true,\n value: '',\n });\n }\n\n showSettings(): void {\n const { column } = this.state;\n this.setState({ selectedColumn: column, isValueShown: false });\n }\n\n focusInput(): void {\n this.dropdownRef.current?.focus();\n }\n\n resetValue(): void {\n this.setState({ value: '' });\n }\n\n // Called by the parent component via ref\n clearFilter(): void {\n this.resetValue();\n }\n\n // Called by the parent component via ref\n setFilterState({\n name,\n type,\n value,\n isValueShown,\n }: {\n name?: string;\n type?: string;\n value?: string;\n isValueShown?: boolean;\n }): void {\n const column = name != null && type != null ? { name, type } : null;\n this.setState(({ value: oldValue, isValueShown: oldIsValueShown }) => ({\n column,\n value: value ?? oldValue,\n isValueShown: isValueShown ?? oldIsValueShown,\n }));\n }\n\n sendUpdate = debounce(() => {\n const { onChange } = this.props;\n const { column, value, isValueShown } = this.state;\n onChange({ column, isValueShown, value: value ?? undefined });\n }, UPDATE_DEBOUNCE);\n\n render(): ReactElement {\n const {\n columns: allColumns,\n disableLinking,\n isLinkerActive,\n isLoaded,\n source,\n onColumnSelected,\n onSourceMouseEnter,\n onSourceMouseLeave,\n values,\n settingsError,\n } = this.props;\n const { column, disableCancel, id, isValueShown, selectedColumn, value } =\n this.state;\n const columnSelectionDisabled = source === null;\n const columns = this.getCompatibleColumns(source, allColumns);\n const isLinked = source != null;\n const sourceButtonLabel =\n source?.columnName ?? DropdownFilter.SOURCE_BUTTON_PLACEHOLDER;\n const filterTitle = column != null ? `${column.name} Filter` : null;\n const [columnOptions, selectedIndex] = this.getColumnOptions(\n columns,\n selectedColumn\n );\n const valueOptions = this.getValueOptions(values);\n const selectedOption = this.getSelectedOptionIndex(values, value);\n const disableSave = !isLinked || selectedColumn == null;\n\n const isFlipped = isValueShown && !isLinkerActive;\n\n const sourceColumnId = `source-column-btn-${id}`;\n const filterColumnId = `filter-column-select-${id}`;\n\n return (\n <CardFlip\n className=\"dropdown-filter fill-parent-absolute\"\n isFlipped={isFlipped}\n >\n <div className=\"dropdown-filter-settings-card\">\n <div className=\"dropdown-filter-card-content\">\n <div className=\"dropdown-filter-settings-grid\">\n <label htmlFor={sourceColumnId}>Source Column</label>\n <SocketedButton\n id={sourceColumnId}\n isLinked={isLinked}\n onClick={onColumnSelected}\n onMouseEnter={onSourceMouseEnter}\n onMouseLeave={onSourceMouseLeave}\n className={DropdownFilter.SOURCE_BUTTON_CLASS_NAME}\n disabled={disableLinking}\n >\n {sourceButtonLabel}\n </SocketedButton>\n\n <div className=\"text-muted small\">\n Select a source column for the list by linking to a table.\n </div>\n\n <label htmlFor={filterColumnId}>Filter Column</label>\n <Select\n id={filterColumnId}\n value={String(selectedIndex)}\n className=\"custom-select\"\n onChange={this.handleColumnChange}\n disabled={columnSelectionDisabled}\n >\n {columnOptions}\n </Select>\n <div className=\"text-muted small\">\n Dropdown filter control will apply its filter to all columns\n matching this name in this dashboard.\n </div>\n </div>\n {settingsError && (\n <div className=\"error-message text-center\">{settingsError}</div>\n )}\n {isLinked && (\n <div className=\"dropdown-filter-settings-buttons\">\n <Button\n kind=\"secondary\"\n type=\"button\"\n onClick={this.handleSettingsCancel}\n disabled={disableCancel || isValueShown || isLinkerActive}\n tooltip={\n isLinkerActive\n ? 'Cancel disabled while linker open'\n : undefined\n }\n >\n Cancel\n </Button>\n <Button\n kind=\"primary\"\n type=\"button\"\n className=\"ml-2\"\n onClick={this.handleSettingsSave}\n disabled={disableSave || isValueShown || isLinkerActive}\n tooltip={\n isLinkerActive\n ? 'Save disabled while linker open'\n : undefined\n }\n >\n Save\n </Button>\n </div>\n )}\n </div>\n </div>\n\n <div\n className=\"dropdown-filter-value-card\"\n onClick={this.handleBackgroundClick}\n data-testid=\"dropdown-filter-value-background\"\n >\n {isLoaded && (\n <>\n <div className=\"dropdown-filter-column\">\n <div className=\"dropdown-filter-column-title\">\n {filterTitle}\n </div>\n </div>\n <div className=\"dropdown-filter-card-content\">\n <div className=\"dropdown-filter-value-input d-flex flex-column justify-content-center\">\n <Select\n className=\"custom-select\"\n value={String(selectedOption)}\n ref={this.dropdownRef}\n onChange={this.handleValueChange}\n onKeyDown={this.handleDropdownKeyPress}\n title=\"Select Value\"\n >\n {valueOptions}\n </Select>\n </div>\n {settingsError && (\n <div className=\"error-message mt-3 text-center\">\n {settingsError}\n </div>\n )}\n </div>\n <div className=\"dropdown-filter-menu\">\n <Button\n kind=\"ghost\"\n className=\"m-2 px-2\"\n onClick={this.handleSettingsClick}\n icon={<FontAwesomeIcon icon={vsGear} transform=\"grow-4\" />}\n tooltip=\"Dropdown Filter Settings\"\n />\n </div>\n </>\n )}\n </div>\n </CardFlip>\n );\n }\n}\n\nexport default DropdownFilter;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"InputFilter.d.ts","sourceRoot":"","sources":["../../../src/controls/input-filter/InputFilter.tsx"],"names":[],"mappings":"AAIA,OAAc,EACZ,KAAK,WAAW,EAChB,SAAS,EACT,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAGhC,OAAO,oBAAoB,CAAC;AAK5B,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAEjE,UAAU,gBAAgB;IACxB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,MAAM,EAAE;QACjB,MAAM,CAAC,EAAE,iBAAiB,CAAC;QAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,KAAK,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,cAAM,WAAY,SAAQ,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IACrE,MAAM,CAAC,WAAW,SAAoB;IAEtC,MAAM,CAAC,YAAY;;;;MAIjB;gBAEU,KAAK,EAAE,gBAAgB;IAsBnC,kBAAkB,CAChB,SAAS,EAAE,gBAAgB,EAC3B,SAAS,EAAE,gBAAgB,GAC1B,IAAI;IA0BP,oBAAoB,IAAI,IAAI;IAI5B,QAAQ,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAEtC,YAAY,aAAsB,iBAAiB,EAAE,SAAS,MAAM,2CAAlC,iBAAiB,EAAE,SAAS,MAAM,aAYjE;IAEH,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI;IASlD,mBAAmB,CAAC,KAAK,EAAE,aAAa,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAcjE,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAQ7D,oBAAoB,IAAI,IAAI;IAK5B,kBAAkB,IAAI,IAAI;IAK1B,mBAAmB,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,IAAI;IAM/D,qBAAqB,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI;IAO9D,UAAU,IAAI,IAAI;IAOlB,WAAW,IAAI,IAAI;IAInB,cAAc,CAAC,EACb,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,YAAY,GACb,EAAE;QACD,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,GAAG,IAAI;IASR,UAAU,6CAIU;IAEpB,MAAM,IAAI,YAAY;CA+GvB;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"InputFilter.d.ts","sourceRoot":"","sources":["../../../src/controls/input-filter/InputFilter.tsx"],"names":[],"mappings":"AAIA,OAAc,EACZ,KAAK,WAAW,EAChB,SAAS,EACT,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAGhC,OAAO,oBAAoB,CAAC;AAK5B,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAEjE,UAAU,gBAAgB;IACxB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,MAAM,EAAE;QACjB,MAAM,CAAC,EAAE,iBAAiB,CAAC;QAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,KAAK,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,cAAM,WAAY,SAAQ,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IACrE,MAAM,CAAC,WAAW,SAAoB;IAEtC,MAAM,CAAC,YAAY;;;;MAIjB;gBAEU,KAAK,EAAE,gBAAgB;IAsBnC,kBAAkB,CAChB,SAAS,EAAE,gBAAgB,EAC3B,SAAS,EAAE,gBAAgB,GAC1B,IAAI;IA0BP,oBAAoB,IAAI,IAAI;IAI5B,QAAQ,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAEtC,YAAY,aACA,iBAAiB,EAAE,SAAS,MAAM,2CAAlC,iBAAiB,EAAE,SAAS,MAAM,aAc5C;IAEF,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI;IASlD,mBAAmB,CAAC,KAAK,EAAE,aAAa,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAcjE,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAQ7D,oBAAoB,IAAI,IAAI;IAK5B,kBAAkB,IAAI,IAAI;IAK1B,mBAAmB,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,IAAI;IAM/D,qBAAqB,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI;IAO9D,UAAU,IAAI,IAAI;IAOlB,WAAW,IAAI,IAAI;IAInB,cAAc,CAAC,EACb,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,YAAY,GACb,EAAE;QACD,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,GAAG,IAAI;IASR,UAAU,6CAIU;IAEpB,MAAM,IAAI,YAAY;CA+GvB;AAED,eAAe,WAAW,CAAC"}
@@ -31,6 +31,8 @@ class InputFilter extends Component {
31
31
  return "".concat(name, " (").concat(shortType, ")");
32
32
  }
33
33
  return name;
34
+ }, {
35
+ max: 1000
34
36
  }));
35
37
  _defineProperty(this, "sendUpdate", debounce(() => {
36
38
  var {
@@ -1 +1 @@
1
- {"version":3,"file":"InputFilter.js","names":["React","Component","Button","CardFlip","Select","FontAwesomeIcon","vsGear","memoizee","debounce","Log","jsx","_jsx","jsxs","_jsxs","log","module","UPDATE_DEBOUNCE","InputFilter","constructor","props","_defineProperty","columns","index","name","type","length","shortType","substring","lastIndexOf","concat","onChange","column","value","isValueShown","state","handleColumnChange","bind","handleInputKeyPress","handleValueChange","handleSettingsCancel","handleSettingsClick","handleSettingsSave","handleBackgroundClick","inputRef","createRef","selectedColumn","componentDidUpdate","prevProps","prevState","propColumn","setState","undefined","focusInput","sendUpdate","componentWillUnmount","flush","eventTargetValue","parseInt","debug2","event","key","preventDefault","stopPropagation","_ref","target","current","select","focus","clearFilter","setFilterState","_ref2","update","render","inputLength","PLACEHOLDER","titleLabel","columnIndex","findIndex","item","getItemLabel","className","isFlipped","children","String","map","columnItem","disabled","kind","onClick","ref","placeholder","onKeyPress","style","width","spellCheck","icon","transform","tooltip"],"sources":["../../../src/controls/input-filter/InputFilter.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n// background click is just a convience method, not an actual a11y issue\n\nimport React, {\n type ChangeEvent,\n Component,\n type RefObject,\n type MouseEvent,\n type KeyboardEvent,\n type ReactElement,\n} from 'react';\nimport { Button, CardFlip, Select } from '@deephaven/components';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsGear } from '@deephaven/icons';\nimport type { dh } from '@deephaven/jsapi-types';\nimport memoizee from 'memoizee';\nimport debounce from 'lodash.debounce';\nimport Log from '@deephaven/log';\nimport './InputFilter.scss';\n\nconst log = Log.module('InputFilter');\nconst UPDATE_DEBOUNCE = 150;\n\nexport type InputFilterColumn = Pick<dh.Column, 'type' | 'name'>;\n\ninterface InputFilterProps {\n columns: InputFilterColumn[];\n column: InputFilterColumn;\n isValueShown: boolean;\n value: string;\n onChange: (change: {\n column?: InputFilterColumn;\n isValueShown?: boolean;\n value?: string;\n }) => void;\n}\n\nexport interface InputFilterState {\n column?: InputFilterColumn;\n selectedColumn?: InputFilterColumn;\n value?: string;\n isValueShown?: boolean;\n}\n\nclass InputFilter extends Component<InputFilterProps, InputFilterState> {\n static PLACEHOLDER = 'Enter value...';\n\n static defaultProps = {\n column: null,\n isValueShown: false,\n value: null,\n };\n\n constructor(props: InputFilterProps) {\n super(props);\n\n this.handleColumnChange = this.handleColumnChange.bind(this);\n this.handleInputKeyPress = this.handleInputKeyPress.bind(this);\n this.handleValueChange = this.handleValueChange.bind(this);\n this.handleSettingsCancel = this.handleSettingsCancel.bind(this);\n this.handleSettingsClick = this.handleSettingsClick.bind(this);\n this.handleSettingsSave = this.handleSettingsSave.bind(this);\n this.handleBackgroundClick = this.handleBackgroundClick.bind(this);\n\n this.inputRef = React.createRef();\n\n const { column, isValueShown, value } = props;\n this.state = {\n column,\n selectedColumn: column,\n value,\n isValueShown,\n };\n }\n\n componentDidUpdate(\n prevProps: InputFilterProps,\n prevState: InputFilterState\n ): void {\n const { column: propColumn } = this.props;\n const { column, value, isValueShown } = this.state;\n\n if (propColumn !== prevProps.column) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ column: propColumn, selectedColumn: propColumn });\n }\n\n if (\n isValueShown !== undefined &&\n isValueShown &&\n isValueShown !== prevState.isValueShown\n ) {\n this.focusInput();\n }\n\n if (\n column !== prevState.column ||\n value !== prevState.value ||\n isValueShown !== prevState.isValueShown\n ) {\n this.sendUpdate();\n }\n }\n\n componentWillUnmount(): void {\n this.sendUpdate.flush();\n }\n\n inputRef: RefObject<HTMLInputElement>;\n\n getItemLabel = memoizee((columns: InputFilterColumn[], index: number) => {\n const { name, type } = columns[index];\n\n if (\n (index > 0 && columns[index - 1].name === name) ||\n (index < columns.length - 1 && columns[index + 1].name === name)\n ) {\n const shortType = type.substring(type.lastIndexOf('.') + 1);\n return `${name} (${shortType})`;\n }\n\n return name;\n });\n\n handleColumnChange(eventTargetValue: string): void {\n const { columns } = this.props;\n const selectedColumn = columns[parseInt(eventTargetValue, 10)];\n\n log.debug2('handleColumnChange', selectedColumn);\n\n this.setState({ selectedColumn, value: undefined });\n }\n\n handleInputKeyPress(event: KeyboardEvent<HTMLInputElement>): void {\n if (event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n this.setState(\n ({ value }) => (value == null ? { value: '' } : null),\n () => {\n this.sendUpdate();\n this.sendUpdate.flush();\n }\n );\n }\n }\n\n handleValueChange(event: ChangeEvent<HTMLInputElement>): void {\n const { value } = event.target;\n\n log.debug2('handleValueChange', value);\n\n this.setState({ value });\n }\n\n handleSettingsCancel(): void {\n const { column } = this.state;\n this.setState({ selectedColumn: column, isValueShown: true });\n }\n\n handleSettingsSave(): void {\n const { selectedColumn } = this.state;\n this.setState({ column: selectedColumn, isValueShown: true });\n }\n\n handleSettingsClick(event: MouseEvent<HTMLButtonElement>): void {\n const { column } = this.state;\n this.setState({ selectedColumn: column, isValueShown: false });\n event.stopPropagation();\n }\n\n handleBackgroundClick(event: MouseEvent<HTMLDivElement>): void {\n // allow clicking anywhere in the background to select and focus the input\n if (event.target !== this.inputRef.current) {\n this.focusInput();\n }\n }\n\n focusInput(): void {\n if (this.inputRef.current !== null) {\n this.inputRef.current.select();\n this.inputRef.current.focus();\n }\n }\n\n clearFilter(): void {\n this.setState({ value: '' });\n }\n\n setFilterState({\n name,\n type,\n value,\n isValueShown,\n }: {\n name?: string;\n type?: string;\n value?: string;\n isValueShown?: boolean;\n }): void {\n const column = name != null && type != null ? { name, type } : undefined;\n const update =\n isValueShown === undefined\n ? { column, value }\n : { column, value, isValueShown };\n this.setState(update);\n }\n\n sendUpdate = debounce(() => {\n const { onChange } = this.props;\n const { column, value, isValueShown } = this.state;\n onChange({ column, isValueShown, value });\n }, UPDATE_DEBOUNCE);\n\n render(): ReactElement {\n const { columns } = this.props;\n const { column, isValueShown, selectedColumn, value } = this.state;\n const inputLength =\n value == null || value.length === 0\n ? InputFilter.PLACEHOLDER.length\n : value.length;\n let titleLabel = null;\n if (column != null) {\n const columnIndex = columns.findIndex(\n item => item.name === column.name && item.type === column.type\n );\n titleLabel =\n columnIndex >= 0\n ? this.getItemLabel(columns, columnIndex)\n : column.name;\n }\n\n return (\n <CardFlip\n className=\"input-filter fill-parent-absolute\"\n isFlipped={isValueShown ?? false}\n >\n <div className=\"input-filter-settings-card\">\n <div className=\"input-filter-settings-content\">\n <div className=\"input-filter-settings-grid\">\n <label>Filter Column</label>\n <Select\n value={String(\n columns.findIndex(\n item =>\n item.name === selectedColumn?.name &&\n item.type === selectedColumn?.type\n )\n )}\n className=\"custom-select\"\n onChange={this.handleColumnChange}\n >\n {columns.map((columnItem, index) => (\n <option\n key={`${columnItem.name}/${columnItem.type}`}\n value={index}\n >\n {this.getItemLabel(columns, index)}\n </option>\n ))}\n {columns.length === 0 && (\n <option value=\"-1\" disabled>\n No Available Columns\n </option>\n )}\n </Select>\n <div className=\"text-muted small\">\n Input filter control will apply its filter to all columns\n matching this name in this dashboard.\n </div>\n </div>\n <div className=\"input-filter-settings-buttons\">\n <Button\n kind=\"secondary\"\n onClick={this.handleSettingsCancel}\n disabled={column == null}\n >\n Cancel\n </Button>\n <Button\n kind=\"primary\"\n className=\"ml-2\"\n onClick={this.handleSettingsSave}\n disabled={selectedColumn == null}\n >\n Save\n </Button>\n </div>\n </div>\n </div>\n\n <div\n className=\"input-filter-value-card\"\n onClick={this.handleBackgroundClick}\n >\n <div className=\"input-filter-column\">\n <div className=\"input-filter-column-title\">{titleLabel} Filter</div>\n </div>\n <div className=\"d-flex justify-content-center align-items-center h-100 w-100\">\n <div className=\"input-filter-value-input d-flex flex-column justify-content-center\">\n <input\n type=\"text\"\n ref={this.inputRef}\n placeholder={InputFilter.PLACEHOLDER}\n value={value ?? ''}\n onChange={this.handleValueChange}\n onKeyPress={this.handleInputKeyPress}\n style={{ width: `${inputLength + 3}ch` }}\n spellCheck=\"false\"\n />\n </div>\n </div>\n <div className=\"input-filter-menu\">\n <Button\n kind=\"ghost\"\n className=\"m-2 px-2\"\n onClick={this.handleSettingsClick}\n icon={<FontAwesomeIcon icon={vsGear} transform=\"grow-4\" />}\n tooltip=\"Input Filter Settings\"\n />\n </div>\n </div>\n </CardFlip>\n );\n }\n}\n\nexport default InputFilter;\n"],"mappings":"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"}
1
+ {"version":3,"file":"InputFilter.js","names":["React","Component","Button","CardFlip","Select","FontAwesomeIcon","vsGear","memoizee","debounce","Log","jsx","_jsx","jsxs","_jsxs","log","module","UPDATE_DEBOUNCE","InputFilter","constructor","props","_defineProperty","columns","index","name","type","length","shortType","substring","lastIndexOf","concat","max","onChange","column","value","isValueShown","state","handleColumnChange","bind","handleInputKeyPress","handleValueChange","handleSettingsCancel","handleSettingsClick","handleSettingsSave","handleBackgroundClick","inputRef","createRef","selectedColumn","componentDidUpdate","prevProps","prevState","propColumn","setState","undefined","focusInput","sendUpdate","componentWillUnmount","flush","eventTargetValue","parseInt","debug2","event","key","preventDefault","stopPropagation","_ref","target","current","select","focus","clearFilter","setFilterState","_ref2","update","render","inputLength","PLACEHOLDER","titleLabel","columnIndex","findIndex","item","getItemLabel","className","isFlipped","children","String","map","columnItem","disabled","kind","onClick","ref","placeholder","onKeyPress","style","width","spellCheck","icon","transform","tooltip"],"sources":["../../../src/controls/input-filter/InputFilter.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n// background click is just a convience method, not an actual a11y issue\n\nimport React, {\n type ChangeEvent,\n Component,\n type RefObject,\n type MouseEvent,\n type KeyboardEvent,\n type ReactElement,\n} from 'react';\nimport { Button, CardFlip, Select } from '@deephaven/components';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsGear } from '@deephaven/icons';\nimport type { dh } from '@deephaven/jsapi-types';\nimport memoizee from 'memoizee';\nimport debounce from 'lodash.debounce';\nimport Log from '@deephaven/log';\nimport './InputFilter.scss';\n\nconst log = Log.module('InputFilter');\nconst UPDATE_DEBOUNCE = 150;\n\nexport type InputFilterColumn = Pick<dh.Column, 'type' | 'name'>;\n\ninterface InputFilterProps {\n columns: InputFilterColumn[];\n column: InputFilterColumn;\n isValueShown: boolean;\n value: string;\n onChange: (change: {\n column?: InputFilterColumn;\n isValueShown?: boolean;\n value?: string;\n }) => void;\n}\n\nexport interface InputFilterState {\n column?: InputFilterColumn;\n selectedColumn?: InputFilterColumn;\n value?: string;\n isValueShown?: boolean;\n}\n\nclass InputFilter extends Component<InputFilterProps, InputFilterState> {\n static PLACEHOLDER = 'Enter value...';\n\n static defaultProps = {\n column: null,\n isValueShown: false,\n value: null,\n };\n\n constructor(props: InputFilterProps) {\n super(props);\n\n this.handleColumnChange = this.handleColumnChange.bind(this);\n this.handleInputKeyPress = this.handleInputKeyPress.bind(this);\n this.handleValueChange = this.handleValueChange.bind(this);\n this.handleSettingsCancel = this.handleSettingsCancel.bind(this);\n this.handleSettingsClick = this.handleSettingsClick.bind(this);\n this.handleSettingsSave = this.handleSettingsSave.bind(this);\n this.handleBackgroundClick = this.handleBackgroundClick.bind(this);\n\n this.inputRef = React.createRef();\n\n const { column, isValueShown, value } = props;\n this.state = {\n column,\n selectedColumn: column,\n value,\n isValueShown,\n };\n }\n\n componentDidUpdate(\n prevProps: InputFilterProps,\n prevState: InputFilterState\n ): void {\n const { column: propColumn } = this.props;\n const { column, value, isValueShown } = this.state;\n\n if (propColumn !== prevProps.column) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ column: propColumn, selectedColumn: propColumn });\n }\n\n if (\n isValueShown !== undefined &&\n isValueShown &&\n isValueShown !== prevState.isValueShown\n ) {\n this.focusInput();\n }\n\n if (\n column !== prevState.column ||\n value !== prevState.value ||\n isValueShown !== prevState.isValueShown\n ) {\n this.sendUpdate();\n }\n }\n\n componentWillUnmount(): void {\n this.sendUpdate.flush();\n }\n\n inputRef: RefObject<HTMLInputElement>;\n\n getItemLabel = memoizee(\n (columns: InputFilterColumn[], index: number) => {\n const { name, type } = columns[index];\n\n if (\n (index > 0 && columns[index - 1].name === name) ||\n (index < columns.length - 1 && columns[index + 1].name === name)\n ) {\n const shortType = type.substring(type.lastIndexOf('.') + 1);\n return `${name} (${shortType})`;\n }\n\n return name;\n },\n { max: 1000 }\n );\n\n handleColumnChange(eventTargetValue: string): void {\n const { columns } = this.props;\n const selectedColumn = columns[parseInt(eventTargetValue, 10)];\n\n log.debug2('handleColumnChange', selectedColumn);\n\n this.setState({ selectedColumn, value: undefined });\n }\n\n handleInputKeyPress(event: KeyboardEvent<HTMLInputElement>): void {\n if (event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n this.setState(\n ({ value }) => (value == null ? { value: '' } : null),\n () => {\n this.sendUpdate();\n this.sendUpdate.flush();\n }\n );\n }\n }\n\n handleValueChange(event: ChangeEvent<HTMLInputElement>): void {\n const { value } = event.target;\n\n log.debug2('handleValueChange', value);\n\n this.setState({ value });\n }\n\n handleSettingsCancel(): void {\n const { column } = this.state;\n this.setState({ selectedColumn: column, isValueShown: true });\n }\n\n handleSettingsSave(): void {\n const { selectedColumn } = this.state;\n this.setState({ column: selectedColumn, isValueShown: true });\n }\n\n handleSettingsClick(event: MouseEvent<HTMLButtonElement>): void {\n const { column } = this.state;\n this.setState({ selectedColumn: column, isValueShown: false });\n event.stopPropagation();\n }\n\n handleBackgroundClick(event: MouseEvent<HTMLDivElement>): void {\n // allow clicking anywhere in the background to select and focus the input\n if (event.target !== this.inputRef.current) {\n this.focusInput();\n }\n }\n\n focusInput(): void {\n if (this.inputRef.current !== null) {\n this.inputRef.current.select();\n this.inputRef.current.focus();\n }\n }\n\n clearFilter(): void {\n this.setState({ value: '' });\n }\n\n setFilterState({\n name,\n type,\n value,\n isValueShown,\n }: {\n name?: string;\n type?: string;\n value?: string;\n isValueShown?: boolean;\n }): void {\n const column = name != null && type != null ? { name, type } : undefined;\n const update =\n isValueShown === undefined\n ? { column, value }\n : { column, value, isValueShown };\n this.setState(update);\n }\n\n sendUpdate = debounce(() => {\n const { onChange } = this.props;\n const { column, value, isValueShown } = this.state;\n onChange({ column, isValueShown, value });\n }, UPDATE_DEBOUNCE);\n\n render(): ReactElement {\n const { columns } = this.props;\n const { column, isValueShown, selectedColumn, value } = this.state;\n const inputLength =\n value == null || value.length === 0\n ? InputFilter.PLACEHOLDER.length\n : value.length;\n let titleLabel = null;\n if (column != null) {\n const columnIndex = columns.findIndex(\n item => item.name === column.name && item.type === column.type\n );\n titleLabel =\n columnIndex >= 0\n ? this.getItemLabel(columns, columnIndex)\n : column.name;\n }\n\n return (\n <CardFlip\n className=\"input-filter fill-parent-absolute\"\n isFlipped={isValueShown ?? false}\n >\n <div className=\"input-filter-settings-card\">\n <div className=\"input-filter-settings-content\">\n <div className=\"input-filter-settings-grid\">\n <label>Filter Column</label>\n <Select\n value={String(\n columns.findIndex(\n item =>\n item.name === selectedColumn?.name &&\n item.type === selectedColumn?.type\n )\n )}\n className=\"custom-select\"\n onChange={this.handleColumnChange}\n >\n {columns.map((columnItem, index) => (\n <option\n key={`${columnItem.name}/${columnItem.type}`}\n value={index}\n >\n {this.getItemLabel(columns, index)}\n </option>\n ))}\n {columns.length === 0 && (\n <option value=\"-1\" disabled>\n No Available Columns\n </option>\n )}\n </Select>\n <div className=\"text-muted small\">\n Input filter control will apply its filter to all columns\n matching this name in this dashboard.\n </div>\n </div>\n <div className=\"input-filter-settings-buttons\">\n <Button\n kind=\"secondary\"\n onClick={this.handleSettingsCancel}\n disabled={column == null}\n >\n Cancel\n </Button>\n <Button\n kind=\"primary\"\n className=\"ml-2\"\n onClick={this.handleSettingsSave}\n disabled={selectedColumn == null}\n >\n Save\n </Button>\n </div>\n </div>\n </div>\n\n <div\n className=\"input-filter-value-card\"\n onClick={this.handleBackgroundClick}\n >\n <div className=\"input-filter-column\">\n <div className=\"input-filter-column-title\">{titleLabel} Filter</div>\n </div>\n <div className=\"d-flex justify-content-center align-items-center h-100 w-100\">\n <div className=\"input-filter-value-input d-flex flex-column justify-content-center\">\n <input\n type=\"text\"\n ref={this.inputRef}\n placeholder={InputFilter.PLACEHOLDER}\n value={value ?? ''}\n onChange={this.handleValueChange}\n onKeyPress={this.handleInputKeyPress}\n style={{ width: `${inputLength + 3}ch` }}\n spellCheck=\"false\"\n />\n </div>\n </div>\n <div className=\"input-filter-menu\">\n <Button\n kind=\"ghost\"\n className=\"m-2 px-2\"\n onClick={this.handleSettingsClick}\n icon={<FontAwesomeIcon icon={vsGear} transform=\"grow-4\" />}\n tooltip=\"Input Filter Settings\"\n />\n </div>\n </div>\n </CardFlip>\n );\n }\n}\n\nexport default InputFilter;\n"],"mappings":"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"}
@@ -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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"}
@@ -72,6 +72,8 @@ export class DropdownFilterPanel extends Component {
72
72
  return rawValues.map(value =>
73
73
  // Skip formatting for nulls so they don't get converted to ''
74
74
  value != null && type != null ? formatter.getFormattedString(value, type, name) : null);
75
+ }, {
76
+ max: 1000
75
77
  }));
76
78
  _defineProperty(this, "getCachedPanelLinks", memoize((dashboardLinks, panel) => {
77
79
  var panelId = LayoutUtils.getIdFromPanel(panel);
@@ -80,6 +82,8 @@ export class DropdownFilterPanel extends Component {
80
82
  var _link$end;
81
83
  return ((_link$end = link.end) === null || _link$end === void 0 ? void 0 : _link$end.panelId) === panelId;
82
84
  });
85
+ }, {
86
+ max: 1000
83
87
  }));
84
88
  _defineProperty(this, "getCachedSource", memoize(links => {
85
89
  log.debug('getCachedSource', links);
@@ -92,6 +96,8 @@ export class DropdownFilterPanel extends Component {
92
96
  }
93
97
  }
94
98
  return source;
99
+ }, {
100
+ max: 1000
95
101
  }));
96
102
  _defineProperty(this, "getCachedSourceTable", memoize((panelTableMap, source) => {
97
103
  var _panelTableMap$get;
@@ -103,6 +109,8 @@ export class DropdownFilterPanel extends Component {
103
109
  panelId
104
110
  } = source;
105
111
  return (_panelTableMap$get = panelTableMap.get(panelId)) !== null && _panelTableMap$get !== void 0 ? _panelTableMap$get : null;
112
+ }, {
113
+ max: 1000
106
114
  }));
107
115
  _defineProperty(this, "getCachedSourceColumn", memoize((table, source) => {
108
116
  var _table$columns$find;
@@ -117,6 +125,8 @@ export class DropdownFilterPanel extends Component {
117
125
  } = _ref2;
118
126
  return name === source.columnName && type === source.columnType;
119
127
  })) !== null && _table$columns$find !== void 0 ? _table$columns$find : null;
128
+ }, {
129
+ max: 1000
120
130
  }));
121
131
  this.handleChange = debounce(this.handleChange.bind(this), DROPDOWN_FILTER_DEBOUNCE);
122
132
  this.handleClearAllFilters = this.handleClearAllFilters.bind(this);
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownFilterPanel.js","names":["React","Component","connect","debounce","deepEqual","memoize","LayoutUtils","DateTimeColumnFormatter","Formatter","FormatterUtils","TableUtils","Log","getActiveTool","getApi","getSettings","EMPTY_ARRAY","Pending","PromiseUtils","DropdownFilter","InputFilterEvent","getColumnsForDashboard","getColumnSelectionValidatorForDashboard","getIsolatedLinkerPanelIdForDashboard","getLinksForDashboard","getTableMapForDashboard","ToolType","WidgetPanel","jsx","_jsx","log","module","DROPDOWN_FILTER_DEBOUNCE","WIDGET_DESCRIPTOR","Object","freeze","name","type","mapStateToProps","state","ownProps","localDashboardId","panelId","getIdFromPanel","props","panelTableMap","dashboardLinks","activeTool","isolatedLinkerPanelId","isLinkerActive","LINKER","undefined","disableLinking","columns","columnSelectionValidator","dh","settings","connector","forwardRef","DropdownFilterPanel","constructor","_defineProperty","rawValues","_ref","formatter","isDateType","map","value","dateTimeFormatter","format","getFormattedString","panel","debug","filter","link","_link$end","end","links","source","length","start","error","_panelTableMap$get","get","table","_table$columns$find","find","_ref2","columnName","columnType","handleChange","bind","handleClearAllFilters","handleDisconnect","handleReconnect","handleColumnSelected","handleSourceFilterChange","handleSourceSortChange","handleSourceSizeChange","handleSourceMouseEnter","handleSourceMouseLeave","handleValuesTableUpdate","dropdownFilterRef","createRef","panelContainer","pending","panelState","columnFormats","getColumnFormats","showTimeZone","showTSeparator","defaultDateTimeFormatString","isValueShown","timestamp","column","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","_element$getBoundingC","current","element","querySelector","concat","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","_ref3","Date","now","setState","_ref4","_ref5","_timestamp","prevTimestamp","isFlip","Error","applySourceFilters","applySourceSorts","_ref6","detail","glEventHub","emit","COLUMN_SELECTED","SOURCE_COLUMN","_this$dropdownFilterR","_this$dropdownFilterR2","clearFilter","setPanelState","_this$dropdownFilterR3","_this$dropdownFilterR4","arguments","setFilterState","_this$getSource","sourcePanelId","excludePanelIds","FILTERS_CHANGED","size","add","copy","resolved","then","updateViewportListener","catch","isCanceled","sort","sorts","applySort","setViewport","filters","applyFilter","EVENT_UPDATED","_ref7","rows","row","render","glContainer","settingsErrorMessage","panelErrorMessage","formattedValues","getCachedValues","errorMessage","className","componentPanel","onClearAllFilters","descriptor","children","ref","settingsError","onChange","onColumnSelected","onSourceMouseEnter","onSourceMouseLeave","ConnectedDropdownFilterPanel"],"sources":["../../src/panels/DropdownFilterPanel.tsx"],"sourcesContent":["import React, { Component, type RefObject } from 'react';\nimport { connect, type ConnectedProps } from 'react-redux';\nimport debounce from 'lodash.debounce';\nimport deepEqual from 'fast-deep-equal';\nimport memoize from 'memoizee';\nimport { type DashboardPanelProps, LayoutUtils } from '@deephaven/dashboard';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport {\n DateTimeColumnFormatter,\n Formatter,\n FormatterUtils,\n type FormattingRule,\n TableUtils,\n} from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport {\n getActiveTool,\n getApi,\n getSettings,\n type RootState,\n} from '@deephaven/redux';\nimport { EMPTY_ARRAY, Pending, PromiseUtils } from '@deephaven/utils';\nimport DropdownFilter, {\n type 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 { type ColumnSelectionValidator } from '../linker/ColumnSelectionValidator';\nimport { type PanelState as InputFilterPanelState } from './InputFilterPanel';\n\nconst log = Log.module('DropdownFilterPanel');\n\nconst DROPDOWN_FILTER_DEBOUNCE = 250;\n\nconst WIDGET_DESCRIPTOR = Object.freeze({\n name: 'Dropdown Filter',\n type: 'DropdownFilter',\n});\n\ninterface PanelState {\n name?: string;\n type?: string;\n value?: string;\n isValueShown?: boolean;\n timestamp?: number;\n}\n\ntype PanelTableMap = Map<string | string[], DhType.Table>;\n\ntype StateProps = {\n columns: DhType.Column[];\n columnSelectionValidator?: ColumnSelectionValidator;\n dashboardLinks: Link[];\n dh: typeof DhType;\n disableLinking: boolean;\n isLinkerActive: boolean;\n panelTableMap: PanelTableMap;\n panelState?: PanelState;\n settings: { formatter: FormattingRule[] };\n};\n\ntype OwnProps = DashboardPanelProps;\n\nconst mapStateToProps = (state: RootState, ownProps: OwnProps): StateProps => {\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 dh: getApi(state),\n isLinkerActive,\n disableLinking,\n settings: getSettings(state),\n panelTableMap,\n dashboardLinks,\n };\n};\n\nconst connector = connect(mapStateToProps, null, null, { forwardRef: true });\n\nexport type DropdownFilterPanelProps = OwnProps &\n StateProps &\n ConnectedProps<typeof connector>;\n\ninterface DropdownFilterPanelState {\n column?: DropdownFilterColumn;\n formatter: Formatter;\n valuesTable?: DhType.Table;\n valuesColumn?: DhType.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\nexport class 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 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 { dh, panelState, settings } = props;\n this.columnFormats = FormatterUtils.getColumnFormats(settings);\n // Filter dropdown needs to show and send full timestamp format with nanoseconds\n this.dateTimeFormatter = new DateTimeColumnFormatter(dh, {\n showTimeZone: false,\n showTSeparator: true,\n defaultDateTimeFormatString: `yyyy-MM-dd HH:mm:ss.SSSSSSSSS`,\n });\n const {\n value = '',\n isValueShown = false,\n name,\n type,\n timestamp,\n } = panelState ?? {};\n const column = name != null && type != null ? { name, type } : undefined;\n this.state = {\n column,\n formatter: new Formatter(dh, 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(): void {\n this.updateValuesTable();\n const { dashboardLinks, panelTableMap } = this.props;\n const { column, value, timestamp } = this.state;\n const sourceTable = this.getSourceTable(panelTableMap, dashboardLinks);\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 ): void {\n const { dashboardLinks, panelTableMap, settings } = this.props;\n const { valuesTable } = this.state;\n const source = this.getSource(dashboardLinks);\n const sourceTable = this.getSourceTable(panelTableMap, dashboardLinks);\n\n const prevSource = this.getSource(prevProps.dashboardLinks);\n const prevSourceTable = this.getSourceTable(\n prevProps.panelTableMap,\n prevProps.dashboardLinks\n );\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 { dashboardLinks, panelTableMap } = this.props;\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable(panelTableMap, dashboardLinks);\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 dateTimeFormatter: DateTimeColumnFormatter;\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 this.dateTimeFormatter.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[], DhType.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: DhType.Table, 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(links: Link[]): LinkPoint | undefined {\n const panelLinks = this.getCachedPanelLinks(links, this);\n return this.getCachedSource(panelLinks);\n }\n\n getSourceTable(\n panelTableMap: PanelTableMap,\n links: Link[]\n ): DhType.Table | null {\n const source = this.getSource(links);\n return this.getCachedSourceTable(panelTableMap, source);\n }\n\n getValuesColumn(\n valuesTable: DhType.Table,\n links: Link[]\n ): DhType.Column | null {\n const source = this.getSource(links);\n return this.getCachedSourceColumn(valuesTable, source);\n }\n\n startListeningToSource(sourceTable: DhType.Table): void {\n const { dh } = this.props;\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: DhType.Table): void {\n const { dh } = this.props;\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 = false,\n value,\n }: {\n column: Partial<DhType.Column> | null;\n isValueShown?: boolean | undefined;\n value?: string | undefined;\n }): void {\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(): void {\n this.setState({\n error: new Error('Table disconnected'),\n isDisconnected: true,\n isLoading: false,\n });\n }\n\n handleReconnect(): void {\n this.setState({ isDisconnected: false, error: null });\n }\n\n handleSourceFilterChange(): void {\n this.applySourceFilters();\n }\n\n handleSourceSortChange(): void {\n this.applySourceSorts();\n }\n\n handleSourceSizeChange({ detail }: { detail: number }): void {\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(state: InputFilterPanelState, sendUpdate = false): void {\n const { dashboardLinks } = this.props;\n if (this.getSource(dashboardLinks) == 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 { dashboardLinks, glEventHub } = this.props;\n const sourcePanelId = this.getSource(dashboardLinks)?.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 { dashboardLinks, panelTableMap } = this.props;\n const source = this.getSource(dashboardLinks);\n const sourceTable = this.getSourceTable(panelTableMap, dashboardLinks);\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(): void {\n const { dashboardLinks, panelTableMap } = this.props;\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable(panelTableMap, dashboardLinks);\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 { dashboardLinks, panelTableMap } = this.props;\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable(panelTableMap, dashboardLinks);\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: DhType.Table): void {\n const { dh } = this.props;\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: DhType.Table): void {\n const { dashboardLinks } = this.props;\n const valuesColumn = this.getValuesColumn(valuesTable, dashboardLinks);\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 }): void {\n const { dh } = this.props;\n const columnFormats = FormatterUtils.getColumnFormats(settings);\n if (!deepEqual(this.columnFormats, columnFormats)) {\n this.columnFormats = columnFormats;\n this.setState({ formatter: new Formatter(dh, columnFormats) });\n }\n }\n\n handleValuesTableUpdate({\n detail,\n }: {\n detail: { rows: DhType.Row[] };\n }): void {\n const { rows } = detail;\n const { dashboardLinks } = this.props;\n const { valuesTable } = this.state;\n if (!valuesTable) {\n log.error('valuesTable is null');\n return;\n }\n const valuesColumn = this.getValuesColumn(valuesTable, dashboardLinks);\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(): void {\n const { columnSelectionValidator } = this.props;\n if (!columnSelectionValidator) {\n return;\n }\n columnSelectionValidator(this, DropdownFilterPanel.SOURCE_COLUMN);\n }\n\n handleSourceMouseLeave(): void {\n const { columnSelectionValidator } = this.props;\n if (!columnSelectionValidator) {\n return;\n }\n columnSelectionValidator(this, undefined);\n }\n\n render(): React.ReactElement {\n const {\n columns,\n dashboardLinks,\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 const source = this.getSource(dashboardLinks);\n const settingsErrorMessage = this.getSettingsErrorMessage();\n const panelErrorMessage = this.getPanelErrorMessage();\n const formattedValues =\n isLoaded && valuesColumn != null\n ? this.getCachedValues(values, valuesColumn, formatter)\n : EMPTY_ARRAY;\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 descriptor={WIDGET_DESCRIPTOR}\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 ConnectedDropdownFilterPanel = connector(DropdownFilterPanel);\n\nexport default ConnectedDropdownFilterPanel;\n"],"mappings":"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"}
1
+ {"version":3,"file":"DropdownFilterPanel.js","names":["React","Component","connect","debounce","deepEqual","memoize","LayoutUtils","DateTimeColumnFormatter","Formatter","FormatterUtils","TableUtils","Log","getActiveTool","getApi","getSettings","EMPTY_ARRAY","Pending","PromiseUtils","DropdownFilter","InputFilterEvent","getColumnsForDashboard","getColumnSelectionValidatorForDashboard","getIsolatedLinkerPanelIdForDashboard","getLinksForDashboard","getTableMapForDashboard","ToolType","WidgetPanel","jsx","_jsx","log","module","DROPDOWN_FILTER_DEBOUNCE","WIDGET_DESCRIPTOR","Object","freeze","name","type","mapStateToProps","state","ownProps","localDashboardId","panelId","getIdFromPanel","props","panelTableMap","dashboardLinks","activeTool","isolatedLinkerPanelId","isLinkerActive","LINKER","undefined","disableLinking","columns","columnSelectionValidator","dh","settings","connector","forwardRef","DropdownFilterPanel","constructor","_defineProperty","rawValues","_ref","formatter","isDateType","map","value","dateTimeFormatter","format","getFormattedString","max","panel","debug","filter","link","_link$end","end","links","source","length","start","error","_panelTableMap$get","get","table","_table$columns$find","find","_ref2","columnName","columnType","handleChange","bind","handleClearAllFilters","handleDisconnect","handleReconnect","handleColumnSelected","handleSourceFilterChange","handleSourceSortChange","handleSourceSizeChange","handleSourceMouseEnter","handleSourceMouseLeave","handleValuesTableUpdate","dropdownFilterRef","createRef","panelContainer","pending","panelState","columnFormats","getColumnFormats","showTimeZone","showTSeparator","defaultDateTimeFormatString","isValueShown","timestamp","column","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","_element$getBoundingC","current","element","querySelector","concat","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","_ref3","Date","now","setState","_ref4","_ref5","_timestamp","prevTimestamp","isFlip","Error","applySourceFilters","applySourceSorts","_ref6","detail","glEventHub","emit","COLUMN_SELECTED","SOURCE_COLUMN","_this$dropdownFilterR","_this$dropdownFilterR2","clearFilter","setPanelState","_this$dropdownFilterR3","_this$dropdownFilterR4","arguments","setFilterState","_this$getSource","sourcePanelId","excludePanelIds","FILTERS_CHANGED","size","add","copy","resolved","then","updateViewportListener","catch","isCanceled","sort","sorts","applySort","setViewport","filters","applyFilter","EVENT_UPDATED","_ref7","rows","row","render","glContainer","settingsErrorMessage","panelErrorMessage","formattedValues","getCachedValues","errorMessage","className","componentPanel","onClearAllFilters","descriptor","children","ref","settingsError","onChange","onColumnSelected","onSourceMouseEnter","onSourceMouseLeave","ConnectedDropdownFilterPanel"],"sources":["../../src/panels/DropdownFilterPanel.tsx"],"sourcesContent":["import React, { Component, type RefObject } from 'react';\nimport { connect, type ConnectedProps } from 'react-redux';\nimport debounce from 'lodash.debounce';\nimport deepEqual from 'fast-deep-equal';\nimport memoize from 'memoizee';\nimport { type DashboardPanelProps, LayoutUtils } from '@deephaven/dashboard';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport {\n DateTimeColumnFormatter,\n Formatter,\n FormatterUtils,\n type FormattingRule,\n TableUtils,\n} from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport {\n getActiveTool,\n getApi,\n getSettings,\n type RootState,\n} from '@deephaven/redux';\nimport { EMPTY_ARRAY, Pending, PromiseUtils } from '@deephaven/utils';\nimport DropdownFilter, {\n type 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 { type ColumnSelectionValidator } from '../linker/ColumnSelectionValidator';\nimport { type PanelState as InputFilterPanelState } from './InputFilterPanel';\n\nconst log = Log.module('DropdownFilterPanel');\n\nconst DROPDOWN_FILTER_DEBOUNCE = 250;\n\nconst WIDGET_DESCRIPTOR = Object.freeze({\n name: 'Dropdown Filter',\n type: 'DropdownFilter',\n});\n\ninterface PanelState {\n name?: string;\n type?: string;\n value?: string;\n isValueShown?: boolean;\n timestamp?: number;\n}\n\ntype PanelTableMap = Map<string | string[], DhType.Table>;\n\ntype StateProps = {\n columns: DhType.Column[];\n columnSelectionValidator?: ColumnSelectionValidator;\n dashboardLinks: Link[];\n dh: typeof DhType;\n disableLinking: boolean;\n isLinkerActive: boolean;\n panelTableMap: PanelTableMap;\n panelState?: PanelState;\n settings: { formatter: FormattingRule[] };\n};\n\ntype OwnProps = DashboardPanelProps;\n\nconst mapStateToProps = (state: RootState, ownProps: OwnProps): StateProps => {\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 dh: getApi(state),\n isLinkerActive,\n disableLinking,\n settings: getSettings(state),\n panelTableMap,\n dashboardLinks,\n };\n};\n\nconst connector = connect(mapStateToProps, null, null, { forwardRef: true });\n\nexport type DropdownFilterPanelProps = OwnProps &\n StateProps &\n ConnectedProps<typeof connector>;\n\ninterface DropdownFilterPanelState {\n column?: DropdownFilterColumn;\n formatter: Formatter;\n valuesTable?: DhType.Table;\n valuesColumn?: DhType.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\nexport class 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 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 { dh, panelState, settings } = props;\n this.columnFormats = FormatterUtils.getColumnFormats(settings);\n // Filter dropdown needs to show and send full timestamp format with nanoseconds\n this.dateTimeFormatter = new DateTimeColumnFormatter(dh, {\n showTimeZone: false,\n showTSeparator: true,\n defaultDateTimeFormatString: `yyyy-MM-dd HH:mm:ss.SSSSSSSSS`,\n });\n const {\n value = '',\n isValueShown = false,\n name,\n type,\n timestamp,\n } = panelState ?? {};\n const column = name != null && type != null ? { name, type } : undefined;\n this.state = {\n column,\n formatter: new Formatter(dh, 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(): void {\n this.updateValuesTable();\n const { dashboardLinks, panelTableMap } = this.props;\n const { column, value, timestamp } = this.state;\n const sourceTable = this.getSourceTable(panelTableMap, dashboardLinks);\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 ): void {\n const { dashboardLinks, panelTableMap, settings } = this.props;\n const { valuesTable } = this.state;\n const source = this.getSource(dashboardLinks);\n const sourceTable = this.getSourceTable(panelTableMap, dashboardLinks);\n\n const prevSource = this.getSource(prevProps.dashboardLinks);\n const prevSourceTable = this.getSourceTable(\n prevProps.panelTableMap,\n prevProps.dashboardLinks\n );\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 { dashboardLinks, panelTableMap } = this.props;\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable(panelTableMap, dashboardLinks);\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 dateTimeFormatter: DateTimeColumnFormatter;\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 this.dateTimeFormatter.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 { max: 1000 }\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 { max: 1000 }\n );\n\n getCachedSource = memoize(\n (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 { max: 1000 }\n );\n\n getCachedSourceTable = memoize(\n (\n panelTableMap: Map<string | string[], DhType.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 { max: 1000 }\n );\n\n getCachedSourceColumn = memoize(\n (table: DhType.Table, 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 { max: 1000 }\n );\n\n getSource(links: Link[]): LinkPoint | undefined {\n const panelLinks = this.getCachedPanelLinks(links, this);\n return this.getCachedSource(panelLinks);\n }\n\n getSourceTable(\n panelTableMap: PanelTableMap,\n links: Link[]\n ): DhType.Table | null {\n const source = this.getSource(links);\n return this.getCachedSourceTable(panelTableMap, source);\n }\n\n getValuesColumn(\n valuesTable: DhType.Table,\n links: Link[]\n ): DhType.Column | null {\n const source = this.getSource(links);\n return this.getCachedSourceColumn(valuesTable, source);\n }\n\n startListeningToSource(sourceTable: DhType.Table): void {\n const { dh } = this.props;\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: DhType.Table): void {\n const { dh } = this.props;\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 = false,\n value,\n }: {\n column: Partial<DhType.Column> | null;\n isValueShown?: boolean | undefined;\n value?: string | undefined;\n }): void {\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(): void {\n this.setState({\n error: new Error('Table disconnected'),\n isDisconnected: true,\n isLoading: false,\n });\n }\n\n handleReconnect(): void {\n this.setState({ isDisconnected: false, error: null });\n }\n\n handleSourceFilterChange(): void {\n this.applySourceFilters();\n }\n\n handleSourceSortChange(): void {\n this.applySourceSorts();\n }\n\n handleSourceSizeChange({ detail }: { detail: number }): void {\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(state: InputFilterPanelState, sendUpdate = false): void {\n const { dashboardLinks } = this.props;\n if (this.getSource(dashboardLinks) == 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 { dashboardLinks, glEventHub } = this.props;\n const sourcePanelId = this.getSource(dashboardLinks)?.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 { dashboardLinks, panelTableMap } = this.props;\n const source = this.getSource(dashboardLinks);\n const sourceTable = this.getSourceTable(panelTableMap, dashboardLinks);\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(): void {\n const { dashboardLinks, panelTableMap } = this.props;\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable(panelTableMap, dashboardLinks);\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 { dashboardLinks, panelTableMap } = this.props;\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable(panelTableMap, dashboardLinks);\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: DhType.Table): void {\n const { dh } = this.props;\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: DhType.Table): void {\n const { dashboardLinks } = this.props;\n const valuesColumn = this.getValuesColumn(valuesTable, dashboardLinks);\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 }): void {\n const { dh } = this.props;\n const columnFormats = FormatterUtils.getColumnFormats(settings);\n if (!deepEqual(this.columnFormats, columnFormats)) {\n this.columnFormats = columnFormats;\n this.setState({ formatter: new Formatter(dh, columnFormats) });\n }\n }\n\n handleValuesTableUpdate({\n detail,\n }: {\n detail: { rows: DhType.Row[] };\n }): void {\n const { rows } = detail;\n const { dashboardLinks } = this.props;\n const { valuesTable } = this.state;\n if (!valuesTable) {\n log.error('valuesTable is null');\n return;\n }\n const valuesColumn = this.getValuesColumn(valuesTable, dashboardLinks);\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(): void {\n const { columnSelectionValidator } = this.props;\n if (!columnSelectionValidator) {\n return;\n }\n columnSelectionValidator(this, DropdownFilterPanel.SOURCE_COLUMN);\n }\n\n handleSourceMouseLeave(): void {\n const { columnSelectionValidator } = this.props;\n if (!columnSelectionValidator) {\n return;\n }\n columnSelectionValidator(this, undefined);\n }\n\n render(): React.ReactElement {\n const {\n columns,\n dashboardLinks,\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 const source = this.getSource(dashboardLinks);\n const settingsErrorMessage = this.getSettingsErrorMessage();\n const panelErrorMessage = this.getPanelErrorMessage();\n const formattedValues =\n isLoaded && valuesColumn != null\n ? this.getCachedValues(values, valuesColumn, formatter)\n : EMPTY_ARRAY;\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 descriptor={WIDGET_DESCRIPTOR}\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 ConnectedDropdownFilterPanel = connector(DropdownFilterPanel);\n\nexport default ConnectedDropdownFilterPanel;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/dashboard-core-plugins",
3
- "version": "0.106.1",
3
+ "version": "0.106.2-beta.1+d44370b1",
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.106.0",
26
- "@deephaven/components": "^0.106.0",
27
- "@deephaven/console": "^0.106.0",
28
- "@deephaven/dashboard": "^0.106.1",
29
- "@deephaven/file-explorer": "^0.106.0",
30
- "@deephaven/filters": "^0.106.0",
31
- "@deephaven/golden-layout": "^0.106.0",
32
- "@deephaven/grid": "^0.106.1",
33
- "@deephaven/icons": "^0.106.0",
34
- "@deephaven/iris-grid": "^0.106.1",
35
- "@deephaven/jsapi-bootstrap": "^0.106.0",
36
- "@deephaven/jsapi-components": "^0.106.0",
25
+ "@deephaven/chart": "^0.106.2-beta.1+d44370b1",
26
+ "@deephaven/components": "^0.106.2-beta.1+d44370b1",
27
+ "@deephaven/console": "^0.106.2-beta.1+d44370b1",
28
+ "@deephaven/dashboard": "^0.106.2-beta.1+d44370b1",
29
+ "@deephaven/file-explorer": "^0.106.2-beta.1+d44370b1",
30
+ "@deephaven/filters": "^0.106.2-beta.1+d44370b1",
31
+ "@deephaven/golden-layout": "^0.106.2-beta.1+d44370b1",
32
+ "@deephaven/grid": "^0.106.2-beta.1+d44370b1",
33
+ "@deephaven/icons": "^0.106.2-beta.1+d44370b1",
34
+ "@deephaven/iris-grid": "^0.106.2-beta.1+d44370b1",
35
+ "@deephaven/jsapi-bootstrap": "^0.106.2-beta.1+d44370b1",
36
+ "@deephaven/jsapi-components": "^0.106.2-beta.1+d44370b1",
37
37
  "@deephaven/jsapi-types": "^1.0.0-dev0.37.2",
38
- "@deephaven/jsapi-utils": "^0.106.0",
39
- "@deephaven/log": "^0.106.0",
40
- "@deephaven/plugin": "^0.106.1",
41
- "@deephaven/react-hooks": "^0.106.0",
42
- "@deephaven/redux": "^0.106.1",
43
- "@deephaven/storage": "^0.106.0",
44
- "@deephaven/utils": "^0.106.0",
38
+ "@deephaven/jsapi-utils": "^0.106.2-beta.1+d44370b1",
39
+ "@deephaven/log": "^0.106.2-beta.1+d44370b1",
40
+ "@deephaven/plugin": "^0.106.2-beta.1+d44370b1",
41
+ "@deephaven/react-hooks": "^0.106.2-beta.1+d44370b1",
42
+ "@deephaven/redux": "^0.106.2-beta.1+d44370b1",
43
+ "@deephaven/storage": "^0.106.2-beta.1+d44370b1",
44
+ "@deephaven/utils": "^0.106.2-beta.1+d44370b1",
45
45
  "@fortawesome/react-fontawesome": "^0.2.0",
46
46
  "classnames": "^2.3.1",
47
47
  "fast-deep-equal": "^3.1.3",
@@ -65,9 +65,9 @@
65
65
  "react-redux": "^7.2.4"
66
66
  },
67
67
  "devDependencies": {
68
- "@deephaven/jsapi-shim": "^0.106.0",
69
- "@deephaven/mocks": "^0.106.0",
70
- "@deephaven/test-utils": "^0.106.0"
68
+ "@deephaven/jsapi-shim": "^0.106.2-beta.1+d44370b1",
69
+ "@deephaven/mocks": "^0.106.2-beta.1+d44370b1",
70
+ "@deephaven/test-utils": "^0.106.2-beta.1+d44370b1"
71
71
  },
72
72
  "files": [
73
73
  "dist",
@@ -79,5 +79,5 @@
79
79
  "publishConfig": {
80
80
  "access": "public"
81
81
  },
82
- "gitHead": "652212e32b5bd2bbeed6ac9bed774b083c89feb5"
82
+ "gitHead": "d44370b18b16f153403eaf95094e29755d673d4e"
83
83
  }