* SplitOpen: Update API to accept multiple queries
* Explore: Deprecate query in SplitOpenOptions and add queries
* Use queries in log samples
* Fix test
* Move layout to paneleditor, make SplitPaneWrapper more generic
* Read/write the size ratio in local storage
* Add min height to enable scrollbar
* Enable show/hide panel options
* Add new component to explore
* Add styles
* Bring in code from other branch
* Fix update size function, add min size to explore container
* Add window size, save width as a ratio
* Fix tests
* Allow for one child
* Remove children type definition
* Use library methods for min/max size instead of hooks
* Attach static generic data link to data frames in Explore
* WIP
* Always load correlations config when the query is run
This will be moved to Wrapper.tsx and called only once Explore is mounted
* remove comment
* Load the config when Explore is loaded
* Clean up
* Check for feature toggle, simplify cod
* Simplify the code
* Remove unused code
* Fix types
* Add a test for attaching links
* Revert package.json changes
* Display title provided in the correlation label
* Add missing mocks
* Fix tests
* Merge branch 'main' into ifrost/integration/attach-generic-data-link
# Conflicts:
# public/app/features/explore/Wrapper.tsx
# public/app/features/explore/state/main.ts
* Remove redundant async calls
* Do not block Wrapper before correlations are loaded (only delay the query)
* Test showing results after correlations are loaded
* Post-merge fix
* Use more consistent naming
* Avoid null assertions
Co-authored-by: Elfo404 <me@giordanoricci.com>
* Revert "Explore: Prevent panes from disappearing when resizing window in split view (#55696)"
This reverts commit 0a5aa19ca2.
* Revert "Explore: Add resize to split view, with Min/Max button (#54420)"
This reverts commit c3e4f1f876.
* Add split resize to Explore without keeping width in state
* debug commit
* ugly hack around split lib only supporting one child
* Use SplitView to accomodate one or two elements, remove debug code, fix test
* More cleanup, fix state action
* Fix even split from manual size scenario
* cleanup
* Add new state elements to test
* Handle scrollable on internal element for virtualized lists
* Left align overflow button for explore
* Change min/max buttons
* Apply suggestions from code review
Co-authored-by: Giordano Ricci <me@giordanoricci.com>
* Add more suggestions from the code review
* Fix problems tests found
* commit broken test with debug info
* Add test, remove debug code
* Remove second get of panes
* Remove second get of panes
Co-authored-by: Elfo404 <me@giordanoricci.com>
* First pass at using datasource UID when appropriate
* Fix tests
* be more lenient with lookup to accomodate different URLs
* Make test setup get mock work like real datasource get
* Fix the typing issue and remaining tests
* Fix PR feedback
* Load Rich History when the container is opened
* Store rich history for each pane separately
* Do not update currently opened query history when an item is added
It's impossible to figure out if the item should be added or not, because filters are applied in the backend. We don't want to replicate that filtering logic in frontend. One way to make it work could be by refreshing both panes.
* Test starring and deleting query history items when both panes are open
* Remove e2e dependency on ExploreId
* Fix unit test
* Assert exact queries
* Simplify test
* Fix e2e tests
* Fix toolbar a11y
* Reload the history after an item is added
* Fix unit test
* Remove references to Explore from generic PageToolbar component
* Update test name
* Fix test assertion
* Add issue item to TODO
* Improve test assertion
* Simplify test setup
* Move query history settings to persistence layer
* Fix test import
* Fix unit test
* Fix unit test
* Test local storage settings API
* Code formatting
* Fix linting errors
* Add an integration test
* Add missing aria role
* Fix a11y issues
* Fix a11y issues
* Use divs instead of ul/li
Otherwis,e pa11y-ci reports the error below claiming there are no children with role=tab:
Certain ARIA roles must contain particular children
(https://dequeuniversity.com/rules/axe/4.3/aria-required-children?application=axeAPI)
(#reactRoot > div > main > div:nth-child(3) > div > div:nth-child(1) > div >
div:nth-child(1) > div > div > nav > div:nth-child(2) > ul)
<ul class="css-af3vye" role="tablist"><li class="css-1ciwanz"><a href...</ul>
* Clean up settings tab
* Remove redundant aria label
* Remove redundant container
* Clean up test assertions
* Move filtering to persistence layer
* Move filtering to persistence layer
* Simplify applying filters
* Split applying filters and reloading the history
* Debounce updating filters
* Update tests
* Fix waiting for debounced results
* Clear results when switching tabs
* Improve test coverage
* Update docs
* Revert extra handling for uid (will be added when we introduce remote storage)
* Create basic plan
* Rename query history toggle
* Add list of supported features and add ds name to RichHistoryQuery object
* Clean up
Removed planned items will be addressed in upcoming prs (filtering and pagination)
* Handle data source filters
* Simplify DTO conversion
* Clean up
* Fix betterer conflicts
* Fix imports
* Fix imports
* Post-merge fixes
* Use config instead of a feature flag
* Use config instead of a feature flag
* Update converter tests
* Add tests for RichHistoryRemoteStorage
* Simplify test setup
* Simplify assertion
* Add e2e test for query history
* Remove duplicated entry
* Fix unit tests
* Improve readability
* Remove unnecessary casting
* Mock backend in integration tests
* Remove unnecessary casting
* Fix integration test
* Update betterer results
* Fix unit tests
* Simplify testing with DataSourceSrv
* Fix sorting and add to/from filtering
* Basic pagination
* Show load more only if there are items to load
* Post-merge fixes
* Change initial page limit to 100
* Fix unit tests
* Fix linting errors
* Test pagination
* Fix query migration
* Fix unit tests
* Fix prettier
* Remove full stop
* Do not show number of queries with partial results to avoid confusion
* Show number of displayed results when partial results are shown
* Load Rich History when the container is opened
* Store rich history for each pane separately
* Do not update currently opened query history when an item is added
It's impossible to figure out if the item should be added or not, because filters are applied in the backend. We don't want to replicate that filtering logic in frontend. One way to make it work could be by refreshing both panes.
* Test starring and deleting query history items when both panes are open
* Remove e2e dependency on ExploreId
* Fix unit test
* Assert exact queries
* Simplify test
* Fix e2e tests
* Fix toolbar a11y
* Reload the history after an item is added
* Fix unit test
* Remove references to Explore from generic PageToolbar component
* Update test name
* Fix test assertion
* Add issue item to TODO
* Improve test assertion
* Simplify test setup
* Move query history settings to persistence layer
* Fix test import
* Fix unit test
* Fix unit test
* Test local storage settings API
* Code formatting
* Fix linting errors
* Add an integration test
* Add missing aria role
* Fix a11y issues
* Fix a11y issues
* Use divs instead of ul/li
Otherwis,e pa11y-ci reports the error below claiming there are no children with role=tab:
Certain ARIA roles must contain particular children
(https://dequeuniversity.com/rules/axe/4.3/aria-required-children?application=axeAPI)
(#reactRoot > div > main > div:nth-child(3) > div > div:nth-child(1) > div >
div:nth-child(1) > div > div > nav > div:nth-child(2) > ul)
<ul class="css-af3vye" role="tablist"><li class="css-1ciwanz"><a href...</ul>
* Clean up settings tab
* Remove redundant aria label
* Remove redundant container
* Clean up test assertions
* Move filtering to persistence layer
* Move filtering to persistence layer
* Simplify applying filters
* Split applying filters and reloading the history
* Debounce updating filters
* Update tests
* Fix waiting for debounced results
* Clear results when switching tabs
* Improve test coverage
* Update docs
* Revert extra handling for uid (will be added when we introduce remote storage)
* Create basic plan
* Rename query history toggle
* Add list of supported features and add ds name to RichHistoryQuery object
* Clean up
Removed planned items will be addressed in upcoming prs (filtering and pagination)
* Handle data source filters
* Simplify DTO conversion
* Clean up
* Fix betterer conflicts
* Fix imports
* Fix imports
* Post-merge fixes
* Use config instead of a feature flag
* Use config instead of a feature flag
* Update converter tests
* Add tests for RichHistoryRemoteStorage
* Simplify test setup
* Simplify assertion
* Add e2e test for query history
* Remove duplicated entry
* Fix unit tests
* Improve readability
* Remove unnecessary casting
* Mock backend in integration tests
* Remove unnecessary casting
* Fix integration test
* Update betterer results
* Fix unit tests
* Simplify testing with DataSourceSrv
* Fix sorting and add to/from filtering
* Add migration for local storage query history
* Test query history migration
* Simplify testing DataSourceSettings
* Skip redundant migrations
* Revert error logging test
* Fix tests
* Update betterer results
* Change notification message after migration
* Ensure previous request is canceled when getting search results
* Add loading message when results are being loaded
* Show info message only if local storage is enabled
* Fix unit test
* Post-merge fixes
* Fix intergration tests
* Fix incorrect filtering
* Load Rich History when the container is opened
* Store rich history for each pane separately
* Do not update currently opened query history when an item is added
It's impossible to figure out if the item should be added or not, because filters are applied in the backend. We don't want to replicate that filtering logic in frontend. One way to make it work could be by refreshing both panes.
* Test starring and deleting query history items when both panes are open
* Remove e2e dependency on ExploreId
* Fix unit test
* Assert exact queries
* Simplify test
* Fix e2e tests
* Fix toolbar a11y
* Reload the history after an item is added
* Fix unit test
* Remove references to Explore from generic PageToolbar component
* Update test name
* Fix test assertion
* Add issue item to TODO
* Improve test assertion
* Simplify test setup
* Move query history settings to persistence layer
* Fix test import
* Fix unit test
* Fix unit test
* Test local storage settings API
* Code formatting
* Fix linting errors
* Add an integration test
* Add missing aria role
* Fix a11y issues
* Fix a11y issues
* Use divs instead of ul/li
Otherwis,e pa11y-ci reports the error below claiming there are no children with role=tab:
Certain ARIA roles must contain particular children
(https://dequeuniversity.com/rules/axe/4.3/aria-required-children?application=axeAPI)
(#reactRoot > div > main > div:nth-child(3) > div > div:nth-child(1) > div >
div:nth-child(1) > div > div > nav > div:nth-child(2) > ul)
<ul class="css-af3vye" role="tablist"><li class="css-1ciwanz"><a href...</ul>
* Clean up settings tab
* Remove redundant aria label
* Remove redundant container
* Clean up test assertions
* Move filtering to persistence layer
* Move filtering to persistence layer
* Simplify applying filters
* Split applying filters and reloading the history
* Debounce updating filters
* Update tests
* Fix waiting for debounced results
* Clear results when switching tabs
* Improve test coverage
* Update docs
* Revert extra handling for uid (will be added when we introduce remote storage)
* Fix betterer conflicts
* Fix imports
* Fix imports
* Simplify test setup
* Simplify assertion
* Improve readability
* Remove unnecessary casting
* Mock backend in integration tests
* Load Rich History when the container is opened
* Store rich history for each pane separately
* Do not update currently opened query history when an item is added
It's impossible to figure out if the item should be added or not, because filters are applied in the backend. We don't want to replicate that filtering logic in frontend. One way to make it work could be by refreshing both panes.
* Test starring and deleting query history items when both panes are open
* Remove e2e dependency on ExploreId
* Fix unit test
* Assert exact queries
* Simplify test
* Fix e2e tests
* Fix toolbar a11y
* Reload the history after an item is added
* Fix unit test
* Remove references to Explore from generic PageToolbar component
* Update test name
* Fix test assertion
* Add issue item to TODO
* Improve test assertion
* Simplify test setup
* Move query history settings to persistence layer
* Fix test import
* Fix unit test
* Fix unit test
* Test local storage settings API
* Code formatting
* Fix linting errors
* Add an integration test
* Add missing aria role
* Fix a11y issues
* Fix a11y issues
* Use divs instead of ul/li
Otherwis,e pa11y-ci reports the error below claiming there are no children with role=tab:
Certain ARIA roles must contain particular children
(https://dequeuniversity.com/rules/axe/4.3/aria-required-children?application=axeAPI)
(#reactRoot > div > main > div:nth-child(3) > div > div:nth-child(1) > div >
div:nth-child(1) > div > div > nav > div:nth-child(2) > ul)
<ul class="css-af3vye" role="tablist"><li class="css-1ciwanz"><a href...</ul>
* Clean up settings tab
* Remove redundant aria label
* Remove redundant container
* Clean up test assertions
* Load Rich History when the container is opened
* Store rich history for each pane separately
* Do not update currently opened query history when an item is added
It's impossible to figure out if the item should be added or not, because filters are applied in the backend. We don't want to replicate that filtering logic in frontend. One way to make it work could be by refreshing both panes.
* Test starring and deleting query history items when both panes are open
* Remove e2e dependency on ExploreId
* Fix unit test
* Assert exact queries
* Simplify test
* Fix e2e tests
* Fix toolbar a11y
* Reload the history after an item is added
* Fix unit test
* Remove references to Explore from generic PageToolbar component
* Update test name
* Fix test assertion
* Add issue item to TODO
* Improve test assertion
* Simplify test setup
* Rich History: improve local storage error handling
* Reduce number of max items and update docs
* Rotate not-starred items and add tests
* Add missing property to initial state
* Unify date in richHistory tests
* Show a warning message that rich history limit has been reached
* Add missing param
* Basic implementation of getLogsVolumeQuery method
* Add todos
* Add a switcher to automatically load logs volume
* De-scope dismissing logs volume panel
* De-scope logs volume query cancellation
* Remove todo
* Aggregate logs volume components in single panel
* Show logs volume only when it's available
* Aggregate logs volume by level
* Simplify aggregation
* Handle no logs volume data
* Add error handling
* Do not show auto-load logs volume switcher when loading logs volume is not available
* Remove old logs volume graph
* Clean up
* Make getting data provider more generic
* Provide complete logs volume data (error, isLoading)
* Display more specific error message
* Add missing props to mocks
* Remove setRequest method
* Mark getQueryRelatedDataProviders as internal
* Add missing dataQueryRequest and add a todo
* Remove redundant loading state
* Do not mutate existing queries
* Apply fix for zooming-in from main
* Post-merge fixes
* Create collection for data provider results
* Use more generic names
* Move aggregation logic to Loki logs volume provider
* Move LogsVolume to common types
* Update tests
* Post-merge fixes
* Fix mapping related data values
* Simplify prop mappings
* Add docs
* Fix property name
* Clean-up
* Mark new types as internal
* Reduce number of providers to logs volume only
* Simplify data structure to DataQueryResponse
* Move Logs Volume panel to a separate component
* Test logsVolumeProvider.ts
* Add observable version of datasource mock
* Test getLogsVolumeDataProvider method
* Test LogsVolumePanel
* Test logs volume reducer
* Clean up
* Clean up
* Fix test
* Use sum by to use level field directly
* Fix strict type errors
* Fix strict type errors
* Use "logs" instead of "unknown" if only one level was detected
* Add docs about logs volume
* Rename histogramRequest to logsVolumeRequest
* Use LogsVolumeContentWrapper all content types
* Move `autoLoadLogsVolume` local storage handling
* Fix strict error
* Move getting autoLoadLogsVolume to initial state
* Cancel current logs volume subscription
* Test cancelling subscriptions
* Update docs/sources/datasources/loki.md
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Update packages/grafana-data/src/types/explore.ts
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
* Inline container styles
* Ensure logs volume is aggregated per each subscription separately
* Simplify logs volume provider
* Type-guard support for logs volume provider
* Simplify event handlers to avoid casting
* Clean up and docs
* Move auto-load switcher to logs volume panel
* Fix test
* Move DataSourceWithLogsVolumeSupport to avoid cross referencing
* Simplify interface
* Bring back old histogram and hide the new one behind a feature flag
* Add missing props to logs histogram panel
* Clean up the provider when it's not supported
* Simplify storing autoLoadLogsVolume
* Remove docs
* Update packages/grafana-data/src/types/logsVolume.ts
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
* Skip dataframes without fields (instant queries)
* Revert styles changes
* Revert styles changes
* Add release tag
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
* Add router packages
* Get react app root work instead of Angular one
* Logger util
* Patch Angular routing ($routeProvider, $routeParamsProvider)
* Use react-router-dom history instead of separate dependency
* Add test routes
* Sidemenu - use Link instead of anchors
* Patch Angular $location service (stub)
* WIP: geting rid of $location provider from TimeSrv
* Intercept anchor clicks to use history under the hood
* Sync Redux location slice with history state
* Make login/logout work
* Debug routes for testing
* Make force login work
* Make sure query param change does not recreate page components
* Hide side menu in specified locations
* Make the dashboar route query parameters work, make panel edit menu work
* Enable more routes
* Fix side menu
* Handle view modes
* Disable playlist routes
* Make SafeDynamicImport work again
* Bring back router-debug
* Separate redux location sync from route rendering
* Refactor updateLocation to thunk and move force refresh(login) to it
* Fixing init dashboard issue
* Support switching between dashboards without an unmount of DashboardPage
* More fixes for init dashboard and panel edit
* More type fixes
* Moving angular location wrapper out of main LocationService, and fixing typescript issues
* Fixed last typescript errors
* LocationService: Move to runtime and remove getLocationService and export singleston const instead (#31523)
* Moving location service implementation to runtime and removing get function and making it a package const singleton
* Added test that used locationService directly
* removed unused import
* AngularApp: Moving angular dependencies and the app boot out of the main app into it's own file (#31525)
* Fixes angular panels by calling the monkey patch
* Moving angular stuff to to it's own files
* udpated
* Fixing clicking on divs and spans inside anchor
* Moving app notifications out of angular app and removing angular directive wrapper
* Moving search from angular to react and removing angular search wrapper
* Clean up, tried to remove the redux location wrapper but requires a big update for DashboardPage, so adding it back
* Moving AppWrapper to root to limit circular dependencies (app/core -> app/routing and back)
* Open and close search now works
* Hide sidemenu when in kiosk mode
* Restoring some keybindings like ESC key
* Removed kiosk events and simplified it, just handled through updating URL
* Fixing typescript errors
* Simplified GrafanaRouteComponentProps and renamed to ContainerProps
* renamed back
* Changed AlertRuleList to use GrafanaRouteComponentProps and location.search passed to it
* Removing the reloadOnSearch property, this is not needed now for react as react by default does not unmount components when only url match or query parmas change
* SafeDynamicImport causing unmount un every search update, not sure how to fix yet
* Fix signature for SafeDynamicImport so we do not create new route components on every route render
* Removing the redux location wrapper as it was causing errors, and making dashboard page work with RouteProps (location, match) etc
* Updating DashboardPage and SoloPanelPage to use match params and history location
* Fixed DashboardPage tests
* Fixing solo route tests
* LocationService: Rename getCurrentLocation to just getLocation
* do not intercept link clicks with target blank or self
* Experimental useUrlParams hook
* Update DataSourceSettingsPage to use router match params
* fix links with urls that have no starting / to work like before
* Fix forceLogin
* Add queryParams to GrafanaRouteComponentProps
* PanelEditor get rid of updateLocation and location state
* Improve grafana route query params typing
* Add getSearchObject to LocationService
* Use DashboardPAge queryParams instead of location.search parsing
* Fix DashboardPage typing
* Fix some tests weirdness
* Bring back KeyboardSrv
* Fixes typescript issues
* Team pages now use router match params
* Get rid of from GrafanaRouteComponent props
* Removed unnessary calls to getSearchObject when calling locationService.partial
* Updated DashboardPage tests after queryParams was added
* Fixing dashboard settings back
* GrafanaRoute: Adding tests and remove use of global locationService
* Fixing tests and typescript errors
* Bring back kiosk modes and add tests
* Fix TimeSrv tests
* Fix typecheck errors
* Fixing tests
* Updated SideMenu test to react-testing and wrapped component in Router, and fixed issue importing createMemoryHistory
* Get rid of routeChange event from TimeSrv from
* Fixed TopSectionItem test
* Trying to make basename work but failing
* Update TopSectionItem snapshot
* Fix TopSectionItem snapshot test
* Fix API keys creation
* Remove Angular dependencies from KeybindingSrv (#31617)
* Remove Angular dependency from KeybindingsSrv
* Fix tests and typecheck issues
* basename is starting to work
* Make dashboard save work
* KeybindingSrv: Remove as angular service and no usage angular scope
* So long bridge_srv, we won't miss you
* Update snapshots
* Dashboard: Refactoring ChangeTracker to use History api and no angular (#31653)
* Dashboard: Refactoring ChangeTracker to use History api and no angular
* Updated
* Removed logging
* fixed unit tests
* updated snapshots
* Mechanism for force reloading routes (#31683)
* e2e: Fixes various things in e2e scenarios after router migration (#31685)
* Explore: Update reading query params from router props and updating location via locationService (ReactRouter) (#31688)
* RoutingNG: Initial explore redux location to router location migration
* Updated explore Wrapper tests
* Fixing more tests
* remove loggin
* rename back to make naming consistent
* Fixing return to dashboard button
* fixing navigation to explore from dashboard
* updated routeProps
* Updated tests
* Make DashboardListPage work
* Fixing navigation after add new data source, and fixes explore e2e
* Fixing solo panel page
* PluginsPage now works
* RoutingNG: When parsing and rendering url search/query params preseve old logic of handling booleans and arrays (#31725)
* RoutingNG: When parsing and rendering url search/query params preserve old logic of handling booleans and arrays
* Fixed test
* Make snapshots list work
* fixed alert notification channel edit page
* Simplify LocationService, did not need special handling for login or forceLogin as target _self on link already handles that
* fixed UserAdminPage
* fixed edit orgs page
* Fixing LdapPage
* fixing dashboard import
* Fixed new folder page
* Fixed data source dashboards page
* fixing Folder permissions and folder settings page
* fixing snapshot list page nav model
* remove unused file
* Added placeholder page for playlist
* Moved browser compatability to index-template
* Restored 404/default page
* Fixed reset password page
* Fixed SignUpInvited page
* Fixing CreateTeam, Create user page, add panel widget
* Restore browwser file to make tests happy
* Fixed unit tests
* Removed unused import
* Replacing usage of updateLocation
* Fixed test
* Updating search filters to use history / location service for filters
* remove unused file
* AppRootPage fixed
* Fixing test and search issue
* Changes to support enterprise extensions
* remove console.log
* Removing more use of redux location
* Fixed signup page
* removed unused old angular controllers
* Fixing bugs
* one final bugfix
* Removed location from redux state
* Fixing ts issues and tests
* Fixing test issue
* fixing tests
* Fixing tests
* removed unused stuff
* Fixed search test
* Adding some doc comments
* Routing NG: Angular location provider patch (#31773)
* Patch Angulars $location provider
* Update public/app/angular/bridgeReactAngularRouting.ts
* Remove only test
* Update tests, disable loggers in test env
* Routing NG: remove $location provider usage (#31816)
* Remove dashboard_loaders
* Remove $location from Analytics service, track page views form GrafanaRoute
* Remove NotificationsEditCtrl
* Remove Angular dependencies from uploadDashboardDirective
* Update public/app/features/dashboard/containers/DashboardPage.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Update public/app/features/dashboard/containers/DashboardPage.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Remove unused test helpers (#31831)
* Playlist react (#31829)
* playlist list in react
* Playlist start
* Things started to work
* Updated
* Handle empty list
* Fix ts
* Fixes and kiosk mode stuff
* Removed unused events
* fixing ts issue
* Another ts issue
* Fixing tests
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
* fixed test
* Update public/app/AppWrapper.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Update public/app/AppWrapper.tsx
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Remove Angular dependency from DashboardLoaderSrv (#31863)
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.org>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
* Add GraphView component
* Add service map panel
* Add more metadata visuals
* Add context menu on click
* Add context menu for services
* Fix service map in dashboard
* Add field proxy in explore linkSupplier
* Refactor the link creation
* Remove test file
* Fix scale change when view is panned
* Fix node centering
* Don't show context menu if no links
* Fix service map containers
* Add collapsible around the service map
* Fix stats computation
* Remove debug log
* Fix time stats
* Allow string timestamp
* Make panning bounded
* Add zooming by mouse wheel
* Clean up the colors
* Fix stats for single trace graph
* Don't show debug config
* Add more complex layout
* Update layout with better fixing of the root nodes
* Code cleanup
* Change how we pass in link creation function and some more cleanup
* Refactor the panel section into separate render methods
* Make the edge hover more readable
* Move stats computation to data source
* Put edge labels to front
* Simplify layout for better multi graph layout
* Update for dark theme
* Move function to utils
* Visual improvements
* Improve context menu detail
* Allow custom details
* Rename to NodeGraph
* Remove unused dependencies
* Use named color palette and add some fallbacks for missing data
* Add test data scenario
* Rename plugin
* Switch scroll zoom direction to align with google maps
* Do some perf optimisations and rise the node limit
* Update alert styling
* Rename function
* Add tests
* Add more tests
* Change data frame column mapping to use column names
* Fix test
* Fix type errors
* Don't show context menu without links
* Add beta status to panel
* Fix tests
* Changed function to standard methods
* Fix typing
* Clean up yarn.lock
* Add some UI improvements
- better styling of the zoom buttons
- disable buttons when max reached
* Fix panel references after rename
* Add panel icon
* DataLinks: Removes getDataSourceSettingsByUid from applyFieldOverrides and data linking code
* Fixed test
* Fixed a few tests
* Fixed unit tests
* Removed old getDataSourceSettingsByUid from interface, still there for runtime backward compatability
* Split main reducer from item reducer
* Move query related redux to separate file
* Split more parts and tests
* Fix import
* Remove unused code
* Update public/app/features/explore/state/datasource.ts
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
* Add section comments
* Rename ExploreItem to ExplorePane
* Fix imports
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>