Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Lens] Formula editor #99297

Merged
merged 288 commits into from
Jun 10, 2021
Merged

Conversation

wylieconlon
Copy link
Contributor

@wylieconlon wylieconlon commented May 4, 2021

Release note

Lens formulas let you do math using a combination of Elasticsearch aggregations and math functions. For example, find the error rate by typing count(kql='http.response.status_code >= 400 AND http.response.status_code < 600') / count().

Known issues that are not blocking

  • Update the icons used for the formula editor once EUI is merged
  • Documentation of formula
  • KQL autocomplete with \' does not replace word, for example category.keyword: Men's will become Men's "Men's Clothing"
  • KQL autocomplete is suggesting field names twice, for example category.keyword is suggested twice
  • The UI hangs for several seconds sometimes, it appears to be related to the suggestions rendering performance
    • Work in progress, needs a separate PR
  • Hide tabs if there is just one (on bucketed dimension) @flash1293
  • 'Search functions' placeholder doesn't fit the input for the standard Macbook width
## Fixed issues General issues:
  • Entering and leaving expanded mode is very slow due to layout shifts
    • Main chart rerenders on fullscreen mode
  • Dimensions change order on save. Configure a formula, then a regular metric, then a date histogram and the order changes. @flash1293
  • Formula label is not set to the text of the formula
  • Immediately apply formula if you close the dimension before the text is saved @wylieconlon
  • Default formula uses string formatting instead of number formatter
  • Telemetry; @flash1293
    • Telemetry on full screen usage
    • Telemetry on formula usage
  • Issues with the number 0, like subtracting 0 creates NaN, like count() - 0, taking to the 0th power, etc
  • Entering expanded mode with an invalid formula restores the previous "valid" formula in the editor @wylieconlon
  • Include "How it works" as clickable item in documentation component @flash1293
  • Add back search box for function names @flash1293
  • Move the Elasticsearch functions above math functions
  • Datasource is not suggesting most tables when a formula is already configured, so for example if you have a bucket + formula and then drag another field, it clears your previous chart. @flash1293
  • Popover steals focus from text input, and doesn't close when clicking the monaco editor. Needs an alternative design.
  • Users are confused when transitioning from Formula -> Quick function, needs a warning message. @flash1293
  • (Bonus) If user is dividing two numbers, change to use Percent formatter automatically.
  • Should not allow you to type math() or formula() as valid function names, as they are hidden operations @dej611
  • Hover over "1 error" to see errors
  • Responsive design issues in formula help popover @flash1293
  • KQL autocomplete moves the cursor in the wrong position when escaping \' @dej611 ( [Formula] Fix cursor move on quote escape wylieconlon/kibana#36 )
  • Automatic backslash is inserted even if backslash is already provided
  • General performance issues while formula is enabled, maybe rerendering
  • reduced suggestion crashes Lens when using moving average @flash1293
  • Duplicate suggestion when the only dimension is a formula @flash1293
  • Field names are not suggested when using multiple math functions. For example count() - 5 + average( does not suggest fields.
  • No autocomplete suggestions for first argument of calculation (e.g. moving_average(|))
  • Formula dimension not shown in error state for missing date histogram @wylieconlon
  • Warning messages are not shown until you interact, only errors
  • Long description is pushing out error message (can't scroll on the hover, can't see all error messages if there are multiple) @wylieconlon
  • Dragging a field from rows to columns in data table crashes editor @flash1293
  • [ ] Scrollbar appears and disappears while typing (not reproduceable)
  • Moving from the formula to the quick functions shows a 'blink' of the formula tab
  • Moving from the formula and then not fully configuring the operation (not picking a field) creates invalid state
  • Confusing error message for min(): The first argument for min should be a field name. Found @dej611 ( [Formula] Fix missing field error for function message wylieconlon/kibana#34 )
  • The Disable word wrap button doesn't change the state visually when clicking on it. You need to unfocus it (click somewhere else) to see its real state. @dej611 ( [Formula] Make word wrap button show its state wylieconlon/kibana#35 )

Validation:

  • Prevent using KQL with no quotes or double quotes @dej611

Text input:

  • Dimension panel rerenders Monaco on fullscreen mode to remove flyout
  • Empty state is confusing, needs some examples.
  • Automatically insert \ to escape quotes if you type a single quote inside a quoted string, like in KQL @dej611
  • Completion does not look back at the entire word in two cases:
    • Dotted field names like a.b.c should not get completed to a.a.b.c
    • If I press delete while typing, and then start typing again, the previous context is lost sometimes. For example moving_av and then delete and start typing.
  • No visual indicator of which named arguments are optional (kql and lucene) @dej611
  • Matching parentheses are not highlighted, even if we use matchBrackets: 'always' @dej611
  • General performance issues when interacting with Monaco
  • Signature help is not complete @dej611
  • KQL autocomplete does not suggest symbols, insert whitespace, or suggest values on : @dej611
    • Left over proper cursor tracking for suggestion within the query text @dej611
  • Negative numbers are not getting tokenized properly
  • The autocomplete signatures do not match the signatures in hover/signature help @dej611
  • The autocomplete signatures are missing KQL on most functions except cardinality. @dej611
  • Remove one of the two sets of examples (fall back to default if none specifc examples are provided) @dej611
  • Unit tests are failing due to the new docs that are added
  • Add placeholder text with count()

Checklist

For maintainers

dej611 and others added 30 commits February 10, 2021 14:41
Copy link
Member

@lukeelmers lukeelmers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

telemetry schema changes LGTM!

Copy link
Contributor

@cjcenizal cjcenizal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One-line change to kbn-monaco imports LGTM. Didn't test locally.

Copy link
Member

@Bamieh Bamieh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. 1 NIT to add a description to the formula field in the schema. If you have no more changes to the PR feel free to merge and address the descriptions later on in a future PR

x-pack/plugins/lens/server/usage/schema.ts Outdated Show resolved Hide resolved
Copy link
Contributor

@streamich streamich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AppServices change in data table expression function LGTM.

Copy link
Contributor

@ThomThomson ThomThomson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Presentation team changes LGTM. Code only review

@wylieconlon wylieconlon added the auto-backport Deprecated - use backport:version if exact versions are needed label Jun 9, 2021
Copy link
Contributor

@MichaelMarcialis MichaelMarcialis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great! Extremely impressive job on this PR, @wylieconlon (and all others that contributed). I've left a few comments and suggestions below.

Additionally, per a previous question, I mentioned in the design notes that it would be desirable to not allow the height of an X/Y visualization to exceed its width in full screen mode, as that could yield a chart with some deceptive peaks and valleys. Is this a concern we wish to address in this PR? Or is this concern a non-issue?


.lnsFormula__editorContent {
position: relative;
height: 201px;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why give a height style to the element containing the Monaco editor here? Wouldn't it be better to just leave it dimensionless and let it conform to the height of the editor? If so, I suggest removing.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@MichaelMarcialis Adding an exact height solves a few of the problems we ran into in Monaco:

  • Improves performance, especially performance of opening the initial editor
  • Prevents the monaco empty state from flashing

I could not find a way to get both a dynamic height and good performance.


.lnsIndexPatternDimensionEditor-isFullscreen .lnsFormula__editorContent {
flex: 1;
min-height: 201px;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same question here. Is the min-height style needed? If not, I suggest removing and letting flexbox determine the height for the editor space.

position="top"
>
<EuiButtonIcon
iconType="bolt"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This EuiButtonIcon for disabling and enabling word wrap is still using the bolt icon. This should be updated to wordWrapDisabled and wordWrap respectively (assuming these new icons are now available in Kibana).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We will follow up to update the icons once they are ready in EUI, but they aren't yet.

setIsHelpOpen(!isFullscreen);
trackUiEvent('toggle_formula_fullscreen');
}}
iconType={isFullscreen ? 'bolt' : 'fullScreen'}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This EuiButtonEmpty for collapsing or exiting full screen mode is still using the bolt icon. This should be updated to fullScreenExit (assuming this new icon is now available in Kibana).

color="text"
onClick={() => setIsHelpOpen(!isHelpOpen)}
>
<EuiIcon type="help" />
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This EuiIcon is still using the help icon. This should be updated to documentation (assuming this new icon is now available in Kibana).

Comment on lines 350 to 362
<EuiCallOut
size="s"
title={i18n.translate('xpack.lens.indexPattern.formulaWarning', {
defaultMessage: 'Staged formula',
})}
color="warning"
>
<p>
{i18n.translate('xpack.lens.indexPattern.formulaWarningText', {
defaultMessage: 'Picking a quick function will erase your formula.',
})}
</p>
</EuiCallOut>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The placement of this callout feels awkward currently. Assuming we can migrate the EuiTabs to the flyout header (per my previous comment), could we make this callout flush with the container, as shown in the EUI docs example for applying a banner to an EuiFlyout?

The wording here also feels like it could use some tweaking. Perhaps the title could be Formula currently applied and subsequent text could be Select a quick function to overwrite your formula.? Thoughts, @KOTungseth?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've made the callout flush, but I don't think I can easily make this a sticky header like the example you gave. If there is a CSS-only solution to this problem I'm happy to implement one, but for this component we don't have any access to the flyout react component.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for making that change. Can we also make the following changes to this EuiCallout?

  • Apply a prop of iconType="alert" for added emphasis.
  • Apply a style of border: none; to match style with similar EUI usage.

Also, any thoughts on those suggested text changes? We can of course update the text in a later PR as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the suggested language, matches the tone of the docs by avoiding "X will Y" type sentences in favor of "To Y, do X"

Copy link
Contributor

@MichaelMarcialis MichaelMarcialis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added one last nitpick below and replied to a previous comment above. Once those are addressed, this looks good from my perspective. Approving now to avoid holding you up. Thanks!

Comment on lines 732 to 740
<EuiButtonEmpty
color={errorCount ? 'danger' : 'warning'}
className="lnsFormula__editorError"
iconType="alert"
size="xs"
onClick={() => {
setIsWarningOpen(!isWarningOpen);
}}
>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add a prop of flush="right" to this EuiButtonEmpty to align correctly?

@kibanamachine
Copy link
Contributor

💚 Build Succeeded

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
lens 670 684 +14

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
canvas 1.3MB 1.3MB +315.0B
kibanaReact 312.0KB 312.1KB +45.0B
lens 1.3MB 1.4MB +85.3KB
total +85.6KB

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
expressions 199.2KB 199.6KB +332.0B
kbnUiSharedDeps-css 503.3KB 503.7KB +409.0B
kbnUiSharedDeps-elastic 2.6MB 2.6MB +1.0B
kbnUiSharedDeps-js 6.4MB 6.4MB +5.4KB
lens 38.1KB 38.1KB +69.0B
total +6.2KB

History

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

@wylieconlon wylieconlon merged commit b35cde5 into elastic:master Jun 10, 2021
kibanamachine added a commit to kibanamachine/kibana that referenced this pull request Jun 10, 2021
* 💄 Hack to fix suggestion box

* 🐛 Fix validation messages

* 🐛 Relax operations check for managedReferences

* Change completion params

* 🏷️ Fix missing arg issue

* ✨ Add more tinymath fns

* 🐛 Improved validation around math operations + multiple named arguments

* 🐛 Use new onError feature in math expression

* ♻️ Refactor namedArguments validation

* 🐛 Fix circular dependency issue in tests + minor fixes

* Move formula into a tab

* 🔥 Leftovers from previous merge

* ✨ Move over namedArgs from previous function

* ✅ Add tests for transferable scenarios

* ✅ Fixed broken test

* ✨ Use custom label for axis

* Allow switching back and forth to formula tab

* Add a section for the function reference

* Add modal editor and markdown docs

* Change the way math nodes are validated

* Use custom portal to fix monaco positioning

* Fix model sharing issues

* Provide signature help

* 🐛 Fix small test issue

* 🐛 Mark pow arguments as required

* 🐛 validate on first render only if a formula is present

* 🔥 Remove log10 fn for now

* ✨ Improved math validation + add tests for math functions

* Fix mount/unmount issues with Monaco

* [Lens] Fully unmount React when flyout closes

* Fix bug with editor frame unmounting

* Fix type

* Add tests for monaco providers, add hover provider

* Add test for last_value

* Usability improvements

* Add KQL and Lucene named parameters

* Add kql, lucene completion and validation

* Fix autocomplete on weird characters and properly connect KQL

* Highlight functions that have additional requirements after validating

* Fix type error and move help text to popover

* Fix escape characters inside KQL

* 🐛 Fix dataType issue when moving over to Formula

* Automatically insert single quotes on every named param

* Only insert single quotes when typing kql= or lucene=

* Reorganize help popover

* Fix merge issues

* Update grammar for formulas

* Fix bad merge

* Rough fullscreen mode

* Type updates

* Pass through fullscreen state

* Remove more chrome from full screen mode

* Fix minor bugs in formula typing

* 🐛 Decouple column order of references and output

* 🔧 Fix tests and types

* ✅ Add first functional test

* Fix copying formulas and empty formula

* Trigger suggestion prompt when hitting enter on function or typing kql=

* 🐛 Prevent flyout from closing while interacting with monaco

* refactoring

* move main column generation into parse module

* fix tests

* refactor small formula styles and markup

* documentation

* adjustments in formula footer

* Formula refactoring (elastic#12)

* refactoring

* move main column generation into parse module

* fix tests

* more style and markup tweak for custom formula

* Fix tests

* [Expressions] Use table column ID instead of name when set

* [Lens] Create managedReference type for formulas

* Fix test failures

* Fix i18n types

* fix fullscreen flex issues

* Delete managedReference when replacing

* refactor css and markup; add button placeholders

* [Lens] Formulas

* Tests for formula

Co-authored-by: Marco Liberati <[email protected]>

* added error count placeholder

* Add tooltips

* Refactoring from code review

* Fix some editor issues

* Update ID matching to match by name sometimes

* Improve performance of Monaco, fix formulas with 0, update labels

* Improve performance of full screen toggle

* Fix formula tests

* fix stuff

* Add an extra case to prevent insertion of duplicate column

* Simplify logic and add test for output ID

* add telemetry for Lens formula (elastic#15)

* Respond to review comments

* ✨ Improve the signatures with better documentation and examples

* adjust border styles to account for docs collapse

* refactor docs markup; restructure docs obj; styles

* Fix formula auto reordering (elastic#18)

* fix formula auto reordering

* add unit test

* Fix and improve suggestion experience in Formula (elastic#19)

* ✨ Revisit documentation and suggestions

* 👌 Integrated feedback

* ✨ Add query validation for quotes

* Usability updates & type fixes

* add search to formula

* fix form styles to match designs

* fix text styles; revert to Markdown for control

* 👌 Integrated more feedback

* improve search

* improve suggestions

* improve suggestions even more

* 🐛 Fix i18n issues (elastic#22)

* Persist formula on leave, fix fullscreen and popovers

* Fix documentation tests

* 🏷️ fix type issue

* 🐛 Remove hidden operations from valid functions list

* 🐛 Fix empty string query edge case

* 🐛 Enable more suggestions + extends validation

* Fix tests that depended on setState being called without function

* Error state and text wrapping updates

* ✨ Add new module to CodeEditor for brackets matching (elastic#25)

* Fix type

* show warning

* keep current quick function

* ✨ Improve suggestions within kql query

* 📷 Fix snapshot editor test

* 🐛 Improved suggestion for single quote and refactored debounce

* Fix lodash usage

* Fix tests

* Revert "keep current quick function"

This reverts commit ed47705.

* Improve performance of dispatch by using timeout

* Improve memoization of datapanel

* Fix escape characters

* fix reduced suggestions

* fix responsiveness

* fix unit test

* Fix autocomplete on nested math

* Show errors and warnings on first render

* fix transposing column crash

* Update comment

* 🐛 Fix field error message

* fix test types

* 📝 Fix i18n name

* 💄 Manage wordwrap via react component

* Fix selector for palettes that interferes with quick functions

* Use word wrapping by default

* Errors for managed references are handled at the top level

* 🐛 Move the cursor just next to new inserted text

* ⚗️ First pass for performance

* 🐛 Fix unwanted change

* ⚡ Memoize as many combobox props as possible

* ⚡ More memoization

* Show errors in hover

* Use temporary invalid state when moving away from formula

* Remove setActiveDimension and shouldClose, fixed by async setters

* Fix test dependency

* do not show quick functions tab

* increase documentation popover width

* fix functional test

* Call setActiveDimension when updating visualization

* Simplify handling of flyout with incomplete columns

* Fix test issues

* add description to formula telemetry

* fix schema

* Update from design feedback

* More review comments

* Hide callout border from v7 theme

Co-authored-by: dej611 <[email protected]>
Co-authored-by: Kibana Machine <[email protected]>
Co-authored-by: Joe Reuter <[email protected]>
Co-authored-by: Michael Marcialis <[email protected]>
Co-authored-by: Joe Reuter <[email protected]>
Co-authored-by: Marco Liberati <[email protected]>
Co-authored-by: Marco Liberati <[email protected]>
@kibanamachine
Copy link
Contributor

💚 Backport successful

Status Branch Result
7.x

This backport PR will be merged automatically after passing CI.

kibanamachine added a commit that referenced this pull request Jun 10, 2021
* 💄 Hack to fix suggestion box

* 🐛 Fix validation messages

* 🐛 Relax operations check for managedReferences

* Change completion params

* 🏷️ Fix missing arg issue

* ✨ Add more tinymath fns

* 🐛 Improved validation around math operations + multiple named arguments

* 🐛 Use new onError feature in math expression

* ♻️ Refactor namedArguments validation

* 🐛 Fix circular dependency issue in tests + minor fixes

* Move formula into a tab

* 🔥 Leftovers from previous merge

* ✨ Move over namedArgs from previous function

* ✅ Add tests for transferable scenarios

* ✅ Fixed broken test

* ✨ Use custom label for axis

* Allow switching back and forth to formula tab

* Add a section for the function reference

* Add modal editor and markdown docs

* Change the way math nodes are validated

* Use custom portal to fix monaco positioning

* Fix model sharing issues

* Provide signature help

* 🐛 Fix small test issue

* 🐛 Mark pow arguments as required

* 🐛 validate on first render only if a formula is present

* 🔥 Remove log10 fn for now

* ✨ Improved math validation + add tests for math functions

* Fix mount/unmount issues with Monaco

* [Lens] Fully unmount React when flyout closes

* Fix bug with editor frame unmounting

* Fix type

* Add tests for monaco providers, add hover provider

* Add test for last_value

* Usability improvements

* Add KQL and Lucene named parameters

* Add kql, lucene completion and validation

* Fix autocomplete on weird characters and properly connect KQL

* Highlight functions that have additional requirements after validating

* Fix type error and move help text to popover

* Fix escape characters inside KQL

* 🐛 Fix dataType issue when moving over to Formula

* Automatically insert single quotes on every named param

* Only insert single quotes when typing kql= or lucene=

* Reorganize help popover

* Fix merge issues

* Update grammar for formulas

* Fix bad merge

* Rough fullscreen mode

* Type updates

* Pass through fullscreen state

* Remove more chrome from full screen mode

* Fix minor bugs in formula typing

* 🐛 Decouple column order of references and output

* 🔧 Fix tests and types

* ✅ Add first functional test

* Fix copying formulas and empty formula

* Trigger suggestion prompt when hitting enter on function or typing kql=

* 🐛 Prevent flyout from closing while interacting with monaco

* refactoring

* move main column generation into parse module

* fix tests

* refactor small formula styles and markup

* documentation

* adjustments in formula footer

* Formula refactoring (#12)

* refactoring

* move main column generation into parse module

* fix tests

* more style and markup tweak for custom formula

* Fix tests

* [Expressions] Use table column ID instead of name when set

* [Lens] Create managedReference type for formulas

* Fix test failures

* Fix i18n types

* fix fullscreen flex issues

* Delete managedReference when replacing

* refactor css and markup; add button placeholders

* [Lens] Formulas

* Tests for formula

Co-authored-by: Marco Liberati <[email protected]>

* added error count placeholder

* Add tooltips

* Refactoring from code review

* Fix some editor issues

* Update ID matching to match by name sometimes

* Improve performance of Monaco, fix formulas with 0, update labels

* Improve performance of full screen toggle

* Fix formula tests

* fix stuff

* Add an extra case to prevent insertion of duplicate column

* Simplify logic and add test for output ID

* add telemetry for Lens formula (#15)

* Respond to review comments

* ✨ Improve the signatures with better documentation and examples

* adjust border styles to account for docs collapse

* refactor docs markup; restructure docs obj; styles

* Fix formula auto reordering (#18)

* fix formula auto reordering

* add unit test

* Fix and improve suggestion experience in Formula (#19)

* ✨ Revisit documentation and suggestions

* 👌 Integrated feedback

* ✨ Add query validation for quotes

* Usability updates & type fixes

* add search to formula

* fix form styles to match designs

* fix text styles; revert to Markdown for control

* 👌 Integrated more feedback

* improve search

* improve suggestions

* improve suggestions even more

* 🐛 Fix i18n issues (#22)

* Persist formula on leave, fix fullscreen and popovers

* Fix documentation tests

* 🏷️ fix type issue

* 🐛 Remove hidden operations from valid functions list

* 🐛 Fix empty string query edge case

* 🐛 Enable more suggestions + extends validation

* Fix tests that depended on setState being called without function

* Error state and text wrapping updates

* ✨ Add new module to CodeEditor for brackets matching (#25)

* Fix type

* show warning

* keep current quick function

* ✨ Improve suggestions within kql query

* 📷 Fix snapshot editor test

* 🐛 Improved suggestion for single quote and refactored debounce

* Fix lodash usage

* Fix tests

* Revert "keep current quick function"

This reverts commit ed47705.

* Improve performance of dispatch by using timeout

* Improve memoization of datapanel

* Fix escape characters

* fix reduced suggestions

* fix responsiveness

* fix unit test

* Fix autocomplete on nested math

* Show errors and warnings on first render

* fix transposing column crash

* Update comment

* 🐛 Fix field error message

* fix test types

* 📝 Fix i18n name

* 💄 Manage wordwrap via react component

* Fix selector for palettes that interferes with quick functions

* Use word wrapping by default

* Errors for managed references are handled at the top level

* 🐛 Move the cursor just next to new inserted text

* ⚗️ First pass for performance

* 🐛 Fix unwanted change

* ⚡ Memoize as many combobox props as possible

* ⚡ More memoization

* Show errors in hover

* Use temporary invalid state when moving away from formula

* Remove setActiveDimension and shouldClose, fixed by async setters

* Fix test dependency

* do not show quick functions tab

* increase documentation popover width

* fix functional test

* Call setActiveDimension when updating visualization

* Simplify handling of flyout with incomplete columns

* Fix test issues

* add description to formula telemetry

* fix schema

* Update from design feedback

* More review comments

* Hide callout border from v7 theme

Co-authored-by: dej611 <[email protected]>
Co-authored-by: Kibana Machine <[email protected]>
Co-authored-by: Joe Reuter <[email protected]>
Co-authored-by: Michael Marcialis <[email protected]>
Co-authored-by: Joe Reuter <[email protected]>
Co-authored-by: Marco Liberati <[email protected]>
Co-authored-by: Marco Liberati <[email protected]>

Co-authored-by: Wylie Conlon <[email protected]>
Co-authored-by: dej611 <[email protected]>
Co-authored-by: Joe Reuter <[email protected]>
Co-authored-by: Michael Marcialis <[email protected]>
Co-authored-by: Joe Reuter <[email protected]>
Co-authored-by: Marco Liberati <[email protected]>
Co-authored-by: Marco Liberati <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
auto-backport Deprecated - use backport:version if exact versions are needed Feature:ExpressionLanguage Interpreter expression language (aka canvas pipeline) Feature:Lens release_note:feature Makes this part of the condensed release notes Team:Visualizations Visualization editors, elastic-charts and infrastructure v7.14.0 v8.0.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.