Pular para o conteúdo principal

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.