kibana/packages/kbn-test-jest-helpers
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
..
src [Lens] Add custom formatter within the Lens editor (#158468) 2023-06-13 13:08:07 +02:00
index.ts chore(NA): remove src folder requirement from packages (part 2) (#138476) 2022-08-30 15:57:35 +01:00
jest.config.js chore(NA): splits types from code on @kbn/test (#124469) 2022-02-04 03:27:39 +00:00
kibana.jsonc [codeowners] add appex-qa for ftr-related packages (#155230) 2023-05-24 08:53:09 +02:00
package.json Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
tsconfig.json [Shared UX] Adoption of Shared UX Route component (#150357) 2023-02-14 19:25:04 +00:00