UNPKG

fabric

Version:

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

2 lines 1.75 kB
import{config as e}from"../../config.min.mjs";import{FILL as t}from"../../constants.min.mjs";import{toFixed as n}from"./toFixed.min.mjs";import{escapeXml as r}from"../lang_string.min.mjs";import{isSafeSvgStyleValue as i}from"../internals/svgExportCheck.min.mjs";import{Color as a}from"../../color/Color.min.mjs";const o=e=>{let t=[`instantiated_by_use`,`style`,`id`,`class`];switch(e){case`linearGradient`:return t.concat([`x1`,`y1`,`x2`,`y2`,`gradientUnits`,`gradientTransform`]);case`radialGradient`:return t.concat([`gradientUnits`,`gradientTransform`,`cx`,`cy`,`r`,`fx`,`fy`,`fr`]);case`stop`:return t.concat([`offset`,`stop-color`,`stop-opacity`])}return t},s=(t,n=16)=>{let r=/\D{0,2}$/.exec(t),i=parseFloat(t),a=e.DPI;switch(r==null?void 0:r[0]){case`mm`:return i*a/25.4;case`cm`:return i*a/2.54;case`in`:return i*a;case`pt`:return i*a/72;case`pc`:return i*a/72*12;case`em`:return i*n;default:return i}},c=e=>{let[t,n]=e.trim().split(` `),[r,i]=(a=t)&&a!==`none`?[a.slice(1,4),a.slice(5,8)]:a===`none`?[a,a]:[`Mid`,`Mid`];var a;return{meetOrSlice:n||`meet`,alignX:r,alignY:i}},l=(e,t,n=!0)=>{let o,s;if(t)if(t.toLive)o=`url(#SVGID_${r(t.id)})`;else{let e=String(t);if(i(e)){let t=new a(e),n=t.getAlpha();o=t.toRgb(),n!==1&&(s=n.toString())}else o=new a(`black`).toRgb()}else o=`none`;return n?`${e}: ${o}; ${s?`${e}-opacity: ${s}; `:``}`:`${e}="${o}" ${s?`${e}-opacity="${s}" `:``}`},u=(r,{left:i,top:a,width:o,height:s},c=e.NUM_FRACTION_DIGITS)=>{let u=l(t,r,!1),[d,f,p,m]=[i,a,o,s].map(e=>n(e,c));return`<rect ${u} x="${d}" y="${f}" width="${p}" height="${m}"></rect>`};export{l as colorPropToSVG,u as createSVGRect,o as getSvgAttributes,c as parsePreserveAspectRatioAttribute,s as parseUnit}; //# sourceMappingURL=svgParsing.min.mjs.map