Adding basic code to render stand and end indicators
This commit is contained in:
parent
e910c757e5
commit
ed2c26c39e
@ -28,6 +28,12 @@
|
|||||||
dominant-baseline: text-after-edge;
|
dominant-baseline: text-after-edge;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
circle.anchor {
|
||||||
|
fill: #6b6659;
|
||||||
|
stroke-width: 2px;
|
||||||
|
stroke: #000;
|
||||||
|
}
|
||||||
|
|
||||||
.placeholder text {
|
.placeholder text {
|
||||||
fill: #fff;
|
fill: #fff;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
@ -19,20 +19,12 @@ import Snap from 'snapsvg';
|
|||||||
result.position();
|
result.position();
|
||||||
|
|
||||||
container.transform(Snap.matrix()
|
container.transform(Snap.matrix()
|
||||||
.translate(5, 5));
|
.translate(10, 10));
|
||||||
|
|
||||||
box = container.getBBox();
|
box = container.getBBox();
|
||||||
svg.attr({
|
svg.attr({
|
||||||
width: box.width + 10,
|
width: box.width + 20,
|
||||||
height: box.height + 10
|
height: box.height + 20
|
||||||
});
|
|
||||||
|
|
||||||
svg.rect().attr({
|
|
||||||
'class': 'bounding-box',
|
|
||||||
x: box.x,
|
|
||||||
y: box.y,
|
|
||||||
width: box.width,
|
|
||||||
height: box.height
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,17 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
render_bbox(container, box) {
|
||||||
|
container.rect()
|
||||||
|
.attr({
|
||||||
|
'class': 'bounding-box',
|
||||||
|
width: box.width,
|
||||||
|
height: box.height
|
||||||
|
})
|
||||||
|
.transform(Snap.matrix()
|
||||||
|
.translate(box.x, box.y));
|
||||||
|
},
|
||||||
|
|
||||||
render(container) {
|
render(container) {
|
||||||
container.attr({ 'class': 'placeholder' });
|
container.attr({ 'class': 'placeholder' });
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
grammar JavascriptRegexp
|
grammar JavascriptRegexp
|
||||||
root <- ( ( "/" regexp "/" fl:[igm]* ) / regexp ) <Root>
|
root <- ( ( "/" regexp "/" fl:[igm]* ) / regexp ""? ) <Root>
|
||||||
regexp <- match ( "|" match )* <Regexp>
|
regexp <- match ( "|" match )* <Regexp>
|
||||||
match <- anchor_start? ( ( subexp / charset / terminal ) repeat? )* anchor_end?
|
match <- anchor_start? ( ( subexp / charset / terminal ) repeat? )* anchor_end?
|
||||||
anchor_start <- "^"
|
anchor_start <- "^"
|
||||||
|
@ -2,6 +2,34 @@ import _ from 'lodash';
|
|||||||
import Base from './base.js';
|
import Base from './base.js';
|
||||||
|
|
||||||
export default _.extend({}, Base, {
|
export default _.extend({}, Base, {
|
||||||
|
render(container) {
|
||||||
|
this.contents = container.group();
|
||||||
|
|
||||||
|
this.regexp.render(this.contents);
|
||||||
|
|
||||||
|
this.start = container.circle().attr({
|
||||||
|
r: 5,
|
||||||
|
'class': 'anchor'
|
||||||
|
});
|
||||||
|
this.end = container.circle().attr({
|
||||||
|
r: 5,
|
||||||
|
'class': 'anchor'
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
position() {
|
||||||
|
var contentBox;
|
||||||
|
|
||||||
|
this.regexp.position();
|
||||||
|
|
||||||
|
contentBox = this.contents.getBBox();
|
||||||
|
|
||||||
|
this.start.transform(Snap.matrix()
|
||||||
|
.translate(contentBox.x, contentBox.cy));
|
||||||
|
this.end.transform(Snap.matrix()
|
||||||
|
.translate(contentBox.x2, contentBox.cy));
|
||||||
|
},
|
||||||
|
|
||||||
flags() {
|
flags() {
|
||||||
var flags;
|
var flags;
|
||||||
|
|
||||||
@ -16,13 +44,5 @@ export default _.extend({}, Base, {
|
|||||||
ignore_case: /i/.test(flags),
|
ignore_case: /i/.test(flags),
|
||||||
multiline: /m/.test(flags)
|
multiline: /m/.test(flags)
|
||||||
};
|
};
|
||||||
},
|
|
||||||
|
|
||||||
expression() {
|
|
||||||
if (this.regexp) {
|
|
||||||
return this.regexp;
|
|
||||||
} else {
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user