UNPKG

fabric

Version:

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

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