UNPKG

react-filerobot-video-editor

Version:

React component version of filerobot video editor (FVE).

1 lines 5.44 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){var b=a.crop,c=a.previewDimensions,d=a.originalDimensions,e=a.cropConfig,f=a.isFlippedX,g=a.isFlippedY;if(b.noEffect)return b.ratio.includes("=")?b.ratio:"gravity=".concat(b.ratio);var h=(e||{}).lockCropAreaAt,i=mapCropBox(b,c,d),j=i.x,k=i.y,l=i.width,m=i.height,n=b.ratio===ELLIPSE_CROP?"&radius=".concat(Math.max(l,m),"&force_format=png"):"";if(h){var o=h.split("-"),p=_slicedToArray(o,2),q=p[0],r=p[1],s="".concat(EDITOR_TO_CLOUDIMG_POSITIONS[q]).concat(EDITOR_TO_CLOUDIMG_POSITIONS[r]);return"gravity=".concat(s,"&aspect_ratio=").concat(toPrecisedFloat("string"==typeof b.ratio?l/m:b.ratio,2)).concat(n)}var t=f?d.width-(j+l):j,u=g?d.height-(k+m):k;return"tl_px=".concat(t,",").concat(u,"&br_px=").concat((f?t:j)+l,",").concat((g?u:k)+m).concat(n)},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="wat=1&wat_gravity=absolute&wat_pos=".concat(Math.floor(100*((g-(d.x||0))/a.width),2),"p,").concat(Math.floor(100*((h-(d.y||0))/a.height),2),"p");if(c.name===TOOLS_IDS.TEXT){var q,r=rgbaToHexWithOpacity(n.fill),s=r.hex,t=r.opacity;return"".concat(p,"&wat_text=").concat(n.text.replaceAll("\n",""),"&wat_font=").concat(n.fontFamily,"&wat_color=").concat(s,"&wat_opacity=").concat(null!==(q=null!==t&&void 0!==t?t:i)&&void 0!==q?q:1,"&wat_fontsize=").concat(n.fontSize,"max")}var u=(null===(b=n.image)||void 0===b?void 0:b.src)||n.image,v=!u.startsWith("blob:")&&u,w=toPrecisedFloat(100*(e/f>o?e*k/a.width:f*m/a.height),2);return"".concat(p,"&wat_opacity=").concat(i,"&wat_scale=").concat(w,"p").concat(v?"&wat_url=".concat(encodeURIComponent(v)):"")};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({crop:n,previewDimensions:c,originalDimensions:d,cropConfig:e,isFlippedX:p,isFlippedY:q})),(s.width||s.height)&&z.push(generateResizeQuery(_objectSpread({width:null===d||void 0===d?void 0:d.width,height:null===d||void 0===d?void 0:d.height},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(d,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;