///
import type { LayerSourceConfig } from '../specs';
import type { LayerMetadata } from '../specs/metadata';
import type { DatasetFieldWithMeta, WidgetRegisterForm } from './widget';
export interface ImplementLayerProps {
id?: string;
name?: string;
}
export type LayerRegisterFormProps = {
/**
* 图层数据集列字段
*/
datasetFields: DatasetFieldWithMeta[];
};
/**
* 属性面板生产的数据类型定义
*/
export type LayerRegisterFormResultType = Record> = {
sourceConfig: Omit;
visConfig: VisProperties;
};
export type LayerRegisterForm = Record> = Omit & {
/**
* 表单数据格式转换,将结构化数据(属性面板数据类型)转换为表单的平铺结构
*/
toValues?: (config: LayerRegisterFormResultType) => Record;
/**
* 表单数据格式转换,将表单的平铺数据结构转为结构化数据(属性面板数据类型)
*/
fromValues?: (values: Record) => LayerRegisterFormResultType;
};
export type ImplementLayerOptions = Record, CP extends VisProperties = VisProperties> = {
/**
* 组件资产版本号
*/
version: string;
/**
* 图层组件
*/
component: React.FC;
/**
* 图层组件资产元属性信息
*/
metadata: LayerMetadata;
/**
* 图层样式面板属性默认值,用于创建图层时默认值设置
*/
defaultVisConfig?: VisProperties;
/**
* 图层组件资产属性面板配置
*/
registerForm?: LayerRegisterForm | ((props: LayerRegisterFormProps) => LayerRegisterForm);
};
export type ImplementLayer = Record, CP extends VisProperties = VisProperties> = {
version: string;
component: React.FC;
metadata: LayerMetadata;
defaultVisConfig?: VisProperties;
registerForm: LayerRegisterForm | ((props: LayerRegisterFormProps) => LayerRegisterForm);
};