46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
import SequenceDiagram from './SequenceDiagram.mjs';
|
|
import {VirtualDocument} from '../core/documents/VirtualDocument.mjs';
|
|
import VirtualTextSizer from '../svg/VirtualTextSizer.mjs';
|
|
|
|
export {VirtualDocument};
|
|
|
|
export const virtualTextSizerFactory = () => new VirtualTextSizer();
|
|
|
|
export default class VirtualSequenceDiagram extends SequenceDiagram {
|
|
constructor(code = null, options = {}) {
|
|
const opts = {
|
|
document: new VirtualDocument(),
|
|
namespace: '',
|
|
textSizerFactory: virtualTextSizerFactory,
|
|
};
|
|
|
|
if(code && typeof code === 'object') {
|
|
Object.assign(opts, code);
|
|
} else {
|
|
Object.assign(opts, options, {code});
|
|
}
|
|
|
|
Object.assign(opts, {
|
|
container: null,
|
|
interactive: false,
|
|
});
|
|
|
|
super(opts);
|
|
}
|
|
}
|
|
|
|
function render(code, options = {}) {
|
|
return new VirtualSequenceDiagram(code, options).getSVGCodeSynchronous();
|
|
}
|
|
|
|
Object.assign(VirtualSequenceDiagram, {
|
|
Exporter: SequenceDiagram.Exporter,
|
|
Generator: SequenceDiagram.Generator,
|
|
Parser: SequenceDiagram.Parser,
|
|
Renderer: SequenceDiagram.Renderer,
|
|
addTheme: SequenceDiagram.addTheme,
|
|
getDefaultThemeNames: SequenceDiagram.getDefaultThemeNames,
|
|
render,
|
|
themes: SequenceDiagram.themes,
|
|
});
|