You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2558 lines
57 KiB
2558 lines
57 KiB
'use strict'; |
|
|
|
// http://www.w3.org/TR/SVG11/intro.html#Definitions |
|
exports.elemsGroups = { |
|
animation: ['animate', 'animateColor', 'animateMotion', 'animateTransform', 'set'], |
|
descriptive: ['desc', 'metadata', 'title'], |
|
shape: ['circle', 'ellipse', 'line', 'path', 'polygon', 'polyline', 'rect'], |
|
structural: ['defs', 'g', 'svg', 'symbol', 'use'], |
|
paintServer: ['solidColor', 'linearGradient', 'radialGradient', 'meshGradient', 'pattern', 'hatch'], |
|
nonRendering: ['linearGradient', 'radialGradient', 'pattern', 'clipPath', 'mask', 'marker', 'symbol', 'filter', 'solidColor'], |
|
container: ['a', 'defs', 'g', 'marker', 'mask', 'missing-glyph', 'pattern', 'svg', 'switch', 'symbol', 'foreignObject'], |
|
textContent: ['altGlyph', 'altGlyphDef', 'altGlyphItem', 'glyph', 'glyphRef', 'textPath', 'text', 'tref', 'tspan'], |
|
textContentChild: ['altGlyph', 'textPath', 'tref', 'tspan'], |
|
lightSource: ['feDiffuseLighting', 'feSpecularLighting', 'feDistantLight', 'fePointLight', 'feSpotLight'], |
|
filterPrimitive: ['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feFlood', 'feGaussianBlur', 'feImage', 'feMerge', 'feMorphology', 'feOffset', 'feSpecularLighting', 'feTile', 'feTurbulence'] |
|
}; |
|
|
|
exports.pathElems = ['path', 'glyph', 'missing-glyph']; |
|
|
|
// http://www.w3.org/TR/SVG11/intro.html#Definitions |
|
exports.attrsGroups = { |
|
animationAddition: ['additive', 'accumulate'], |
|
animationAttributeTarget: ['attributeType', 'attributeName'], |
|
animationEvent: ['onbegin', 'onend', 'onrepeat', 'onload'], |
|
animationTiming: ['begin', 'dur', 'end', 'min', 'max', 'restart', 'repeatCount', 'repeatDur', 'fill'], |
|
animationValue: ['calcMode', 'values', 'keyTimes', 'keySplines', 'from', 'to', 'by'], |
|
conditionalProcessing: ['requiredFeatures', 'requiredExtensions', 'systemLanguage'], |
|
core: ['id', 'tabindex', 'xml:base', 'xml:lang', 'xml:space'], |
|
graphicalEvent: ['onfocusin', 'onfocusout', 'onactivate', 'onclick', 'onmousedown', 'onmouseup', 'onmouseover', 'onmousemove', 'onmouseout', 'onload'], |
|
presentation: [ |
|
'alignment-baseline', |
|
'baseline-shift', |
|
'clip', |
|
'clip-path', |
|
'clip-rule', |
|
'color', |
|
'color-interpolation', |
|
'color-interpolation-filters', |
|
'color-profile', |
|
'color-rendering', |
|
'cursor', |
|
'direction', |
|
'display', |
|
'dominant-baseline', |
|
'enable-background', |
|
'fill', |
|
'fill-opacity', |
|
'fill-rule', |
|
'filter', |
|
'flood-color', |
|
'flood-opacity', |
|
'font-family', |
|
'font-size', |
|
'font-size-adjust', |
|
'font-stretch', |
|
'font-style', |
|
'font-variant', |
|
'font-weight', |
|
'glyph-orientation-horizontal', |
|
'glyph-orientation-vertical', |
|
'image-rendering', |
|
'letter-spacing', |
|
'lighting-color', |
|
'marker-end', |
|
'marker-mid', |
|
'marker-start', |
|
'mask', |
|
'opacity', |
|
'overflow', |
|
'paint-order', |
|
'pointer-events', |
|
'shape-rendering', |
|
'stop-color', |
|
'stop-opacity', |
|
'stroke', |
|
'stroke-dasharray', |
|
'stroke-dashoffset', |
|
'stroke-linecap', |
|
'stroke-linejoin', |
|
'stroke-miterlimit', |
|
'stroke-opacity', |
|
'stroke-width', |
|
'text-anchor', |
|
'text-decoration', |
|
'text-overflow', |
|
'text-rendering', |
|
'transform', |
|
'unicode-bidi', |
|
'vector-effect', |
|
'visibility', |
|
'word-spacing', |
|
'writing-mode' |
|
], |
|
xlink: ['xlink:href', 'xlink:show', 'xlink:actuate', 'xlink:type', 'xlink:role', 'xlink:arcrole', 'xlink:title'], |
|
documentEvent: ['onunload', 'onabort', 'onerror', 'onresize', 'onscroll', 'onzoom'], |
|
filterPrimitive: ['x', 'y', 'width', 'height', 'result'], |
|
transferFunction: ['type', 'tableValues', 'slope', 'intercept', 'amplitude', 'exponent', 'offset'] |
|
}; |
|
|
|
exports.attrsGroupsDefaults = { |
|
core: {'xml:space': 'preserve'}, |
|
filterPrimitive: {x: '0', y: '0', width: '100%', height: '100%'}, |
|
presentation: { |
|
clip: 'auto', |
|
'clip-path': 'none', |
|
'clip-rule': 'nonzero', |
|
mask: 'none', |
|
opacity: '1', |
|
'stop-color': '#000', |
|
'stop-opacity': '1', |
|
'fill-opacity': '1', |
|
'fill-rule': 'nonzero', |
|
fill: '#000', |
|
stroke: 'none', |
|
'stroke-width': '1', |
|
'stroke-linecap': 'butt', |
|
'stroke-linejoin': 'miter', |
|
'stroke-miterlimit': '4', |
|
'stroke-dasharray': 'none', |
|
'stroke-dashoffset': '0', |
|
'stroke-opacity': '1', |
|
'paint-order': 'normal', |
|
'vector-effect': 'none', |
|
display: 'inline', |
|
visibility: 'visible', |
|
'marker-start': 'none', |
|
'marker-mid': 'none', |
|
'marker-end': 'none', |
|
'color-interpolation': 'sRGB', |
|
'color-interpolation-filters': 'linearRGB', |
|
'color-rendering': 'auto', |
|
'shape-rendering': 'auto', |
|
'text-rendering': 'auto', |
|
'image-rendering': 'auto', |
|
'font-style': 'normal', |
|
'font-variant': 'normal', |
|
'font-weight': 'normal', |
|
'font-stretch': 'normal', |
|
'font-size': 'medium', |
|
'font-size-adjust': 'none', |
|
kerning: 'auto', |
|
'letter-spacing': 'normal', |
|
'word-spacing': 'normal', |
|
'text-decoration': 'none', |
|
'text-anchor': 'start', |
|
'text-overflow': 'clip', |
|
'writing-mode': 'lr-tb', |
|
'glyph-orientation-vertical': 'auto', |
|
'glyph-orientation-horizontal': '0deg', |
|
direction: 'ltr', |
|
'unicode-bidi': 'normal', |
|
'dominant-baseline': 'auto', |
|
'alignment-baseline': 'baseline', |
|
'baseline-shift': 'baseline' |
|
}, |
|
transferFunction: {slope: '1', intercept: '0', amplitude: '1', exponent: '1', offset: '0'} |
|
}; |
|
|
|
// http://www.w3.org/TR/SVG11/eltindex.html |
|
exports.elems = { |
|
a: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'graphicalEvent', |
|
'presentation', |
|
'xlink' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'transform', |
|
'target' |
|
], |
|
defaults: { |
|
target: '_self' |
|
}, |
|
contentGroups: [ |
|
'animation', |
|
'descriptive', |
|
'shape', |
|
'structural', |
|
'paintServer' |
|
], |
|
content: [ |
|
'a', |
|
'altGlyphDef', |
|
'clipPath', |
|
'color-profile', |
|
'cursor', |
|
'filter', |
|
'font', |
|
'font-face', |
|
'foreignObject', |
|
'image', |
|
'marker', |
|
'mask', |
|
'pattern', |
|
'script', |
|
'style', |
|
'switch', |
|
'text', |
|
'view' |
|
] |
|
}, |
|
altGlyph: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'graphicalEvent', |
|
'presentation', |
|
'xlink' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'x', |
|
'y', |
|
'dx', |
|
'dy', |
|
'glyphRef', |
|
'format', |
|
'rotate' |
|
] |
|
}, |
|
altGlyphDef: { |
|
attrsGroups: [ |
|
'core' |
|
], |
|
content: [ |
|
'glyphRef' |
|
] |
|
}, |
|
altGlyphItem: { |
|
attrsGroups: [ |
|
'core' |
|
], |
|
content: [ |
|
'glyphRef', |
|
'altGlyphItem' |
|
] |
|
}, |
|
animate: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'animationAddition', |
|
'animationAttributeTarget', |
|
'animationEvent', |
|
'animationTiming', |
|
'animationValue', |
|
'presentation', |
|
'xlink' |
|
], |
|
attrs: [ |
|
'externalResourcesRequired' |
|
], |
|
contentGroups: [ |
|
'descriptive' |
|
] |
|
}, |
|
animateColor: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'animationEvent', |
|
'xlink', |
|
'animationAttributeTarget', |
|
'animationTiming', |
|
'animationValue', |
|
'animationAddition', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'externalResourcesRequired' |
|
], |
|
contentGroups: [ |
|
'descriptive' |
|
] |
|
}, |
|
animateMotion: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'animationEvent', |
|
'xlink', |
|
'animationTiming', |
|
'animationValue', |
|
'animationAddition' |
|
], |
|
attrs: [ |
|
'externalResourcesRequired', |
|
'path', |
|
'keyPoints', |
|
'rotate', |
|
'origin' |
|
], |
|
defaults: { |
|
'rotate': '0' |
|
}, |
|
contentGroups: [ |
|
'descriptive' |
|
], |
|
content: [ |
|
'mpath' |
|
] |
|
}, |
|
animateTransform: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'animationEvent', |
|
'xlink', |
|
'animationAttributeTarget', |
|
'animationTiming', |
|
'animationValue', |
|
'animationAddition' |
|
], |
|
attrs: [ |
|
'externalResourcesRequired', |
|
'type' |
|
], |
|
contentGroups: [ |
|
'descriptive' |
|
] |
|
}, |
|
circle: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'graphicalEvent', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'transform', |
|
'cx', |
|
'cy', |
|
'r' |
|
], |
|
defaults: { |
|
cx: '0', |
|
cy: '0' |
|
}, |
|
contentGroups: [ |
|
'animation', |
|
'descriptive' |
|
] |
|
}, |
|
clipPath: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'transform', |
|
'clipPathUnits' |
|
], |
|
defaults: { |
|
clipPathUnits: 'userSpaceOnUse' |
|
}, |
|
contentGroups: [ |
|
'animation', |
|
'descriptive', |
|
'shape' |
|
], |
|
content: [ |
|
'text', |
|
'use' |
|
] |
|
}, |
|
'color-profile': { |
|
attrsGroups: [ |
|
'core', |
|
'xlink' |
|
], |
|
attrs: [ |
|
'local', |
|
'name', |
|
'rendering-intent' |
|
], |
|
defaults: { |
|
name: 'sRGB', |
|
'rendering-intent': 'auto' |
|
}, |
|
contentGroups: [ |
|
'descriptive' |
|
] |
|
}, |
|
cursor: { |
|
attrsGroups: [ |
|
'core', |
|
'conditionalProcessing', |
|
'xlink' |
|
], |
|
attrs: [ |
|
'externalResourcesRequired', |
|
'x', |
|
'y' |
|
], |
|
defaults: { |
|
x: '0', |
|
y: '0' |
|
}, |
|
contentGroups: [ |
|
'descriptive' |
|
] |
|
}, |
|
defs: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'graphicalEvent', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'transform' |
|
], |
|
contentGroups: [ |
|
'animation', |
|
'descriptive', |
|
'shape', |
|
'structural', |
|
'paintServer' |
|
], |
|
content: [ |
|
'a', |
|
'altGlyphDef', |
|
'clipPath', |
|
'color-profile', |
|
'cursor', |
|
'filter', |
|
'font', |
|
'font-face', |
|
'foreignObject', |
|
'image', |
|
'marker', |
|
'mask', |
|
'pattern', |
|
'script', |
|
'style', |
|
'switch', |
|
'text', |
|
'view' |
|
] |
|
}, |
|
desc: { |
|
attrsGroups: [ |
|
'core' |
|
], |
|
attrs: [ |
|
'class', |
|
'style' |
|
] |
|
}, |
|
ellipse: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'graphicalEvent', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'transform', |
|
'cx', |
|
'cy', |
|
'rx', |
|
'ry' |
|
], |
|
defaults: { |
|
cx: '0', |
|
cy: '0' |
|
}, |
|
contentGroups: [ |
|
'animation', |
|
'descriptive' |
|
] |
|
}, |
|
feBlend: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation', |
|
'filterPrimitive' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
// TODO: in - 'If no value is provided and this is the first filter primitive, |
|
// then this filter primitive will use SourceGraphic as its input' |
|
'in', |
|
'in2', |
|
'mode' |
|
], |
|
defaults: { |
|
mode: 'normal' |
|
}, |
|
content: [ |
|
'animate', |
|
'set' |
|
] |
|
}, |
|
feColorMatrix: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation', |
|
'filterPrimitive' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'in', |
|
'type', |
|
'values' |
|
], |
|
defaults: { |
|
type: 'matrix' |
|
}, |
|
content: [ |
|
'animate', |
|
'set' |
|
] |
|
}, |
|
feComponentTransfer: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation', |
|
'filterPrimitive' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'in' |
|
], |
|
content: [ |
|
'feFuncA', |
|
'feFuncB', |
|
'feFuncG', |
|
'feFuncR' |
|
] |
|
}, |
|
feComposite: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation', |
|
'filterPrimitive' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'in', |
|
'in2', |
|
'operator', |
|
'k1', |
|
'k2', |
|
'k3', |
|
'k4' |
|
], |
|
defaults: { |
|
operator: 'over', |
|
k1: '0', |
|
k2: '0', |
|
k3: '0', |
|
k4: '0' |
|
}, |
|
content: [ |
|
'animate', |
|
'set' |
|
] |
|
}, |
|
feConvolveMatrix: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation', |
|
'filterPrimitive' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'in', |
|
'order', |
|
'kernelMatrix', |
|
// TODO: divisor - 'The default value is the sum of all values in kernelMatrix, |
|
// with the exception that if the sum is zero, then the divisor is set to 1' |
|
'divisor', |
|
'bias', |
|
// TODO: targetX - 'By default, the convolution matrix is centered in X over each |
|
// pixel of the input image (i.e., targetX = floor ( orderX / 2 ))' |
|
'targetX', |
|
'targetY', |
|
'edgeMode', |
|
// TODO: kernelUnitLength - 'The first number is the <dx> value. The second number |
|
// is the <dy> value. If the <dy> value is not specified, it defaults to the same value as <dx>' |
|
'kernelUnitLength', |
|
'preserveAlpha' |
|
], |
|
defaults: { |
|
order: '3', |
|
bias: '0', |
|
edgeMode: 'duplicate', |
|
preserveAlpha: 'false' |
|
}, |
|
content: [ |
|
'animate', |
|
'set' |
|
] |
|
}, |
|
feDiffuseLighting: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation', |
|
'filterPrimitive' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'in', |
|
'surfaceScale', |
|
'diffuseConstant', |
|
'kernelUnitLength' |
|
], |
|
defaults: { |
|
surfaceScale: '1', |
|
diffuseConstant: '1' |
|
}, |
|
contentGroups: [ |
|
'descriptive' |
|
], |
|
content: [ |
|
// TODO: 'exactly one light source element, in any order' |
|
'feDistantLight', |
|
'fePointLight', |
|
'feSpotLight' |
|
] |
|
}, |
|
feDisplacementMap: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation', |
|
'filterPrimitive' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'in', |
|
'in2', |
|
'scale', |
|
'xChannelSelector', |
|
'yChannelSelector' |
|
], |
|
defaults: { |
|
scale: '0', |
|
xChannelSelector: 'A', |
|
yChannelSelector: 'A' |
|
}, |
|
content: [ |
|
'animate', |
|
'set' |
|
] |
|
}, |
|
feDistantLight: { |
|
attrsGroups: [ |
|
'core' |
|
], |
|
attrs: [ |
|
'azimuth', |
|
'elevation' |
|
], |
|
defaults: { |
|
azimuth: '0', |
|
elevation: '0' |
|
}, |
|
content: [ |
|
'animate', |
|
'set' |
|
] |
|
}, |
|
feFlood: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation', |
|
'filterPrimitive' |
|
], |
|
attrs: [ |
|
'class', |
|
'style' |
|
], |
|
content: [ |
|
'animate', |
|
'animateColor', |
|
'set' |
|
] |
|
}, |
|
feFuncA: { |
|
attrsGroups: [ |
|
'core', |
|
'transferFunction' |
|
], |
|
content: [ |
|
'set', |
|
'animate' |
|
] |
|
}, |
|
feFuncB: { |
|
attrsGroups: [ |
|
'core', |
|
'transferFunction' |
|
], |
|
content: [ |
|
'set', |
|
'animate' |
|
] |
|
}, |
|
feFuncG: { |
|
attrsGroups: [ |
|
'core', |
|
'transferFunction' |
|
], |
|
content: [ |
|
'set', |
|
'animate' |
|
] |
|
}, |
|
feFuncR: { |
|
attrsGroups: [ |
|
'core', |
|
'transferFunction' |
|
], |
|
content: [ |
|
'set', |
|
'animate' |
|
] |
|
}, |
|
feGaussianBlur: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation', |
|
'filterPrimitive' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'in', |
|
'stdDeviation' |
|
], |
|
defaults: { |
|
stdDeviation: '0' |
|
}, |
|
content: [ |
|
'set', |
|
'animate' |
|
] |
|
}, |
|
feImage: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation', |
|
'filterPrimitive', |
|
'xlink' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'preserveAspectRatio', |
|
'href', |
|
'xlink:href' |
|
], |
|
defaults: { |
|
preserveAspectRatio: 'xMidYMid meet' |
|
}, |
|
content: [ |
|
'animate', |
|
'animateTransform', |
|
'set' |
|
] |
|
}, |
|
feMerge: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation', |
|
'filterPrimitive' |
|
], |
|
attrs: [ |
|
'class', |
|
'style' |
|
], |
|
content: [ |
|
'feMergeNode' |
|
] |
|
}, |
|
feMergeNode: { |
|
attrsGroups: [ |
|
'core' |
|
], |
|
attrs: [ |
|
'in' |
|
], |
|
content: [ |
|
'animate', |
|
'set' |
|
] |
|
}, |
|
feMorphology: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation', |
|
'filterPrimitive' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'in', |
|
'operator', |
|
'radius' |
|
], |
|
defaults: { |
|
operator: 'erode', |
|
radius: '0' |
|
}, |
|
content: [ |
|
'animate', |
|
'set' |
|
] |
|
}, |
|
feOffset: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation', |
|
'filterPrimitive' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'in', |
|
'dx', |
|
'dy' |
|
], |
|
defaults: { |
|
dx: '0', |
|
dy: '0' |
|
}, |
|
content: [ |
|
'animate', |
|
'set' |
|
] |
|
}, |
|
fePointLight: { |
|
attrsGroups: [ |
|
'core' |
|
], |
|
attrs: [ |
|
'x', |
|
'y', |
|
'z' |
|
], |
|
defaults: { |
|
x: '0', |
|
y: '0', |
|
z: '0' |
|
}, |
|
content: [ |
|
'animate', |
|
'set' |
|
] |
|
}, |
|
feSpecularLighting: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation', |
|
'filterPrimitive' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'in', |
|
'surfaceScale', |
|
'specularConstant', |
|
'specularExponent', |
|
'kernelUnitLength' |
|
], |
|
defaults: { |
|
surfaceScale: '1', |
|
specularConstant: '1', |
|
specularExponent: '1' |
|
}, |
|
contentGroups: [ |
|
'descriptive', |
|
// TODO: exactly one 'light source element' |
|
'lightSource' |
|
] |
|
}, |
|
feSpotLight: { |
|
attrsGroups: [ |
|
'core' |
|
], |
|
attrs: [ |
|
'x', |
|
'y', |
|
'z', |
|
'pointsAtX', |
|
'pointsAtY', |
|
'pointsAtZ', |
|
'specularExponent', |
|
'limitingConeAngle' |
|
], |
|
defaults: { |
|
x: '0', |
|
y: '0', |
|
z: '0', |
|
pointsAtX: '0', |
|
pointsAtY: '0', |
|
pointsAtZ: '0', |
|
specularExponent: '1' |
|
}, |
|
content: [ |
|
'animate', |
|
'set' |
|
] |
|
}, |
|
feTile: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation', |
|
'filterPrimitive' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'in' |
|
], |
|
content: [ |
|
'animate', |
|
'set' |
|
] |
|
}, |
|
feTurbulence: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation', |
|
'filterPrimitive' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'baseFrequency', |
|
'numOctaves', |
|
'seed', |
|
'stitchTiles', |
|
'type' |
|
], |
|
defaults: { |
|
baseFrequency: '0', |
|
numOctaves: '1', |
|
seed: '0', |
|
stitchTiles: 'noStitch', |
|
type: 'turbulence' |
|
}, |
|
content: [ |
|
'animate', |
|
'set' |
|
] |
|
}, |
|
filter: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation', |
|
'xlink' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'x', |
|
'y', |
|
'width', |
|
'height', |
|
'filterRes', |
|
'filterUnits', |
|
'primitiveUnits', |
|
'href', |
|
'xlink:href' |
|
], |
|
defaults: { |
|
primitiveUnits: 'userSpaceOnUse', |
|
x: '-10%', |
|
y: '-10%', |
|
width: '120%', |
|
height: '120%' |
|
}, |
|
contentGroups: [ |
|
'descriptive', |
|
'filterPrimitive' |
|
], |
|
content: [ |
|
'animate', |
|
'set' |
|
] |
|
}, |
|
font: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'horiz-origin-x', |
|
'horiz-origin-y', |
|
'horiz-adv-x', |
|
'vert-origin-x', |
|
'vert-origin-y', |
|
'vert-adv-y' |
|
], |
|
defaults: { |
|
'horiz-origin-x': '0', |
|
'horiz-origin-y': '0' |
|
}, |
|
contentGroups: [ |
|
'descriptive' |
|
], |
|
content: [ |
|
'font-face', |
|
'glyph', |
|
'hkern', |
|
'missing-glyph', |
|
'vkern' |
|
] |
|
}, |
|
'font-face': { |
|
attrsGroups: [ |
|
'core' |
|
], |
|
attrs: [ |
|
'font-family', |
|
'font-style', |
|
'font-variant', |
|
'font-weight', |
|
'font-stretch', |
|
'font-size', |
|
'unicode-range', |
|
'units-per-em', |
|
'panose-1', |
|
'stemv', |
|
'stemh', |
|
'slope', |
|
'cap-height', |
|
'x-height', |
|
'accent-height', |
|
'ascent', |
|
'descent', |
|
'widths', |
|
'bbox', |
|
'ideographic', |
|
'alphabetic', |
|
'mathematical', |
|
'hanging', |
|
'v-ideographic', |
|
'v-alphabetic', |
|
'v-mathematical', |
|
'v-hanging', |
|
'underline-position', |
|
'underline-thickness', |
|
'strikethrough-position', |
|
'strikethrough-thickness', |
|
'overline-position', |
|
'overline-thickness' |
|
], |
|
defaults: { |
|
'font-style': 'all', |
|
'font-variant': 'normal', |
|
'font-weight': 'all', |
|
'font-stretch': 'normal', |
|
'unicode-range': 'U+0-10FFFF', |
|
'units-per-em': '1000', |
|
'panose-1': '0 0 0 0 0 0 0 0 0 0', |
|
'slope': '0' |
|
}, |
|
contentGroups: [ |
|
'descriptive' |
|
], |
|
content: [ |
|
// TODO: "at most one 'font-face-src' element" |
|
'font-face-src' |
|
] |
|
}, |
|
// TODO: empty content |
|
'font-face-format': { |
|
attrsGroups: [ |
|
'core' |
|
], |
|
attrs: [ |
|
'string' |
|
] |
|
}, |
|
'font-face-name': { |
|
attrsGroups: [ |
|
'core' |
|
], |
|
attrs: [ |
|
'name' |
|
] |
|
}, |
|
'font-face-src': { |
|
attrsGroups: [ |
|
'core' |
|
], |
|
content: [ |
|
'font-face-name', |
|
'font-face-uri' |
|
] |
|
}, |
|
'font-face-uri': { |
|
attrsGroups: [ |
|
'core', |
|
'xlink' |
|
], |
|
attrs: [ |
|
'href', |
|
'xlink:href' |
|
], |
|
content: [ |
|
'font-face-format' |
|
] |
|
}, |
|
foreignObject: { |
|
attrsGroups: [ |
|
'core', |
|
'conditionalProcessing', |
|
'graphicalEvent', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'transform', |
|
'x', |
|
'y', |
|
'width', |
|
'height' |
|
], |
|
defaults: { |
|
x: 0, |
|
y: 0 |
|
} |
|
}, |
|
g: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'graphicalEvent', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'transform' |
|
], |
|
contentGroups: [ |
|
'animation', |
|
'descriptive', |
|
'shape', |
|
'structural', |
|
'paintServer' |
|
], |
|
content: [ |
|
'a', |
|
'altGlyphDef', |
|
'clipPath', |
|
'color-profile', |
|
'cursor', |
|
'filter', |
|
'font', |
|
'font-face', |
|
'foreignObject', |
|
'image', |
|
'marker', |
|
'mask', |
|
'pattern', |
|
'script', |
|
'style', |
|
'switch', |
|
'text', |
|
'view' |
|
] |
|
}, |
|
glyph: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'd', |
|
'horiz-adv-x', |
|
'vert-origin-x', |
|
'vert-origin-y', |
|
'vert-adv-y', |
|
'unicode', |
|
'glyph-name', |
|
'orientation', |
|
'arabic-form', |
|
'lang' |
|
], |
|
defaults: { |
|
'arabic-form': 'initial' |
|
}, |
|
contentGroups: [ |
|
'animation', |
|
'descriptive', |
|
'shape', |
|
'structural', |
|
'paintServer' |
|
], |
|
content: [ |
|
'a', |
|
'altGlyphDef', |
|
'clipPath', |
|
'color-profile', |
|
'cursor', |
|
'filter', |
|
'font', |
|
'font-face', |
|
'foreignObject', |
|
'image', |
|
'marker', |
|
'mask', |
|
'pattern', |
|
'script', |
|
'style', |
|
'switch', |
|
'text', |
|
'view' |
|
], |
|
}, |
|
glyphRef: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'd', |
|
'horiz-adv-x', |
|
'vert-origin-x', |
|
'vert-origin-y', |
|
'vert-adv-y' |
|
], |
|
contentGroups: [ |
|
'animation', |
|
'descriptive', |
|
'shape', |
|
'structural', |
|
'paintServer' |
|
], |
|
content: [ |
|
'a', |
|
'altGlyphDef', |
|
'clipPath', |
|
'color-profile', |
|
'cursor', |
|
'filter', |
|
'font', |
|
'font-face', |
|
'foreignObject', |
|
'image', |
|
'marker', |
|
'mask', |
|
'pattern', |
|
'script', |
|
'style', |
|
'switch', |
|
'text', |
|
'view' |
|
] |
|
}, |
|
hatch: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation', |
|
'xlink' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'x', |
|
'y', |
|
'pitch', |
|
'rotate', |
|
'hatchUnits', |
|
'hatchContentUnits', |
|
'transform' |
|
], |
|
defaults: { |
|
hatchUnits: 'objectBoundingBox', |
|
hatchContentUnits: 'userSpaceOnUse', |
|
x: '0', |
|
y: '0', |
|
pitch: '0', |
|
rotate: '0' |
|
}, |
|
contentGroups: [ |
|
'animation', |
|
'descriptive' |
|
], |
|
content: [ |
|
'hatchPath' |
|
] |
|
}, |
|
hatchPath: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation', |
|
'xlink' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'd', |
|
'offset' |
|
], |
|
defaults: { |
|
offset: '0' |
|
}, |
|
contentGroups: [ |
|
'animation', |
|
'descriptive' |
|
] |
|
}, |
|
hkern: { |
|
attrsGroups: [ |
|
'core' |
|
], |
|
attrs: [ |
|
'u1', |
|
'g1', |
|
'u2', |
|
'g2', |
|
'k' |
|
] |
|
}, |
|
image: { |
|
attrsGroups: [ |
|
'core', |
|
'conditionalProcessing', |
|
'graphicalEvent', |
|
'xlink', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'preserveAspectRatio', |
|
'transform', |
|
'x', |
|
'y', |
|
'width', |
|
'height', |
|
'href', |
|
'xlink:href' |
|
], |
|
defaults: { |
|
x: '0', |
|
y: '0', |
|
preserveAspectRatio: 'xMidYMid meet' |
|
}, |
|
contentGroups: [ |
|
'animation', |
|
'descriptive' |
|
] |
|
}, |
|
line: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'graphicalEvent', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'transform', |
|
'x1', |
|
'y1', |
|
'x2', |
|
'y2' |
|
], |
|
defaults: { |
|
x1: '0', |
|
y1: '0', |
|
x2: '0', |
|
y2: '0' |
|
}, |
|
contentGroups: [ |
|
'animation', |
|
'descriptive' |
|
] |
|
}, |
|
linearGradient: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation', |
|
'xlink' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'x1', |
|
'y1', |
|
'x2', |
|
'y2', |
|
'gradientUnits', |
|
'gradientTransform', |
|
'spreadMethod', |
|
'href', |
|
'xlink:href' |
|
], |
|
defaults: { |
|
x1: '0', |
|
y1: '0', |
|
x2: '100%', |
|
y2: '0', |
|
spreadMethod: 'pad' |
|
}, |
|
contentGroups: [ |
|
'descriptive' |
|
], |
|
content: [ |
|
'animate', |
|
'animateTransform', |
|
'set', |
|
'stop' |
|
] |
|
}, |
|
marker: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'viewBox', |
|
'preserveAspectRatio', |
|
'refX', |
|
'refY', |
|
'markerUnits', |
|
'markerWidth', |
|
'markerHeight', |
|
'orient' |
|
], |
|
defaults: { |
|
markerUnits: 'strokeWidth', |
|
refX: '0', |
|
refY: '0', |
|
markerWidth: '3', |
|
markerHeight: '3' |
|
}, |
|
contentGroups: [ |
|
'animation', |
|
'descriptive', |
|
'shape', |
|
'structural', |
|
'paintServer' |
|
], |
|
content: [ |
|
'a', |
|
'altGlyphDef', |
|
'clipPath', |
|
'color-profile', |
|
'cursor', |
|
'filter', |
|
'font', |
|
'font-face', |
|
'foreignObject', |
|
'image', |
|
'marker', |
|
'mask', |
|
'pattern', |
|
'script', |
|
'style', |
|
'switch', |
|
'text', |
|
'view' |
|
] |
|
}, |
|
mask: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'x', |
|
'y', |
|
'width', |
|
'height', |
|
'maskUnits', |
|
'maskContentUnits' |
|
], |
|
defaults: { |
|
maskUnits: 'objectBoundingBox', |
|
maskContentUnits: 'userSpaceOnUse', |
|
x: '-10%', |
|
y: '-10%', |
|
width: '120%', |
|
height: '120%' |
|
}, |
|
contentGroups: [ |
|
'animation', |
|
'descriptive', |
|
'shape', |
|
'structural', |
|
'paintServer' |
|
], |
|
content: [ |
|
'a', |
|
'altGlyphDef', |
|
'clipPath', |
|
'color-profile', |
|
'cursor', |
|
'filter', |
|
'font', |
|
'font-face', |
|
'foreignObject', |
|
'image', |
|
'marker', |
|
'mask', |
|
'pattern', |
|
'script', |
|
'style', |
|
'switch', |
|
'text', |
|
'view' |
|
] |
|
}, |
|
metadata: { |
|
attrsGroups: [ |
|
'core' |
|
] |
|
}, |
|
'missing-glyph': { |
|
attrsGroups: [ |
|
'core', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'd', |
|
'horiz-adv-x', |
|
'vert-origin-x', |
|
'vert-origin-y', |
|
'vert-adv-y' |
|
], |
|
contentGroups: [ |
|
'animation', |
|
'descriptive', |
|
'shape', |
|
'structural', |
|
'paintServer' |
|
], |
|
content: [ |
|
'a', |
|
'altGlyphDef', |
|
'clipPath', |
|
'color-profile', |
|
'cursor', |
|
'filter', |
|
'font', |
|
'font-face', |
|
'foreignObject', |
|
'image', |
|
'marker', |
|
'mask', |
|
'pattern', |
|
'script', |
|
'style', |
|
'switch', |
|
'text', |
|
'view' |
|
] |
|
}, |
|
mpath: { |
|
attrsGroups: [ |
|
'core', |
|
'xlink' |
|
], |
|
attrs: [ |
|
'externalResourcesRequired', |
|
'href', |
|
'xlink:href' |
|
], |
|
contentGroups: [ |
|
'descriptive' |
|
] |
|
}, |
|
path: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'graphicalEvent', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'transform', |
|
'd', |
|
'pathLength' |
|
], |
|
contentGroups: [ |
|
'animation', |
|
'descriptive' |
|
] |
|
}, |
|
pattern: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'presentation', |
|
'xlink' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'viewBox', |
|
'preserveAspectRatio', |
|
'x', |
|
'y', |
|
'width', |
|
'height', |
|
'patternUnits', |
|
'patternContentUnits', |
|
'patternTransform', |
|
'href', |
|
'xlink:href' |
|
], |
|
defaults: { |
|
patternUnits: 'objectBoundingBox', |
|
patternContentUnits: 'userSpaceOnUse', |
|
x: '0', |
|
y: '0', |
|
width: '0', |
|
height: '0', |
|
preserveAspectRatio: 'xMidYMid meet' |
|
}, |
|
contentGroups: [ |
|
'animation', |
|
'descriptive', |
|
'paintServer', |
|
'shape', |
|
'structural' |
|
], |
|
content: [ |
|
'a', |
|
'altGlyphDef', |
|
'clipPath', |
|
'color-profile', |
|
'cursor', |
|
'filter', |
|
'font', |
|
'font-face', |
|
'foreignObject', |
|
'image', |
|
'marker', |
|
'mask', |
|
'pattern', |
|
'script', |
|
'style', |
|
'switch', |
|
'text', |
|
'view' |
|
] |
|
}, |
|
polygon: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'graphicalEvent', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'transform', |
|
'points' |
|
], |
|
contentGroups: [ |
|
'animation', |
|
'descriptive' |
|
] |
|
}, |
|
polyline: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'graphicalEvent', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'transform', |
|
'points' |
|
], |
|
contentGroups: [ |
|
'animation', |
|
'descriptive' |
|
] |
|
}, |
|
radialGradient: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation', |
|
'xlink' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'cx', |
|
'cy', |
|
'r', |
|
'fx', |
|
'fy', |
|
'fr', |
|
'gradientUnits', |
|
'gradientTransform', |
|
'spreadMethod', |
|
'href', |
|
'xlink:href' |
|
], |
|
defaults: { |
|
gradientUnits: 'objectBoundingBox', |
|
cx: '50%', |
|
cy: '50%', |
|
r: '50%' |
|
}, |
|
contentGroups: [ |
|
'descriptive' |
|
], |
|
content: [ |
|
'animate', |
|
'animateTransform', |
|
'set', |
|
'stop' |
|
] |
|
}, |
|
meshGradient: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation', |
|
'xlink' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'x', |
|
'y', |
|
'gradientUnits', |
|
'transform' |
|
], |
|
contentGroups: [ |
|
'descriptive', |
|
'paintServer', |
|
'animation', |
|
], |
|
content: [ |
|
'meshRow' |
|
] |
|
}, |
|
meshRow: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style' |
|
], |
|
contentGroups: [ |
|
'descriptive' |
|
], |
|
content: [ |
|
'meshPatch' |
|
] |
|
}, |
|
meshPatch: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style' |
|
], |
|
contentGroups: [ |
|
'descriptive' |
|
], |
|
content: [ |
|
'stop' |
|
] |
|
}, |
|
rect: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'graphicalEvent', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'transform', |
|
'x', |
|
'y', |
|
'width', |
|
'height', |
|
'rx', |
|
'ry' |
|
], |
|
defaults: { |
|
x: '0', |
|
y: '0' |
|
}, |
|
contentGroups: [ |
|
'animation', |
|
'descriptive' |
|
] |
|
}, |
|
script: { |
|
attrsGroups: [ |
|
'core', |
|
'xlink' |
|
], |
|
attrs: [ |
|
'externalResourcesRequired', |
|
'type', |
|
'href', |
|
'xlink:href' |
|
] |
|
}, |
|
set: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'animation', |
|
'xlink', |
|
'animationAttributeTarget', |
|
'animationTiming', |
|
], |
|
attrs: [ |
|
'externalResourcesRequired', |
|
'to' |
|
], |
|
contentGroups: [ |
|
'descriptive' |
|
] |
|
}, |
|
solidColor: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style' |
|
], |
|
contentGroups: [ |
|
'paintServer' |
|
] |
|
}, |
|
stop: { |
|
attrsGroups: [ |
|
'core', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'offset', |
|
'path' |
|
], |
|
content: [ |
|
'animate', |
|
'animateColor', |
|
'set' |
|
] |
|
}, |
|
style: { |
|
attrsGroups: [ |
|
'core' |
|
], |
|
attrs: [ |
|
'type', |
|
'media', |
|
'title' |
|
], |
|
defaults: { |
|
type: 'text/css' |
|
} |
|
}, |
|
svg: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'documentEvent', |
|
'graphicalEvent', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'x', |
|
'y', |
|
'width', |
|
'height', |
|
'viewBox', |
|
'preserveAspectRatio', |
|
'zoomAndPan', |
|
'version', |
|
'baseProfile', |
|
'contentScriptType', |
|
'contentStyleType' |
|
], |
|
defaults: { |
|
x: '0', |
|
y: '0', |
|
width: '100%', |
|
height: '100%', |
|
preserveAspectRatio: 'xMidYMid meet', |
|
zoomAndPan: 'magnify', |
|
version: '1.1', |
|
baseProfile: 'none', |
|
contentScriptType: 'application/ecmascript', |
|
contentStyleType: 'text/css' |
|
}, |
|
contentGroups: [ |
|
'animation', |
|
'descriptive', |
|
'shape', |
|
'structural', |
|
'paintServer' |
|
], |
|
content: [ |
|
'a', |
|
'altGlyphDef', |
|
'clipPath', |
|
'color-profile', |
|
'cursor', |
|
'filter', |
|
'font', |
|
'font-face', |
|
'foreignObject', |
|
'image', |
|
'marker', |
|
'mask', |
|
'pattern', |
|
'script', |
|
'style', |
|
'switch', |
|
'text', |
|
'view' |
|
] |
|
}, |
|
switch: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'graphicalEvent', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'transform' |
|
], |
|
contentGroups: [ |
|
'animation', |
|
'descriptive', |
|
'shape' |
|
], |
|
content: [ |
|
'a', |
|
'foreignObject', |
|
'g', |
|
'image', |
|
'svg', |
|
'switch', |
|
'text', |
|
'use' |
|
] |
|
}, |
|
symbol: { |
|
attrsGroups: [ |
|
'core', |
|
'graphicalEvent', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'preserveAspectRatio', |
|
'viewBox', |
|
'refX', |
|
'refY' |
|
], |
|
defaults: { |
|
refX: 0, |
|
refY: 0 |
|
}, |
|
contentGroups: [ |
|
'animation', |
|
'descriptive', |
|
'shape', |
|
'structural', |
|
'paintServer' |
|
], |
|
content: [ |
|
'a', |
|
'altGlyphDef', |
|
'clipPath', |
|
'color-profile', |
|
'cursor', |
|
'filter', |
|
'font', |
|
'font-face', |
|
'foreignObject', |
|
'image', |
|
'marker', |
|
'mask', |
|
'pattern', |
|
'script', |
|
'style', |
|
'switch', |
|
'text', |
|
'view' |
|
] |
|
}, |
|
text: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'graphicalEvent', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'transform', |
|
'lengthAdjust', |
|
'x', |
|
'y', |
|
'dx', |
|
'dy', |
|
'rotate', |
|
'textLength' |
|
], |
|
defaults: { |
|
x: '0', |
|
y: '0', |
|
lengthAdjust: 'spacing' |
|
}, |
|
contentGroups: [ |
|
'animation', |
|
'descriptive', |
|
'textContentChild' |
|
], |
|
content: [ |
|
'a' |
|
] |
|
}, |
|
textPath: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'graphicalEvent', |
|
'presentation', |
|
'xlink' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'href', |
|
'xlink:href', |
|
'startOffset', |
|
'method', |
|
'spacing', |
|
'd' |
|
], |
|
defaults: { |
|
startOffset: '0', |
|
method: 'align', |
|
spacing: 'exact' |
|
}, |
|
contentGroups: [ |
|
'descriptive' |
|
], |
|
content: [ |
|
'a', |
|
'altGlyph', |
|
'animate', |
|
'animateColor', |
|
'set', |
|
'tref', |
|
'tspan' |
|
] |
|
}, |
|
title: { |
|
attrsGroups: [ |
|
'core' |
|
], |
|
attrs: [ |
|
'class', |
|
'style' |
|
] |
|
}, |
|
tref: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'graphicalEvent', |
|
'presentation', |
|
'xlink' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'href', |
|
'xlink:href' |
|
], |
|
contentGroups: [ |
|
'descriptive' |
|
], |
|
content: [ |
|
'animate', |
|
'animateColor', |
|
'set' |
|
] |
|
}, |
|
tspan: { |
|
attrsGroups: [ |
|
'conditionalProcessing', |
|
'core', |
|
'graphicalEvent', |
|
'presentation' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'x', |
|
'y', |
|
'dx', |
|
'dy', |
|
'rotate', |
|
'textLength', |
|
'lengthAdjust' |
|
], |
|
contentGroups: [ |
|
'descriptive' |
|
], |
|
content: [ |
|
'a', |
|
'altGlyph', |
|
'animate', |
|
'animateColor', |
|
'set', |
|
'tref', |
|
'tspan' |
|
] |
|
}, |
|
use: { |
|
attrsGroups: [ |
|
'core', |
|
'conditionalProcessing', |
|
'graphicalEvent', |
|
'presentation', |
|
'xlink' |
|
], |
|
attrs: [ |
|
'class', |
|
'style', |
|
'externalResourcesRequired', |
|
'transform', |
|
'x', |
|
'y', |
|
'width', |
|
'height', |
|
'href', |
|
'xlink:href' |
|
], |
|
defaults: { |
|
x: '0', |
|
y: '0' |
|
}, |
|
contentGroups: [ |
|
'animation', |
|
'descriptive' |
|
] |
|
}, |
|
view: { |
|
attrsGroups: [ |
|
'core' |
|
], |
|
attrs: [ |
|
'externalResourcesRequired', |
|
'viewBox', |
|
'preserveAspectRatio', |
|
'zoomAndPan', |
|
'viewTarget' |
|
], |
|
contentGroups: [ |
|
'descriptive' |
|
] |
|
}, |
|
vkern: { |
|
attrsGroups: [ |
|
'core' |
|
], |
|
attrs: [ |
|
'u1', |
|
'g1', |
|
'u2', |
|
'g2', |
|
'k' |
|
] |
|
} |
|
}; |
|
|
|
// http://wiki.inkscape.org/wiki/index.php/Inkscape-specific_XML_attributes |
|
exports.editorNamespaces = [ |
|
'http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd', |
|
'http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd', |
|
'http://www.inkscape.org/namespaces/inkscape', |
|
'http://www.bohemiancoding.com/sketch/ns', |
|
'http://ns.adobe.com/AdobeIllustrator/10.0/', |
|
'http://ns.adobe.com/Graphs/1.0/', |
|
'http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/', |
|
'http://ns.adobe.com/Variables/1.0/', |
|
'http://ns.adobe.com/SaveForWeb/1.0/', |
|
'http://ns.adobe.com/Extensibility/1.0/', |
|
'http://ns.adobe.com/Flows/1.0/', |
|
'http://ns.adobe.com/ImageReplacement/1.0/', |
|
'http://ns.adobe.com/GenericCustomNamespace/1.0/', |
|
'http://ns.adobe.com/XPath/1.0/', |
|
'http://schemas.microsoft.com/visio/2003/SVGExtensions/', |
|
'http://taptrix.com/vectorillustrator/svg_extensions', |
|
'http://www.figma.com/figma/ns', |
|
'http://purl.org/dc/elements/1.1/', |
|
'http://creativecommons.org/ns#', |
|
'http://www.w3.org/1999/02/22-rdf-syntax-ns#', |
|
'http://www.serif.com/', |
|
'http://www.vector.evaxdesign.sk' |
|
]; |
|
|
|
// http://www.w3.org/TR/SVG11/linking.html#processingIRI |
|
exports.referencesProps = [ |
|
'clip-path', |
|
'color-profile', |
|
'fill', |
|
'filter', |
|
'marker-start', |
|
'marker-mid', |
|
'marker-end', |
|
'mask', |
|
'stroke', |
|
'style' |
|
]; |
|
|
|
// http://www.w3.org/TR/SVG11/propidx.html |
|
exports.inheritableAttrs = [ |
|
'clip-rule', |
|
'color', |
|
'color-interpolation', |
|
'color-interpolation-filters', |
|
'color-profile', |
|
'color-rendering', |
|
'cursor', |
|
'direction', |
|
'dominant-baseline', |
|
'fill', |
|
'fill-opacity', |
|
'fill-rule', |
|
'font', |
|
'font-family', |
|
'font-size', |
|
'font-size-adjust', |
|
'font-stretch', |
|
'font-style', |
|
'font-variant', |
|
'font-weight', |
|
'glyph-orientation-horizontal', |
|
'glyph-orientation-vertical', |
|
'image-rendering', |
|
'letter-spacing', |
|
'marker', |
|
'marker-end', |
|
'marker-mid', |
|
'marker-start', |
|
'paint-order', |
|
'pointer-events', |
|
'shape-rendering', |
|
'stroke', |
|
'stroke-dasharray', |
|
'stroke-dashoffset', |
|
'stroke-linecap', |
|
'stroke-linejoin', |
|
'stroke-miterlimit', |
|
'stroke-opacity', |
|
'stroke-width', |
|
'text-anchor', |
|
'text-rendering', |
|
'transform', |
|
'visibility', |
|
'word-spacing', |
|
'writing-mode' |
|
]; |
|
|
|
exports.presentationNonInheritableGroupAttrs = [ |
|
'display', |
|
'clip-path', |
|
'filter', |
|
'mask', |
|
'opacity', |
|
'text-decoration', |
|
'transform', |
|
'unicode-bidi', |
|
'visibility' |
|
]; |
|
|
|
// http://www.w3.org/TR/SVG11/single-page.html#types-ColorKeywords |
|
exports.colorsNames = { |
|
'aliceblue': '#f0f8ff', |
|
'antiquewhite': '#faebd7', |
|
'aqua': '#0ff', |
|
'aquamarine': '#7fffd4', |
|
'azure': '#f0ffff', |
|
'beige': '#f5f5dc', |
|
'bisque': '#ffe4c4', |
|
'black': '#000', |
|
'blanchedalmond': '#ffebcd', |
|
'blue': '#00f', |
|
'blueviolet': '#8a2be2', |
|
'brown': '#a52a2a', |
|
'burlywood': '#deb887', |
|
'cadetblue': '#5f9ea0', |
|
'chartreuse': '#7fff00', |
|
'chocolate': '#d2691e', |
|
'coral': '#ff7f50', |
|
'cornflowerblue': '#6495ed', |
|
'cornsilk': '#fff8dc', |
|
'crimson': '#dc143c', |
|
'cyan': '#0ff', |
|
'darkblue': '#00008b', |
|
'darkcyan': '#008b8b', |
|
'darkgoldenrod': '#b8860b', |
|
'darkgray': '#a9a9a9', |
|
'darkgreen': '#006400', |
|
'darkgrey': '#a9a9a9', |
|
'darkkhaki': '#bdb76b', |
|
'darkmagenta': '#8b008b', |
|
'darkolivegreen': '#556b2f', |
|
'darkorange': '#ff8c00', |
|
'darkorchid': '#9932cc', |
|
'darkred': '#8b0000', |
|
'darksalmon': '#e9967a', |
|
'darkseagreen': '#8fbc8f', |
|
'darkslateblue': '#483d8b', |
|
'darkslategray': '#2f4f4f', |
|
'darkslategrey': '#2f4f4f', |
|
'darkturquoise': '#00ced1', |
|
'darkviolet': '#9400d3', |
|
'deeppink': '#ff1493', |
|
'deepskyblue': '#00bfff', |
|
'dimgray': '#696969', |
|
'dimgrey': '#696969', |
|
'dodgerblue': '#1e90ff', |
|
'firebrick': '#b22222', |
|
'floralwhite': '#fffaf0', |
|
'forestgreen': '#228b22', |
|
'fuchsia': '#f0f', |
|
'gainsboro': '#dcdcdc', |
|
'ghostwhite': '#f8f8ff', |
|
'gold': '#ffd700', |
|
'goldenrod': '#daa520', |
|
'gray': '#808080', |
|
'green': '#008000', |
|
'greenyellow': '#adff2f', |
|
'grey': '#808080', |
|
'honeydew': '#f0fff0', |
|
'hotpink': '#ff69b4', |
|
'indianred': '#cd5c5c', |
|
'indigo': '#4b0082', |
|
'ivory': '#fffff0', |
|
'khaki': '#f0e68c', |
|
'lavender': '#e6e6fa', |
|
'lavenderblush': '#fff0f5', |
|
'lawngreen': '#7cfc00', |
|
'lemonchiffon': '#fffacd', |
|
'lightblue': '#add8e6', |
|
'lightcoral': '#f08080', |
|
'lightcyan': '#e0ffff', |
|
'lightgoldenrodyellow': '#fafad2', |
|
'lightgray': '#d3d3d3', |
|
'lightgreen': '#90ee90', |
|
'lightgrey': '#d3d3d3', |
|
'lightpink': '#ffb6c1', |
|
'lightsalmon': '#ffa07a', |
|
'lightseagreen': '#20b2aa', |
|
'lightskyblue': '#87cefa', |
|
'lightslategray': '#789', |
|
'lightslategrey': '#789', |
|
'lightsteelblue': '#b0c4de', |
|
'lightyellow': '#ffffe0', |
|
'lime': '#0f0', |
|
'limegreen': '#32cd32', |
|
'linen': '#faf0e6', |
|
'magenta': '#f0f', |
|
'maroon': '#800000', |
|
'mediumaquamarine': '#66cdaa', |
|
'mediumblue': '#0000cd', |
|
'mediumorchid': '#ba55d3', |
|
'mediumpurple': '#9370db', |
|
'mediumseagreen': '#3cb371', |
|
'mediumslateblue': '#7b68ee', |
|
'mediumspringgreen': '#00fa9a', |
|
'mediumturquoise': '#48d1cc', |
|
'mediumvioletred': '#c71585', |
|
'midnightblue': '#191970', |
|
'mintcream': '#f5fffa', |
|
'mistyrose': '#ffe4e1', |
|
'moccasin': '#ffe4b5', |
|
'navajowhite': '#ffdead', |
|
'navy': '#000080', |
|
'oldlace': '#fdf5e6', |
|
'olive': '#808000', |
|
'olivedrab': '#6b8e23', |
|
'orange': '#ffa500', |
|
'orangered': '#ff4500', |
|
'orchid': '#da70d6', |
|
'palegoldenrod': '#eee8aa', |
|
'palegreen': '#98fb98', |
|
'paleturquoise': '#afeeee', |
|
'palevioletred': '#db7093', |
|
'papayawhip': '#ffefd5', |
|
'peachpuff': '#ffdab9', |
|
'peru': '#cd853f', |
|
'pink': '#ffc0cb', |
|
'plum': '#dda0dd', |
|
'powderblue': '#b0e0e6', |
|
'purple': '#800080', |
|
'rebeccapurple': '#639', |
|
'red': '#f00', |
|
'rosybrown': '#bc8f8f', |
|
'royalblue': '#4169e1', |
|
'saddlebrown': '#8b4513', |
|
'salmon': '#fa8072', |
|
'sandybrown': '#f4a460', |
|
'seagreen': '#2e8b57', |
|
'seashell': '#fff5ee', |
|
'sienna': '#a0522d', |
|
'silver': '#c0c0c0', |
|
'skyblue': '#87ceeb', |
|
'slateblue': '#6a5acd', |
|
'slategray': '#708090', |
|
'slategrey': '#708090', |
|
'snow': '#fffafa', |
|
'springgreen': '#00ff7f', |
|
'steelblue': '#4682b4', |
|
'tan': '#d2b48c', |
|
'teal': '#008080', |
|
'thistle': '#d8bfd8', |
|
'tomato': '#ff6347', |
|
'turquoise': '#40e0d0', |
|
'violet': '#ee82ee', |
|
'wheat': '#f5deb3', |
|
'white': '#fff', |
|
'whitesmoke': '#f5f5f5', |
|
'yellow': '#ff0', |
|
'yellowgreen': '#9acd32' |
|
}; |
|
|
|
exports.colorsShortNames = { |
|
'#f0ffff': 'azure', |
|
'#f5f5dc': 'beige', |
|
'#ffe4c4': 'bisque', |
|
'#a52a2a': 'brown', |
|
'#ff7f50': 'coral', |
|
'#ffd700': 'gold', |
|
'#808080': 'gray', |
|
'#008000': 'green', |
|
'#4b0082': 'indigo', |
|
'#fffff0': 'ivory', |
|
'#f0e68c': 'khaki', |
|
'#faf0e6': 'linen', |
|
'#800000': 'maroon', |
|
'#000080': 'navy', |
|
'#808000': 'olive', |
|
'#ffa500': 'orange', |
|
'#da70d6': 'orchid', |
|
'#cd853f': 'peru', |
|
'#ffc0cb': 'pink', |
|
'#dda0dd': 'plum', |
|
'#800080': 'purple', |
|
'#f00': 'red', |
|
'#ff0000': 'red', |
|
'#fa8072': 'salmon', |
|
'#a0522d': 'sienna', |
|
'#c0c0c0': 'silver', |
|
'#fffafa': 'snow', |
|
'#d2b48c': 'tan', |
|
'#008080': 'teal', |
|
'#ff6347': 'tomato', |
|
'#ee82ee': 'violet', |
|
'#f5deb3': 'wheat' |
|
}; |
|
|
|
// http://www.w3.org/TR/SVG11/single-page.html#types-DataTypeColor |
|
exports.colorsProps = [ |
|
'color', 'fill', 'stroke', 'stop-color', 'flood-color', 'lighting-color' |
|
];
|
|
|