* dbeaver/pro#4583 feat: add tab reordering functionality in NavigationTabsService
* dbeaver/pro#4583 feat: update tab filtering to support tabs order
* dbeaver/pro#4583 feat: add tab drag-and-drop functionality and associated tests
* dbeaver/pro#4583 feat: implement tab drag-and-drop functionality
* dbeaver/pro#4583 fix: adjust tab reordering logic to handle dragged tab position correctly
since our reordering logic is duplicating in two components and, moreover, I found a bug in one of the implementations, I decided to put all the common logic to a dedicated helper with test coverage to be sure we use the right logic everywhere.
* dbeaver/pro#4583 test: remove redundant tests for onReorder in useTabDragAndDrop
* dbeaver/pro#4583 refactor: update reorderTab method to remove return value
* dbeaver/pro#4583 feat: add tab reordering functionality to SqlResultTabs component
* dbeaver/pro#4583 feat: add tabs order persistence via useUserData hook
* dbeaver/pro#4583 feat: integrate react-dnd for tab drag-and-drop functionality
* dbeaver/pro#4583 chore: update deps
* dbeaver/pro#4583 feat: integrate @dbeaver/js-helpers for array reordering in useHeaderDnD
* dbeaver/pro#4583 refactor: simplify reorderArray implementation by extracting some logic to helpers
* dbeaver/pro#4583 refactor: extracted tab reordering to a separate hook
- moved the tab order persistence logic into a new useTabOrderPersistence hook to make the flow is more obvious (we use this default persistence only with tabs container)
- introduced new reorderStateKey tab state to have an identifier for a tab panel, use it in canDrop check to prevent cross-panel DnD
-replaced reorderable prop with reorderStateKey, because without a key you can't use reordering
* dbeaver/pro#4583 refactor: add dropAllowed state to useTabDragAndDrop for improved drag-and-drop UI
* dbeaver/pro#4583 chore: add a comment about reorderStateKey
* dbeaver/pro#4583 refactor: add safe guard in SqlResultTabs.tsx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* dbeaver/pro#4583 refactor: wrap onReorder function into useCallback for improved performance
* dbeaver/pro#4583 refactor: remove applyOrder method from ITabsContainer and update useTabOrderPersistence to not have dependencies on container
* dbeaver/pro#4583 refactor: use refactored hook in SideBarPanel and ToolsPanel
Since we are not mutating a container state anymore, we have to update sorting separately in TabList level because it reads directly from the container.
* dbeaver/pro#4583 refactor: remove fallback for stateKey
* dbeaver/pro#4583 refactor: replace hardcoded values with constants in useTabDragAndDrop
* dbeaver/pro#4583 refactor: add DragPosition type
* dbeaver/pro#4583 refactor: remove dependencies in TabsState effect
* dbeaver/pro#4583 refactor: remove stateKey from useTab hook
* dbeaver/pro#4583 feat: add panelId prop to SideBarPanel and use as persistence key
* dbeaver/pro#4583 refactor: persistence key in useTabOrderPersistence
* dbeaver/pro#4583 feat: add reorderArrayWithOrder helper and update SqlResultTabs to use it
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#7549 refactor: adjust padding and color for disabled select state to unify view between disabled controls
unify icon view as well
* dbeaver/pro#7549 style: fix if clause
* dbeaver/pro#5085 sorts users alphabetically + shows new users on top
* reverts sorting for enabled and disabled users (required backend to sort properly)
* cleanup
* removes repetitive filters and sorting
* simplifies users logic + user.createdAt is number type
* refactor: sortUsersById -> compareUsers
* compare new users
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#7480 fix: preloads only connection info by key (not all) to prevent connectioInfoResource loading of all data and all following handlers actions
* adds console error and return empty array for origin info loader
* warning instead of error
* dbeaver/pro#5078 adds chart export
* adds ExportImageDialog and reuses it across the app
* uses canvas2html for downloading images
* Revert "uses canvas2html for downloading images"
This reverts commit b59374cf85.
* moves transformClassesToStyles to helpers
* transforms styling attributes to computed styles
* adds file name
* fixes translations
* fixes styles for png image so it do not exports in black&white mode with incorrect sizing
* fixes styles for svg export
* uses domToImage library to save chart with legend
* cleanup
* moves helpers back to d3js diagrams
* cleanup
* uses html-to-image instead of dom-to-image
* cleanup
* pr fixes
* replaces the lib
* fixes svg so it is not blur
* validation for image urls
* cleanup
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
The problem was that In ReactCodemirror, the updateListener calls onChange whenever the document changes and it's not marked as a remote transaction, but in value panel, when we switch changes, the new value coming to the panel was considered as the user change.
So, update listener were calling onChange from TextValuePresentation which calls editAction.set() and changes the real cell value.
In order to fix it, this commit mark programmatic updates by dispatching transaction annotations together with a change.
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#6026 feat: merge value panel tabs in one group
move all text representations to the first tab level
specific representation is used if present (boolean, image)
auto type detection is used only for text
* dbeaver/pro#6026 refactor: remove unused CSS files for TextValuePresentation
* dbeaver/pro#6026 refactor: remove automatic state update in ValuePanel component
* dbeaver/pro#6026 refactor: update content type handling in ValuePanel
Move all the content type determination logic into the hook
Simplify the component
* dbeaver/pro#6026 refactor: consolidate content type handling in useAutoContentType hook
* dbeaver/pro#6026 fix: show scroll on tabs in value panel when overflow
* dbeaver/pro#6756 adds Menu to ui-kit, core-blocks + uses it in connection properties form
* allows to render any items not only strings
* dbeaver/pro#6756 adds context menu (has freeze on click)
* cleanup
* reverts object menu cell usage of new menu (problems with portal - infinite rerender)
* ui fixes
* reverts context menu logic
* adds hover styles
* cleanup
* removes MenuField
* adds combobox instead of PropertyValueSelector
* adds ability to have custom value for comboboxes + uses inside driver properties
* allows to revert values in combobox
* adjusts combobox api with correctly working custom value
* cleanup
* adds documentation for the Menu
* fix: combobox and driver properties
* chore: remove unused component
* chore: cleanup styles
* chore: add value tooltip
* fix: remove default value from combobox
* fix: tooltips
* build fix
* reverts old behavior with default value for combobox
* removes button styles + adds max width for the items
* Revert "reverts old behavior with default value for combobox"
This reverts commit 2a92c00f32.
* removes double focus
* fixes placeholder so it is not undefined string
* fixes value placeholder + moves title to input
* build fix
* fixes border behavior
* adds default value for property items
* fix: improve combobox types
* fix: use default value
* adds layers to InputField and moves border-offset-layout
* fix: eslint
* Revert "adds layers to InputField and moves border-offset-layout"
This reverts commit 272baafab6.
* reverts styles fixes for double border
* cleanup
* adds medium size to ui kit
---------
Co-authored-by: Alexey Potsetsuev <wrouds@gmail.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>