{"version":3,"file":"constants.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":";;;;AAQA,MAAa,QAAQ,OAAO,GAAG;AAC/B,MAAa,oBAAoB,OAAO,GAAG;AAE3C,MAAa,QAAQ;AAErB,MAAa,oBAAoB,IAAI,OACnC,uHAEE,QACA,6CACA,QACA,cACH;AAED,MAAa,mBAAmB;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;MACD,qBAAqB;CAAC;CAAU;CAAS;CAAU;CAAW;CAAQ;CAAM;MAC5E,sBAAsB;CACpB;CACA;CACA;CACA;CACA;CACA;CACA;CACD;MACD,kBAAkB;CAAC;CAAU;CAAK;CAAK;CAAO;CAAY;CAAO;MACjE,gBAAgB;CACd,IAAI;CACJ,GAAG;CACH,GAAG;CACH,IAAA;CACA,GAAA;CACA,SAAS;CACT,YAAY;CACZ,WAAW;CACX,gBAAgB;CAChB,aAAa;CACb,eAAe;CACf,aAAa;CACb,cAAc;CACd,eAAe;CACf,kBAAkB;CAClB,eAAe;CACf,oBAAoB;CACpB,qBAAqB;CACrB,kBAAkB;CAClB,mBAAmB;CACnB,qBAAqB;CACrB,kBAAkB;CAClB,gBAAgB;CAChB,mBAAmB;CACnB,eAAe;CACf,SAAS;CACT,aAAa;CACb,aAAa;CACb,iBAAiB;CACjB,mBAAmB;CACnB,6BAA6B;CAC7B,yBAAyB;CAC1B;MACD,QAAQ;MACR,QAAQ;AAEV,MAAa,wBAAwB,YAAY,iBAAiB;AAElE,MAAa,0BAA0B,YAAY,mBAAmB;AAEtE,MAAa,uBAAuB,YAAY,gBAAgB;AAIhE,MAAa,qBAAqB,IAAI,OACpC,OAAO,GAAG,QAAQ,MAAM,GAAG,kBAAkB,GAAG,MAAM,GAAG,kBAAkB,GAAG,MAAM,GAAG,kBAAkB,GAAG,MAAM,OACnH"}