Embedding a template for SVG element instead of just styles

This commit is contained in:
Jeff Avallone
2014-12-26 15:38:22 -05:00
parent 2007fd9e01
commit b292a764ff
6 changed files with 19 additions and 33 deletions
+1 -1
View File
@@ -32,7 +32,7 @@ import _ from 'lodash';
setTimeout(() => {
parser.parse(element.getAttribute('data-expr'))
.invoke('render', svg, document.querySelector('#svg-styles').innerHTML)
.invoke('render', svg, document.querySelector('#svg-base').innerHTML)
.finally(() => {
element.className = _.without(element.className.split(' '), 'loading').join(' ');
element.removeChild(element.querySelector('.spinner'));
+3 -13
View File
@@ -32,23 +32,13 @@ export default class Parser {
return deferred.promise;
}
render(containerElement, styles) {
var svg,
style = document.createElement('style');
render(containerElement, svgBase) {
var svg;
containerElement.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" version="1.1"></svg>';
containerElement.innerHTML += svgBase;
svg = Snap(containerElement.querySelector('svg'));
style.setAttribute('type', 'text/css');
if (style.styleSheet) {
style.styleSheet.cssText = styles;
} else {
style.appendChild(document.createTextNode(styles));
}
svg.select('defs').append(style);
return this.parsed.render(svg.group())
.then(result => {
var box = result.getBBox();
+2 -2
View File
@@ -14,7 +14,7 @@ export default class Regexper {
this.download = root.querySelector('a[data-glyph="data-transfer-download"]');
this.percentage = root.querySelector('#progress div');
this.svgContainer = root.querySelector('#regexp-render');
this.svgStyles = this.root.querySelector('#svg-styles').innerHTML;
this.svgBase = this.root.querySelector('#svg-base').innerHTML;
this.gaq = (typeof window._gaq === 'undefined') ? [] : window._gaq;
}
@@ -158,7 +158,7 @@ export default class Regexper {
throw message;
})
.invoke('render', this.svgContainer, this.svgStyles)
.invoke('render', this.svgContainer, this.svgBase)
.then(() => {
this.state = 'has-results';
this.updateLinks();