-
Notifications
You must be signed in to change notification settings - Fork 8.5k
Tagcloud fixes #9194
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
Tagcloud fixes #9194
Conversation
|
I'm not entirely sure this will fix all that I saw in #9182. If I call "setOptions" with twice with two different scales, I believe the resulting sizes will be wrong. The first time setOptions is called, it will layout and cause the sizes in the words objects to be scaled. The second time setOptions is called, it will use the these new sizes in the scaling instead of the old sizes. |
|
@thomasneirynck Tests on this one failed |
aebd62c to
fb323b9
Compare
|
@ppisljar feel free to already take a look. I opened this to work on the fall-out during QA. There's also an issue with Reporting, causing the container to be too small. I'll leave this PR open to address that too. |
|
jenkins, test this |
|
jenkins, test this |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what's this for?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added the time-out so as not to trigger a refresh synchronously. Those 10-milliseconds are a magic number.
In hindsight, I prefer it over the requestAnimationFrame, because the DOM-updates are managed by d3, and requestAnimationFrame is better used for drawing to a canvas anyway.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is a timeout of 0 an option and adding comment? Mostly to avoid confusion, that we aren't waiting for something that takes >0 and <10ms
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Timeout of 0 would be fine as well. It's basically just to unhook it from the callstack. I'll make that change.
Tagcloud was subsceptible to race conditions, potentially yielding stale clouds. - Introduced queue to explicitly keep track of outstanding jobs and avoid clobbering of the state. - Expanded unit tests
3133c63 to
de95bf1
Compare
| @@ -1,5 +1,5 @@ | |||
| .tagcloud-vis { | |||
| position: relative; | |||
| position: absolute; | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
children of flex-boxes don't stretch to full height, unless the position is absolute (
http://stackoverflow.com/questions/15381172/css-flexbox-child-height-100).
This caused the tagcloud in reporting to be empty.
| return new TemplateVisType({ | ||
| name: 'tagcloud', | ||
| title: 'Tag cloud', | ||
| implementsRenderComplete: true, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
required for Reporting to check the render-counter property, instead of using a timeout
Backports PR #9194 **Commit 1:** Improve robustness Tagcloud was subsceptible to race conditions, potentially yielding stale clouds. - Introduced queue to explicitly keep track of outstanding jobs and avoid clobbering of the state. - Expanded unit tests * Original sha: af5d5c6 * Authored by Thomas Neirynck <thomas@elastic.co> on 2016-11-23T00:20:04Z **Commit 2:** ensure tagcloud expands to full height in reporting * Original sha: de95bf1 * Authored by Thomas Neirynck <thomas@elastic.co> on 2016-11-28T23:13:18Z **Commit 3:** remove magic numbers * Original sha: 011474c * Authored by Thomas Neirynck <thomas@elastic.co> on 2016-11-28T23:33:48Z
Backports PR #9194 **Commit 1:** Improve robustness Tagcloud was subsceptible to race conditions, potentially yielding stale clouds. - Introduced queue to explicitly keep track of outstanding jobs and avoid clobbering of the state. - Expanded unit tests * Original sha: af5d5c6 * Authored by Thomas Neirynck <thomas@elastic.co> on 2016-11-23T00:20:04Z **Commit 2:** ensure tagcloud expands to full height in reporting * Original sha: de95bf1 * Authored by Thomas Neirynck <thomas@elastic.co> on 2016-11-28T23:13:18Z **Commit 3:** remove magic numbers * Original sha: 011474c * Authored by Thomas Neirynck <thomas@elastic.co> on 2016-11-28T23:33:48Z
Backports PR #9194 **Commit 1:** Improve robustness Tagcloud was subsceptible to race conditions, potentially yielding stale clouds. - Introduced queue to explicitly keep track of outstanding jobs and avoid clobbering of the state. - Expanded unit tests * Original sha: af5d5c6 * Authored by Thomas Neirynck <thomas@elastic.co> on 2016-11-23T00:20:04Z **Commit 2:** ensure tagcloud expands to full height in reporting * Original sha: de95bf1 * Authored by Thomas Neirynck <thomas@elastic.co> on 2016-11-28T23:13:18Z **Commit 3:** remove magic numbers * Original sha: 011474c * Authored by Thomas Neirynck <thomas@elastic.co> on 2016-11-28T23:33:48Z
Backports PR #9194 **Commit 1:** Improve robustness Tagcloud was subsceptible to race conditions, potentially yielding stale clouds. - Introduced queue to explicitly keep track of outstanding jobs and avoid clobbering of the state. - Expanded unit tests * Original sha: af5d5c6 * Authored by Thomas Neirynck <thomas@elastic.co> on 2016-11-23T00:20:04Z **Commit 2:** ensure tagcloud expands to full height in reporting * Original sha: de95bf1 * Authored by Thomas Neirynck <thomas@elastic.co> on 2016-11-28T23:13:18Z **Commit 3:** remove magic numbers * Original sha: 011474c * Authored by Thomas Neirynck <thomas@elastic.co> on 2016-11-28T23:33:48Z
Backports PR elastic#9194 **Commit 1:** Improve robustness Tagcloud was subsceptible to race conditions, potentially yielding stale clouds. - Introduced queue to explicitly keep track of outstanding jobs and avoid clobbering of the state. - Expanded unit tests * Original sha: af5d5c6 * Authored by Thomas Neirynck <thomas@elastic.co> on 2016-11-23T00:20:04Z **Commit 2:** ensure tagcloud expands to full height in reporting * Original sha: de95bf1 * Authored by Thomas Neirynck <thomas@elastic.co> on 2016-11-28T23:13:18Z **Commit 3:** remove magic numbers * Original sha: 011474c * Authored by Thomas Neirynck <thomas@elastic.co> on 2016-11-28T23:33:48Z Former-commit-id: 67aea7b
- `@elastic/eui`: `v109.0.0` ⏩ `v109.1.0` - `@elastic/eslint-plugin-eui`: `v2.5.0` ⏩ `v2.6.0` --- ## Changes - Updated i18n EUI mapping 6cc95b0 - Updated test in Unified Search 668948f ## Package updates ### `@elastic/eui` [`v109.1.0`](https://github.com/elastic/eui/releases/v109.1.0) - Added `--euiBottomBarOffset` CSS variable to `EuiBottomBar` for positioning other fixed elements relative to the bottom bar's height ([#9211](elastic/eui#9211)) - Updated `boxesVertical` icon and restored `checkInCircleFilled`, `errorFilled`, and `warningFilled` icons. ([#9194](elastic/eui#9194)) - Updated `EuiSuperDatePicker` with new time zone information, opt-in via `timeZoneDisplayProps`. ([#9191](elastic/eui#9191)) - Updated the position of `EuiModal` by removing bottom padding in `EuiOverlayMask` ([#9190](elastic/eui#9190)) - Added `EuiPopover` and `EuiToolTip`'s `repositionOnScroll` to `componentDefaults` ([#9152](elastic/eui#9152)) - Updated `EuiSuperDatePicker` with new time window buttons for time shifting and zoom out, opt-in via `showTimeWindowButtons` boolean prop. ([#9151](elastic/eui#9151)) - Added beta prop `hasAriaDisabled` to all base button components: `EuiButton`, `EuiButtonEmpty`, `EuiButtonIcon`, `EuibuttonGroup`, `EuiFilterButton` ([#9201](elastic/eui#9201)) - Added `euiDisabledSelector` variable that combines CSS selectors `:disabled` and `[aria-disabled="true"]` ([#9201](elastic/eui#9201)) - Added custom test matchers that check for both `disabled` and `aria-disabled` attributes: ([#9201](elastic/eui#9201)) - React testing Library: `.toBeEuiDisabled()` - Enzyme: `.toHaveEuiDisabledProp()` - Cypress: `should('be.euiDisabled)` **Bug fixes** - Fixed unexpected duplicate columns in `EuiDataGrid` crashing the column sorting by removing duplicate columns entirely ([#9209](elastic/eui#9209)) - Fixed a visual bug in `EuiTable` where long table row content would be cut off on mobile screens ([#9206](elastic/eui#9206)) - Fixed virtualized `EuiCodeBlock` rendering blank lines when content updates if scrolled. ([#9196](elastic/eui#9196)) - Fixed `EuiButtonGroup` button sizing to ensure square buttons when used with `isIconOnly=true` ([#9170](elastic/eui#9170)) **Accessibility** - Fixed an issue where portalled components like `EuiPopover` were not included in `EuiFlyout`'s focus trap through `includeSelectorInFocusTrap`, making them inaccessible to keyboard users ([#9103](elastic/eui#9103)) ### `@elastic/eslint-plugin-eui` [`v2.6.0`](https://github.com/elastic/eui/blob/main/packages/eslint-plugin/changelogs/CHANGELOG_2025.md#v260) - Added new `require-table-caption` rule. ([#9168](elastic/eui#9168)) --------- Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
- `@elastic/eui`: `v109.0.0` ⏩ `v109.1.0` - `@elastic/eslint-plugin-eui`: `v2.5.0` ⏩ `v2.6.0` --- ## Changes - Updated i18n EUI mapping 6cc95b0 - Updated test in Unified Search 668948f ## Package updates ### `@elastic/eui` [`v109.1.0`](https://github.com/elastic/eui/releases/v109.1.0) - Added `--euiBottomBarOffset` CSS variable to `EuiBottomBar` for positioning other fixed elements relative to the bottom bar's height ([elastic#9211](elastic/eui#9211)) - Updated `boxesVertical` icon and restored `checkInCircleFilled`, `errorFilled`, and `warningFilled` icons. ([elastic#9194](elastic/eui#9194)) - Updated `EuiSuperDatePicker` with new time zone information, opt-in via `timeZoneDisplayProps`. ([elastic#9191](elastic/eui#9191)) - Updated the position of `EuiModal` by removing bottom padding in `EuiOverlayMask` ([elastic#9190](elastic/eui#9190)) - Added `EuiPopover` and `EuiToolTip`'s `repositionOnScroll` to `componentDefaults` ([elastic#9152](elastic/eui#9152)) - Updated `EuiSuperDatePicker` with new time window buttons for time shifting and zoom out, opt-in via `showTimeWindowButtons` boolean prop. ([elastic#9151](elastic/eui#9151)) - Added beta prop `hasAriaDisabled` to all base button components: `EuiButton`, `EuiButtonEmpty`, `EuiButtonIcon`, `EuibuttonGroup`, `EuiFilterButton` ([elastic#9201](elastic/eui#9201)) - Added `euiDisabledSelector` variable that combines CSS selectors `:disabled` and `[aria-disabled="true"]` ([elastic#9201](elastic/eui#9201)) - Added custom test matchers that check for both `disabled` and `aria-disabled` attributes: ([elastic#9201](elastic/eui#9201)) - React testing Library: `.toBeEuiDisabled()` - Enzyme: `.toHaveEuiDisabledProp()` - Cypress: `should('be.euiDisabled)` **Bug fixes** - Fixed unexpected duplicate columns in `EuiDataGrid` crashing the column sorting by removing duplicate columns entirely ([elastic#9209](elastic/eui#9209)) - Fixed a visual bug in `EuiTable` where long table row content would be cut off on mobile screens ([elastic#9206](elastic/eui#9206)) - Fixed virtualized `EuiCodeBlock` rendering blank lines when content updates if scrolled. ([elastic#9196](elastic/eui#9196)) - Fixed `EuiButtonGroup` button sizing to ensure square buttons when used with `isIconOnly=true` ([elastic#9170](elastic/eui#9170)) **Accessibility** - Fixed an issue where portalled components like `EuiPopover` were not included in `EuiFlyout`'s focus trap through `includeSelectorInFocusTrap`, making them inaccessible to keyboard users ([elastic#9103](elastic/eui#9103)) ### `@elastic/eslint-plugin-eui` [`v2.6.0`](https://github.com/elastic/eui/blob/main/packages/eslint-plugin/changelogs/CHANGELOG_2025.md#v260) - Added new `require-table-caption` rule. ([elastic#9168](elastic/eui#9168)) --------- Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
- `@elastic/eui`: `v109.0.0` ⏩ `v109.1.0` - `@elastic/eslint-plugin-eui`: `v2.5.0` ⏩ `v2.6.0` --- ## Changes - Updated i18n EUI mapping 6cc95b0 - Updated test in Unified Search 668948f ## Package updates ### `@elastic/eui` [`v109.1.0`](https://github.com/elastic/eui/releases/v109.1.0) - Added `--euiBottomBarOffset` CSS variable to `EuiBottomBar` for positioning other fixed elements relative to the bottom bar's height ([elastic#9211](elastic/eui#9211)) - Updated `boxesVertical` icon and restored `checkInCircleFilled`, `errorFilled`, and `warningFilled` icons. ([elastic#9194](elastic/eui#9194)) - Updated `EuiSuperDatePicker` with new time zone information, opt-in via `timeZoneDisplayProps`. ([elastic#9191](elastic/eui#9191)) - Updated the position of `EuiModal` by removing bottom padding in `EuiOverlayMask` ([elastic#9190](elastic/eui#9190)) - Added `EuiPopover` and `EuiToolTip`'s `repositionOnScroll` to `componentDefaults` ([elastic#9152](elastic/eui#9152)) - Updated `EuiSuperDatePicker` with new time window buttons for time shifting and zoom out, opt-in via `showTimeWindowButtons` boolean prop. ([elastic#9151](elastic/eui#9151)) - Added beta prop `hasAriaDisabled` to all base button components: `EuiButton`, `EuiButtonEmpty`, `EuiButtonIcon`, `EuibuttonGroup`, `EuiFilterButton` ([elastic#9201](elastic/eui#9201)) - Added `euiDisabledSelector` variable that combines CSS selectors `:disabled` and `[aria-disabled="true"]` ([elastic#9201](elastic/eui#9201)) - Added custom test matchers that check for both `disabled` and `aria-disabled` attributes: ([elastic#9201](elastic/eui#9201)) - React testing Library: `.toBeEuiDisabled()` - Enzyme: `.toHaveEuiDisabledProp()` - Cypress: `should('be.euiDisabled)` **Bug fixes** - Fixed unexpected duplicate columns in `EuiDataGrid` crashing the column sorting by removing duplicate columns entirely ([elastic#9209](elastic/eui#9209)) - Fixed a visual bug in `EuiTable` where long table row content would be cut off on mobile screens ([elastic#9206](elastic/eui#9206)) - Fixed virtualized `EuiCodeBlock` rendering blank lines when content updates if scrolled. ([elastic#9196](elastic/eui#9196)) - Fixed `EuiButtonGroup` button sizing to ensure square buttons when used with `isIconOnly=true` ([elastic#9170](elastic/eui#9170)) **Accessibility** - Fixed an issue where portalled components like `EuiPopover` were not included in `EuiFlyout`'s focus trap through `includeSelectorInFocusTrap`, making them inaccessible to keyboard users ([elastic#9103](elastic/eui#9103)) ### `@elastic/eslint-plugin-eui` [`v2.6.0`](https://github.com/elastic/eui/blob/main/packages/eslint-plugin/changelogs/CHANGELOG_2025.md#v260) - Added new `require-table-caption` rule. ([elastic#9168](elastic/eui#9168)) --------- Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
5.1 is going through QA right now. Will require fixes to Tagcloud.
Created this PR to track smaller fixes/code improvements: