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

[Maps] allow simultaneous opening of multiple tooltips #57226

Merged
merged 12 commits into from
Feb 13, 2020

Conversation

nreese
Copy link
Contributor

@nreese nreese commented Feb 10, 2020

fixes #56645

This PR allows users to open multiple tooltips at a time. This will allow users to compare values across features.

Screen Shot 2020-02-10 at 10 35 44 AM

@nreese nreese added release_note:enhancement [Deprecated-Use Team:Presentation]Team:Geo Former Team Label for Geo Team. Now use Team:Presentation v8.0.0 v7.7.0 labels Feb 10, 2020
@nreese nreese requested a review from a team as a code owner February 10, 2020 17:37
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-gis (Team:Geo)

@nreese nreese changed the title Multiple tooltips [Maps] allow simultaneous opening of tooltips Feb 10, 2020
@nreese nreese changed the title [Maps] allow simultaneous opening of tooltips [Maps] allow simultaneous opening of multiple tooltips Feb 10, 2020
Copy link
Member

@jsanz jsanz left a comment

Choose a reason for hiding this comment

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

Tested locally on Chromium, it works great 👍

I never imagined this being so useful in the context of how we do both tooltips and pop up windows when clicking, so you can wander and explore over the map, and then you can focus by clicking when you see something interesting and repeat.

@nreese
Copy link
Contributor Author

nreese commented Feb 12, 2020

@elasticmachine merge upstream

@nreese
Copy link
Contributor Author

nreese commented Feb 12, 2020

@elasticmachine merge upstream

@kibanamachine
Copy link
Contributor

💛 Build succeeded, but was flaky


Test Failures

Kibana Pipeline / kibana-xpack-agent / Chrome X-Pack UI Functional Tests.x-pack/test/functional/apps/rollup_job/tsvb·js.rollup app tsvb integration create rollup tsvb

Link to Jenkins

Standard Out

Failed Tests Reporter:
  - Test has failed 8 times on tracked branches: https://github.com/elastic/kibana/issues/56816

[00:00:00]       │
[00:29:03]         └-: rollup app
[00:29:03]           └-> "before all" hook
[00:30:26]           └-: tsvb integration
[00:30:26]             └-> "before all" hook
[00:30:26]             └-> "before all" hook
[00:30:26]               │ info [visualize/default] Loading "mappings.json"
[00:30:26]               │ info [visualize/default] Loading "data.json"
[00:30:26]               │ info [o.e.c.m.MetaDataDeleteIndexService] [kibana-ci-immutable-ubuntu-tests-xl-1581549199142763441] [.kibana_2/W4npoJyMTvO7F-zsLP9Wew] deleting index
[00:30:26]               │ info [o.e.c.m.MetaDataDeleteIndexService] [kibana-ci-immutable-ubuntu-tests-xl-1581549199142763441] [.kibana_1/abM_EkIHRwyoXNMAaKWIxA] deleting index
[00:30:26]               │ info [visualize/default] Deleted existing index [".kibana_2",".kibana_1"]
[00:30:26]               │ info [o.e.c.m.MetaDataCreateIndexService] [kibana-ci-immutable-ubuntu-tests-xl-1581549199142763441] [.kibana] creating index, cause [api], templates [], shards [1]/[0], mappings [_doc]
[00:30:26]               │ info [visualize/default] Created index ".kibana"
[00:30:26]               │ debg [visualize/default] ".kibana" settings {"index":{"number_of_shards":"1","auto_expand_replicas":"0-1","number_of_replicas":"0"}}
[00:30:26]               │ info [o.e.c.m.MetaDataCreateIndexService] [kibana-ci-immutable-ubuntu-tests-xl-1581549199142763441] [metricbeat-7] creating index, cause [auto(bulk api)], templates [], shards [1]/[1], mappings []
[00:30:26]               │ info [o.e.c.m.MetaDataMappingService] [kibana-ci-immutable-ubuntu-tests-xl-1581549199142763441] [metricbeat-7/T2hnt4wnTBiUubCQyDecCg] create_mapping
[00:30:27]               │ info [visualize/default] Indexed 8 docs into ".kibana"
[00:30:27]               │ info [visualize/default] Indexed 1 docs into "metricbeat-7"
[00:30:28]               │ info Creating index .kibana_2.
[00:30:28]               │ info [o.e.c.m.MetaDataCreateIndexService] [kibana-ci-immutable-ubuntu-tests-xl-1581549199142763441] [.kibana_2] creating index, cause [api], templates [], shards [1]/[1], mappings [_doc]
[00:30:28]               │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-ubuntu-tests-xl-1581549199142763441] updating number_of_replicas to [0] for indices [.kibana_2]
[00:30:28]               │ info Reindexing .kibana to .kibana_1
[00:30:28]               │ info [o.e.c.m.MetaDataCreateIndexService] [kibana-ci-immutable-ubuntu-tests-xl-1581549199142763441] [.kibana_1] creating index, cause [api], templates [], shards [1]/[1], mappings [_doc]
[00:30:28]               │ info [o.e.c.r.a.AllocationService] [kibana-ci-immutable-ubuntu-tests-xl-1581549199142763441] updating number_of_replicas to [0] for indices [.kibana_1]
[00:30:28]               │ info [o.e.t.LoggingTaskListener] [kibana-ci-immutable-ubuntu-tests-xl-1581549199142763441] 69023 finished with response BulkByScrollResponse[took=94.8ms,timed_out=false,sliceId=null,updated=0,created=8,deleted=0,batches=1,versionConflicts=0,noops=0,retries=0,throttledUntil=0s,bulk_failures=[],search_failures=[]]
[00:30:28]               │ info [o.e.c.m.MetaDataDeleteIndexService] [kibana-ci-immutable-ubuntu-tests-xl-1581549199142763441] [.kibana/8-mdqBH2Rdi3e-GAJG3Qxw] deleting index
[00:30:28]               │ info Migrating .kibana_1 saved objects to .kibana_2
[00:30:28]               │ debg Migrating saved objects space:default, index-pattern:metricbeat-*, custom-space:index-pattern:metricbeat-*, index-pattern:logstash-*, custom_space:index-pattern:logstash-*, visualization:i-exist, custom_space:visualization:i-exist, query:okjpgs
[00:30:28]               │ info [o.e.c.m.MetaDataMappingService] [kibana-ci-immutable-ubuntu-tests-xl-1581549199142763441] [.kibana_2/4uL64-nwQdeL_mU7_kw3iQ] update_mapping [_doc]
[00:30:28]               │ info [o.e.c.m.MetaDataMappingService] [kibana-ci-immutable-ubuntu-tests-xl-1581549199142763441] [.kibana_2/4uL64-nwQdeL_mU7_kw3iQ] update_mapping [_doc]
[00:30:28]               │ info [o.e.c.m.MetaDataMappingService] [kibana-ci-immutable-ubuntu-tests-xl-1581549199142763441] [.kibana_2/4uL64-nwQdeL_mU7_kw3iQ] update_mapping [_doc]
[00:30:28]               │ info Pointing alias .kibana to .kibana_2.
[00:30:28]               │ info Finished in 660ms.
[00:30:28]               │ debg applying update to kibana config: {"accessibility:disableAnimations":true,"dateFormat:tz":"UTC"}
[00:30:29]               │ info [o.e.c.m.MetaDataMappingService] [kibana-ci-immutable-ubuntu-tests-xl-1581549199142763441] [.kibana_2/4uL64-nwQdeL_mU7_kw3iQ] update_mapping [_doc]
[00:30:30]             └-> create rollup tsvb
[00:30:30]               └-> "before each" hook: global before each
[00:30:30]               │ info [o.e.c.m.MetaDataCreateIndexService] [kibana-ci-immutable-ubuntu-tests-xl-1581549199142763441] [rollup-source-data] creating index, cause [auto(bulk api)], templates [], shards [1]/[1], mappings []
[00:30:30]               │ info [o.e.c.m.MetaDataMappingService] [kibana-ci-immutable-ubuntu-tests-xl-1581549199142763441] [rollup-source-data/zAnuXYlzTQWrnPs9fePMbw] create_mapping
[00:30:30]               │ info [o.e.c.m.MetaDataCreateIndexService] [kibana-ci-immutable-ubuntu-tests-xl-1581549199142763441] [rollup-target-data] creating index, cause [api], templates [], shards [1]/[1], mappings [_doc]
[00:30:30]               │ debg navigating to visualize url: http://localhost:6121/app/kibana#/visualize
[00:30:30]               │ debg Navigate to: http://localhost:6121/app/kibana#/visualize
[00:30:30]               │ info [o.e.x.r.j.RollupJobTask] [kibana-ci-immutable-ubuntu-tests-xl-1581549199142763441] Rollup job [tsvb-test-rollup-job-1581551351038] created.
[00:30:30]               │ info [o.e.c.m.MetaDataMappingService] [kibana-ci-immutable-ubuntu-tests-xl-1581549199142763441] [rollup-target-data/4A7QJq_BQYah13-lRrSkUQ] update_mapping [_doc]
[00:30:30]               │ debg ... sleep(700) start
[00:30:30]               │ debg browser[INFO] http://localhost:6121/app/kibana?_t=1581553183674#/visualize 350 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:30:30]               │
[00:30:30]               │ debg browser[INFO] http://localhost:6121/bundles/app/kibana/bootstrap.js 8:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:30:31]               │ debg ... sleep(700) end
[00:30:31]               │ debg returned from get, calling refresh
[00:30:31]               │ debg browser[INFO] http://localhost:6121/app/kibana?_t=1581553183674#/visualize 350 Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-P5polb1UreUSOe5V/Pv7tc+yeZuJXiOi/3fqhGsU7BE='), or a nonce ('nonce-...') is required to enable inline execution.
[00:30:31]               │
[00:30:31]               │ debg browser[INFO] http://localhost:6121/bundles/app/kibana/bootstrap.js 8:19 "^ A single error about an inline script not firing due to content security policy is expected!"
[00:30:31]               │ debg currentUrl = http://localhost:6121/app/kibana#/visualize
[00:30:31]               │          appUrl = http://localhost:6121/app/kibana#/visualize
[00:30:31]               │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=60000
[00:30:37]               │ debg TestSubjects.find(kibanaChrome)
[00:30:37]               │ debg Find.findByCssSelector('[data-test-subj="kibanaChrome"]') with timeout=10000
[00:30:37]               │ debg browser[INFO] http://localhost:6121/built_assets/dlls/vendors_3.bundle.dll.js 582:139970 "INFO: 2020-02-13T00:19:48Z
[00:30:37]               │        Adding connection to http://localhost:6121/elasticsearch
[00:30:37]               │
[00:30:37]               │      "
[00:30:37]               │ debg ... sleep(501) start
[00:30:37]               │ info [o.e.c.m.MetaDataMappingService] [kibana-ci-immutable-ubuntu-tests-xl-1581549199142763441] [.kibana_2/4uL64-nwQdeL_mU7_kw3iQ] update_mapping [_doc]
[00:30:38]               │ debg ... sleep(501) end
[00:30:38]               │ debg in navigateTo url = http://localhost:6121/app/kibana#/visualize?_g=(refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now))
[00:30:38]               │ debg TestSubjects.exists(statusPageContainer)
[00:30:38]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="statusPageContainer"]') with timeout=2500
[00:30:40]               │ debg --- retry.tryForTime error: [data-test-subj="statusPageContainer"] is not displayed
[00:30:41]               │ debg TestSubjects.exists(newItemButton)
[00:30:41]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="newItemButton"]') with timeout=2500
[00:30:41]               │ debg TestSubjects.click(newItemButton)
[00:30:41]               │ debg Find.clickByCssSelector('[data-test-subj="newItemButton"]') with timeout=10000
[00:30:41]               │ debg Find.findByCssSelector('[data-test-subj="newItemButton"]') with timeout=10000
[00:30:41]               │ debg TestSubjects.find(visNewDialogTypes)
[00:30:41]               │ debg Find.findByCssSelector('[data-test-subj="visNewDialogTypes"]') with timeout=10000
[00:30:41]               │ debg TestSubjects.click(visType-metrics)
[00:30:41]               │ debg Find.clickByCssSelector('[data-test-subj="visType-metrics"]') with timeout=10000
[00:30:41]               │ debg Find.findByCssSelector('[data-test-subj="visType-metrics"]') with timeout=10000
[00:30:41]               │ debg isGlobalLoadingIndicatorVisible
[00:30:41]               │ debg TestSubjects.exists(globalLoadingIndicator)
[00:30:41]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="globalLoadingIndicator"]') with timeout=1500
[00:30:43]               │ debg --- retry.tryForTime error: [data-test-subj="globalLoadingIndicator"] is not displayed
[00:30:44]               │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:30:44]               │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:30:44]               │ debg TestSubjects.exists(tvbVisEditor)
[00:30:44]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="tvbVisEditor"]') with timeout=10000
[00:30:44]               │ debg openQuickSelectTimeMenu
[00:30:44]               │ debg TestSubjects.exists(superDatePickerQuickMenu)
[00:30:44]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="superDatePickerQuickMenu"]') with timeout=2500
[00:30:46]               │ debg --- retry.tryForTime error: [data-test-subj="superDatePickerQuickMenu"] is not displayed
[00:30:47]               │ debg opening quick select menu
[00:30:47]               │ debg TestSubjects.click(superDatePickerToggleQuickMenuButton)
[00:30:47]               │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerToggleQuickMenuButton"]') with timeout=10000
[00:30:47]               │ debg Find.findByCssSelector('[data-test-subj="superDatePickerToggleQuickMenuButton"]') with timeout=10000
[00:30:47]               │ debg TestSubjects.click(superDatePickerCommonlyUsed_Last_24 hours)
[00:30:47]               │ debg Find.clickByCssSelector('[data-test-subj="superDatePickerCommonlyUsed_Last_24 hours"]') with timeout=10000
[00:30:47]               │ debg Find.findByCssSelector('[data-test-subj="superDatePickerCommonlyUsed_Last_24 hours"]') with timeout=10000
[00:30:47]               │ debg TestSubjects.find(metricTsvbTypeBtn)
[00:30:47]               │ debg Find.findByCssSelector('[data-test-subj="metricTsvbTypeBtn"]') with timeout=10000
[00:30:48]               │ debg TestSubjects.exists(tsvbMetricValue)
[00:30:48]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="tsvbMetricValue"]') with timeout=10000
[00:30:48]               │ debg TestSubjects.click(metricEditorPanelOptionsBtn)
[00:30:48]               │ debg Find.clickByCssSelector('[data-test-subj="metricEditorPanelOptionsBtn"]') with timeout=10000
[00:30:48]               │ debg Find.findByCssSelector('[data-test-subj="metricEditorPanelOptionsBtn"]') with timeout=10000
[00:30:49]               │ debg isGlobalLoadingIndicatorVisible
[00:30:49]               │ debg TestSubjects.exists(globalLoadingIndicator)
[00:30:49]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="globalLoadingIndicator"]') with timeout=1500
[00:30:50]               │ debg --- retry.tryForTime error: [data-test-subj="globalLoadingIndicator"] is not displayed
[00:30:51]               │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:30:51]               │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:30:51]               │ debg TestSubjects.find(metricsIndexPatternInput)
[00:30:51]               │ debg Find.findByCssSelector('[data-test-subj="metricsIndexPatternInput"]') with timeout=10000
[00:30:52]               │ debg isGlobalLoadingIndicatorVisible
[00:30:52]               │ debg TestSubjects.exists(globalLoadingIndicator)
[00:30:52]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="globalLoadingIndicator"]') with timeout=1500
[00:30:53]               │ debg --- retry.tryForTime error: [data-test-subj="globalLoadingIndicator"] is not displayed
[00:30:54]               │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:30:54]               │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:30:54]               │ debg TestSubjects.find(metricsIndexPatternInterval)
[00:30:54]               │ debg Find.findByCssSelector('[data-test-subj="metricsIndexPatternInterval"]') with timeout=10000
[00:30:54]               │ debg isGlobalLoadingIndicatorVisible
[00:30:54]               │ debg TestSubjects.exists(globalLoadingIndicator)
[00:30:54]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="globalLoadingIndicator"]') with timeout=1500
[00:30:55]               │ debg --- retry.tryForTime error: [data-test-subj="globalLoadingIndicator"] is not displayed
[00:30:56]               │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:30:56]               │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:30:56]               │ debg TestSubjects.find(metricsDropLastBucket-no)
[00:30:56]               │ debg Find.findByCssSelector('[data-test-subj="metricsDropLastBucket-no"]') with timeout=10000
[00:30:56]               │ debg isGlobalLoadingIndicatorVisible
[00:30:56]               │ debg TestSubjects.exists(globalLoadingIndicator)
[00:30:56]               │ debg Find.existsByDisplayedByCssSelector('[data-test-subj="globalLoadingIndicator"]') with timeout=1500
[00:30:58]               │ debg --- retry.tryForTime error: [data-test-subj="globalLoadingIndicator"] is not displayed
[00:30:58]               │ debg TestSubjects.exists(globalLoadingIndicator-hidden)
[00:30:58]               │ debg Find.existsByCssSelector('[data-test-subj="globalLoadingIndicator-hidden"]') with timeout=100000
[00:30:58]               │ debg ... sleep(3000) start
[00:31:01]               │ debg ... sleep(3000) end
[00:31:01]               │ debg Waiting up to 20000ms for rendering count to stabilize...
[00:31:01]               │ debg TestSubjects.find(visualizationLoader)
[00:31:01]               │ debg Find.findByCssSelector('[data-test-subj="visualizationLoader"]') with timeout=10000
[00:31:01]               │ debg -- firstCount=7
[00:31:01]               │ debg ... sleep(1000) start
[00:31:02]               │ debg ... sleep(1000) end
[00:31:02]               │ debg TestSubjects.find(visualizationLoader)
[00:31:02]               │ debg Find.findByCssSelector('[data-test-subj="visualizationLoader"]') with timeout=10000
[00:31:02]               │ debg -- secondCount=7
[00:31:02]               │ debg Find.findByCssSelector('.tvbVisMetric__value--primary') with timeout=10000
[00:31:02]               │ info Taking screenshot "/dev/shm/workspace/kibana/x-pack/test/functional/screenshots/failure/rollup app tsvb integration create rollup tsvb.png"
[00:31:03]               │ info Current URL is: http://localhost:6121/app/kibana#/visualize/create?type=metrics&_g=(refreshInterval:(pause:!t,value:0),time:(from:now-24h,to:now))&_a=(filters:!(),linked:!f,query:(language:kuery,query:%27%27),uiState:(),vis:(aggs:!(),params:(axis_formatter:number,axis_position:left,axis_scale:normal,background_color_rules:!((id:%27932b6650-4df6-11ea-82dc-6b03a32b85bd%27)),default_index_pattern:%27metricbeat-*%27,default_timefield:%27@timestamp%27,drop_last_bucket:0,id:%2761ca57f0-469d-11e7-af02-69e470af7417%27,index_pattern:rollup-target-data,interval:%271d%27,isModelInvalid:!f,series:!((axis_position:right,chart_type:line,color:%2368BC00,fill:0.5,formatter:number,id:%2761ca57f1-469d-11e7-af02-69e470af7417%27,line_width:1,metrics:!((id:%2761ca57f2-469d-11e7-af02-69e470af7417%27,type:count)),point_size:1,separate_axis:0,split_mode:everything,stacked:none)),show_grid:1,show_legend:1,time_field:%27%27,type:metric),title:%27%27,type:metrics))
[00:31:03]               │ info Saving page source to: /dev/shm/workspace/kibana/x-pack/test/functional/failure_debug/html/rollup app tsvb integration create rollup tsvb.html
[00:31:03]               └- ✖ fail: "rollup app tsvb integration create rollup tsvb"
[00:31:03]               │

Stack Trace

{ Error: expected '0' to sort of equal '3'
    at Assertion.assert (/dev/shm/workspace/kibana/packages/kbn-expect/expect.js:100:11)
    at Assertion.eql (/dev/shm/workspace/kibana/packages/kbn-expect/expect.js:244:8)
    at Context.it (test/functional/apps/rollup_job/tsvb.js:90:27)
    at process._tickCallback (internal/process/next_tick.js:68:7) actual: '0', expected: '3', showDiff: true }

History

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

Copy link
Contributor

@thomasneirynck thomasneirynck left a comment

Choose a reason for hiding this comment

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

Sweet!!!

@nreese nreese merged commit 6b62f5a into elastic:master Feb 13, 2020
nreese added a commit to nreese/kibana that referenced this pull request Feb 13, 2020
* split TooltipPopover from TooltipContent

* display multiple tooltips

* hack to fix spacing

* hover tooltip

* fix jest tests for new props

* update snapshots

* simplify jest tests

* avoid opening up multiple tooltips in same location

* remove duplicated code

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
nreese added a commit that referenced this pull request Feb 13, 2020
* split TooltipPopover from TooltipContent

* display multiple tooltips

* hack to fix spacing

* hover tooltip

* fix jest tests for new props

* update snapshots

* simplify jest tests

* avoid opening up multiple tooltips in same location

* remove duplicated code

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
gmmorris added a commit to gmmorris/kibana that referenced this pull request Feb 13, 2020
* master: (22 commits)
  skip flaky suite (elastic#50018)
  skip settings tests (elastic#57608)
  skip failing suite (elastic#44631)
  [SIEM] [Case] Initial UI (elastic#57283)
  handle viewing sample dashboards on default dist (elastic#57510)
  Fix detection of "system requests" in plugins (elastic#57149)
  [ML] New Platform server shim: update job service schema (elastic#57614)
  skip flaky suite (elastic#44631)
  [APM] Update monospace font family variable (elastic#57555)
  skip flaky test (elastic#57377)
  Skip save query tests (elastic#57589)
  [Maps] allow simultaneous opening of multiple tooltips (elastic#57226)
  [Uptime] Fix/host connected components (elastic#56969)
  [logs][metrics][docs] Update screenshots for 7.6 (elastic#57254)
  [ML] New Platform server shim: update job service routes to use new platform router (elastic#57403)
  [Maps] Fix document source top hits split by scripted field (elastic#57481)
  Use log4j pattern syntax (elastic#57433)
  [ML] Categorization field example endpoint tests (elastic#57471)
  [Lens] Filter out pinned filters from saved object of Lens (elastic#57197)
  Lens client side shim cleanup (elastic#56976)
  ...
nreese added a commit that referenced this pull request Jan 23, 2023
…149254)

Fixes #148819

When [multiple tooltips](#57226)
first merged in 7.7.0, TooltipFeature only had `id` and `layerId`
property so the original equality check `_.isEqual(features,
tooltipState.features)` prevented tooltips from opening that shows
identical features. Later releases added new properties to
TooltipFeature that broke this deep equals check.

This PR resolves the issue by mapping features to just `{id, layerId}`
before equality check to ensure those are the only properties that
determine equality.

Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Maps] Allow user to open multiple tooltips
5 participants