import { SOLID_LINE_CAP_TYPE, SOLID_LINE_JOIN_TYPE } from '../../model/map/INaviLineOptions'; import { IVector2 } from '../../model/common/IVector2'; import { DATA_TYPE, SHAPE_TYPE } from './const'; import { ISelectedMarkerData } from '../../model/map/ISelectedMarkerData'; import { EASE_TYPE } from '../../model/map/INaviAnimOption'; import { ITransform2d } from '../../model/common/ITransform2d'; import { IObject } from '../../model/map/IObject'; import { POI_GROUP_TYPE } from '../../model/map/IPoi'; export type LineJoin = 'round' | 'bevel' | 'miter'; export type LineCap = 'butt' | 'round' | 'square'; export type Callback = (value: any) => any; export interface TextureInterface { url: string; image: HTMLImageElement; } export interface EventCaller { event: string; callback: (value: any) => any; } interface Authorization { clientId: string; clientSecret: string; } export interface MapOption { authorization: Authorization; backgroundImage?: { visible: boolean; }; canvasSize?: { width: number; height: number; }; center?: { x: number; y: number; }; zoom?: number; minZoom?: number; maxZoom?: number; floor?: string; northReference?: number; } export interface TweenAnimationOption { x?: number; y?: number; yoyo?: boolean; fill?: string; fillOpacity?: number; stroke?: string; strokeOpacity?: number; strokeWidth?: number; opacity?: number; radius?: number; duration?: number; repeat?: number; ease?: EASE_TYPE; scale?: number; id?: string; name?: string; finishedReset?: boolean; scheduled?: boolean; isCurrentFloor?: boolean; onFinish?: () => void; } export interface TweenConfig { x?: number; y?: number; opacity?: number; radius?: number; tweenId: string; nodeId: string; node: any; duration?: number; dashOffset?: number; scaleX?: number; scaleY?: number; easing?: any; repeat?: number; isYoyo?: boolean; fill?: string; finishedReset?: boolean; onFinish?: () => void; onUpdate?: () => void; } export interface MylocationAnimationOption extends TweenAnimationOption { x: number; y: number; fill: string; } export interface ImageOption extends IconOption { dataType?: DATA_TYPE; image: HTMLImageElement; userData?: any; useTransformData?: ITransform2d; renderOrder?: number; } export interface GifImageOption extends IconOption { url: string; useTransformData?: ITransform2d; } export interface IconOption { x?: number; y?: number; width?: number; height?: number; opacity?: number; visible?: boolean; anchor?: IVector2; rotate?: number; scale?: { x: number; y: number; }; fillEnabled?: boolean; clickHandler?: (userData?: any) => void; markerClickHandler?: (option: ISelectedMarkerData) => void; mouseOverHandler?: (userData?: any) => void; mouseEnterHandler?: (userData?: any) => void; mouseLeaveHandler?: (userData?: any) => void; id?: string; name?: string; userData?: any; isPoiOnNavi?: boolean; renderOrder?: number; isVisibility?: boolean; sprite?: boolean; fixedSize?: boolean; } export interface MarkerItemGroupOption { id?: string; opacity?: number; sprite?: boolean; useTransformData?: ITransform2d; renderOrder?: number; name?: string; fixedSize?: boolean; position: IVector2; clickHandler?: (userData?: any) => void; mouseOverHandler?: (userData?: any) => void; mouseEnterHandler?: (userData?: any) => void; mouseLeaveHandler?: (userData?: any) => void; } export interface PoiItemGroupOption { id?: string; poiGroupType: POI_GROUP_TYPE; opacity?: number; dataType?: DATA_TYPE; sprite?: boolean; useTransformData?: ITransform2d; renderOrder?: number; name?: string; collisionTest?: boolean; isCollisionShow?: boolean; fixedSize?: boolean; position: IVector2; objectRect?: { x: number; y: number; width: number; height: number; }; originMapRotationAngle?: number; isPoiFitToObject?: boolean; clickHandler?: (userData?: any) => void; mouseOverHandler?: (userData?: any) => void; mouseEnterHandler?: (userData?: any) => void; mouseLeaveHandler?: (userData?: any) => void; } export interface CircleOption { x: number; y: number; opacity?: number; radius?: number; fill: string; id?: string; name?: string; stroke?: string; strokeWidth?: number; floorId?: string; userData?: any; visible?: boolean; useTransformData?: ITransform2d; defaultStyle?: any; transform?: any; clickHandler?: (floorId: string, objects: IObject[], isVoid?: boolean) => void; mouseOverHandler?: (floorId: string, objects: IObject[]) => void; mouseEnterHandler?: (objectId: string) => void; mouseLeaveHandler?: (objectId: string) => void; renderOrder?: number; fixedSize?: boolean; } export interface PathConfig { dataType?: DATA_TYPE; data?: string; fill?: string; opacity?: number; stroke?: string; strokeWidth?: number; fillPatternImage?: HTMLImageElement; fillPatternScale?: { x: number; y: number; }; floorId?: string; id?: string; name?: string; useTransformData?: ITransform2d; defaultStyle?: any; transform?: any; visible?: boolean; userData?: any; fillEnabled?: boolean; strokeEnabled?: boolean; isVisibility?: boolean; clickHandler?: (floorId: string, objects: IObject[], isVoid?: boolean) => void; mouseOverHandler?: (floorId: string, objects: IObject[]) => void; mouseEnterHandler?: (object: IObject) => void; mouseLeaveHandler?: (object: IObject) => void; renderOrder?: number; } export interface LineOption { dataType?: DATA_TYPE; visible?: boolean; rotate?: number; points?: number[]; stroke?: string; strokeWidth?: number; strokeEnabled?: boolean; lineCap?: LineCap | SOLID_LINE_CAP_TYPE; lineJoin?: LineJoin | SOLID_LINE_JOIN_TYPE; scale?: { x: number; y: number; }; fill?: string; fillEnabled?: boolean; opacity?: number; closed?: boolean; fillPatternImage?: HTMLImageElement; fillPatternScale?: { x: number; y: number; }; dashEnabled?: boolean; dash?: Array; userData?: any; isVisibility?: boolean; spotSize?: number; spotInterval?: number; lineSpotAnimate?: boolean; lineSpotAnimateSpeed?: number; floorId?: string; clickHandler?: (floorId: string, objects: IObject[], isVoid?: boolean) => void; mouseOverHandler?: (floorId: string, objects: IObject[]) => void; mouseEnterHandler?: (object: IObject) => void; mouseLeaveHandler?: (object: IObject) => void; fillOpacity?: number; strokeOpacity?: number; id?: string; name?: string; useTransformData?: ITransform2d; isPoiOnNavi?: boolean; defaultStyle?: any; transform?: any; renderOrder?: number; } export interface ShapeOption { fill?: string; opacity?: number; stroke?: string; strokeWidth?: number; id?: string; name?: string; userData?: any; visible?: boolean; useTransformData?: ITransform2d; sceneFunc?: (context: any, shape: any) => void; } export interface TextOption { dataType?: DATA_TYPE; x?: number; y?: number; text?: string; fontSize?: number; fontStyle?: string; opacity?: number; fontFamily?: string; letterSpacing?: number; lineHeight?: number; isShowTextFill?: boolean; isShowTextStroke?: boolean; textPadding?: { horizontal: number; vertical: number; }; align?: string; fill?: string; fillEnabled?: boolean; stroke?: string; strokeWidth?: number; strokeEnabled?: boolean; lineJoin?: LineJoin; scale?: { x: number; y: number; }; spacing?: number; clickHandler?: (userData?: any) => void; mouseOverHandler?: (userData?: any) => void; mouseEnterHandler?: (userData?: any) => void; mouseLeaveHandler?: (userData?: any) => void; id?: string; name?: string; userData?: any; isVisibility?: boolean; sprite?: boolean; rotate?: number; useTransformData?: ITransform2d; isPoiOnNavi?: boolean; renderOrder?: number; backgroundStyle?: { opacity?: number; color?: string; borderRadius?: number; }; } export interface AnimateLineOption { id: string; duration: number; scheduled?: boolean; } export interface UpdateOption { config?: IconOption | TextOption | LineOption; animationConfig?: TweenAnimationOption; id?: string | string[]; name?: string; shapeType?: SHAPE_TYPE; isReset?: boolean; } export interface Marker { position: { x: number; y: number; }; image?: string; floorId?: string; async?: boolean; size?: { width: number; height: number; }; } export interface MarkerOption { marker: Marker[]; } export interface RouteMarkerOption { image: HTMLImageElement; x: number; y: number; width: number | undefined; height: number | undefined; visibleIcon: boolean; anchor: IVector2 | undefined; animateOption?: { duration?: number; repeat?: number; opacity?: number; } | undefined; } export interface MyLocationOption { icon?: { image?: string; size?: { width: number; height: number; }; }; animate?: { color: string; opacity: number; desireScale: number; }; } export interface PoiCategory { title: string; code: string; childList: PoiCategory[]; } export interface CategoryList { [title: string]: string; } export interface NavigationOption { speedRate: number; lineColor: string; solidLineEnabled: boolean; solidLineWidth: number; iconUrl: string; movingWidth: number; movingHeight: number; origin: { iconUrl: string; width: number; height: number; }; destination: { iconUrl: string; width: number; height: number; }; visibleIcon: boolean; } export interface AnimationOption { changeFloorDelay?: number; zoom?: number; } export interface LibraryGroup { add(child: any): void; remove(): void; destroy(): void; find(name: string): any[]; getChildren(name: any): any; } export interface AnimationPoints { floorId: string; transCode: string | null; points: { index: number; path: IVector2; originalPath: IVector2; }[]; } export {};