regexper-static/src/js/parser/javascript/regexp.js

39 lines
901 B
JavaScript
Raw Normal View History

import _ from 'lodash';
import Base from './base.js';
export default _.extend({}, Base, {
render(container) {
this.contents = _.map(this.matches(), match => {
var content = container.group();
match.render(content);
return content;
});
},
position() {
var center,
positions;
_.invoke(this.matches(), 'position');
positions = _.chain(this.contents)
.map(content => {
return { box: content.getBBox(), content };
});
center = positions.reduce((center, pos) => {
return Math.max(center, pos.box.cx);
}, 0).value();
positions.reduce((offset, pos) => {
pos.content.transform(Snap.matrix()
.translate(center - pos.box.cx, offset));
return offset + pos.box.height + 5;
}, 0);
},
matches() {
return [this.match].concat(_.map(this.alternates.elements, _.property('match')));
}
});