@deephaven/dashboard-core-plugins 0.50.1-beta.4 → 0.51.0
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.
- package/dist/ChartBuilderPlugin.js.map +1 -1
- package/dist/ChartPlugin.js +1 -1
- package/dist/ChartPlugin.js.map +1 -1
- package/dist/ConsolePlugin.js.map +1 -1
- package/dist/FilterPlugin.js.map +1 -1
- package/dist/GridPlugin.js.map +1 -1
- package/dist/LinkerPlugin.js.map +1 -1
- package/dist/MarkdownPlugin.js.map +1 -1
- package/dist/PandasPlugin.js.map +1 -1
- package/dist/WidgetLoaderPlugin.d.ts.map +1 -1
- package/dist/WidgetLoaderPlugin.js +1 -2
- package/dist/WidgetLoaderPlugin.js.map +1 -1
- package/dist/controls/ControlType.js.map +1 -1
- package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
- package/dist/controls/input-filter/InputFilter.js.map +1 -1
- package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
- package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
- package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
- package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
- package/dist/events/ChartEvent.js.map +1 -1
- package/dist/events/ConsoleEvent.js.map +1 -1
- package/dist/events/InputFilterEvent.js.map +1 -1
- package/dist/events/IrisGridEvent.js.map +1 -1
- package/dist/events/NotebookEvent.js.map +1 -1
- package/dist/events/PQEvent.js.map +1 -1
- package/dist/events/PandasEvent.js.map +1 -1
- package/dist/events/TabEvent.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/linker/Linker.js.map +1 -1
- package/dist/linker/LinkerLink.js.map +1 -1
- package/dist/linker/LinkerOverlayContent.js.map +1 -1
- package/dist/linker/LinkerUtils.js +1 -1
- package/dist/linker/LinkerUtils.js.map +1 -1
- package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
- package/dist/panels/ChartFilterOverlay.js.map +1 -1
- package/dist/panels/ChartPanel.js +3 -0
- package/dist/panels/ChartPanel.js.map +1 -1
- package/dist/panels/ChartPanelUtils.js.map +1 -1
- package/dist/panels/CommandHistoryPanel.js.map +1 -1
- package/dist/panels/ConsolePanel.d.ts +2 -2
- package/dist/panels/ConsolePanel.d.ts.map +1 -1
- package/dist/panels/ConsolePanel.js.map +1 -1
- package/dist/panels/DropdownFilterPanel.js.map +1 -1
- package/dist/panels/FileExplorerPanel.js.map +1 -1
- package/dist/panels/FilterSetManager.js.map +1 -1
- package/dist/panels/FilterSetManagerPanel.js.map +1 -1
- package/dist/panels/InputFilterPanel.js +0 -1
- package/dist/panels/InputFilterPanel.js.map +1 -1
- package/dist/panels/IrisGridPanel.js +4 -0
- package/dist/panels/IrisGridPanel.js.map +1 -1
- package/dist/panels/IrisGridPanelTooltip.js.map +1 -1
- package/dist/panels/IrisGridPanelTypes.js.map +1 -1
- package/dist/panels/LogPanel.js.map +1 -1
- package/dist/panels/MarkdownNotebook.js.map +1 -1
- package/dist/panels/MarkdownPanel.js.map +1 -1
- package/dist/panels/MockFileStorage.js.map +1 -1
- package/dist/panels/MockFileStorageTable.js.map +1 -1
- package/dist/panels/NotebookPanel.js.map +1 -1
- package/dist/panels/PandasPanel.js.map +1 -1
- package/dist/panels/Panel.js.map +1 -1
- package/dist/panels/PanelContextMenu.js.map +1 -1
- package/dist/panels/RenameDialog.js.map +1 -1
- package/dist/panels/WidgetPanel.js.map +1 -1
- package/dist/panels/WidgetPanelTooltip.js.map +1 -1
- package/dist/prop-types/CommonPropTypes.js.map +1 -1
- package/dist/redux/actions.js.map +1 -1
- package/dist/redux/selectors.js.map +1 -1
- package/dist/useHydrateGrid.d.ts.map +1 -1
- package/dist/useHydrateGrid.js +2 -1
- package/dist/useHydrateGrid.js.map +1 -1
- package/dist/useLoadTablePlugin.d.ts +8 -0
- package/dist/useLoadTablePlugin.d.ts.map +1 -0
- package/dist/useLoadTablePlugin.js +30 -0
- package/dist/useLoadTablePlugin.js.map +1 -0
- package/package.json +24 -24
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownFilter.js","names":["React","Component","FontAwesomeIcon","Button","CardFlip","SocketedButton","vsGear","TableUtils","memoizee","memoize","debounce","shortid","Log","log","module","UPDATE_DEBOUNCE","DropdownFilter","constructor","props","source","columns","filter","type","undefined","isCompatibleType","columnType","selectedColumn","selectedIndex","options","push","forEach","columnItem","index","getItemLabel","name","values","value","indexOf","PLACEHOLDER","map","val","length","shortType","substring","lastIndexOf","onChange","column","isValueShown","state","handleColumnChange","bind","handleSettingsCancel","handleSettingsClick","handleSettingsSave","handleBackgroundClick","handleDropdownKeyPress","handleValueChange","dropdownRef","createRef","id","disableCancel","componentDidUpdate","prevProps","prevState","isLoaded","sourceUpdated","includes","resetValue","focusInput","sendUpdate","componentWillUnmount","flush","event","target","debug2","parseInt","setState","allColumns","getCompatibleColumns","key","preventDefault","stopPropagation","valueIndex","showSettings","current","focus","clearFilter","setFilterState","oldValue","oldIsValueShown","render","disableLinking","isLinkerActive","onColumnSelected","onSourceMouseEnter","onSourceMouseLeave","settingsError","columnSelectionDisabled","isLinked","sourceButtonLabel","columnName","SOURCE_BUTTON_PLACEHOLDER","filterTitle","columnOptions","getColumnOptions","valueOptions","getValueOptions","selectedOption","getSelectedOptionIndex","disableSave","isFlipped","sourceColumnId","filterColumnId","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 type { Column } from '@deephaven/jsapi-types';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport memoizee from 'memoizee';\nimport memoize from 'memoize-one';\nimport debounce from 'lodash.debounce';\nimport shortid from 'shortid';\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}\n\nexport interface 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 | null;\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 id: string;\n}\n\nexport class DropdownFilter extends Component<\n DropdownFilterProps,\n DropdownFilterState\n> {\n static defaultProps = {\n column: null,\n disableLinking: false,\n isLinkerActive: false,\n isLoaded: false,\n isValueShown: false,\n\n settingsError: null,\n source: null,\n value: '',\n values: [],\n onColumnSelected: (): void => undefined,\n onSourceMouseEnter: (): void => undefined,\n onSourceMouseLeave: (): void => undefined,\n };\n\n static PLACEHOLDER = 'Select a value...';\n\n static SOURCE_BUTTON_CLASS_NAME = 'btn-dropdown-filter-selector';\n\n static SOURCE_BUTTON_PLACEHOLDER = 'Select a column';\n\n constructor(props: DropdownFilterProps) {\n super(props);\n\n this.handleColumnChange = this.handleColumnChange.bind(this);\n this.handleSettingsCancel = this.handleSettingsCancel.bind(this);\n this.handleSettingsClick = this.handleSettingsClick.bind(this);\n this.handleSettingsSave = this.handleSettingsSave.bind(this);\n this.handleBackgroundClick = this.handleBackgroundClick.bind(this);\n this.handleDropdownKeyPress = this.handleDropdownKeyPress.bind(this);\n this.handleValueChange = this.handleValueChange.bind(this);\n\n this.dropdownRef = React.createRef();\n\n const { column, isValueShown, value } = props;\n this.state = {\n column,\n id: shortid(),\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 != null\n ? columns.filter(\n ({ type }) =>\n type !== undefined &&\n TableUtils.isCompatibleType(type, source.columnType)\n )\n : []\n );\n\n getColumnOptions = memoize(\n (\n columns: DropdownFilterColumn[],\n selectedColumn: DropdownFilterColumn | null\n ): [JSX.Element[], number] => {\n let selectedIndex = -1;\n const options = [];\n options.push(\n <option key=\"placeholder\" value=\"-1\">\n Select a column\n </option>\n );\n columns.forEach((columnItem, index) => {\n options.push(\n <option key={`${columnItem.name}/${columnItem.type}`} value={index}>\n {this.getItemLabel(columns, index)}\n </option>\n );\n if (\n selectedColumn !== null &&\n columnItem.name === selectedColumn.name &&\n columnItem.type === selectedColumn.type\n ) {\n selectedIndex = index;\n }\n });\n return [options, selectedIndex];\n }\n );\n\n getSelectedOptionIndex = memoize(\n (values: (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 ?? '(null)'}\n </option>\n )),\n ]);\n\n getItemLabel = memoizee((columns: DropdownFilterColumn[], index: number) => {\n const { name, type } = columns[index];\n\n if (\n (index > 0 && columns[index - 1].name === name) ||\n (index < columns.length - 1 && columns[index + 1].name === name)\n ) {\n const shortType = type.substring(type.lastIndexOf('.') + 1);\n return `${name} (${shortType})`;\n }\n\n return name;\n });\n\n 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 >= 0 && index < values.length) {\n value = values[index];\n } else {\n log.debug2('Selected default item');\n }\n\n log.debug2('handleValueChange', value);\n\n this.setState({ value });\n }\n\n handleSettingsCancel(): void {\n this.setState(({ column }) => ({\n selectedColumn: column,\n isValueShown: true,\n }));\n }\n\n handleSettingsSave(): void {\n this.setState(({ column, selectedColumn, value }) => ({\n column: selectedColumn,\n // Reset value if column changed\n value: column === selectedColumn ? value : '',\n isValueShown: true,\n disableCancel: false,\n }));\n }\n\n handleSettingsClick(event: MouseEvent<HTMLButtonElement>): void {\n event.stopPropagation();\n this.showSettings();\n }\n\n handleBackgroundClick(event: MouseEvent<HTMLDivElement>): void {\n // allow clicking anywhere in the background to select and focus the input\n if (event.target !== this.dropdownRef.current) {\n this.focusInput();\n }\n }\n\n sourceUpdated(): void {\n this.setState({\n column: null,\n selectedColumn: null,\n isValueShown: false,\n disableCancel: true,\n value: '',\n });\n }\n\n showSettings(): void {\n const { column } = this.state;\n this.setState({ selectedColumn: column, isValueShown: false });\n }\n\n focusInput(): void {\n this.dropdownRef.current?.focus();\n }\n\n resetValue(): void {\n this.setState({ value: '' });\n }\n\n // Called by the parent component via ref\n clearFilter(): void {\n this.resetValue();\n }\n\n // Called by the parent component via ref\n setFilterState({\n name,\n type,\n value,\n isValueShown,\n }: {\n name?: string;\n type?: string;\n value?: string;\n isValueShown?: boolean;\n }): void {\n const column = name != null && type != null ? { name, type } : null;\n this.setState(({ value: oldValue, isValueShown: oldIsValueShown }) => ({\n column,\n value: value ?? oldValue,\n isValueShown: isValueShown ?? oldIsValueShown,\n }));\n }\n\n sendUpdate = debounce(() => {\n const { onChange } = this.props;\n const { column, value, isValueShown } = this.state;\n onChange({ column, isValueShown, value: value ?? undefined });\n }, UPDATE_DEBOUNCE);\n\n render(): ReactElement {\n const {\n columns: allColumns,\n disableLinking,\n isLinkerActive,\n isLoaded,\n source,\n onColumnSelected,\n onSourceMouseEnter,\n onSourceMouseLeave,\n values,\n settingsError,\n } = this.props;\n const { column, disableCancel, id, isValueShown, selectedColumn, value } =\n this.state;\n const columnSelectionDisabled = source === null;\n const columns = this.getCompatibleColumns(source, allColumns);\n const isLinked = source != null;\n const sourceButtonLabel =\n source?.columnName ?? DropdownFilter.SOURCE_BUTTON_PLACEHOLDER;\n const filterTitle = column != null ? `${column.name} Filter` : null;\n const [columnOptions, selectedIndex] = this.getColumnOptions(\n columns,\n selectedColumn\n );\n const valueOptions = this.getValueOptions(values);\n const selectedOption = this.getSelectedOptionIndex(values, value);\n const disableSave = !isLinked || selectedColumn == null;\n\n const isFlipped = isValueShown && !isLinkerActive;\n\n const sourceColumnId = `source-column-btn-${id}`;\n const filterColumnId = `filter-column-select-${id}`;\n\n return (\n <CardFlip\n className=\"dropdown-filter fill-parent-absolute\"\n isFlipped={isFlipped}\n >\n <div className=\"dropdown-filter-settings-card\">\n <div className=\"dropdown-filter-card-content\">\n <div className=\"dropdown-filter-settings-grid\">\n <label htmlFor={sourceColumnId}>Source Column</label>\n <SocketedButton\n id={sourceColumnId}\n isLinked={isLinked}\n onClick={onColumnSelected}\n onMouseEnter={onSourceMouseEnter}\n onMouseLeave={onSourceMouseLeave}\n className={DropdownFilter.SOURCE_BUTTON_CLASS_NAME}\n disabled={disableLinking}\n >\n {sourceButtonLabel}\n </SocketedButton>\n\n <div className=\"text-muted small\">\n Select a source column for the list by linking to a table.\n </div>\n\n <label htmlFor={filterColumnId}>Filter Column</label>\n <select\n id={filterColumnId}\n value={selectedIndex}\n className=\"custom-select\"\n onChange={this.handleColumnChange}\n disabled={columnSelectionDisabled}\n >\n {columnOptions}\n </select>\n <div className=\"text-muted small\">\n Dropdown filter control will apply its filter to all columns\n matching this name in this dashboard.\n </div>\n </div>\n {settingsError && (\n <div className=\"error-message text-center\">{settingsError}</div>\n )}\n {isLinked && (\n <div className=\"dropdown-filter-settings-buttons\">\n <Button\n kind=\"secondary\"\n type=\"button\"\n onClick={this.handleSettingsCancel}\n disabled={disableCancel || isValueShown || isLinkerActive}\n tooltip={\n isLinkerActive\n ? 'Cancel disabled while linker open'\n : undefined\n }\n >\n Cancel\n </Button>\n <Button\n kind=\"primary\"\n type=\"button\"\n className=\"ml-2\"\n onClick={this.handleSettingsSave}\n disabled={disableSave || isValueShown || isLinkerActive}\n tooltip={\n isLinkerActive\n ? 'Save disabled while linker open'\n : undefined\n }\n >\n Save\n </Button>\n </div>\n )}\n </div>\n </div>\n\n <div\n className=\"dropdown-filter-value-card\"\n onClick={this.handleBackgroundClick}\n data-testid=\"dropdown-filter-value-background\"\n >\n {isLoaded && (\n <>\n <div className=\"dropdown-filter-column\">\n <div className=\"dropdown-filter-column-title\">\n {filterTitle}\n </div>\n </div>\n <div className=\"dropdown-filter-card-content\">\n <div className=\"dropdown-filter-value-input d-flex flex-column justify-content-center\">\n <select\n className=\"custom-select\"\n value={selectedOption}\n ref={this.dropdownRef}\n onChange={this.handleValueChange}\n onKeyPress={this.handleDropdownKeyPress}\n title=\"Select Value\"\n >\n {valueOptions}\n </select>\n </div>\n {settingsError && (\n <div className=\"error-message mt-3 text-center\">\n {settingsError}\n </div>\n )}\n </div>\n <div className=\"dropdown-filter-menu\">\n <Button\n kind=\"ghost\"\n className=\"m-2 px-2\"\n onClick={this.handleSettingsClick}\n icon={<FontAwesomeIcon icon={vsGear} transform=\"grow-4\" />}\n tooltip=\"Dropdown Filter Settings\"\n />\n </div>\n </>\n )}\n </div>\n </CardFlip>\n );\n }\n}\n\nexport default DropdownFilter;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DropdownFilter.js","names":["React","Component","FontAwesomeIcon","Button","CardFlip","SocketedButton","vsGear","TableUtils","memoizee","memoize","debounce","shortid","Log","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","log","module","UPDATE_DEBOUNCE","DropdownFilter","constructor","props","_defineProperty","source","columns","filter","_ref","type","undefined","isCompatibleType","columnType","selectedColumn","selectedIndex","options","push","value","children","forEach","columnItem","index","getItemLabel","concat","name","values","indexOf","PLACEHOLDER","map","val","length","shortType","substring","lastIndexOf","onChange","column","isValueShown","state","handleColumnChange","bind","handleSettingsCancel","handleSettingsClick","handleSettingsSave","handleBackgroundClick","handleDropdownKeyPress","handleValueChange","dropdownRef","createRef","id","disableCancel","componentDidUpdate","prevProps","prevState","isLoaded","sourceUpdated","includes","resetValue","focusInput","sendUpdate","componentWillUnmount","flush","event","target","debug2","parseInt","setState","allColumns","getCompatibleColumns","key","preventDefault","stopPropagation","valueIndex","_ref2","_ref3","showSettings","current","_this$dropdownRef$cur","focus","clearFilter","setFilterState","_ref4","_ref5","oldValue","oldIsValueShown","render","_source$columnName","disableLinking","isLinkerActive","onColumnSelected","onSourceMouseEnter","onSourceMouseLeave","settingsError","columnSelectionDisabled","isLinked","sourceButtonLabel","columnName","SOURCE_BUTTON_PLACEHOLDER","filterTitle","columnOptions","getColumnOptions","valueOptions","getValueOptions","selectedOption","getSelectedOptionIndex","disableSave","isFlipped","sourceColumnId","filterColumnId","className","htmlFor","onClick","onMouseEnter","onMouseLeave","SOURCE_BUTTON_CLASS_NAME","disabled","kind","tooltip","ref","onKeyPress","title","icon","transform"],"sources":["../../../src/controls/dropdown-filter/DropdownFilter.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n// background click is just a convenience method, not an actual a11y issue\n\nimport React, {\n 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 type { Column } from '@deephaven/jsapi-types';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport memoizee from 'memoizee';\nimport memoize from 'memoize-one';\nimport debounce from 'lodash.debounce';\nimport shortid from 'shortid';\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}\n\nexport interface 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 | null;\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 id: string;\n}\n\nexport class DropdownFilter extends Component<\n DropdownFilterProps,\n DropdownFilterState\n> {\n static defaultProps = {\n column: null,\n disableLinking: false,\n isLinkerActive: false,\n isLoaded: false,\n isValueShown: false,\n\n settingsError: null,\n source: null,\n value: '',\n values: [],\n onColumnSelected: (): void => undefined,\n onSourceMouseEnter: (): void => undefined,\n onSourceMouseLeave: (): void => undefined,\n };\n\n static PLACEHOLDER = 'Select a value...';\n\n static SOURCE_BUTTON_CLASS_NAME = 'btn-dropdown-filter-selector';\n\n static SOURCE_BUTTON_PLACEHOLDER = 'Select a column';\n\n constructor(props: DropdownFilterProps) {\n super(props);\n\n this.handleColumnChange = this.handleColumnChange.bind(this);\n this.handleSettingsCancel = this.handleSettingsCancel.bind(this);\n this.handleSettingsClick = this.handleSettingsClick.bind(this);\n this.handleSettingsSave = this.handleSettingsSave.bind(this);\n this.handleBackgroundClick = this.handleBackgroundClick.bind(this);\n this.handleDropdownKeyPress = this.handleDropdownKeyPress.bind(this);\n this.handleValueChange = this.handleValueChange.bind(this);\n\n this.dropdownRef = React.createRef();\n\n const { column, isValueShown, value } = props;\n this.state = {\n column,\n id: shortid(),\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 != null\n ? columns.filter(\n ({ type }) =>\n type !== undefined &&\n TableUtils.isCompatibleType(type, source.columnType)\n )\n : []\n );\n\n getColumnOptions = memoize(\n (\n columns: DropdownFilterColumn[],\n selectedColumn: DropdownFilterColumn | null\n ): [JSX.Element[], number] => {\n let selectedIndex = -1;\n const options = [];\n options.push(\n <option key=\"placeholder\" value=\"-1\">\n Select a column\n </option>\n );\n columns.forEach((columnItem, index) => {\n options.push(\n <option key={`${columnItem.name}/${columnItem.type}`} value={index}>\n {this.getItemLabel(columns, index)}\n </option>\n );\n if (\n selectedColumn !== null &&\n columnItem.name === selectedColumn.name &&\n columnItem.type === selectedColumn.type\n ) {\n selectedIndex = index;\n }\n });\n return [options, selectedIndex];\n }\n );\n\n getSelectedOptionIndex = memoize(\n (values: (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 ?? '(null)'}\n </option>\n )),\n ]);\n\n getItemLabel = memoizee((columns: DropdownFilterColumn[], index: number) => {\n const { name, type } = columns[index];\n\n if (\n (index > 0 && columns[index - 1].name === name) ||\n (index < columns.length - 1 && columns[index + 1].name === name)\n ) {\n const shortType = type.substring(type.lastIndexOf('.') + 1);\n return `${name} (${shortType})`;\n }\n\n return name;\n });\n\n 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 >= 0 && index < values.length) {\n value = values[index];\n } else {\n log.debug2('Selected default item');\n }\n\n log.debug2('handleValueChange', value);\n\n this.setState({ value });\n }\n\n handleSettingsCancel(): void {\n this.setState(({ column }) => ({\n selectedColumn: column,\n isValueShown: true,\n }));\n }\n\n handleSettingsSave(): void {\n this.setState(({ column, selectedColumn, value }) => ({\n column: selectedColumn,\n // Reset value if column changed\n value: column === selectedColumn ? value : '',\n isValueShown: true,\n disableCancel: false,\n }));\n }\n\n handleSettingsClick(event: MouseEvent<HTMLButtonElement>): void {\n event.stopPropagation();\n this.showSettings();\n }\n\n handleBackgroundClick(event: MouseEvent<HTMLDivElement>): void {\n // allow clicking anywhere in the background to select and focus the input\n if (event.target !== this.dropdownRef.current) {\n this.focusInput();\n }\n }\n\n sourceUpdated(): void {\n this.setState({\n column: null,\n selectedColumn: null,\n isValueShown: false,\n disableCancel: true,\n value: '',\n });\n }\n\n showSettings(): void {\n const { column } = this.state;\n this.setState({ selectedColumn: column, isValueShown: false });\n }\n\n focusInput(): void {\n this.dropdownRef.current?.focus();\n }\n\n resetValue(): void {\n this.setState({ value: '' });\n }\n\n // Called by the parent component via ref\n clearFilter(): void {\n this.resetValue();\n }\n\n // Called by the parent component via ref\n setFilterState({\n name,\n type,\n value,\n isValueShown,\n }: {\n name?: string;\n type?: string;\n value?: string;\n isValueShown?: boolean;\n }): void {\n const column = name != null && type != null ? { name, type } : null;\n this.setState(({ value: oldValue, isValueShown: oldIsValueShown }) => ({\n column,\n value: value ?? oldValue,\n isValueShown: isValueShown ?? oldIsValueShown,\n }));\n }\n\n sendUpdate = debounce(() => {\n const { onChange } = this.props;\n const { column, value, isValueShown } = this.state;\n onChange({ column, isValueShown, value: value ?? undefined });\n }, UPDATE_DEBOUNCE);\n\n render(): ReactElement {\n const {\n columns: allColumns,\n disableLinking,\n isLinkerActive,\n isLoaded,\n source,\n onColumnSelected,\n onSourceMouseEnter,\n onSourceMouseLeave,\n values,\n settingsError,\n } = this.props;\n const { column, disableCancel, id, isValueShown, selectedColumn, value } =\n this.state;\n const columnSelectionDisabled = source === null;\n const columns = this.getCompatibleColumns(source, allColumns);\n const isLinked = source != null;\n const sourceButtonLabel =\n source?.columnName ?? DropdownFilter.SOURCE_BUTTON_PLACEHOLDER;\n const filterTitle = column != null ? `${column.name} Filter` : null;\n const [columnOptions, selectedIndex] = this.getColumnOptions(\n columns,\n selectedColumn\n );\n const valueOptions = this.getValueOptions(values);\n const selectedOption = this.getSelectedOptionIndex(values, value);\n const disableSave = !isLinked || selectedColumn == null;\n\n const isFlipped = isValueShown && !isLinkerActive;\n\n const sourceColumnId = `source-column-btn-${id}`;\n const filterColumnId = `filter-column-select-${id}`;\n\n return (\n <CardFlip\n className=\"dropdown-filter fill-parent-absolute\"\n isFlipped={isFlipped}\n >\n <div className=\"dropdown-filter-settings-card\">\n <div className=\"dropdown-filter-card-content\">\n <div className=\"dropdown-filter-settings-grid\">\n <label htmlFor={sourceColumnId}>Source Column</label>\n <SocketedButton\n id={sourceColumnId}\n isLinked={isLinked}\n onClick={onColumnSelected}\n onMouseEnter={onSourceMouseEnter}\n onMouseLeave={onSourceMouseLeave}\n className={DropdownFilter.SOURCE_BUTTON_CLASS_NAME}\n disabled={disableLinking}\n >\n {sourceButtonLabel}\n </SocketedButton>\n\n <div className=\"text-muted small\">\n Select a source column for the list by linking to a table.\n </div>\n\n <label htmlFor={filterColumnId}>Filter Column</label>\n <select\n id={filterColumnId}\n value={selectedIndex}\n className=\"custom-select\"\n onChange={this.handleColumnChange}\n disabled={columnSelectionDisabled}\n >\n {columnOptions}\n </select>\n <div className=\"text-muted small\">\n Dropdown filter control will apply its filter to all columns\n matching this name in this dashboard.\n </div>\n </div>\n {settingsError && (\n <div className=\"error-message text-center\">{settingsError}</div>\n )}\n {isLinked && (\n <div className=\"dropdown-filter-settings-buttons\">\n <Button\n kind=\"secondary\"\n type=\"button\"\n onClick={this.handleSettingsCancel}\n disabled={disableCancel || isValueShown || isLinkerActive}\n tooltip={\n isLinkerActive\n ? 'Cancel disabled while linker open'\n : undefined\n }\n >\n Cancel\n </Button>\n <Button\n kind=\"primary\"\n type=\"button\"\n className=\"ml-2\"\n onClick={this.handleSettingsSave}\n disabled={disableSave || isValueShown || isLinkerActive}\n tooltip={\n isLinkerActive\n ? 'Save disabled while linker open'\n : undefined\n }\n >\n Save\n </Button>\n </div>\n )}\n </div>\n </div>\n\n <div\n className=\"dropdown-filter-value-card\"\n onClick={this.handleBackgroundClick}\n data-testid=\"dropdown-filter-value-background\"\n >\n {isLoaded && (\n <>\n <div className=\"dropdown-filter-column\">\n <div className=\"dropdown-filter-column-title\">\n {filterTitle}\n </div>\n </div>\n <div className=\"dropdown-filter-card-content\">\n <div className=\"dropdown-filter-value-input d-flex flex-column justify-content-center\">\n <select\n className=\"custom-select\"\n value={selectedOption}\n ref={this.dropdownRef}\n onChange={this.handleValueChange}\n onKeyPress={this.handleDropdownKeyPress}\n title=\"Select Value\"\n >\n {valueOptions}\n </select>\n </div>\n {settingsError && (\n <div className=\"error-message mt-3 text-center\">\n {settingsError}\n </div>\n )}\n </div>\n <div className=\"dropdown-filter-menu\">\n <Button\n kind=\"ghost\"\n className=\"m-2 px-2\"\n onClick={this.handleSettingsClick}\n icon={<FontAwesomeIcon icon={vsGear} transform=\"grow-4\" />}\n tooltip=\"Dropdown Filter Settings\"\n />\n </div>\n </>\n )}\n </div>\n </CardFlip>\n );\n }\n}\n\nexport default DropdownFilter;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputFilter.js","names":["React","Component","Button","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","undefined","focusInput","sendUpdate","componentWillUnmount","flush","event","target","parseInt","debug2","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 { Button, CardFlip } from '@deephaven/components';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsGear } from '@deephaven/icons';\nimport type { Column } from '@deephaven/jsapi-types';\nimport memoizee from 'memoizee';\nimport debounce from 'lodash.debounce';\nimport Log from '@deephaven/log';\nimport './InputFilter.scss';\n\nconst log = Log.module('InputFilter');\nconst UPDATE_DEBOUNCE = 150;\n\nexport type InputFilterColumn = Pick<Column, 'type' | 'name'>;\n\ninterface InputFilterProps {\n columns: InputFilterColumn[];\n column: InputFilterColumn;\n isValueShown: boolean;\n value: string;\n onChange: (change: {\n column?: InputFilterColumn;\n isValueShown?: boolean;\n value?: string;\n }) => void;\n}\n\nexport interface InputFilterState {\n column?: InputFilterColumn;\n selectedColumn?: InputFilterColumn;\n value?: string;\n isValueShown?: boolean;\n}\n\nclass InputFilter extends Component<InputFilterProps, InputFilterState> {\n static PLACEHOLDER = 'Enter value...';\n\n static defaultProps = {\n column: null,\n isValueShown: false,\n value: null,\n };\n\n constructor(props: InputFilterProps) {\n super(props);\n\n this.handleColumnChange = this.handleColumnChange.bind(this);\n this.handleInputKeyPress = this.handleInputKeyPress.bind(this);\n this.handleValueChange = this.handleValueChange.bind(this);\n this.handleSettingsCancel = this.handleSettingsCancel.bind(this);\n this.handleSettingsClick = this.handleSettingsClick.bind(this);\n this.handleSettingsSave = this.handleSettingsSave.bind(this);\n this.handleBackgroundClick = this.handleBackgroundClick.bind(this);\n\n this.inputRef = React.createRef();\n\n const { column, isValueShown, value } = props;\n this.state = {\n column,\n selectedColumn: column,\n value,\n isValueShown,\n };\n }\n\n componentDidUpdate(\n prevProps: InputFilterProps,\n prevState: InputFilterState\n ): void {\n const { column: propColumn } = this.props;\n const { column, value, isValueShown } = this.state;\n\n if (propColumn !== prevProps.column) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ column: propColumn, selectedColumn: propColumn });\n }\n\n if (\n isValueShown !== undefined &&\n isValueShown &&\n isValueShown !== prevState.isValueShown\n ) {\n this.focusInput();\n }\n\n if (\n column !== prevState.column ||\n value !== prevState.value ||\n isValueShown !== prevState.isValueShown\n ) {\n this.sendUpdate();\n }\n }\n\n componentWillUnmount(): void {\n this.sendUpdate.flush();\n }\n\n inputRef: RefObject<HTMLInputElement>;\n\n getItemLabel = memoizee((columns: InputFilterColumn[], index: number) => {\n const { name, type } = columns[index];\n\n if (\n (index > 0 && columns[index - 1].name === name) ||\n (index < columns.length - 1 && columns[index + 1].name === name)\n ) {\n const shortType = type.substring(type.lastIndexOf('.') + 1);\n return `${name} (${shortType})`;\n }\n\n return name;\n });\n\n handleColumnChange(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 kind=\"secondary\"\n onClick={this.handleSettingsCancel}\n disabled={column == null}\n >\n Cancel\n </Button>\n <Button\n kind=\"primary\"\n className=\"ml-2\"\n onClick={this.handleSettingsSave}\n disabled={selectedColumn == null}\n >\n Save\n </Button>\n </div>\n </div>\n </div>\n\n <div\n className=\"input-filter-value-card\"\n onClick={this.handleBackgroundClick}\n >\n <div className=\"input-filter-column\">\n <div className=\"input-filter-column-title\">{titleLabel} Filter</div>\n </div>\n <div className=\"d-flex justify-content-center align-items-center h-100 w-100\">\n <div className=\"input-filter-value-input d-flex flex-column justify-content-center\">\n <input\n type=\"text\"\n ref={this.inputRef}\n placeholder={InputFilter.PLACEHOLDER}\n value={value ?? ''}\n onChange={this.handleValueChange}\n onKeyPress={this.handleInputKeyPress}\n style={{ width: `${inputLength + 3}ch` }}\n spellCheck=\"false\"\n />\n </div>\n </div>\n <div className=\"input-filter-menu\">\n <Button\n kind=\"ghost\"\n className=\"m-2 px-2\"\n onClick={this.handleSettingsClick}\n icon={<FontAwesomeIcon icon={vsGear} transform=\"grow-4\" />}\n tooltip=\"Input Filter Settings\"\n />\n </div>\n </div>\n </CardFlip>\n );\n }\n}\n\nexport default InputFilter;\n"],"mappings":";;;AAAA;AACA;AACA;;AAEA,OAAOA,KAAK,IAEVC,SAAS,QAKJ,OAAO;AACd,SAASC,MAAM,EAAEC,QAAQ,QAAQ,uBAAuB;AACxD,SAASC,eAAe,QAAQ,gCAAgC;AAChE,SAASC,MAAM,QAAQ,kBAAkB;AAEzC,OAAOC,QAAQ,MAAM,UAAU;AAC/B,OAAOC,QAAQ,MAAM,iBAAiB;AACtC,OAAOC,GAAG,MAAM,gBAAgB;AAAC;AAAA;AAAA;AAGjC,IAAMC,GAAG,GAAGD,GAAG,CAACE,MAAM,CAAC,aAAa,CAAC;AACrC,IAAMC,eAAe,GAAG,GAAG;AAuB3B,MAAMC,WAAW,SAASX,SAAS,CAAqC;EAStEY,WAAW,CAACC,KAAuB,EAAE;IACnC,KAAK,CAACA,KAAK,CAAC;IAAC;IAAA,sCAwDAR,QAAQ,CAAC,CAACS,OAA4B,EAAEC,KAAa,KAAK;MACvE,IAAM;QAAEC,IAAI;QAAEC;MAAK,CAAC,GAAGH,OAAO,CAACC,KAAK,CAAC;MAErC,IACGA,KAAK,GAAG,CAAC,IAAID,OAAO,CAACC,KAAK,GAAG,CAAC,CAAC,CAACC,IAAI,KAAKA,IAAI,IAC7CD,KAAK,GAAGD,OAAO,CAACI,MAAM,GAAG,CAAC,IAAIJ,OAAO,CAACC,KAAK,GAAG,CAAC,CAAC,CAACC,IAAI,KAAKA,IAAK,EAChE;QACA,IAAMG,SAAS,GAAGF,IAAI,CAACG,SAAS,CAACH,IAAI,CAACI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3D,iBAAUL,IAAI,eAAKG,SAAS;MAC9B;MAEA,OAAOH,IAAI;IACb,CAAC,CAAC;IAAA,oCAuFWV,QAAQ,CAAC,MAAM;MAC1B,IAAM;QAAEgB;MAAS,CAAC,GAAG,IAAI,CAACT,KAAK;MAC/B,IAAM;QAAEU,MAAM;QAAEC,KAAK;QAAEC;MAAa,CAAC,GAAG,IAAI,CAACC,KAAK;MAClDJ,QAAQ,CAAC;QAAEC,MAAM;QAAEE,YAAY;QAAED;MAAM,CAAC,CAAC;IAC3C,CAAC,EAAEd,eAAe,CAAC;IA7JjB,IAAI,CAACiB,kBAAkB,GAAG,IAAI,CAACA,kBAAkB,CAACC,IAAI,CAAC,IAAI,CAAC;IAC5D,IAAI,CAACC,mBAAmB,GAAG,IAAI,CAACA,mBAAmB,CAACD,IAAI,CAAC,IAAI,CAAC;IAC9D,IAAI,CAACE,iBAAiB,GAAG,IAAI,CAACA,iBAAiB,CAACF,IAAI,CAAC,IAAI,CAAC;IAC1D,IAAI,CAACG,oBAAoB,GAAG,IAAI,CAACA,oBAAoB,CAACH,IAAI,CAAC,IAAI,CAAC;IAChE,IAAI,CAACI,mBAAmB,GAAG,IAAI,CAACA,mBAAmB,CAACJ,IAAI,CAAC,IAAI,CAAC;IAC9D,IAAI,CAACK,kBAAkB,GAAG,IAAI,CAACA,kBAAkB,CAACL,IAAI,CAAC,IAAI,CAAC;IAC5D,IAAI,CAACM,qBAAqB,GAAG,IAAI,CAACA,qBAAqB,CAACN,IAAI,CAAC,IAAI,CAAC;IAElE,IAAI,CAACO,QAAQ,gBAAGpC,KAAK,CAACqC,SAAS,EAAE;IAEjC,IAAM;MAAEb,MAAM,EAANA,OAAM;MAAEE,YAAY,EAAZA,aAAY;MAAED,KAAK,EAALA;IAAM,CAAC,GAAGX,KAAK;IAC7C,IAAI,CAACa,KAAK,GAAG;MACXH,MAAM,EAANA,OAAM;MACNc,cAAc,EAAEd,OAAM;MACtBC,KAAK,EAALA,MAAK;MACLC,YAAY,EAAZA;IACF,CAAC;EACH;EAEAa,kBAAkB,CAChBC,SAA2B,EAC3BC,SAA2B,EACrB;IACN,IAAM;MAAEjB,MAAM,EAAEkB;IAAW,CAAC,GAAG,IAAI,CAAC5B,KAAK;IACzC,IAAM;MAAEU,MAAM;MAAEC,KAAK;MAAEC;IAAa,CAAC,GAAG,IAAI,CAACC,KAAK;IAElD,IAAIe,UAAU,KAAKF,SAAS,CAAChB,MAAM,EAAE;MACnC;MACA,IAAI,CAACmB,QAAQ,CAAC;QAAEnB,MAAM,EAAEkB,UAAU;QAAEJ,cAAc,EAAEI;MAAW,CAAC,CAAC;IACnE;IAEA,IACEhB,YAAY,KAAKkB,SAAS,IAC1BlB,YAAY,IACZA,YAAY,KAAKe,SAAS,CAACf,YAAY,EACvC;MACA,IAAI,CAACmB,UAAU,EAAE;IACnB;IAEA,IACErB,MAAM,KAAKiB,SAAS,CAACjB,MAAM,IAC3BC,KAAK,KAAKgB,SAAS,CAAChB,KAAK,IACzBC,YAAY,KAAKe,SAAS,CAACf,YAAY,EACvC;MACA,IAAI,CAACoB,UAAU,EAAE;IACnB;EACF;EAEAC,oBAAoB,GAAS;IAC3B,IAAI,CAACD,UAAU,CAACE,KAAK,EAAE;EACzB;EAkBApB,kBAAkB,CAACqB,KAAqC,EAAQ;IAC9D,IAAM;MAAElC;IAAQ,CAAC,GAAG,IAAI,CAACD,KAAK;IAC9B,IAAM;MAAEW;IAAM,CAAC,GAAGwB,KAAK,CAACC,MAAM;IAC9B,IAAMZ,cAAc,GAAGvB,OAAO,CAACoC,QAAQ,CAAC1B,KAAK,EAAE,EAAE,CAAC,CAAC;IAEnDhB,GAAG,CAAC2C,MAAM,CAAC,oBAAoB,EAAEd,cAAc,CAAC;IAEhD,IAAI,CAACK,QAAQ,CAAC;MAAEL,cAAc;MAAEb,KAAK,EAAEmB;IAAU,CAAC,CAAC;EACrD;EAEAd,mBAAmB,CAACmB,KAAsC,EAAQ;IAChE,IAAIA,KAAK,CAACI,GAAG,KAAK,OAAO,EAAE;MACzBJ,KAAK,CAACK,cAAc,EAAE;MACtBL,KAAK,CAACM,eAAe,EAAE;MACvB,IAAI,CAACZ,QAAQ,CACX;QAAA,IAAC;UAAElB;QAAM,CAAC;QAAA,OAAMA,KAAK,IAAI,IAAI,GAAG;UAAEA,KAAK,EAAE;QAAG,CAAC,GAAG,IAAI;MAAA,CAAC,EACrD,MAAM;QACJ,IAAI,CAACqB,UAAU,EAAE;QACjB,IAAI,CAACA,UAAU,CAACE,KAAK,EAAE;MACzB,CAAC,CACF;IACH;EACF;EAEAjB,iBAAiB,CAACkB,KAAoC,EAAQ;IAC5D,IAAM;MAAExB;IAAM,CAAC,GAAGwB,KAAK,CAACC,MAAM;IAE9BzC,GAAG,CAAC2C,MAAM,CAAC,mBAAmB,EAAE3B,KAAK,CAAC;IAEtC,IAAI,CAACkB,QAAQ,CAAC;MAAElB;IAAM,CAAC,CAAC;EAC1B;EAEAO,oBAAoB,GAAS;IAC3B,IAAM;MAAER;IAAO,CAAC,GAAG,IAAI,CAACG,KAAK;IAC7B,IAAI,CAACgB,QAAQ,CAAC;MAAEL,cAAc,EAAEd,MAAM;MAAEE,YAAY,EAAE;IAAK,CAAC,CAAC;EAC/D;EAEAQ,kBAAkB,GAAS;IACzB,IAAM;MAAEI;IAAe,CAAC,GAAG,IAAI,CAACX,KAAK;IACrC,IAAI,CAACgB,QAAQ,CAAC;MAAEnB,MAAM,EAAEc,cAAc;MAAEZ,YAAY,EAAE;IAAK,CAAC,CAAC;EAC/D;EAEAO,mBAAmB,CAACgB,KAAoC,EAAQ;IAC9D,IAAM;MAAEzB;IAAO,CAAC,GAAG,IAAI,CAACG,KAAK;IAC7B,IAAI,CAACgB,QAAQ,CAAC;MAAEL,cAAc,EAAEd,MAAM;MAAEE,YAAY,EAAE;IAAM,CAAC,CAAC;IAC9DuB,KAAK,CAACM,eAAe,EAAE;EACzB;EAEApB,qBAAqB,CAACc,KAAiC,EAAQ;IAC7D;IACA,IAAIA,KAAK,CAACC,MAAM,KAAK,IAAI,CAACd,QAAQ,CAACoB,OAAO,EAAE;MAC1C,IAAI,CAACX,UAAU,EAAE;IACnB;EACF;EAEAA,UAAU,GAAS;IACjB,IAAI,IAAI,CAACT,QAAQ,CAACoB,OAAO,KAAK,IAAI,EAAE;MAClC,IAAI,CAACpB,QAAQ,CAACoB,OAAO,CAACC,MAAM,EAAE;MAC9B,IAAI,CAACrB,QAAQ,CAACoB,OAAO,CAACE,KAAK,EAAE;IAC/B;EACF;EAEAC,WAAW,GAAS;IAClB,IAAI,CAAChB,QAAQ,CAAC;MAAElB,KAAK,EAAE;IAAG,CAAC,CAAC;EAC9B;EAEAmC,cAAc,QAUL;IAAA,IAVM;MACb3C,IAAI;MACJC,IAAI;MACJO,KAAK;MACLC;IAMF,CAAC;IACC,IAAMF,MAAM,GAAGP,IAAI,IAAI,IAAI,IAAIC,IAAI,IAAI,IAAI,GAAG;MAAED,IAAI;MAAEC;IAAK,CAAC,GAAG0B,SAAS;IACxE,IAAMiB,MAAM,GACVnC,YAAY,KAAKkB,SAAS,GACtB;MAAEpB,MAAM;MAAEC;IAAM,CAAC,GACjB;MAAED,MAAM;MAAEC,KAAK;MAAEC;IAAa,CAAC;IACrC,IAAI,CAACiB,QAAQ,CAACkB,MAAM,CAAC;EACvB;EAQAC,MAAM,GAAiB;IACrB,IAAM;MAAE/C;IAAQ,CAAC,GAAG,IAAI,CAACD,KAAK;IAC9B,IAAM;MAAEU,MAAM;MAAEE,YAAY;MAAEY,cAAc;MAAEb;IAAM,CAAC,GAAG,IAAI,CAACE,KAAK;IAClE,IAAMoC,WAAW,GACftC,KAAK,IAAI,IAAI,IAAIA,KAAK,CAACN,MAAM,KAAK,CAAC,GAC/BP,WAAW,CAACoD,WAAW,CAAC7C,MAAM,GAC9BM,KAAK,CAACN,MAAM;IAClB,IAAI8C,UAAU,GAAG,IAAI;IACrB,IAAIzC,MAAM,IAAI,IAAI,EAAE;MAClB,IAAM0C,WAAW,GAAGnD,OAAO,CAACoD,SAAS,CACnCC,IAAI,IAAIA,IAAI,CAACnD,IAAI,KAAKO,MAAM,CAACP,IAAI,IAAImD,IAAI,CAAClD,IAAI,KAAKM,MAAM,CAACN,IAAI,CAC/D;MACD+C,UAAU,GACRC,WAAW,IAAI,CAAC,GACZ,IAAI,CAACG,YAAY,CAACtD,OAAO,EAAEmD,WAAW,CAAC,GACvC1C,MAAM,CAACP,IAAI;IACnB;IAEA,oBACE,MAAC,QAAQ;MACP,SAAS,EAAC,mCAAmC;MAC7C,SAAS,EAAES,YAAY,aAAZA,YAAY,cAAZA,YAAY,GAAI,KAAM;MAAA,wBAEjC;QAAK,SAAS,EAAC,4BAA4B;QAAA,uBACzC;UAAK,SAAS,EAAC,+BAA+B;UAAA,wBAC5C;YAAK,SAAS,EAAC,4BAA4B;YAAA,wBACzC;cAAA,UAAO;YAAa,EAAQ,eAC5B;cACE,KAAK,EAAEX,OAAO,CAACoD,SAAS,CACtBC,IAAI,IACFA,IAAI,CAACnD,IAAI,MAAKqB,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAErB,IAAI,KAClCmD,IAAI,CAAClD,IAAI,MAAKoB,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEpB,IAAI,EACpC;cACF,SAAS,EAAC,eAAe;cACzB,QAAQ,EAAE,IAAI,CAACU,kBAAmB;cAAA,WAEjCb,OAAO,CAACuD,GAAG,CAAC,CAACC,UAAU,EAAEvD,KAAK,kBAC7B;gBAEE,KAAK,EAAEA,KAAM;gBAAA,UAEZ,IAAI,CAACqD,YAAY,CAACtD,OAAO,EAAEC,KAAK;cAAC,aAH1BuD,UAAU,CAACtD,IAAI,cAAIsD,UAAU,CAACrD,IAAI,EAK7C,CAAC,EACDH,OAAO,CAACI,MAAM,KAAK,CAAC,iBACnB;gBAAQ,KAAK,EAAC,IAAI;gBAAC,QAAQ;gBAAA,UAAC;cAE5B,EACD;YAAA,EACM,eACT;cAAK,SAAS,EAAC,kBAAkB;cAAA,UAAC;YAGlC,EAAM;UAAA,EACF,eACN;YAAK,SAAS,EAAC,+BAA+B;YAAA,wBAC5C,KAAC,MAAM;cACL,IAAI,EAAC,WAAW;cAChB,OAAO,EAAE,IAAI,CAACa,oBAAqB;cACnC,QAAQ,EAAER,MAAM,IAAI,IAAK;cAAA,UAC1B;YAED,EAAS,eACT,KAAC,MAAM;cACL,IAAI,EAAC,SAAS;cACd,SAAS,EAAC,MAAM;cAChB,OAAO,EAAE,IAAI,CAACU,kBAAmB;cACjC,QAAQ,EAAEI,cAAc,IAAI,IAAK;cAAA,UAClC;YAED,EAAS;UAAA,EACL;QAAA;MACF,EACF,eAEN;QACE,SAAS,EAAC,yBAAyB;QACnC,OAAO,EAAE,IAAI,CAACH,qBAAsB;QAAA,wBAEpC;UAAK,SAAS,EAAC,qBAAqB;UAAA,uBAClC;YAAK,SAAS,EAAC,2BAA2B;YAAA,WAAE8B,UAAU,EAAC,SAAO;UAAA;QAAM,EAChE,eACN;UAAK,SAAS,EAAC,8DAA8D;UAAA,uBAC3E;YAAK,SAAS,EAAC,oEAAoE;YAAA,uBACjF;cACE,IAAI,EAAC,MAAM;cACX,GAAG,EAAE,IAAI,CAAC7B,QAAS;cACnB,WAAW,EAAExB,WAAW,CAACoD,WAAY;cACrC,KAAK,EAAEvC,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAG;cACnB,QAAQ,EAAE,IAAI,CAACM,iBAAkB;cACjC,UAAU,EAAE,IAAI,CAACD,mBAAoB;cACrC,KAAK,EAAE;gBAAE0C,KAAK,YAAKT,WAAW,GAAG,CAAC;cAAK,CAAE;cACzC,UAAU,EAAC;YAAO;UAClB;QACE,EACF,eACN;UAAK,SAAS,EAAC,mBAAmB;UAAA,uBAChC,KAAC,MAAM;YACL,IAAI,EAAC,OAAO;YACZ,SAAS,EAAC,UAAU;YACpB,OAAO,EAAE,IAAI,CAAC9B,mBAAoB;YAClC,IAAI,eAAE,KAAC,eAAe;cAAC,IAAI,EAAE5B,MAAO;cAAC,SAAS,EAAC;YAAQ,EAAI;YAC3D,OAAO,EAAC;UAAuB;QAC/B,EACE;MAAA,EACF;IAAA,EACG;EAEf;AACF;AAAC,gBAxRKO,WAAW,iBACM,gBAAgB;AAAA,gBADjCA,WAAW,kBAGO;EACpBY,MAAM,EAAE,IAAI;EACZE,YAAY,EAAE,KAAK;EACnBD,KAAK,EAAE;AACT,CAAC;AAmRH,eAAeb,WAAW"}
|
|
1
|
+
{"version":3,"file":"InputFilter.js","names":["React","Component","Button","CardFlip","FontAwesomeIcon","vsGear","memoizee","debounce","Log","jsx","_jsx","jsxs","_jsxs","log","module","UPDATE_DEBOUNCE","InputFilter","constructor","props","_defineProperty","columns","index","name","type","length","shortType","substring","lastIndexOf","concat","onChange","column","value","isValueShown","state","handleColumnChange","bind","handleInputKeyPress","handleValueChange","handleSettingsCancel","handleSettingsClick","handleSettingsSave","handleBackgroundClick","inputRef","createRef","selectedColumn","componentDidUpdate","prevProps","prevState","propColumn","setState","undefined","focusInput","sendUpdate","componentWillUnmount","flush","event","target","parseInt","debug2","key","preventDefault","stopPropagation","_ref","current","select","focus","clearFilter","setFilterState","_ref2","update","render","inputLength","PLACEHOLDER","titleLabel","columnIndex","findIndex","item","getItemLabel","className","isFlipped","children","map","columnItem","disabled","kind","onClick","ref","placeholder","onKeyPress","style","width","spellCheck","icon","transform","tooltip"],"sources":["../../../src/controls/input-filter/InputFilter.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n// background click is just a convience method, not an actual a11y issue\n\nimport React, {\n ChangeEvent,\n Component,\n RefObject,\n MouseEvent,\n KeyboardEvent,\n ReactElement,\n} from 'react';\nimport { Button, CardFlip } from '@deephaven/components';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsGear } from '@deephaven/icons';\nimport type { Column } from '@deephaven/jsapi-types';\nimport memoizee from 'memoizee';\nimport debounce from 'lodash.debounce';\nimport Log from '@deephaven/log';\nimport './InputFilter.scss';\n\nconst log = Log.module('InputFilter');\nconst UPDATE_DEBOUNCE = 150;\n\nexport type InputFilterColumn = Pick<Column, 'type' | 'name'>;\n\ninterface InputFilterProps {\n columns: InputFilterColumn[];\n column: InputFilterColumn;\n isValueShown: boolean;\n value: string;\n onChange: (change: {\n column?: InputFilterColumn;\n isValueShown?: boolean;\n value?: string;\n }) => void;\n}\n\nexport interface InputFilterState {\n column?: InputFilterColumn;\n selectedColumn?: InputFilterColumn;\n value?: string;\n isValueShown?: boolean;\n}\n\nclass InputFilter extends Component<InputFilterProps, InputFilterState> {\n static PLACEHOLDER = 'Enter value...';\n\n static defaultProps = {\n column: null,\n isValueShown: false,\n value: null,\n };\n\n constructor(props: InputFilterProps) {\n super(props);\n\n this.handleColumnChange = this.handleColumnChange.bind(this);\n this.handleInputKeyPress = this.handleInputKeyPress.bind(this);\n this.handleValueChange = this.handleValueChange.bind(this);\n this.handleSettingsCancel = this.handleSettingsCancel.bind(this);\n this.handleSettingsClick = this.handleSettingsClick.bind(this);\n this.handleSettingsSave = this.handleSettingsSave.bind(this);\n this.handleBackgroundClick = this.handleBackgroundClick.bind(this);\n\n this.inputRef = React.createRef();\n\n const { column, isValueShown, value } = props;\n this.state = {\n column,\n selectedColumn: column,\n value,\n isValueShown,\n };\n }\n\n componentDidUpdate(\n prevProps: InputFilterProps,\n prevState: InputFilterState\n ): void {\n const { column: propColumn } = this.props;\n const { column, value, isValueShown } = this.state;\n\n if (propColumn !== prevProps.column) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ column: propColumn, selectedColumn: propColumn });\n }\n\n if (\n isValueShown !== undefined &&\n isValueShown &&\n isValueShown !== prevState.isValueShown\n ) {\n this.focusInput();\n }\n\n if (\n column !== prevState.column ||\n value !== prevState.value ||\n isValueShown !== prevState.isValueShown\n ) {\n this.sendUpdate();\n }\n }\n\n componentWillUnmount(): void {\n this.sendUpdate.flush();\n }\n\n inputRef: RefObject<HTMLInputElement>;\n\n getItemLabel = memoizee((columns: InputFilterColumn[], index: number) => {\n const { name, type } = columns[index];\n\n if (\n (index > 0 && columns[index - 1].name === name) ||\n (index < columns.length - 1 && columns[index + 1].name === name)\n ) {\n const shortType = type.substring(type.lastIndexOf('.') + 1);\n return `${name} (${shortType})`;\n }\n\n return name;\n });\n\n handleColumnChange(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 kind=\"secondary\"\n onClick={this.handleSettingsCancel}\n disabled={column == null}\n >\n Cancel\n </Button>\n <Button\n kind=\"primary\"\n className=\"ml-2\"\n onClick={this.handleSettingsSave}\n disabled={selectedColumn == null}\n >\n Save\n </Button>\n </div>\n </div>\n </div>\n\n <div\n className=\"input-filter-value-card\"\n onClick={this.handleBackgroundClick}\n >\n <div className=\"input-filter-column\">\n <div className=\"input-filter-column-title\">{titleLabel} Filter</div>\n </div>\n <div className=\"d-flex justify-content-center align-items-center h-100 w-100\">\n <div className=\"input-filter-value-input d-flex flex-column justify-content-center\">\n <input\n type=\"text\"\n ref={this.inputRef}\n placeholder={InputFilter.PLACEHOLDER}\n value={value ?? ''}\n onChange={this.handleValueChange}\n onKeyPress={this.handleInputKeyPress}\n style={{ width: `${inputLength + 3}ch` }}\n spellCheck=\"false\"\n />\n </div>\n </div>\n <div className=\"input-filter-menu\">\n <Button\n kind=\"ghost\"\n className=\"m-2 px-2\"\n onClick={this.handleSettingsClick}\n icon={<FontAwesomeIcon icon={vsGear} transform=\"grow-4\" />}\n tooltip=\"Input Filter Settings\"\n />\n </div>\n </div>\n </CardFlip>\n );\n }\n}\n\nexport default InputFilter;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownContainer.js","names":["React","PureComponent","classNames","FontAwesomeIcon","vsEdit","MarkdownContainer","render","isEditing","children","onDoubleClick","props","viewing","undefined"],"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 === undefined || !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,KAAK,IAEVC,aAAa,QAGR,OAAO;AACd,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,eAAe,QAAQ,gCAAgC;AAChE,SAASC,MAAM,QAAQ,kBAAkB;AAAC;AAAA;AAQ1C,eAAe,MAAMC,iBAAiB,
|
|
1
|
+
{"version":3,"file":"MarkdownContainer.js","names":["React","PureComponent","classNames","FontAwesomeIcon","vsEdit","jsx","_jsx","jsxs","_jsxs","MarkdownContainer","render","isEditing","children","onDoubleClick","props","className","viewing","undefined","icon","_defineProperty"],"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 === undefined || !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,KAAK,IAEVC,aAAa,QAGR,OAAO;AACd,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,eAAe,QAAQ,gCAAgC;AAChE,SAASC,MAAM,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAQ1C,eAAe,MAAMC,iBAAiB,SAASR,aAAa,CAG1D;EAKAS,MAAMA,CAAA,EAAiB;IACrB,IAAM;MAAEC,SAAS;MAAEC,QAAQ;MAAEC;IAAc,CAAC,GAAG,IAAI,CAACC,KAAK;IAEzD,oBACEN,KAAA;MACEO,SAAS,EAAC,uCAAuC;MACjDF,aAAa,EAAEA,aAAc;MAAAD,QAAA,gBAE7BN,IAAA;QACES,SAAS,EAAEb,UAAU,CAAC,YAAY,EAAE,WAAW,EAAE;UAC/Cc,OAAO,EAAEL,SAAS,KAAKM,SAAS,IAAI,CAACN;QACvC,CAAC,CAAE;QAAAC,QAAA,eAEHJ,KAAA;UAAAI,QAAA,GAAM,uBACiB,eAAAN,IAAA,CAACH,eAAe;YAACe,IAAI,EAAEd;UAAO,CAAE,CAAC;QAAA,CAClD;MAAC,CACJ,CAAC,EACLQ,QAAQ;IAAA,CACN,CAAC;EAEV;AACF;AAACO,eAAA,CA7BoBV,iBAAiB,kBAId;EACpBE,SAAS,EAAE;AACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownEditor.js","names":["React","PureComponent","Markdown","Code","Editor","renderMarkdown","props","children","className","language","undefined","startsWith","substring","Children","map","child","trim","MarkdownEditor","constructor","container","render","isEditing","content","onEditorInitialized","value","lineNumbers","code"],"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';\n\ninterface MarkdownEditorProps {\n isEditing: boolean;\n content: string;\n onEditorInitialized: (editor: monaco.editor.IStandaloneCodeEditor) => void;\n}\n\nconst renderMarkdown: CodeComponent = props => {\n const { children, className } = props;\n const language =\n className !== undefined && 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};\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 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: renderMarkdown }}>{content}</Markdown>\n )}\n </div>\n );\n }\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,aAAa,QAAsB,OAAO;AAC1D,OAAOC,QAAQ,MAAM,gBAAgB;AAErC,SAASC,IAAI,EAAEC,MAAM,QAAQ,oBAAoB;AAAC;AASlD,IAAMC,cAA6B,GAAGC,KAAK,IAAI;EAC7C,IAAM;IAAEC,QAAQ;IAAEC;EAAU,CAAC,GAAGF,KAAK;EACrC,IAAMG,QAAQ,GACZD,SAAS,KAAKE,SAAS,IAAIF,SAAS,aAATA,SAAS,eAATA,SAAS,CAAEG,UAAU,CAAC,WAAW,CAAC,GACzDH,SAAS,CAACI,SAAS,CAAC,CAAC,CAAC,GACtB,WAAW;EACjB,
|
|
1
|
+
{"version":3,"file":"MarkdownEditor.js","names":["React","PureComponent","Markdown","Code","Editor","jsx","_jsx","renderMarkdown","props","children","className","language","undefined","startsWith","substring","Children","map","child","trim","MarkdownEditor","constructor","_defineProperty","container","render","isEditing","content","onEditorInitialized","ref","settings","value","lineNumbers","components","code"],"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';\n\ninterface MarkdownEditorProps {\n isEditing: boolean;\n content: string;\n onEditorInitialized: (editor: monaco.editor.IStandaloneCodeEditor) => void;\n}\n\nconst renderMarkdown: CodeComponent = props => {\n const { children, className } = props;\n const language =\n className !== undefined && 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};\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 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: renderMarkdown }}>{content}</Markdown>\n )}\n </div>\n );\n }\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,aAAa,QAAsB,OAAO;AAC1D,OAAOC,QAAQ,MAAM,gBAAgB;AAErC,SAASC,IAAI,EAAEC,MAAM,QAAQ,oBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AASlD,IAAMC,cAA6B,GAAGC,KAAK,IAAI;EAC7C,IAAM;IAAEC,QAAQ;IAAEC;EAAU,CAAC,GAAGF,KAAK;EACrC,IAAMG,QAAQ,GACZD,SAAS,KAAKE,SAAS,IAAIF,SAAS,aAATA,SAAS,eAATA,SAAS,CAAEG,UAAU,CAAC,WAAW,CAAC,GACzDH,SAAS,CAACI,SAAS,CAAC,CAAC,CAAC,GACtB,WAAW;EACjB,oBACER,IAAA;IAAAG,QAAA,eACEH,IAAA;MAAAG,QAAA,eACEH,IAAA,CAACH,IAAI;QAACQ,QAAQ,EAAEA,QAAS;QAAAF,QAAA,EACtBT,KAAK,CAACe,QAAQ,CAACC,GAAG,CAACP,QAAQ,EAAEQ,KAAK,IACjC,OAAOA,KAAK,KAAK,QAAQ,GAAGA,KAAK,CAACC,IAAI,CAAC,CAAC,GAAGD,KAC7C;MAAC,CACG;IAAC,CACH;EAAC,CACJ,CAAC;AAEV,CAAC;AACD,eAAe,MAAME,cAAc,SAASlB,aAAa,CAGvD;EAMAmB,WAAWA,CAACZ,KAA0B,EAAE;IACtC,KAAK,CAACA,KAAK,CAAC;IAACa,eAAA;IACb,IAAI,CAACC,SAAS,GAAG,IAAI;EACvB;EAIAC,MAAMA,CAAA,EAAiB;IACrB,IAAM;MAAEC,SAAS;MAAEC,OAAO;MAAEC;IAAoB,CAAC,GAAG,IAAI,CAAClB,KAAK;IAC9D,oBACEF,IAAA;MACEI,SAAS,EAAC,2BAA2B;MACrCiB,GAAG,EAAEL,SAAS,IAAI;QAChB,IAAI,CAACA,SAAS,GAAGA,SAAS;MAC5B,CAAE;MAAAb,QAAA,EAEDe,SAAS,gBACRlB,IAAA,CAACF,MAAM;QACLwB,QAAQ,EAAE;UACRjB,QAAQ,EAAE,UAAU;UACpBkB,KAAK,EAAEJ,OAAO;UACdK,WAAW,EAAE;QACf,CAAE;QACFJ,mBAAmB,EAAEA;MAAoB,CAC1C,CAAC,gBAEFpB,IAAA,CAACJ,QAAQ;QAAC6B,UAAU,EAAE;UAAEC,IAAI,EAAEzB;QAAe,CAAE;QAAAE,QAAA,EAAEgB;MAAO,CAAW;IACpE,CACE,CAAC;EAEV;AACF;AAACJ,eAAA,CAxCoBF,cAAc,kBAIX;EACpBK,SAAS,EAAE,KAAK;EAChBC,OAAO,EAAE;AACX,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownStartPage.js","names":["React","PureComponent","Button","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","title","id"],"sources":["../../../src/controls/markdown/MarkdownStartPage.tsx"],"sourcesContent":["import React, {\n Key,\n MouseEventHandler,\n PureComponent,\n ReactElement,\n} from 'react';\nimport {\n Button,\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 type { 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 kind=\"ghost\" className=\"title\" onClick={onCreate}>\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 kind=\"ghost\"\n className=\"title\"\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't undo this action.</ModalBody>\n <ModalFooter>\n <Button kind=\"secondary\" onClick={this.handleDeleteModalClose}>\n Cancel\n </Button>\n <Button\n kind=\"danger\"\n onClick={() => {\n this.handleDeleteMarkdown(toBeDeleted);\n }}\n >\n Delete\n </Button>\n </ModalFooter>\n </Modal>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default MarkdownStartPage;\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAGVC,aAAa,QAER,OAAO;AACd,SACEC,MAAM,EACNC,KAAK,EACLC,SAAS,EACTC,WAAW,EACXC,WAAW,QACN,uBAAuB;AAC9B,SAASC,eAAe,QAAQ,gCAAgC;AAChE,SAASC,OAAO,QAAQ,kBAAkB;AAE1C,OAAOC,GAAG,MAAM,gBAAgB;AAAC;AAAA;AAGjC,IAAMC,GAAG,
|
|
1
|
+
{"version":3,"file":"MarkdownStartPage.js","names":["React","PureComponent","Button","Modal","ModalBody","ModalFooter","ModalHeader","FontAwesomeIcon","vsTrash","Log","jsx","_jsx","jsxs","_jsxs","log","module","MarkdownStartPage","constructor","props","handleDeleteButtonClick","bind","handleDeleteModalClose","state","isDeleteModalShown","markdown","setState","toBeDeleted","undefined","handleDeleteMarkdown","debug","onDelete","render","closedMarkdowns","onOpen","onCreate","className","children","kind","onClick","map","title","type","icon","id","isOpen","toggle","_defineProperty"],"sources":["../../../src/controls/markdown/MarkdownStartPage.tsx"],"sourcesContent":["import React, {\n Key,\n MouseEventHandler,\n PureComponent,\n ReactElement,\n} from 'react';\nimport {\n Button,\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 type { 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 kind=\"ghost\" className=\"title\" onClick={onCreate}>\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 kind=\"ghost\"\n className=\"title\"\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't undo this action.</ModalBody>\n <ModalFooter>\n <Button kind=\"secondary\" onClick={this.handleDeleteModalClose}>\n Cancel\n </Button>\n <Button\n kind=\"danger\"\n onClick={() => {\n this.handleDeleteMarkdown(toBeDeleted);\n }}\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,"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,aAAa,CAAC;EAMlB;AACF;AACA;AACA;AACA;EACE,OAAOC,
|
|
1
|
+
{"version":3,"file":"MarkdownUtils.js","names":["MarkdownUtils","getNewMarkdownTitle","usedTitles","title","concat","DEFAULT_TITLE","titleIndex","indexOf","_defineProperty"],"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,aAAa,CAAC;EAMlB;AACF;AACA;AACA;AACA;EACE,OAAOC,mBAAmBA,CAACC,UAAoB,EAAU;IACvD,IAAIC,KAAK,MAAAC,MAAA,CAAMJ,aAAa,CAACK,aAAa,CAAE;IAC5C,IAAIC,UAAU,GAAG,CAAC;IAClB,OAAOJ,UAAU,CAACK,OAAO,CAACJ,KAAK,CAAC,IAAI,CAAC,EAAE;MACrCG,UAAU,IAAI,CAAC;MACfH,KAAK,MAAAC,MAAA,CAAMJ,aAAa,CAACK,aAAa,OAAAD,MAAA,CAAIE,UAAU,CAAE;IACxD;IAEA,OAAOH,KAAK;EACd;AACF;AAACK,eAAA,CArBKR,aAAa,mBACM,MAAM;AAAAQ,eAAA,CADzBR,aAAa,qBAIf,4EAA4E;AAmBhF,eAAeA,aAAa"}
|
|
@@ -1 +1 @@
|
|
|
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,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"ChartEvent.js","names":["ChartEvent","_defineProperty"],"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,UAAU,CAAC;AAQhBC,eAAA,CARKD,UAAU,UAEA,iBAAiB;AAAAC,eAAA,CAF3BD,UAAU,WAKC,kBAAkB;AAAAC,eAAA,CAL7BD,UAAU,qBAOW,4BAA4B;AAGvD,eAAeA,UAAU"}
|
|
@@ -1 +1 @@
|
|
|
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,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ConsoleEvent.js","names":["ConsoleEvent","_defineProperty"],"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,YAAY,CAAC;AAUlBC,eAAA,CAVKD,YAAY,oBACQ,6BAA6B;AAAAC,eAAA,CADjDD,YAAY,oBAGQ,6BAA6B;AAAAC,eAAA,CAHjDD,YAAY,mBAKO,4BAA4B;AAAAC,eAAA,CAL/CD,YAAY,kBAOM,2BAA2B;AAAAC,eAAA,CAP7CD,YAAY,sBASU,+BAA+B;AAG3D,eAAeA,YAAY"}
|
|
@@ -1 +1 @@
|
|
|
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,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"InputFilterEvent.js","names":["InputFilterEvent","_defineProperty"],"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,gBAAgB,CAAC;AAwBtBC,eAAA,CAxBKD,gBAAgB,mBAEG,gCAAgC;AAAAC,eAAA,CAFnDD,gBAAgB,qBAKK,kCAAkC;AAAAC,eAAA,CALvDD,gBAAgB,qBAQK,kCAAkC;AAAAC,eAAA,CARvDD,gBAAgB,uBAWO,oCAAoC;AAAAC,eAAA,CAX3DD,gBAAgB,qBAcK,kCAAkC;AAAAC,eAAA,CAdvDD,gBAAgB,mBAiBG,gCAAgC;AAAAC,eAAA,CAjBnDD,gBAAgB,gBAoBA,6BAA6B;AAAAC,eAAA,CApB7CD,gBAAgB,6BAuBa,0CAA0C;AAG7E,eAAeA,gBAAgB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridEvent.js","names":["IrisGridEvent"],"sources":["../../src/events/IrisGridEvent.ts"],"sourcesContent":["import { RowDataMap } from '@deephaven/jsapi-utils';\nimport { IrisGridPanel } from '../panels/IrisGridPanel';\n\nexport type IrisGridDataSelectedEventCallback = (\n panel: IrisGridPanel,\n data: RowDataMap\n) => void;\n\nexport 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":";;;AAQA,OAAO,MAAMA,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"IrisGridEvent.js","names":["IrisGridEvent","_defineProperty"],"sources":["../../src/events/IrisGridEvent.ts"],"sourcesContent":["import { RowDataMap } from '@deephaven/jsapi-utils';\nimport { IrisGridPanel } from '../panels/IrisGridPanel';\n\nexport type IrisGridDataSelectedEventCallback = (\n panel: IrisGridPanel,\n data: RowDataMap\n) => void;\n\nexport 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":";;;AAQA,OAAO,MAAMA,aAAa,CAAC;AAc1BC,eAAA,CAdYD,aAAa,eAEL,yBAAyB;AAAAC,eAAA,CAFjCD,aAAa,gBAKJ,0BAA0B;AAAAC,eAAA,CALnCD,aAAa,mBAOD,6BAA6B;AAAAC,eAAA,CAPzCD,aAAa,qBASC,+BAA+B;AAAAC,eAAA,CAT7CD,aAAa,mBAWD,6BAA6B;AAAAC,eAAA,CAXzCD,aAAa,kBAaF,4BAA4B;AAGpD,eAAeA,aAAa"}
|
|
@@ -1 +1 @@
|
|
|
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 static PROMOTE_FROM_PREVIEW = 'NotebookEvent.promoteFromPreview';\n}\n\nexport default NotebookEvent;\n"],"mappings":";;;AAAA,MAAMA,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"NotebookEvent.js","names":["NotebookEvent","_defineProperty"],"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 static PROMOTE_FROM_PREVIEW = 'NotebookEvent.promoteFromPreview';\n}\n\nexport default NotebookEvent;\n"],"mappings":";;;AAAA,MAAMA,aAAa,CAAC;AAkBnBC,eAAA,CAlBKD,aAAa,qBACQ,8BAA8B;AAAAC,eAAA,CADnDD,aAAa,qBAGQ,8BAA8B;AAAAC,eAAA,CAHnDD,aAAa,gBAKG,yBAAyB;AAAAC,eAAA,CALzCD,aAAa,YAOD,sBAAsB;AAAAC,eAAA,CAPlCD,aAAa,iBASI,0BAA0B;AAAAC,eAAA,CAT3CD,aAAa,mBAWM,4BAA4B;AAAAC,eAAA,CAX/CD,aAAa,sBAaS,8BAA8B;AAAAC,eAAA,CAbpDD,aAAa,qBAeQ,8BAA8B;AAAAC,eAAA,CAfnDD,aAAa,0BAiBa,kCAAkC;AAGlE,eAAeA,aAAa"}
|
|
@@ -1 +1 @@
|
|
|
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,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"PQEvent.js","names":["PQEvent","_defineProperty"],"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,OAAO,CAAC;AAMbC,eAAA,CANKD,OAAO,UACG,cAAc;AAAAC,eAAA,CADxBD,OAAO,WAGI,eAAe;AAAAC,eAAA,CAH1BD,OAAO,YAKK,gBAAgB;AAGlC,eAAeA,OAAO"}
|
|
@@ -1 +1 @@
|
|
|
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,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"PandasEvent.js","names":["PandasEvent","_defineProperty"],"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,WAAW,CAAC;AAMjBC,eAAA,CANKD,WAAW,UAED,kBAAkB;AAAAC,eAAA,CAF5BD,WAAW,WAKA,mBAAmB;AAGpC,eAAeA,WAAW"}
|
|
@@ -1 +1 @@
|
|
|
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,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"TabEvent.js","names":["TabEvent","_defineProperty"],"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,QAAQ,CAAC;AAYdC,eAAA,CAZKD,QAAQ,WACG,gBAAgB;AAAAC,eAAA,CAD3BD,QAAQ,UAGE,eAAe;AAAAC,eAAA,CAHzBD,QAAQ,kBAKU,uBAAuB;AAAAC,eAAA,CALzCD,QAAQ,iBAOS,sBAAsB;AAAAC,eAAA,CAPvCD,QAAQ,YASI,iBAAiB;AAAAC,eAAA,CAT7BD,QAAQ,qBAWa,0BAA0B;AAGrD,eAAeA,QAAQ"}
|
package/dist/index.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export { default as ControlType } from './controls/ControlType';
|
|
|
19
19
|
export { default as LinkerUtils } from './linker/LinkerUtils';
|
|
20
20
|
export type { Link } from './linker/LinkerUtils';
|
|
21
21
|
export { default as ToolType } from './linker/ToolType';
|
|
22
|
+
export * from './useLoadTablePlugin';
|
|
22
23
|
export * from './events';
|
|
23
24
|
export * from './panels';
|
|
24
25
|
export * from './redux';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACjF,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;
|
|
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,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACjF,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;AACxD,cAAc,sBAAsB,CAAC;AAErC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -18,6 +18,7 @@ export { default as WidgetLoaderPluginConfig } from "./WidgetLoaderPluginConfig.
|
|
|
18
18
|
export { default as ControlType } from "./controls/ControlType.js";
|
|
19
19
|
export { default as LinkerUtils } from "./linker/LinkerUtils.js";
|
|
20
20
|
export { default as ToolType } from "./linker/ToolType.js";
|
|
21
|
+
export * from "./useLoadTablePlugin.js";
|
|
21
22
|
export * from "./events/index.js";
|
|
22
23
|
export * from "./panels/index.js";
|
|
23
24
|
export * from "./redux/index.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default","ChartPlugin","ChartPluginConfig","ChartBuilderPlugin","ChartBuilderPluginConfig","ConsolePlugin","FilterPlugin","FilterPluginConfig","GridPlugin","GridPluginConfig","LinkerPlugin","LinkerPluginConfig","MarkdownPlugin","MarkdownPluginConfig","PandasPlugin","PandasPluginConfig","WidgetLoaderPlugin","WidgetLoaderPluginConfig","ControlType","LinkerUtils","ToolType"],"sources":["../src/index.ts"],"sourcesContent":["export { default as ChartPlugin } from './ChartPlugin';\nexport { default as ChartPluginConfig } from './ChartPluginConfig';\nexport { default as ChartBuilderPlugin } from './ChartBuilderPlugin';\nexport { default as ChartBuilderPluginConfig } from './ChartBuilderPluginConfig';\nexport { default as ConsolePlugin } from './ConsolePlugin';\nexport { default as FilterPlugin } from './FilterPlugin';\nexport { default as FilterPluginConfig } from './FilterPluginConfig';\nexport { default as GridPlugin } from './GridPlugin';\nexport { default as GridPluginConfig } from './GridPluginConfig';\nexport { default as LinkerPlugin } from './LinkerPlugin';\nexport { default as LinkerPluginConfig } from './LinkerPluginConfig';\nexport { default as MarkdownPlugin } from './MarkdownPlugin';\nexport { default as MarkdownPluginConfig } from './MarkdownPluginConfig';\nexport { default as PandasPlugin } from './PandasPlugin';\nexport { default as PandasPluginConfig } from './PandasPluginConfig';\nexport { default as WidgetLoaderPlugin } from './WidgetLoaderPlugin';\nexport { default as WidgetLoaderPluginConfig } from './WidgetLoaderPluginConfig';\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,WAAW;AAAA,SACtBD,OAAO,IAAIE,iBAAiB;AAAA,SAC5BF,OAAO,IAAIG,kBAAkB;AAAA,SAC7BH,OAAO,IAAII,wBAAwB;AAAA,SACnCJ,OAAO,IAAIK,aAAa;AAAA,SACxBL,OAAO,IAAIM,YAAY;AAAA,SACvBN,OAAO,IAAIO,kBAAkB;AAAA,SAC7BP,OAAO,IAAIQ,UAAU;AAAA,SACrBR,OAAO,IAAIS,gBAAgB;AAAA,SAC3BT,OAAO,IAAIU,YAAY;AAAA,SACvBV,OAAO,IAAIW,kBAAkB;AAAA,SAC7BX,OAAO,IAAIY,cAAc;AAAA,SACzBZ,OAAO,IAAIa,oBAAoB;AAAA,SAC/Bb,OAAO,IAAIc,YAAY;AAAA,SACvBd,OAAO,IAAIe,kBAAkB;AAAA,SAC7Bf,OAAO,IAAIgB,kBAAkB;AAAA,SAC7BhB,OAAO,IAAIiB,wBAAwB;AAAA,SACnCjB,OAAO,IAAIkB,WAAW;AAAA,SACtBlB,OAAO,IAAImB,WAAW;AAAA,SAEtBnB,OAAO,IAAIoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","ChartPlugin","ChartPluginConfig","ChartBuilderPlugin","ChartBuilderPluginConfig","ConsolePlugin","FilterPlugin","FilterPluginConfig","GridPlugin","GridPluginConfig","LinkerPlugin","LinkerPluginConfig","MarkdownPlugin","MarkdownPluginConfig","PandasPlugin","PandasPluginConfig","WidgetLoaderPlugin","WidgetLoaderPluginConfig","ControlType","LinkerUtils","ToolType"],"sources":["../src/index.ts"],"sourcesContent":["export { default as ChartPlugin } from './ChartPlugin';\nexport { default as ChartPluginConfig } from './ChartPluginConfig';\nexport { default as ChartBuilderPlugin } from './ChartBuilderPlugin';\nexport { default as ChartBuilderPluginConfig } from './ChartBuilderPluginConfig';\nexport { default as ConsolePlugin } from './ConsolePlugin';\nexport { default as FilterPlugin } from './FilterPlugin';\nexport { default as FilterPluginConfig } from './FilterPluginConfig';\nexport { default as GridPlugin } from './GridPlugin';\nexport { default as GridPluginConfig } from './GridPluginConfig';\nexport { default as LinkerPlugin } from './LinkerPlugin';\nexport { default as LinkerPluginConfig } from './LinkerPluginConfig';\nexport { default as MarkdownPlugin } from './MarkdownPlugin';\nexport { default as MarkdownPluginConfig } from './MarkdownPluginConfig';\nexport { default as PandasPlugin } from './PandasPlugin';\nexport { default as PandasPluginConfig } from './PandasPluginConfig';\nexport { default as WidgetLoaderPlugin } from './WidgetLoaderPlugin';\nexport { default as WidgetLoaderPluginConfig } from './WidgetLoaderPluginConfig';\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';\nexport * from './useLoadTablePlugin';\n\nexport * from './events';\nexport * from './panels';\nexport * from './redux';\nexport * from './prop-types';\nexport * from './linker';\n"],"mappings":"SAASA,OAAO,IAAIC,WAAW;AAAA,SACtBD,OAAO,IAAIE,iBAAiB;AAAA,SAC5BF,OAAO,IAAIG,kBAAkB;AAAA,SAC7BH,OAAO,IAAII,wBAAwB;AAAA,SACnCJ,OAAO,IAAIK,aAAa;AAAA,SACxBL,OAAO,IAAIM,YAAY;AAAA,SACvBN,OAAO,IAAIO,kBAAkB;AAAA,SAC7BP,OAAO,IAAIQ,UAAU;AAAA,SACrBR,OAAO,IAAIS,gBAAgB;AAAA,SAC3BT,OAAO,IAAIU,YAAY;AAAA,SACvBV,OAAO,IAAIW,kBAAkB;AAAA,SAC7BX,OAAO,IAAIY,cAAc;AAAA,SACzBZ,OAAO,IAAIa,oBAAoB;AAAA,SAC/Bb,OAAO,IAAIc,YAAY;AAAA,SACvBd,OAAO,IAAIe,kBAAkB;AAAA,SAC7Bf,OAAO,IAAIgB,kBAAkB;AAAA,SAC7BhB,OAAO,IAAIiB,wBAAwB;AAAA,SACnCjB,OAAO,IAAIkB,WAAW;AAAA,SACtBlB,OAAO,IAAImB,WAAW;AAAA,SAEtBnB,OAAO,IAAIoB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA"}
|