Gradient supports percent value

Gradient supports percent value
This commit is contained in:
Horcrux
2016-01-26 11:36:58 +08:00
parent da5a23c5dd
commit e181a1a546
12 changed files with 312 additions and 26 deletions

View File

@@ -10,11 +10,16 @@ let {
let fillPatterns = {};
let fillReg = /^url\(#(\w+?)\)$/;
function isGradient(obj) {
return obj instanceof LinearGradient || obj instanceof RadialGradient;
}
export default function (props) {
let {fill} = props;
if (fill) {
if (fill instanceof LinearGradient || fill instanceof RadialGradient) {
if (isGradient(fill)) {
return fill;
}
@@ -22,11 +27,16 @@ export default function (props) {
let matched = fill.match(fillReg);
if (matched) {
let patternName = `${matched[1]}:${props.svgId}`;
if (fillPatterns[patternName]) {
return fillPatterns[patternName];
} else {
return null;
let pattern = fillPatterns[patternName];
if (pattern) {
if (typeof pattern === 'function') {
let dimensions = this.getBoundingBox();
return pattern(dimensions);
} else {
return pattern;
}
}
return null;
}
}