kibana/packages/kbn-test-jest-helpers/src
Marco Liberati 7b1d4732ab
[Lens] Add custom formatter within the Lens editor (#158468)
## Summary

Fixes #157900

Goal of this PR:
* simplify Metric formatting logic (only duration formats are now
"enhanced")
* add a new `Compact` option for the existing Lens formatters (Bytes and
Bits excluded as they compact already)
<img width="323" alt="Screenshot 2023-05-25 at 15 54 05"
src="3da299fe-e770-4a84-a0b4-6f935f06fe16">

* provide a full custom formatter based on numeral.js

<img width="1223" alt="Screenshot 2023-05-25 at 17 06 23"
src="5ce578c3-ef84-4176-9700-fecf6b55738e">
<img width="1215" alt="Screenshot 2023-05-25 at 17 06 15"
src="b93385ec-28b3-46cd-b9fd-2090abd6f233">
<img width="1224" alt="Screenshot 2023-05-25 at 17 06 08"
src="8c731a11-dc74-4b96-91f2-b2db7ca2fa2b">
<img width="1221" alt="Screenshot 2023-05-25 at 16 05 49"
src="a8786bd7-a2ab-4e04-8952-dc3d31e4afc2">
<img width="1223" alt="Screenshot 2023-05-25 at 16 05 40"
src="b6b5af8e-4109-48b6-b5a3-c8526ad628df">
<img width="1219" alt="Screenshot 2023-05-25 at 16 05 30"
src="405bbb01-359c-4981-84b0-8c68c0b59e8e">
<img width="1220" alt="Screenshot 2023-05-25 at 16 05 16"
src="d8350036-30c4-41db-8421-55874f0278b7">

<details>
  <summary>Previous migration changes - removed now</summary>
## Migration changes

The tricky part here comes with the format migration for the new metric,
as there's no easy way to detect what `"Default"` means, not having
access to field formatters during migrations.
There are two possibilities, as far as I can see, on the topic:
1. when `default` format is detected, assume it's a `number` format with
the `compact` feature turned on
2. when `default` format is detected, assume nothing and let the Kibana
default format go on (no compact)

In this PR I've implemented the 2nd migration strategy.
Here's a visual example of the problem.

#### Original dashboard
<img width="964" alt="Screenshot 2023-05-26 at 15 51 01"
src="703936b7-6232-46fc-a8cc-88a483ec1d01">

#### Option 1

<img width="1113" alt="Screenshot 2023-05-26 at 15 52 08"
src="d7ffe317-7d9c-49e3-ba86-849e2128df97">

#### Option 2 (implemented)

<img width="1113" alt="Screenshot 2023-05-26 at 15 53 48"
src="0c248b0a-3a4d-4fce-9d09-3ddffc1b5527">
</details>


### Release notes

Default format in Lens will apply dataView field format as usual now in
new Metric visualization.

### Checklist

Delete any items that are not applicable to this PR.

- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [x]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [x] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [x] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [x] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)

### For maintainers

- [x] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

---------

Co-authored-by: Stratoula Kalafateli <efstratia.kalafateli@elastic.co>
2023-06-13 13:08:07 +02:00
..
testbed [ContentManagement] Inspector flyout (#144240) 2022-11-09 06:01:53 -07:00
axe_helpers.ts [axe-config] extract module to it's own package (#128815) 2022-03-29 15:12:14 -07:00
enzyme_helpers.tsx [Lens] Add custom formatter within the Lens editor (#158468) 2023-06-13 13:08:07 +02:00
find_test_subject.ts [eslint] automatically determine dev packages (#127089) 2022-03-08 07:42:06 -06:00
jsdom_svg_mocks.ts
random.ts [eslint] automatically determine dev packages (#127089) 2022-03-08 07:42:06 -06:00
redux_helpers.tsx [ContentManagement] Inspector flyout (#144240) 2022-11-09 06:01:53 -07:00
router_helpers.tsx [Shared UX] Adoption of Shared UX Route component (#150357) 2023-02-14 19:25:04 +00:00
stub_broadcast_channel.ts Remove broadcast-channel dependency from security plugin (#132427) 2022-05-19 13:48:42 -04:00
stub_browser_storage.test.ts
stub_browser_storage.ts
stub_web_worker.ts Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00