mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-14 21:12:53 +00:00
180 lines
3.4 KiB
TypeScript
180 lines
3.4 KiB
TypeScript
/* tslint:disable */
|
|
/**
|
|
* This file was automatically generated by json-schema-to-typescript.
|
|
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
|
|
* and run json-schema-to-typescript to regenerate this file.
|
|
*/
|
|
|
|
/**
|
|
* json schema for low code component protocol
|
|
*/
|
|
export type ComponentMaterial = BasicSection & PropsSection & ConfigureSection;
|
|
export type PropType = BasicType | RequiredType | ComplexType;
|
|
export type BasicType =
|
|
| 'array'
|
|
| 'bool'
|
|
| 'func'
|
|
| 'number'
|
|
| 'object'
|
|
| 'string'
|
|
| 'node'
|
|
| 'element'
|
|
| 'any';
|
|
export type ComplexType =
|
|
| OneOf
|
|
| OneOfType
|
|
| ArrayOf
|
|
| ObjectOf
|
|
| Shape
|
|
| Exact;
|
|
export type ConfigureProp = {
|
|
title?: string;
|
|
extraProps?: {
|
|
[k: string]: any;
|
|
};
|
|
[k: string]: any;
|
|
} & (ConfigureFieldProp | ConfigureGroupProp);
|
|
|
|
export interface BasicSection {
|
|
componentName: string;
|
|
title: string;
|
|
description?: string;
|
|
docUrl: string;
|
|
screenshot: string;
|
|
icon?: string;
|
|
tags?: string[];
|
|
devMode?: 'proCode' | 'lowCode';
|
|
npm: Npm;
|
|
[k: string]: any;
|
|
}
|
|
export interface Npm {
|
|
package: string;
|
|
exportName: string;
|
|
subName: string;
|
|
main: string;
|
|
destructuring: boolean;
|
|
version: string;
|
|
[k: string]: any;
|
|
}
|
|
export interface PropsSection {
|
|
props?: {
|
|
name: string;
|
|
propType: PropType;
|
|
description?: string;
|
|
defaultValue?: any;
|
|
[k: string]: any;
|
|
}[];
|
|
[k: string]: any;
|
|
}
|
|
export interface RequiredType {
|
|
type: BasicType;
|
|
isRequired?: boolean;
|
|
}
|
|
export interface OneOf {
|
|
type: 'oneOf';
|
|
value: string[];
|
|
isRequired?: boolean;
|
|
[k: string]: any;
|
|
}
|
|
export interface OneOfType {
|
|
type: 'oneOfType';
|
|
value: PropType[];
|
|
isRequired?: boolean;
|
|
[k: string]: any;
|
|
}
|
|
export interface ArrayOf {
|
|
type: 'arrayOf';
|
|
value: PropType;
|
|
isRequired?: boolean;
|
|
[k: string]: any;
|
|
}
|
|
export interface ObjectOf {
|
|
type: 'objectOf';
|
|
value: PropType;
|
|
isRequired?: boolean;
|
|
[k: string]: any;
|
|
}
|
|
export interface Shape {
|
|
type: 'shape';
|
|
value: {
|
|
name?: string;
|
|
propType?: PropType;
|
|
}[];
|
|
isRequired?: boolean;
|
|
[k: string]: any;
|
|
}
|
|
export interface Exact {
|
|
type: 'exact';
|
|
value: {
|
|
name?: string;
|
|
propType?: PropType;
|
|
}[];
|
|
isRequired?: boolean;
|
|
[k: string]: any;
|
|
}
|
|
export interface ConfigureSection {
|
|
configure?: {
|
|
props?: ConfigureProp[];
|
|
styles?: {
|
|
[k: string]: any;
|
|
};
|
|
events?: {
|
|
[k: string]: any;
|
|
};
|
|
component?: ConfigureComponent;
|
|
[k: string]: any;
|
|
};
|
|
[k: string]: any;
|
|
}
|
|
export interface ConfigureFieldProp {
|
|
type: 'field';
|
|
name?: string;
|
|
setter?: ConfigureFieldSetter;
|
|
[k: string]: any;
|
|
}
|
|
export interface ConfigureFieldSetter {
|
|
componentName:
|
|
| 'List'
|
|
| 'Object'
|
|
| 'Function'
|
|
| 'Node'
|
|
| 'Mixin'
|
|
| 'Expression'
|
|
| 'Switch'
|
|
| 'Number'
|
|
| 'Input'
|
|
| 'TextArea'
|
|
| 'Date'
|
|
| 'DateYear'
|
|
| 'DateMonth'
|
|
| 'DateRange'
|
|
| 'ColorPicker'
|
|
| 'CodeEditor'
|
|
| 'Select'
|
|
| 'RadioGroup';
|
|
props?: {
|
|
[k: string]: any;
|
|
};
|
|
[k: string]: any;
|
|
}
|
|
export interface ConfigureGroupProp {
|
|
type: 'group';
|
|
items: ConfigureProp[];
|
|
[k: string]: any;
|
|
}
|
|
export interface ConfigureComponent {
|
|
isContainer?: boolean;
|
|
isModal?: boolean;
|
|
descriptor?: string;
|
|
nestingRule?: {
|
|
childWhitelist?: string[];
|
|
parentWhitelist?: string[];
|
|
descendantBlacklist?: string[];
|
|
ancestorWhitelist?: string[];
|
|
[k: string]: any;
|
|
};
|
|
isNullNode?: boolean;
|
|
isLayout?: boolean;
|
|
[k: string]: any;
|
|
}
|