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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/dist/ChartBuilderPlugin.js.map +1 -1
  2. package/dist/ChartPlugin.d.ts +2 -1
  3. package/dist/ChartPlugin.d.ts.map +1 -1
  4. package/dist/ChartPlugin.js.map +1 -1
  5. package/dist/ConsolePlugin.js.map +1 -1
  6. package/dist/FilterPlugin.js.map +1 -1
  7. package/dist/GridPlugin.d.ts +2 -1
  8. package/dist/GridPlugin.d.ts.map +1 -1
  9. package/dist/GridPlugin.js.map +1 -1
  10. package/dist/LinkerPlugin.js.map +1 -1
  11. package/dist/MarkdownPlugin.js.map +1 -1
  12. package/dist/PandasPlugin.d.ts +2 -1
  13. package/dist/PandasPlugin.d.ts.map +1 -1
  14. package/dist/PandasPlugin.js.map +1 -1
  15. package/dist/controls/ControlType.js.map +1 -1
  16. package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
  17. package/dist/controls/input-filter/InputFilter.js.map +1 -1
  18. package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
  19. package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
  20. package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
  21. package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
  22. package/dist/events/ChartEvent.js.map +1 -1
  23. package/dist/events/ConsoleEvent.js.map +1 -1
  24. package/dist/events/InputFilterEvent.js.map +1 -1
  25. package/dist/events/IrisGridEvent.js.map +1 -1
  26. package/dist/events/MarkdownEvent.js.map +1 -1
  27. package/dist/events/NotebookEvent.js.map +1 -1
  28. package/dist/events/PQEvent.js.map +1 -1
  29. package/dist/events/PandasEvent.js.map +1 -1
  30. package/dist/events/TabEvent.js.map +1 -1
  31. package/dist/events/index.js.map +1 -1
  32. package/dist/index.d.ts +1 -0
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +1 -0
  35. package/dist/index.js.map +1 -1
  36. package/dist/linker/ColumnSelectionValidator.js.map +1 -1
  37. package/dist/linker/Linker.js.map +1 -1
  38. package/dist/linker/LinkerLink.js.map +1 -1
  39. package/dist/linker/LinkerOverlayContent.js.map +1 -1
  40. package/dist/linker/LinkerUtils.js.map +1 -1
  41. package/dist/linker/ToolType.js.map +1 -1
  42. package/dist/linker/index.d.ts +2 -0
  43. package/dist/linker/index.d.ts.map +1 -0
  44. package/dist/linker/index.js +2 -0
  45. package/dist/linker/index.js.map +1 -0
  46. package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
  47. package/dist/panels/ChartFilterOverlay.d.ts +4 -2
  48. package/dist/panels/ChartFilterOverlay.d.ts.map +1 -1
  49. package/dist/panels/ChartFilterOverlay.js.map +1 -1
  50. package/dist/panels/ChartPanel.d.ts +57 -19
  51. package/dist/panels/ChartPanel.d.ts.map +1 -1
  52. package/dist/panels/ChartPanel.js +25 -14
  53. package/dist/panels/ChartPanel.js.map +1 -1
  54. package/dist/panels/CommandHistoryPanel.js.map +1 -1
  55. package/dist/panels/ConsolePanel.js.map +1 -1
  56. package/dist/panels/DropdownFilterPanel.js.map +1 -1
  57. package/dist/panels/FileExplorerPanel.js.map +1 -1
  58. package/dist/panels/FilterSetManager.js.map +1 -1
  59. package/dist/panels/FilterSetManagerPanel.js.map +1 -1
  60. package/dist/panels/InputFilterPanel.js.map +1 -1
  61. package/dist/panels/IrisGridPanel.js.map +1 -1
  62. package/dist/panels/LogPanel.js.map +1 -1
  63. package/dist/panels/MarkdownNotebook.js.map +1 -1
  64. package/dist/panels/MarkdownPanel.js.map +1 -1
  65. package/dist/panels/NotebookPanel.d.ts +1 -3
  66. package/dist/panels/NotebookPanel.d.ts.map +1 -1
  67. package/dist/panels/NotebookPanel.js +3 -5
  68. package/dist/panels/NotebookPanel.js.map +1 -1
  69. package/dist/panels/PandasPanel.d.ts +1 -1
  70. package/dist/panels/PandasPanel.d.ts.map +1 -1
  71. package/dist/panels/PandasPanel.js +1 -1
  72. package/dist/panels/PandasPanel.js.map +1 -1
  73. package/dist/panels/Panel.js.map +1 -1
  74. package/dist/panels/PanelContextMenu.js.map +1 -1
  75. package/dist/panels/RenameDialog.js.map +1 -1
  76. package/dist/panels/WidgetPanel.js.map +1 -1
  77. package/dist/panels/WidgetPanelTooltip.js.map +1 -1
  78. package/dist/panels/index.d.ts +3 -0
  79. package/dist/panels/index.d.ts.map +1 -1
  80. package/dist/panels/index.js +3 -0
  81. package/dist/panels/index.js.map +1 -1
  82. package/dist/prop-types/CommonPropTypes.js.map +1 -1
  83. package/dist/prop-types/UIPropTypes.js.map +1 -1
  84. package/dist/prop-types/index.js.map +1 -1
  85. package/dist/redux/actionTypes.js.map +1 -1
  86. package/dist/redux/actions.js.map +1 -1
  87. package/dist/redux/index.js.map +1 -1
  88. package/dist/redux/reducers/index.js.map +1 -1
  89. package/dist/redux/reducers/sessionWrapper.js.map +1 -1
  90. package/dist/redux/selectors.d.ts +4 -4
  91. package/dist/redux/selectors.js +4 -4
  92. package/dist/redux/selectors.js.map +1 -1
  93. package/package.json +18 -19
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/controls/dropdown-filter/DropdownFilter.tsx"],"names":["React","Component","FontAwesomeIcon","Button","CardFlip","SocketedButton","vsGear","TableUtils","memoizee","memoize","debounce","Log","log","module","UPDATE_DEBOUNCE","DropdownFilter","constructor","props","source","columns","filter","type","undefined","isCompatibleType","columnType","selectedColumn","selectedIndex","options","push","forEach","columnItem","index","name","getItemLabel","values","value","indexOf","PLACEHOLDER","map","val","length","shortType","substring","lastIndexOf","onChange","column","isValueShown","state","handleColumnChange","bind","handleSettingsCancel","handleSettingsClick","handleSettingsSave","handleBackgroundClick","handleDropdownKeyPress","handleValueChange","dropdownRef","createRef","disableCancel","componentDidUpdate","prevProps","prevState","isLoaded","sourceUpdated","includes","resetValue","focusInput","sendUpdate","componentWillUnmount","flush","event","target","debug2","parseInt","setState","allColumns","getCompatibleColumns","key","preventDefault","stopPropagation","valueIndex","error","showSettings","current","handleMouseEnter","onSourceMouseEnter","handleMouseLeave","onSourceMouseLeave","focus","clearFilter","setFilterState","render","disableLinking","isLinkerActive","onColumnSelected","settingsError","columnSelectionDisabled","isLinked","sourceButtonLabel","columnName","SOURCE_BUTTON_PLACEHOLDER","filterTitle","columnOptions","getColumnOptions","valueOptions","getValueOptions","selectedOption","getSelectedOptionIndex","disableSave","isFlipped","SOURCE_BUTTON_CLASS_NAME"],"mappings":"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","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 ChangeEvent,\n Component,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n RefObject,\n} from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Button, CardFlip, SocketedButton } from '@deephaven/components';\nimport { vsGear } from '@deephaven/icons';\nimport { Column } from '@deephaven/jsapi-shim';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport memoizee from 'memoizee';\nimport memoize from 'memoize-one';\nimport debounce from 'lodash.debounce';\nimport Log from '@deephaven/log';\nimport './DropdownFilter.scss';\nimport { 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}\ninterface DropdownFilterProps {\n column: DropdownFilterColumn;\n columns: 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;\n values: (string | null)[];\n onChange: (change: {\n column: Partial<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}\n\nclass 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 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: DropdownFilterColumn[]) =>\n source\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: (string | null)[], value: string | null) => values.indexOf(value)\n );\n\n getValueOptions = memoize((values: (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}\n </option>\n )),\n ]);\n\n getItemLabel = memoizee((columns, index) => {\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(event: ChangeEvent<HTMLSelectElement>): void {\n const { value } = event.target;\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(event: ChangeEvent<HTMLSelectElement>): void {\n const { value: valueIndex } = event.target;\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 === -1) {\n log.debug2('Selected default item');\n } else if (index >= 0 && index < values.length) {\n value = values[index];\n } else {\n log.error('Invalid index', index, values);\n return;\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 handleMouseEnter(): void {\n const { onSourceMouseEnter } = this.props;\n onSourceMouseEnter();\n }\n\n handleMouseLeave(): void {\n const { onSourceMouseLeave } = this.props;\n onSourceMouseLeave();\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 if (this.dropdownRef.current !== null) {\n this.dropdownRef.current.focus();\n }\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 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({ column, value, isValueShown });\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 {\n column,\n disableCancel,\n isValueShown,\n selectedColumn,\n 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 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>Source Column</label>\n <SocketedButton\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>Filter Column</label>\n <select\n value={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 >\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={selectedOption}\n ref={this.dropdownRef}\n onChange={this.handleValueChange}\n onKeyPress={this.handleDropdownKeyPress}\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 type=\"button\"\n className=\"btn btn-link btn-link-icon m-2 px-2\"\n onClick={this.handleSettingsClick}\n >\n <FontAwesomeIcon icon={vsGear} transform=\"grow-4\" />\n </button>\n </div>\n </>\n )}\n </div>\n </CardFlip>\n );\n }\n}\n\nexport default DropdownFilter;\n"],"file":"DropdownFilter.js"}
1
+ {"version":3,"file":"DropdownFilter.js","names":["React","Component","FontAwesomeIcon","Button","CardFlip","SocketedButton","vsGear","TableUtils","memoizee","memoize","debounce","Log","log","module","UPDATE_DEBOUNCE","DropdownFilter","constructor","props","source","columns","filter","type","undefined","isCompatibleType","columnType","selectedColumn","selectedIndex","options","push","forEach","columnItem","index","name","getItemLabel","values","value","indexOf","PLACEHOLDER","map","val","length","shortType","substring","lastIndexOf","onChange","column","isValueShown","state","handleColumnChange","bind","handleSettingsCancel","handleSettingsClick","handleSettingsSave","handleBackgroundClick","handleDropdownKeyPress","handleValueChange","dropdownRef","createRef","disableCancel","componentDidUpdate","prevProps","prevState","isLoaded","sourceUpdated","includes","resetValue","focusInput","sendUpdate","componentWillUnmount","flush","event","target","debug2","parseInt","setState","allColumns","getCompatibleColumns","key","preventDefault","stopPropagation","valueIndex","error","showSettings","current","handleMouseEnter","onSourceMouseEnter","handleMouseLeave","onSourceMouseLeave","focus","clearFilter","setFilterState","render","disableLinking","isLinkerActive","onColumnSelected","settingsError","columnSelectionDisabled","isLinked","sourceButtonLabel","columnName","SOURCE_BUTTON_PLACEHOLDER","filterTitle","columnOptions","getColumnOptions","valueOptions","getValueOptions","selectedOption","getSelectedOptionIndex","disableSave","isFlipped","SOURCE_BUTTON_CLASS_NAME"],"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 ChangeEvent,\n Component,\n KeyboardEvent,\n MouseEvent,\n ReactElement,\n RefObject,\n} from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Button, CardFlip, SocketedButton } from '@deephaven/components';\nimport { vsGear } from '@deephaven/icons';\nimport { Column } from '@deephaven/jsapi-shim';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport memoizee from 'memoizee';\nimport memoize from 'memoize-one';\nimport debounce from 'lodash.debounce';\nimport Log from '@deephaven/log';\nimport './DropdownFilter.scss';\nimport { 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}\ninterface DropdownFilterProps {\n column: DropdownFilterColumn;\n columns: 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;\n values: (string | null)[];\n onChange: (change: {\n column: Partial<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}\n\nclass 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 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: DropdownFilterColumn[]) =>\n source\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: (string | null)[], value: string | null) => values.indexOf(value)\n );\n\n getValueOptions = memoize((values: (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}\n </option>\n )),\n ]);\n\n getItemLabel = memoizee((columns, index) => {\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(event: ChangeEvent<HTMLSelectElement>): void {\n const { value } = event.target;\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(event: ChangeEvent<HTMLSelectElement>): void {\n const { value: valueIndex } = event.target;\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 === -1) {\n log.debug2('Selected default item');\n } else if (index >= 0 && index < values.length) {\n value = values[index];\n } else {\n log.error('Invalid index', index, values);\n return;\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 handleMouseEnter(): void {\n const { onSourceMouseEnter } = this.props;\n onSourceMouseEnter();\n }\n\n handleMouseLeave(): void {\n const { onSourceMouseLeave } = this.props;\n onSourceMouseLeave();\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 if (this.dropdownRef.current !== null) {\n this.dropdownRef.current.focus();\n }\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 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({ column, value, isValueShown });\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 {\n column,\n disableCancel,\n isValueShown,\n selectedColumn,\n 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 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>Source Column</label>\n <SocketedButton\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>Filter Column</label>\n <select\n value={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 >\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={selectedOption}\n ref={this.dropdownRef}\n onChange={this.handleValueChange}\n onKeyPress={this.handleDropdownKeyPress}\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 type=\"button\"\n className=\"btn btn-link btn-link-icon m-2 px-2\"\n onClick={this.handleSettingsClick}\n >\n <FontAwesomeIcon icon={vsGear} transform=\"grow-4\" />\n </button>\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,"sources":["../../../src/controls/input-filter/InputFilter.tsx"],"names":["React","Component","CardFlip","FontAwesomeIcon","vsGear","memoizee","debounce","Log","log","module","UPDATE_DEBOUNCE","InputFilter","constructor","props","columns","index","name","type","length","shortType","substring","lastIndexOf","onChange","column","value","isValueShown","state","handleColumnChange","bind","handleInputKeyPress","handleValueChange","handleSettingsCancel","handleSettingsClick","handleSettingsSave","handleBackgroundClick","inputRef","createRef","selectedColumn","componentDidUpdate","prevProps","prevState","propColumn","setState","focusInput","sendUpdate","componentWillUnmount","flush","event","target","parseInt","debug2","undefined","key","preventDefault","stopPropagation","current","select","focus","clearFilter","setFilterState","update","render","inputLength","PLACEHOLDER","titleLabel","columnIndex","findIndex","item","getItemLabel","map","columnItem","width"],"mappings":"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","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 ChangeEvent,\n Component,\n RefObject,\n MouseEvent,\n KeyboardEvent,\n ReactElement,\n} from 'react';\nimport { CardFlip } from '@deephaven/components';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsGear } from '@deephaven/icons';\nimport { Column } from '@deephaven/jsapi-shim';\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<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 (isValueShown && isValueShown !== prevState.isValueShown) {\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, index) => {\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(event: ChangeEvent<HTMLSelectElement>): void {\n const { columns } = this.props;\n const { value } = event.target;\n const selectedColumn = columns[parseInt(value, 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={columns.findIndex(\n item =>\n item.name === selectedColumn?.name &&\n item.type === selectedColumn?.type\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 type=\"button\"\n className=\"btn btn-outline-primary\"\n onClick={this.handleSettingsCancel}\n disabled={column == null}\n >\n Cancel\n </button>\n <button\n type=\"button\"\n className=\"btn btn-primary 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 type=\"button\"\n className=\"btn btn-link btn-link-icon m-2 px-2\"\n onClick={this.handleSettingsClick}\n >\n <FontAwesomeIcon icon={vsGear} transform=\"grow-4\" />\n </button>\n </div>\n </div>\n </CardFlip>\n );\n }\n}\n\nexport default InputFilter;\n"],"file":"InputFilter.js"}
1
+ {"version":3,"file":"InputFilter.js","names":["React","Component","CardFlip","FontAwesomeIcon","vsGear","memoizee","debounce","Log","log","module","UPDATE_DEBOUNCE","InputFilter","constructor","props","columns","index","name","type","length","shortType","substring","lastIndexOf","onChange","column","value","isValueShown","state","handleColumnChange","bind","handleInputKeyPress","handleValueChange","handleSettingsCancel","handleSettingsClick","handleSettingsSave","handleBackgroundClick","inputRef","createRef","selectedColumn","componentDidUpdate","prevProps","prevState","propColumn","setState","focusInput","sendUpdate","componentWillUnmount","flush","event","target","parseInt","debug2","undefined","key","preventDefault","stopPropagation","current","select","focus","clearFilter","setFilterState","update","render","inputLength","PLACEHOLDER","titleLabel","columnIndex","findIndex","item","getItemLabel","map","columnItem","width"],"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 ChangeEvent,\n Component,\n RefObject,\n MouseEvent,\n KeyboardEvent,\n ReactElement,\n} from 'react';\nimport { CardFlip } from '@deephaven/components';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsGear } from '@deephaven/icons';\nimport { Column } from '@deephaven/jsapi-shim';\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<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 (isValueShown && isValueShown !== prevState.isValueShown) {\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, index) => {\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(event: ChangeEvent<HTMLSelectElement>): void {\n const { columns } = this.props;\n const { value } = event.target;\n const selectedColumn = columns[parseInt(value, 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={columns.findIndex(\n item =>\n item.name === selectedColumn?.name &&\n item.type === selectedColumn?.type\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 type=\"button\"\n className=\"btn btn-outline-primary\"\n onClick={this.handleSettingsCancel}\n disabled={column == null}\n >\n Cancel\n </button>\n <button\n type=\"button\"\n className=\"btn btn-primary 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 type=\"button\"\n className=\"btn btn-link btn-link-icon m-2 px-2\"\n onClick={this.handleSettingsClick}\n >\n <FontAwesomeIcon icon={vsGear} transform=\"grow-4\" />\n </button>\n </div>\n </div>\n </CardFlip>\n );\n }\n}\n\nexport default InputFilter;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/controls/markdown/MarkdownContainer.tsx"],"names":["React","PureComponent","classNames","FontAwesomeIcon","vsEdit","MarkdownContainer","render","isEditing","children","onDoubleClick","props","viewing"],"mappings":";;AAAA,OAAOA,KAAP,IAEEC,aAFF,QAKO,OALP;AAMA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SAASC,MAAT,QAAuB,kBAAvB;AAQA,eAAe,MAAMC,iBAAN,SAAgCJ,aAAhC,CAGb;AAKAK,EAAAA,MAAM,GAAiB;AACrB,QAAM;AAAEC,MAAAA,SAAF;AAAaC,MAAAA,QAAb;AAAuBC,MAAAA;AAAvB,QAAyC,KAAKC,KAApD;AAEA,wBACE;AACE,MAAA,SAAS,EAAC,uCADZ;AAEE,MAAA,aAAa,EAAED;AAFjB,oBAIE;AACE,MAAA,SAAS,EAAEP,UAAU,CAAC,YAAD,EAAe,WAAf,EAA4B;AAC/CS,QAAAA,OAAO,EAAE,CAACJ;AADqC,OAA5B;AADvB,oBAKE,wEACuB,oBAAC,eAAD;AAAiB,MAAA,IAAI,EAAEH;AAAvB,MADvB,CALF,CAJF,EAaGI,QAbH,CADF;AAiBD;;AAzBD;;gBAHmBH,iB,kBAIG;AACpBE,EAAAA,SAAS,EAAE;AADS,C","sourcesContent":["import React, {\n MouseEventHandler,\n PureComponent,\n ReactElement,\n ReactNode,\n} from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsEdit } from '@deephaven/icons';\n\ninterface MarkdownContainerProps {\n onDoubleClick: MouseEventHandler;\n children: ReactNode;\n isEditing?: boolean;\n}\n\nexport default class MarkdownContainer extends PureComponent<\n MarkdownContainerProps,\n Record<string, never>\n> {\n static defaultProps = {\n isEditing: false,\n };\n\n render(): ReactElement {\n const { isEditing, children, onDoubleClick } = this.props;\n\n return (\n <div\n className=\"markdown-editor-container h-100 w-100\"\n onDoubleClick={onDoubleClick}\n >\n <div\n className={classNames('text-muted', 'edit-hint', {\n viewing: !isEditing,\n })}\n >\n <span>\n double-click to edit <FontAwesomeIcon icon={vsEdit} />\n </span>\n </div>\n {children}\n </div>\n );\n }\n}\n"],"file":"MarkdownContainer.js"}
1
+ {"version":3,"file":"MarkdownContainer.js","names":["React","PureComponent","classNames","FontAwesomeIcon","vsEdit","MarkdownContainer","render","isEditing","children","onDoubleClick","props","viewing"],"sources":["../../../src/controls/markdown/MarkdownContainer.tsx"],"sourcesContent":["import React, {\n MouseEventHandler,\n PureComponent,\n ReactElement,\n ReactNode,\n} from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsEdit } from '@deephaven/icons';\n\ninterface MarkdownContainerProps {\n onDoubleClick: MouseEventHandler;\n children: ReactNode;\n isEditing?: boolean;\n}\n\nexport default class MarkdownContainer extends PureComponent<\n MarkdownContainerProps,\n Record<string, never>\n> {\n static defaultProps = {\n isEditing: false,\n };\n\n render(): ReactElement {\n const { isEditing, children, onDoubleClick } = this.props;\n\n return (\n <div\n className=\"markdown-editor-container h-100 w-100\"\n onDoubleClick={onDoubleClick}\n >\n <div\n className={classNames('text-muted', 'edit-hint', {\n viewing: !isEditing,\n })}\n >\n <span>\n double-click to edit <FontAwesomeIcon icon={vsEdit} />\n </span>\n </div>\n {children}\n </div>\n );\n }\n}\n"],"mappings":";;AAAA,OAAOA,KAAP,IAEEC,aAFF,QAKO,OALP;AAMA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SAASC,MAAT,QAAuB,kBAAvB;AAQA,eAAe,MAAMC,iBAAN,SAAgCJ,aAAhC,CAGb;EAKAK,MAAM,GAAiB;IACrB,IAAM;MAAEC,SAAF;MAAaC,QAAb;MAAuBC;IAAvB,IAAyC,KAAKC,KAApD;IAEA,oBACE;MACE,SAAS,EAAC,uCADZ;MAEE,aAAa,EAAED;IAFjB,gBAIE;MACE,SAAS,EAAEP,UAAU,CAAC,YAAD,EAAe,WAAf,EAA4B;QAC/CS,OAAO,EAAE,CAACJ;MADqC,CAA5B;IADvB,gBAKE,wEACuB,oBAAC,eAAD;MAAiB,IAAI,EAAEH;IAAvB,EADvB,CALF,CAJF,EAaGI,QAbH,CADF;EAiBD;;AAzBD;;gBAHmBH,iB,kBAIG;EACpBE,SAAS,EAAE;AADS,C"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/controls/markdown/MarkdownEditor.tsx"],"names":["React","PureComponent","Markdown","Code","Editor","MarkdownEditor","constructor","props","children","className","language","startsWith","substring","Children","map","child","trim","container","render","isEditing","content","onEditorInitialized","value","lineNumbers","code","renderMarkdown"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,aAAhB,QAAmD,OAAnD;AACA,OAAOC,QAAP,MAAqB,gBAArB;AAEA,SAASC,IAAT,EAAeC,MAAf,QAA6B,oBAA7B;AAQA,eAAe,MAAMC,cAAN,SAA6BJ,aAA7B,CAGb;AAMAK,EAAAA,WAAW,CAACC,MAAD,EAA6B;AACtC,UAAMA,MAAN;;AADsC;;AAAA,4CAORA,KAAK,IAAI;AACvC,UAAM;AAAEC,QAAAA,QAAF;AAAYC,QAAAA;AAAZ,UAA0BF,KAAhC;AACA,UAAMG,QAAQ,GAAGD,SAAS,SAAT,IAAAA,SAAS,WAAT,IAAAA,SAAS,CAAEE,UAAX,CAAsB,WAAtB,IACbF,SAAS,CAACG,SAAV,CAAoB,CAApB,CADa,GAEb,WAFJ;AAGA,0BACE,8CACE,+CACE,oBAAC,IAAD;AAAM,QAAA,QAAQ,EAAEF;AAAhB,SACGV,KAAK,CAACa,QAAN,CAAeC,GAAf,CAAmBN,QAAnB,EAA6BO,KAAK,IACjC,OAAOA,KAAP,KAAiB,QAAjB,GAA4BA,KAAK,CAACC,IAAN,EAA5B,GAA2CD,KAD5C,CADH,CADF,CADF,CADF;AAWD,KAvBuC;;AAEtC,SAAKE,SAAL,GAAiB,IAAjB;AACD;;AAsBDC,EAAAA,MAAM,GAAiB;AACrB,QAAM;AAAEC,MAAAA,SAAF;AAAaC,MAAAA,OAAb;AAAsBC,MAAAA;AAAtB,QAA8C,KAAKd,KAAzD;AACA,wBACE;AACE,MAAA,SAAS,EAAC,2BADZ;AAEE,MAAA,GAAG,EAAEU,SAAS,IAAI;AAChB,aAAKA,SAAL,GAAiBA,SAAjB;AACD;AAJH,OAMGE,SAAS,gBACR,oBAAC,MAAD;AACE,MAAA,QAAQ,EAAE;AACRT,QAAAA,QAAQ,EAAE,UADF;AAERY,QAAAA,KAAK,EAAEF,OAFC;AAGRG,QAAAA,WAAW,EAAE;AAHL,OADZ;AAME,MAAA,mBAAmB,EAAEF;AANvB,MADQ,gBAUR,oBAAC,QAAD;AAAU,MAAA,UAAU,EAAE;AAAEG,QAAAA,IAAI,EAAE,KAAKC;AAAb;AAAtB,OACGL,OADH,CAhBJ,CADF;AAuBD;;AAxDD;;gBAHmBf,c,kBAIG;AACpBc,EAAAA,SAAS,EAAE,KADS;AAEpBC,EAAAA,OAAO,EAAE;AAFW,C","sourcesContent":["import React, { PureComponent, ReactElement } from 'react';\nimport Markdown from 'react-markdown';\nimport { CodeComponent } from 'react-markdown/src/ast-to-react';\nimport { Code, Editor } from '@deephaven/console';\nimport type * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';\n\ninterface MarkdownEditorProps {\n isEditing: boolean;\n content: string;\n onEditorInitialized: (editor: monaco.editor.IStandaloneCodeEditor) => void;\n}\nexport default class MarkdownEditor extends PureComponent<\n MarkdownEditorProps,\n Record<string, never>\n> {\n static defaultProps = {\n isEditing: false,\n content: '',\n };\n\n constructor(props: MarkdownEditorProps) {\n super(props);\n this.container = null;\n }\n\n container: HTMLDivElement | null;\n\n renderMarkdown: CodeComponent = props => {\n const { children, className } = props;\n const language = className?.startsWith('language-')\n ? className.substring(9)\n : 'plaintext';\n return (\n <pre>\n <code>\n <Code language={language}>\n {React.Children.map(children, child =>\n typeof child === 'string' ? child.trim() : child\n )}\n </Code>\n </code>\n </pre>\n );\n };\n\n render(): ReactElement {\n const { isEditing, content, onEditorInitialized } = this.props;\n return (\n <div\n className=\"markdown-editor-container\"\n ref={container => {\n this.container = container;\n }}\n >\n {isEditing ? (\n <Editor\n settings={{\n language: 'markdown',\n value: content,\n lineNumbers: 'off',\n }}\n onEditorInitialized={onEditorInitialized}\n />\n ) : (\n <Markdown components={{ code: this.renderMarkdown }}>\n {content}\n </Markdown>\n )}\n </div>\n );\n }\n}\n"],"file":"MarkdownEditor.js"}
1
+ {"version":3,"file":"MarkdownEditor.js","names":["React","PureComponent","Markdown","Code","Editor","MarkdownEditor","constructor","props","children","className","language","startsWith","substring","Children","map","child","trim","container","render","isEditing","content","onEditorInitialized","value","lineNumbers","code","renderMarkdown"],"sources":["../../../src/controls/markdown/MarkdownEditor.tsx"],"sourcesContent":["import React, { PureComponent, ReactElement } from 'react';\nimport Markdown from 'react-markdown';\nimport { CodeComponent } from 'react-markdown/src/ast-to-react';\nimport { Code, Editor } from '@deephaven/console';\nimport type * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';\n\ninterface MarkdownEditorProps {\n isEditing: boolean;\n content: string;\n onEditorInitialized: (editor: monaco.editor.IStandaloneCodeEditor) => void;\n}\nexport default class MarkdownEditor extends PureComponent<\n MarkdownEditorProps,\n Record<string, never>\n> {\n static defaultProps = {\n isEditing: false,\n content: '',\n };\n\n constructor(props: MarkdownEditorProps) {\n super(props);\n this.container = null;\n }\n\n container: HTMLDivElement | null;\n\n renderMarkdown: CodeComponent = props => {\n const { children, className } = props;\n const language = className?.startsWith('language-')\n ? className.substring(9)\n : 'plaintext';\n return (\n <pre>\n <code>\n <Code language={language}>\n {React.Children.map(children, child =>\n typeof child === 'string' ? child.trim() : child\n )}\n </Code>\n </code>\n </pre>\n );\n };\n\n render(): ReactElement {\n const { isEditing, content, onEditorInitialized } = this.props;\n return (\n <div\n className=\"markdown-editor-container\"\n ref={container => {\n this.container = container;\n }}\n >\n {isEditing ? (\n <Editor\n settings={{\n language: 'markdown',\n value: content,\n lineNumbers: 'off',\n }}\n onEditorInitialized={onEditorInitialized}\n />\n ) : (\n <Markdown components={{ code: this.renderMarkdown }}>\n {content}\n </Markdown>\n )}\n </div>\n );\n }\n}\n"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,aAAhB,QAAmD,OAAnD;AACA,OAAOC,QAAP,MAAqB,gBAArB;AAEA,SAASC,IAAT,EAAeC,MAAf,QAA6B,oBAA7B;AAQA,eAAe,MAAMC,cAAN,SAA6BJ,aAA7B,CAGb;EAMAK,WAAW,CAACC,MAAD,EAA6B;IACtC,MAAMA,MAAN;;IADsC;;IAAA,wCAORA,KAAK,IAAI;MACvC,IAAM;QAAEC,QAAF;QAAYC;MAAZ,IAA0BF,KAAhC;MACA,IAAMG,QAAQ,GAAGD,SAAS,SAAT,IAAAA,SAAS,WAAT,IAAAA,SAAS,CAAEE,UAAX,CAAsB,WAAtB,IACbF,SAAS,CAACG,SAAV,CAAoB,CAApB,CADa,GAEb,WAFJ;MAGA,oBACE,8CACE,+CACE,oBAAC,IAAD;QAAM,QAAQ,EAAEF;MAAhB,GACGV,KAAK,CAACa,QAAN,CAAeC,GAAf,CAAmBN,QAAnB,EAA6BO,KAAK,IACjC,OAAOA,KAAP,KAAiB,QAAjB,GAA4BA,KAAK,CAACC,IAAN,EAA5B,GAA2CD,KAD5C,CADH,CADF,CADF,CADF;IAWD,CAvBuC;;IAEtC,KAAKE,SAAL,GAAiB,IAAjB;EACD;;EAsBDC,MAAM,GAAiB;IACrB,IAAM;MAAEC,SAAF;MAAaC,OAAb;MAAsBC;IAAtB,IAA8C,KAAKd,KAAzD;IACA,oBACE;MACE,SAAS,EAAC,2BADZ;MAEE,GAAG,EAAEU,SAAS,IAAI;QAChB,KAAKA,SAAL,GAAiBA,SAAjB;MACD;IAJH,GAMGE,SAAS,gBACR,oBAAC,MAAD;MACE,QAAQ,EAAE;QACRT,QAAQ,EAAE,UADF;QAERY,KAAK,EAAEF,OAFC;QAGRG,WAAW,EAAE;MAHL,CADZ;MAME,mBAAmB,EAAEF;IANvB,EADQ,gBAUR,oBAAC,QAAD;MAAU,UAAU,EAAE;QAAEG,IAAI,EAAE,KAAKC;MAAb;IAAtB,GACGL,OADH,CAhBJ,CADF;EAuBD;;AAxDD;;gBAHmBf,c,kBAIG;EACpBc,SAAS,EAAE,KADS;EAEpBC,OAAO,EAAE;AAFW,C"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/controls/markdown/MarkdownStartPage.tsx"],"names":["React","PureComponent","Modal","ModalBody","ModalFooter","ModalHeader","FontAwesomeIcon","vsTrash","Log","log","module","MarkdownStartPage","constructor","props","handleDeleteButtonClick","bind","handleDeleteModalClose","state","isDeleteModalShown","markdown","setState","toBeDeleted","undefined","handleDeleteMarkdown","debug","onDelete","render","closedMarkdowns","onOpen","onCreate","map","id","title"],"mappings":"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","sourcesContent":["import React, {\n Key,\n MouseEventHandler,\n PureComponent,\n ReactElement,\n} from 'react';\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n} from '@deephaven/components';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsTrash } from '@deephaven/icons';\n\nimport Log from '@deephaven/log';\nimport { ReactComponentConfig } from '@deephaven/golden-layout';\n\nconst log = Log.module('MarkdownStartPage');\n\ninterface MarkdownStartPageProps {\n closedMarkdowns: ReactComponentConfig[];\n onOpen: (markdown: ReactComponentConfig) => void;\n onCreate: MouseEventHandler<HTMLButtonElement>;\n onDelete: (markdown: ReactComponentConfig) => void;\n}\n\ninterface MarkdownStartPageState {\n isDeleteModalShown: boolean;\n toBeDeleted?: ReactComponentConfig;\n}\n\nclass MarkdownStartPage extends PureComponent<\n MarkdownStartPageProps,\n MarkdownStartPageState\n> {\n static defaultProps = {\n closedMarkdowns: [],\n onOpen: (): void => undefined,\n onCreate: (): void => undefined,\n onDelete: (): void => undefined,\n };\n\n constructor(props: MarkdownStartPageProps) {\n super(props);\n this.handleDeleteButtonClick = this.handleDeleteButtonClick.bind(this);\n this.handleDeleteModalClose = this.handleDeleteModalClose.bind(this);\n this.state = {\n isDeleteModalShown: false,\n };\n }\n\n handleDeleteButtonClick(markdown: ReactComponentConfig): void {\n this.setState({ isDeleteModalShown: true, toBeDeleted: markdown });\n }\n\n handleDeleteModalClose(): void {\n this.setState({ isDeleteModalShown: false, toBeDeleted: undefined });\n }\n\n handleDeleteMarkdown(markdown?: ReactComponentConfig): void {\n log.debug('delete markdown: ', markdown);\n\n if (markdown !== undefined) {\n const { onDelete } = this.props;\n onDelete(markdown);\n }\n\n this.setState({ isDeleteModalShown: false, toBeDeleted: undefined });\n }\n\n render(): ReactElement {\n const { closedMarkdowns, onOpen, onCreate } = this.props;\n const { isDeleteModalShown, toBeDeleted } = this.state;\n\n return (\n <div className=\"markdown-panel-start-page h-100 w-100\">\n <div className=\"markdown-panel-start-page-container\">\n <div className=\"markdown-panel-start-list\">\n <h3 className=\"list-title\">Start</h3>\n <div className=\"list-item\">\n <button\n className=\"btn btn-link title\"\n type=\"button\"\n onClick={onCreate}\n >\n New Markdown Note\n </button>\n </div>\n </div>\n <div className=\"markdown-panel-start-list\">\n <h3 className=\"list-title\">Recently Closed from Dashboard</h3>\n {closedMarkdowns.map(markdown => (\n <div className=\"list-item\" key={markdown.id as Key}>\n <button\n className=\"btn btn-link title\"\n type=\"button\"\n onClick={() => onOpen(markdown)}\n >\n {markdown.title}\n </button>\n <button\n className=\"btn-link icon\"\n type=\"button\"\n onClick={() => {\n this.handleDeleteButtonClick(markdown);\n }}\n >\n <FontAwesomeIcon icon={vsTrash} />\n </button>\n </div>\n ))}\n <Modal\n isOpen={isDeleteModalShown}\n toggle={this.handleDeleteModalClose}\n className=\"modal-dialog-centered markdown-delete-modal theme-bg-light\"\n >\n <ModalHeader>\n Are you sure you want to permanently delete this note?\n </ModalHeader>\n <ModalBody>You can&#39;t undo this action.</ModalBody>\n <ModalFooter>\n <button\n className=\"btn btn-outline-primary\"\n onClick={this.handleDeleteModalClose}\n type=\"button\"\n >\n Cancel\n </button>\n <button\n className=\"btn btn-danger\"\n onClick={() => {\n this.handleDeleteMarkdown(toBeDeleted);\n }}\n type=\"button\"\n >\n Delete\n </button>\n </ModalFooter>\n </Modal>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default MarkdownStartPage;\n"],"file":"MarkdownStartPage.js"}
1
+ {"version":3,"file":"MarkdownStartPage.js","names":["React","PureComponent","Modal","ModalBody","ModalFooter","ModalHeader","FontAwesomeIcon","vsTrash","Log","log","module","MarkdownStartPage","constructor","props","handleDeleteButtonClick","bind","handleDeleteModalClose","state","isDeleteModalShown","markdown","setState","toBeDeleted","undefined","handleDeleteMarkdown","debug","onDelete","render","closedMarkdowns","onOpen","onCreate","map","id","title"],"sources":["../../../src/controls/markdown/MarkdownStartPage.tsx"],"sourcesContent":["import React, {\n Key,\n MouseEventHandler,\n PureComponent,\n ReactElement,\n} from 'react';\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n} from '@deephaven/components';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsTrash } from '@deephaven/icons';\n\nimport Log from '@deephaven/log';\nimport { ReactComponentConfig } from '@deephaven/golden-layout';\n\nconst log = Log.module('MarkdownStartPage');\n\ninterface MarkdownStartPageProps {\n closedMarkdowns: ReactComponentConfig[];\n onOpen: (markdown: ReactComponentConfig) => void;\n onCreate: MouseEventHandler<HTMLButtonElement>;\n onDelete: (markdown: ReactComponentConfig) => void;\n}\n\ninterface MarkdownStartPageState {\n isDeleteModalShown: boolean;\n toBeDeleted?: ReactComponentConfig;\n}\n\nclass MarkdownStartPage extends PureComponent<\n MarkdownStartPageProps,\n MarkdownStartPageState\n> {\n static defaultProps = {\n closedMarkdowns: [],\n onOpen: (): void => undefined,\n onCreate: (): void => undefined,\n onDelete: (): void => undefined,\n };\n\n constructor(props: MarkdownStartPageProps) {\n super(props);\n this.handleDeleteButtonClick = this.handleDeleteButtonClick.bind(this);\n this.handleDeleteModalClose = this.handleDeleteModalClose.bind(this);\n this.state = {\n isDeleteModalShown: false,\n };\n }\n\n handleDeleteButtonClick(markdown: ReactComponentConfig): void {\n this.setState({ isDeleteModalShown: true, toBeDeleted: markdown });\n }\n\n handleDeleteModalClose(): void {\n this.setState({ isDeleteModalShown: false, toBeDeleted: undefined });\n }\n\n handleDeleteMarkdown(markdown?: ReactComponentConfig): void {\n log.debug('delete markdown: ', markdown);\n\n if (markdown !== undefined) {\n const { onDelete } = this.props;\n onDelete(markdown);\n }\n\n this.setState({ isDeleteModalShown: false, toBeDeleted: undefined });\n }\n\n render(): ReactElement {\n const { closedMarkdowns, onOpen, onCreate } = this.props;\n const { isDeleteModalShown, toBeDeleted } = this.state;\n\n return (\n <div className=\"markdown-panel-start-page h-100 w-100\">\n <div className=\"markdown-panel-start-page-container\">\n <div className=\"markdown-panel-start-list\">\n <h3 className=\"list-title\">Start</h3>\n <div className=\"list-item\">\n <button\n className=\"btn btn-link title\"\n type=\"button\"\n onClick={onCreate}\n >\n New Markdown Note\n </button>\n </div>\n </div>\n <div className=\"markdown-panel-start-list\">\n <h3 className=\"list-title\">Recently Closed from Dashboard</h3>\n {closedMarkdowns.map(markdown => (\n <div className=\"list-item\" key={markdown.id as Key}>\n <button\n className=\"btn btn-link title\"\n type=\"button\"\n onClick={() => onOpen(markdown)}\n >\n {markdown.title}\n </button>\n <button\n className=\"btn-link icon\"\n type=\"button\"\n onClick={() => {\n this.handleDeleteButtonClick(markdown);\n }}\n >\n <FontAwesomeIcon icon={vsTrash} />\n </button>\n </div>\n ))}\n <Modal\n isOpen={isDeleteModalShown}\n toggle={this.handleDeleteModalClose}\n className=\"modal-dialog-centered markdown-delete-modal theme-bg-light\"\n >\n <ModalHeader>\n Are you sure you want to permanently delete this note?\n </ModalHeader>\n <ModalBody>You can&#39;t undo this action.</ModalBody>\n <ModalFooter>\n <button\n className=\"btn btn-outline-primary\"\n onClick={this.handleDeleteModalClose}\n type=\"button\"\n >\n Cancel\n </button>\n <button\n className=\"btn btn-danger\"\n onClick={() => {\n this.handleDeleteMarkdown(toBeDeleted);\n }}\n type=\"button\"\n >\n Delete\n </button>\n </ModalFooter>\n </Modal>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default MarkdownStartPage;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/controls/markdown/MarkdownUtils.ts"],"names":["MarkdownUtils","getNewMarkdownTitle","usedTitles","title","DEFAULT_TITLE","titleIndex","indexOf"],"mappings":";;AAAA,MAAMA,aAAN,CAAoB;AAMlB;AACF;AACA;AACA;AACA;AAC4B,SAAnBC,mBAAmB,CAACC,UAAD,EAA+B;AACvD,QAAIC,KAAK,aAAMH,aAAa,CAACI,aAApB,CAAT;AACA,QAAIC,UAAU,GAAG,CAAjB;;AACA,WAAOH,UAAU,CAACI,OAAX,CAAmBH,KAAnB,KAA6B,CAApC,EAAuC;AACrCE,MAAAA,UAAU,IAAI,CAAd;AACAF,MAAAA,KAAK,aAAMH,aAAa,CAACI,aAApB,cAAqCC,UAArC,CAAL;AACD;;AAED,WAAOF,KAAP;AACD;;AApBiB;;gBAAdH,a,mBACmB,M;;gBADnBA,a,qBAIF,4E;;AAmBJ,eAAeA,aAAf","sourcesContent":["class MarkdownUtils {\n static DEFAULT_TITLE = 'Note';\n\n static DEFAULT_CONTENT =\n '# Markdown Note\\n\\nThis note can be edited using **markdown** for styling.';\n\n /**\n * Retrieves a new markdown title that does not conflict with the current titles\n * @param usedTitles Markdown titles that are already in use\n * @returns The new title\n */\n static getNewMarkdownTitle(usedTitles: string[]): string {\n let title = `${MarkdownUtils.DEFAULT_TITLE}`;\n let titleIndex = 0;\n while (usedTitles.indexOf(title) >= 0) {\n titleIndex += 1;\n title = `${MarkdownUtils.DEFAULT_TITLE}-${titleIndex}`;\n }\n\n return title;\n }\n}\n\nexport default MarkdownUtils;\n"],"file":"MarkdownUtils.js"}
1
+ {"version":3,"file":"MarkdownUtils.js","names":["MarkdownUtils","getNewMarkdownTitle","usedTitles","title","DEFAULT_TITLE","titleIndex","indexOf"],"sources":["../../../src/controls/markdown/MarkdownUtils.ts"],"sourcesContent":["class MarkdownUtils {\n static DEFAULT_TITLE = 'Note';\n\n static DEFAULT_CONTENT =\n '# Markdown Note\\n\\nThis note can be edited using **markdown** for styling.';\n\n /**\n * Retrieves a new markdown title that does not conflict with the current titles\n * @param usedTitles Markdown titles that are already in use\n * @returns The new title\n */\n static getNewMarkdownTitle(usedTitles: string[]): string {\n let title = `${MarkdownUtils.DEFAULT_TITLE}`;\n let titleIndex = 0;\n while (usedTitles.indexOf(title) >= 0) {\n titleIndex += 1;\n title = `${MarkdownUtils.DEFAULT_TITLE}-${titleIndex}`;\n }\n\n return title;\n }\n}\n\nexport default MarkdownUtils;\n"],"mappings":";;AAAA,MAAMA,aAAN,CAAoB;EAMlB;AACF;AACA;AACA;AACA;EAC4B,OAAnBC,mBAAmB,CAACC,UAAD,EAA+B;IACvD,IAAIC,KAAK,aAAMH,aAAa,CAACI,aAApB,CAAT;IACA,IAAIC,UAAU,GAAG,CAAjB;;IACA,OAAOH,UAAU,CAACI,OAAX,CAAmBH,KAAnB,KAA6B,CAApC,EAAuC;MACrCE,UAAU,IAAI,CAAd;MACAF,KAAK,aAAMH,aAAa,CAACI,aAApB,cAAqCC,UAArC,CAAL;IACD;;IAED,OAAOF,KAAP;EACD;;AApBiB;;gBAAdH,a,mBACmB,M;;gBADnBA,a,qBAIF,4E;;AAmBJ,eAAeA,aAAf"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/events/ChartEvent.ts"],"names":["ChartEvent"],"mappings":";;AAAA,MAAMA,UAAN,CAAiB;;gBAAXA,U,UAEU,iB;;gBAFVA,U,WAKW,kB;;gBALXA,U,qBAOqB,4B;;AAG3B,eAAeA,UAAf","sourcesContent":["class ChartEvent {\n /** @deprecated Use PanelEvent.OPEN instead */\n static OPEN = 'ChartEvent.OPEN';\n\n /** @deprecated Use PanelEvent.CLOSE instead */\n static CLOSE = 'ChartEvent.CLOSE';\n\n static COLUMN_SELECTED = 'ChartEvent.COLUMN_SELECTED';\n}\n\nexport default ChartEvent;\n"],"file":"ChartEvent.js"}
1
+ {"version":3,"file":"ChartEvent.js","names":["ChartEvent"],"sources":["../../src/events/ChartEvent.ts"],"sourcesContent":["class ChartEvent {\n /** @deprecated Use PanelEvent.OPEN instead */\n static OPEN = 'ChartEvent.OPEN';\n\n /** @deprecated Use PanelEvent.CLOSE instead */\n static CLOSE = 'ChartEvent.CLOSE';\n\n static COLUMN_SELECTED = 'ChartEvent.COLUMN_SELECTED';\n}\n\nexport default ChartEvent;\n"],"mappings":";;AAAA,MAAMA,UAAN,CAAiB;;gBAAXA,U,UAEU,iB;;gBAFVA,U,WAKW,kB;;gBALXA,U,qBAOqB,4B;;AAG3B,eAAeA,UAAf"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/events/ConsoleEvent.ts"],"names":["ConsoleEvent"],"mappings":";;AAAA,MAAMA,YAAN,CAAmB;;gBAAbA,Y,oBACoB,6B;;gBADpBA,Y,oBAGoB,6B;;gBAHpBA,Y,mBAKmB,4B;;gBALnBA,Y,kBAOkB,2B;;gBAPlBA,Y,sBASsB,+B;;AAG5B,eAAeA,YAAf","sourcesContent":["class ConsoleEvent {\n static SESSION_OPENED = 'ConsoleEvent.SESSION_OPENED';\n\n static SESSION_CLOSED = 'ConsoleEvent.SESSION_CLOSED';\n\n static FOCUS_HISTORY = 'ConsoleEvent.FOCUS_HISTORY';\n\n static SEND_COMMAND = 'ConsoleEvent.SEND_COMMAND';\n\n static SETTINGS_CHANGED = 'ConsoleEvent.SETTINGS_CHANGED';\n}\n\nexport default ConsoleEvent;\n"],"file":"ConsoleEvent.js"}
1
+ {"version":3,"file":"ConsoleEvent.js","names":["ConsoleEvent"],"sources":["../../src/events/ConsoleEvent.ts"],"sourcesContent":["class ConsoleEvent {\n static SESSION_OPENED = 'ConsoleEvent.SESSION_OPENED';\n\n static SESSION_CLOSED = 'ConsoleEvent.SESSION_CLOSED';\n\n static FOCUS_HISTORY = 'ConsoleEvent.FOCUS_HISTORY';\n\n static SEND_COMMAND = 'ConsoleEvent.SEND_COMMAND';\n\n static SETTINGS_CHANGED = 'ConsoleEvent.SETTINGS_CHANGED';\n}\n\nexport default ConsoleEvent;\n"],"mappings":";;AAAA,MAAMA,YAAN,CAAmB;;gBAAbA,Y,oBACoB,6B;;gBADpBA,Y,oBAGoB,6B;;gBAHpBA,Y,mBAKmB,4B;;gBALnBA,Y,kBAOkB,2B;;gBAPlBA,Y,sBASsB,+B;;AAG5B,eAAeA,YAAf"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/events/InputFilterEvent.ts"],"names":["InputFilterEvent"],"mappings":";;AAAA,MAAMA,gBAAN,CAAuB;;gBAAjBA,gB,mBAEmB,gC;;gBAFnBA,gB,qBAKqB,kC;;gBALrBA,gB,qBAQqB,kC;;gBARrBA,gB,uBAWuB,oC;;gBAXvBA,gB,qBAcqB,kC;;gBAdrBA,gB,mBAiBmB,gC;;gBAjBnBA,gB,gBAoBgB,6B;;gBApBhBA,gB,6BAuB6B,0C;;AAGnC,eAAeA,gBAAf","sourcesContent":["class InputFilterEvent {\n /** table object for a given panel has changed */\n static TABLE_CHANGED = 'InputFilterEvent.TABLE_CHANGED';\n\n /** columns list for a given panel has changed */\n static COLUMNS_CHANGED = 'InputFilterEvent.COLUMNS_CHANGED';\n\n /** The filter values from an filter panel have changed */\n static FILTERS_CHANGED = 'InputFilterEvent.FILTERS_CHANGED';\n\n /** Clear all the values in currently open filter panels */\n static CLEAR_ALL_FILTERS = 'InputFilterEvent.CLEAR_ALL_FILTERS';\n\n /** A column was selected from an input filter panel */\n static COLUMN_SELECTED = 'InputFilterEvent.COLUMN_SELECTED';\n\n /** Open a Dropdown filter panel */\n static OPEN_DROPDOWN = 'InputFilterEvent.OPEN_DROPDOWN';\n\n /** Open an input filter panel */\n static OPEN_INPUT = 'InputFilterEvent.OPEN_INPUT';\n\n /** Open a filter set manager panel */\n static OPEN_FILTER_SET_MANAGER = 'InputFilterEvent.OPEN_FILTER_SET_MANAGER';\n}\n\nexport default InputFilterEvent;\n"],"file":"InputFilterEvent.js"}
1
+ {"version":3,"file":"InputFilterEvent.js","names":["InputFilterEvent"],"sources":["../../src/events/InputFilterEvent.ts"],"sourcesContent":["class InputFilterEvent {\n /** table object for a given panel has changed */\n static TABLE_CHANGED = 'InputFilterEvent.TABLE_CHANGED';\n\n /** columns list for a given panel has changed */\n static COLUMNS_CHANGED = 'InputFilterEvent.COLUMNS_CHANGED';\n\n /** The filter values from an filter panel have changed */\n static FILTERS_CHANGED = 'InputFilterEvent.FILTERS_CHANGED';\n\n /** Clear all the values in currently open filter panels */\n static CLEAR_ALL_FILTERS = 'InputFilterEvent.CLEAR_ALL_FILTERS';\n\n /** A column was selected from an input filter panel */\n static COLUMN_SELECTED = 'InputFilterEvent.COLUMN_SELECTED';\n\n /** Open a Dropdown filter panel */\n static OPEN_DROPDOWN = 'InputFilterEvent.OPEN_DROPDOWN';\n\n /** Open an input filter panel */\n static OPEN_INPUT = 'InputFilterEvent.OPEN_INPUT';\n\n /** Open a filter set manager panel */\n static OPEN_FILTER_SET_MANAGER = 'InputFilterEvent.OPEN_FILTER_SET_MANAGER';\n}\n\nexport default InputFilterEvent;\n"],"mappings":";;AAAA,MAAMA,gBAAN,CAAuB;;gBAAjBA,gB,mBAEmB,gC;;gBAFnBA,gB,qBAKqB,kC;;gBALrBA,gB,qBAQqB,kC;;gBARrBA,gB,uBAWuB,oC;;gBAXvBA,gB,qBAcqB,kC;;gBAdrBA,gB,mBAiBmB,gC;;gBAjBnBA,gB,gBAoBgB,6B;;gBApBhBA,gB,6BAuB6B,0C;;AAGnC,eAAeA,gBAAf"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/events/IrisGridEvent.ts"],"names":["IrisGridEvent"],"mappings":";;AAAA,MAAMA,aAAN,CAAoB;;gBAAdA,a,eAEe,yB;;gBAFfA,a,gBAKgB,0B;;gBALhBA,a,mBAOmB,6B;;gBAPnBA,a,qBASqB,+B;;gBATrBA,a,mBAWmB,6B;;gBAXnBA,a,kBAakB,4B;;AAGxB,eAAeA,aAAf","sourcesContent":["class IrisGridEvent {\n /** @deprecated Use PanelEvent.OPEN instead */\n static OPEN_GRID = 'IrisGridEvent.OPEN_GRID';\n\n /** @deprecated Use PanelEvent.CLOSE instead */\n static CLOSE_GRID = 'IrisGridEvent.CLOSE_GRID';\n\n static DATA_SELECTED = 'IrisGridEvent.DATA_SELECTED';\n\n static COLUMN_SELECTED = 'IrisGridEvent.COLUMN_SELECTED';\n\n static STATE_CHANGED = 'IrisGridEvent.STATE_CHANGED';\n\n static CREATE_CHART = 'IrisGridevent.CREATE_CHART';\n}\n\nexport default IrisGridEvent;\n"],"file":"IrisGridEvent.js"}
1
+ {"version":3,"file":"IrisGridEvent.js","names":["IrisGridEvent"],"sources":["../../src/events/IrisGridEvent.ts"],"sourcesContent":["class IrisGridEvent {\n /** @deprecated Use PanelEvent.OPEN instead */\n static OPEN_GRID = 'IrisGridEvent.OPEN_GRID';\n\n /** @deprecated Use PanelEvent.CLOSE instead */\n static CLOSE_GRID = 'IrisGridEvent.CLOSE_GRID';\n\n static DATA_SELECTED = 'IrisGridEvent.DATA_SELECTED';\n\n static COLUMN_SELECTED = 'IrisGridEvent.COLUMN_SELECTED';\n\n static STATE_CHANGED = 'IrisGridEvent.STATE_CHANGED';\n\n static CREATE_CHART = 'IrisGridevent.CREATE_CHART';\n}\n\nexport default IrisGridEvent;\n"],"mappings":";;AAAA,MAAMA,aAAN,CAAoB;;gBAAdA,a,eAEe,yB;;gBAFfA,a,gBAKgB,0B;;gBALhBA,a,mBAOmB,6B;;gBAPnBA,a,qBASqB,+B;;gBATrBA,a,mBAWmB,6B;;gBAXnBA,a,kBAakB,4B;;AAGxB,eAAeA,aAAf"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/events/MarkdownEvent.ts"],"names":["Object","freeze","OPEN"],"mappings":"AAAA,eAAeA,MAAM,CAACC,MAAP,CAAc;AAAEC,EAAAA,IAAI,EAAE;AAAR,CAAd,CAAf","sourcesContent":["export default Object.freeze({ OPEN: 'MarkdownEvent.OPEN' });\n"],"file":"MarkdownEvent.js"}
1
+ {"version":3,"file":"MarkdownEvent.js","names":["Object","freeze","OPEN"],"sources":["../../src/events/MarkdownEvent.ts"],"sourcesContent":["export default Object.freeze({ OPEN: 'MarkdownEvent.OPEN' });\n"],"mappings":"AAAA,eAAeA,MAAM,CAACC,MAAP,CAAc;EAAEC,IAAI,EAAE;AAAR,CAAd,CAAf"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/events/NotebookEvent.ts"],"names":["NotebookEvent"],"mappings":";;AAAA,MAAMA,aAAN,CAAoB;;gBAAdA,a,qBACqB,8B;;gBADrBA,a,qBAGqB,8B;;gBAHrBA,a,gBAKgB,yB;;gBALhBA,a,YAOY,sB;;gBAPZA,a,iBASiB,0B;;gBATjBA,a,mBAWmB,4B;;gBAXnBA,a,sBAasB,8B;;gBAbtBA,a,qBAeqB,8B;;AAG3B,eAAeA,aAAf","sourcesContent":["class NotebookEvent {\n static CREATE_NOTEBOOK = 'NotebookEvent.createNotebook';\n\n static SELECT_NOTEBOOK = 'NotebookEvent.selectNotebook';\n\n static CLOSE_FILE = 'NotebookEvent.closeFile';\n\n static RENAME = 'NotebookEvent.rename';\n\n static RENAME_FILE = 'NotebookEvent.renameFile';\n\n static REGISTER_FILE = 'NotebookEvent.registerFile';\n\n static SEND_TO_NOTEBOOK = 'NotebookEvent.sendToNotebook';\n\n static UNREGISTER_FILE = 'NotebookEvent.unregisterFile';\n}\n\nexport default NotebookEvent;\n"],"file":"NotebookEvent.js"}
1
+ {"version":3,"file":"NotebookEvent.js","names":["NotebookEvent"],"sources":["../../src/events/NotebookEvent.ts"],"sourcesContent":["class NotebookEvent {\n static CREATE_NOTEBOOK = 'NotebookEvent.createNotebook';\n\n static SELECT_NOTEBOOK = 'NotebookEvent.selectNotebook';\n\n static CLOSE_FILE = 'NotebookEvent.closeFile';\n\n static RENAME = 'NotebookEvent.rename';\n\n static RENAME_FILE = 'NotebookEvent.renameFile';\n\n static REGISTER_FILE = 'NotebookEvent.registerFile';\n\n static SEND_TO_NOTEBOOK = 'NotebookEvent.sendToNotebook';\n\n static UNREGISTER_FILE = 'NotebookEvent.unregisterFile';\n}\n\nexport default NotebookEvent;\n"],"mappings":";;AAAA,MAAMA,aAAN,CAAoB;;gBAAdA,a,qBACqB,8B;;gBADrBA,a,qBAGqB,8B;;gBAHrBA,a,gBAKgB,yB;;gBALhBA,a,YAOY,sB;;gBAPZA,a,iBASiB,0B;;gBATjBA,a,mBAWmB,4B;;gBAXnBA,a,sBAasB,8B;;gBAbtBA,a,qBAeqB,8B;;AAG3B,eAAeA,aAAf"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/events/PQEvent.ts"],"names":["PQEvent"],"mappings":";;AAAA,MAAMA,OAAN,CAAc;;gBAARA,O,UACU,c;;gBADVA,O,WAGW,e;;gBAHXA,O,YAKY,gB;;AAGlB,eAAeA,OAAf","sourcesContent":["class PQEvent {\n static OPEN = 'PQEvent.open';\n\n static CLOSE = 'PQEvent.close';\n\n static RENAME = 'PQEvent.rename';\n}\n\nexport default PQEvent;\n"],"file":"PQEvent.js"}
1
+ {"version":3,"file":"PQEvent.js","names":["PQEvent"],"sources":["../../src/events/PQEvent.ts"],"sourcesContent":["class PQEvent {\n static OPEN = 'PQEvent.open';\n\n static CLOSE = 'PQEvent.close';\n\n static RENAME = 'PQEvent.rename';\n}\n\nexport default PQEvent;\n"],"mappings":";;AAAA,MAAMA,OAAN,CAAc;;gBAARA,O,UACU,c;;gBADVA,O,WAGW,e;;gBAHXA,O,YAKY,gB;;AAGlB,eAAeA,OAAf"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/events/PandasEvent.ts"],"names":["PandasEvent"],"mappings":";;AAAA,MAAMA,WAAN,CAAkB;;gBAAZA,W,UAEU,kB;;gBAFVA,W,WAKW,mB;;AAGjB,eAAeA,WAAf","sourcesContent":["class PandasEvent {\n /** @deprecated Use PanelEvent.OPEN */\n static OPEN = 'PandasEvent.OPEN';\n\n /** @deprecated Use PanelEvent.CLOSE */\n static CLOSE = 'PandasEvent.CLOSE';\n}\n\nexport default PandasEvent;\n"],"file":"PandasEvent.js"}
1
+ {"version":3,"file":"PandasEvent.js","names":["PandasEvent"],"sources":["../../src/events/PandasEvent.ts"],"sourcesContent":["class PandasEvent {\n /** @deprecated Use PanelEvent.OPEN */\n static OPEN = 'PandasEvent.OPEN';\n\n /** @deprecated Use PanelEvent.CLOSE */\n static CLOSE = 'PandasEvent.CLOSE';\n}\n\nexport default PandasEvent;\n"],"mappings":";;AAAA,MAAMA,WAAN,CAAkB;;gBAAZA,W,UAEU,kB;;gBAFVA,W,WAKW,mB;;AAGjB,eAAeA,WAAf"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/events/TabEvent.ts"],"names":["TabEvent"],"mappings":";;AAAA,MAAMA,QAAN,CAAe;;gBAATA,Q,WACW,gB;;gBADXA,Q,UAGU,e;;gBAHVA,Q,kBAKkB,uB;;gBALlBA,Q,iBAOiB,sB;;gBAPjBA,Q,YASY,iB;;gBATZA,Q,qBAWqB,0B;;AAG3B,eAAeA,QAAf","sourcesContent":["class TabEvent {\n static focus = 'TabEvent.focus';\n\n static blur = 'TabEvent.blur';\n\n static openPQObject = 'TabEvent.openPQObject';\n\n static openControl = 'TabEvent.openControl';\n\n static reload = 'TabEvent.reload';\n\n static clearAllFilters = 'TabEvent.clearAllFilters';\n}\n\nexport default TabEvent;\n"],"file":"TabEvent.js"}
1
+ {"version":3,"file":"TabEvent.js","names":["TabEvent"],"sources":["../../src/events/TabEvent.ts"],"sourcesContent":["class TabEvent {\n static focus = 'TabEvent.focus';\n\n static blur = 'TabEvent.blur';\n\n static openPQObject = 'TabEvent.openPQObject';\n\n static openControl = 'TabEvent.openControl';\n\n static reload = 'TabEvent.reload';\n\n static clearAllFilters = 'TabEvent.clearAllFilters';\n}\n\nexport default TabEvent;\n"],"mappings":";;AAAA,MAAMA,QAAN,CAAe;;gBAATA,Q,WACW,gB;;gBADXA,Q,UAGU,e;;gBAHVA,Q,kBAKkB,uB;;gBALlBA,Q,iBAOiB,sB;;gBAPjBA,Q,YASY,iB;;gBATZA,Q,qBAWqB,0B;;AAG3B,eAAeA,QAAf"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/events/index.ts"],"names":["default","ChartEvent","ConsoleEvent","InputFilterEvent","IrisGridEvent","MarkdownEvent","NotebookEvent","PandasEvent","TabEvent"],"mappings":"SAASA,OAAO,IAAIC,U;SACXD,OAAO,IAAIE,Y;SACXF,OAAO,IAAIG,gB;SACXH,OAAO,IAAII,a;SACXJ,OAAO,IAAIK,a;SACXL,OAAO,IAAIM,a;SACXN,OAAO,IAAIO,W;SACXP,OAAO,IAAIQ,Q","sourcesContent":["export { default as ChartEvent } from './ChartEvent';\nexport { default as ConsoleEvent } from './ConsoleEvent';\nexport { default as InputFilterEvent } from './InputFilterEvent';\nexport { default as IrisGridEvent } from './IrisGridEvent';\nexport { default as MarkdownEvent } from './MarkdownEvent';\nexport { default as NotebookEvent } from './NotebookEvent';\nexport { default as PandasEvent } from './PandasEvent';\nexport { default as TabEvent } from './TabEvent';\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["default","ChartEvent","ConsoleEvent","InputFilterEvent","IrisGridEvent","MarkdownEvent","NotebookEvent","PandasEvent","TabEvent"],"sources":["../../src/events/index.ts"],"sourcesContent":["export { default as ChartEvent } from './ChartEvent';\nexport { default as ConsoleEvent } from './ConsoleEvent';\nexport { default as InputFilterEvent } from './InputFilterEvent';\nexport { default as IrisGridEvent } from './IrisGridEvent';\nexport { default as MarkdownEvent } from './MarkdownEvent';\nexport { default as NotebookEvent } from './NotebookEvent';\nexport { default as PandasEvent } from './PandasEvent';\nexport { default as TabEvent } from './TabEvent';\n"],"mappings":"SAASA,OAAO,IAAIC,U;SACXD,OAAO,IAAIE,Y;SACXF,OAAO,IAAIG,gB;SACXH,OAAO,IAAII,a;SACXJ,OAAO,IAAIK,a;SACXL,OAAO,IAAIM,a;SACXN,OAAO,IAAIO,W;SACXP,OAAO,IAAIQ,Q"}
package/dist/index.d.ts CHANGED
@@ -14,4 +14,5 @@ export * from './events';
14
14
  export * from './panels';
15
15
  export * from './redux';
16
16
  export * from './prop-types';
17
+ export * from './linker';
17
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAExD,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAExD,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
package/dist/index.js CHANGED
@@ -13,4 +13,5 @@ export * from "./events/index.js";
13
13
  export * from "./panels/index.js";
14
14
  export * from "./redux/index.js";
15
15
  export * from "./prop-types/index.js";
16
+ export * from "./linker/index.js";
16
17
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["default","ChartPlugin","ChartBuilderPlugin","ConsolePlugin","FilterPlugin","GridPlugin","LinkerPlugin","MarkdownPlugin","PandasPlugin","ControlType","LinkerUtils","ToolType"],"mappings":"SAASA,OAAO,IAAIC,W;SACXD,OAAO,IAAIE,kB;SACXF,OAAO,IAAIG,a;SACXH,OAAO,IAAII,Y;SACXJ,OAAO,IAAIK,U;SACXL,OAAO,IAAIM,Y;SACXN,OAAO,IAAIO,c;SACXP,OAAO,IAAIQ,Y;SACXR,OAAO,IAAIS,W;SACXT,OAAO,IAAIU,W;SAEXV,OAAO,IAAIW,Q","sourcesContent":["export { default as ChartPlugin } from './ChartPlugin';\nexport { default as ChartBuilderPlugin } from './ChartBuilderPlugin';\nexport { default as ConsolePlugin } from './ConsolePlugin';\nexport { default as FilterPlugin } from './FilterPlugin';\nexport { default as GridPlugin } from './GridPlugin';\nexport { default as LinkerPlugin } from './LinkerPlugin';\nexport { default as MarkdownPlugin } from './MarkdownPlugin';\nexport { default as PandasPlugin } from './PandasPlugin';\nexport { default as ControlType } from './controls/ControlType';\nexport { default as LinkerUtils } from './linker/LinkerUtils';\nexport type { Link } from './linker/LinkerUtils';\nexport { default as ToolType } from './linker/ToolType';\n\nexport * from './events';\nexport * from './panels';\nexport * from './redux';\nexport * from './prop-types';\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["default","ChartPlugin","ChartBuilderPlugin","ConsolePlugin","FilterPlugin","GridPlugin","LinkerPlugin","MarkdownPlugin","PandasPlugin","ControlType","LinkerUtils","ToolType"],"sources":["../src/index.ts"],"sourcesContent":["export { default as ChartPlugin } from './ChartPlugin';\nexport { default as ChartBuilderPlugin } from './ChartBuilderPlugin';\nexport { default as ConsolePlugin } from './ConsolePlugin';\nexport { default as FilterPlugin } from './FilterPlugin';\nexport { default as GridPlugin } from './GridPlugin';\nexport { default as LinkerPlugin } from './LinkerPlugin';\nexport { default as MarkdownPlugin } from './MarkdownPlugin';\nexport { default as PandasPlugin } from './PandasPlugin';\nexport { default as ControlType } from './controls/ControlType';\nexport { default as LinkerUtils } from './linker/LinkerUtils';\nexport type { Link } from './linker/LinkerUtils';\nexport { default as ToolType } from './linker/ToolType';\n\nexport * from './events';\nexport * from './panels';\nexport * from './redux';\nexport * from './prop-types';\nexport * from './linker';\n"],"mappings":"SAASA,OAAO,IAAIC,W;SACXD,OAAO,IAAIE,kB;SACXF,OAAO,IAAIG,a;SACXH,OAAO,IAAII,Y;SACXJ,OAAO,IAAIK,U;SACXL,OAAO,IAAIM,Y;SACXN,OAAO,IAAIO,c;SACXP,OAAO,IAAIQ,Y;SACXR,OAAO,IAAIS,W;SACXT,OAAO,IAAIU,W;SAEXV,OAAO,IAAIW,Q"}
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"ColumnSelectionValidator.js"}
1
+ {"version":3,"file":"ColumnSelectionValidator.js","names":[],"sources":["../../src/linker/ColumnSelectionValidator.ts"],"sourcesContent":["import { PanelComponent } from '@deephaven/dashboard';\nimport { LinkColumn } from './LinkerUtils';\n\nexport type ColumnSelectionValidator = (\n panel: PanelComponent,\n tableColumn?: LinkColumn\n) => boolean;\n"],"mappings":""}