import { CallbackBtn } from '../../Lcz3dAreaMap/type'; import { MapRange } from '../../LczChina2dMap/type'; import { FontStyle } from '../../LczNewsList/type'; import { RegionActive, RegionBar, RegionDLight, RegionFlyLine, RegionImage, RegionInfoPanel, RegionPoint } from './children'; export type Antialias = 'ssaa' | 'fxaa' | 'smaa' | 'null'; export type BoxSize = { x: number[]; y: number[]; }; export interface BaseConfig { pixelRatio: number; camera: { x: number; y: number; z: number; }; dataSource: MapRange; antialias: Antialias; ambientLight: { display: boolean; color: string; intensity: number; }; } export interface DrawMapFnArgs { mapData: any; init?: boolean; adcode?: string; } export interface CoreMapReactStateFn { setCoreMap: (coreMap: any) => void; setCurtAdcode: (adcode: string) => void; setSideDepth: (depth: number) => void; } export interface ConstructorArgs extends CoreMapReactStateFn { option: RegionMapProps; element: HTMLDivElement; } export interface MapStyle { topPlane: { fillType: 'color' | 'custom'; texturePath: string; color: string; }; topLine: { color: string; linewidth: number; }; sidePlane: { color: string; depth: number; }; bottomLine: { color: string; linewidth: number; }; edge: { display: boolean; color: string; glow: number; strength: number; pulsePeriod: number; }; regionName: RegionName; } export interface MapEvent { drillConfig: { display: boolean; backType: 'doubleClick' | 'button'; button: CallbackBtn; }; } interface RegionName { display: boolean; fontStyle: FontStyle; mark: { display: boolean; path: string; }; } interface DrillInfo { adcode: string; name: string; } export interface DrillDownInfo extends DrillInfo { parentCode: string; } export interface DrillUpInfo extends DrillInfo { childCode: string; } export type RegionMapChildType = 'lcz-3d-region-map-image' | 'lcz-3d-region-map-bar' | 'lcz-3d-region-map-d-light' | 'lcz-3d-region-map-fly-line' | 'lcz-3d-region-map-active' | 'lcz-3d-region-map-point' | 'lcz-3d-region-map-info-panel'; export type RegionMapChildComponent = RegionImage | RegionBar | RegionDLight | RegionFlyLine | RegionActive | RegionPoint | RegionInfoPanel; export interface RegionMapProps { w: number; h: number; design: boolean; baseConfig: BaseConfig; mapStyle: MapStyle; mapEvent: MapEvent; childComponents?: RegionMapChildComponent[]; onDrillDown?: (drillDownInfo: DrillDownInfo) => void; onDrillUp?: (drillUpInfo: DrillUpInfo) => void; } export interface LineColor { color: string; opacity: number; } export {};