import React from 'react'; import { ISettingList } from './LargeScreenSetting'; import { IPageList } from './LargeScreenPage'; import { IMap } from './largeScreenLayout'; export interface ILargeScreenBoardProps { leftIcons?: IBoardTitleIcon[]; rightIcons?: IBoardTitleIcon[]; fitBoard?: number; toolBar: IToolBar; layerList?: IContent[]; scale: number; zoomValue: number; boardEvent?: (type: string, props: object, valueInfo?: object) => void; mainBackgroundStyle?: IMainBackgroundStyle; pageBackgroundStyle?: IMainBackgroundStyle; uiBackgroundStyle?: IMainBackgroundStyle; pageList?: IPageList[]; uiList?: IPageList[]; theme?: string; isPreviewShow?: boolean; isScreening?: boolean; backgroundSize?: IBackgroundSize; uiStateOn?: boolean; uiLayerList?: IContent[]; scenceModelSrc?: string; qiyong3D?: boolean; pointEvent?: string; Line?: Function; Polygon?: Function; add3DType?: string; add3DTypeList?: object; layerDateTime?: string; hoverElement?: string; contextMenus?: IContextMenus[]; PointLayer?: Function; PopupLayer?: Function; Popup?: Function; changeSettingData?: Function; contextMenuId?: string; } export interface IToolBar { leftIcon: IIcon[]; rightIcon: IIcon[]; } export interface IIcon { key: number | string; icon: string; title: string; disabled?: boolean; selected?: boolean; } export interface IBoardItem { key: number | string; x: number; y: number; width: number; height: number; layerIndex: string; elementIndex: number; elementInfo?: IElement; chartType: string; element: React.ReactNode; selected?: boolean; status?: string; keepRatio?: boolean; videoOptions?: Ioptions; [key: string]: string | number | boolean | object; type?: string; } export interface ILargeScreenBoardState { leftIcons: IBoardTitleIcon[]; rightIcons: IBoardTitleIcon[]; fitBoard: number; operationMenus: IOperationMenus; zoomValue: number; zoomList: IBoardZoomListItem[]; guidesData: number[]; boardList: IBoardItem[]; UIBoardLists: IBoardItem[]; boardMoveableList: (IBoardItem | IBoardItem[])[]; layerList: IContent[]; contextMenus: IContextMenus[]; updateKey?: boolean; groupMenus?: IContextMenus[]; targetList?: any[]; mainBackgroundStyle?: IMainBackgroundStyle; pageBackgroundStyle?: IMainBackgroundStyle; uiBackgroundStyle?: IMainBackgroundStyle; pageList?: IPageList[]; uiList?: IPageList[]; theme?: string; isPreviewShow?: boolean; isScreening?: boolean; backgroundSize: IBackgroundSize; uiStateOn?: boolean; uiLayerList?: IContent[]; scenceModelSrc?: string; qiyong3D?: boolean; pointEvent?: string; ZLG: new (dom: HTMLElement | string, map: IMap) => any; Line: Function; Polygon?: Function; add3DType?: string; add3DTypeList?: object; layerDateTime?: string; hoverElement?: string; PointLayer?: Function; PopupLayer?: Function; Popup: Function; changeSettingData?: Function; contextMenuId?: string; } export interface ILargeScreenBoardTitle { click?: (item?: IBoardTitleIcon | any) => void; } export interface IBoardTitleIcon { name: string; key: string | number; label: string; switcher: boolean; disabled: boolean; selected?: boolean; hasName?: boolean; show?: boolean; data?: { enable: boolean; interval: number; unit: string; }; type?: string; } export interface ILargeScreenBoardContentProps { } export interface IContextMenus { label: string | React.ReactNode; key: string | number; icon?: string; type?: string; disabled?: string[] | string; hidden?: string[] | string; children?: IContextMenus[]; fileStyle?: any; labelName?: string; } export interface ILargeScreenBoardZoomProps { zoomList: IBoardZoomListItem[]; zoomValue: number; zoomChange?: (value: number | string) => void; preview?: () => void; } export interface IBoardZoomListItem { key: string | number; label: string; value: number | string; } export interface ILargeScreenBoardBoxProps { scaleValue: number; } export interface IDropItem { title: string; url: string; key: string | number; } export interface IContent { key?: string | number; componentId?: string; layerIndex: string; elementIndex: number; type?: string; title?: string; name?: string; icon?: string; status?: string; selected?: boolean; statusIcon?: string; autofocus?: boolean | undefined; value?: string | undefined; children?: IContent[]; data?: IContent[]; elementInfo?: IElement; [key: string]: string | number | boolean | object | any; } export interface Ioptions { mixedmode?: string; status?: string; autoplay?: boolean; controls?: boolean; controlsAlwaysShow?: string; muted?: boolean; loop?: boolean; sources?: ISources[]; opacity?: number; } export interface ISources { src?: string; type?: string; } export interface IElement { width: number; height: number; x: number; y: number; chartType: string; element: React.ReactNode; key: number | string; } export interface IMainBackgroundStyle { backgroundData?: IBackgroundData; backgroundSet?: ISettingList[]; backgroundTitle?: string; } export interface IBackgroundData { [key: string]: string | number | boolean | object; } export interface IOperationMenus { [key: string]: IOperationMenusItem[]; } export interface IOperationMenusItem { title: string; key: string | number; icon: string; disabled?: boolean; hidden?: boolean; options?: IOperationMenusItem[]; } export interface IBackgroundSize { width: Number; height: Number; }