UNPKG

fabric

Version:

Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.

1 lines 5.67 kB
{"version":3,"file":"constants.mjs","sources":["../../../src/parser/constants.ts"],"sourcesContent":["import { getSvgRegex } from './getSvgRegex';\nimport { LEFT, TOP } from '../constants';\nimport { TEXT_DECORATION_THICKNESS } from '../shapes/Text/constants';\n\n// matches, e.g.: +14.56e-12, etc.\nexport const reNum = String.raw`[-+]?(?:\\d*\\.\\d+|\\d+\\.?)(?:[eE][-+]?\\d+)?`;\nexport const viewportSeparator = String.raw`(?:\\s*,?\\s+|\\s*,\\s*)`;\n\nexport const svgNS = 'http://www.w3.org/2000/svg';\n\nexport const reFontDeclaration = new RegExp(\n '(normal|italic)?\\\\s*(normal|small-caps)?\\\\s*' +\n '(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900)?\\\\s*(' +\n reNum +\n '(?:px|cm|mm|em|pt|pc|in)*)(?:\\\\/(normal|' +\n reNum +\n '))?\\\\s+(.*)',\n);\n\nexport const svgValidTagNames = [\n 'path',\n 'circle',\n 'polygon',\n 'polyline',\n 'ellipse',\n 'rect',\n 'line',\n 'image',\n 'text',\n ],\n svgViewBoxElements = ['symbol', 'image', 'marker', 'pattern', 'view', 'svg'],\n svgInvalidAncestors = [\n 'pattern',\n 'defs',\n 'symbol',\n 'metadata',\n 'clipPath',\n 'mask',\n 'desc',\n ],\n svgValidParents = ['symbol', 'g', 'a', 'svg', 'clipPath', 'defs'],\n attributesMap = {\n cx: LEFT,\n x: LEFT,\n r: 'radius',\n cy: TOP,\n y: TOP,\n display: 'visible',\n visibility: 'visible',\n transform: 'transformMatrix',\n 'fill-opacity': 'fillOpacity',\n 'fill-rule': 'fillRule',\n 'font-family': 'fontFamily',\n 'font-size': 'fontSize',\n 'font-style': 'fontStyle',\n 'font-weight': 'fontWeight',\n 'letter-spacing': 'charSpacing',\n 'paint-order': 'paintFirst',\n 'stroke-dasharray': 'strokeDashArray',\n 'stroke-dashoffset': 'strokeDashOffset',\n 'stroke-linecap': 'strokeLineCap',\n 'stroke-linejoin': 'strokeLineJoin',\n 'stroke-miterlimit': 'strokeMiterLimit',\n 'stroke-opacity': 'strokeOpacity',\n 'stroke-width': 'strokeWidth',\n 'text-decoration': 'textDecoration',\n 'text-anchor': 'textAnchor',\n opacity: 'opacity',\n 'clip-path': 'clipPath',\n 'clip-rule': 'clipRule',\n 'vector-effect': 'strokeUniform',\n 'image-rendering': 'imageSmoothing',\n 'text-decoration-thickness': TEXT_DECORATION_THICKNESS,\n },\n fSize = 'font-size',\n cPath = 'clip-path';\n\nexport const svgValidTagNamesRegEx = getSvgRegex(svgValidTagNames);\n\nexport const svgViewBoxElementsRegEx = getSvgRegex(svgViewBoxElements);\n\nexport const svgValidParentsRegEx = getSvgRegex(svgValidParents);\n\n// http://www.w3.org/TR/SVG/coords.html#ViewBoxAttribute\n\nexport const reViewBoxAttrValue = new RegExp(\n String.raw`^\\s*(${reNum})${viewportSeparator}(${reNum})${viewportSeparator}(${reNum})${viewportSeparator}(${reNum})\\s*$`,\n);\n"],"names":["reNum","String","raw","_templateObject","_taggedTemplateLiteral","viewportSeparator","_templateObject2","svgNS","reFontDeclaration","RegExp","svgValidTagNames","svgViewBoxElements","svgInvalidAncestors","svgValidParents","attributesMap","cx","LEFT","x","r","cy","TOP","y","display","visibility","transform","opacity","TEXT_DECORATION_THICKNESS","fSize","cPath","svgValidTagNamesRegEx","getSvgRegex","svgViewBoxElementsRegEx","svgValidParentsRegEx","reViewBoxAttrValue","_templateObject3"],"mappings":"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"}