SequenceDiagram/scripts/sequence/renderer/components/Marker.mjs

35 lines
596 B
JavaScript

import BaseComponent, {register} from './BaseComponent.mjs';
export class Mark extends BaseComponent {
makeState(state) {
state.marks = new Map();
}
resetState(state) {
state.marks.clear();
}
render({name}, {topY, state}) {
state.marks.set(name, topY);
}
renderHidden(stage, env) {
this.render(stage, env);
}
}
export class Async extends BaseComponent {
renderPre({target}, {state}) {
let y = 0;
if(target && state.marks) {
y = state.marks.get(target) || 0;
}
return {
asynchronousY: y,
};
}
}
register('mark', new Mark());
register('async', new Async());