@deephaven/dashboard-core-plugins 0.5.2-matplotlib.3 → 0.6.1-demo.8
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/{src/ChartPlugin.d.ts → ChartPlugin.d.ts} +0 -0
- package/dist/ChartPlugin.d.ts.map +1 -0
- package/dist/ChartPlugin.js +25 -22
- package/dist/ChartPlugin.js.map +1 -1
- package/dist/{src/ConsolePlugin.d.ts → ConsolePlugin.d.ts} +0 -0
- package/dist/ConsolePlugin.d.ts.map +1 -0
- package/dist/ConsolePlugin.js +141 -139
- package/dist/ConsolePlugin.js.map +1 -1
- package/dist/{src/FilterPlugin.d.ts → FilterPlugin.d.ts} +0 -0
- package/dist/FilterPlugin.d.ts.map +1 -0
- package/dist/FilterPlugin.js +114 -116
- package/dist/FilterPlugin.js.map +1 -1
- package/dist/{src/GridPlugin.d.ts → GridPlugin.d.ts} +0 -0
- package/dist/GridPlugin.d.ts.map +1 -0
- package/dist/GridPlugin.js +29 -26
- package/dist/GridPlugin.js.map +1 -1
- package/dist/{src/LinkerPlugin.d.ts → LinkerPlugin.d.ts} +0 -0
- package/dist/LinkerPlugin.d.ts.map +1 -0
- package/dist/LinkerPlugin.js +7 -5
- package/dist/LinkerPlugin.js.map +1 -1
- package/dist/{src/MarkdownPlugin.d.ts → MarkdownPlugin.d.ts} +0 -0
- package/dist/MarkdownPlugin.d.ts.map +1 -0
- package/dist/MarkdownPlugin.js +44 -45
- package/dist/MarkdownPlugin.js.map +1 -1
- package/dist/PandasPlugin.d.ts +8 -0
- package/dist/PandasPlugin.d.ts.map +1 -0
- package/dist/PandasPlugin.js +12 -12
- package/dist/PandasPlugin.js.map +1 -1
- package/dist/{src/controls → controls}/ControlType.d.ts +2 -0
- package/dist/controls/ControlType.d.ts.map +1 -0
- package/dist/controls/ControlType.js +5 -5
- package/dist/controls/ControlType.js.map +1 -1
- package/dist/{src/controls → controls}/dropdown-filter/DropdownFilter.d.ts +6 -0
- package/dist/controls/dropdown-filter/DropdownFilter.d.ts.map +1 -0
- package/dist/controls/dropdown-filter/DropdownFilter.js +356 -394
- package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
- package/dist/{src/controls → controls}/input-filter/InputFilter.d.ts +6 -0
- package/dist/controls/input-filter/InputFilter.d.ts.map +1 -0
- package/dist/controls/input-filter/InputFilter.js +256 -270
- package/dist/controls/input-filter/InputFilter.js.map +1 -1
- package/dist/{src/controls → controls}/markdown/MarkdownContainer.d.ts +0 -0
- package/dist/controls/markdown/MarkdownContainer.d.ts.map +1 -0
- package/dist/controls/markdown/MarkdownContainer.js +18 -56
- package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
- package/dist/{src/controls → controls}/markdown/MarkdownEditor.d.ts +0 -0
- package/dist/controls/markdown/MarkdownEditor.d.ts.map +1 -0
- package/dist/controls/markdown/MarkdownEditor.js +36 -75
- package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
- package/dist/{src/controls → controls}/markdown/MarkdownStartPage.d.ts +0 -0
- package/dist/controls/markdown/MarkdownStartPage.d.ts.map +1 -0
- package/dist/controls/markdown/MarkdownStartPage.js +93 -133
- package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
- package/dist/{src/controls → controls}/markdown/MarkdownUtils.d.ts +0 -0
- package/dist/controls/markdown/MarkdownUtils.d.ts.map +1 -0
- package/dist/controls/markdown/MarkdownUtils.js +17 -32
- package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
- package/dist/{src/events → events}/ChartEvent.d.ts +0 -0
- package/dist/events/ChartEvent.d.ts.map +1 -0
- package/dist/events/ChartEvent.js +1 -5
- package/dist/events/ChartEvent.js.map +1 -1
- package/dist/{src/events → events}/ConsoleEvent.d.ts +0 -0
- package/dist/events/ConsoleEvent.d.ts.map +1 -0
- package/dist/events/ConsoleEvent.js +1 -5
- package/dist/events/ConsoleEvent.js.map +1 -1
- package/dist/{src/events → events}/ControlEvent.d.ts +0 -0
- package/dist/events/ControlEvent.d.ts.map +1 -0
- package/dist/events/ControlEvent.js +1 -5
- package/dist/events/ControlEvent.js.map +1 -1
- package/dist/{src/events → events}/InputFilterEvent.d.ts +2 -0
- package/dist/events/InputFilterEvent.d.ts.map +1 -0
- package/dist/events/InputFilterEvent.js +3 -5
- package/dist/events/InputFilterEvent.js.map +1 -1
- package/dist/{src/events → events}/IrisGridEvent.d.ts +0 -0
- package/dist/events/IrisGridEvent.d.ts.map +1 -0
- package/dist/events/IrisGridEvent.js +1 -5
- package/dist/events/IrisGridEvent.js.map +1 -1
- package/dist/{src/events → events}/MarkdownEvent.d.ts +0 -0
- package/dist/events/MarkdownEvent.d.ts.map +1 -0
- package/dist/{src/events → events}/NotebookEvent.d.ts +0 -0
- package/dist/events/NotebookEvent.d.ts.map +1 -0
- package/dist/events/NotebookEvent.js +1 -5
- package/dist/events/NotebookEvent.js.map +1 -1
- package/dist/{src/events → events}/PQEvent.d.ts +0 -0
- package/dist/events/PQEvent.d.ts.map +1 -0
- package/dist/events/PQEvent.js +1 -5
- package/dist/events/PQEvent.js.map +1 -1
- package/dist/{src/events → events}/PandasEvent.d.ts +0 -0
- package/dist/events/PandasEvent.d.ts.map +1 -0
- package/dist/events/PandasEvent.js +1 -5
- package/dist/events/PandasEvent.js.map +1 -1
- package/dist/{src/events → events}/TabEvent.d.ts +0 -0
- package/dist/events/TabEvent.d.ts.map +1 -0
- package/dist/events/TabEvent.js +1 -5
- package/dist/events/TabEvent.js.map +1 -1
- package/dist/{dist/events → events}/index.d.ts +0 -1
- package/dist/{dist/events → events}/index.d.ts.map +1 -1
- package/dist/events/index.js +9 -10
- package/dist/events/index.js.map +1 -1
- package/dist/{src/index.d.ts → index.d.ts} +0 -1
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -11
- package/dist/index.js.map +1 -1
- package/dist/{src/linker → linker}/Linker.d.ts +1 -1
- package/dist/linker/Linker.d.ts.map +1 -0
- package/dist/linker/Linker.js +594 -606
- package/dist/linker/Linker.js.map +1 -1
- package/dist/{src/linker → linker}/LinkerLink.d.ts +0 -0
- package/dist/linker/LinkerLink.d.ts.map +1 -0
- package/dist/linker/LinkerLink.js +92 -126
- package/dist/linker/LinkerLink.js.map +1 -1
- package/dist/{src/linker → linker}/LinkerOverlayContent.d.ts +0 -0
- package/dist/linker/LinkerOverlayContent.d.ts.map +1 -0
- package/dist/linker/LinkerOverlayContent.js +162 -220
- package/dist/linker/LinkerOverlayContent.js.map +1 -1
- package/dist/{src/linker → linker}/LinkerUtils.d.ts +0 -0
- package/dist/linker/LinkerUtils.d.ts.map +1 -0
- package/dist/linker/LinkerUtils.js +105 -114
- package/dist/linker/LinkerUtils.js.map +1 -1
- package/dist/{src/linker → linker}/ToolType.d.ts +0 -0
- package/dist/{src/linker → linker}/ToolType.d.ts.map +1 -1
- package/dist/{src/panels → panels}/ChartColumnSelectorOverlay.d.ts +0 -0
- package/dist/panels/ChartColumnSelectorOverlay.d.ts.map +1 -0
- package/dist/panels/ChartColumnSelectorOverlay.js +19 -25
- package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
- package/dist/{src/panels → panels}/ChartFilterOverlay.d.ts +0 -0
- package/dist/panels/ChartFilterOverlay.d.ts.map +1 -0
- package/dist/panels/ChartFilterOverlay.js +18 -24
- package/dist/panels/ChartFilterOverlay.js.map +1 -1
- package/dist/{src/panels → panels}/ChartPanel.d.ts +3 -0
- package/dist/panels/ChartPanel.d.ts.map +1 -0
- package/dist/panels/ChartPanel.js +839 -873
- package/dist/panels/ChartPanel.js.map +1 -1
- package/dist/{src/panels → panels}/CommandHistoryPanel.d.ts +0 -0
- package/dist/panels/CommandHistoryPanel.d.ts.map +1 -0
- package/dist/panels/CommandHistoryPanel.js +160 -186
- package/dist/panels/CommandHistoryPanel.js.map +1 -1
- package/dist/{src/panels → panels}/ConsolePanel.d.ts +1 -1
- package/dist/panels/ConsolePanel.d.ts.map +1 -0
- package/dist/panels/ConsolePanel.js +327 -374
- package/dist/panels/ConsolePanel.js.map +1 -1
- package/dist/{src/panels → panels}/DropdownFilterPanel.d.ts +6 -0
- package/dist/panels/DropdownFilterPanel.d.ts.map +1 -0
- package/dist/panels/DropdownFilterPanel.js +537 -566
- package/dist/panels/DropdownFilterPanel.js.map +1 -1
- package/dist/{src/panels → panels}/FileExplorerPanel.d.ts +6 -1
- package/dist/panels/FileExplorerPanel.d.ts.map +1 -0
- package/dist/panels/FileExplorerPanel.js +208 -210
- package/dist/panels/FileExplorerPanel.js.map +1 -1
- package/dist/panels/FilterSetManager.css +111 -0
- package/dist/panels/FilterSetManager.css.map +1 -0
- package/dist/panels/FilterSetManager.d.ts +66 -0
- package/dist/panels/FilterSetManager.d.ts.map +1 -0
- package/dist/panels/FilterSetManager.js +732 -0
- package/dist/panels/FilterSetManager.js.map +1 -0
- package/dist/panels/FilterSetManagerPanel.css +33 -0
- package/dist/panels/FilterSetManagerPanel.css.map +1 -0
- package/dist/panels/FilterSetManagerPanel.d.ts +69 -0
- package/dist/panels/FilterSetManagerPanel.d.ts.map +1 -0
- package/dist/panels/FilterSetManagerPanel.js +383 -0
- package/dist/panels/FilterSetManagerPanel.js.map +1 -0
- package/dist/{src/panels → panels}/InputFilterPanel.d.ts +7 -0
- package/dist/panels/InputFilterPanel.d.ts.map +1 -0
- package/dist/panels/InputFilterPanel.js +198 -206
- package/dist/panels/InputFilterPanel.js.map +1 -1
- package/dist/{src/panels → panels}/IrisGridPanel.d.ts +11 -3
- package/dist/panels/IrisGridPanel.d.ts.map +1 -0
- package/dist/panels/IrisGridPanel.js +779 -771
- package/dist/panels/IrisGridPanel.js.map +1 -1
- package/dist/{src/panels → panels}/LogPanel.d.ts +0 -0
- package/dist/panels/LogPanel.d.ts.map +1 -0
- package/dist/panels/LogPanel.js +80 -116
- package/dist/panels/LogPanel.js.map +1 -1
- package/dist/panels/MarkdownNotebookContainer.d.ts +21 -0
- package/dist/panels/MarkdownNotebookContainer.d.ts.map +1 -0
- package/dist/panels/MarkdownNotebookContainer.js +35 -0
- package/dist/panels/MarkdownNotebookContainer.js.map +1 -0
- package/dist/panels/MarkdownNotebookEditor.d.ts +46 -0
- package/dist/panels/MarkdownNotebookEditor.d.ts.map +1 -0
- package/dist/panels/MarkdownNotebookEditor.js +257 -0
- package/dist/panels/MarkdownNotebookEditor.js.map +1 -0
- package/dist/panels/MarkdownNotebookPanel.css +127 -0
- package/dist/panels/MarkdownNotebookPanel.css.map +1 -0
- package/dist/panels/MarkdownNotebookPanel.d.ts +91 -0
- package/dist/panels/MarkdownNotebookPanel.d.ts.map +1 -0
- package/dist/panels/MarkdownNotebookPanel.js +446 -0
- package/dist/panels/MarkdownNotebookPanel.js.map +1 -0
- package/dist/{src/panels → panels}/MarkdownPanel.d.ts +0 -0
- package/dist/panels/MarkdownPanel.d.ts.map +1 -0
- package/dist/panels/MarkdownPanel.js +165 -199
- package/dist/panels/MarkdownPanel.js.map +1 -1
- package/dist/{src/panels → panels}/NotebookPanel.d.ts +3 -1
- package/dist/panels/NotebookPanel.d.ts.map +1 -0
- package/dist/panels/NotebookPanel.js +870 -862
- package/dist/panels/NotebookPanel.js.map +1 -1
- package/dist/{src/panels → panels}/PandasPanel.d.ts +0 -0
- package/dist/panels/PandasPanel.d.ts.map +1 -0
- package/dist/panels/PandasPanel.js +56 -90
- package/dist/panels/PandasPanel.js.map +1 -1
- package/dist/{src/panels → panels}/Panel.d.ts +0 -0
- package/dist/panels/Panel.d.ts.map +1 -0
- package/dist/panels/Panel.js +282 -313
- package/dist/panels/Panel.js.map +1 -1
- package/dist/{src/panels → panels}/PanelContextMenu.d.ts +0 -0
- package/dist/panels/PanelContextMenu.d.ts.map +1 -0
- package/dist/panels/PanelContextMenu.js +107 -158
- package/dist/panels/PanelContextMenu.js.map +1 -1
- package/dist/{src/panels → panels}/RenameDialog.d.ts +0 -0
- package/dist/panels/RenameDialog.d.ts.map +1 -0
- package/dist/panels/RenameDialog.js +144 -172
- package/dist/panels/RenameDialog.js.map +1 -1
- package/dist/{src/panels → panels}/Shortcuts.d.ts +0 -0
- package/dist/panels/Shortcuts.d.ts.map +1 -0
- package/dist/panels/Shortcuts.js +1 -1
- package/dist/panels/Shortcuts.js.map +1 -1
- package/dist/{src/panels → panels}/WidgetPanel.d.ts +0 -0
- package/dist/panels/WidgetPanel.d.ts.map +1 -0
- package/dist/panels/WidgetPanel.js +133 -163
- package/dist/panels/WidgetPanel.js.map +1 -1
- package/dist/{src/panels → panels}/WidgetPanelTooltip.d.ts +0 -0
- package/dist/panels/WidgetPanelTooltip.d.ts.map +1 -0
- package/dist/panels/WidgetPanelTooltip.js +7 -5
- package/dist/panels/WidgetPanelTooltip.js.map +1 -1
- package/dist/{src/panels → panels}/index.d.ts +1 -1
- package/dist/{src/events → panels}/index.d.ts.map +1 -1
- package/dist/panels/index.js +16 -16
- package/dist/panels/index.js.map +1 -1
- package/dist/{src/prop-types → prop-types}/CommonPropTypes.d.ts +0 -0
- package/dist/prop-types/CommonPropTypes.d.ts.map +1 -0
- package/dist/prop-types/CommonPropTypes.js +4 -8
- package/dist/prop-types/CommonPropTypes.js.map +1 -1
- package/dist/{src/prop-types → prop-types}/UIPropTypes.d.ts +0 -0
- package/dist/prop-types/UIPropTypes.d.ts.map +1 -0
- package/dist/prop-types/UIPropTypes.js +6 -6
- package/dist/prop-types/UIPropTypes.js.map +1 -1
- package/dist/{src/prop-types → prop-types}/index.d.ts +0 -0
- package/dist/{src/panels → prop-types}/index.d.ts.map +1 -1
- package/dist/prop-types/index.js +2 -2
- package/dist/prop-types/index.js.map +1 -1
- package/dist/{src/redux → redux}/actionTypes.d.ts +0 -0
- package/dist/redux/actionTypes.d.ts.map +1 -0
- package/dist/{src/redux → redux}/actions.d.ts +1 -0
- package/dist/redux/actions.d.ts.map +1 -0
- package/dist/redux/actions.js +33 -54
- package/dist/redux/actions.js.map +1 -1
- package/dist/{src/redux → redux}/index.d.ts +0 -0
- package/dist/redux/index.d.ts.map +1 -0
- package/dist/redux/index.js +6 -21
- package/dist/redux/index.js.map +1 -1
- package/dist/{src/redux → redux}/reducers/index.d.ts +0 -0
- package/dist/{src/prop-types → redux/reducers}/index.d.ts.map +1 -1
- package/dist/redux/reducers/index.js +2 -2
- package/dist/redux/reducers/index.js.map +1 -1
- package/dist/{src/redux → redux}/reducers/sessionWrapper.d.ts +0 -0
- package/dist/redux/reducers/sessionWrapper.d.ts.map +1 -0
- package/dist/redux/reducers/sessionWrapper.js +1 -1
- package/dist/redux/reducers/sessionWrapper.js.map +1 -1
- package/dist/{src/redux → redux}/selectors.d.ts +1 -0
- package/dist/redux/selectors.d.ts.map +1 -0
- package/dist/redux/selectors.js +22 -18
- package/dist/redux/selectors.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +27 -54
- package/dist/MatPlotLibPlugin.js +0 -45
- package/dist/MatPlotLibPlugin.js.map +0 -1
- package/dist/dist/events/ChartEvent.d.ts +0 -3
- package/dist/dist/events/ChartEvent.d.ts.map +0 -1
- package/dist/dist/events/ConsoleEvent.d.ts +0 -3
- package/dist/dist/events/ConsoleEvent.d.ts.map +0 -1
- package/dist/dist/events/ControlEvent.d.ts +0 -3
- package/dist/dist/events/ControlEvent.d.ts.map +0 -1
- package/dist/dist/events/InputFilterEvent.d.ts +0 -3
- package/dist/dist/events/InputFilterEvent.d.ts.map +0 -1
- package/dist/dist/events/IrisGridEvent.d.ts +0 -3
- package/dist/dist/events/IrisGridEvent.d.ts.map +0 -1
- package/dist/dist/events/MarkdownEvent.d.ts +0 -5
- package/dist/dist/events/MarkdownEvent.d.ts.map +0 -1
- package/dist/dist/events/MatPlotLibEvent.d.ts +0 -3
- package/dist/dist/events/MatPlotLibEvent.d.ts.map +0 -1
- package/dist/dist/events/NotebookEvent.d.ts +0 -3
- package/dist/dist/events/NotebookEvent.d.ts.map +0 -1
- package/dist/dist/events/PandasEvent.d.ts +0 -3
- package/dist/dist/events/PandasEvent.d.ts.map +0 -1
- package/dist/dist/events/TabEvent.d.ts +0 -3
- package/dist/dist/events/TabEvent.d.ts.map +0 -1
- package/dist/events/MatPlotLibEvent.js +0 -12
- package/dist/events/MatPlotLibEvent.js.map +0 -1
- package/dist/panels/MatPlotLibPanel.css +0 -11
- package/dist/panels/MatPlotLibPanel.css.map +0 -1
- package/dist/panels/MatPlotLibPanel.js +0 -124
- package/dist/panels/MatPlotLibPanel.js.map +0 -1
- package/dist/src/ChartPlugin.d.ts.map +0 -1
- package/dist/src/ConsolePlugin.d.ts.map +0 -1
- package/dist/src/FilterPlugin.d.ts.map +0 -1
- package/dist/src/GridPlugin.d.ts.map +0 -1
- package/dist/src/LinkerPlugin.d.ts.map +0 -1
- package/dist/src/MarkdownPlugin.d.ts.map +0 -1
- package/dist/src/MatPlotLibPlugin.d.ts +0 -5
- package/dist/src/MatPlotLibPlugin.d.ts.map +0 -1
- package/dist/src/PandasPlugin.d.ts +0 -5
- package/dist/src/PandasPlugin.d.ts.map +0 -1
- package/dist/src/controls/ControlType.d.ts.map +0 -1
- package/dist/src/controls/dropdown-filter/DropdownFilter.d.ts.map +0 -1
- package/dist/src/controls/input-filter/InputFilter.d.ts.map +0 -1
- package/dist/src/controls/markdown/MarkdownContainer.d.ts.map +0 -1
- package/dist/src/controls/markdown/MarkdownEditor.d.ts.map +0 -1
- package/dist/src/controls/markdown/MarkdownStartPage.d.ts.map +0 -1
- package/dist/src/controls/markdown/MarkdownUtils.d.ts.map +0 -1
- package/dist/src/events/ChartEvent.d.ts.map +0 -1
- package/dist/src/events/ConsoleEvent.d.ts.map +0 -1
- package/dist/src/events/ControlEvent.d.ts.map +0 -1
- package/dist/src/events/InputFilterEvent.d.ts.map +0 -1
- package/dist/src/events/IrisGridEvent.d.ts.map +0 -1
- package/dist/src/events/MarkdownEvent.d.ts.map +0 -1
- package/dist/src/events/MatPlotLibEvent.d.ts +0 -5
- package/dist/src/events/MatPlotLibEvent.d.ts.map +0 -1
- package/dist/src/events/NotebookEvent.d.ts.map +0 -1
- package/dist/src/events/PQEvent.d.ts.map +0 -1
- package/dist/src/events/PandasEvent.d.ts.map +0 -1
- package/dist/src/events/TabEvent.d.ts.map +0 -1
- package/dist/src/events/index.d.ts +0 -11
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/linker/Linker.d.ts.map +0 -1
- package/dist/src/linker/LinkerLink.d.ts.map +0 -1
- package/dist/src/linker/LinkerOverlayContent.d.ts.map +0 -1
- package/dist/src/linker/LinkerUtils.d.ts.map +0 -1
- package/dist/src/panels/ChartColumnSelectorOverlay.d.ts.map +0 -1
- package/dist/src/panels/ChartFilterOverlay.d.ts.map +0 -1
- package/dist/src/panels/ChartPanel.d.ts.map +0 -1
- package/dist/src/panels/CommandHistoryPanel.d.ts.map +0 -1
- package/dist/src/panels/ConsolePanel.d.ts.map +0 -1
- package/dist/src/panels/DropdownFilterPanel.d.ts.map +0 -1
- package/dist/src/panels/FileExplorerPanel.d.ts.map +0 -1
- package/dist/src/panels/InputFilterPanel.d.ts.map +0 -1
- package/dist/src/panels/IrisGridPanel.d.ts.map +0 -1
- package/dist/src/panels/LogPanel.d.ts.map +0 -1
- package/dist/src/panels/MarkdownPanel.d.ts.map +0 -1
- package/dist/src/panels/MatPlotLibPanel.d.ts +0 -22
- package/dist/src/panels/MatPlotLibPanel.d.ts.map +0 -1
- package/dist/src/panels/NotebookPanel.d.ts.map +0 -1
- package/dist/src/panels/PandasPanel.d.ts.map +0 -1
- package/dist/src/panels/Panel.d.ts.map +0 -1
- package/dist/src/panels/PanelContextMenu.d.ts.map +0 -1
- package/dist/src/panels/RenameDialog.d.ts.map +0 -1
- package/dist/src/panels/Shortcuts.d.ts.map +0 -1
- package/dist/src/panels/WidgetPanel.d.ts.map +0 -1
- package/dist/src/panels/WidgetPanelTooltip.d.ts.map +0 -1
- package/dist/src/prop-types/CommonPropTypes.d.ts.map +0 -1
- package/dist/src/prop-types/UIPropTypes.d.ts.map +0 -1
- package/dist/src/redux/actionTypes.d.ts.map +0 -1
- package/dist/src/redux/actions.d.ts.map +0 -1
- package/dist/src/redux/index.d.ts.map +0 -1
- package/dist/src/redux/reducers/index.d.ts.map +0 -1
- package/dist/src/redux/reducers/sessionWrapper.d.ts.map +0 -1
- package/dist/src/redux/selectors.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/panels/DropdownFilterPanel.jsx"],"names":["React","Component","PropTypes","connect","debounce","deepEqual","memoize","GLPropTypes","LayoutUtils","Formatter","FormatterUtils","TableUtils","DateTimeColumnFormatter","dh","Log","getActiveTool","getSettings","Pending","PromiseUtils","DropdownFilter","InputFilterEvent","getColumnsForDashboard","getColumnSelectionValidatorForDashboard","getIsolatedLinkerPanelIdForDashboard","getLinksForDashboard","getTableMapForDashboard","UIPropTypes","ToolType","WidgetPanel","log","module","DROPDOWN_FILTER_DEBOUNCE","DropdownFilterPanel","props","rawValues","formatter","type","name","isDateType","map","value","DATETIME_FORMATTER","format","getFormattedString","dashboardLinks","panel","panelId","getIdFromPanel","debug","filter","link","end","links","source","length","start","error","panelTableMap","get","table","columns","find","columnName","columnType","handleChange","bind","handleClearAllFilters","handleDisconnect","handleReconnect","handleColumnSelected","handleSourceFilterChange","handleSourceSortChange","handleSourceSizeChange","handleSourceMouseEnter","handleSourceMouseLeave","handleValuesTableUpdate","dropdownFilterRef","createRef","panelContainer","pending","cleanup","panelState","settings","columnFormats","isValueShown","timestamp","column","state","valuesTable","valuesColumn","sourceSize","values","wasFlipped","isDisconnected","isLoading","isLoaded","updateValuesTable","sourceTable","getSourceTable","startListeningToSource","sendUpdate","prevProps","prevState","getSource","prevSource","prevSourceTable","updateFormatterSettings","close","stopListeningToSource","cancel","current","element","querySelector","SOURCE_BUTTON_CLASS_NAME","rect","getBoundingClientRect","width","height","x","left","y","bottom","MAX_TABLE_SIZE","panelLinks","getCachedPanelLinks","getCachedSource","getCachedSourceTable","getCachedSourceColumn","addEventListener","Table","EVENT_FILTERCHANGED","EVENT_SORTCHANGED","EVENT_SIZECHANGED","EVENT_DISCONNECT","EVENT_RECONNECT","removeEventListener","Date","now","setState","prevTimestamp","isFlip","Error","applySourceFilters","applySourceSorts","detail","glEventHub","emit","COLUMN_SELECTED","SOURCE_COLUMN","clearFilter","sourcePanelId","excludePanelIds","FILTERS_CHANGED","size","add","copy","resolved","then","updateViewportListener","isCancelled","sort","sorts","applySort","setViewport","filters","applyFilter","EVENT_UPDATED","getValuesColumn","getColumnFormats","rows","row","columnSelectionValidator","disableLinking","glContainer","isLinkerActive","settingsErrorMessage","getSettingsErrorMessage","panelErrorMessage","getPanelErrorMessage","formattedValues","getCachedValues","showTimeZone","showTSeparator","defaultDateTimeFormatString","Object","freeze","propTypes","Container","isRequired","EventHub","shape","string","bool","arrayOf","func","instanceOf","Map","Links","defaultProps","displayName","mapStateToProps","ownProps","localDashboardId","activeTool","isolatedLinkerPanelId","LINKER","forwardRef"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport debounce from 'lodash.debounce';\nimport deepEqual from 'deep-equal';\nimport memoize from 'memoize-one';\nimport { GLPropTypes, LayoutUtils } from '@deephaven/dashboard';\nimport { Formatter, FormatterUtils, TableUtils } from '@deephaven/iris-grid';\nimport { DateTimeColumnFormatter } from '@deephaven/iris-grid/dist/formatters';\nimport dh from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport { getActiveTool, getSettings } from '@deephaven/redux';\nimport { Pending, PromiseUtils } from '@deephaven/utils';\nimport DropdownFilter from '../controls/dropdown-filter/DropdownFilter';\nimport { InputFilterEvent } from '../events';\nimport {\n getColumnsForDashboard,\n getColumnSelectionValidatorForDashboard,\n getIsolatedLinkerPanelIdForDashboard,\n getLinksForDashboard,\n getTableMapForDashboard,\n} from '../redux';\nimport './DropdownFilterPanel.scss';\nimport { UIPropTypes } from '../prop-types';\nimport ToolType from '../linker/ToolType';\nimport WidgetPanel from './WidgetPanel';\n\nconst log = Log.module('DropdownFilterPanel');\n\nconst DROPDOWN_FILTER_DEBOUNCE = 250;\n\nclass DropdownFilterPanel extends Component {\n static COMPONENT = 'DropdownFilterPanel';\n\n static MAX_TABLE_SIZE = 256;\n\n // Filter dropdown needs to show and send full timestamp format with nanoseconds\n static DATETIME_FORMATTER = new DateTimeColumnFormatter({\n showTimeZone: false,\n showTSeparator: true,\n defaultDateTimeFormatString: `yyyy-MM-dd HH:mm:ss.SSSSSSSSS`,\n });\n\n static SOURCE_COLUMN = Object.freeze({\n name: 'FilterSource',\n type: null,\n });\n\n constructor(props) {\n super(props);\n\n this.handleChange = debounce(\n this.handleChange.bind(this),\n DROPDOWN_FILTER_DEBOUNCE\n );\n this.handleClearAllFilters = this.handleClearAllFilters.bind(this);\n this.handleDisconnect = this.handleDisconnect.bind(this);\n this.handleReconnect = this.handleReconnect.bind(this);\n this.handleColumnSelected = this.handleColumnSelected.bind(this);\n this.handleSourceFilterChange = this.handleSourceFilterChange.bind(this);\n this.handleSourceSortChange = this.handleSourceSortChange.bind(this);\n this.handleSourceSizeChange = this.handleSourceSizeChange.bind(this);\n this.handleSourceMouseEnter = this.handleSourceMouseEnter.bind(this);\n this.handleSourceMouseLeave = this.handleSourceMouseLeave.bind(this);\n this.handleValuesTableUpdate = this.handleValuesTableUpdate.bind(this);\n\n this.dropdownFilterRef = React.createRef();\n this.panelContainer = React.createRef();\n this.pending = new Pending();\n this.cleanup = null;\n\n const { panelState, settings } = props;\n this.columnFormats = settings.columnFormats;\n const { value = '', isValueShown = false, name, type, timestamp = null } =\n panelState ?? {};\n const column = name != null && type != null ? { name, type } : null;\n this.state = {\n column,\n formatter: new Formatter(this.columnFormats),\n valuesTable: null,\n valuesColumn: null,\n sourceSize: 0,\n value,\n timestamp,\n values: [],\n isValueShown,\n wasFlipped: false,\n\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n\n isDisconnected: false,\n isLoading: false,\n isLoaded: false,\n error: null,\n };\n }\n\n componentDidMount() {\n this.updateValuesTable();\n const { column, value, timestamp } = this.state;\n const sourceTable = this.getSourceTable();\n if (sourceTable !== null) {\n this.startListeningToSource(sourceTable);\n }\n if (column != null) {\n const { name, type } = column;\n this.sendUpdate(name, type, value, timestamp);\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { valuesTable } = this.state;\n const { settings } = this.props;\n const source = this.getSource();\n const sourceTable = this.getSourceTable();\n const prevSource = this.getSource(prevProps);\n const prevSourceTable = this.getSourceTable(prevProps);\n\n if (settings !== prevProps.settings) {\n this.updateFormatterSettings(settings);\n }\n\n if (\n valuesTable !== prevState.valuesTable &&\n prevState.valuesTable !== null\n ) {\n log.debug('Table in state modified, closing the old table.');\n prevState.valuesTable.close();\n }\n\n // Checking source change in addition to table change\n // in case a different column is selected in the same table\n if (sourceTable !== prevSourceTable || source !== prevSource) {\n this.updateValuesTable();\n }\n\n if (sourceTable !== prevSourceTable) {\n if (prevSourceTable !== null) {\n this.stopListeningToSource(prevSourceTable);\n }\n if (sourceTable !== null) {\n this.startListeningToSource(sourceTable);\n }\n }\n }\n\n componentWillUnmount() {\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable();\n this.pending.cancel();\n if (sourceTable !== null) {\n this.stopListeningToSource(sourceTable);\n }\n if (this.cleanup) {\n this.cleanup();\n }\n if (valuesTable !== null) {\n valuesTable.close();\n }\n }\n\n getCachedValues = memoize((rawValues, { type, name }, formatter) => {\n if (TableUtils.isDateType(type)) {\n return rawValues.map(value =>\n DropdownFilterPanel.DATETIME_FORMATTER.format(value)\n );\n }\n return rawValues.map(value =>\n // Skip formatting for nulls so they don't get converted to ''\n value != null ? formatter.getFormattedString(value, type, name) : null\n );\n });\n\n getCoordinateForColumn() {\n if (!this.panelContainer.current) {\n return null;\n }\n\n const element = this.panelContainer.current.querySelector(\n `.${DropdownFilter.SOURCE_BUTTON_CLASS_NAME}`\n );\n const rect = element?.getBoundingClientRect() ?? null;\n if (rect == null || rect.width <= 0 || rect.height <= 0) {\n return null;\n }\n const x = rect.left + rect.width / 2;\n const y = rect.bottom;\n return [x, y];\n }\n\n getSettingsErrorMessage() {\n const { sourceSize } = this.state;\n if (sourceSize > DropdownFilterPanel.MAX_TABLE_SIZE) {\n return `Table too large, must have fewer than ${DropdownFilterPanel.MAX_TABLE_SIZE} options.`;\n }\n return null;\n }\n\n getPanelErrorMessage() {\n const { error } = this.state;\n return error ? `${error}` : null;\n }\n\n getCachedPanelLinks = memoize((dashboardLinks, panel) => {\n const panelId = LayoutUtils.getIdFromPanel(panel);\n log.debug('getCachedPanelLinks', dashboardLinks, panelId);\n return dashboardLinks.filter(link => link.end?.panelId === panelId);\n });\n\n getCachedSource = memoize(links => {\n log.debug('getCachedSource', links);\n let source = null;\n if (links.length > 0) {\n const [link] = links;\n source = link.start;\n if (links.length > 1) {\n log.error('Filter has more that one link', links);\n }\n }\n return source;\n });\n\n getCachedSourceTable = memoize((panelTableMap, source) => {\n log.debug('getCachedSourceTable', panelTableMap, source);\n if (source == null) {\n return null;\n }\n const { panelId } = source;\n return panelTableMap.get(panelId) ?? null;\n });\n\n getCachedSourceColumn = memoize((table, source) => {\n log.debug('getCachedSourceColumn', table, source);\n if (table == null || source == null) {\n return null;\n }\n return (\n table.columns.find(\n ({ name, type }) =>\n name === source.columnName && type === source.columnType\n ) ?? null\n );\n });\n\n getSource(props = this.props) {\n const { dashboardLinks } = props;\n const panelLinks = this.getCachedPanelLinks(dashboardLinks, this);\n return this.getCachedSource(panelLinks);\n }\n\n getSourceTable(props = this.props) {\n const { panelTableMap } = props;\n const source = this.getSource(props);\n return this.getCachedSourceTable(panelTableMap, source);\n }\n\n getValuesColumn(valuesTable) {\n const source = this.getSource();\n return this.getCachedSourceColumn(valuesTable, source);\n }\n\n startListeningToSource(sourceTable) {\n log.debug('startListeningToSource');\n sourceTable.addEventListener(\n dh.Table.EVENT_FILTERCHANGED,\n this.handleSourceFilterChange\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_SORTCHANGED,\n this.handleSourceSortChange\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_SIZECHANGED,\n this.handleSourceSizeChange\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_DISCONNECT,\n this.handleDisconnect\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_RECONNECT,\n this.handleReconnect\n );\n }\n\n stopListeningToSource(sourceTable) {\n log.debug('stopListeningToSource');\n sourceTable.removeEventListener(\n dh.Table.EVENT_FILTERCHANGED,\n this.handleSourceFilterChange\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_SORTCHANGED,\n this.handleSourceSortChange\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_SIZECHANGED,\n this.handleSourceSizeChange\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_DISCONNECT,\n this.handleDisconnect\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_RECONNECT,\n this.handleReconnect\n );\n }\n\n handleChange({ column, isValueShown, value }) {\n const { name = null, type = null } = column ?? {};\n let sendUpdate = true;\n let timestamp = Date.now();\n this.setState(\n ({ panelState, timestamp: prevTimestamp, wasFlipped }) => {\n // If the user had a value set, and they flip the card over and flip it back without changing any settings, ignore it\n const isFlip =\n panelState != null &&\n isValueShown !== panelState.isValueShown &&\n name === panelState.name &&\n type === panelState.type &&\n value === panelState.value;\n sendUpdate = isValueShown && (!isFlip || !wasFlipped);\n\n if (!sendUpdate) {\n timestamp = prevTimestamp;\n }\n\n return {\n panelState: {\n isValueShown,\n name,\n type,\n value,\n timestamp,\n },\n timestamp,\n wasFlipped: isFlip,\n };\n },\n () => {\n if (sendUpdate) {\n this.sendUpdate(name, type, value, timestamp);\n }\n }\n );\n }\n\n handleDisconnect() {\n this.setState({\n error: new Error('Table disconnected'),\n isDisconnected: true,\n isLoading: false,\n });\n }\n\n handleReconnect() {\n this.setState({ isDisconnected: false, error: null });\n }\n\n handleSourceFilterChange() {\n this.applySourceFilters();\n }\n\n handleSourceSortChange() {\n this.applySourceSorts();\n }\n\n handleSourceSizeChange({ detail }) {\n this.setState({ sourceSize: detail });\n }\n\n handleColumnSelected() {\n log.debug('handleColumnSelected');\n const { glEventHub } = this.props;\n glEventHub.emit(\n InputFilterEvent.COLUMN_SELECTED,\n this,\n DropdownFilterPanel.SOURCE_COLUMN\n );\n }\n\n handleClearAllFilters() {\n this.dropdownFilterRef.current.clearFilter();\n }\n\n sendUpdate(name, type, value, timestamp) {\n const { glEventHub } = this.props;\n const sourcePanelId = this.getSource()?.panelId;\n const excludePanelIds = sourcePanelId === null ? [] : [sourcePanelId];\n log.debug('sendUpdate', {\n name,\n type,\n value,\n timestamp,\n excludePanelIds,\n });\n\n glEventHub.emit(InputFilterEvent.FILTERS_CHANGED, this, {\n name,\n type,\n value: value != null ? value : '=null',\n timestamp,\n excludePanelIds,\n });\n }\n\n updateValuesTable() {\n const source = this.getSource();\n const sourceTable = this.getSourceTable();\n log.debug('updateValuesTable', source, sourceTable);\n\n this.setState({\n values: [],\n valuesTable: null,\n error: null,\n });\n\n if (source == null) {\n log.debug('Filter unlinked.');\n this.setState({\n isLoading: false,\n isLoaded: true,\n isValueShown: false,\n sourceSize: 0,\n });\n return;\n }\n\n this.setState({ isLoading: true });\n\n if (sourceTable == null) {\n return;\n }\n\n this.setState({ isLoaded: false, sourceSize: sourceTable.size });\n\n this.pending\n .add(sourceTable.copy(), resolved => resolved.close())\n .then(valuesTable => {\n // Loading/loaded will be set when values array is actually populated\n this.updateViewportListener(valuesTable);\n this.setState({ valuesTable });\n })\n .catch(error => {\n if (PromiseUtils.isCancelled(error)) {\n return;\n }\n log.error(error);\n this.setState({ isLoading: false, error });\n });\n }\n\n applySourceSorts() {\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable();\n log.debug('applySourceSorts', sourceTable.sort);\n if (valuesTable == null) {\n log.debug('Table not initialized');\n return;\n }\n const sorts = [...sourceTable.sort];\n valuesTable.applySort(sorts);\n this.setViewport(valuesTable);\n }\n\n applySourceFilters() {\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable();\n log.debug('applySourceFilters', sourceTable.filter);\n if (valuesTable == null) {\n log.debug('Table not initialized');\n return;\n }\n const filters = [...sourceTable.filter];\n valuesTable.applyFilter(filters);\n this.setViewport(valuesTable);\n }\n\n updateViewportListener(valuesTable) {\n log.debug('updateViewportListener', valuesTable?.size);\n\n if (this.cleanup) {\n this.cleanup();\n }\n\n if (valuesTable == null) {\n this.cleanup = null;\n return;\n }\n\n this.cleanup = valuesTable.addEventListener(\n dh.Table.EVENT_UPDATED,\n this.handleValuesTableUpdate\n );\n\n this.setViewport(valuesTable);\n }\n\n setViewport(valuesTable) {\n const valuesColumn = this.getValuesColumn(valuesTable);\n valuesTable.setViewport(0, DropdownFilterPanel.MAX_TABLE_SIZE - 1, [\n valuesColumn,\n ]);\n }\n\n updateFormatterSettings(settings) {\n const columnFormats = FormatterUtils.getColumnFormats(settings);\n if (!deepEqual(this.columnFormats, columnFormats)) {\n this.columnFormats = columnFormats;\n this.setState({ formatter: new Formatter(columnFormats) });\n }\n }\n\n handleValuesTableUpdate({ detail }) {\n const { rows } = detail;\n const { valuesTable } = this.state;\n const valuesColumn = this.getValuesColumn(valuesTable);\n if (!valuesColumn) {\n log.error('Values column not found');\n return;\n }\n const values = rows.map(row => row.get(valuesColumn));\n this.setState({ values, isLoading: false, isLoaded: true, valuesColumn });\n }\n\n handleSourceMouseEnter() {\n const { columnSelectionValidator } = this.props;\n if (!columnSelectionValidator) {\n return;\n }\n columnSelectionValidator(this, DropdownFilterPanel.SOURCE_COLUMN);\n }\n\n handleSourceMouseLeave() {\n const { columnSelectionValidator } = this.props;\n if (!columnSelectionValidator) {\n return;\n }\n columnSelectionValidator(this, null);\n }\n\n render() {\n const {\n columns,\n disableLinking,\n glContainer,\n glEventHub,\n isLinkerActive,\n } = this.props;\n const {\n column,\n formatter,\n isDisconnected,\n isValueShown,\n value,\n values,\n valuesColumn,\n isLoading,\n isLoaded,\n } = this.state;\n\n const source = this.getSource();\n const settingsErrorMessage = this.getSettingsErrorMessage();\n const panelErrorMessage = this.getPanelErrorMessage();\n const formattedValues =\n isLoaded && valuesColumn != null\n ? this.getCachedValues(values, valuesColumn, formatter)\n : [];\n\n return (\n <WidgetPanel\n errorMessage={panelErrorMessage}\n isLoading={isLoading}\n isLoaded={isLoaded}\n isDisconnected={isDisconnected}\n className=\"iris-dropdown-filter-panel\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onClearAllFilters={this.handleClearAllFilters}\n widgetName=\"Dropdown Filter\"\n widgetType=\"DropdownFilter\"\n >\n <div\n ref={this.panelContainer}\n className=\"dropdown-filter-container h-100 w-100 container\"\n >\n <DropdownFilter\n ref={this.dropdownFilterRef}\n column={column}\n columns={columns}\n isValueShown={isValueShown}\n isLinkerActive={isLinkerActive}\n disableLinking={disableLinking}\n isLoaded={isLoaded}\n settingsError={settingsErrorMessage}\n source={source}\n value={value}\n values={formattedValues}\n onChange={this.handleChange}\n onColumnSelected={this.handleColumnSelected}\n onSourceMouseEnter={this.handleSourceMouseEnter}\n onSourceMouseLeave={this.handleSourceMouseLeave}\n />\n </div>\n </WidgetPanel>\n );\n }\n}\n\nDropdownFilterPanel.propTypes = {\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n panelState: PropTypes.shape({\n name: PropTypes.string,\n type: PropTypes.string,\n value: PropTypes.string,\n isValueShown: PropTypes.bool,\n }),\n isLinkerActive: PropTypes.bool.isRequired,\n columns: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n columnSelectionValidator: PropTypes.func,\n disableLinking: PropTypes.bool.isRequired,\n settings: PropTypes.shape({\n columnFormats: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n panelTableMap: PropTypes.instanceOf(Map).isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n dashboardLinks: UIPropTypes.Links.isRequired,\n};\n\nDropdownFilterPanel.defaultProps = {\n columnSelectionValidator: null,\n panelState: null,\n};\n\nDropdownFilterPanel.displayName = 'DropdownFilterPanel';\n\nconst mapStateToProps = (state, ownProps) => {\n const { localDashboardId } = ownProps;\n const panelId = LayoutUtils.getIdFromPanel({ props: ownProps });\n const panelTableMap = getTableMapForDashboard(state, localDashboardId);\n const dashboardLinks = getLinksForDashboard(state, localDashboardId);\n const activeTool = getActiveTool(state);\n const isolatedLinkerPanelId = getIsolatedLinkerPanelIdForDashboard(\n state,\n localDashboardId\n );\n const isLinkerActive =\n activeTool === ToolType.LINKER &&\n (isolatedLinkerPanelId === null || isolatedLinkerPanelId === panelId);\n // Disable linking if linker is in isolated mode for a different panel\n const disableLinking =\n activeTool === ToolType.LINKER &&\n isolatedLinkerPanelId !== null &&\n isolatedLinkerPanelId !== panelId;\n return {\n columns: getColumnsForDashboard(state, localDashboardId),\n columnSelectionValidator: getColumnSelectionValidatorForDashboard(\n state,\n localDashboardId\n ),\n isLinkerActive,\n disableLinking,\n settings: getSettings(state),\n panelTableMap,\n dashboardLinks,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { forwardRef: true })(\n DropdownFilterPanel\n);\n"],"file":"DropdownFilterPanel.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/panels/DropdownFilterPanel.jsx"],"names":["React","Component","PropTypes","connect","debounce","deepEqual","memoize","GLPropTypes","LayoutUtils","Formatter","FormatterUtils","TableUtils","DateTimeColumnFormatter","dh","Log","getActiveTool","getSettings","Pending","PromiseUtils","DropdownFilter","InputFilterEvent","getColumnsForDashboard","getColumnSelectionValidatorForDashboard","getIsolatedLinkerPanelIdForDashboard","getLinksForDashboard","getTableMapForDashboard","UIPropTypes","ToolType","WidgetPanel","log","module","DROPDOWN_FILTER_DEBOUNCE","DropdownFilterPanel","constructor","props","rawValues","formatter","type","name","isDateType","map","value","DATETIME_FORMATTER","format","getFormattedString","dashboardLinks","panel","panelId","getIdFromPanel","debug","filter","link","end","links","source","length","start","error","panelTableMap","get","table","columns","find","columnName","columnType","handleChange","bind","handleClearAllFilters","handleDisconnect","handleReconnect","handleColumnSelected","handleSourceFilterChange","handleSourceSortChange","handleSourceSizeChange","handleSourceMouseEnter","handleSourceMouseLeave","handleValuesTableUpdate","dropdownFilterRef","createRef","panelContainer","pending","cleanup","panelState","settings","columnFormats","isValueShown","timestamp","column","state","valuesTable","valuesColumn","sourceSize","values","wasFlipped","skipUpdate","isDisconnected","isLoading","isLoaded","componentDidMount","updateValuesTable","sourceTable","getSourceTable","startListeningToSource","sendUpdate","componentDidUpdate","prevProps","prevState","getSource","prevSource","prevSourceTable","updateFormatterSettings","close","stopListeningToSource","componentWillUnmount","cancel","getCoordinateForColumn","current","element","querySelector","SOURCE_BUTTON_CLASS_NAME","rect","getBoundingClientRect","width","height","x","left","y","bottom","getSettingsErrorMessage","MAX_TABLE_SIZE","getPanelErrorMessage","panelLinks","getCachedPanelLinks","getCachedSource","getCachedSourceTable","getValuesColumn","getCachedSourceColumn","addEventListener","Table","EVENT_FILTERCHANGED","EVENT_SORTCHANGED","EVENT_SIZECHANGED","EVENT_DISCONNECT","EVENT_RECONNECT","removeEventListener","Date","now","setState","prevTimestamp","isFlip","Error","applySourceFilters","applySourceSorts","detail","glEventHub","emit","COLUMN_SELECTED","SOURCE_COLUMN","clearFilter","setPanelState","setFilterState","sourcePanelId","excludePanelIds","FILTERS_CHANGED","size","add","copy","resolved","then","updateViewportListener","catch","isCancelled","sort","sorts","applySort","setViewport","filters","applyFilter","EVENT_UPDATED","getColumnFormats","rows","row","columnSelectionValidator","render","disableLinking","glContainer","isLinkerActive","settingsErrorMessage","panelErrorMessage","formattedValues","getCachedValues","showTimeZone","showTSeparator","defaultDateTimeFormatString","Object","freeze","propTypes","Container","isRequired","EventHub","shape","string","bool","arrayOf","func","instanceOf","Map","Links","defaultProps","displayName","mapStateToProps","ownProps","localDashboardId","activeTool","isolatedLinkerPanelId","LINKER","forwardRef"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport debounce from 'lodash.debounce';\nimport deepEqual from 'deep-equal';\nimport memoize from 'memoize-one';\nimport { GLPropTypes, LayoutUtils } from '@deephaven/dashboard';\nimport { Formatter, FormatterUtils, TableUtils } from '@deephaven/iris-grid';\nimport { DateTimeColumnFormatter } from '@deephaven/iris-grid/dist/formatters';\nimport dh from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport { getActiveTool, getSettings } from '@deephaven/redux';\nimport { Pending, PromiseUtils } from '@deephaven/utils';\nimport DropdownFilter from '../controls/dropdown-filter/DropdownFilter';\nimport { InputFilterEvent } from '../events';\nimport {\n getColumnsForDashboard,\n getColumnSelectionValidatorForDashboard,\n getIsolatedLinkerPanelIdForDashboard,\n getLinksForDashboard,\n getTableMapForDashboard,\n} from '../redux';\nimport './DropdownFilterPanel.scss';\nimport { UIPropTypes } from '../prop-types';\nimport ToolType from '../linker/ToolType';\nimport WidgetPanel from './WidgetPanel';\n\nconst log = Log.module('DropdownFilterPanel');\n\nconst DROPDOWN_FILTER_DEBOUNCE = 250;\n\nclass DropdownFilterPanel extends Component {\n static COMPONENT = 'DropdownFilterPanel';\n\n static MAX_TABLE_SIZE = 256;\n\n // Filter dropdown needs to show and send full timestamp format with nanoseconds\n static DATETIME_FORMATTER = new DateTimeColumnFormatter({\n showTimeZone: false,\n showTSeparator: true,\n defaultDateTimeFormatString: `yyyy-MM-dd HH:mm:ss.SSSSSSSSS`,\n });\n\n static SOURCE_COLUMN = Object.freeze({\n name: 'FilterSource',\n type: null,\n });\n\n constructor(props) {\n super(props);\n\n this.handleChange = debounce(\n this.handleChange.bind(this),\n DROPDOWN_FILTER_DEBOUNCE\n );\n this.handleClearAllFilters = this.handleClearAllFilters.bind(this);\n this.handleDisconnect = this.handleDisconnect.bind(this);\n this.handleReconnect = this.handleReconnect.bind(this);\n this.handleColumnSelected = this.handleColumnSelected.bind(this);\n this.handleSourceFilterChange = this.handleSourceFilterChange.bind(this);\n this.handleSourceSortChange = this.handleSourceSortChange.bind(this);\n this.handleSourceSizeChange = this.handleSourceSizeChange.bind(this);\n this.handleSourceMouseEnter = this.handleSourceMouseEnter.bind(this);\n this.handleSourceMouseLeave = this.handleSourceMouseLeave.bind(this);\n this.handleValuesTableUpdate = this.handleValuesTableUpdate.bind(this);\n\n this.dropdownFilterRef = React.createRef();\n this.panelContainer = React.createRef();\n this.pending = new Pending();\n this.cleanup = null;\n\n const { panelState, settings } = props;\n this.columnFormats = settings.columnFormats;\n const { value = '', isValueShown = false, name, type, timestamp = null } =\n panelState ?? {};\n const column = name != null && type != null ? { name, type } : null;\n this.state = {\n column,\n formatter: new Formatter(this.columnFormats),\n valuesTable: null,\n valuesColumn: null,\n sourceSize: 0,\n value,\n timestamp,\n values: [],\n isValueShown,\n wasFlipped: false,\n skipUpdate: false,\n\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n\n isDisconnected: false,\n isLoading: false,\n isLoaded: false,\n error: null,\n };\n }\n\n componentDidMount() {\n this.updateValuesTable();\n const { column, value, timestamp } = this.state;\n const sourceTable = this.getSourceTable();\n if (sourceTable !== null) {\n this.startListeningToSource(sourceTable);\n }\n if (column != null) {\n const { name, type } = column;\n this.sendUpdate(name, type, value, timestamp);\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { valuesTable } = this.state;\n const { settings } = this.props;\n const source = this.getSource();\n const sourceTable = this.getSourceTable();\n const prevSource = this.getSource(prevProps);\n const prevSourceTable = this.getSourceTable(prevProps);\n\n if (settings !== prevProps.settings) {\n this.updateFormatterSettings(settings);\n }\n\n if (\n valuesTable !== prevState.valuesTable &&\n prevState.valuesTable !== null\n ) {\n log.debug('Table in state modified, closing the old table.');\n prevState.valuesTable.close();\n }\n\n // Checking source change in addition to table change\n // in case a different column is selected in the same table\n if (sourceTable !== prevSourceTable || source !== prevSource) {\n this.updateValuesTable();\n }\n\n if (sourceTable !== prevSourceTable) {\n if (prevSourceTable !== null) {\n this.stopListeningToSource(prevSourceTable);\n }\n if (sourceTable !== null) {\n this.startListeningToSource(sourceTable);\n }\n }\n }\n\n componentWillUnmount() {\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable();\n this.pending.cancel();\n if (sourceTable !== null) {\n this.stopListeningToSource(sourceTable);\n }\n if (this.cleanup) {\n this.cleanup();\n }\n if (valuesTable !== null) {\n valuesTable.close();\n }\n }\n\n getCachedValues = memoize((rawValues, { type, name }, formatter) => {\n if (TableUtils.isDateType(type)) {\n return rawValues.map(value =>\n DropdownFilterPanel.DATETIME_FORMATTER.format(value)\n );\n }\n return rawValues.map(value =>\n // Skip formatting for nulls so they don't get converted to ''\n value != null ? formatter.getFormattedString(value, type, name) : null\n );\n });\n\n getCoordinateForColumn() {\n if (!this.panelContainer.current) {\n return null;\n }\n\n const element = this.panelContainer.current.querySelector(\n `.${DropdownFilter.SOURCE_BUTTON_CLASS_NAME}`\n );\n const rect = element?.getBoundingClientRect() ?? null;\n if (rect == null || rect.width <= 0 || rect.height <= 0) {\n return null;\n }\n const x = rect.left + rect.width / 2;\n const y = rect.bottom;\n return [x, y];\n }\n\n getSettingsErrorMessage() {\n const { sourceSize } = this.state;\n if (sourceSize > DropdownFilterPanel.MAX_TABLE_SIZE) {\n return `Table too large, must have fewer than ${DropdownFilterPanel.MAX_TABLE_SIZE} options.`;\n }\n return null;\n }\n\n getPanelErrorMessage() {\n const { error } = this.state;\n return error ? `${error}` : null;\n }\n\n getCachedPanelLinks = memoize((dashboardLinks, panel) => {\n const panelId = LayoutUtils.getIdFromPanel(panel);\n log.debug('getCachedPanelLinks', dashboardLinks, panelId);\n return dashboardLinks.filter(link => link.end?.panelId === panelId);\n });\n\n getCachedSource = memoize(links => {\n log.debug('getCachedSource', links);\n let source = null;\n if (links.length > 0) {\n const [link] = links;\n source = link.start;\n if (links.length > 1) {\n log.error('Filter has more that one link', links);\n }\n }\n return source;\n });\n\n getCachedSourceTable = memoize((panelTableMap, source) => {\n log.debug('getCachedSourceTable', panelTableMap, source);\n if (source == null) {\n return null;\n }\n const { panelId } = source;\n return panelTableMap.get(panelId) ?? null;\n });\n\n getCachedSourceColumn = memoize((table, source) => {\n log.debug('getCachedSourceColumn', table, source);\n if (table == null || source == null) {\n return null;\n }\n return (\n table.columns.find(\n ({ name, type }) =>\n name === source.columnName && type === source.columnType\n ) ?? null\n );\n });\n\n getSource(props = this.props) {\n const { dashboardLinks } = props;\n const panelLinks = this.getCachedPanelLinks(dashboardLinks, this);\n return this.getCachedSource(panelLinks);\n }\n\n getSourceTable(props = this.props) {\n const { panelTableMap } = props;\n const source = this.getSource(props);\n return this.getCachedSourceTable(panelTableMap, source);\n }\n\n getValuesColumn(valuesTable) {\n const source = this.getSource();\n return this.getCachedSourceColumn(valuesTable, source);\n }\n\n startListeningToSource(sourceTable) {\n log.debug('startListeningToSource');\n sourceTable.addEventListener(\n dh.Table.EVENT_FILTERCHANGED,\n this.handleSourceFilterChange\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_SORTCHANGED,\n this.handleSourceSortChange\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_SIZECHANGED,\n this.handleSourceSizeChange\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_DISCONNECT,\n this.handleDisconnect\n );\n sourceTable.addEventListener(\n dh.Table.EVENT_RECONNECT,\n this.handleReconnect\n );\n }\n\n stopListeningToSource(sourceTable) {\n log.debug('stopListeningToSource');\n sourceTable.removeEventListener(\n dh.Table.EVENT_FILTERCHANGED,\n this.handleSourceFilterChange\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_SORTCHANGED,\n this.handleSourceSortChange\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_SIZECHANGED,\n this.handleSourceSizeChange\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_DISCONNECT,\n this.handleDisconnect\n );\n sourceTable.removeEventListener(\n dh.Table.EVENT_RECONNECT,\n this.handleReconnect\n );\n }\n\n handleChange({ column, isValueShown, value }) {\n const { name = null, type = null } = column ?? {};\n let sendUpdate = true;\n let timestamp = Date.now();\n this.setState(\n ({ panelState, timestamp: prevTimestamp, wasFlipped, skipUpdate }) => {\n // If the user had a value set, and they flip the card over and flip it back without changing any settings, ignore it\n const isFlip =\n panelState != null &&\n isValueShown !== panelState.isValueShown &&\n name === panelState.name &&\n type === panelState.type &&\n value === panelState.value;\n sendUpdate = !skipUpdate && isValueShown && (!isFlip || !wasFlipped);\n\n if (!sendUpdate) {\n timestamp = prevTimestamp;\n }\n\n return {\n panelState: {\n isValueShown,\n name,\n type,\n value,\n timestamp,\n },\n timestamp,\n wasFlipped: isFlip,\n skipUpdate: false,\n };\n },\n () => {\n if (sendUpdate) {\n this.sendUpdate(name, type, value, timestamp);\n }\n }\n );\n }\n\n handleDisconnect() {\n this.setState({\n error: new Error('Table disconnected'),\n isDisconnected: true,\n isLoading: false,\n });\n }\n\n handleReconnect() {\n this.setState({ isDisconnected: false, error: null });\n }\n\n handleSourceFilterChange() {\n this.applySourceFilters();\n }\n\n handleSourceSortChange() {\n this.applySourceSorts();\n }\n\n handleSourceSizeChange({ detail }) {\n this.setState({ sourceSize: detail });\n }\n\n handleColumnSelected() {\n log.debug('handleColumnSelected');\n const { glEventHub } = this.props;\n glEventHub.emit(\n InputFilterEvent.COLUMN_SELECTED,\n this,\n DropdownFilterPanel.SOURCE_COLUMN\n );\n }\n\n handleClearAllFilters() {\n this.dropdownFilterRef.current.clearFilter();\n }\n\n /**\n * Set the filter value, card side, selected column\n * @param {Object} state Filter state to set\n * @param {boolean} sendUpdate Emit filters changed event if true\n */\n setPanelState(state, sendUpdate = false) {\n if (this.getSource() == null) {\n log.debug('Ignore state update for unlinked filter', state);\n return;\n }\n // Set the skipUpdate flag so the next onChange handler call doesn't emit the FILTERS_CHANGED event\n this.setState({ skipUpdate: !sendUpdate });\n\n // Changing the inputFilter state via props doesn't quite work because of the delays on manual input changes\n // Setting the ref state directly triggers the onChange handler and updates the panelState\n this.dropdownFilterRef.current?.setFilterState(state);\n }\n\n sendUpdate(name, type, value, timestamp) {\n const { glEventHub } = this.props;\n const sourcePanelId = this.getSource()?.panelId;\n const excludePanelIds = sourcePanelId === null ? [] : [sourcePanelId];\n log.debug('sendUpdate', {\n name,\n type,\n value,\n timestamp,\n excludePanelIds,\n });\n\n glEventHub.emit(InputFilterEvent.FILTERS_CHANGED, this, {\n name,\n type,\n value: value != null ? value : '=null',\n timestamp,\n excludePanelIds,\n });\n }\n\n updateValuesTable() {\n const source = this.getSource();\n const sourceTable = this.getSourceTable();\n log.debug('updateValuesTable', source, sourceTable);\n\n this.setState({\n values: [],\n valuesTable: null,\n error: null,\n });\n\n if (source == null) {\n log.debug('Filter unlinked.');\n this.setState({\n isLoading: false,\n isLoaded: true,\n isValueShown: false,\n sourceSize: 0,\n });\n return;\n }\n\n this.setState({ isLoading: true });\n\n if (sourceTable == null) {\n return;\n }\n\n this.setState({ isLoaded: false, sourceSize: sourceTable.size });\n\n this.pending\n .add(sourceTable.copy(), resolved => resolved.close())\n .then(valuesTable => {\n // Loading/loaded will be set when values array is actually populated\n this.updateViewportListener(valuesTable);\n this.setState({ valuesTable });\n })\n .catch(error => {\n if (PromiseUtils.isCancelled(error)) {\n return;\n }\n log.error(error);\n this.setState({ isLoading: false, error });\n });\n }\n\n applySourceSorts() {\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable();\n log.debug('applySourceSorts', sourceTable.sort);\n if (valuesTable == null) {\n log.debug('Table not initialized');\n return;\n }\n const sorts = [...sourceTable.sort];\n valuesTable.applySort(sorts);\n this.setViewport(valuesTable);\n }\n\n applySourceFilters() {\n const { valuesTable } = this.state;\n const sourceTable = this.getSourceTable();\n log.debug('applySourceFilters', sourceTable.filter);\n if (valuesTable == null) {\n log.debug('Table not initialized');\n return;\n }\n const filters = [...sourceTable.filter];\n valuesTable.applyFilter(filters);\n this.setViewport(valuesTable);\n }\n\n updateViewportListener(valuesTable) {\n log.debug('updateViewportListener', valuesTable?.size);\n\n if (this.cleanup) {\n this.cleanup();\n }\n\n if (valuesTable == null) {\n this.cleanup = null;\n return;\n }\n\n this.cleanup = valuesTable.addEventListener(\n dh.Table.EVENT_UPDATED,\n this.handleValuesTableUpdate\n );\n\n this.setViewport(valuesTable);\n }\n\n setViewport(valuesTable) {\n const valuesColumn = this.getValuesColumn(valuesTable);\n valuesTable.setViewport(0, DropdownFilterPanel.MAX_TABLE_SIZE - 1, [\n valuesColumn,\n ]);\n }\n\n updateFormatterSettings(settings) {\n const columnFormats = FormatterUtils.getColumnFormats(settings);\n if (!deepEqual(this.columnFormats, columnFormats)) {\n this.columnFormats = columnFormats;\n this.setState({ formatter: new Formatter(columnFormats) });\n }\n }\n\n handleValuesTableUpdate({ detail }) {\n const { rows } = detail;\n const { valuesTable } = this.state;\n const valuesColumn = this.getValuesColumn(valuesTable);\n if (!valuesColumn) {\n log.error('Values column not found');\n return;\n }\n const values = rows.map(row => row.get(valuesColumn));\n this.setState({ values, isLoading: false, isLoaded: true, valuesColumn });\n }\n\n handleSourceMouseEnter() {\n const { columnSelectionValidator } = this.props;\n if (!columnSelectionValidator) {\n return;\n }\n columnSelectionValidator(this, DropdownFilterPanel.SOURCE_COLUMN);\n }\n\n handleSourceMouseLeave() {\n const { columnSelectionValidator } = this.props;\n if (!columnSelectionValidator) {\n return;\n }\n columnSelectionValidator(this, null);\n }\n\n render() {\n const {\n columns,\n disableLinking,\n glContainer,\n glEventHub,\n isLinkerActive,\n } = this.props;\n const {\n column,\n formatter,\n isDisconnected,\n isValueShown,\n value,\n values,\n valuesColumn,\n isLoading,\n isLoaded,\n } = this.state;\n\n const source = this.getSource();\n const settingsErrorMessage = this.getSettingsErrorMessage();\n const panelErrorMessage = this.getPanelErrorMessage();\n const formattedValues =\n isLoaded && valuesColumn != null\n ? this.getCachedValues(values, valuesColumn, formatter)\n : [];\n\n return (\n <WidgetPanel\n errorMessage={panelErrorMessage}\n isLoading={isLoading}\n isLoaded={isLoaded}\n isDisconnected={isDisconnected}\n className=\"iris-dropdown-filter-panel\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onClearAllFilters={this.handleClearAllFilters}\n widgetName=\"Dropdown Filter\"\n widgetType=\"DropdownFilter\"\n >\n <div\n ref={this.panelContainer}\n className=\"dropdown-filter-container h-100 w-100 container\"\n >\n <DropdownFilter\n ref={this.dropdownFilterRef}\n column={column}\n columns={columns}\n isValueShown={isValueShown}\n isLinkerActive={isLinkerActive}\n disableLinking={disableLinking}\n isLoaded={isLoaded}\n settingsError={settingsErrorMessage}\n source={source}\n value={value}\n values={formattedValues}\n onChange={this.handleChange}\n onColumnSelected={this.handleColumnSelected}\n onSourceMouseEnter={this.handleSourceMouseEnter}\n onSourceMouseLeave={this.handleSourceMouseLeave}\n />\n </div>\n </WidgetPanel>\n );\n }\n}\n\nDropdownFilterPanel.propTypes = {\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n panelState: PropTypes.shape({\n name: PropTypes.string,\n type: PropTypes.string,\n value: PropTypes.string,\n isValueShown: PropTypes.bool,\n }),\n isLinkerActive: PropTypes.bool.isRequired,\n columns: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n columnSelectionValidator: PropTypes.func,\n disableLinking: PropTypes.bool.isRequired,\n settings: PropTypes.shape({\n columnFormats: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n panelTableMap: PropTypes.instanceOf(Map).isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n dashboardLinks: UIPropTypes.Links.isRequired,\n};\n\nDropdownFilterPanel.defaultProps = {\n columnSelectionValidator: null,\n panelState: null,\n};\n\nDropdownFilterPanel.displayName = 'DropdownFilterPanel';\n\nconst mapStateToProps = (state, ownProps) => {\n const { localDashboardId } = ownProps;\n const panelId = LayoutUtils.getIdFromPanel({ props: ownProps });\n const panelTableMap = getTableMapForDashboard(state, localDashboardId);\n const dashboardLinks = getLinksForDashboard(state, localDashboardId);\n const activeTool = getActiveTool(state);\n const isolatedLinkerPanelId = getIsolatedLinkerPanelIdForDashboard(\n state,\n localDashboardId\n );\n const isLinkerActive =\n activeTool === ToolType.LINKER &&\n (isolatedLinkerPanelId === null || isolatedLinkerPanelId === panelId);\n // Disable linking if linker is in isolated mode for a different panel\n const disableLinking =\n activeTool === ToolType.LINKER &&\n isolatedLinkerPanelId !== null &&\n isolatedLinkerPanelId !== panelId;\n return {\n columns: getColumnsForDashboard(state, localDashboardId),\n columnSelectionValidator: getColumnSelectionValidatorForDashboard(\n state,\n localDashboardId\n ),\n isLinkerActive,\n disableLinking,\n settings: getSettings(state),\n panelTableMap,\n dashboardLinks,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { forwardRef: true })(\n DropdownFilterPanel\n);\n"],"file":"DropdownFilterPanel.js"}
|
|
@@ -25,6 +25,11 @@ export declare class FileExplorerPanel extends React.Component<FileExplorerPanel
|
|
|
25
25
|
static COMPONENT: string;
|
|
26
26
|
static TITLE: string;
|
|
27
27
|
static handleError(error: Error): void;
|
|
28
|
+
/**
|
|
29
|
+
* Return true if the event should open a file and focus it, otherwise false
|
|
30
|
+
* @param event The event to check
|
|
31
|
+
*/
|
|
32
|
+
static isFocusEvent(event: React.SyntheticEvent): boolean;
|
|
28
33
|
constructor(props: FileExplorerPanelProps);
|
|
29
34
|
componentDidMount(): void;
|
|
30
35
|
handleCreateFile(): void;
|
|
@@ -32,7 +37,7 @@ export declare class FileExplorerPanel extends React.Component<FileExplorerPanel
|
|
|
32
37
|
handleCreateDirectoryCancel(): void;
|
|
33
38
|
handleCreateDirectorySubmit(path: string): void;
|
|
34
39
|
handleDelete(files: FileStorageItem[]): void;
|
|
35
|
-
handleFileSelect(file: FileStorageItem): void;
|
|
40
|
+
handleFileSelect(file: FileStorageItem, event: React.SyntheticEvent): void;
|
|
36
41
|
handleRename(oldName: string, newName: string): void;
|
|
37
42
|
handleSessionOpened(session: DhSession, { language }: {
|
|
38
43
|
language: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileExplorerPanel.d.ts","sourceRoot":"","sources":["../../src/panels/FileExplorerPanel.tsx"],"names":[],"mappings":"AAEA,OAAqB,EAEnB,WAAW,EACX,eAAe,EAEhB,MAAM,0BAA0B,CAAC;AAClC,OAAO,YAAY,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIzC,OAAO,0BAA0B,CAAC;AAKlC,aAAK,SAAS,GAAG;IACf,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAGF,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,YAAY,CAAC,SAAS,CAAC;IACpC,UAAU,EAAE,YAAY,CAAC,YAAY,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAOD;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK,CAAC,SAAS,CACpD,sBAAsB,EACtB,sBAAsB,CACvB;IACC,MAAM,CAAC,SAAS,SAAuB;IAEvC,MAAM,CAAC,KAAK,SAAmB;IAE/B,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAItC;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,GAAG,OAAO;gBAU7C,KAAK,EAAE,sBAAsB;IA2BzC,iBAAiB,IAAI,IAAI;IAMzB,gBAAgB,IAAI,IAAI;IAgBxB,qBAAqB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAI1C,2BAA2B,IAAI,IAAI;IAOnC,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO/C,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,IAAI;IAU5C,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI;IAwB1E,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAMpD,mBAAmB,CACjB,OAAO,EAAE,SAAS,EAClB,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GACjC,IAAI;IAOP,mBAAmB,IAAI,IAAI;IAO3B,UAAU,IAAI,IAAI;IAIlB,QAAQ,IAAI,OAAO;IAMnB,MAAM,IAAI,SAAS;CAqCpB;;;;AAqBD,wBAEE"}
|