Tipos
Este documento descreve os principais tipos TypeScript exportados pela biblioteca Modelarium Editor para uso em integrações, plugins e extensões customizadas.
ModelariumEditorOptions
Opções de configuração para inicializar o editor.
export interface ModelariumEditorOptions {
debug?: boolean;
toolbox?: string;
modelariumJSON?: string;
}
ModelariumData
Representa o modelo de dados completo gerenciado pelo editor.
export interface ModelariumData {
version: string;
toolbox: {
name: string;
version: string;
};
entities: ModelariumEntity[];
metadata: {
created: string;
modified: string;
title?: string;
description?: string;
};
}
ModelariumEntity
Representa uma entidade individual (elemento) no modelo.
export interface ModelariumEntity {
id: string;
name: string;
element: string;
structure: string;
data: Record<string, any>;
children: ModelariumEntity[];
properties: Record<string, any>;
meta: Record<string, any>;
events: Record<string, any>;
framework: Record<string, any>;
hierarchy?: string;
}
Tipos de Toolbox
Tipos para configuração e validação da toolbox:
export interface ToolboxData {
categories: ToolboxCategory[];
elements: ToolboxElement[];
}
export interface ToolboxElement {
name: string;
label: string;
icon: string;
structure: string;
properties: ToolboxElementProperty[];
hierarchy_rules?: ToolboxElementHierarchyRules;
}
export interface ToolboxElementProperty {
name: string;
type: string;
default?: any;
validation?: ToolboxElementPropertyValidationRule;
}
export interface ToolboxElementPropertyValidationRule {
required?: boolean;
pattern?: string;
min?: number;
max?: number;
}
export interface ToolboxElementHierarchyRules {
allowed_children?: string[];
}
export interface ToolboxCategory {
name: string;
label: string;
}
Exemplo de Uso
import type { ModelariumEditorOptions, ModelariumData, ModelariumEntity, ToolboxData } from '@astradevio/modelarium-editor';
const options: ModelariumEditorOptions = { debug: true };
const data: ModelariumData = { /* ... */ };
Para mais detalhes, consulte o código fonte ou entre em contato com a equipe AstraDEV.