UNPKG

amis-model-design

Version:

amis模型设计器

147 lines (146 loc) 5.97 kB
import { normalizeField } from '../base/helper'; import { DBTableBrief, FieldItem, ModelItem, RelationShipItem, ExtraField } from '../type'; import { Rect } from './Rect'; import { Manager } from './Manager'; import { Line } from './Line'; import { RelationFieldItem } from '../plugin/relation/RelationField'; import { AddRelationEventContext } from './Event'; export type RelationShipDetail = RelationShipItem & { model: ModelStore; targetModel: ModelStore; field?: FieldItem; placeholder: FieldItem; }; export declare const updateSystemField: (data: ModelItem, type: 'saveTimestamp' | 'saveOperator', oper: 'deletedBy' | 'deletedAt' | 'createdBy' | 'createdAt' | 'updatedBy' | 'updatedAt', flag: 'isCreateDate' | 'isUpdateDate' | 'isDeleteDate' | 'isCreateUser' | 'isUpdateUser' | 'isDeleteUser', systemFieldKeyMap?: { [propName: string]: string; } | undefined) => void; export declare const normalizeSystemField: (data: ModelItem, type: 'saveTimestamp' | 'saveOperator', oper: 'deletedBy' | 'deletedAt' | 'createdBy' | 'createdAt' | 'updatedBy' | 'updatedAt', flag: 'isCreateDate' | 'isUpdateDate' | 'isDeleteDate' | 'isCreateUser' | 'isUpdateUser' | 'isDeleteUser') => void; export declare class ModelStore { readonly manager: Manager; readonly data: ModelItem; elem?: HTMLDivElement | null; layer?: HTMLDivElement | null; header?: HTMLDivElement | null; unmountCallbacks: Array<() => void>; startX: number; startY: number; moved: boolean; startInfo?: { x: number; y: number; }; lines: Array<Line>; x: number; y: number; width: number; height: number; dragging: boolean; errors: import("mobx").IObservableArray<{ [propName: string]: any; type: string; msg: string; }>; dbTableBrief: DBTableBrief; prinstine: ModelItem; expanded: boolean; constructor(manager: Manager, data: ModelItem); get id(): string; get plainData(): ModelItem; get modified(): boolean; get store(): import("./MainStore").MainStore; get creatable(): boolean; get editable(): boolean; get others(): ModelStore[]; get removable(): boolean; toggleExpanded(): void; fixReference(): void; savePrinstine(): void; isFieldEditable(field: FieldItem): boolean; isFieldKeyEditable(field: FieldItem): boolean; isFieldRemovable(field: FieldItem): boolean; isFieldVisible(field: FieldItem): boolean; isFieldInsertable(field: FieldItem): boolean; isFieldUpdateable(field: FieldItem): boolean; isFieldSortable(field: FieldItem, ignoreField?: boolean): boolean; isFieldFilterable(field: FieldItem, ignoreField?: boolean): boolean; isFieldSearchable(field: FieldItem, ignoreField?: boolean): boolean; isRelationField(field: FieldItem): boolean; isRelationToRelationShip(field: FieldItem): boolean | undefined; /** * 是否为能平铺展开的字段,通常对一的关系,关系表中的字段都能平铺展开 * @param field * @returns */ canFlatRelationField(field: FieldItem): boolean; get primaryFields(): FieldItem[]; get primaryField(): FieldItem; get nameField(): FieldItem | null | undefined; get systemFields(): FieldItem[]; get foreignFields(): FieldItem[]; get normalFields(): FieldItem[]; get fieldsCount(): number; get collapsable(): boolean; get fields(): FieldItem[]; get relations(): any[]; get isTree(): boolean; get valid(): boolean; getInverseRelation(relation: RelationShipItem): RelationShipDetail | null | undefined; validate(errorsReturn?: Array<string>): Promise<boolean>; clearErrors(): void; /** * 获取所有字段,同时把能够平铺展开的字段也获取到 */ get availableFields(): FieldItem[]; /** * 获取所有可查询子表和深层对一关系字段 */ get availableFieldsDeep(): ExtraField[]; recursiveLoopFields(model: ModelStore, cache: WeakMap<ModelStore, boolean>, stack: { field?: FieldItem | RelationFieldItem | undefined; relation?: RelationShipDetail | undefined; }[] | undefined, fields: ExtraField[]): ExtraField[]; buildFieldDetail(field: FieldItem): FieldItem; buildFieldsDetail(fields: Array<FieldItem>): FieldItem[]; getFieldById(id: string): FieldItem | undefined; getRelationById(id: string): RelationShipItem | undefined; getRelationDetail(idOrKey: string): RelationShipDetail | undefined; updateData(data: ModelItem): void; addLine(line: Line): void; normalizeModel(data: ModelItem): ModelItem; normalizeRelation(relation: RelationShipItem): RelationShipItem; addFields(value: Array<FieldItem> | FieldItem): void; updateField(value: FieldItem): void; removeField(value: FieldItem): void; validateRelation(relation: RelationShipItem, bindFormField?: boolean): any; addRelation(value: RelationShipItem, options?: { placeholderId?: string; placeholderIndex?: number; }, context?: AddRelationEventContext): void; updateRelation(value: RelationShipItem): void; removeRelation(value: RelationShipItem): void; updateFieldsOrder(order: Array<FieldItem>): void; attachDom(dom: HTMLDivElement | null): void; resizeSensor?: Function; /** * Diagram 组件 didMount 回调 */ mount(): void; update(): void; /** * Diagram 组件 willUnmount 回调 */ unmount(): void; get rect(): Rect; setPosition(x: number, y: number): void; handleClick(e: MouseEvent): void; handleMouseDown(e: MouseEvent): void; handleMouseMove(e: MouseEvent): void; handleMouseUp(e: MouseEvent): void; syncRectData(): void; syncRectToView(): void; syncRectToThumb(): void; highlightLines(id: string): void; thumb: HTMLDivElement | null; attachThumbDom(thumb: HTMLDivElement | null): void; } export { normalizeField };