Skip to content

Commit 02cbd9c

Browse files
author
Aaron Caldwell
authored
Consolidate cross-cutting concerns between region & coordinate maps in new maps_legacy plugin (#64123)
1 parent 3b753ec commit 02cbd9c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+274
-415
lines changed

src/legacy/core_plugins/kibana/public/__tests__/vis_type_vega/vega_visualization.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,14 @@ import {
5959
setData,
6060
setSavedObjects,
6161
setNotifications,
62+
setKibanaMapFactory,
6263
// eslint-disable-next-line @kbn/eslint/no-restricted-paths
6364
} from '../../../../../../plugins/vis_type_vega/public/services';
6465
// eslint-disable-next-line @kbn/eslint/no-restricted-paths
6566
import { setInjectedVarFunc } from '../../../../../../plugins/maps_legacy/public/kibana_services';
6667
// eslint-disable-next-line @kbn/eslint/no-restricted-paths
6768
import { ServiceSettings } from '../../../../../../plugins/maps_legacy/public/map/service_settings';
69+
import { getKibanaMapFactoryProvider } from '../../../../../../plugins/maps_legacy/public';
6870

6971
const THRESHOLD = 0.1;
7072
const PIXEL_DIFF = 30;
@@ -77,6 +79,18 @@ describe('VegaVisualizations', () => {
7779
let vegaVisualizationDependencies;
7880
let vegaVisType;
7981

82+
const coreSetupMock = {
83+
notifications: {
84+
toasts: {},
85+
},
86+
uiSettings: {
87+
get: () => {},
88+
},
89+
injectedMetadata: {
90+
getInjectedVar: () => {},
91+
},
92+
};
93+
setKibanaMapFactory(getKibanaMapFactoryProvider(coreSetupMock));
8094
setInjectedVars({
8195
emsTileLayerId: {},
8296
enableExternalUrls: true,

src/legacy/core_plugins/region_map/public/__tests__/region_map_visualization.js

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ import { BaseVisType } from '../../../../../plugins/visualizations/public/vis_ty
5454
import { setInjectedVarFunc } from '../../../../../plugins/maps_legacy/public/kibana_services';
5555
// eslint-disable-next-line @kbn/eslint/no-restricted-paths
5656
import { ServiceSettings } from '../../../../../plugins/maps_legacy/public/map/service_settings';
57+
import { getBaseMapsVis } from '../../../../../plugins/maps_legacy/public';
5758

5859
const THRESHOLD = 0.45;
5960
const PIXEL_DIFF = 96;
@@ -101,7 +102,7 @@ describe('RegionMapsVisualizationTests', function() {
101102

102103
let getManifestStub;
103104
beforeEach(
104-
ngMock.inject((Private, $injector) => {
105+
ngMock.inject(() => {
105106
setInjectedVarFunc(injectedVar => {
106107
switch (injectedVar) {
107108
case 'mapConfig':
@@ -127,17 +128,28 @@ describe('RegionMapsVisualizationTests', function() {
127128
}
128129
});
129130
const serviceSettings = new ServiceSettings();
130-
const uiSettings = $injector.get('config');
131131
const regionmapsConfig = {
132132
includeElasticMapsService: true,
133133
layers: [],
134134
};
135+
const coreSetupMock = {
136+
notifications: {
137+
toasts: {},
138+
},
139+
uiSettings: {
140+
get: () => {},
141+
},
142+
injectedMetadata: {
143+
getInjectedVar: () => {},
144+
},
145+
};
146+
const BaseMapsVisualization = getBaseMapsVis(coreSetupMock, serviceSettings);
135147

136148
dependencies = {
137149
serviceSettings,
138-
$injector,
139150
regionmapsConfig,
140-
uiSettings,
151+
uiSettings: coreSetupMock.uiSettings,
152+
BaseMapsVisualization,
141153
};
142154

143155
regionMapVisType = new BaseVisType(createRegionMapTypeDefinition(dependencies));

src/legacy/core_plugins/region_map/public/components/region_map_options.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ import {
3232
SelectOption,
3333
SwitchOption,
3434
} from '../../../../../plugins/charts/public';
35-
import { WmsOptions } from '../../../tile_map/public/components/wms_options';
36-
import { RegionMapVisParams } from '../types';
35+
import { RegionMapVisParams, WmsOptions } from '../../../../../plugins/maps_legacy/public';
3736

3837
const mapLayerForOption = ({ layerId, name }: VectorLayer) => ({
3938
text: name,

src/legacy/core_plugins/region_map/public/legacy.ts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,12 @@ import { PluginInitializerContext } from 'kibana/public';
2121
import { npSetup, npStart } from 'ui/new_platform';
2222

2323
import { RegionMapPluginSetupDependencies } from './plugin';
24-
import { LegacyDependenciesPlugin } from './shim';
2524
import { plugin } from '.';
2625

2726
const plugins: Readonly<RegionMapPluginSetupDependencies> = {
2827
expressions: npSetup.plugins.expressions,
2928
visualizations: npSetup.plugins.visualizations,
3029
mapsLegacy: npSetup.plugins.mapsLegacy,
31-
32-
// Temporary solution
33-
// It will be removed when all dependent services are migrated to the new platform.
34-
__LEGACY: new LegacyDependenciesPlugin(),
3530
};
3631

3732
const pluginInstance = plugin({} as PluginInitializerContext);

src/legacy/core_plugins/region_map/public/plugin.ts

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,28 +25,28 @@ import {
2525
} from '../../../../core/public';
2626
import { Plugin as ExpressionsPublicPlugin } from '../../../../plugins/expressions/public';
2727
import { VisualizationsSetup } from '../../../../plugins/visualizations/public';
28-
29-
import { LegacyDependenciesPlugin, LegacyDependenciesPluginSetup } from './shim';
30-
3128
// @ts-ignore
3229
import { createRegionMapFn } from './region_map_fn';
3330
// @ts-ignore
3431
import { createRegionMapTypeDefinition } from './region_map_type';
35-
import { IServiceSettings, MapsLegacyPluginSetup } from '../../../../plugins/maps_legacy/public';
32+
import {
33+
getBaseMapsVis,
34+
IServiceSettings,
35+
MapsLegacyPluginSetup,
36+
} from '../../../../plugins/maps_legacy/public';
3637

3738
/** @private */
38-
interface RegionMapVisualizationDependencies extends LegacyDependenciesPluginSetup {
39+
interface RegionMapVisualizationDependencies {
3940
uiSettings: IUiSettingsClient;
4041
regionmapsConfig: RegionMapsConfig;
4142
serviceSettings: IServiceSettings;
42-
notificationService: any;
43+
BaseMapsVisualization: any;
4344
}
4445

4546
/** @internal */
4647
export interface RegionMapPluginSetupDependencies {
4748
expressions: ReturnType<ExpressionsPublicPlugin['setup']>;
4849
visualizations: VisualizationsSetup;
49-
__LEGACY: LegacyDependenciesPlugin;
5050
mapsLegacy: MapsLegacyPluginSetup;
5151
}
5252

@@ -66,14 +66,13 @@ export class RegionMapPlugin implements Plugin<Promise<void>, void> {
6666

6767
public async setup(
6868
core: CoreSetup,
69-
{ expressions, visualizations, mapsLegacy, __LEGACY }: RegionMapPluginSetupDependencies
69+
{ expressions, visualizations, mapsLegacy }: RegionMapPluginSetupDependencies
7070
) {
7171
const visualizationDependencies: Readonly<RegionMapVisualizationDependencies> = {
7272
uiSettings: core.uiSettings,
7373
regionmapsConfig: core.injectedMetadata.getInjectedVar('regionmap') as RegionMapsConfig,
7474
serviceSettings: mapsLegacy.serviceSettings,
75-
notificationService: core.notifications.toasts,
76-
...(await __LEGACY.setup()),
75+
BaseMapsVisualization: getBaseMapsVis(core, mapsLegacy.serviceSettings),
7776
};
7877

7978
expressions.registerFunction(createRegionMapFn);

src/legacy/core_plugins/region_map/public/region_map_type.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,7 @@ import { createRegionMapVisualization } from './region_map_visualization';
2323
import { RegionMapOptions } from './components/region_map_options';
2424
import { truncatedColorSchemas } from '../../../../plugins/charts/public';
2525
import { Schemas } from '../../../../plugins/vis_default_editor/public';
26-
27-
// TODO: reference to TILE_MAP plugin should be removed
28-
import { ORIGIN } from '../../tile_map/common/origin';
26+
import { ORIGIN } from '../../../../plugins/maps_legacy/public';
2927

3028
export function createRegionMapTypeDefinition(dependencies) {
3129
const { uiSettings, regionmapsConfig, serviceSettings } = dependencies;

src/legacy/core_plugins/region_map/public/region_map_visualization.js

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -21,30 +21,21 @@ import { i18n } from '@kbn/i18n';
2121
import ChoroplethLayer from './choropleth_layer';
2222
import { getFormat } from 'ui/visualize/loader/pipeline_helpers/utilities';
2323
import { toastNotifications } from 'ui/notify';
24-
25-
import { TileMapTooltipFormatter } from './tooltip_formatter';
2624
import { truncatedColorMaps } from '../../../../plugins/charts/public';
27-
28-
// TODO: reference to TILE_MAP plugin should be removed
29-
import { BaseMapsVisualizationProvider } from '../../tile_map/public/base_maps_visualization';
25+
import { tooltipFormatter } from './tooltip_formatter';
26+
import { mapTooltipProvider } from '../../../../plugins/maps_legacy/public';
3027

3128
export function createRegionMapVisualization({
3229
serviceSettings,
33-
$injector,
3430
uiSettings,
35-
notificationService,
31+
BaseMapsVisualization,
3632
}) {
37-
const BaseMapsVisualization = new BaseMapsVisualizationProvider(
38-
serviceSettings,
39-
notificationService
40-
);
41-
const tooltipFormatter = new TileMapTooltipFormatter($injector);
42-
4333
return class RegionMapsVisualization extends BaseMapsVisualization {
4434
constructor(container, vis) {
4535
super(container, vis);
4636
this._vis = this.vis;
4737
this._choroplethLayer = null;
38+
this._tooltipFormatter = mapTooltipProvider(container, tooltipFormatter);
4839
}
4940

5041
async render(esResponse, visParams) {
@@ -89,7 +80,7 @@ export function createRegionMapVisualization({
8980
this._choroplethLayer.setMetrics(results, metricFieldFormatter, valueColumn.name);
9081
if (termColumn && valueColumn) {
9182
this._choroplethLayer.setTooltipFormatter(
92-
tooltipFormatter,
83+
this._tooltipFormatter,
9384
metricFieldFormatter,
9485
termColumn.name,
9586
valueColumn.name
@@ -123,7 +114,7 @@ export function createRegionMapVisualization({
123114
this._choroplethLayer.setColorRamp(truncatedColorMaps[visParams.colorSchema].value);
124115
this._choroplethLayer.setLineWeight(visParams.outlineWeight);
125116
this._choroplethLayer.setTooltipFormatter(
126-
tooltipFormatter,
117+
this._tooltipFormatter,
127118
metricFieldFormatter,
128119
this._metricLabel
129120
);

src/legacy/core_plugins/region_map/public/tooltip.html

Lines changed: 0 additions & 8 deletions
This file was deleted.

src/legacy/core_plugins/region_map/public/tooltip_formatter.js

Lines changed: 21 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -17,39 +17,24 @@
1717
* under the License.
1818
*/
1919

20-
import $ from 'jquery';
21-
import template from './tooltip.html';
22-
23-
export const TileMapTooltipFormatter = $injector => {
24-
const $rootScope = $injector.get('$rootScope');
25-
const $compile = $injector.get('$compile');
26-
27-
const $tooltipScope = $rootScope.$new();
28-
const $el = $('<div>').html(template);
29-
30-
$compile($el)($tooltipScope);
31-
32-
return function tooltipFormatter(metric, fieldFormatter, fieldName, metricName) {
33-
if (!metric) {
34-
return '';
35-
}
36-
37-
$tooltipScope.details = [];
38-
if (fieldName && metric) {
39-
$tooltipScope.details.push({
40-
label: fieldName,
41-
value: metric.term,
42-
});
43-
}
44-
45-
if (metric) {
46-
$tooltipScope.details.push({
47-
label: metricName,
48-
value: fieldFormatter ? fieldFormatter.convert(metric.value, 'text') : metric.value,
49-
});
50-
}
51-
52-
$tooltipScope.$apply();
53-
return $el.html();
54-
};
55-
};
20+
export function tooltipFormatter(metric, fieldFormatter, fieldName, metricName) {
21+
if (!metric) {
22+
return '';
23+
}
24+
25+
const details = [];
26+
if (fieldName && metric) {
27+
details.push({
28+
label: fieldName,
29+
value: metric.term,
30+
});
31+
}
32+
33+
if (metric) {
34+
details.push({
35+
label: metricName,
36+
value: fieldFormatter ? fieldFormatter.convert(metric.value, 'text') : metric.value,
37+
});
38+
}
39+
return details;
40+
}

src/legacy/core_plugins/region_map/public/util.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@
1818
*/
1919

2020
import { FileLayer, VectorLayer } from '../../../../plugins/maps_legacy/public';
21-
// TODO: reference to TILE_MAP plugin should be removed
22-
import { ORIGIN } from '../../../../legacy/core_plugins/tile_map/common/origin';
21+
import { ORIGIN } from '../../../../plugins/maps_legacy/public';
2322

2423
export const mapToLayerWithId = (prefix: string, layer: FileLayer): VectorLayer => ({
2524
...layer,

0 commit comments

Comments
 (0)