* Explore: store displayedFields in URL state
* Displayed fields: reset when queries change
* Add test
* LogRowMessageDisplayedFields: pass logRowMenuIcons props to component
* LogsMetaRow: use primary outline for reset button
* Logs: clear displayedFields from URL
* LogsPanel: add props to prepend or append icons to the log row menu
* LogsPanel: add test and type guard
* LogsPanel: add test
* Fix addonBefore position
* Refactor to be an array of ReactNode
* Remove comment
* chore: add docs
* Linting issues
* update eslint, tsconfig + esbuild to handle new jsx transform
* remove thing that breaks the new jsx transform
* remove react imports
* adjust grafana-icons build
* is this the correct syntax?
* try this
* well this was much easier than expected...
* change grafana-plugin-configs webpack config
* fixes
* fix lockfile
* fix 2 more violations
* use path.resolve instead of require.resolve
* remove react import
* fix react imports
* more fixes
* remove React import
* remove import React from docs
* remove another react import
* Add info tooltips to logs that have been sampled by adaptive logs
* review commends and linter changes
* make warnings match info
* fix betterer results
* wip: working version
* add delete buttons, put pinned logs on top,
* Use already available onPinLine prop
* cleanup
* Fix alignment of pinned log
* Limit to 3 pinned log lines
* Format tooltip message
* Lower to font size and adjust padding so pinned log title is fully visible
* Add internationalization support in Explore Logs
* Update json for i18n
* Test remove button
* Open content outline after pinning a log
* Remove console.log statements
* Minor changes
* Conflict stuff
* LogRowMessage: strip new lines when wrapping is disabled
* LogRowMessage: prevent conflicts between failed json parsing and unwrapping
* LogRowMessage: expand multi-line unwrapped logs when opening details
* Add unit test
* Prettier
* chore: update comment
* pass `getLogRowContextQuery` to component
* reset `appliedContextFilters` in `getLogRowContextQuery`
* open show context in new tab
* open window before crafting url
* only open in new tab if getRowContextQuery is set
* only open `about:blank`
* change conditional
* LogRow: detect text selection
* LogRow: refactor menu as component
* LogRow: add actions to menu
* LogRow: hack menu position
* Remove unsused imports
* LogRowMessage: remove popover code
* PopoverMenu: refactor
* LogRows: implement PopoverMenu at log rows level
* PopoverMenu: implement copy
* PopoverMenu: receive row model
* PopoverMenu: fix onClick capture issue
* Explore: add new filter methods and props for line filters
* PopoverMenu: use new filter props
* Explore: separate toggleable and non toggleable filters
* PopoverMenu: improve copy
* ModifyQuery: extend line filter with value argument
* PopoverMenu: close with escape
* Remove unused import
* Prettier
* PopoverMenu: remove label filter options
* LogRow: rename text selection handling prop
* Update test
* Remove unused import
* Popover menu: add unit test
* LogRows: update unit test
* Log row: hide the log row menu if the user is selecting text
* Log row: dont hide row menu if popover is not in scope
* Log rows: rename state variable
* Popover menu: allow menu to scroll
* Log rows: fix classname prop
* Log rows: close popover if mouse event comes from outside the log rows
* Declare new class using object style
* Fix style declaration
* Logs Popover Menu: add string filtering functions (#76757)
* Loki modifyQuery: add line does not contain query modification
* Elastic modifyQuery: implement line filters
* Modify query: change action name to not be loki specific
* Prettier
* Prettier
* Elastic: escape filter values
* Popover menu: create feature flag
* Log Rows: integrate logsRowsPopoverMenu flag
* Rename feature flag
* Popover menu: track interactions
* Prettier
* logRowsPopoverMenu: update stage
* Popover menu: add ds type to tracking data
* Log rows: move feature flag check
* Improve handle deselection
* Datasource test: fix describe nesting
* Parsing: export handleQuotes function
* Modify query: add functions to detect the presence of a label and remove it
* Loki: add support to toggle filters if already present
* Datasource test: fix describe nesting
* Loki: add support to toggle filter out if present
* Remove label: handle escaped values
* Datasource: add test case for escaped label values
* Loki: remove = filter when applying !=
* Remove selector: add support for Selector node being far from Matcher
* Modify query: add unit tests
* Elasticsearch: create modifyQuery for elastic
* Elastic modify query: implement functions
* Elasticsearch: implement modifyQuery functions in datasource
* Elasticsearch: update datasource test
* Loki modify query: check for streamSelectorPositions length
* Elasticsearch query has filter: escape filter value in regex
* Remove unused type
* Modify query: add functions to detect the presence of a label and remove it
* Remove label: handle escaped values
* Logs: create props to check for label filters in the query
* Log Details Row: use label state props to show visual feedback
* Make isCallbacks async
* Explore: add placeholder for checking for filter in query
* Datasource: define new API method
* Inspect query: add base implementation
* Remove isFilterOutLabelActive as it will not be needed
* Check for "isActive" on every render
Otherwise the active state will be out of sync
* Elasticsearch: implement inspectQuery in the datasource
* Logs: update test
* Log details: update test
* Datasources: update tests
* Inspect query: rename to analize query to prevent confusion
* Datasource types: mark method as alpha
* Explore: add comment to log-specific functions
* Remove duplicated code from bad rebase
* Remove label filter: check node type
* getMatchersWithFilter: rename argument
* Fix bad rebase
* Create DataSourceWithQueryManipulationSupport interface
* Implement type guard for DataSourceWithQueryManipulationSupport
* DataSourceWithQueryManipulationSupport: move to logs module
* hasQueryManipulationSupport: change implementation
`modifyQuery` comes from the prototype.
* DataSourceWithQueryManipulationSupport: expand code comments
* AnalyzeQueryOptions: move to logs module
* DataSourceWithQueryManipulationSupport: add support for more return types
* Fix merge error
* Update packages/grafana-data/src/types/logs.ts
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* DatasourceAPI: deprecate modifyQuery
* Explore: refactor isFilterLabelActive
* DataSourceWithQueryModificationSupport: rename interface
* Split interfaces into Analyze and Modify
* Query analysis: better name for interface
* Fix guard
* Create feature flag for active state
* Use new feature flag in Explore
* DataSourceToggleableQueryFiltersSupport: create a specific interface for this feature
* Rename feature flag
* De-deprecate modifyQuery
* DataSourceToggleableQueryFiltersSupport: Rethink types and methods
* Explore: adjust modifyQuery and isFilterLabelActive to new methods
* Loki: implement new interface and revert modifyQuery
* DataSourceToggleableQueryFiltersSupport: better name for arguments
* Elasticsearch: implement new interface and revert modifyQuery
* Loki: better name for arguments
* Explore: document current limitation on isFilterLabelActive
* Explore: place toggleable filters under feature flag
* Loki: add tests for the new methods
* Loki: add legacy modifyQuery tests
* Elasticsearch: add tests for the new methods
* Elasticsearch: add legacy modifyQuery tests
* Toggle filter action: improve type values
* Logs types: update interface description
* DataSourceWithToggleableQueryFiltersSupport: update interface name
* Update feature flag description
* Explore: add todo comment for isFilterLabelActive
---------
Co-authored-by: Sven Grossmann <sven.grossmann@grafana.com>
* Log row menu: refactor visibility
* LogRowMenuCell: display if mouse over or pinned
* LogRowMenuCell: use unique wrapper for all buttons
* Revert to using table row as position reference
* Log row message: update test
* Fix tests
* LogRow: handle mouse over behavior
* Logs: Add new LogRowContext types to grafana/data
* use right type for `RowContextOptions`
* add missing renames
* add show context modal
* no need to call
* removed unused css
* sort properties
* rename
* use correct
* use
* add tests for
* wip
* remove add/minus buttons
* add tests
* disable processing of context results in Loki
* moved into table to align properly
* remove imports
* add highlighting of opened logline
* improve scrolling behavior
* correct style for the table
* use correct query direction
* fix text
* use LoadingBar
* use overflow auto
* rename `onToggleContext` to `onOpenContext`
* add missing import
* mock scrollIntoView
* update unused props
* remove unused import
* no need to process context dataframes
* only show `LogRowContextModal` if `getRowContext` is defined
* remove unused param
* use `userEvent` rather `fireEvent`
* change to `TimeZone`
* directly use style classes
* revert change to public_dashboard_service_mock.go
* improved styling
* add missing await in test
* fix lint
* fix lint
* remove LogRow scrolling when context is opened
* remove references to `scrollElement`
* Update public/app/features/logs/components/log-context/LogRowContextModal.tsx
Co-authored-by: Matias Chomicki <matyax@gmail.com>
* fix lint
* add comment explaining `onCloseContext`
* add comment about debounced onClose
* add comments and remove `showRowMenu`
* scroll twice to correctly center the element
* revert double scrolling
* remove unnecessary `processDataFrame`
* trigger drone
---------
Co-authored-by: Matias Chomicki <matyax@gmail.com>
* add loki contextfilter component
* add `getLogRowContextUi` support to DataSourceAPI
* add `runContextQuery` to LogRowContextProvider
* pass `getRowContextUi` to `LogRowContext`
* adapt LogRowContext to show datasource ui
* implement LogRowContextUi in Loki
* add `logsContextDatasourceUi` feature flag
* change state to `Alpha`
* disable the feature if `logsContextDatasourceUi` is not set
* don't fetch labels in the constructor
* adjust to right height
* remove unnecessary eslint disable
* add test for LokiContextUi
* move code down in datasource.ts
* rename `refresh` to `runContextQuery`
* update datasource tests
* don't update if `updateFilter` fn changes
* organized imports in datasource.test.ts
* don't trigger on intialization changes
* change tag to `experimental`
* move `getLogRowContextUi` to props
* removed js-fields
* added buttons
* rename detectedField to field
* removed unused things from `logParser.ts`
* improve comment
* wip
* better way for statistics
* better hide-stats button
* update tests
* updated tests and var names
* made props optional again
* fix padding
* fix unused import
* removed test
* close elements
* renamed `LogRowMessageDetectedFields` to `LogRowMessageDisplayedFields`
* add active style to menu button
* changed comment in logParser
* updated ToolbarButton colors
* rename `Data Links` to `Links`
* fix stats button being wrongly highlighted
* report interaction on context open
* report interaction on context close_esc
* replace deprecated feature (KeyboardEvent.keyCode)
* update to report interaction on toggle context
* remove redundant if statement