| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169 |
- 'use strict';
- // https://www.w3.org/TR/SVG11/intro.html#Definitions
- /**
- * @type {Record<string, Array<string>>}
- */
- 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',
- 'feDropShadow',
- 'feFlood',
- 'feFuncA',
- 'feFuncB',
- 'feFuncG',
- 'feFuncR',
- 'feGaussianBlur',
- 'feImage',
- 'feMerge',
- 'feMergeNode',
- 'feMorphology',
- 'feOffset',
- 'feSpecularLighting',
- 'feTile',
- 'feTurbulence',
- ],
- };
- exports.textElems = exports.elemsGroups.textContent.concat('title');
- exports.pathElems = ['path', 'glyph', 'missing-glyph'];
- // https://www.w3.org/TR/SVG11/intro.html#Definitions
- /**
- * @type {Record<string, Array<string>>}
- */
- 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',
- 'transform-origin',
- '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',
- ],
- };
- /**
- * @type {Record<string, Record<string, string>>}
- */
- exports.attrsGroupsDefaults = {
- core: { 'xml:space': 'default' },
- 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',
- },
- };
- // https://www.w3.org/TR/SVG11/eltindex.html
- /**
- * @type {Record<string, {
- * attrsGroups: Array<string>,
- * attrs?: Array<string>,
- * defaults?: Record<string, string>,
- * contentGroups?: Array<string>,
- * content?: Array<string>,
- * }>}
- */
- 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',
- // not spec compliant
- 'tspan',
- ],
- },
- 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',
- 'mask-type',
- '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'],
- },
- };
- // https://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',
- ];
- // https://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',
- ];
- // https://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',
- ];
- /**
- * https://www.w3.org/TR/SVG11/single-page.html#types-ColorKeywords
- *
- * @type {Record<string, string>}
- */
- 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',
- };
- /**
- * @type {Record<string, string>}
- */
- 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',
- };
- // https://www.w3.org/TR/SVG11/single-page.html#types-DataTypeColor
- exports.colorsProps = [
- 'color',
- 'fill',
- 'stroke',
- 'stop-color',
- 'flood-color',
- 'lighting-color',
- ];
|