## Summary
This PR resolves issue <https://github.com/elastic/kibana/issues/110041> reported by @snide to enable schema-driven sorting descriptions in column headers.
@chandlerprall recommends obtaining a **+1** from the Machine Learning and Observability solutions, because the fix updates an `i18n` constant in Kibana common to all consumers of `EuiDataGrid`.
## Details
Thanks @chandlerprall for paring on this!
The Alerts table, `Host > Events`, and other `EuiDataGrid`-based views in the Security Solution make use of the default [`EuiDataGrid` schemas](https://elastic.github.io/eui/#/tabular-content/data-grid-schemas-and-popovers).
The default schemas enable `EuiDataGrid` to automatically display, for example, `Old-New` and `New-Old` sorting descriptions for datetime fields, as opposed to generic `A-Z` and `Z-A` descriptions.
The following (shared) Kibana `i18n` constant in `src/core/public/i18n/i18n_eui_mapping.tsx` is expected to be rendered a `string` at runtime:
```ts
'euiColumnActions.sort': ({ schemaLabel }: EuiValues) =>
i18n.translate('core.euiColumnActions.sort', {
defaultMessage: 'Sort {schemaLabel}',
values: { schemaLabel },
}),
```
But the constant was rendered in `EuiDataGrid` column headers as `[object Object]` when schemas were enabled, as shown in the screenshot below:
![column-header-object-object](https://user-images.githubusercontent.com/4459398/132079843-a8b0f5e5-9d47-4816-8baa-e29577511bf1.png)
_Above: The `sortTextAsc/Desc` text was rendered as `[object Object]`_
The temporary workaround described by [#110041](https://github.com/elastic/kibana/issues/110041) ensured that `Sort A-Z` and `Sort Z-A` labels were always displayed (in lieu of `[object Object]`), as shown in the screenshot below:
![image](https://user-images.githubusercontent.com/324519/130789326-bfe67cae-e4f7-469a-9b57-320cbf733cc8.png)
_Above: `Sort A-Z` and `Sort Z-A` labels were always displayed as a workaround_
The fix in this PR updates the following (shared) Kibana `i18n` constant in `src/core/public/i18n/i18n_eui_mapping.tsx` to use a `FormattedMessage`:
```ts
'euiColumnActions.sort': ({ schemaLabel }: EuiValues) => (
<FormattedMessage
id="core.euiColumnActions.sort"
defaultMessage="Sort {schemaLabel}"
values={{ schemaLabel }}
/>
),
```
, which ensures a schema-specific sorting label is displayed as-expected.
It also removes the workaround, as shown in the animated gif below:
![after](https://user-images.githubusercontent.com/4459398/132080352-1ee41a7e-8884-45ad-ae3c-daa9a0127aac.gif)
_Above: Schema-specific sorting descriptions are displayed for `datetime`, `text`, and `numeric` column headers_
* Switch the overview to single column when we're at < 1200px
* Hide sparkplots on transactions, dependencies, and instances tables at widths where they could be easily cut off
* Right-align sparkplot columns
* Make chart heights match latency chart height when showing a single column
* Make all impact bars fixed 96px width
* Make values be shown before sparklines
* Make SparkPlots `overflow: 'hidden'`
* Remove fixed widths from columns
* Return breakpoint and width from `useBreakpoints`
* Rename "breakPoint" to "breakpoint" everywhere to match what EUI does
* Replace `ServiceListMetric` (on used on service list) with `ListMetric` (used when sparkplots are conditionally shown)
Fixes#110165.
* Add new policy tabs layout with policy settings and trusted apps tab. Only visible with feature flag enabled
* Add URL state of which tab is selected. Also refactored policy_details component. Hide sticky bar at bottom when trustedApps tab is selected
* Fix wrong constant path in routing
* Don't refresh policyItem if is not necessary
* Remove old code and use new form layout component even if FF is disabled
* Split test file
* Clean test file with unused mocks
* Fixes failing test
* Address pr comments
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* Convert App Search server routes to new prefix
* Update frontend route prefixes for App Search
* Convert Workplace Search server routes to new prefix
* Update frontend route prefixes for Workplace Search
* Convert Enterprise Search server routes to new prefix
* Update frontend route prefixes for Enterprise Search
Code deduplication:
- combine 3 existing client side hooks into useSearchStrategy
- combine server side multiple search strategy files into shared search_strategy_provider.ts
- Clarified naming (client/server params, strategy naming etc.), improved types.
- None of the actual deeper internal logic changed, larger chunks of code that show up as new lines is mostly just moved code + additional types (e.g. function overloads) to support the different search strategies with the same server side code and client side hook.
* React version of angular license view
* Fix time handling and linking to license upload
* Use getPageData pattern instead of useClusters
* Add note about locked time picker
* Add disable support to monitoring toolbar
* Disable toolbar on license page only
* Remove old todo
* Clean up render setup method ordering
* Fix CI checks
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* [sample data] update web log geo.src field to match country code of geo.coordinates
* fix functional tests
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* Working test that validate migrated artifact has same properties as SO artifact
* Checks if artifact is compressed and uncompress it if necessary before creating the new one from fleet
Co-authored-by: Paul Tavares <paul.tavares@elastic.co>
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* [Maps] fix term join not updating when editing right field
* tslint
* clean up
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
* removed anys and ran TS organize imports
* updated jest snapshots
* fix import paths for non-type imports
Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>