@@ -6,22 +6,18 @@ import VectorMap, {
66 Border ,
77 Font ,
88} from 'devextreme-react/vector-map' ;
9- import type { ILayerProps , ITooltipProps } from 'devextreme-react/vector-map' ;
9+ import type { ILayerProps , ITooltipProps , VectorMapTypes } from 'devextreme-react/vector-map' ;
1010
1111import * as mapsData from 'devextreme-dist/js/vectormap-data/world.js' ;
1212import { countries } from './data.ts' ;
1313
14- interface MapLayerElement {
15- attribute : ( name : string ) => string ;
16- selected : ( value ?: boolean ) => boolean ;
17- applySettings ?: ( settings : Record < string , any > ) => void ;
18- }
14+ type CountriesKey = keyof typeof countries ;
1915
2016const bounds = [ - 180 , 85 , 180 , - 60 ] ;
2117
2218const customizeLayer : ILayerProps [ 'customize' ] = ( elements ) => {
2319 elements . forEach ( ( element ) => {
24- const name = element . attribute ( 'name' ) as keyof typeof countries ;
20+ const name = element . attribute ( 'name' ) as CountriesKey ;
2521 const country = countries [ name ] ;
2622 if ( country ) {
2723 element . applySettings ( {
@@ -33,7 +29,7 @@ const customizeLayer: ILayerProps['customize'] = (elements) => {
3329 } ) ;
3430} ;
3531
36- const clickHandler = ( { target } : { target : MapLayerElement } ) => {
32+ const clickHandler = ( { target } : VectorMapTypes . ClickEvent ) => {
3733 const name = target ?. attribute ( 'name' ) as keyof typeof countries ;
3834 if ( target && countries [ name ] ) {
3935 target . selected ( ! target . selected ( ) ) ;
0 commit comments