fabric
Version:
Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.
1 lines • 3.92 kB
Source Map (JSON)
{"version":3,"file":"constants.min.mjs","names":[],"sources":["../../../src/parser/constants.ts"],"sourcesContent":["import { getSvgRegex } from './getSvgRegex';\nimport { LEFT, TOP } from '../constants';\nimport {\n TEXT_DECORATION_COLOR,\n TEXT_DECORATION_THICKNESS,\n} 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 'text-decoration-color': TEXT_DECORATION_COLOR,\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"],"mappings":"wMAQA,MAAa,EAAQ,OAAO,GAAG,4CAClB,EAAoB,OAAO,GAAG,uBAE9B,EAAQ,6BAER,EAAwB,OACnC,qHAEE,EACA,2CACA,EACA,cAAA,CAeF,EAAsB,CACpB,UACA,OACA,SACA,WACA,WACA,OACA,OAAA,CAGF,EAAgB,CACd,GAAI,EACJ,EAAG,EACH,EAAG,SACH,GAAA,MACA,EAAA,MACA,QAAS,UACT,WAAY,UACZ,UAAW,kBACX,eAAgB,cAChB,YAAa,WACb,cAAe,aACf,YAAa,WACb,aAAc,YACd,cAAe,aACf,iBAAkB,cAClB,cAAe,aACf,mBAAoB,kBACpB,oBAAqB,mBACrB,iBAAkB,gBAClB,kBAAmB,iBACnB,oBAAqB,mBACrB,iBAAkB,gBAClB,eAAgB,cAChB,kBAAmB,iBACnB,cAAe,aACf,QAAS,UACT,YAAa,WACb,YAAa,WACb,gBAAiB,gBACjB,kBAAmB,iBACnB,4BAA6B,EAC7B,wBAAyB,EAAA,CAE3B,EAAQ,YACR,EAAQ,YAEG,EAAwB,EA3DL,CAC5B,OACA,SACA,UACA,WACA,UACA,OACA,OACA,QACA,OAAA,CAAA,CAoDS,EAA0B,EAlDhB,CAAC,SAAU,QAAS,SAAU,UAAW,OAAQ,MAAA,CAAA,CAoD3D,EAAuB,EA1ChB,CAAC,SAAU,IAAK,IAAK,MAAO,WAAY,OAAA,CAAA,CA8C/C,EAAqB,IAAI,OACpC,OAAO,GAAG,QAAQ,EAAA,GAAS,EAAA,GAAqB,EAAA,GAAS,EAAA,GAAqB,EAAA,GAAS,EAAA,GAAqB,EAAA,OAAA,CAAA,OAAA,KAAA,cAAA,KAAA,MAAA,KAAA,MAAA,KAAA,kBAAA,KAAA,MAAA,KAAA,mBAAA,KAAA,oBAAA,KAAA,MAAA,KAAA,qBAAA,KAAA,sBAAA,KAAA"}