301 lines
7.1 KiB
JavaScript
301 lines
7.1 KiB
JavaScript
/**
|
|
* Copyright 2013-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
var NS = {
|
|
xlink: 'http://www.w3.org/1999/xlink',
|
|
xml: 'http://www.w3.org/XML/1998/namespace'
|
|
};
|
|
|
|
// We use attributes for everything SVG so let's avoid some duplication and run
|
|
// code instead.
|
|
// The following are all specified in the HTML config already so we exclude here.
|
|
// - class (as className)
|
|
// - color
|
|
// - height
|
|
// - id
|
|
// - lang
|
|
// - max
|
|
// - media
|
|
// - method
|
|
// - min
|
|
// - name
|
|
// - style
|
|
// - target
|
|
// - type
|
|
// - width
|
|
var ATTRS = {
|
|
accentHeight: 'accent-height',
|
|
accumulate: 0,
|
|
additive: 0,
|
|
alignmentBaseline: 'alignment-baseline',
|
|
allowReorder: 'allowReorder',
|
|
alphabetic: 0,
|
|
amplitude: 0,
|
|
arabicForm: 'arabic-form',
|
|
ascent: 0,
|
|
attributeName: 'attributeName',
|
|
attributeType: 'attributeType',
|
|
autoReverse: 'autoReverse',
|
|
azimuth: 0,
|
|
baseFrequency: 'baseFrequency',
|
|
baseProfile: 'baseProfile',
|
|
baselineShift: 'baseline-shift',
|
|
bbox: 0,
|
|
begin: 0,
|
|
bias: 0,
|
|
by: 0,
|
|
calcMode: 'calcMode',
|
|
capHeight: 'cap-height',
|
|
clip: 0,
|
|
clipPath: 'clip-path',
|
|
clipRule: 'clip-rule',
|
|
clipPathUnits: 'clipPathUnits',
|
|
colorInterpolation: 'color-interpolation',
|
|
colorInterpolationFilters: 'color-interpolation-filters',
|
|
colorProfile: 'color-profile',
|
|
colorRendering: 'color-rendering',
|
|
contentScriptType: 'contentScriptType',
|
|
contentStyleType: 'contentStyleType',
|
|
cursor: 0,
|
|
cx: 0,
|
|
cy: 0,
|
|
d: 0,
|
|
decelerate: 0,
|
|
descent: 0,
|
|
diffuseConstant: 'diffuseConstant',
|
|
direction: 0,
|
|
display: 0,
|
|
divisor: 0,
|
|
dominantBaseline: 'dominant-baseline',
|
|
dur: 0,
|
|
dx: 0,
|
|
dy: 0,
|
|
edgeMode: 'edgeMode',
|
|
elevation: 0,
|
|
enableBackground: 'enable-background',
|
|
end: 0,
|
|
exponent: 0,
|
|
externalResourcesRequired: 'externalResourcesRequired',
|
|
fill: 0,
|
|
fillOpacity: 'fill-opacity',
|
|
fillRule: 'fill-rule',
|
|
filter: 0,
|
|
filterRes: 'filterRes',
|
|
filterUnits: 'filterUnits',
|
|
floodColor: 'flood-color',
|
|
floodOpacity: 'flood-opacity',
|
|
focusable: 0,
|
|
fontFamily: 'font-family',
|
|
fontSize: 'font-size',
|
|
fontSizeAdjust: 'font-size-adjust',
|
|
fontStretch: 'font-stretch',
|
|
fontStyle: 'font-style',
|
|
fontVariant: 'font-variant',
|
|
fontWeight: 'font-weight',
|
|
format: 0,
|
|
from: 0,
|
|
fx: 0,
|
|
fy: 0,
|
|
g1: 0,
|
|
g2: 0,
|
|
glyphName: 'glyph-name',
|
|
glyphOrientationHorizontal: 'glyph-orientation-horizontal',
|
|
glyphOrientationVertical: 'glyph-orientation-vertical',
|
|
glyphRef: 'glyphRef',
|
|
gradientTransform: 'gradientTransform',
|
|
gradientUnits: 'gradientUnits',
|
|
hanging: 0,
|
|
horizAdvX: 'horiz-adv-x',
|
|
horizOriginX: 'horiz-origin-x',
|
|
ideographic: 0,
|
|
imageRendering: 'image-rendering',
|
|
'in': 0,
|
|
in2: 0,
|
|
intercept: 0,
|
|
k: 0,
|
|
k1: 0,
|
|
k2: 0,
|
|
k3: 0,
|
|
k4: 0,
|
|
kernelMatrix: 'kernelMatrix',
|
|
kernelUnitLength: 'kernelUnitLength',
|
|
kerning: 0,
|
|
keyPoints: 'keyPoints',
|
|
keySplines: 'keySplines',
|
|
keyTimes: 'keyTimes',
|
|
lengthAdjust: 'lengthAdjust',
|
|
letterSpacing: 'letter-spacing',
|
|
lightingColor: 'lighting-color',
|
|
limitingConeAngle: 'limitingConeAngle',
|
|
local: 0,
|
|
markerEnd: 'marker-end',
|
|
markerMid: 'marker-mid',
|
|
markerStart: 'marker-start',
|
|
markerHeight: 'markerHeight',
|
|
markerUnits: 'markerUnits',
|
|
markerWidth: 'markerWidth',
|
|
mask: 0,
|
|
maskContentUnits: 'maskContentUnits',
|
|
maskUnits: 'maskUnits',
|
|
mathematical: 0,
|
|
mode: 0,
|
|
numOctaves: 'numOctaves',
|
|
offset: 0,
|
|
opacity: 0,
|
|
operator: 0,
|
|
order: 0,
|
|
orient: 0,
|
|
orientation: 0,
|
|
origin: 0,
|
|
overflow: 0,
|
|
overlinePosition: 'overline-position',
|
|
overlineThickness: 'overline-thickness',
|
|
paintOrder: 'paint-order',
|
|
panose1: 'panose-1',
|
|
pathLength: 'pathLength',
|
|
patternContentUnits: 'patternContentUnits',
|
|
patternTransform: 'patternTransform',
|
|
patternUnits: 'patternUnits',
|
|
pointerEvents: 'pointer-events',
|
|
points: 0,
|
|
pointsAtX: 'pointsAtX',
|
|
pointsAtY: 'pointsAtY',
|
|
pointsAtZ: 'pointsAtZ',
|
|
preserveAlpha: 'preserveAlpha',
|
|
preserveAspectRatio: 'preserveAspectRatio',
|
|
primitiveUnits: 'primitiveUnits',
|
|
r: 0,
|
|
radius: 0,
|
|
refX: 'refX',
|
|
refY: 'refY',
|
|
renderingIntent: 'rendering-intent',
|
|
repeatCount: 'repeatCount',
|
|
repeatDur: 'repeatDur',
|
|
requiredExtensions: 'requiredExtensions',
|
|
requiredFeatures: 'requiredFeatures',
|
|
restart: 0,
|
|
result: 0,
|
|
rotate: 0,
|
|
rx: 0,
|
|
ry: 0,
|
|
scale: 0,
|
|
seed: 0,
|
|
shapeRendering: 'shape-rendering',
|
|
slope: 0,
|
|
spacing: 0,
|
|
specularConstant: 'specularConstant',
|
|
specularExponent: 'specularExponent',
|
|
speed: 0,
|
|
spreadMethod: 'spreadMethod',
|
|
startOffset: 'startOffset',
|
|
stdDeviation: 'stdDeviation',
|
|
stemh: 0,
|
|
stemv: 0,
|
|
stitchTiles: 'stitchTiles',
|
|
stopColor: 'stop-color',
|
|
stopOpacity: 'stop-opacity',
|
|
strikethroughPosition: 'strikethrough-position',
|
|
strikethroughThickness: 'strikethrough-thickness',
|
|
string: 0,
|
|
stroke: 0,
|
|
strokeDasharray: 'stroke-dasharray',
|
|
strokeDashoffset: 'stroke-dashoffset',
|
|
strokeLinecap: 'stroke-linecap',
|
|
strokeLinejoin: 'stroke-linejoin',
|
|
strokeMiterlimit: 'stroke-miterlimit',
|
|
strokeOpacity: 'stroke-opacity',
|
|
strokeWidth: 'stroke-width',
|
|
surfaceScale: 'surfaceScale',
|
|
systemLanguage: 'systemLanguage',
|
|
tableValues: 'tableValues',
|
|
targetX: 'targetX',
|
|
targetY: 'targetY',
|
|
textAnchor: 'text-anchor',
|
|
textDecoration: 'text-decoration',
|
|
textRendering: 'text-rendering',
|
|
textLength: 'textLength',
|
|
to: 0,
|
|
transform: 0,
|
|
u1: 0,
|
|
u2: 0,
|
|
underlinePosition: 'underline-position',
|
|
underlineThickness: 'underline-thickness',
|
|
unicode: 0,
|
|
unicodeBidi: 'unicode-bidi',
|
|
unicodeRange: 'unicode-range',
|
|
unitsPerEm: 'units-per-em',
|
|
vAlphabetic: 'v-alphabetic',
|
|
vHanging: 'v-hanging',
|
|
vIdeographic: 'v-ideographic',
|
|
vMathematical: 'v-mathematical',
|
|
values: 0,
|
|
vectorEffect: 'vector-effect',
|
|
version: 0,
|
|
vertAdvY: 'vert-adv-y',
|
|
vertOriginX: 'vert-origin-x',
|
|
vertOriginY: 'vert-origin-y',
|
|
viewBox: 'viewBox',
|
|
viewTarget: 'viewTarget',
|
|
visibility: 0,
|
|
widths: 0,
|
|
wordSpacing: 'word-spacing',
|
|
writingMode: 'writing-mode',
|
|
x: 0,
|
|
xHeight: 'x-height',
|
|
x1: 0,
|
|
x2: 0,
|
|
xChannelSelector: 'xChannelSelector',
|
|
xlinkActuate: 'xlink:actuate',
|
|
xlinkArcrole: 'xlink:arcrole',
|
|
xlinkHref: 'xlink:href',
|
|
xlinkRole: 'xlink:role',
|
|
xlinkShow: 'xlink:show',
|
|
xlinkTitle: 'xlink:title',
|
|
xlinkType: 'xlink:type',
|
|
xmlBase: 'xml:base',
|
|
xmlns: 0,
|
|
xmlnsXlink: 'xmlns:xlink',
|
|
xmlLang: 'xml:lang',
|
|
xmlSpace: 'xml:space',
|
|
y: 0,
|
|
y1: 0,
|
|
y2: 0,
|
|
yChannelSelector: 'yChannelSelector',
|
|
z: 0,
|
|
zoomAndPan: 'zoomAndPan'
|
|
};
|
|
|
|
var SVGDOMPropertyConfig = {
|
|
Properties: {},
|
|
DOMAttributeNamespaces: {
|
|
xlinkActuate: NS.xlink,
|
|
xlinkArcrole: NS.xlink,
|
|
xlinkHref: NS.xlink,
|
|
xlinkRole: NS.xlink,
|
|
xlinkShow: NS.xlink,
|
|
xlinkTitle: NS.xlink,
|
|
xlinkType: NS.xlink,
|
|
xmlBase: NS.xml,
|
|
xmlLang: NS.xml,
|
|
xmlSpace: NS.xml
|
|
},
|
|
DOMAttributeNames: {}
|
|
};
|
|
|
|
Object.keys(ATTRS).forEach(function (key) {
|
|
SVGDOMPropertyConfig.Properties[key] = 0;
|
|
if (ATTRS[key]) {
|
|
SVGDOMPropertyConfig.DOMAttributeNames[key] = ATTRS[key];
|
|
}
|
|
});
|
|
|
|
module.exports = SVGDOMPropertyConfig; |