* 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#6639 fix: don't render table error component when no error
We used to render TableError component all the time no matter if we have an error or not, just hiding this component visually. This approach breaks accessibility because Table error component was still reachable from a keyboard or a screen reader. This fix completely removes the node from DOM if the error is not visible.
* dbeaver/pro#6639 fix: change tabindex of TableError component
previous fix rendered this component only if error is present. That fix was wrong because we want to always keep that component in DOM to animate it properly in case of an error. That why we decided to just change the tabindex to -1 when there is no error to exclude it from tab path.
This fix is also adds aria-hidden attribute to hide this component completely from the accessibility tree when it's not visible.
* dbeaver/pro#6639 style: indent
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#5471 fix: "Delete" data viewer action tooltip
* dbeaver/pro#5471 refactor: "merge" save and save as script actions
We used to have two buttons with different shortcuts for saving SQL as a script(first save) and saving already created script (updating). On UI they had the same icon and were more or less identical for the user. We decided to use the same shortcut and labels for both buttons (mod + S).
* dbeaver/pro#5471 feat: adds Find and Comment shortcuts to the shortcuts list
* dbeaver/pro#5471 refactor: use common l10n keys for save/undo/redo
* dbeaver/pro#5471 refactor: use key bindings API for Delete action in TableView
* dbeaver/pro#5471 refactor: use key bindings API for add, duplicate and revert actions
* dbeaver/pro#5471 fix: extra import
* dbeaver/pro#5471 refactor: don't use a symbol for delete shortcut
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#6472 fix: restore focus after menu actions and on syncFocus
* dbeaver/pro#6472 refactor: revert changes with using restoreFocus function from context
* dbeaver/pro#6472 fix: delete row from a context menu works as with a hotkey
set to null and revert also keep focus in place
* Revert "dbeaver/pro#6472 fix: delete row from a context menu works as with a hotkey"
This reverts commit f54abf3956.
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#6189 feat: group extra tools
* fix: context menu size
* fix: make context menu more compact
* fix: context menu shortcuts
* fix: change color for shortcuts in context menu
* fix: codestyle
* fix: revert more tools
* fix: submenu arrow position
* fix: show output
* fix: upload / download tooltips
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#5789 refactor: add ButtonIcon component instead of Button.Icon
* dbeaver/pro#5789 refactor: button components across whole application to use UIKit button and UIKit variables
- Rewrite Button.css(former button.module.css) file to define button styles for better maintainability and scalability
- Added props to the Button component for Icons: 'size' and 'placement', currently used only in PropertiesTable (Add property)
- Changed button modifiers to 'variant' swapping unelevated mod to primary(default one, so mod just deleted) and outlined mod to variant secondary.
- In one case changed raised mod to danger variant (deleting a license)
* dbeaver/pro#5789 refactor: fix Button component styling and removed redundant css file
* dbeaver/pro#5789 style: clean up button formatting across multiple components
* dbeaver/pro#5789 refactor: update Tailwind CSS import to use layer directive
* dbeaver/pro#5789 refactor[kit]: add disabled state styles for buttons
* dbeaver/pro#5789 refactor: enhance button styles for disabled state
* dbeaver/pro#5789 fix button problems
* dbeaver/pro#5789 fix: change layer name from theme to base in color styles
* dbeaver/pro#5789 refactor: update button padding from 16px to 15px
* dbeaver/pro#5789 refactor: adjust button gap and update InputFiles button props
* dbeaver/pro#5789 style: center align button in SSHKeyUploader component
* dbeaver/pro#5789 fix: update button classes to use inline-flex for better alignment
* dbeaver/pro#5789 fix: remove initial background from tab styles
* dbeaver/pro#5789 fix: move cursor pointer rule to button container
* dbeaver/pro#5789 fix: update checkbox SVG fill property for proper rendering
* dbeaver/pro#5789 fix: add variant prop to Button component for styling options
* dbeaver/pro#5789 fix: add InlineEditor to CSS layer to compete with theme Important! border-color
* dbeaver/pro#5789 fix: add min-width to button styles for consistency
* dbeaver/pro#5789 refactor: adjust margin for trigger element in context menu
first of all it's done to fix autotests and the second reason is to visually balance the cell with menu
* dbeaver/pro#5789 fix: make boolean great again
---------
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>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
* #5362 refactor: move blob formatter to shared codebase
* #5362 refactor: remove value prop from BlobFormatter
* #5362 refactor: move some of result set value checkers to common
* #5362 feat: update some result set api methods
make value type for safe using unknown instead of any,
added string fallback representation for complex values
* fix: getStringFallbackForComplexValue
* #5362 fix: getStringFallbackForComplexValue always cast to string
* #5362 fix: format
* #5362 chore: update deps
* #5362 fix: double imports
* #5362 fix: yarn lock
* chore: update yarn
* fix: reset yarn lock to devel state
* #5362 ci: change chunking
Previous implementation couldn't handle cyclic dependencies correctly. We noticed it in that ticket because we started to move some logic to common packages and changed existing packages connections. I tried many options to organize chunks from very simple(just putting everything to one bundle) to very complex(by adding helper to find circular deps between modules and putting them to one chunk) but none of them looked ideal. Complex solution is prone to errors, especially with vendor packages. I find this solution at least bearable until Vite ships Rolldown, then we can rethink it one more time.
* #5362 fix: arrow-body-style
* fix: improve chunk splitting
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Wroud <wrouds@gmail.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* СB-6265 sets up vitest instead of jest
* CB-6265 gets back core-utils tests
* СB-6265 gets back react-testing-library tests
* СB-6265 gets back some tests from another plugins
* CB-6265 renames dist -> lib in each plugin + removes all jest from the repo
* CB-6265 disables watch mode so build can go on
* CB-6265 extends tests types for react-testing-library
* CB-6265 reverts dist->lib rename cause it contains other assets also
* CB-6265 moves setupFiles to the vitest.config.ts
* CB-6265 pr fixes
* CB-6265 fixes tests run for Windows
* CB-6265 removes global: true in config + uses jest-dom/vitest lib to have extended expect types
* CB-6565 removes unused deps
* СB-6265 improves performance of the test x10 times
* CB-6265 gets back renderInApp, fixes vitest setup reset config for mocks, cleans up
* CB-6265 reset -> restore all mocks
* CB-6265 fixes unit tests
* CB-6265 vitest.setup.ts cleanup
* CB-6265 timestamp to date shows military time both: on unix and windows (win tests fix)
* CB-6265 improves tests running (sequential run instead of parallel)
* CB-6265 cleanup
* CB-6265 eslint fix
* CB-6265 eslint fix 2
* CB-6265 reverts useCombined handler
* CB-6265 reverts some tests
* CB-6265 removes all redundant timer configs
* Merge branch 'devel' into CB-6265-return-front-unit-tests-after-migration
* CB-6265 pr fixes
* CB-6265 fixes time for windows
* CB-6265 removes default fake timers before each test
* #5140 fix: duplicate hotkeys should work in tables without primary key
* #5140 fix: force update table data on save if model doesn't have element identifier
* #5140 refactor: move refresh model logic to datasource saveData method
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* CB-6207 add order to setting group
* CB-6207 use method instead of const value
* CB-6207 remove const
* CB-6207 sort on tree level
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* CB-6181 fix: show save/cancel buttons in json docs
* CB-6181 refactor: change condition for SAVE/CANCEL buttons
The problem is that for select 1 in TE we get different result from other product, because in CE/EE we use ResultSetFooterMenuService, while for TE we use regular TableFooterMenuService. model.source.isReadOnly flag doesn't return true anymore since we extracted hasRowIdentifier flag from it, so we get redundant buttons in tables like that in TE.
Since the only difference is products where we are executing this script, it's quite hard to detect it inside a component. I decided to check editor's features, they are empty in this case (select 1) in all products, so we can be 100% sure that if there are no features, we don't need any buttons.
The other problem that for Document type of data format we also don't have features (and we use the same footer menu service). If it's not read-only, we need to have those buttons to save/cancel edits. The first solution is to check data format is Document (or check the editor type or to try get action with needed type). The other solution that I used is to check hasRowIdentifier flag(hasElementIdentifier) because editable documents will have it true, while datasets like select 1 don't have them. It looks more generic for me and should work in more cases in future
* СB-6181 refactor: update isReadonly flag for resultset
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* CB-6063 feat: add ability to import data without PK
* CB-6063 feat: add ability to insert rows to tables w/o PK using actions
removes isImportAllowed flag, adds hasRowIdentifier, uses it in place of forbidden actions
* CB-6063 refactor: use only false value for hasRowIdentifier flag
* CB-6063 fix: revert logic in hasRowIdentifier
* CB-6063 refactor: rename property
* CB-6063 fix: return lock icon back for tables w/o identifier
* CB-6063 fix: hasRowIdentifier in getResult
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: Ainur <59531286+yagudin10@users.noreply.github.com>
* CB-3508 create events for session async tasks
* CB-3508 remove redundant events
* CB-3508 update async web task event logic
* CB-6000 refactor: migrate AsyncTask code to core-root package
* CB-6000: fix
* CB-3508 use only update async task event
* CB-3508 add result info to async task event
* CB-6000 feat: change the way of updating task state
* CB-6000 refactor: rename type and property
* CB-6000 fix: use id from server
* CB-3508 do not have results in task info event
* CB-6000 changes after BE update
* CB-6000 fix: set only status on status update
* CB-3508 fixes after review
* CB-6000 refactor: task id
return back task id generation and saving on creation. Added second map filled on running and linking backend Id and frontend Id. Added helper method to get task
* CB-6000 refactor: handle race condition
add pending events map to save last status if it's came earlier than we saved the task
* CB-6000 refactor: AsyncTask creation
* CB-3508 fixes build
* CB-6000 fix: retry update task info later if locked
* CB-6000 refactor: add a comment about delayed update
---------
Co-authored-by: Andrey Sychev <nukemoore@gmail.com>
Co-authored-by: Sychev Andrey <44414066+SychevAndrey@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* CB-5831 migrate data grid context menu
* CB-5831 use switch instead of return
* CB-5831 migrate save actions
* CB-5831 apply primary color
* CB-4071 simplify logic
* CB-4071 simplify logic
* CB-4071 change naming
* CB-4071 review fixes
* CB-4071 add items based on condition
* CB-4071 remove old context menu
* CB-4071 pass handlers to panel
* CB-4071 add gap to the menu
* CB-4071 check data source
* CB-4071 support prev behaviour
* CB-4071 make context more strict
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>