* New logs panel: add basic show unique labels support
* LogList: switch to useMeasure to detect overflow
* LogList: remove debounce from size calculations reset
* Update test
* LogLine: keep unique labels expanded state between re-renders
* Remove hardcoded true
* LogListModel: add new property
* LogLine: switch to custom resize observer
* Revert removed changes
* Imports order
* Add missing function call in effect
* LogList: use improved debouncing for overflow
* LogLine: refactor resize listeners
* LogLine: mix observer with animation frame
* Prettier
* LogLabels: make button smaller
* LogLine: fix unwrapped unique labels
* Prettier
* LogListContext: sync mode only if not empty
* Revert "LogListContext: sync mode only if not empty"
This reverts commit 2b78249b35.
* module: remove default value
* LogLineDetails: show border right when controls are disabled
* LogLineDetails: update styles
* Update types in test
* Update background, border, and shadow
* Close details: fix tooltip
* LogLine: implement custom highlight renderer
* Log line: fully replace highlighted body with highlight tokens
* processing: update test
* Add unit test
* Add deeply nested JSON test
* processing: update clone function
* Scroll to log line: find by uid
* LogLineDetailsLog: check if the log contains ansi
* Prettier
* LogListControls: add third state to line wrapping
* LogListContext: decouple wrapLogMessage and prettifyJSON from state object
* Processing: reformat JSON according to prettifyJSON
* LogListControls: update class names and colors
* onLogOptionsChangeType: update type signature
* Update type
* Update tests
* Dont translate the plus sign
* Comments
* LogLineDetails: get link details from href
* links: create module
* LogList: pass time zone and time range to Details
* LogLineDetailsTrace: create component
* InlineLogDetails: pass time range and time zone
* LogLineDetailsTrace: show loading and error messages
* Update tests
* LogLineDetailsTrace: update message styles
* Prettier
* Add test
* LogLineDetails: add embedded metric test
* Prettier
* LogLineDetailsTrace: use unique request id
* LogLineDetailsTrace: reset state when props change
* Chore: rename
* Chore: rename
* links: add integration test
* Prettier
* LogLineDetails: add open and close events
* LogLineContext: add interval picker
* Log Context: allow to customize the time window around the log
* Loki: support custom time window
* LogLineContext: implement variable time window
* Remove console
* LogLineContext: store and format options
* LogLineContext: replace radio with combobox
* LogLineContext: run time window on the first request
* InfiniteScroll: use loading to prevent fake events
* Chore: update old comment
* Minor reorg
* Clean up unnecessary styles
* LogLineContext: fix overflow and scroll
* LogList: fix loading prop
* Update comment
* Translations
* Update public/app/features/logs/components/panel/LogLineContext.tsx
* LogLineContext: move default to constant
* LogLineContext: add test
* Prettier
* New Logs Context: Generic DS support for time window option (#109934)
* chore: add supportsAdjustableWindow to logs context interface
* Build
---------
Co-authored-by: Galen Kistler <109082771+gtk-grafana@users.noreply.github.com>
* LogLine: don't run overflow check with unwrapped logs
* InfiniteScroll: don't listen to scroll events without scroll
* InfiniteScroll: minimize use of element.scrollHeight
* LogLineDetails: constrain to 95vw
* LogList: process logs while streaming
* Remove unused prop
* InfiniteScroll: update test
* Update test
* Inline Log Details: read max width from context
* Remove console
* processing: display nanoseconds if present
* Nanoseconds: add control in log line menu
* virtualization: adapt to timestamp format
* Translations
* LogLine: update test
* virtualization: update test
* LogLineMenu: update test
* LogListControls: add third state for new logs panel timestamps
* Logs Panel: expose as a new panel option
* Translations
* Logs Panel: set timestamp resolution from panel config
* Module: add default value
* LogLine: update test
* Spelling
* chore: rename setter
* LogListControls: use custom button for resolution
* Translations
* Translations
* Prettier
* Logs Panel: conditionally show timestamp and details options
* Add integration test
* LogLineContext: initial support
* LogLineContext: infinite scroll bottom
* LogLineContext: clean up styles and support both scrolls
* InfiniteScroll: support top scrolling
* LogLineContext: support center matched line
* LogLineContext: read options from storage
* LogLineContext: move padding container
* LogLineContext: reset on ui change
* LogLineContext: improve sort order and fix open in split
* LogLineContext: show log line
* Translations
* LogsPanel: integrate new context component
* LogLineContext: add unit test
* Prettier
* Remove unused import
* InfiniteScroll: add "scroll to load more" top
* LogLineContext: rename collapsible
* Update tests
* LogLineContext: refactor center button
* LogLineContext: handle overflow in small viewports
* LogLineContext: format referenced log line
* Memoize
* LogLineContext: make modal bigger
* LogList: improve a11y
* LogLineContext: flexbox magic
* LogLineContext: revert center button change
* LogsPanel: hide overflow
* LogLineContext: responsive min-height
* LogLineContext: fix wrap log message
* InfiniteScroll: improve direction handling
* Add feature flag
* Implement feature flag
* InfiniteScroll: report direction
* New Logs Panel: Add events for Panel and Details
* Logs Panel: add noInteractions property
* New Logs Panel: conditionally report interactions
* Test
* LogLine: remove new lines in unwrapped mode
* Displayed fields: fix displayed fields when the body is included
* LogLine: prevent overflows from extremely long lines with incorrect width measurement
* Update tests
* virtualization: test calculateFieldDimensions
* getGridTemplateColumns: consider displayed fields to set the grid sizes
* LogList: hide overflowing fields in unwrapped mode
* processing: extract regex
* LogLine: improve hover and selected state
* virtualization: strip ansi color codes for measurement
* Update tests
* LogLine: improve log line pre-resize state
* Revert "LogLine: improve log line pre-resize state"
This reverts commit a6b4ddded5.
* LogLine: improve hover/active color
* LogList: memoize styles
* virtualization: refactor to support multiple instances
* LogList: refactor to support multiple virtualization instances
* Update tests
* LogLine: unfocus test
* virtualization: refactor class to use the provided font size
* LogLine: split component to reduce re-renders
* Logs Panel: remove default value to it's taken from local storage code
* processing: do not remove newlines, let truncation handle
* LogList: check and pass unescaped content to context
* LogLine: prevent mutation of searchWords
* grammar: use parseFlags
* grammar: escape regex
* LogList: add key bindings hook
* LogListContext: add search support
* LogList: create and integrate LogListSearch
* useKeyBindings: close search with escape
* LogListSearch: implement go to results
* LogLine: support highlight in logs with ansi colors
* LogListSearchContext: extract from LogListContext
* LogListSearch: highlight matches in ansi logs
* LogListSearch: fix count
* LogListSearch: implement optional results filtering
* Translations
* LogListSearch: display within the panel and add tooltip
* Translations
* LogList: highlight search words and search matches
* LogListSearch: remove ufuzzy
Unfortunately we can't highlight ufuzzy matches
* LogListSearch: clean up removed ufuzzy implementation
* Prettier
* LogListSearch: search in displayed fields
* useKeyBindings: switch to native event listeners
* LogListSearch: fix effect loop
* LogListSearch: remove character so people don't think this text comes from AI
* LogLine: add text search test cases
* LogList: add integration test case
* LogListSearch: use uncontrolled input and react transitions
* LogListSearch: import t from i18n
* LogListControls: add search control
* LogListSearch: escape regexes
* LogList: create font size option
* LogList: prevent option fontSize bouncing
* LogListContext: fix stored container size bigger than container
* LogList: render smaller font size
* virtualization: adjust to variable font size
* virtualization: strip white characters of at the start successive long lines
* LogList: add font size to log size cache
* LogList: use getters instead of fixed constants
* LogLine: prevent unnecessary overflow calls
* virtualization: strip ansi color codes before measuring
* LogListDetails: adjust size on resize and give logs panel a min width
* LogsPanel: add showControls as a dashboard option
* virtualization: update test
* virtualization: add small test case
* processing: update font size
* LogListControls: update test
* Extract translations
* Logs Panel: enable controls by default
* LogListContext: update mock
* ControlledLogRows: add missing prop
* LogLine: remove height ref
* LogList: dont touch the debounced function on successive calls
* LogLine: update test
* LogsPanel: make controls default to false again
* LogsPanel: make controls default to false again
* LogLineDetails: fix height resizing and make close button sticky
* LogLine: memo log component
* LogLineDetails: fix close button position
* New Logs Panel: Add Popover Menu support (#106394)
* LogList: add popover menu support
* LogList: test popover menu
* Chore: remove unnecessary optional chain op
* LogLinedDetails: fix close button position with and without scroll
Reject GitHub secrets / reject-gh-secrets (push) Waiting to runDetails
Run dashboard schema v2 e2e / dashboard-schema-v2-e2e (push) Waiting to runDetails
Dispatch sync to mirror / dispatch-job (push) Waiting to runDetails
publish-kinds-next / main (push) Has been cancelledDetails
* LogsPanel: integrate new panel via feature flag
* Log Line: move sampled/errors/deduplication count outside of log line body
* LogList: increase overscan count
* Logs Panel: enable deduplication for infinite scrolling
* Logs Panel: remove margin overflowing drilldown
* Logs Panel: add missing dependency to effect
* Logs Panel: pass missing callback
* Remove console log
* LogLine: show cursor pointer only when interactable
* LogLineDetails: make resize handler more obvious
* LogsPanel: add missing props to from panel
* LogLineMenu: add support for custom items
* LogsPanel: pass custom menu items to LogList
* Fix imports
* Chore: comments and missing argument
* LogLineMenu: pass log to event listener
* LogListContext: filter log details when no longer present in the new response
* chore: log
* LogsPanel: conditionally show options per feature flag status
* LogLine: align logs when some of them are sampled or with errors
* Chore: update tests
* LogLineMenu: test custom options
* LogsSamplePanel: show controls
* LogsPanel: move return after hooks to prevent bugs
* LogList: add version with no scroll
* LogList: fix support for permalinked and pinned logs
* LogLineDetails: improve resizable
* LogList: improve height adjustment when details are open
* LogList: let the people select text
* Revert "LogList: add version with no scroll"
This reverts commit f26cdce696.
* LogList: update test
* New Logs Panel: rename permalinkedRowId to permalinkedLogId
* LogListContext: update mock
* ControlledLogRows: implement custom scrollIntoView
* Logs Panel: fix re-render regression
* LogLine: tweak hover and expanded colors
* LogLine: introduce truncation limit
* Processing: turn LogListModel into a class
* LogLine: introduce collapsed/expanded state and read from model
* Virtualization: correct extra line for controls in size
* LogLine: fix collapsed state initialization
* Add new criteria to define long lines to truncate
* Virtualization: better truncation limit
* Check collapsed state based on container size
* Update function name
* Extract translations
* LogLine: update unit test
* virtualization: add unit test
* processing: update unit test
* Fix focused test
* processing: process fields on demand
* Logs: consider loading state from explore
* LogList: improve resize and recalculation
* chore: build?
* LogLabels: add displayMax property
* MetaInfoText: prevent label wrapping
* LogsMetaRow: remove unescaped content and max characters
* LogsMetaRow: use font weight normal
* LogLabels: add button to collapse back
* LogsMetaRow: set line height
* LogsMetaRow: save common logs state
* LogsMetaRow: update unit tests
* LogLabels: update unit test
* LogListContext: add forceEscape option
* LogListContext: move forceEscape and hasUnescapedContents
* LogListControls: move forceEscape to controls
* LogList: read forceEscape from context
* i18n
* LogListControls: test new control
* Update betterer
* logsModel: update test
* LogLabels: replace characters with icons
* Prettier
* LogLabels: add aria labels
* i18n
* Update tests
* Update test
* LogListNavigation: create component
* LogListNavigation: make it optional
* Refactor Navigation into Controls
* Explore Logs: hide old panel options
* LogListControls: add more controls and apply new styles
* LogListControls: update width
* Remove console log
* LogList: wrap component in context
* LogListContext: make it stateful
* LogListControls: connect with context
* LogListContext: sync displayed fields
* LogListContext: add syntax highlighting control
* LogLine: improve color with highlighting off
* LogListControls: improve button styles
* LogListControls: add sort order option
* LogListControls: add dedup strategy
* LogListContext: sync prop changes with state
* LogList: add option change callback
* LogListContext: sync external changes only when showControls is disabled
* LogListContext: unify sync effect
* LogListControls: improve buttons active css
* LogListContext: add optional storage support
* LogList: make syntaxHighlighting and read from store or default to true
* LogsPanel: add support for new options
* Generated file
* Update tests
* New Logs Panel: add showControls option
* LogList: make eventBus optional
* LogsPanel: expose syntaxHighlighting
* LogsPanel: expose grammar to plugins
* Remove incorrect legacy file
* LogListControls: allow options change with controls enabled in panel editor
* LogLine: apply no-highlighting class to ansi wrapper
* LogListControls: add frontend level filtering
* LogList: filter by filterLevels
* LogListControls: allow filterLevels in dashboards
* LogLine: update unit tests
* LogLineMenu: update unit test
* LogListControls: add unit test
* Revert
* LogList: add unit test
* LogList: add onLogRowHover support
* LogList: test hover events
* LogsPanel: add unit test
* LogLine: use theme color for errors
* LogLine: minor tweak to hover state
* Chore: fix test case name
* LogListControls: add border
* LogListControls: prevent default on wrap toggle click
* LogLine: switch info and debug colors
* ContentOutline + LogControls: sync displayed levels and minor outline improvements
* LogListContext: sync with external filterLevel changes
* Logs: work with arrays of LogLevel and not plain strings
* Fix type
* LogListControl: increase controls size
* Create LogLineMenu component
* Fine tune icon width
* LogLineMenu: Add placeholder options
* utils: create reusable handleOpenLogsContextClick
* LogLineMenu: add callbacks to menu items
* LogListContext: create component
* LogList: use log list context to connect menu callbacks
* LogLine: add pinned style
* Remove unused imports
* LogLine: add unit test
* LogLine: add menu test case
* LogLineMenu: add unit test
* LogLineMessage: add unit test
* LogListContext: add unit test
* Remove unused code
* Extract translations
* Fix handleOpenLogsContextClick
* Chore: memoize styles
* Virtualization: update node used for underflow detection
* Use useStyles2 instead of manually memoizing
* Virtualization: export getter instead of variable
* Open context: move stopPropagation to the old panel code
* Logs: add new container class
* LogList: add displayedFields and getFieldLinks props
* Render displayed fields
* LogLine: rename function
* Refactor log dimensions
* Generate styles in parent component
* Log List: implement tabular unwrapped logs
* Rename class
* Log line: center fields
* Parametrize field gap
* Virtualization: update measurement to support displayed fields
* Shorten visible level
* Do not calculate dimensions when logs are wrapped
* Logs Navigation: fix width when flag is enabled
* Pass styles to LogLineMessage
* Formatting
* Fix unwrapped logs when showTime is off
* LogLine: update css selectors for fields
* Create base components
* Create measurement service
* Add container for list
* Use measurement to render virtualized log lines
* Match rendered styles in 2d context for measuring
* Improve virtualization initialization and handle resize
* Introduce log line processing
* Virtualization: fix measurement of lines with line endings
* Virtualization: include scrollbar width in calculation
* Remove logs
* Virtualization: optimize text measurement
* Add support for forceEscape
* Log line: properly style wrapped/unwrapped lines
* Virtualization: handle possible overflows
* Improve overflow handling
* LogList: remove scroll position ref
* Remove logs
* Remove log
* Add top/bottom navigation buttons
* Add timestamp to pre-processing
* Add showtime support
* Fix imports
* Chore: simplify dedup
* Show level
* Refactor measurement and measure level and timestamp
* Virtualization: skip unnecessary measurements
* Improve measurements to minimize overflow chance
* Introduce logline colors
* Update palette
* Remove pretiffying
* Add comment
* Remove unused variable
* Add color for info level
* Fix dependencies
* Refactor overflow to account for smaller estimations
* Debounce resizing
* Fix imports
* Further optimize height calculation
* Remove outline
* Unused import
* Use less under/overflow method
* Respond to height changes
* Refactor size adjustment to account for layout changes
* Add Logs Panel support
* Add margin bottom to log lines
* Remove unused option
* LogList: container div should never be null
Bad API design
* Log List: make app not undefined and update containerElement usages
* New Logs Panel: Create as new visualization (#99427)
* Logs Panel: clean up old panel
* Logs Panel New: create as new visualization
* Plugin: mark as alpha
* Logs panel new: hold container in a state variable
* Logs panel: fix no data state
* Create newLogsPanel feature flag
* Logs: use new feature flag
* Prettier
* Add new panel to code owners
* Logs Navigation: add translations
* Address betterer issues
* Fix import
* Extract translations
* Update virtualization.ts
* Virtualization: add DOM fallback for text measurement
* Run gen-cue
* plugins_integration_test: add logs-new to expected plugins