Implements rudimentary support for placeholder values inside a string
with the `PlaceholdersBuffer` class. The latter helps the newly added
sum aggregation query suggestion to automatically focus on the label
so users can easily choose from the available typeahead options.
Related: #13615
- use global range types
- add ErrorBoundary around individual Explore components
- fix table merge on empty results
- fix TimePicker date parsing on ISO dates
- fix TimePicker range string after relative move
Existing querying was grouped together before handed over to the
datasource. This slowed down result display to however long the slowest
query took.
- create one query transaction per result viewer (graph, table, etc.)
and query row
- track latencies for each transaction
- show results as soon as they are being received
- loading indicator on graph and query button to indicate that queries
are still running and that results are incomplete
- properly discard transactions when removing or changing queries
In short, the underlying problem appears to be the `onChange()` handler
being triggered after handling the blur event. Since the contents have
not actually changed this forces the typeahead state to reset which
undesirably puts a stop to propagating the selected suggestion back up
to get set.
Related: #13604
- Extracted table panel's merge logic to combine multiple tables into one
- Put the merge logic into the table model as it merges multiple table
models
- make use of merge in Explore's table query response handler
- copied tests over to table model spec, kept essential tests in
transformer spec
These changes were originally intended to address a bug whereby a
suggestion for an already selected label value continues to appear.
However, they also appear to fix several other problems in the area:
- Wrong suggestions when using negated label matching operators
- Misaligned label value suggestion replacements
Related: #13484
- adds react-table as dependency
- replaces custom table component in Explore
- vendors react-table styles and overrides them (currently in
explore.scss)