react-native-mask-segment-c.../dist/components/MaskSegmentCanvas.js

2 lines
24 KiB
JavaScript
Raw Normal View History

"use strict";var Ct=Object.create;var Rn=Object.defineProperty;var bt=Object.getOwnPropertyDescriptor;var vt=Object.getOwnPropertyNames;var Mt=Object.getPrototypeOf,xt=Object.prototype.hasOwnProperty;var It=(w,M)=>{for(var H in M)Rn(w,H,{get:M[H],enumerable:!0})},Vr=(w,M,H,Ke)=>{if(M&&typeof M=="object"||typeof M=="function")for(let re of vt(M))!xt.call(w,re)&&re!==H&&Rn(w,re,{get:()=>M[re],enumerable:!(Ke=bt(M,re))||Ke.enumerable});return w};var Bt=(w,M,H)=>(H=w!=null?Ct(Mt(w)):{},Vr(M||!w||!w.__esModule?Rn(H,"default",{value:w,enumerable:!0}):H,w)),Ft=w=>Vr(Rn({},"__esModule",{value:!0}),w);var Ot={};It(Ot,{default:()=>Lt});module.exports=Ft(Ot);var f=require("react/jsx-runtime"),e=require("react"),ne=require("react-native"),ee=require("react-native-gesture-handler"),U=require("react-native-reanimated"),Kr=Bt(require("../utils/opencvAdapter")),E=require("../utils/maskSegmentation"),Zr=require("../utils/wallTextureSplit"),Z=require("../utils/pngImage"),Me=require("../utils/resolveImageUrl"),Xr=require("../utils/compositePaintedImage"),Ve=require("../utils/exportUtils"),yn=require("../utils/freqLayerPrep"),$e=require("../utils/paintShaderRuntime"),h=require("../utils/maskSegmentRuntime"),d=require("@shopify/react-native-skia"),c=require("../utils/canvasGeometry");const Et=(0,e.forwardRef)(function(M,H){const{originUrl:Ke,maskUrl:re,originImgPath:Yr,maskImgPath:jr,maskConfig:kn,pipelinePreset:Yn,pipelineConfig:jn,paintConfig:wn,interactionConfig:Sn,semanticColors:Pn,regionOutlineColor:Cn,initialSession:xe,initialPaintColor:Qr,initialPaintConfigJson:et,disabled:Ie=!1,style:nt,onWatch:bn,onPaintCallback:vn,onError:Mn,autoExportOnReady:Qn,onExported:xn}=M,te=Ke??Yr??"",oe=re??jr??"",In=(0,e.useMemo)(()=>Pn?{...kn,semanticColors:Pn}:kn,[kn,Pn]),Ze=(0,e.useMemo)(()=>Cn?{...wn,regionOverlayFill:Cn}:wn,[wn,Cn]),[Be,er]=(0,e.useState)(""),[Fe,nr]=(0,e.useState)(""),[A,rt]=(0,e.useState)(Be),[z,tt]=(0,e.useState)(Fe),rr=(0,e.useRef)(""),tr=(0,e.useRef)(""),Xe=(0,e.useMemo)(()=>(0,h.resolvePipelineConfig)(Yn,jn),[Yn,jn]),Bn=(0,e.useRef)((0,h.createRuntimeConfig)({maskConfig:In,pipelineConfig:Xe,paintConfig:Ze,interactionConfig:Sn})),or=(0,e.useRef)(null),sr=(0,e.useRef)(null);(0,e.useEffect)(()=>{const n=or.current,t=Ze||{},r=!n||["colorBaseOpacity","lLightOpacity","textureOpacity","lLowBlurKernel","lLowContrast","lLowBrightness","lHighGain","maskFeatherColor","maskFeatherTexture","regionOverlayFill"].some(s=>t[s]!==n[s]),i=JSON.stringify(Xe),a=sr.current!==i;(r||a)&&(r&&(or.current={...t}),a&&(sr.current=i),Bn.current=(0,h.setMaskSegmentRuntimeConfig)({maskConfig:In,pipelineConfig:Xe,paintConfig:Ze,interactionConfig:Sn}))},[In,Xe,Ze,Sn]);const ir=Bn.current.paint.palette,ar=(0,h.getMaskSegmentRuntimeConfig)().paint,Wt=(0,h.getMaskSegmentRuntimeConfig)().interaction,cr=(0,e.useRef)(bn),Fn=(0,e.useRef)(vn),En=(0,e.useRef)(Mn),ur=(0,e.useRef)(xn);(0,e.useEffect)(()=>{cr.current=bn,Fn.current=vn,En.current=Mn,ur.current=xn},[bn,vn,Mn,xn]);const Ln=(0,e.useRef)(0),lr=(0,e.useRef)(null),On=(0,e.useRef)(null),P=(0,e.useCallback)((n,t)=>{const o=[n,t?.regionCount??"",t?.maskPathsReady??"",t?.freqLayersReady??"",t?.errorMessage??""].join("|");if(On.current===o)return;On.current=o,lr.current=n;const r=Ln.current?performance.now()-Ln.current:0;cr.current?.(n,r,t)},[]),ae=(0,e.useCallback)((n,t)=>{P("error",{errorMessage:n}),En.current?En.current(n,t):__DEV__&&console.error("[MaskSegment]",n,t)},[P]),[ce,fr]=(0,e.useState)(Qr??null),ue=(0,e.useRef)(et),gr=(0,e.useRef)(te),mr=(0,e.useRef)(oe);(0,e.useEffect)(()=>{gr.current=te,mr.current=oe},[te,oe]),(0,e.useEffect)(()=>{let n=!1;if(!te||!oe){er(""),nr("");return}return(async()=>{try{const[t,o]=await Promise.all([(0,Me.resolveImageUrl)(te,`origin_${(0,Me.hashUrl)(te)}.png`),(0,Me.resolveImageUrl)(oe,`mask_${(0,Me.hashUrl)(oe)}.png`)]);n||(er(t),nr(o))}catch(t){if(!n){const o=t instanceof Error?t.message:String(t);ae(o,t)}}})(),()=>{n=!0}},[te,oe,ae]),(0,e.useEffect)(()=>{rt(Be),tt(Fe),Be&&Fe&&(0,Z.prewarmPngBgrCache)([Be,Fe])},[Be,Fe]),(0,e.useEffect)(()=>{rr.current=A||"",tr.current=z||""},[