1import{d as ea,x as aa,i as I,w as re,z as ta,c as x,F as B,G as d,T as la,ax as xa,S as f,u as n,g as oa,h as T,A as ka,N as S,ag as q,o as v,a as i,E as ae,K as Ue,aj as wa,M as Q,t as b,b as G,bA as Ca,r as na,D as Ke,b8 as Ma,bG as ve,bd as He,aI as Sa,_ as ra,R as xe,X as Pa,br as Ia,aB as Ua}from"./index-4KLvpQhX.js";import{u as Fa}from"./index-DgGtdv10.js";import{_ as sa}from"./Image.vue_vue_type_script_setup_true_lang-BLRpYYqy.js";import{j as ja,f as Aa}from"./form-mkYLIy9B.js";import{B as ke}from"./Button-s86KR94V.js";import{I as $a,M as Ra,a as Ta}from"./MaterialLocalUploadModal-DGDTLDEm.js";import{I as Ba}from"./ImageStyleSelector-XKaM_YCl.js";import{_ as We}from"./ResolutionAspectRatioSelector.vue_vue_type_script_setup_true_lang-CTKVgN5m.js";import{u as Ea}from"./model-BbPBrhbB.js";import{o as La}from"./externalLinks-Bwr2es8R.js";import{u as Oa,l as Na}from"./useModelCost-BPjtso10.js";import{f as De,p as je,d as Ga,a as Da}from"./imageUrlList-BNFAdSYP.js";import{g as za,i as Qa}from"./projectVideoType-DFIwTsJB.js";import{A as ze}from"./AssetLibraryPickerModal-B3liwJGR.js";import{_ as qa}from"./FirstFrameParamGroup.vue_vue_type_script_setup_true_lang-BwEXERCI.js";import{_ as Va}from"./OverlayPopupRoot.vue_vue_type_script_setup_true_lang-BT-58oc_.js";import{M as Ja}from"./ModelFeatureSelect-BmJEe9Z4.js";import{r as Ya}from"./modelFeature-TH2ac-6y.js";import{n as Ka,c as Ha,g as Wa,d as Xe}from"./index-CmpHKs1S.js";import{e as Oe,p as Ne,j as Ge,b as Xa}from"./shootParamsApi-DI8cM9oJ.js";import{M as fe,C as Za}from"./material-BzL5pxoi.js";import{F as et,_ as at}from"./index-CI9fdvcw.js";import{I as tt,_ as lt}from"./index-C9qvTwWr.js";import{_ as ot}from"./index-BH459x0u.js";import{I as Ze}from"./pointsWording-BaB7tGdr.js";import{_ as nt}from"./index-BWzhVLH5.js";import{S as rt}from"./SearchInput-Zru72plE.js";import{b as st}from"./file-DMK2VniK.js";import{S as it}from"./index-94ugU9m-.js";import{_ as ut}from"./index-D98rXxMp.js";const ct={class:"min-h-0 min-w-0 h-full flex flex-col p-10 bg-(--color-bg-1) rounded-[10px] overflow-hidden"},dt={class:"min-h-0 h-full flex flex-col bg-(--color-bg-1) rounded-[10px] overflow-hidden"},mt={key:0,class:"mb-4"},pt={class:"text-white text-sm mb-2 block"},ft={class:"flex flex-wrap gap-2.5"},vt=["onClick"],gt={class:"flex items-center justify-between w-full mb-1",style:{"margin-top":"10px"}},_t={class:"reference-ref-pair flex flex-row flex-nowrap items-stretch gap-3"},yt={class:"flex h-[132px] w-[102px] shrink-0 [&_.ant-upload]:block [&_.ant-upload]:h-full"},ht={key:0},bt={style:{"margin-top":"8px"}},xt={class:"flex items-center justify-center w-25! h-25!"},kt={key:0},wt={class:"flex items-center justify-center"},Ct={class:"mt-2 text-xs leading-tight"},Mt={class:"flex justify-end gap-2 p-5 border-t border-gray-700"},St=["title"],Pt={key:0,class:"flex items-center"},It={class:"model-cost-num !m-0 !ml-1"},Ut={key:1,class:"ri-sparkling-2-line"},Ft=["title"],jt={key:0,class:"flex items-center"},At={class:"model-cost-num !m-0 !ml-1"},$t={key:1,class:"ri-sparkling-2-line"},Rt=ea({__name:"CreateModal",props:{prefixCls:{},visible:{type:Boolean},open:{type:Boolean},confirmLoading:{type:Boolean},title:{},closable:{type:Boolean},closeIcon:{},onOk:{},onCancel:{},"onUpdate:visible":{},"onUpdate:open":{},onChange:{},afterClose:{},centered:{type:Boolean},width:{},footer:{},okText:{},okType:{},cancelText:{},icon:{},maskClosable:{type:Boolean},forceRender:{type:Boolean},okButtonProps:{},cancelButtonProps:{},destroyOnClose:{type:Boolean},wrapClassName:{},maskTransitionName:{},transitionName:{},getContainer:{type:[String,Boolean,Function]},zIndex:{},bodyStyle:{},maskStyle:{},mask:{type:Boolean},keyboard:{type:Boolean},wrapProps:{},focusTriggerAfterClose:{type:Boolean},modalRender:{},mousePosition:{}},emits:["created","updated","update:open","prev","next","generating-background"],setup(Ae,{expose:$e,emit:te}){const ge=Ae,y=te,we=ve("$el"),{t:r}=aa(),A=oa(),k=T(()=>Qa(A)),E=Ea(),L=T(()=>{var t;return((t=E.imageModel[0])==null?void 0:t.model_value)||""}),P=T(()=>E.imageModel.find(t=>t.model_value===a.value.model_id)||null),V=ve("sceneFormRef"),a=I({project_id:A.params.id,id:"",description:"",image_url:void 0,mode:"ai_generate",name:"",model_id:"",image_style:"",resolution:"",aspect_ratio:"",imageQuality:"",size:"",reference_image_path:"",reference_image_upload:[],prompt:"",shoot_params:{}});re(k,t=>{t&&(a.value.mode="ai_generate"),a.value.num_images=t?5:1},{immediate:!0});const D=ve("imageViewRef"),$=I(0),K=T(()=>je(a.value.image_url)),J=T(()=>K.value[0]||""),se=T(()=>!!a.value.id&&a.value.mode==="upload"),Re=T(()=>{var t;return[1,2].includes($.value)?((t=D.value)==null?void 0:t.currentToolParams)||{}:a.value}),ie=T(()=>{var e,s;const t=(s=(e=P.value)==null?void 0:e.model_param)==null?void 0:s.imageQuality;return!Array.isArray(t)||!t.length?[]:t.map(u=>Sa.find(_=>_.value===u)).filter(u=>!!u)}),H=T(()=>ie.value.length>0),Te=T(()=>H.value&&a.value.imageQuality?{properties:a.value.imageQuality}:{}),{estimatedCost:ue,canAfford:Ce,ensureCanAfford:_e,loading:O}=Oa(Re,P,Te),Be=T(()=>({name:[{required:!0,message:r("material.scene.createModal.rules.nameRequired")},{max:fe,message:r("material.scene.createModal.rules.nameMax",{max:fe})}],mode:[{required:!0,message:r("material.scene.createModal.rules.modeRequired")}],description:[{required:!0,message:r("material.scene.createModal.rules.descriptionRequired")}],image_url:[{required:!0,message:r("material.scene.createModal.rules.imageRequired")}],model_id:[{required:!0,message:r("material.scene.createModal.rules.modelRequired")}]})),N=I(!1),Y=I(""),R=I(!1);let W=null,ce=!1;const de=I(!1),X=ve("saveAsFormRef"),z=I({name:""}),Me=T(()=>({name:[{required:!0,message:r("material.scene.createModal.rules.nameRequired")},{max:fe,message:r("material.scene.createModal.rules.nameMax",{max:fe})}]})),ye=I(!1);let he=null;const Z=I("upload"),me=I(!1),pe=I(!1),le=I(null);function Se(t){t!=null&&t.initialMode&&(o(t.initialMode),t.openAssetPicker&&ka(()=>{me.value=!0}))}function o(t){if(t==="ai_generate"){a.value.mode="ai_generate";return}a.value.mode="upload",Z.value=t==="asset"?"asset":"upload"}function l(t){const e=De(t.fileUrl)||t.fileUrl;if(!e){S.warning(r("project.fast.fusionEditor.assetNoImage"));return}a.value.mode="upload",Z.value="asset",a.value.image_url=e,S.success(r("material.scene.createModal.usedAssetAsSceneImage"))}function m(t){var s;const e=De(t.fileUrl)||t.fileUrl;if(!e){S.warning(r("project.fast.fusionEditor.assetNoImage"));return}a.value.reference_image_path=e,a.value.reference_image_upload=[{uid:+new Date+Math.random().toString(36).substring(2),name:((s=t.name)==null?void 0:s.trim())||r("material.scene.createModal.referenceImageAlt"),url:e,status:"done"}],S.success(r("material.scene.createModal.usedAssetAsReference"))}function g(t){var s;const e=(s=t??a.value.reference_image_path)==null?void 0:s.trim();e?a.value.reference_image_upload=[{uid:+new Date+Math.random().toString(36).substring(2),name:r("material.scene.createModal.unnamed"),url:e,status:"done"}]:a.value.reference_image_upload=[]}re(()=>a.value.reference_image_upload,t=>{var e,s,u;t!=null&&t.length?a.value.reference_image_path=((s=(e=t[0])==null?void 0:e.response)==null?void 0:s.url)||((u=t[0])==null?void 0:u.url)||"":a.value.reference_image_path=""}),re(()=>[a.value.resolution,a.value.aspect_ratio],t=>{var s,u,_;if(((s=t[1])==null?void 0:s.toLowerCase())==="adaptive"){a.value.size="";return}const e=(_=(u=P.value)==null?void 0:u.model_param)==null?void 0:_.size[`${t[0]}-${t[1]}`];a.value.size=e??""}),re(P,t=>{t&&h()},{immediate:!0}),re(()=>E.imageModel,t=>{var e;a.value.id||!a.value.model_id&&(t!=null&&t.length)&&(a.value.model_id=((e=t[0])==null?void 0:e.model_value)||"")},{immediate:!0}),re(()=>ge.open,t=>{t&&!a.value.id&&(R.value=!1,W=null,Object.assign(a.value,{project_id:A.params.id,id:"",description:"",image_url:void 0,mode:"ai_generate",name:"",model_id:L.value,image_style:"",resolution:"",aspect_ratio:"",imageQuality:"",size:"",reference_image_path:"",reference_image_upload:[],prompt:"",shoot_params:{}}),Z.value="upload",a.value.num_images=k.value?5:1,h(),Se(le.value||void 0),le.value=null)});function h(){var u,_,w;const t=P.value;if(!(t!=null&&t.model_param))return;
1const e=((u=t.model_param)==null?void 0:u.resolution)||[],s=((_=t.model_param)==null?void 0:_.aspect_radio)||((w=t.model_param)==null?void 0:w.aspect_ratio)||[];e.length&&!e.includes(a.value.resolution||"")&&(a.value.resolution=e[0]||""),s.length&&!s.some(M=>(M||"").toLowerCase()===(a.value.aspect_ratio||"").toLowerCase())&&(a.value.aspect_ratio=s[0]||""),c()}function c(){var s;const t=ie.value;if(!t.length){a.value.imageQuality="";return}const e=t.map(u=>u.value);(!a.value.imageQuality||!e.includes(a.value.imageQuality))&&(a.value.imageQuality=((s=t[0])==null?void 0:s.value)??"")}ta(()=>{E.getModelList("image").then(()=>{E.imageModel.length&&(a.value.model_id||(a.value.model_id=L.value,h()))})}),$e({setFormData:Ee});function C(t){return t?t.replace(/\\n/g,` 2`).replace(/\\t/g," ").replace(/\\r/g,"\r"):""}async function ee(){var t;try{const e=await q.Get("/api/v1/ai-prompts/",{params:{prompt_key:"scene_gen"}});if((e==null?void 0:e.code)===200&&e.data&&e.data.length>0){const s=((t=e.data[0])==null?void 0:t.dict_value)||"";Y.value=C(s)}else Y.value=""}catch(e){console.error("è·ååºæ¯æç¤ºè¯å¤±è´¥:",e),Y.value=""}}async function oe(){var t;try{N.value=!0;const e=((t=a.value.prompt)==null?void 0:t.trim())||Y.value,s=await q.Post("/api/v1/ai/prompt/polish",ja({payload:"polish_scene_gen",content:e}));a.value.prompt=s.data||a.value.prompt||""}catch(e){console.error("æ¶¦è²æç¤ºè¯å¤±è´¥",e)}finally{N.value=!1}}async function Ee(t,e){if(le.value=t?null:e||null,t){const s=Ka(t);Object.assign(a.value,s),g(s.reference_image_path),k.value&&(a.value.mode="ai_generate"),a.value.shoot_params=Oe(s.composition_params),a.value.imageQuality=Ne(s.composition_params),!!!a.value.image_url&&(e!=null&&e.model_id)&&(a.value.model_id=e.model_id),!a.value.resolution&&(e!=null&&e.resolution)&&(a.value.resolution=e.resolution),!a.value.aspect_ratio&&(e!=null&&e.aspect_ratio)&&(a.value.aspect_ratio=e.aspect_ratio),await ee()}else{const s=(e==null?void 0:e.initialMode)||"ai_generate";Object.assign(a.value,{project_id:A.params.id,id:"",description:"",image_url:void 0,mode:s==="ai_generate"?"ai_generate":"upload",name:"",model_id:(e==null?void 0:e.model_id)||L.value,image_style:"",resolution:(e==null?void 0:e.resolution)||"",aspect_ratio:(e==null?void 0:e.aspect_ratio)||"",imageQuality:"",size:"",reference_image_path:"",reference_image_upload:[],prompt:"",shoot_params:{}}),Z.value=s==="asset"?"asset":"upload",(!(e!=null&&e.resolution)||!(e!=null&&e.aspect_ratio))&&h(),await ee(),ge.open&&(Se(e),le.value=null)}}async function ia(){const t=document.createElement("input");t.type="file",t.accept=".JPG,.JPEG,.PNG,.WebP,.BMP,.TIFF,.GIF",t.onchange=async e=>{var s,u;try{const _=(s=e.target.files)==null?void 0:s[0];if(!_)return;if(_.size>30*1024*1024){S.error(r("material.scene.createModal.fileSizeError"));return}const w=new FormData;w.append("file",_),w.append("category","scene"),w.append("token",sessionStorage.getItem("access_token")||""),a.value.id&&w.append("record_id",a.value.id);const M=await q.Post("/api/v1/storage/upload",w);a.value.image_url=((u=M.data)==null?void 0:u.url)||""}catch(_){console.error(_)}},t.click()}function ua(t){const{file:e,onSuccess:s,onError:u,onProgress:_}=t;if(!(e instanceof File))return u==null||u(new Error(r("material.scene.createModal.fileTypeError"))),{abort:()=>{}};const w=new FormData;w.append("file",e),w.append("category","scene"),w.append("token",sessionStorage.getItem("access_token")||"");const M=q.Post("/api/v1/storage/upload",w);return M.onUpload(F=>{_==null||_({percent:Math.round(F.loaded/F.total*100)})}),M.then(F=>{s==null||s(F.data)}).catch(F=>{u==null||u(F)}),{abort:()=>M.abort()}}function ca(t){const e=t.type==="image/jpeg"||t.type==="image/png";e||S.error(r("generate.image.message.formatError"));const s=((t==null?void 0:t.size)||0)/1024/1024<30;return s||S.error(r("generate.image.message.sizeError")),e&&s}async function Qe(t=!1){var e,s,u,_;try{if(!(se.value?await((e=V.value)==null?void 0:e.validate(["name"])):await((s=V.value)==null?void 0:s.validate())))return;R.value=!0;let M;if(se.value){const F=await Ha({id:a.value.id,name:a.value.name.trim()});M={code:F.code,message:F.message,data:Object.assign({},a.value,F.data||{},{name:a.value.name.trim()})},y("updated",M.data)}else if(a.value.id){const F=((u=a.value.prompt)==null?void 0:u.trim())||Y.value,ne=Ge({...a.value,prompt:F});(a.value.mode==="upload"||a.value.image_url)&&(ne.status=3),M=await q.Put(`/api/v1/scenes/${a.value.id}`,ne),y("updated",M.data)}else{const F=((_=a.value.prompt)==null?void 0:_.trim())||Y.value,ne=Ge({...a.value,prompt:F});(a.value.mode==="upload"||a.value.image_url)&&(ne.status=3),M=await q.Post("/api/v1/scenes/",ne),t||y("created",M.data)}Object.assign(a.value,M.data),a.value.shoot_params=Oe(M.data.composition_params),a.value.imageQuality=Ne(M.data.composition_params),t||(S.success(r("material.scene.createModal.saveSuccess")),R.value=!1,y("update:open",!1))}catch(w){throw console.error(w),S.error(r("material.scene.createModal.saveFailed")),R.value=!1,w}}async function da(){var t;if(_e()){ce=!1;try{R.value=!0;const e=!a.value.id,s=a.value.imageQuality||(((t=a.value.resolution)==null?void 0:t.toUpperCase())==="1K"?"low":void 0);await Qe(!0),W=q.Post(`/api/v1/scenes/${a.value.id}/generate-image`,{...Xa({videoType:za(A),shootParams:a.value.shoot_params,model_id:a.value.model_id,resolution:a.value.resolution,aspect_ratio:a.value.aspect_ratio,size:a.value.size,model:P.value,...k.value?{numImages:5}:{}}),...s?{other_attributes:JSON.stringify({quality:s})}:{}});const u=await W;if(ce)return;Object.assign(a.value,u.data),a.value.shoot_params=Oe(u.data.composition_params),a.value.imageQuality=Ne(u.data.composition_params),y("updated",u.data),e&&y("created",u.data,{fromAiGenerate:!0})}catch(e){ce||(console.error(e),S.error(r("material.scene.createModal.generateFailed")))}finally{R.value=!1,W=null}}}function ma(){var t,e;if(R.value&&W){ce=!0,y("generating-background",{scene:{...a.value},promise:W}),y("update:open",!1),(t=V.value)==null||t.clearValidate();return}y("update:open",!1),(e=V.value)==null||e.clearValidate()}function pa(){var t,e;(e=(t=we.value)==null?void 0:t.querySelector("#form_item_reference_image_upload"))==null||e.click()}function qe(t){y(t)}function fa(t){he=t,z.value.name="",de.value=!0}async function va(){var t,e;try{if(!await((t=X.value)==null?void 0:t.validate()))return;ye.value=!0;const u=new FormData;u.append("file",he),u.append("category","scene"),u.append("token",sessionStorage.getItem("access_token")||"");const _=await q.Post("/api/v1/storage/upload",u),w=Ge(Object.assign({},a.value,z.value,{image_url:_.data.url,status:3})),M=await q.Post("/api/v1/scenes/",w);y("created",M.data),S.success(r("material.scene.createModal.saveAsSuccess")),de.value=!1}catch(s){console.error(s)}finally{ye.value=!1,(e=D.value)==null||e.cancel()}}function ga(){a.value.description=r("material.scene.createModal.promptFrameTemplate")}function _a(){var t;(t=D.value)==null||t.cancel()}function ya(){var t;_e()&&((t=D.value)==null||t.handleGenerate())}function ha(t){var u,_;const e=je(a.value.image_url),s=((_=(u=D.value)==null?void 0:u.getGallerySelectedIndex)==null?void 0:_.call(u))??0;if(e.length>1){const w=[...e];s>=0&&s<w.length&&(w[s]=t),a.value.image_url=Ga(w)}else a.value.image_url=t}return(t,e)=>{const s=tt,u=at,_=wa,w=lt,M=nt,F=sa,ne=ot,Ve=et,Je=la,Pe=He("no-space"),ba=He("fill-placeholder");return v(),x(B,null,[d(Je,xa({...ge,visible:void 0},{mask:!1,wrapClassName:t.$style.modal,footer:!1,destroyOnClose:""}),{default:f(()=>[i("div",{ref_key:"$el",ref:we,class:"grid grid-cols-[minmax(0,1fr)_500px] gap-5 w-full flex-1 min-h-0 p-5 box-border"},[i("div",ct,[(v(),ae($a,{class:"min-h-0 flex-1 w-full",ref_key:"imageViewRef",ref:D,key:`${a.value.id||"new"}-${K.value[0]||""}`,src:J.value,"gallery-urls":K.value,"show-edit-tools":!se.value,"edit-state":$.value,"onUpdate:editState":e[0]||(e[0]=p=>$.value=p),onPrev:e[1]||(e[1]=p=>qe("prev")),onNext:e[2]||(e[2]=p=>qe("next")),onCoppered:fa,onUpdated:ha},null,8,["src","gallery-urls","show-edit-tools","edit-state"]))]),i("div",dt,[d(Va,{class:"flex-1 p-5 overflow-y-auto"},{default:f(()=>[d(Ve,{model:a.value,rules:Be.value,ref_key:"sceneFormRef",ref:V,size:"small",layout:"vertical"},{default:f(()=>[d(u,{label:n(r)("material.scene.createModal.nameLabel"),name:"name"},{default:f(()=>[Ue(d(s,{value:a.value.name,"onUpdate:value":e[3]||(e[3]=p=>a.value.name=p),maxlength:n(fe),placeholder:n(r)("material.scene.createModal.namePlaceholder")},null,8,["value","maxlength","placeholder"]),[[Pe]])]),_:1},8,["label"]),a.value.mode==="upload"&&!se.value?(v(),ae(u,{key:0,label:n(r)("material.scene.createModal.sceneImageLabel"),name:"image_url"},{default:f(()=>[d(_,{type:"primary",onClick:e[4]||(e[4]=p=>Z.value==="asset"?me.value=!0:ia())},{default:f(()=>[Q(b(Z.value==="asset"?n(r)("project.fast.fusionEditor.selectAsset"):n(r)("material.scene.createModal.upload")),1)]),_:1})]),_:1},8,["label"])):G("",!0),a.value.mode==="ai_generate"?(v(),x(B,{key:1},[d(u,{label:n(r)("generate.image.params.model"),name:"model_id"},{default:f(()=>[d(Ja,{"model-value":a.value.model_id,"onUpdate:modelValue":e[5]||(e[5]=p=>
2a.value.model_id=p),"get-popup-container":n(Ca),options:n(E).imageModel.map(p=>({value:p.model_value,label:p.model_name,feature:n(Ya)(p)})),placeholder:n(r)("generate.image.params.modelPlaceholder"),class:"w-full!"},null,8,["model-value","get-popup-container","options","placeholder"])]),_:1},8,["label"]),d(u,{name:"resolution",class:"!mb-0"},{default:f(()=>{var p,j,Ie,be,Le,Ye;return[d(We,{"show-aspect-ratio":!1,"resolution-options":(((j=(p=P.value)==null?void 0:p.model_param)==null?void 0:j.resolution)||[]).map(U=>({value:U,label:U})),"aspect-ratio-options":[],resolution:a.value.resolution||"","aspect-ratio":"","show-labels":!0,"onUpdate:resolution":e[6]||(e[6]=U=>a.value.resolution=U)},null,8,["resolution-options","resolution"]),H.value?(v(),x("div",mt,[i("label",pt,b(n(r)("generate.image.params.imageQuality")),1),i("div",ft,[(v(!0),x(B,null,na(ie.value,U=>(v(),x("div",{key:U.value,class:Ke(["flex-1 min-w-0 flex items-center justify-center py-2 px-4 rounded-lg border transition-all duration-200 text-center cursor-pointer",a.value.imageQuality===U.value?"border-blue-500 bg-(rgba(66,138,245,0.15)) text-blue-500":"border-[#535353] bg-[#141414] text-gray-400 hover:border-blue-500 hover:text-blue-500"]),onClick:ul=>a.value.imageQuality=U.value},b(n(r)(U.i18nKey)),11,vt))),128))])])):G("",!0),d(We,{"show-resolution":!1,"resolution-options":[],"aspect-ratio-options":(((be=(Ie=P.value)==null?void 0:Ie.model_param)==null?void 0:be.aspect_radio)||((Ye=(Le=P.value)==null?void 0:Le.model_param)==null?void 0:Ye.aspect_ratio)||[]).map(U=>({value:U,label:(U==null?void 0:U.toLowerCase())==="adaptive"?n(r)("generate.image.params.aspectRatioSmart"):U})),resolution:"","aspect-ratio":a.value.aspect_ratio||"","show-labels":!0,"onUpdate:aspectRatio":e[7]||(e[7]=U=>a.value.aspect_ratio=U)},null,8,["aspect-ratio-options","aspect-ratio"])]}),_:1}),d(qa,{columns:3,"show-lens-movement":!1,"show-special-shooting":!1,"model-value":a.value.shoot_params??{},"onUpdate:modelValue":e[8]||(e[8]=p=>a.value.shoot_params=p)},null,8,["model-value"]),d(u,{name:"description"},{label:f(()=>[i("div",null,[i("span",null,b(n(r)("material.scene.createModal.descriptionLabel")),1),d(_,{type:"link",class:"ml-2",size:"small",onClick:e[9]||(e[9]=p=>ga())},{default:f(()=>[i("span",null,b(n(r)("material.scene.createModal.usePromptFrame")),1)]),_:1})])]),default:f(()=>[Ue(d(w,{rows:6,value:a.value.description,"onUpdate:value":e[10]||(e[10]=p=>a.value.description=p),placeholder:n(r)("material.scene.createModal.descriptionPlaceholder")},null,8,["value","placeholder"]),[[Pe]])]),_:1}),d(u,{label:n(r)("generate.image.params.style"),name:"image_style"},{default:f(()=>[d(Ba,{value:a.value.image_style,"onUpdate:value":e[11]||(e[11]=p=>a.value.image_style=p)},null,8,["value"])]),_:1},8,["label"]),d(u,{name:"prompt"},{default:f(()=>[i("div",gt,[i("div",null,[i("span",null,b(n(r)("project.fast.fusionEditor.promptTitle")),1),d(_,{type:"link",class:"ml-2",size:"small",disabled:!a.value.prompt,loading:N.value,onClick:e[12]||(e[12]=p=>oe())},{icon:f(()=>[...e[23]||(e[23]=[i("i",{class:"ri-sparkling-2-line mr-1"},null,-1)])]),default:f(()=>[i("span",null,b(n(r)("project.fast.fusionEditor.polishPrompt")),1)]),_:1},8,["disabled","loading"])]),n(Ma)?(v(),ae(_,{key:0,type:"link",class:"ml-2",size:"small",onClick:e[13]||(e[13]=p=>n(La)("PromptLibrary"))},{icon:f(()=>[...e[24]||(e[24]=[i("i",{class:"ri-book-read-line mr-1"},null,-1)])]),default:f(()=>[i("span",null,b(n(r)("project.fast.fusionEditor.promptLibrary")),1)]),_:1})):G("",!0)]),Ue(d(w,{rows:8,value:a.value.prompt,"onUpdate:value":e[14]||(e[14]=p=>a.value.prompt=p),maxlength:5e3,"show-count":"",disabled:N.value,placeholder:Y.value||n(r)("material.scene.createModal.promptPlaceholderFallback")},null,8,["value","disabled","placeholder"]),[[Pe],[ba]])]),_:1}),d(u,{name:"form_item_reference_image_upload",label:n(r)("generate.image.params.reference")},{default:f(()=>{var p;return[i("div",_t,[i("div",yt,[d(ne,{"file-list":a.value.reference_image_upload,"onUpdate:fileList":e[16]||(e[16]=j=>a.value.reference_image_upload=j),accept:".JPG,.JPEG,.PNG,.WebP,.BMP,.TIFF,.GIF","custom-request":ua,"before-upload":ca,maxCount:1,"list-type":"picture-card",class:"reference-ref-upload !h-full !w-full [&_.ant-upload-list-item-container]:w-25.5! [&_.ant-upload-list-item-container]:h-33!"},{itemRender:f(({file:j,actions:Ie})=>{var be;return[i("div",null,[i("div",xt,[j.status==="error"?(v(),x("span",kt,b(n(r)("material.scene.createModal.uploadFailed")),1)):j.status==="uploading"?(v(),ae(M,{key:1,type:"circle",size:"small",percent:j.percent},null,8,["percent"])):(v(),ae(F,{key:2,"object-fit":"contain",src:((be=j.response)==null?void 0:be.url)||j.url,alt:n(r)("material.scene.createModal.referenceImageAlt"),class:"w-25! h-25! object-contain"},null,8,["src","alt"]))]),i("div",wt,[d(_,{type:"link",class:"text-center px-2!",onClick:e[15]||(e[15]=Le=>pa())},{default:f(()=>[Q(b(n(r)("common.reupload")),1)]),_:1}),d(_,{danger:"",type:"link",class:"text-center px-2!",onClick:Ie.remove},{default:f(()=>[Q(b(n(r)("common.delete")),1)]),_:1},8,["onClick"])])])]}),default:f(()=>{var j;return[(((j=a.value.reference_image_upload)==null?void 0:j.length)??0)<1?(v(),x("div",ht,[e[25]||(e[25]=i("i",{class:"ri-upload-line"},null,-1)),i("div",bt,b(n(r)("project.fast.fusionEditor.uploadImage")),1)])):G("",!0)]}),_:1},8,["file-list"])]),(((p=a.value.reference_image_upload)==null?void 0:p.length)??0)<1?(v(),x("button",{key:0,t
2ype:"button",class:"reference-asset-pick-btn flex h-[132px] w-[102px] min-w-[102px] shrink-0 flex-col items-center justify-center rounded-lg border border-dashed border-white/35 bg-white/[0.03] p-1 box-border cursor-pointer text-white/90 transition-colors hover:border-white/50 hover:bg-white/[0.08] hover:text-white",onClick:e[17]||(e[17]=j=>pe.value=!0)},[e[26]||(e[26]=i("i",{class:"ri-folder-image-line text-2xl leading-none"},null,-1)),i("span",Ct,b(n(r)("project.fast.fusionEditor.selectAsset")),1)])):G("",!0)])]}),_:1},8,["label"])],64)):G("",!0)]),_:1},8,["model","rules"])]),_:1}),i("div",Mt,[[1,2].includes($.value)?(v(),x(B,{key:0},[d(ke,{delete:"",disabled:$.value===2,class:Ke({"!grayscale !opacity-50":$.value===2}),onClick:_a},{default:f(()=>[Q(b(n(r)("material.scene.createModal.exitEdit")),1)]),_:1},8,["disabled","class"]),i("div",{title:n(ue)>0&&!n(Ce)?n(Ze):""},[d(ke,{primary:"",loading:$.value===2||n(O),onClick:ya},{icon:f(()=>[$.value!==2&&!n(O)?(v(),x("div",Pt,[e[27]||(e[27]=i("i",{class:"ri-copper-coin-fill model-cost-num !m-0 !text-base"},null,-1)),i("span",It,b(n(ue)),1),e[28]||(e[28]=i("div",{class:"w-[1px] h-3 bg-white/20 mx-3"},null,-1))])):(v(),x("i",Ut))]),default:f(()=>[i("span",null,[n(O)?(v(),x(B,{key:0},[Q(b(n(r)("generate.image.button.calculating")),1)],64)):(v(),x(B,{key:1},[Q(b(n(r)("project.fast.fusionEditor.aiGenerate")),1)],64))])]),_:1},8,["loading"])],8,St)],64)):(v(),x(B,{key:1},[d(ke,{delete:"",onClick:ma},{default:f(()=>[Q(b(n(r)("common.close")),1)]),_:1}),d(ke,{primary:"",loading:R.value,onClick:e[18]||(e[18]=p=>Qe())},{default:f(()=>[Q(b(n(r)("common.save")),1)]),_:1},8,["loading"]),i("div",{title:n(ue)>0&&!n(Ce)?n(Ze):""},[a.value.mode==="ai_generate"?(v(),ae(ke,{key:0,primary:"",loading:R.value||n(O),onClick:da},{icon:f(()=>[!R.value&&!n(O)?(v(),x("div",jt,[e[29]||(e[29]=i("i",{class:"ri-copper-coin-fill model-cost-num !m-0 !text-base"},null,-1)),i("span",At,b(n(ue)),1),e[30]||(e[30]=i("div",{class:"w-[1px] h-3 bg-white/20 mx-3"},null,-1))])):(v(),x("i",$t))]),default:f(()=>[i("span",null,[n(O)?(v(),x(B,{key:0},[Q(b(n(r)("generate.image.button.calculating")),1)],64)):(v(),x(B,{key:1},[Q(b(n(r)("project.fast.fusionEditor.aiGenerate")),1)],64))])]),_:1},8,["loading"])):G("",!0)],8,Ft)],64))])])],512)]),_:1},16,["wrapClassName"]),d(Je,{open:de.value,"onUpdate:open":e[20]||(e[20]=p=>de.value=p),title:n(r)("material.scene.createModal.saveAsTitle"),"confirm-loading":ye.value,onOk:va},{default:f(()=>[d(Ve,{ref_key:"saveAsFormRef",ref:X,model:z.value,rules:Me.value},{default:f(()=>[d(u,{label:n(r)("material.scene.createModal.nameLabel"),name:"name"},{default:f(()=>[Ue(d(s,{value:z.value.name,"onUpdate:value":e[19]||(e[19]=p=>z.value.name=p),maxlength:n(fe),placeholder:n(r)("material.scene.createModal.namePlaceholder")},null,8,["value","maxlength","placeholder"]),[[Pe]])]),_:1},8,["label"])]),_:1},8,["model","rules"])]),_:1},8,["open","title","confirm-loading"]),d(ze,{open:me.value,"onUpdate:open":e[21]||(e[21]=p=>me.value=p),type:"image",onConfirm:l},null,8,["open"]),d(ze,{open:pe.value,"onUpdate:open":e[22]||(e[22]=p=>pe.value=p),type:"image",onConfirm:m},null,8,["open"])],64)}}}),Tt="_modal_1hfnh_1",Bt={modal:Tt},Et={$style:Bt},Lt=ra(Rt,[["__cssModules",Et],["__scopeId","data-v-50cae6b4"]]),Ot={class:"flex-1 min-h-0 flex flex-col"},Nt={class:"flex-1 min-h-0 overflow-y-auto"},Gt={class:"grid grid-cols-[repeat(auto-fill,10.5rem)] row-auto gap-2 py-4 px-8"},Dt={key:0,class:"w-42! h-48! flex flex-col items-center justify-center gap-2 bg-[rgba(0,0,0,0.3)] text-red-400"},zt={class:"text-sm"},Qt={key:1,class:"w-42! h-48! bg-[rgba(0,0,0,0.2)]"},qt={key:2,class:"w-42! h-48! flex flex-col items-center justify-center gap-2 bg-[rgba(0,0,0,0.2)] text-gray-400"},Vt={class:"text-sm"},Jt={key:3,class:"scene-card-cover group/scene-cover relative w-42! h-48! overflow-hidden rounded-t-[2px] bg-black/20"},Yt=["onClick"],Kt=["onClick"],Ht={class:"px-2 py-2"},Wt=["title"],Xt={key:0,class:"mt-1.5 flex items-center justify-between gap-1 text-[11px] text-white/45"},Zt={class:"min-w-0 truncate"},el={class:"shrink-0"},al=["onClick"],tl=["onClick"],ll=["onClick"],ol={key:0,class:"flex justify-end shrink-0 px-8 py-4"},nl={ref:"sceneListScrollSentinel",class:"h-px w-full shrink-0","aria-hidden":"true"},rl={class:"flex items-center gap-2 w-66 px-4"},Fe=30,sl=ea({__name:"index",props:{selectMode:{type:Boolean,default:!1},headerTeleport:{default:null},projectId:{}},emits:["selected"],setup(Ae,{emit:$e}){const te=Ae,ge=$e,{t:y}=aa(),we=oa(),r=Fa(),A=I({project_id:te.projectId||we.params.id,name:""}),k=I([]),E=I(!1),L=I(0),P=I(1),V=ve("createModalRef"),a=I(!1),D=I(!1),$=I(!1),K=ve("localUploadModalRef");let J=null;ta(()=>{N()}),re(a,o=>{o||O()});function se(o="ai_generate"){var l;if(o==="asset"){D.value=!0;return}if(o==="upload"){$.value=!0;return}(l=V.value)==null||l.setFormData(void 0,{initialMode:o}),a.value=!0}async function Re(o){var g,h,c;const l=o.map(C=>C.name.trim()),m=l.find((C,ee)=>l.indexOf(C)!==ee);if(m){S.warning(y("material.localUploadModal.duplicateName",{name:m}));return}(g=K.value)==null||g.setSubmitting(!0);try{const C=await st(o.map(oe=>oe.file)),ee=Array.isArray(C.data)?C.data:[];if(ee.length!==o.length||ee.some(oe=>!oe)){S.error(y("material.scene.createModal.uploadFailed"));return}await Xe({projectId:String(A.value.project_id),saveAsset:!0,images:o.map((oe,Ee)=>({name:oe.name.trim(),imageUrl:ee[Ee],isFirstImage:"3"}))}),S.success(y("material.createSuccess.scene",{count:o.length})),(h=K.value)==null||h.close(),O()}catch(C){console.error(C)}finally{(c=K.value)==null||c.setSubmitting(!1)}}async function ie(o){if(!o.length)return;const l=o.map(h=>{var C;const c=De(h.fileUrl)||h.fileUrl;return c?{name:((C=h.name)==null?void 0:C.trim())||y("material.scene.createModal.unnamed"),imageUrl:c,isFirstImage:"3"}:null}
2).filter(Boolean);if(!l.length){S.warning(y("material.selectedAssetsNoImage"));return}const m=l.map(h=>h.name),g=m.find((h,c)=>m.indexOf(h)!==c);if(g){S.warning(y("material.localUploadModal.duplicateName",{name:g}));return}try{await Xe({projectId:String(A.value.project_id),saveAsset:!1,images:l}),S.success(y("material.createSuccess.scene",{count:l.length})),O()}catch(h){console.error(h)}}function H(o){var l;J=Na.cloneDeep(o),(l=V.value)==null||l.setFormData(o),a.value=!0}function Te(o){const l=he(o);if(!l){S.error(y("material.imageNotExist"));return}const m=new FormData;m.append("image_type","scene"),m.append("url",l),m.append("token",sessionStorage.getItem("access_token")||""),Aa("/api/v1/storyboards/image/download",m)}function ue(o){la.confirm({title:y("material.scene.deleteConfirmTitle"),content:y("material.scene.deleteConfirmContent",{name:o.name}),okType:"danger",onOk:async()=>{if(!await q.Delete(`/api/v1/scenes/${o.id}`).catch(g=>{console.error(g)}))return;const m=k.value.findIndex(g=>g.id===o.id);k.value.splice(m,1),S.success(y("material.scene.deleteSuccess")),L.value--,k.value.length===0&&P.value>1&&N(P.value-1)}})}function Ce(){A.value.name="",_e()}function _e(){O()}function O(){P.value=1,N(1)}function Be(o){N(o)}async function N(o=P.value){if(E.value)return;E.value=!0;const l=String(A.value.project_id||""),m=await Wa({projectId:l,pageNum:o,pageSize:Fe}).catch(g=>{console.error(g),E.value=!1});m&&(E.value=!1,k.value=m.data.list??[],L.value=m.data.total,P.value=o)}function Y(o){te.selectMode&&ge("selected",o)}async function R(){const o=k.value.findIndex(l=>l.id===(J==null?void 0:J.id));if(o>0){H(k.value[o-1]);return}if(P.value>1){await N(P.value-1),k.value.length>0&&H(k.value[k.value.length-1]);return}S.warning(y("material.noMoreScene"))}async function W(){const o=k.value.findIndex(m=>m.id===(J==null?void 0:J.id));if(o<k.value.length-1){H(k.value[o+1]);return}const l=Math.ceil(L.value/Fe);if(P.value<l){await N(P.value+1),k.value.length>0&&H(k.value[0]);return}S.warning(y("material.noMoreScene"))}function ce(o){const l=k.value.find(m=>m.id===o.id);l&&Object.assign(l,o)}function de(o){k.value.unshift(o),L.value++}const X=Ua({});function z(o){const l=je(o.image_url);return l.length?l:je(o.thumb_url)}function Me(o){const l=z(o);let m=X[o.id]??0;return(m<0||m>=Math.max(l.length,1))&&(m=0),Da({imageUrl:o.image_url,thumbUrl:o.thumb_url,index:m})}function ye(o){return Me(o).thumb}function he(o){return Me(o).original}function Z(o,l){o.stopPropagation();const m=z(l);if(m.length<=1)return;const g=X[l.id]??0,h=m.length;X[l.id]=g<=0?h-1:g-1}function me(o,l){o.stopPropagation();const m=z(l);if(m.length<=1)return;const g=X[l.id]??0,h=m.length;X[l.id]=g>=h-1?0:g+1}function pe(o){var g;const l=(g=o.create_time)==null?void 0:g.trim();if(!l)return"";const m=Ia(l);return m.isValid()?m.format("YYYY-MM-DD"):l.slice(0,10)}function le(o){var l;return((l=o.user_name)==null?void 0:l.trim())||""}function Se({scene:o,promise:l}){const m=k.value.find(g=>g.id===o.id);m?m.generating=!0:(k.value.unshift({...o,generating:!0}),L.value++),a.value=!1,l.then(g=>{const h=g.data,c=k.value.find(C=>C.id===h.id);c&&(Object.assign(c,h),c.generating=!1,c.generateFailed=!1)}).catch(()=>{const g=k.value.find(h=>h.id===o.id);g&&(g.generating=!1,g.generateFailed=!0)})}return(o,l)=>{const m=Za,g=it,h=ut;return v(),x(B,null,[i("div",Ot,[i("div",Nt,[i("div",Gt,[d(Ra,{variant:"scene",onSelect:se}),(v(!0),x(B,null,na(k.value,c=>(v(),ae(g,{key:c.id,spinning:!!(c.generating||c.status===1),tip:n(y)("material.status.generatingTip"),class:"generating-tip-only"},{default:f(()=>[d(m,{hoverable:"",size:"small",class:"relative w-42",onClick:C=>Y(c)},{cover:f(()=>
2[c.generateFailed||c.status===2?(v(),x("div",Dt,[l[5]||(l[5]=i("i",{class:"ri-image-add-line text-2xl"},null,-1)),i("span",zt,b(n(y)("material.status.generateFailed")),1)])):c.generating||c.status===1?(v(),x("div",Qt)):c.status===0?(v(),x("div",qt,[l[6]||(l[6]=i("i",{class:"ri-image-line text-2xl"},null,-1)),i("span",Vt,b(n(y)("material.status.notGenerated")),1)])):(v(),x("div",Jt,[d(sa,{preview:te.selectMode?!1:{src:he(c)},"object-fit":"contain",src:ye(c),alt:"åºæ¯å¾ç",class:"w-42! h-48! object-contain"},null,8,["preview","src"]),z(c).length>1?(v(),x(B,{key:0},[i("button",{type:"button",class:"scene-card-gallery-btn scene-card-gallery-btn--left opacity-0 pointer-events-none transition-[opacity,transform] duration-200 ease-out group-hover/scene-cover:opacity-100 group-hover/scene-cover:pointer-events-auto group-focus-within/scene-cover:opacity-100 group-focus-within/scene-cover:pointer-events-auto","aria-label":"ä¸ä¸å¼ ",onClick:xe(C=>Z(C,c),["stop"])},[...l[7]||(l[7]=[i("i",{class:"ri-arrow-left-s-line scene-card-gallery-icon"},null,-1)])],8,Yt),i("button",{type:"button",class:"scene-card-gallery-btn scene-card-gallery-btn--right opacity-0 pointer-events-none transition-[opacity,transform] duration-200 ease-out group-hover/scene-cover:opacity-100 group-hover/scene-cover:pointer-events-auto group-focus-within/scene-cover:opacity-100 group-focus-within/scene-cover:pointer-events-auto","aria-label":"ä¸ä¸å¼ ",onClick:xe(C=>me(C,c),["stop"])},[...l[8]||(l[8]=[i("i",{class:"ri-arrow-right-s-line scene-card-gallery-icon"},null,-1)])],8,Kt)],64)):G("",!0)]))]),actions:f(()=>[i("div",{class:"py-1",title:"ä¸è½½å¾ç",onClick:xe(C=>Te(c),["stop"])},[...l[9]||(l[9]=[i("i",{class:"ri-download-line"},null,-1)])],8,al),i("div",{class:"py-1",title:"ç¼è¾åºæ¯",onClick:xe(C=>H(c),["stop"])},[...l[10]||(l[10]=[i("i",{class:"ri-edit-line"},null,-1)])],8,tl),i("div",{class:"py-1 hover:text-red-500",title:"å é¤åºæ¯",onClick:xe(C=>ue(c),["stop"])},[...l[11]||(l[11]=[i("i",{class:"ri-delete-bin-line"},null,-1)])],8,ll)]),default:f(()=>[i("div",Ht,[i("div",{class:"truncate leading-snug",title:c.name},b(c.name),9,Wt),le(c)||pe(c)?(v(),x("div",Xt,[i("span",Zt,b(le(c)||"-"),1),i("span",el,b(pe(c)),1)])):G("",!0)])]),_:2},1032,["onClick"])]),_:2},1032,["spinning","tip"]))),128))])]),L.value>Fe?(v(),x("div",ol,[d(h,{current:P.value,"page-size":Fe,total:L.value,"show-size-changer":!1,onChange:Be},null,8,["current","total"])])):G("",!0),i("div",nl,null,512)]),te.headerTeleport||n(r).headerTeleport?(v(),ae(Pa,{key:0,to:te.headerTeleport||n(r).headerTeleport},[i("div",rl,[d(rt,{value:A.value.name,"onUpdate:value":l[0]||(l[0]=c=>A.value.name=c),"allow-clear":"",placeholder:n(y)("material.scene.searchPlaceholder"),onSearch:_e},{clearIcon:f(()=>[i("i",{class:"ri-close-circle-fill flex items-center justify-center w-full h-full",onClick:Ce})]),_:1},8,["value","placeholder"])])],8,["to"])):G("",!0),d(Lt,{open:a.value,"onUpdate:open":l[1]||(l[1]=c=>a.value=c),ref_key:"createModalRef",ref:V,onPrev:R,onNext:W,onUpdated:ce,onCreated:de,onGeneratingBackgroun
2d:Se},null,8,["open"]),d(ze,{open:D.value,"onUpdate:open":l[2]||(l[2]=c=>D.value=c),type:"image","default-category-tab":"scene",multiple:"","max-select":10,onConfirm:l[3]||(l[3]=c=>ie([c])),onConfirmMany:ie},null,8,["open"]),d(Ta,{ref_key:"localUploadModalRef",ref:K,open:$.value,"onUpdate:open":l[4]||(l[4]=c=>$.value=c),onConfirm:Re},null,8,["open"])],64)}}}),il=ra(sl,[["__scopeId","data-v-986e2e66"]]),Nl=Object.freeze(Object.defineProperty({__proto__:null,default:il},Symbol.toStringTag,{value:"Module"}));export{Lt as S,il as a,Nl as i};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.