UNPKG

amis-model-design

Version:

amis模型设计器

275 lines (274 loc) 9.01 kB
/// <reference types="lodash" /> import type { Schema } from 'amis-core'; import { IObservableArray } from 'mobx'; import { DatabaseDialectType, DataSourceItem, DBTable, DBTableBrief, FieldItem, FieldType, FormSchema, ModelItem, RelationMode, RelationShipItem, RelationType, TableColumn } from '../type'; import { Manager } from './Manager'; import { ModelStore } from './ModelStore'; import { PluginInterface } from './PluginInterface'; export declare class MainStore { readonly manager: Manager; constructor(manager: Manager); datasource: DataSourceItem; get datasourceData(): DataSourceItem; setDatasource(value: DataSourceItem): void; dbTables: Array<DBTableBrief | DBTable>; dbTablesLoaded: boolean; dbDialectTypes: Array<DatabaseDialectType & { plugin: PluginInterface; }>; relationTypes: Array<RelationType & { plugin: PluginInterface; }>; fieldTypes: Array<FieldType & { plugin: PluginInterface; }>; get supportRelationship(): boolean; get schemaLess(): boolean | undefined; get modelMode(): "auto-sync" | "manual-sync" | "no-sync"; get creatableFieldTypes(): (FieldType & { plugin: PluginInterface; })[]; models: IObservableArray<ModelStore>; get items(): ModelItem[]; getModelById(id: string): ModelStore | undefined; getModelByKey(key: string): ModelStore | undefined; setModels(values: ModelItem[]): void; fixReference(): void; addModel(value: ModelItem | ModelItem[]): void; removeModel(value: ModelItem | ModelItem[]): void; updateLines: import("lodash").DebouncedFunc<() => void>; addFieldsActive: boolean; addFieldsContext: { model: ModelItem; dbTable?: DBTable; } | null; activeAddFields(model: ModelItem): Promise<void>; deActiveAddFields(): void; addRelationActive: boolean; addRelationContext: { model: ModelItem; data?: any; } | null; addRelationFormSchema?: FormSchema; activeAddRelation(model: ModelItem, schema: FormSchema, data?: {}): void; deActiveAddRelation(): void; addModelFormSchema: FormSchema | null; addModelFormSchemaReadyAt: number; addModelFormSchemaData?: any; setAddModelFormSchema(schema: FormSchema, data?: {}): void; editDatasourceFormSchema: FormSchema | null; editDatasourceFormSchemaReadyAt: number; editDatasourceFormSchemaData?: any; setEditDatasourceFormSchema(schema: FormSchema, data?: {}): void; editModelActive: boolean; editModelFormSchema: Schema; editingModelId: string; get editingModelData(): ModelItem | null; activeEditModel(model: ModelItem, formSchema: Schema, data?: any): void; deactiveEditModel(): void; editModelFieldActive: boolean; editingFieldId: string; editingRelationId: string; editModelFormFieldSchema: Schema; get editingFieldData(): null | RelationShipItem | FieldItem; activeEditModelField(model: ModelItem, field: FieldItem, formSchema: Schema, relation?: RelationShipItem): void; deactiveEditModelField(): void; leftAsideSpinned: boolean; leftAsideCollapsed: boolean; toggleLeftAsideSpinned(): void; toggleLeftAsideCollapsed(): void; rightAsideSpinned: boolean; rightAsideCollapsed: boolean; toggleRightAsideSpinned(): void; toggleRightAsideCollapsed(): void; diagramViewMode: string; toggleDiagramViewMode(): void; validate(errors?: Array<string>, models?: ModelItem[]): Promise<boolean>; reset(): void; /** * 弄个 api 拦截器,方便给 amis 提供数据 */ makeFetcherInterceptor(): () => void; getDBTableDetailOrFake(key: string, allowCreate?: any, toastMsg?: boolean): Promise<DBTable>; initEditModel(options: { key: string; allowCreate: string; }): Promise<{ dbTable?: undefined; } | { dbTable: DBTable; }>; initAddModel(options: { key: string; allowCreate: string; }): Promise<{ key?: undefined; name?: undefined; dbTable?: undefined; fields?: undefined; primaryField?: undefined; indices?: undefined; model?: undefined; } | { key: string; name: string; dbTable: DBTable; fields: { key: string; name: string; type: string; dbType: string; isRequired: boolean; isUnique: boolean | undefined; isPrimaryKey: boolean | undefined; isNullable: boolean | undefined; isGenerated: boolean | undefined; isArray: boolean | undefined; comment: string | undefined; defaultValue: any; length: number | undefined; }[]; primaryField: string; indices: { columns: string[]; unique: boolean | undefined; name: string; }[]; model: any; }>; getDBTableList(options: { force?: boolean; }): Promise<{ label: string; value: string; database: string; }[]>; getJunctionTableList(options: { force?: boolean; }): Promise<{ label: string; value: string; database: string; }[]>; getDBTableDetail(options: { name: string; force?: boolean; }): Promise<DBTable>; getAvailableTables(): Promise<{ label: string; value: string; database: string; }[]>; getAvailableFields(options: { model: string; fields?: Array<TableColumn>; tablename?: string; fieldType: string; fieldKey: string; omitKey?: string; }): Promise<{ label: string; value: string; }[]>; getAvailableForeignKeyFields(options: { model: string; tablename?: string; fieldKey: string; }): Promise<any[]>; getInverseRelations(options: { id?: string; model: string; mode: RelationMode; target: string; }): Promise<{ label: string; value: string; visibleOn?: string | undefined; }[]>; getAvailableDatasources(): Promise<{ options: any[]; }>; getDatasourceDetail(options: { dsId: any; dsKey?: string; }): Promise<any>; getAvailableModels(options: { dsId?: any; dsKey?: string; datasource?: any; }): Promise<{ datasource: any; models: { label: string; value: string; id: string; name: string; key: string; dsId?: string | undefined; fields: FieldItem[]; relations: RelationShipItem[]; indices: { columns: string[]; unique?: boolean | undefined; name: string; }[]; isRelationShip?: boolean | undefined; useSoftDelete?: boolean | undefined; isDeleted?: boolean | undefined; saveOperator?: boolean | { createdBy?: string | boolean | undefined; updatedBy?: string | boolean | undefined; deletedBy?: string | boolean | undefined; } | undefined; saveTimestamp?: boolean | { createdAt?: string | boolean | undefined; updatedAt?: string | boolean | undefined; deletedAt?: string | boolean | undefined; } | undefined; diagramInfo?: { x?: number | undefined; y?: number | undefined; } | undefined; description?: string | undefined; primaryField?: string | undefined; nameField?: string | undefined; titleTpl?: string | undefined; isTree?: boolean | undefined; treePattern?: "adjacency-list" | "nested-set" | "materialized-path" | "closure-table" | undefined; customOrder?: boolean | undefined; multiTenant?: boolean | undefined; validateRules?: any; acl?: any; aclMode?: "open" | "write-limit" | "delete-limit" | "limit" | "custom" | undefined; aclDefault?: any; fieldsAcl?: any; disabled?: boolean | undefined; }[]; }>; modelPluginScaffoldInit(options: { dsId?: any; key?: any; type: string; behavior?: string; }, payload?: { schema: any; key?: string; }): Promise<any>; modelPluginScaffoldSubmit(options: { type: string; }, payload: { key: string; schema?: any; datasource: DataSourceItem; models: Array<ModelItem>; [propName: string]: any; }): Promise<{ type: string; schema: Schema; }>; getIndexFields(options: { fields: Array<FieldItem>; }): Promise<{ options: FieldItem[]; }>; }