UNPKG

sp-image-editor

Version:

React component version of filerobot image editor (FIE).

1 lines 5.18 kB
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";var _excluded=["width","height","x","y","opacity","scaleX","scaleY"];function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}import{EDITOR_TO_CLOUDIMG_POSITIONS,ELLIPSE_CROP,TOOLS_IDS,WATERMARK_ANNOTATION_ID}from"./constants";import getImageSealingParams from"./getImageSealingParams";import mapCropBox from"./mapCropBox";import mapNumber from"./mapNumber";import rgbaToHexWithOpacity from"./rgbaToHexa";import toPrecisedFloat from"./toPrecisedFloat";var generateCropQuery=function(a,b,c,d){if(a.noEffect)return a.ratio.includes("=")?a.ratio:"gravity=".concat(a.ratio);var e=(d||{}).lockCropAreaAt,f=mapCropBox(a,b,c),g=f.x,h=f.y,i=f.width,j=f.height,k=a.ratio===ELLIPSE_CROP?"&radius=".concat(Math.max(i,j),"&force_format=png"):"";if(e){var l=e.split("-"),m=_slicedToArray(l,2),n=m[0],o=m[1],p="".concat(EDITOR_TO_CLOUDIMG_POSITIONS[n]).concat(EDITOR_TO_CLOUDIMG_POSITIONS[o]);return"gravity=".concat(p,"&aspect_ratio=").concat(toPrecisedFloat("string"==typeof a.ratio?i/j:a.ratio,2)).concat(k)}return"tl_px=".concat(g,",").concat(h,"&br_px=").concat(g+i,",").concat(h+j).concat(k)},generateResizeQuery=function(){var a=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},b=a.width,c=a.height;return"w=".concat(b,"&h=").concat(c)},generateRotationQuery=function(a){return"r=".concat(-a)},generateFlipQuery=function(a,b){return"flip=".concat(a?"x":"").concat(b?"y":"")},generateWatermarkQuery=function(a){var b,c=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},d=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},e=c.width,f=c.height,g=c.x,h=c.y,i=c.opacity,j=c.scaleX,k=void 0===j?1:j,l=c.scaleY,m=void 0===l?1:l,n=_objectWithoutProperties(c,_excluded),o=a.width/a.height,p=a.width*a.scaledBy,q=a.height*a.scaledBy,r=g*a.scaledBy,s=h*a.scaledBy,t="wat=1&wat_gravity=absolute&wat_pos=".concat(Math.floor(100*((r-(d.x||0))/p),2),"p,").concat(Math.floor(100*((s-(d.y||0))/q),2),"p");if(c.name===TOOLS_IDS.TEXT){var u,v=rgbaToHexWithOpacity(n.fill),w=v.hex,x=v.opacity;return"".concat(t,"&wat_text=").concat(n.text.replaceAll("\n",""),"&wat_font=").concat(n.fontFamily,"&wat_color=").concat(w,"&wat_opacity=").concat(null!==(u=null!==x&&void 0!==x?x:i)&&void 0!==u?u:1,"&wat_fontsize=").concat(n.fontSize,"max")}var y=(null===(b=n.image)||void 0===b?void 0:b.src)||n.image,z=!y.startsWith("blob:")&&y,A=toPrecisedFloat(100*(e/f>o?e*k/p:f*m/q),2);return"".concat(t,"&wat_opacity=").concat(i,"&wat_scale=").concat(A,"p").concat(z?"&wat_url=".concat(encodeURIComponent(z)):"")};export var finetuneNameToParamInfo={Brighten:{cloudimage:{name:"bright",min:-100,max:100},internal:{propName:"brightness",min:-1,max:1}},Contrast:{cloudimage:{name:"contrast",min:-100,max:100},internal:{propName:"contrast",min:-100,max:100}},Blur:{cloudimage:{name:"blur",min:0,max:100},internal:{propName:"blurRadius",min:0,max:100}}};var generateFinetuneQuery=function(a){var b=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},c=[];return a.forEach(function(a){var d=(a.finetuneName||a.name)&&finetuneNameToParamInfo[a.finetuneName||a.name];if(d){var e=toPrecisedFloat(mapNumber(b[d.internal.propName],d.internal.min,d.internal.max,d.cloudimage.min,d.cloudimage.max),2);c.push("".concat(d.cloudimage.name,"=").concat(e))}}),c.join("&")},operationsToCloudimageUrl=function(a,b,c,d,e){var f=a.token,g=a.domain,h=a.dontPrefixUrl,i=a.version,j=a.imageSealing,k=a.secureProtocol,l=b.imgSrc,m=b.adjustments,n=m.crop,o=m.rotation,p=m.isFlippedX,q=m.isFlippedY,r=b.resize,s=void 0===r?{}:r,t=b.finetunes,u=void 0===t?{}:t,v=b.finetunesProps,w=b.annotations,x=void 0===w?{}:w,y=h?"":"http".concat(k?"s":"","://").concat(f,".").concat(g.replace(/^(https?:\/\/)?(www\.)?|^\.|\/$/g,""),"/").concat(i?"".concat(i,"/"):""),z=[];n.width&&n.height&&(n.x||0===n.x)&&(n.y||0===n.y)&&z.push(generateCropQuery(n,c,d,e)),(s.width||s.height)&&z.push(generateResizeQuery(_objectSpread(_objectSpread({},d),s))),o&&z.push(generateRotationQuery(o)),(p||q)&&z.push(generateFlipQuery(p,q)),0<u.length&&v&&z.push(generateFinetuneQuery(u,v)),x[WATERMARK_ANNOTATION_ID]&&z.push(generateWatermarkQuery(c,x[WATERMARK_ANNOTATION_ID],n)),z.push("ci_url_encoded=1");var A=z.join("&");j.enable&&(A=getImageSealingParams(A,j,l)),A=A.replaceAll(" ","+");var B=!h&&"?"||-1===l.indexOf("?")?"?":"&";return"".concat(y).concat(h?l:encodeURIComponent(l)).concat(A?"".concat(B).concat(A.replace(/&$/,"")):"")};export default operationsToCloudimageUrl;