From e9dae3a86b0da5e0c7139d4d117e1acf016ab887 Mon Sep 17 00:00:00 2001 From: Joe Reuter Date: Mon, 17 Feb 2020 12:12:38 +0100 Subject: [PATCH] do not refresh color scale on each lookup --- .../vis_type_tagcloud/public/components/tag_cloud.js | 7 +++---- .../public/components/tag_cloud_visualization.js | 4 +++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/legacy/core_plugins/vis_type_tagcloud/public/components/tag_cloud.js b/src/legacy/core_plugins/vis_type_tagcloud/public/components/tag_cloud.js index f5084fd92cfeea..fae7cdf7979584 100644 --- a/src/legacy/core_plugins/vis_type_tagcloud/public/components/tag_cloud.js +++ b/src/legacy/core_plugins/vis_type_tagcloud/public/components/tag_cloud.js @@ -37,7 +37,7 @@ const D3_SCALING_FUNCTIONS = { }; export class TagCloud extends EventEmitter { - constructor(domNode, colors) { + constructor(domNode, colorScale) { super(); //DOM @@ -54,7 +54,6 @@ export class TagCloud extends EventEmitter { this._spiral = 'archimedean'; //layout shape this._timeInterval = 1000; //time allowed for layout algorithm this._padding = 5; - this._seedColors = colors.seedColors; //OPTIONS this._orientation = 'single'; @@ -67,6 +66,7 @@ export class TagCloud extends EventEmitter { this._words = null; //UTIL + this._colorScale = colorScale; this._setTimeoutId = null; this._pendingJob = null; this._layoutIsUpdating = null; @@ -371,8 +371,7 @@ export class TagCloud extends EventEmitter { } getFill(tag) { - const colorScale = d3.scale.ordinal().range(this._seedColors); - return colorScale(tag.text); + return this._colorScale(tag.text); } } diff --git a/src/legacy/core_plugins/vis_type_tagcloud/public/components/tag_cloud_visualization.js b/src/legacy/core_plugins/vis_type_tagcloud/public/components/tag_cloud_visualization.js index 5528278adf4eb3..114643c9a74e09 100644 --- a/src/legacy/core_plugins/vis_type_tagcloud/public/components/tag_cloud_visualization.js +++ b/src/legacy/core_plugins/vis_type_tagcloud/public/components/tag_cloud_visualization.js @@ -28,10 +28,12 @@ import { getFormat } from '../legacy_imports'; import { Label } from './label'; import { TagCloud } from './tag_cloud'; import { FeedbackMessage } from './feedback_message'; +import d3 from 'd3'; const MAX_TAG_COUNT = 200; export function createTagCloudVisualization({ colors }) { + const colorScale = d3.scale.ordinal().range(colors.seedColors); return class TagCloudVisualization { constructor(node, vis) { this._containerNode = node; @@ -48,7 +50,7 @@ export function createTagCloudVisualization({ colors }) { this._vis = vis; this._truncated = false; - this._tagCloud = new TagCloud(cloudContainer, colors); + this._tagCloud = new TagCloud(cloudContainer, colorScale); this._tagCloud.on('select', event => { if (!this._visParams.bucket) { return;